tizen 2.4 release
[framework/uifw/elementary.git] / src / lib / elm_widget_fileselector_entry.h
1 #ifndef ELM_WIDGET_FILESELECTOR_ENTRY_H
2 #define ELM_WIDGET_FILESELECTOR_ENTRY_H
3
4 #include "elm_widget_layout.h"
5
6 #include <Eio.h>
7
8 /* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
9  * CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
10  * FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK
11  * IT AT RUNTIME.
12  */
13
14 /**
15  * @internal
16  * @addtogroup Widget
17  * @{
18  *
19  * @section elm-fileselector-entry-class The Elementary Fileselector Entry Class
20  *
21  * Elementary, besides having the @ref Fileselector_Entry widget,
22  * exposes its foundation -- the Elementary Fileselector Entry Class
23  * -- in order to create other widgets which are a fileselector_entry
24  * with some more logic on top.
25  */
26
27 /**
28  * Base entry smart data extended with fileselector_entry instance data.
29  */
30 typedef struct _Elm_Fileselector_Entry_Data \
31 Elm_Fileselector_Entry_Data;
32 struct _Elm_Fileselector_Entry_Data
33 {
34    Evas_Object *button;
35    Evas_Object *entry;
36    char *path;
37 };
38
39 /**
40  * @}
41  */
42
43
44 #define ELM_FILESELECTOR_ENTRY_DATA_GET(o, sd) \
45   Elm_Fileselector_Entry_Data * sd = eo_data_scope_get(o, ELM_FILESELECTOR_ENTRY_CLASS)
46
47 #define ELM_FILESELECTOR_ENTRY_DATA_GET_OR_RETURN(o, ptr) \
48   ELM_FILESELECTOR_ENTRY_DATA_GET(o, ptr);                \
49   if (EINA_UNLIKELY(!ptr))                                \
50     {                                                     \
51        CRI("No widget data for object %p (%s)",           \
52            o, evas_object_type_get(o));                   \
53        return;                                            \
54     }
55
56 #define ELM_FILESELECTOR_ENTRY_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
57   ELM_FILESELECTOR_ENTRY_DATA_GET(o, ptr);                         \
58   if (EINA_UNLIKELY(!ptr))                                         \
59     {                                                              \
60        CRI("No widget data for object %p (%s)",                    \
61            o, evas_object_type_get(o));                            \
62        return val;                                                 \
63     }
64
65 #define ELM_FILESELECTOR_ENTRY_CHECK(obj)                              \
66   if (EINA_UNLIKELY(!eo_isa((obj), ELM_FILESELECTOR_ENTRY_CLASS))) \
67     return
68
69 #endif