On Tue, Jun 9, 2015 at 2:11 PM, Tom Hacohen <t...@osg.samsung.com> wrote: > Sorry for pushing this. Violates our commit guidelines. :( > > I haven't noticed that for some reason.
No big deal, just wrong "namespace syntax"... > > -- > Tom. > > On 09/06/15 14:07, Shinwoo Kim wrote: >> tasn pushed a commit to branch master. >> >> http://git.enlightenment.org/core/elementary.git/commit/?id=0e126b7091edcd9bd905fdbbe5b4f7d04f569586 >> >> commit 0e126b7091edcd9bd905fdbbe5b4f7d04f569586 >> Author: Shinwoo Kim <cinoo....@samsung.com> >> Date: Tue Jun 9 14:05:58 2015 +0100 >> >> [layout] support mirrored set for layout which is using >> elm_layout_file_set() >> >> Summary: mirroed mode does not work, if layout uses >> elm_layout_file_set(). >> >> Test Plan: >> the following is test code. >> [test.edc] >> collections { >> >> group { >> name: "layout/test"; >> >> parts { >> >> part { >> name: "bg"; >> type: RECT; >> description { >> state: "default" 0.0; >> color: 255 255 0 100; >> } >> } >> >> part { >> name: "test.rect"; >> type: RECT; >> description { >> state: "default" 0.0; >> color: 255 0 0 255; >> rel1.to: bg; >> rel1.relative: 0.2 0.1; >> rel2.to: bg; >> rel2.relative: 0.5 0.2; >> } >> } >> >> } /* parts */ >> } /* group */ >> } /* collections */ >> >> [test.c] >> //Compile with: >> //gcc -g test.c -o test `pkg-config --cflags --libs elementary` >> >> #include <Elementary.h> >> #include <Ecore_X.h> >> >> static void >> _bt_click(void *data, Evas_Object *obj, void *event_info) >> { >> Eina_Bool mirrored; >> Evas_Object *layout; >> >> layout = data; >> >> mirrored = elm_config_mirrored_get(); >> mirrored = !mirrored; >> printf("mirred: %d\n", mirrored); >> elm_config_mirrored_set(mirrored); >> } >> >> EAPI_MAIN int >> elm_main(int argc, char **argv) >> { >> Evas_Object *win, *box, *layout, *bt, *check; >> char buf[PATH_MAX]; >> >> elm_app_info_set(elm_main, "elementary", "./test.edj"); >> elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); >> >> win = elm_win_add(NULL, "Layout", ELM_WIN_BASIC); >> elm_win_autodel_set(win, EINA_TRUE); >> >> box = elm_box_add(win); >> evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, >> EVAS_HINT_EXPAND); >> elm_win_resize_object_add(win, box); >> evas_object_show(box); >> >> // Adding layout and filling it with widgets >> layout = elm_layout_add(win); >> evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, >> EVAS_HINT_EXPAND); >> evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, >> EVAS_HINT_FILL); >> snprintf(buf, sizeof(buf), "./test.edj"); >> elm_layout_file_set(layout, buf, "layout/test"); >> elm_box_pack_end(box, layout); >> evas_object_show(layout); >> >> bt = elm_button_add(win); >> elm_object_text_set(bt, "mirrored"); >> evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, >> EVAS_HINT_EXPAND); >> evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); >> evas_object_smart_callback_add(bt, "clicked", _bt_click, layout); >> elm_box_pack_end(box, bt); >> evas_object_show(bt); >> >> check = elm_check_add(win); >> elm_object_text_set(check, "test"); >> evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, >> EVAS_HINT_EXPAND); >> evas_object_size_hint_align_set(check, EVAS_HINT_FILL, >> EVAS_HINT_FILL); >> elm_box_pack_end(box, check); >> evas_object_show(check); >> >> evas_object_resize(win, 500, 500); >> evas_object_show(win); >> >> elm_run(); >> elm_shutdown(); >> >> return 0; >> } >> ELM_MAIN() >> >> Reviewers: seoz, raster, tasn, Hermet >> >> Subscribers: seoz, cedric >> >> Differential Revision: https://phab.enlightenment.org/D2142 >> --- >> src/lib/elm_layout.c | 21 +++++++++++++++------ >> src/lib/elm_theme.c | 1 - >> src/lib/elm_widget_layout.h | 1 + >> 3 files changed, 16 insertions(+), 7 deletions(-) >> >> diff --git a/src/lib/elm_layout.c b/src/lib/elm_layout.c >> index 991112b..f49d158 100644 >> --- a/src/lib/elm_layout.c >> +++ b/src/lib/elm_layout.c >> @@ -359,13 +359,17 @@ _elm_layout_theme_internal(Eo *obj, >> Elm_Layout_Smart_Data *sd) >> ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); >> >> /* function already prints error messages, if any */ >> - if (!elm_widget_theme_object_set(obj, wd->resize_obj, sd->klass, >> sd->group, >> - elm_widget_style_get(obj))) >> - return EINA_FALSE; >> + if (!sd->file_set) >> + { >> + ret = elm_widget_theme_object_set >> + (obj, wd->resize_obj, sd->klass, sd->group, >> + elm_widget_style_get(obj)); >> + } >> >> - ret = _visuals_refresh(obj, sd); >> + if (ret) >> + evas_object_smart_callback_call(obj, SIG_THEME_CHANGED, NULL); >> >> - evas_object_smart_callback_call(obj, SIG_THEME_CHANGED, NULL); >> + ret = _visuals_refresh(obj, sd) && ret; >> >> return ret; >> } >> @@ -852,7 +856,11 @@ _elm_layout_efl_file_file_set(Eo *obj, >> Elm_Layout_Smart_Data *sd, const char *fi >> int_ret = >> edje_object_file_set(wd->resize_obj, file, group); >> >> - if (int_ret) _visuals_refresh(obj, sd); >> + if (int_ret) >> + { >> + sd->file_set = EINA_TRUE; >> + _visuals_refresh(obj, sd); >> + } >> else >> ERR("failed to set edje file '%s', group '%s': %s", >> file, group, >> @@ -874,6 +882,7 @@ _elm_layout_theme_set(Eo *obj, Elm_Layout_Smart_Data >> *sd, const char *klass, con >> { >> ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE); >> >> + if (sd->file_set) sd->file_set = EINA_FALSE; >> eina_stringshare_replace(&(sd->klass), klass); >> eina_stringshare_replace(&(sd->group), group); >> eina_stringshare_replace(&(wd->style), style); >> diff --git a/src/lib/elm_theme.c b/src/lib/elm_theme.c >> index e2db509..8fa383e 100644 >> --- a/src/lib/elm_theme.c >> +++ b/src/lib/elm_theme.c >> @@ -293,7 +293,6 @@ _elm_theme_set(Elm_Theme *th, Evas_Object *o, const char >> *clas, const char *grou >> >> if ((!clas) || (!group) || (!style)) return EINA_FALSE; >> if (!th) th = &(theme_default); >> - >> snprintf(buf2, sizeof(buf2), "elm/%s/%s/%s", clas, group, style); >> if (!eina_hash_find(th->cache_style_load_failed, buf2)) >> { >> diff --git a/src/lib/elm_widget_layout.h b/src/lib/elm_widget_layout.h >> index f109da6..0e0871c 100644 >> --- a/src/lib/elm_widget_layout.h >> +++ b/src/lib/elm_widget_layout.h >> @@ -84,6 +84,7 @@ typedef struct _Elm_Layout_Smart_Data >> Eina_Bool restricted_calc_h : 1; >> Eina_Bool can_access : 1; /**< This is true when all >> text(including textblock) parts can be accessible by accessibility. */ >> Eina_Bool destructed_is : 1; /**< This flag indicates if >> Elm_Layout destructor was called */ >> + Eina_Bool file_set : 1; /**< This flag indicates if >> Elm_Layout source file is set */ >> } Elm_Layout_Smart_Data; >> >> /** >> > > > ------------------------------------------------------------------------------ > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel