rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=39f3845aa1ca3baea6947760081aac7d614c70ba
commit 39f3845aa1ca3baea6947760081aac7d614c70ba Author: Andrii Kroitor <[email protected]> Date: Wed Jun 1 14:32:48 2016 +0300 Resource manager: pre-refactor Moved group, state, part and program struct to resource manager Replaced common fields with RESOURCE_COMMON macro --- src/bin/project_manager/group_manager.h | 56 ------------------------ src/bin/project_manager/resource_manager.h | 70 ++++++++++++++++++++++++++---- 2 files changed, 62 insertions(+), 64 deletions(-) diff --git a/src/bin/project_manager/group_manager.h b/src/bin/project_manager/group_manager.h index ae95e65..0dd9c3b 100644 --- a/src/bin/project_manager/group_manager.h +++ b/src/bin/project_manager/group_manager.h @@ -22,62 +22,6 @@ #include "eflete.h" -struct _State -{ - Eina_Stringshare *name; /**< state name as returned from edje_edit */ - Eina_List *used_in; /**< list of programs where state is used */ - - Eina_Stringshare *parsed_name; /**< parsed state name */ - double parsed_val; /**< parsed state value */ - Part *part; /**< pointer to part */ -}; - -struct _Part -{ - Eina_Stringshare *name; /**< part name */ - Eina_List *used_in; /**< list of programs where part is used */ - - Edje_Part_Type type; /**< part type */ - Eina_List *states; /**< list of states */ - State *current_state; /**< pointer to selected state */ - Eina_List *items; /**< list of item names. Used only for BOX and TABLE parts */ - Eina_Stringshare * current_item_name; /**< name of selected item */ - Group *group; /**< pointer to group */ - Eina_Bool visible; /**< is part visible on workspace*/ -}; - -struct _Program -{ - Eina_Stringshare *name; /**< program name */ - Eina_List *used_in; /**< list of programs where program is used */ - - Edje_Action_Type type; - Eina_List *targets; - Eina_List *afters; -}; - -struct _Group -{ - Eina_Stringshare *name; /**< group name */ - Eina_List *used_in; /**< list of parts where group is used */ - - Eina_Stringshare *widget; /**< parsed widget name */ - Eina_Stringshare *class; /**< parsed class name */ - Eina_Stringshare *style; /**< parsed style name */ - Group *main_group; /**< pointer to main group. NULL if group is not an alias */ - Eina_List *aliases; /**< list of pointers to aliases. NULL if group is an alias */ - Eina_List *parts; /**< list of parts */ - Eina_List *programs; /**< list of programs */ - Eina_List *data_items; /**< list of data */ - - Evas_Object *edit_object; /**< object needed to access group with edje_edit functions. Should be NULL if group is not open */ - Part *current_part; /**< pointer to selected part */ - Program *current_program; /**< pointer to selected program */ - Resource *current_group_data; /**< pointer to selected group_data */ - - History *history; /**< history of changes in the group */ -}; - void gm_groups_load(Project *pro); diff --git a/src/bin/project_manager/resource_manager.h b/src/bin/project_manager/resource_manager.h index 6e44cc2..7e8eab0 100644 --- a/src/bin/project_manager/resource_manager.h +++ b/src/bin/project_manager/resource_manager.h @@ -22,6 +22,10 @@ #include "eflete.h" +#define RESOURCE_COMMON \ + Eina_Stringshare *name; \ + Eina_List *used_in; \ + /** * @struct _Resource * @@ -32,8 +36,7 @@ */ struct _Resource { - Eina_Stringshare *name; - Eina_List *used_in; + RESOURCE_COMMON; }; /** @@ -46,8 +49,8 @@ struct _Resource */ struct _External_Resource { - Eina_Stringshare *name; - Eina_List *used_in; + RESOURCE_COMMON; + Eina_Stringshare *source; }; @@ -61,11 +64,63 @@ struct _External_Resource */ struct _Tone_Resource { - Eina_Stringshare *name; - Eina_List *used_in; + RESOURCE_COMMON; + int freq; }; +struct _State +{ + RESOURCE_COMMON; + + Eina_Stringshare *parsed_name; /**< parsed state name */ + double parsed_val; /**< parsed state value */ + Part *part; /**< pointer to part */ +}; + +struct _Part +{ + RESOURCE_COMMON; + + Edje_Part_Type type; /**< part type */ + Eina_List *states; /**< list of states */ + State *current_state; /**< pointer to selected state */ + Eina_List *items; /**< list of item names. Used only for BOX and TABLE parts */ + Eina_Stringshare * current_item_name; /**< name of selected item */ + Group *group; /**< pointer to group */ + Eina_Bool visible; /**< is part visible on workspace*/ +}; + +struct _Program +{ + RESOURCE_COMMON; + + Edje_Action_Type type; + Eina_List *targets; + Eina_List *afters; +}; + +struct _Group +{ + RESOURCE_COMMON; + + Eina_Stringshare *widget; /**< parsed widget name */ + Eina_Stringshare *class; /**< parsed class name */ + Eina_Stringshare *style; /**< parsed style name */ + Group *main_group; /**< pointer to main group. NULL if group is not an alias */ + Eina_List *aliases; /**< list of pointers to aliases. NULL if group is an alias */ + Eina_List *parts; /**< list of parts */ + Eina_List *programs; /**< list of programs */ + Eina_List *data_items; /**< list of data */ + + Evas_Object *edit_object; /**< object needed to access group with edje_edit functions. Should be NULL if group is not open */ + Part *current_part; /**< pointer to selected part */ + Program *current_program; /**< pointer to selected program */ + Resource *current_group_data; /**< pointer to selected group_data */ + + History *history; /**< history of changes in the group */ +}; + /** * @struct _Colorclass_Resource * @@ -76,8 +131,7 @@ struct _Tone_Resource */ struct _Colorclass_Resource { - Eina_Stringshare *name; - Eina_List *used_in; + RESOURCE_COMMON; struct { int r,g,b,a; --
