yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=3f763610a4783140db869e127019d351a4ec5bed
commit 3f763610a4783140db869e127019d351a4ec5bed Author: Yakov Goldberg <yako...@samsung.com> Date: Tue May 12 15:10:30 2015 +0300 Enums management refactoring - Fetch Enums from Eolian - delete db_dynamic_init.h --- src/bin/gui/props_helper.c | 11 +-- src/bin/gui/props_helper.h | 2 +- src/lib/database.c | 218 +++++++++++++++++++++++++++++++-------------- src/lib/database.h | 10 ++- src/lib/db_dynamic_init.h | 81 ----------------- 5 files changed, 167 insertions(+), 155 deletions(-) diff --git a/src/bin/gui/props_helper.c b/src/bin/gui/props_helper.c index f69b6ca..10c3f41 100644 --- a/src/bin/gui/props_helper.c +++ b/src/bin/gui/props_helper.c @@ -290,7 +290,7 @@ props_button_add(Eo *box, char *text) } Eo * -props_hoversel_enums_add(Eo *box, Eo *hover_parent, const char *default_val, const char **enums_lst) +props_hoversel_enums_add(Eo *box, Eo *hover_parent, const char *default_val, const Eina_List *enums_lst) { Eo *hoversel = eo_add(ELM_HOVERSEL_CLASS, box); eo_do(hoversel, elm_obj_hoversel_hover_parent_set(hover_parent)); @@ -303,10 +303,11 @@ props_hoversel_enums_add(Eo *box, Eo *hover_parent, const char *default_val, con /* Add items to Hoversel. */ if (enums_lst) { - while (*enums_lst != NULL) + Enum_Info *ei; + const Eina_List *itr; + EINA_LIST_FOREACH(enums_lst, itr, ei) { - eo_do(hoversel, elm_obj_hoversel_item_add(*enums_lst, NULL, ELM_ICON_NONE, NULL, NULL)); - enums_lst++; + eo_do(hoversel, elm_obj_hoversel_item_add(ei->enum_name, NULL, ELM_ICON_NONE, NULL, NULL)); } } @@ -562,7 +563,7 @@ props_value_add(Eo *box, const Gui_Widget *wdg, const Gui_Value *value, const Op { default_str = STRING_GET(value); } - const char **enums_list = db_op_desc_nth_par_enum_list_get(op, par_idx); + const Eina_List *enums_list = db_op_desc_nth_par_enum_list_get(op, par_idx); new_obj = props_hoversel_enums_add(box, elm_widget_top_get(box), default_str, enums_list); break; } diff --git a/src/bin/gui/props_helper.h b/src/bin/gui/props_helper.h index 29b4222..5bbc0bf 100644 --- a/src/bin/gui/props_helper.h +++ b/src/bin/gui/props_helper.h @@ -98,7 +98,7 @@ Eo * props_button_add(Eo *box, char *text); Eo * -props_hoversel_enums_add(Eo *box, Eo *hover_parent, const char *default_val, const char **enums_lst); +props_hoversel_enums_add(Eo *box, Eo *hover_parent, const char *default_val, const Eina_List *enums_lst); Eo * props_hoversel_objects_add(Eo *box, Eo *hoversel, Eo *hover_parent, const char *default_val, const Eina_List *wdgs_list, const Gui_Widget *wdg); diff --git a/src/lib/database.c b/src/lib/database.c index 469d248..9a44083 100644 --- a/src/lib/database.c +++ b/src/lib/database.c @@ -68,20 +68,6 @@ typedef struct typedef struct { - char *enum_name; - struct { - int val; - } data; -} Enum_Props; - -typedef struct -{ - char *enum_type; - char **enum_val; -} Enum_Types; - -typedef struct -{ unsigned int idx; char *param_overrides; char *param_default_values_str; @@ -103,9 +89,6 @@ _param_flags_by_idx_get(Eina_List *lst, unsigned int idx) return NULL; } -/* for init tables */ -#include "db_dynamic_init.h" - static Eina_Hash *cl_table = NULL; /* ["elm_win"] -> [Class_Prop] */ static Eina_Hash *enum_table = NULL; /* ["ENUM_NAME"]->[{1}] */ static Eina_Hash *enum_types_table = NULL; /* ["Elm_Win_Type"]->[ELM_WIN_BASIC, ELM_WIN_DIALOG_BASIC, ..] */ @@ -165,6 +148,18 @@ db_gui_cb_type_get(const char *gui_cb_type_name) } static void +_enum_types_table_free_cb(void *data) +{ + Eina_List *lst = data; + Enum_Info *ei; + EINA_LIST_FREE(lst, ei) + { + free(ei->enum_name); + free(ei); + } +} + +static void _cl_table_free_cb(void *_data) { Class_Props *data = _data; @@ -388,26 +383,56 @@ _param_desc_fill(Op_Param_Desc *param_desc, const Param_Flags *p_flags, Eina_Has } } -/* - * Helper for db_init() - * initializes hash table: "ENUM"->value, t.e.: - * "ENUM_ONE"->1 - * "ENUM_TWO"->2 - * */ +/* Helper function to register Enum. + * Iterates over all enum fields and saves it in tables. */ static void -_enum_table_init() -{ - enum_table = eina_hash_string_superfast_new(NULL); - Enum_Props *enum_p = enum_arr; - while (enum_p->enum_name) +_enum_type_register(Eina_Hash *typedef_table, const Eolian_Type *type) +{ + Eina_Stringshare *enum_type_full_name = eolian_type_full_name_get(type); + if (eina_hash_find(typedef_table, enum_type_full_name)) return; + eina_hash_add(typedef_table, enum_type_full_name, (void *) (uintptr_t) GUI_TYPE_ENUM); + Eina_Iterator *fields_itr = eolian_type_enum_fields_get(type); + + /* iterate over all fields of enum type. */ + int enum_value = -1; + Eina_List *c_enums_lst = NULL; + Eolian_Enum_Type_Field *field; + EINA_ITERATOR_FOREACH(fields_itr, field) { - if (!eina_hash_add(enum_table, enum_p->enum_name, - &enum_p->data)) + const Eolian_Expression *expr = eolian_type_enum_field_value_get(field, EINA_FALSE); + /* if enum field was initialized, t.e. has expression, get it. + * Otherwise increment enum value. */ + if (expr) { - printf("can not add value to hash table\n"); + Eolian_Value eval = eolian_expression_eval(expr, EOLIAN_MASK_INT); + Eina_Stringshare *seval = eolian_expression_value_to_literal(&eval); + enum_value = atoi(seval); + eina_stringshare_del(seval); } - enum_p++; + else + { + enum_value++; + } + Eina_Stringshare *_c_enum_value = eolian_type_enum_field_c_name_get(field); + char *c_enum_value = strdup(_c_enum_value); + char *p = c_enum_value; + while (*p) + { + if (*p == '.') *p = '_'; + p++; + } + + Enum_Info *_ei = calloc(1, sizeof(Enum_Info)); + _ei->enum_name = strdup(c_enum_value); + _ei->enum_val = enum_value; + c_enums_lst = eina_list_append(c_enums_lst, _ei); + eina_hash_add(enum_table, c_enum_value, _ei); + + eina_stringshare_del(_c_enum_value); + free(c_enum_value); } + eina_hash_add(enum_types_table, enum_type_full_name, c_enums_lst); + eina_iterator_free(fields_itr); } /* @@ -421,18 +446,74 @@ static void _enum_types_table_init(Eina_Hash *typedef_table) { /* initializing enum types */ - enum_types_table = eina_hash_string_superfast_new(NULL); - Enum_Types *enum_t = enum_types; - while (enum_t->enum_type) - { - eina_hash_add(typedef_table, enum_t->enum_type, (void *) (uintptr_t) GUI_TYPE_ENUM); - if (!eina_hash_add(enum_types_table, enum_t->enum_type, - enum_t->enum_val)) - { - printf("can not add value to hash table\n"); - } - enum_t++; - } + enum_types_table = eina_hash_string_superfast_new(_enum_types_table_free_cb); + eina_hash_add(typedef_table, "Elm_Object_Select_Mode", (void *) (uintptr_t) GUI_TYPE_ENUM); + eina_hash_add(typedef_table, "Evas_Aspect_Control", (void *) (uintptr_t) GUI_TYPE_ENUM); + Eina_List *lst = NULL; + Enum_Info *ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("ELM_OBJECT_SELECT_MODE_DEFAULT"); + ei->enum_val = 0; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "ELM_OBJECT_SELECT_MODE_DEFAULT", ei); + + ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("ELM_OBJECT_SELECT_MODE_ALWAYS"); + ei->enum_val = 1; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "ELM_OBJECT_SELECT_MODE_ALWAYS", ei); + + ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("ELM_OBJECT_SELECT_MODE_NONE"); + ei->enum_val = 2; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "ELM_OBJECT_SELECT_MODE_NONE", ei); + + ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY"); + ei->enum_val = 3; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY", ei); + + ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("ELM_OBJECT_SELECT_MODE_DISPLAY_MAX"); + ei->enum_val = 4; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "ELM_OBJECT_SELECT_MODE_DISPLAY_MAX", ei); + + eina_hash_add(enum_types_table, "Elm_Object_Select_Mode", lst); + + lst = NULL; + ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("EVAS_ASPECT_CONTROL_NONE"); + ei->enum_val = 0; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "EVAS_ASPECT_CONTROL_NONE", ei); + + ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("EVAS_ASPECT_CONTROL_NEITHER"); + ei->enum_val = 1; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "EVAS_ASPECT_CONTROL_NEITHER", ei); + + ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("EVAS_ASPECT_CONTROL_HORIZONTAL"); + ei->enum_val = 2; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "EVAS_ASPECT_CONTROL_HORIZONTAL", ei); + + ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("EVAS_ASPECT_CONTROL_VERTICAL"); + ei->enum_val = 3; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "EVAS_ASPECT_CONTROL_VERTICAL", ei); + + ei = calloc(1, sizeof(Enum_Info)); + ei->enum_name = strdup("EVAS_ASPECT_CONTROL_BOTH"); + ei->enum_val = 4; + lst = eina_list_append(lst, ei); + eina_hash_add(enum_table, "EVAS_ASPECT_CONTROL_BOTH", ei); + + eina_hash_add(enum_types_table, "Evas_Aspect_Control", lst); } /* @@ -1007,11 +1088,13 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) eina_hash_add(typedef_table, "Elm_Theme *", (void *) (uintptr_t) GUI_TYPE_THEME); eina_hash_add(typedef_table, "GUI_TYPE_FILE", (void *) (uintptr_t) GUI_TYPE_FILE); - /* FIXME: need to parse enums and types */ - eina_hash_add(typedef_table, "Type", (void *) (uintptr_t) GUI_TYPE_ENUM); - /* initializing enum table */ - _enum_table_init(); + /* + * initializing hash table: "ENUM"->Enum_Info *, t.e.: + * "ENUM_ONE"->{"ENUM_ONE", 1} + * "ENUM_TWO"->{"ENUM_TWO:, 2} + */ + enum_table = eina_hash_string_superfast_new(NULL); /* initializing enum types */ _enum_types_table_init(typedef_table); @@ -1175,7 +1258,8 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) const char *c_type; char c_type2[PATH_MAX]; const Eolian_Type *param_eolian_type = eolian_parameter_type_get(eolian_param); - if (eolian_type_type_get(param_eolian_type) == EOLIAN_TYPE_REGULAR) + if ((eolian_type_type_get(param_eolian_type) == EOLIAN_TYPE_REGULAR) + && !eolian_type_base_type_get(param_eolian_type)) { c_type = eolian_type_name_get(param_eolian_type); sprintf(c_type2, "%s", c_type); @@ -1187,6 +1271,7 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) (eolian_type_type_get(base) == EOLIAN_TYPE_CLASS)) { c_type = eolian_type_name_get(base); + sprintf(c_type2, "%s%s *", eolian_type_is_const(base) ? "const " : "", c_type); } else if (eolian_type_type_get(base) == EOLIAN_TYPE_POINTER) { @@ -1195,12 +1280,19 @@ db_init(const char *db_path, const char *all_eo_path, const char *black_list) else if (eolian_type_type_get(base) == EOLIAN_TYPE_VOID) { c_type = "void"; + sprintf(c_type2, "%s%s *", eolian_type_is_const(base) ? "const " : "", c_type); + } + else if (eolian_type_type_get(base) == EOLIAN_TYPE_ENUM) + { + c_type = eolian_type_full_name_get(param_eolian_type); + sprintf(c_type2, "%s", c_type); + _enum_type_register(typedef_table, base); } else { c_type = "NULL"; + sprintf(c_type2, "%s%s *", eolian_type_is_const(base) ? "const " : "", c_type); } - sprintf(c_type2, "%s%s *", eolian_type_is_const(base) ? "const " : "", c_type); } void *p = eina_hash_find(typedef_table, c_type2); if (!p) @@ -1425,14 +1517,14 @@ db_op_desc_prop_display_name_get(const Op_Desc *op_desc) int db_enum_value_get(const char *_enum) { - int *p; + Enum_Info *p; p = eina_hash_find(enum_table, _enum); if (!p) { ERR("Enum: \"%s\" wasn't found in hash\n", _enum); return 0; } - return *p; + return p->enum_val; } /* Get type of nth parameter from Op Desc */ @@ -1470,7 +1562,7 @@ db_op_desc_nth_par_type_name_get(const Op_Desc *op_desc, unsigned int idx) } /* Get pointer to array of enum strings for nth parameter in op */ -const char** +const Eina_List* db_op_desc_nth_par_enum_list_get(const Op_Desc *op_desc, unsigned int idx) { const Op_Param_Desc *param_desc = db_op_desc_nth_param_desc_get(op_desc, idx); @@ -1479,10 +1571,7 @@ db_op_desc_nth_par_enum_list_get(const Op_Desc *op_desc, unsigned int idx) if (param_desc->gui_type != GUI_TYPE_ENUM) return NULL; const char *enum_type_name = param_desc->gui_type_name; - const char **p; - p = eina_hash_find(enum_types_table, enum_type_name); - - return p; + return eina_hash_find(enum_types_table, enum_type_name); } /* Get enum string by int for nth parameter in op */ @@ -1494,17 +1583,14 @@ db_op_desc_nth_par_enum_get(const Op_Desc *op_desc, unsigned int idx, int enum_v if (param_desc->gui_type != GUI_TYPE_ENUM) return NULL; const char *enum_type_name = param_desc->gui_type_name; - char **p; - p = eina_hash_find(enum_types_table, enum_type_name); - while (*p != NULL) + const Eina_List *lst = eina_hash_find(enum_types_table, enum_type_name), *itr; + const char *enum_str; + EINA_LIST_FOREACH(lst, itr, enum_str) { - int *props; - props = eina_hash_find(enum_table, *p); - if (*props == enum_value) - return *p; - p++; + Enum_Info *ei = eina_hash_find(enum_table, enum_str); + if (ei->enum_val == enum_value) + return enum_str; } - return NULL; } diff --git a/src/lib/database.h b/src/lib/database.h index de06702..df28024 100644 --- a/src/lib/database.h +++ b/src/lib/database.h @@ -9,6 +9,12 @@ Eina_List* eo_class_mro_get(const char *); +typedef struct +{ + char *enum_name; + int enum_val; +} Enum_Info; + /* Types to define whenether op works with Objects or Items*/ typedef enum { @@ -200,8 +206,8 @@ db_op_desc_nth_par_type_get(const Op_Desc *op_desc, unsigned int idx); const char* db_op_desc_nth_par_type_name_get(const Op_Desc *op_desc, unsigned int idx); -/* Get pointer to array of enum strings for nth parameter in op */ -const char** +/* Get Eina_List of enum strings for nth parameter in op */ +const Eina_List * db_op_desc_nth_par_enum_list_get(const Op_Desc *op_desc, unsigned int idx); /* Get enum string by int for nth parameter in op */ diff --git a/src/lib/db_dynamic_init.h b/src/lib/db_dynamic_init.h deleted file mode 100644 index 8fe37de..0000000 --- a/src/lib/db_dynamic_init.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef _DB_DYNAMIC_INIT_H -#define _DB_DYNAMIC_INIT_H - -static Enum_Props enum_arr[] = { - {"ELM_OBJECT_SELECT_MODE_DEFAULT", {0}}, - {"ELM_OBJECT_SELECT_MODE_ALWAYS", {1}}, - {"ELM_OBJECT_SELECT_MODE_NONE", {2}}, - {"ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY", {3}}, - {"ELM_OBJECT_SELECT_MODE_MAX", {4}}, - {"ELM_WIN_UNKNOWN", {-1}}, - {"ELM_WIN_BASIC", {0}}, - {"ELM_WIN_DIALOG_BASIC", {1}}, - {"ELM_WIN_DESKTOP", {2}}, - {"ELM_WIN_DOCK", {3}}, - {"ELM_WIN_TOOLBAR", {4}}, - {"ELM_WIN_MENU", {5}}, - {"ELM_WIN_UTILITY", {6}}, - {"ELM_WIN_SPLASH", {7}}, - {"ELM_WIN_DROPDOWN_MENU", {8}}, - {"ELM_WIN_POPUP_MENU", {9}}, - {"ELM_WIN_TOOLTIP", {10}}, - {"ELM_WIN_NOTIFICATION", {11}}, - {"ELM_WIN_COMBO", {12}}, - {"ELM_WIN_DND", {13}}, - {"ELM_WIN_INLINED_IMAGE", {14}}, - {"ELM_WIN_SOCKET_IMAGE", {15}}, - {"EVAS_ASPECT_CONTROL_NONE", {0}}, - {"EVAS_ASPECT_CONTROL_NEITHER", {1}}, - {"EVAS_ASPECT_CONTROL_HORIZONTAL", {2}}, - {"EVAS_ASPECT_CONTROL_VERTICAL", {3}}, - {"EVAS_ASPECT_CONTROL_BOTH", {4}}, - {"ELM_TOOLBAR_SHRINK_NONE", {0}}, - {"ELM_TOOLBAR_SHRINK_HIDE", {1}}, - {"ELM_TOOLBAR_SHRINK_SCROLL", {2}}, - {"ELM_TOOLBAR_SHRINK_MENU", {3}}, - {"ELM_TOOLBAR_SHRINK_EXPAND", {4}}, - {"ELM_TOOLBAR_SHRINK_LAST", {5}}, - {"ELM_FLIP_ROTATE_Y_CENTER_AXIS", {0}}, - {"ELM_FLIP_ROTATE_X_CENTER_AXIS", {1}}, - {"ELM_FLIP_ROTATE_XZ_CENTER_AXIS", {2}}, - {"ELM_FLIP_ROTATE_YZ_CENTER_AXIS", {3}}, - {"ELM_FLIP_CUBE_LEFT", {4}}, - {"ELM_FLIP_CUBE_RIGHT", {5}}, - {"ELM_FLIP_CUBE_UP", {6}}, - {"ELM_FLIP_CUBE_DOWN", {7}}, - {"ELM_FLIP_PAGE_LEFT", {8}}, - {"ELM_FLIP_PAGE_RIGHT", {9}}, - {"ELM_FLIP_PAGE_UP", {10}}, - {"ELM_FLIP_PAGE_DOWN", {11}}, - {"ELM_SCROLLER_POLICY_AUTO", {0}}, - {"ELM_SCROLLER_POLICY_ON", {1}}, - {"ELM_SCROLLER_POLICY_OFF", {2}}, - {"ELM_SCROLLER_POLICY_LAST", {3}}, - {"ELM_PANEL_ORIENT_TOP", {0}}, - {"ELM_PANEL_ORIENT_BOTTOM", {1}}, - {"ELM_PANEL_ORIENT_LEFT", {2}}, - {"ELM_PANEL_ORIENT_RIGHT", {3}}, - {NULL, {0}} -}; - -static char *Elm_Object_Select_Mode_enums[] = {"ELM_OBJECT_SELECT_MODE_DEFAULT", "ELM_OBJECT_SELECT_MODE_ALWAYS", "ELM_OBJECT_SELECT_MODE_NONE", "ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY", "ELM_OBJECT_SELECT_MODE_MAX", NULL}; -static char *Elm_Win_Type_enums[] = {"ELM_WIN_UNKNOWN", "ELM_WIN_BASIC", "ELM_WIN_DIALOG_BASIC", "ELM_WIN_DESKTOP", "ELM_WIN_DOCK", "ELM_WIN_TOOLBAR", "ELM_WIN_MENU", "ELM_WIN_UTILITY", "ELM_WIN_SPLASH", "ELM_WIN_DROPDOWN_MENU", "ELM_WIN_POPUP_MENU", "ELM_WIN_TOOLTIP", "ELM_WIN_NOTIFICATION", "ELM_WIN_COMBO", "ELM_WIN_DND", "ELM_WIN_INLINED_IMAGE", "ELM_WIN_SOCKET_IMAGE", NULL}; -static char *Evas_Aspect_Control_enums[] = {"EVAS_ASPECT_CONTROL_NONE", "EVAS_ASPECT_CONTROL_NEITHER", "EVAS_ASPECT_CONTROL_HORIZONTAL", "EVAS_ASPECT_CONTROL_VERTICAL", "EVAS_ASPECT_CONTROL_BOTH", NULL}; -static char *Elm_Toolbar_Shrink_Mode_enums[] = {"ELM_TOOLBAR_SHRINK_NONE", "ELM_TOOLBAR_SHRINK_HIDE", "ELM_TOOLBAR_SHRINK_SCROLL", "ELM_TOOLBAR_SHRINK_MENU", "ELM_TOOLBAR_SHRINK_EXPAND", "ELM_TOOLBAR_SHRINK_LAST", NULL}; -static char *Elm_Flip_Mode_enums[] = {"ELM_FLIP_ROTATE_Y_CENTER_AXIS", "ELM_FLIP_ROTATE_X_CENTER_AXIS", "ELM_FLIP_ROTATE_XZ_CENTER_AXIS", "ELM_FLIP_ROTATE_YZ_CENTER_AXIS", "ELM_FLIP_CUBE_LEFT", "ELM_FLIP_CUBE_RIGHT", "ELM_FLIP_CUBE_UP", "ELM_FLIP_CUBE_DOWN", "ELM_FLIP_PAGE_LEFT", "ELM_FLIP_PAGE_RIGHT", "ELM_FLIP_PAGE_UP", "ELM_FLIP_PAGE_DOWN", NULL}; -static char *Elm_Scroller_Policy_enums[] = {"ELM_SCROLLER_POLICY_AUTO", "ELM_SCROLLER_POLICY_ON", "ELM_SCROLLER_POLICY_OFF", "ELM_SCROLLER_POLICY_LAST", NULL}; -static char *Elm_Panel_Orient_enums[] = {"ELM_PANEL_ORIENT_TOP", "ELM_PANEL_ORIENT_BOTTOM", "ELM_PANEL_ORIENT_LEFT", "ELM_PANEL_ORIENT_RIGHT", NULL}; - -static Enum_Types enum_types[] = -{ {"Elm_Object_Select_Mode", Elm_Object_Select_Mode_enums}, - {"Elm_Win_Type", Elm_Win_Type_enums}, - {"Evas_Aspect_Control", Evas_Aspect_Control_enums}, - {"Elm_Toolbar_Shrink_Mode", Elm_Toolbar_Shrink_Mode_enums}, - {"Elm_Flip_Mode", Elm_Flip_Mode_enums}, - {"Elm_Scroller_Policy", Elm_Scroller_Policy_enums}, - {"Elm_Panel_Orient", Elm_Panel_Orient_enums}, - {NULL, NULL} -}; - - -#endif --