From 5884ebfb185e457f187d397b1a5fb2cb8afc1d3f Mon Sep 17 00:00:00 2001 From: Tiago Rezende Campos Falcao Date: Tue, 30 Mar 2010 20:42:01 +0000 Subject: [PATCH] Toolbar External SVN revision: 47608 --- .../data/edje_externals/Makefile.am | 3 +- .../data/edje_externals/ico_toolbar.png | Bin 0 -> 6075 bytes .../elementary/data/edje_externals/icons.edc | 1 + .../elementary/src/edje_externals/Makefile.am | 3 +- .../src/edje_externals/elm_toolbar.c | 120 ++++++++++++++++++ .../elementary/src/edje_externals/modules.inc | 1 + legacy/elementary/src/lib/Elementary.h.in | 1 + legacy/elementary/src/lib/elm_toolbar.c | 10 ++ 8 files changed, 137 insertions(+), 2 deletions(-) create mode 100644 legacy/elementary/data/edje_externals/ico_toolbar.png create mode 100644 legacy/elementary/src/edje_externals/elm_toolbar.c diff --git a/legacy/elementary/data/edje_externals/Makefile.am b/legacy/elementary/data/edje_externals/Makefile.am index 829e4fd5dd..014dab45e6 100644 --- a/legacy/elementary/data/edje_externals/Makefile.am +++ b/legacy/elementary/data/edje_externals/Makefile.am @@ -19,7 +19,8 @@ ico_notepad.png \ ico_radio.png \ ico_scrolled_entry.png \ ico_slider.png \ -ico_toggle.png +ico_toggle.png \ +ico_toolbar.png icons.edj: Makefile $(EXTRA_DIST) $(EDJE_CC) $(EDJE_FLAGS) \ diff --git a/legacy/elementary/data/edje_externals/ico_toolbar.png b/legacy/elementary/data/edje_externals/ico_toolbar.png new file mode 100644 index 0000000000000000000000000000000000000000..c3799cb94231deb95b4690a78559338dc6c34638 GIT binary patch literal 6075 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 literal 0 HcmV?d00001 diff --git a/legacy/elementary/data/edje_externals/icons.edc b/legacy/elementary/data/edje_externals/icons.edc index 45425fd736..d4fd3b6c3d 100644 --- a/legacy/elementary/data/edje_externals/icons.edc +++ b/legacy/elementary/data/edje_externals/icons.edc @@ -21,3 +21,4 @@ ICON("radio") ICON("scrolled_entry") ICON("slider") ICON("toggle") +ICON("toolbar") diff --git a/legacy/elementary/src/edje_externals/Makefile.am b/legacy/elementary/src/edje_externals/Makefile.am index eed93555d0..55329ddb84 100644 --- a/legacy/elementary/src/edje_externals/Makefile.am +++ b/legacy/elementary/src/edje_externals/Makefile.am @@ -36,7 +36,8 @@ elm_notepad.c \ elm_radio.c \ elm_scrolled_entry.c \ elm_slider.c \ -elm_toggle.c +elm_toggle.c \ +elm_toolbar.c elm_la_LIBADD = $(top_builddir)/src/lib/libelementary.la elm_la_LDFLAGS = $(all_libraries) -no-undefined @lt_enable_auto_import@ -module -avoid-version -shared -fPIC diff --git a/legacy/elementary/src/edje_externals/elm_toolbar.c b/legacy/elementary/src/edje_externals/elm_toolbar.c new file mode 100644 index 0000000000..750a365f86 --- /dev/null +++ b/legacy/elementary/src/edje_externals/elm_toolbar.c @@ -0,0 +1,120 @@ +#include "private.h" + +typedef struct _Elm_Params_Toolbar +{ + Evas_Object *icon; + int icon_size; + Eina_Bool icon_size_exists:1; + double align; + Eina_Bool align_exists:1; +} Elm_Params_Toolbar; + +static void +external_toolbar_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from_params, const void *to_params, float pos __UNUSED__) +{ + const Elm_Params_Toolbar *p; + + if (to_params) p = to_params; + else if (from_params) p = from_params; + else return; + + if (p->icon_size_exists) + elm_toolbar_icon_size_set(obj, p->icon_size); + if (p->align_exists) + elm_toolbar_align_set(obj, p->align); +} + +static Eina_Bool +external_toolbar_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_External_Param *param) +{ + if (!strcmp(param->name, "icon_size")) + { + if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT) + { + elm_toolbar_icon_size_set(obj, param->i); + return EINA_TRUE; + } + } + else if (!strcmp(param->name, "align")) + { + if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + { + elm_toolbar_align_set(obj, param->d); + return EINA_TRUE; + } + } + + ERR("unknown parameter '%s' of type '%s'", + param->name, edje_external_param_type_str(param->type)); + + return EINA_FALSE; +} + +static Eina_Bool +external_toolbar_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_External_Param *param) +{ + if (!strcmp(param->name, "icon_size")) + { + if (param->type == EDJE_EXTERNAL_PARAM_TYPE_INT) + { + param->i = elm_toolbar_icon_size_get(obj); + return EINA_TRUE; + } + } + else if (!strcmp(param->name, "align")) + { + if (param->type == EDJE_EXTERNAL_PARAM_TYPE_DOUBLE) + { + param->d = elm_toolbar_align_get(obj); + return EINA_TRUE; + } + } + + ERR("unknown parameter '%s' of type '%s'", + param->name, edje_external_param_type_str(param->type)); + + return EINA_FALSE; +} + +static void * +external_toolbar_params_parse(void *data, Evas_Object *obj, const Eina_List *params) +{ + Elm_Params_Toolbar *mem; + Edje_External_Param *param; + const Eina_List *l; + + mem = calloc(1, sizeof(Elm_Params_Toolbar)); + if (!mem) + return NULL; + + EINA_LIST_FOREACH(params, l, param) + { + if (!strcmp(param->name, "icon_size")) + { + mem->icon_size = param->i; + mem->icon_size_exists = EINA_TRUE; + } + else if (!strcmp(param->name, "align")) + { + mem->align = param->d; + mem->align_exists = EINA_TRUE; + } + } + + return mem; +} + +static void +external_toolbar_params_free(void *params) +{ + return; +} + +static Edje_External_Param_Info external_toolbar_params[] = { + EDJE_EXTERNAL_PARAM_INFO_INT("icon_size"), + EDJE_EXTERNAL_PARAM_INFO_DOUBLE("align"), + EDJE_EXTERNAL_PARAM_INFO_SENTINEL +}; + +DEFINE_EXTERNAL_ICON_ADD(toolbar, "toolbar"); +DEFINE_EXTERNAL_TYPE_SIMPLE(toolbar, "Toolbar"); diff --git a/legacy/elementary/src/edje_externals/modules.inc b/legacy/elementary/src/edje_externals/modules.inc index 8543d130ea..d6e96f0372 100644 --- a/legacy/elementary/src/edje_externals/modules.inc +++ b/legacy/elementary/src/edje_externals/modules.inc @@ -9,3 +9,4 @@ DEFINE_TYPE(radio) DEFINE_TYPE(scrolled_entry) DEFINE_TYPE(slider) DEFINE_TYPE(toggle) +DEFINE_TYPE(toolbar) diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index a680ca31d7..80a880ff51 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -781,6 +781,7 @@ extern "C" { EAPI void elm_toolbar_menu_parent_set(Evas_Object *obj, Evas_Object *parent); EAPI void elm_toolbar_item_unselect_all(Evas_Object *obj); EAPI void elm_toolbar_align_set(Evas_Object *obj, double align); + EAPI double elm_toolbar_align_get(const Evas_Object *obj); EAPI void elm_toolbar_item_menu_set(Elm_Toolbar_Item *item, Eina_Bool menu); EAPI Evas_Object *elm_toolbar_item_menu_get(Elm_Toolbar_Item *item); /* smart callbacks called: diff --git a/legacy/elementary/src/lib/elm_toolbar.c b/legacy/elementary/src/lib/elm_toolbar.c index 527e05105e..236d0830be 100644 --- a/legacy/elementary/src/lib/elm_toolbar.c +++ b/legacy/elementary/src/lib/elm_toolbar.c @@ -573,6 +573,16 @@ elm_toolbar_align_set(Evas_Object *obj, double align) wd->align = align; } +EAPI double +elm_toolbar_align_get(const Evas_Object *obj) +{ + ELM_CHECK_WIDTYPE(obj, widtype) 0.0; + Widget_Data *wd = elm_widget_data_get(obj); + + if (!wd) return 0.0; + return wd->align; +} + EAPI void elm_toolbar_item_menu_set(Elm_Toolbar_Item *item, Eina_Bool menu) {