From fc8765b95a9a1b3ffc8da5a8906febf229baf9e9 Mon Sep 17 00:00:00 2001 From: Woochan Lee Date: Fri, 8 Apr 2016 14:39:06 +0900 Subject: [PATCH] Add title show/hide method. Change-Id: I637947178e532f4b258174fc51ad530a8471c3e3 --- data/edc/ui-viewmgr.edc | 31 +++++++++++++++++++++++++++++-- src/include/efl/mobile/ui_view.h | 1 + src/lib/efl/mobile/ui_view.cpp | 24 ++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 2 deletions(-) diff --git a/data/edc/ui-viewmgr.edc b/data/edc/ui-viewmgr.edc index 9bb41ed..98af0fa 100644 --- a/data/edc/ui-viewmgr.edc +++ b/data/edc/ui-viewmgr.edc @@ -835,6 +835,19 @@ collections { action: STATE_SET "hidden" 0.0; target: "clipper"; } + program { "title_show_title_default"; + action: STATE_SET "default" 0.0; + target: "title_bg"; + target: "title_clipper"; + transition: DECELERATE TRANSITION_TIME; + } + program { "title_show_anim"; + signal: "elm,state,title,show,anim"; + source: "viewmgr"; + script { + run_program(PROGRAM:"title_show_title_default"); + } + } program { "title_show"; signal: "elm,state,title,show"; source: "viewmgr"; @@ -859,7 +872,7 @@ collections { set_state(PART:"title_right_btn", "visible", 0.0); set_state(PART:"title_left_btn_bg", "visible", 0.0); set_state(PART:"title_left_padding", "hidden", 0.0); - if (get_int(prev_btn_visible) == 1){ + if (get_int(prev_btn_visible)) { set_state(PART:"title_text_left_padding", "default", 0.0); set_state(PART:"title_text_right_padding", "default", 0.0); } @@ -871,6 +884,20 @@ collections { } } } + program { "title_hide_title_hidden"; + action: STATE_SET "hidden" 0.0; + target: "title_bg"; + target: "title_clipper"; + target: "elm.swallow.prev_btn"; + transition: DECELERATE TRANSITION_TIME; + } + program { "title_hide_anim"; + signal: "elm,state,title,hide,anim"; + source: "viewmgr"; + script { + run_program(PROGRAM:"title_hide_title_hidden"); + } + } program { "title_hide"; signal: "elm,state,title,hide"; source: "viewmgr"; @@ -884,7 +911,7 @@ collections { set_state(PART:"title_right_padding", "default", 0.0); set_state(PART:"title_right_btn", "default", 0.0); set_state(PART:"elm.swallow.prev_btn", "hidden", 0.0); - if (get_int(prev_btn_visible) == 1){ + if (get_int(prev_btn_visible)){ set_state(PART:"title_text_left_padding", "prev_btn_visible", 0.0); set_state(PART:"title_text_right_padding", "prev_btn_visible", 0.0); } diff --git a/src/include/efl/mobile/ui_view.h b/src/include/efl/mobile/ui_view.h index ccc3b2c..5f0c7aa 100644 --- a/src/include/efl/mobile/ui_view.h +++ b/src/include/efl/mobile/ui_view.h @@ -79,6 +79,7 @@ public: bool set_title_right_btn(Elm_Button *title_right_btn); bool set_title(const char *text); bool set_toolbar(Elm_Toolbar *toolbar); + bool set_title_visible(bool visible, bool anim); Evas_Object *unset_content(); Elm_Button *unset_title_left_btn(); Elm_Button *unset_title_right_btn(); diff --git a/src/lib/efl/mobile/ui_view.cpp b/src/lib/efl/mobile/ui_view.cpp index c04ae84..1fb61ae 100644 --- a/src/lib/efl/mobile/ui_view.cpp +++ b/src/lib/efl/mobile/ui_view.cpp @@ -477,3 +477,27 @@ Evas_Object *ui_view::get_base() } return this->layout; } + +bool ui_view::set_title_visible(bool visible, bool anim) +{ + //FIXME: save visible, anim value. they can be used in layout created time. + Elm_Layout *layout = this->get_base(); + if (!layout) + { + LOGE("Layout is invalid! ui_view(%p)", this); + return false; + } + + if (visible) + { + if (anim) elm_object_signal_emit(layout, "elm,state,title,show,anim", "viewmgr"); + else elm_object_signal_emit(layout, "elm,state,title,show", "viewmgr"); + } + else + { + if (anim) elm_object_signal_emit(layout, "elm,state,title,hide,anim", "viewmgr"); + else elm_object_signal_emit(layout, "elm,state,title,hide", "viewmgr"); + } + + return true; +} -- 2.7.4