Git init
[platform/core/uifw/e17.git] / src / bin / e_config_dialog.h
1 #ifdef E_TYPEDEFS
2
3 typedef enum _E_Config_Dialog_CFData_Type
4 {
5    E_CONFIG_DIALOG_CFDATA_TYPE_BASIC,
6    E_CONFIG_DIALOG_CFDATA_TYPE_ADVANCED,
7    E_CONFIG_DIALOG_CFDATA_TYPE_NORMAL_WINDOW
8 } E_Config_Dialog_CFData_Type;
9
10 typedef struct _E_Config_Dialog      E_Config_Dialog;
11 typedef struct _E_Config_Dialog_View E_Config_Dialog_View;
12 typedef struct _E_Config_Dialog_Data E_Config_Dialog_Data;
13
14 #else
15 #ifndef E_CONFIG_DIALOG_H
16 #define E_CONFIG_DIALOG_H
17
18 #define E_CONFIG_DIALOG_TYPE 0xE0b01017
19
20 struct _E_Config_Dialog_View
21 {
22    unsigned char override_auto_apply : 1;
23    unsigned char basic_only : 1;
24    unsigned char normal_win : 1;
25    unsigned char scroll : 1;
26    
27    void           *(*create_cfdata)     (E_Config_Dialog *cfd);
28    void            (*free_cfdata)       (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
29    int             (*close_cfdata)      (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
30    struct {
31       int          (*apply_cfdata)      (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
32       Evas_Object *(*create_widgets)    (E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
33       int          (*check_changed)     (E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
34    } basic, advanced;   
35 };
36
37 struct _E_Config_Dialog
38 {
39    E_Object                     e_obj_inherit;
40    
41    E_Config_Dialog_CFData_Type  view_type;
42    E_Config_Dialog_View        *view;
43    E_Config_Dialog_Data        *cfdata;
44    E_Container                 *con;
45    const char                  *title;
46    const char                  *icon;
47    const char                  *name;
48    const char                  *class;
49    int                          icon_size;
50    E_Dialog                    *dia;
51    void                        *data;
52    Ecore_Timer                 *auto_apply_timer;
53    unsigned char                hide_buttons : 1;
54    unsigned char                cfg_changed : 1;
55    unsigned char                cfg_changed_auto : 1;
56 };
57
58 EAPI E_Config_Dialog *e_config_dialog_new(E_Container *con, const char *title, const char *name, const char *class, const char *icon, int icon_size, E_Config_Dialog_View *view, void *data);
59 EAPI int e_config_dialog_find(const char *name, const char *class);
60 EAPI E_Config_Dialog *e_config_dialog_get(const char *name, const char *class);
61
62 EAPI void e_config_dialog_changed_auto_set(E_Config_Dialog *cfd, unsigned char value);
63 EAPI void e_config_dialog_changed_set(E_Config_Dialog *cfd, unsigned char value);
64
65 #endif
66 #endif