From: Woochan Lee Date: Thu, 18 Feb 2016 10:56:03 +0000 (+0900) Subject: viewmgr: Add tizen_view style for basic view. X-Git-Tag: submit/tizen/20160617.075742~143 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9addf90bc6d58de7e697fae7841e2a93d2c758ab;p=platform%2Fcore%2Fuifw%2Fui-viewmgr.git viewmgr: Add tizen_view style for basic view. Change-Id: I12539e1da00185e50e39c586b64cef533bb7c4cb --- diff --git a/CMakeLists.txt b/CMakeLists.txt index f25fd7c..70a797e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,7 +59,7 @@ ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${PKG_LDFLAGS}) ADD_CUSTOM_TARGET(${PROJECT_NAME}.edj - COMMAND edje_cc + COMMAND edje_cc -no-save -id ${CMAKE_CURRENT_SOURCE_DIR}/res ${CMAKE_SOURCE_DIR}/res/${PROJECT_NAME}.edc ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj DEPENDS ${CMAKE_SOURCE_DIR}/res/${PROJECT_NAME}.edc ) diff --git a/res/images/core_icon_badge_container.#.png b/res/images/core_icon_badge_container.#.png new file mode 100644 index 0000000..bba06a6 Binary files /dev/null and b/res/images/core_icon_badge_container.#.png differ diff --git a/res/images/core_theme_bg_01.png b/res/images/core_theme_bg_01.png new file mode 100644 index 0000000..477402f Binary files /dev/null and b/res/images/core_theme_bg_01.png differ diff --git a/res/ui-viewmgr.edc b/res/ui-viewmgr.edc index c38e8be..4ab56ec 100644 --- a/res/ui-viewmgr.edc +++ b/res/ui-viewmgr.edc @@ -1,352 +1,891 @@ - // Base Group gives the swallow part and base class programs - // don't use it as a style always derive it and provide the - // manndatory description and programms - // Minimum implementation by Inherited group - // 1. parts and description "swallow.view.this" and "swallow.view.other" - // "default" , "appear_from" , "disappear_to" , "onscreen" - // 2. programs - // "appear_effect_this_view" "appear_effect_other_view" - // "disappear_effect_this_view" "disappear_effect_other_view" +/* + * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved + * + * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ - -#define APPEAR_EFFECT_TIME .3 -#define DISAPPEAR_EFFECT_TIME .3 - -#define APPEAR_EFFECT_TIME_STEP_1 .1 -#define APPEAR_EFFECT_TIME_STEP_2 .2 -#define DISAPPEAR_EFFECT_TIME_STEP_1 .1 -#define DISAPPEAR_EFFECT_TIME_STEP_2 .2 - -#define APPEAR_EFFECT 1 -#define DISAPPEAR_EFFECT 2 +#define TIZEN_VIEW_BG_PORTRAIT_HEIGHT_INC 1280 +#define TIZEN_VIEW_BG_LANDSPACPE_HEIGHT_INC 720 +#define TIZEN_VIEW_TITLE_HEIGHT_INC 110 +#define TIZEN_VIEW_TITLE_TEXT_FONT_SIZE_INC 50 +#define TIZEN_VIEW_SUBTITLE_VISIBLE_TEXT_FONT_SIZE_INC 42 +#define TIZEN_VIEW_VISIBLE_TEXT_FONT_SIZE_INC 28 +#define TIZEN_VIEW_TITLE_TEXT_FONT_RANGE_INC 36 50 +#define TIZEN_VIEW_SUBTITLE_VISIBLE_TEXT_FONT_RANGE_INC 36 42 +#define TIZEN_VIEW_TITLE_TOP_PADDING_HEIGHT_INC 3 +#define TIZEN_VIEW_SUBTITLE_HEIGHT_INC 38 +#define TIZEN_VIEW_SUBTITLE_BOTTOM_PADDING_HEIGHT_INC 3 +#define TIZEN_VIEW_BADGE_ICON_LEFT_PADDING_WIDTH_INC 22 +#define TIZEN_VIEW_BADGE_TEXT_LEFT_PADDING_WIDTH_INC 22 +#define TIZEN_VIEW_BADGE_HEIGHT_INC 48 +#define TIZEN_VIEW_BADGE2_PADDING_WIDTH_INC (TIZEN_VIEW_BADGE_ICON_LEFT_PADDING_WIDTH_INC + TIZEN_VIEW_BADGE_TEXT_LEFT_PADDING_WIDTH_INC + TIZEN_VIEW_BADGE_TEXT_LEFT_PADDING_WIDTH_INC) +#define TIZEN_VIEW_TITLE_LEFT_PADDING_WIDTH_INC 32 +#define TIZEN_VIEW_TITLE_FUNC_BTN_SIZE_INC 176 110 +#define TIZEN_VIEW_TOOLBAR_HEIGHT_INC 152 +#define TIZEN_VIEW_TOOLBAR_COLOR_INC 250 250 250 255 +#define TIZEN_VIEW_TOOLBAR_LEFT_TOP_PADDING_WIDTH_INC 32 23 +#define TIZEN_VIEW_TOOLBAR_RIGHT_BOTTOM_PADDING_WIDTH_INC 32 23 +#define TIZEN_VIEW_BACK_BUTTON_LR_PADDING_WIDTH_INC 10 +#define BUTTON_TIZEN_VIEW_TITLE_BUTTON_SIZE_INC 67 67 +#define TIZEN_VIEW_BACK_BUTTON_TITLE_RIGHT_PADDING_WIDTH_INC 90 +#define BUTTON_TIZEN_VIEW_BACK_BUTTON_SIZE_INC 80 80 +#define TIZEN_VIEW_TITLE_RIGHT_PADDING_WIDTH_INC 32 collections { - group { name: "layout/viewmgr/baselayout"; + base_scale: 2.6; + styles { + style { name: "tizen_view_title_style"; + base: "font=Tizen:style=Condensed align=center font_size="TIZEN_VIEW_TITLE_TEXT_FONT_SIZE_INC" color=#FFFFFFFF wrap=none ellipsis=1.0 text_class=tizen"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { name: "tizen_view_subtitle_visible_style"; + base: "font=Tizen:style=Condensed align=center font_size="TIZEN_VIEW_SUBTITLE_VISIBLE_TEXT_FONT_SIZE_INC" color=#FFFFFFFF wrap=none ellipsis=1.0 text_class=tizen"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + style { name: "tizen_view_subtitle_style"; + base: "font=Tizen:style=Condensed align=center font_size="TIZEN_VIEW_VISIBLE_TEXT_FONT_SIZE_INC" color=#FFFFFFFF wrap=none ellipsis=1.0 text_class=tizen"; + tag: "br" "\n"; + tag: "tab" "\t"; + } + } + + group { name: "elm/layout/tizen_view/default"; + images { + image: "images/core_theme_bg_01.png" COMP; + image: "images/core_icon_badge_container.#.png" COMP; + } + script { + public landscape_mode = 0; //Landscape status + public prev_btn_visible = 0; //Previous button visible status + public title_left_btn_visible = 0; //Title left button visible status + public title_right_btn_visible = 0; //Title right button visible status + public tabbar_visible = 0; //Tabbar visible status (This value is used for tabbar group) + } parts { - part { name: "swallow.back"; - type: SWALLOW; + part { name: "base"; + type: SPACER; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; } } - part { name: "swallow.front"; - type: SWALLOW; + part { name: "bg_img"; + type: IMAGE; + scale: 1; + mouse_events: 0; + clip_to: "clipper"; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; + rel1.to: "base"; + rel2.to: "base"; + align: 0.5 0.0; + fixed: 0 1; + min: 0 TIZEN_VIEW_BG_PORTRAIT_HEIGHT_INC; + image.normal: "images/core_theme_bg_01.png"; + } + description { state: "landscape" 0.0; + inherit: "default" 0.0; + min: 0 TIZEN_VIEW_BG_LANDSPACPE_HEIGHT_INC; } } - } - } - group { name: "layout/viewmgr/noanimation"; - script { - public effectType = 0; - } - parts { - part { name: "swallow.view.other"; - type: SWALLOW; + part { name: "clipper"; + type: RECT; + mouse_events: 0; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; + visible: 1; + } + description { state: "hidden" 0.0; + visible: 0; } } - part { name: "dimmer"; + part { name: "title_bg"; type: RECT; + scale: 1; + mouse_events: 0; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; - color: 0 0 0 0; + min: 0 TIZEN_VIEW_TITLE_HEIGHT_INC; + max: -1 TIZEN_VIEW_TITLE_HEIGHT_INC; + align: 0.0 0.0; + fixed: 0 1; + rel1 { to: "base"; relative: 0.0 0.0; } + rel2 { to: "base"; relative: 1.0 0.0; } + color: 61 185 204 255; + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: -1 0; + } + } + part { name: "title_clipper"; + type: RECT; + mouse_events: 0; + clip_to: "clipper"; + description { state: "default" 0.0; + rel1.to_y: "title_bg"; + rel2.to_y: "title_bg"; + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; visible: 0; } - description { state: "dim" 0.0; - color: 0 0 0 50; + } + part { name: "title_text_left_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + rel1.to: "title_bg"; + rel2.to: "title_left_btn_bg"; } - description { state: "show" 0.0; - visible: 1; + description { state: "title_badge_visible" 0.0; + rel1.to: "title_bg"; + rel2.to: "title_badge2_padding"; + } + description { state: "prev_btn_visible" 0.0; + rel1.to: "title_bg"; + rel2 { to_x: "elm.swallow.prev_btn"; to_y: "title_bg"; relative: 1.0 1.0; } } } - part { name: "swallow.view.this"; - type: SWALLOW; + part { name: "title_text_right_padding"; + type: SPACER; + scale: 1; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; + rel1.to: "title_right_btn_bg"; + rel2.to: "title_bg"; + } + description { state: "title_badge_visible" 0.0; + rel1.to: "badge_icon_left_padding"; + rel2.to: "title_bg"; + } + description { state: "prev_btn_visible" 0.0; + rel1.to: "prev_btn_title_right_padding"; + rel2.to: "title_bg"; } } - } - programs { - // Programs that need to be overriden in derived groups - program { name : "appear_effect_this_view"; - script { - run_program(PROGRAM:"effect_finish"); + part { name: "elm.text.title"; + type: TEXTBLOCK; + scale: 1; + mouse_events: 0; + clip_to: "title_text_clipper"; + description { state: "default" 0.0; + text { + style: "tizen_view_title_style"; + size: TIZEN_VIEW_TITLE_TEXT_FONT_SIZE_INC; + size_range: TIZEN_VIEW_TITLE_TEXT_FONT_RANGE_INC; + fit: 1 0; + } + fixed: 1 1; + rel1 { to_x: "title_text_left_padding"; to_y: "title_bg"; relative: 1.0 0.0; } + rel2 { to_x: "title_text_right_padding"; to_y: "title_bg"; relative: 0.0 1.0; } + } + description { state: "subtitle_visible" 0.0; + text { + style: "tizen_view_subtitle_visible_style"; + size: TIZEN_VIEW_SUBTITLE_VISIBLE_TEXT_FONT_SIZE_INC; + size_range: TIZEN_VIEW_SUBTITLE_VISIBLE_TEXT_FONT_RANGE_INC; + fit: 1 0; + } + fixed: 1 1; + rel1 { to_x: "title_text_left_padding"; to_y: "title_top_padding"; relative: 1.0 1.0; } + rel2 { to_x: "title_text_right_padding"; to_y: "elm.text.subtitle"; relative: 0.0 0.0; } } } - program { name : "disappear_effect_this_view"; - script { - run_program(PROGRAM:"effect_finish"); + part { name: "title_text_clipper"; + type: RECT; + mouse_events: 0; + clip_to: "title_clipper"; + description { state: "default" 0.0; + rel1.to: "elm.text.title"; + rel2.to: "elm.text.title"; } } - program { name : "appear_effect_other_view"; } - program { name : "disappear_effect_other_view"; } - program { name : "effect_finish"; - script { - if(get_int(effectType) == APPEAR_EFFECT) { // for appear effect - - // reset the state - set_state(PART:"swallow.view.this", "onscreen", 0.0); - set_state(PART:"swallow.view.other", "disappear_to", 0.0); - - // emit a signal for appear effect finish - emit("appear,effect,finished",""); - } - if (get_int(effectType) == DISAPPEAR_EFFECT) { // for disappear effect - - // setup after disappear effect - set_state(PART:"swallow.view.this", "disappear_to", 0.0); - set_state(PART:"swallow.view.other", "onscreen", 0.0); - - // emit a signal for dissapear effect finish - emit("disappear,effect,finished",""); - } - set_int(effectType,0); + part { name: "title_top_padding"; + type: SPACER; + description { state: "default" 0.0; + min: 0 TIZEN_VIEW_TITLE_TOP_PADDING_HEIGHT_INC; + max: -1 TIZEN_VIEW_TITLE_TOP_PADDING_HEIGHT_INC; + fixed: 0 1; + align: 0.5 0.0; + rel1 { to: "title_bg"; relative: 0.0 0.0; } + rel2 { to: "title_bg"; relative: 1.0 0.0; } } } - program { name : "appear_effect"; - signal: "appear,effect"; - source: "elm"; - script { - set_int(effectType,APPEAR_EFFECT); - // setup before appear effect - set_state(PART:"swallow.view.this", "appear_from", 0.0); - set_state(PART:"swallow.view.other", "onscreen", 0.0); - - // run appear effect - run_program(PROGRAM:"appear_effect_this_view"); - run_program(PROGRAM:"appear_effect_other_view"); + part { name: "elm.text.subtitle"; + type: TEXTBLOCK; + scale: 1; + mouse_events: 0; + description { state: "default" 0.0; + text { style: "tizen_view_subtitle_style";} + min: 0 TIZEN_VIEW_SUBTITLE_HEIGHT_INC; + max: -1 TIZEN_VIEW_SUBTITLE_HEIGHT_INC; + fixed: 1 1; + align: 0.5 1.0; + rel1 { to_x: "title_text_left_padding"; to_y: "subtitle_bottom_padding"; relative: 1.0 0.0; } + rel2 { to_x: "title_text_right_padding"; to_y: "subtitle_bottom_padding"; relative: 0.0 0.0; } } } - program { name : "disappear_effect"; - signal: "disappear,effect"; - source: "elm"; - script { - set_int(effectType,DISAPPEAR_EFFECT); - // setup before disappear effect - set_state(PART:"swallow.view.this", "onscreen", 0.0); - set_state(PART:"swallow.view.other", "appear_from", 0.0); - - // run disappear effect - run_program(PROGRAM:"disappear_effect_this_view"); - run_program(PROGRAM:"disappear_effect_other_view"); + part { name: "subtitle_bottom_padding"; + type: SPACER; + description { state: "default" 0.0; + min: 0 TIZEN_VIEW_SUBTITLE_BOTTOM_PADDING_HEIGHT_INC; + max: -1 TIZEN_VIEW_SUBTITLE_BOTTOM_PADDING_HEIGHT_INC; + fixed: 0 1; + align: 0.5 1.0; + rel1 { to: "title_bg"; relative: 0.0 1.0; } + rel2 { to: "title_bg"; relative: 1.0 1.0; } } } - } - } - - // view manager fullscreen zoom - group { name: "layout/viewmgr/default"; - inherit: "layout/viewmgr/noanimation"; - parts { - part { name: "opacity"; + part { name: "click_event_area"; + type: RECT; + ignore_flags: ON_HOLD; + description { state: "default" 0.0; + rel1.to: "title_bg"; + rel2.to: "title_bg"; + color: 0 0 0 0; + } + } + part { name: "access.title"; type: RECT; + repeat_events: 1; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; - color: 255 255 255 255; - } - description { state: "onscreen" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; - color: 255 255 255 255; + rel1.to: "title_bg"; + rel2.to: "title_bg"; + color: 0 0 0 0; } - description { state: "appear_from" 0.0; - rel1.relative: 0.1 0.1; rel2.relative: 0.9 0.9; - color: 255 255 255 0; + } + part { name: "elm.swallow.icon"; + type: SWALLOW; + scale: 1; + clip_to: "title_clipper"; + description { state: "default" 0.0; + max: 0 0; + fixed: 1 0; + align: 0.0 0.5; + rel1 { relative: 1.0 0.0; to: "title_left_padding"; } + rel2 { relative: 1.0 1.0; to: "title_left_padding"; } + visible: 0; } - description { state: "disappear_to" 0.0; - inherit: "appear_from" 0.0; + } + part { name: "badge_icon_left_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + max: 0 -1; + fixed: 1 0; + align: 1.0 0.5; + rel1 { to_x: "badge_text_left_padding"; to_y: "title_bg"; relative: 0.0 0.0; } + rel2 { to_x: "badge_text_left_padding"; to_y: "title_bg"; relative: 0.0 1.0; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: TIZEN_VIEW_BADGE_ICON_LEFT_PADDING_WIDTH_INC 0; + max: TIZEN_VIEW_BADGE_ICON_LEFT_PADDING_WIDTH_INC -1; } } - part { name: "swallow.view.this"; - type: SWALLOW; - clip_to: opacity; + part { name: "badge_icon"; + type: IMAGE; + scale: 1; + mouse_events: 0; + clip_to: "title_clipper"; description { state: "default" 0.0; - rel1 { relative: 0.0 0.0; to: "opacity"; } - rel2 { relative: 1.0 1.0; to: "opacity"; } + min: 0 0; + max: 0 0; + fixed: 1 1; + rel1 { to_x: "badge_text_left_padding"; to_y: "title_badge"; } + rel2 { to_x: "badge_text_right_padding"; to_y: "title_badge"; } + color: 195 219 226 255; + image.normal: "images/core_icon_badge_container.#.png"; + visible: 0; + } + description { state: "visible" 0.0; + rel1 { to_x: "badge_text_left_padding"; to_y: "title_badge"; } + rel2 { to_x: "badge_text_right_padding"; to_y: "title_badge"; } + color: 195 219 226 255; + image.normal: "images/core_icon_badge_container.#.png"; + visible: 1; } } - part { name: "swallow.view.other"; - type: SWALLOW; + part { name: "badge_text_left_padding"; + type: SPACER; + scale: 1; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; + min: 0 0; + max: 0 -1; + fixed: 1 0; + align: 1.0 0.5; + rel1 { to_x: "title_badge"; to_y: "title_bg"; relative: 0.0 0.0; } + rel2 { to_x: "title_badge"; to_y: "title_bg"; relative: 0.0 1.0; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: TIZEN_VIEW_BADGE_TEXT_LEFT_PADDING_WIDTH_INC 0; + max: TIZEN_VIEW_BADGE_TEXT_LEFT_PADDING_WIDTH_INC -1; } - description { state: "onscreen" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; + } + part { name: "badge_text_right_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + max: 0 -1; + fixed: 1 0; + align: 1.0 0.5; + rel1 { to_x: "title_right_padding"; to_y: "title_bg"; relative: 0.0 0.0; } + rel2 { to_x: "title_right_padding"; to_y: "title_bg"; relative: 0.0 1.0; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: TIZEN_VIEW_BADGE_TEXT_LEFT_PADDING_WIDTH_INC 0; + max: TIZEN_VIEW_BADGE_TEXT_LEFT_PADDING_WIDTH_INC -1; } - description { state: "appear_from" 0.0; - inherit: "onscreen" 0.0; + } + part { name: "title_badge"; + type: TEXT; + scale: 1; + mouse_events: 0; + clip_to: "title_clipper"; + description { state: "default" 0.0; + text { + font: "Tizen:style=Regular"; size: "32"; + text_class: "tizen"; + min: 1 0; + max: 1 0; + align: 1.0 0.5; + ellipsis: -1; + } + color: 7 7 7 255; + min: 0 TIZEN_VIEW_BADGE_HEIGHT_INC; + max: -1 TIZEN_VIEW_BADGE_HEIGHT_INC; + fixed: 1 1; + align: 1.0 0.5; + rel1 { to_x: "badge_text_right_padding"; to_y: "elm.text.title"; relative: 0.0 0.0; } + rel2 { to_x: "badge_text_right_padding"; to_y: "elm.text.title"; relative: 0.0 1.0; } } - description { state: "disappear_to" 0.0; - inherit: "onscreen" 0.0; + } + part { name: "title_badge2"; + type: TEXT; + scale: 1; + mouse_events: 0; + clip_to: "title_clipper"; + description { state: "default" 0.0; + text { + font: "Tizen:style=Regular"; size: "32"; + text_class: "tizen"; + min: 1 0; + max: 1 0; + align: 0.0 0.5; + ellipsis: -1; + } + color: 7 7 7 255; + min: 0 TIZEN_VIEW_BADGE_HEIGHT_INC; + max: -1 TIZEN_VIEW_BADGE_HEIGHT_INC; + fixed: 1 1; + align: 0.0 0.5; + rel1 { to_x: "title_left_padding"; to_y: "elm.text.title"; relative: 1.0 0.0; } + rel2 { to_x: "title_left_padding"; to_y: "elm.text.title"; relative: 1.0 1.0; } + visible: 0; } } - } - programs { - program { name : "appear_effect"; - signal: "appear,effect"; - source: "elm"; - script { - set_int(effectType,APPEAR_EFFECT); - // setup before appear effect - set_state(PART:"opacity", "appear_from", 0.0); - set_state(PART:"swallow.view.other", "onscreen", 0.0); - - // run appear effect - run_program(PROGRAM:"appear_effect_this_view"); + part { name: "title_badge2_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + max: 0 -1; + fixed: 1 0; + align: 0.0 0.5; + rel1 { to_x: "title_badge2"; to_y: "title_bg"; relative: 1.0 0.0; } + rel2 { to_x: "title_badge2"; to_y: "title_bg"; relative: 1.0 1.0; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: TIZEN_VIEW_BADGE2_PADDING_WIDTH_INC 0; + max: TIZEN_VIEW_BADGE2_PADDING_WIDTH_INC -1; } } - program { name : "disappear_effect"; - signal: "disappear,effect"; - source: "elm"; - script { - set_int(effectType,DISAPPEAR_EFFECT); - // setup before disappear effect - set_state(PART:"swallow.view.this", "onscreen", 0.0); - set_state(PART:"opacity", "onscreen", 0.0); - set_state(PART:"swallow.view.other", "appear_from", 0.0); - - // run disappear effect - run_program(PROGRAM:"disappear_effect_this_view"); + part { name: "title_left_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: TIZEN_VIEW_TITLE_LEFT_PADDING_WIDTH_INC 0; + max: TIZEN_VIEW_TITLE_LEFT_PADDING_WIDTH_INC -1; + fixed: 1 0; + align: 0.0 0.0; + rel1 { to: "title_bg"; relative: 0.0 0.0; } + rel2 { to: "title_bg"; relative: 0.0 1.0; } + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: 0 -1; } } - program { name : "effect_finish"; - script { - if(get_int(effectType) == APPEAR_EFFECT) { // for appear effect - // emit a signal for appear effect finish - emit("appear,effect,finished",""); - } - if (get_int(effectType) == DISAPPEAR_EFFECT) { // for disappear effect - // emit a signal for dissapear effect finish - emit("disappear,effect,finished",""); - } - set_int(effectType,0); - } - } - program { name : "appear_effect_this_view"; - action: STATE_SET "onscreen" 0.0; - target: "opacity"; - transition: DECELERATE APPEAR_EFFECT_TIME; - after: "effect_finish"; - } - program { name : "disappear_effect_this_view"; - action: STATE_SET "disappear_to" 0.0; - target: "opacity"; - transition: DECELERATE DISAPPEAR_EFFECT_TIME; - after: "effect_finish"; + part { name: "title_left_btn_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + fixed: 1 0; + align: 0.0 0.5; + rel1 { to: "title_left_padding"; relative: 1.0 0.0; } + rel2 { to: "title_left_padding"; relative: 1.0 1.0; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: TIZEN_VIEW_TITLE_FUNC_BTN_SIZE_INC; + max: TIZEN_VIEW_TITLE_FUNC_BTN_SIZE_INC; + } } - } - } - - // view manager fullscreen slide in - group { name: "layout/viewmgr/slidein"; - inherit: "layout/viewmgr/noanimation"; - parts { - part { name: "swallow.view.this"; + part { name: "title_left_btn"; type: SWALLOW; + scale: 1; + clip_to: "title_clipper"; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; + fixed: 1 1; + rel1.to: "title_left_btn_bg"; + rel2.to: "title_left_btn_bg"; + visible: 0; } - description { state: "onscreen" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; } - description { state: "appear_from" 0.0; - rel1.relative: 1 0; rel2.relative: 2 1; + } + part { name: "title_right_btn_bg"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: 0 0; + fixed: 1 0; + align: 1.0 0.5; + rel1 { to: "title_right_padding"; relative: 0.0 0.0; } + rel2 { to: "title_right_padding"; relative: 0.0 1.0; } + } + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: TIZEN_VIEW_TITLE_FUNC_BTN_SIZE_INC; + max: TIZEN_VIEW_TITLE_FUNC_BTN_SIZE_INC; } - description { state: "disappear_to" 0.0; - inherit: "appear_from" 0.0; + } + part { name: "title_right_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: TIZEN_VIEW_TITLE_RIGHT_PADDING_WIDTH_INC 0; + max: TIZEN_VIEW_TITLE_RIGHT_PADDING_WIDTH_INC -1; + fixed: 1 0; + align: 1.0 0.0; + rel1 { to: "title_bg"; relative: 1.0 0.0; } + rel2 { to: "title_bg"; relative: 1.0 1.0; } + } + description { state: "hidden" 0.0; + inherit: "default" 0.0; + min: 0 0; + max: 0 -1; } } - part { name: "swallow.view.other"; + part { name: "title_right_btn"; type: SWALLOW; + scale: 1; + clip_to: "title_clipper"; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; + fixed: 1 1; + rel1.to: "title_right_btn_bg"; + rel2.to: "title_right_btn_bg"; + visible: 0; } - description { state: "onscreen" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; + description { state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; } - description { state: "appear_from" 0.0; - rel1.relative: -1 0; rel2.relative: 0 1; + } + part { name: "elm.swallow.content"; + type: SWALLOW; + scale: 1; + repeat_events: 0; + clip_to: "content_clipper"; + description { state: "default" 0.0; + align: 0.0 0.0; + rel1 { to_x: "base"; to_y: "title_bg"; relative: 0.0 1.0; } + rel2 { to_x: "base"; to_y: "toolbar"; relative: 1.0 0.0; } } - description { state: "disappear_to" 0.0; - inherit: "appear_from" 0.0; + } + part { name: "content_clipper"; + type: RECT; + mouse_events: 0; + clip_to: "clipper"; + description { state: "default" 0.0; + rel1.to_y: "elm.swallow.content"; + rel2.to_y: "elm.swallow.content"; } } - } - programs { - program { name : "appear_effect_this_view"; - action: STATE_SET "onscreen" 0.0; - target: "swallow.view.this"; - transition: DECELERATE APPEAR_EFFECT_TIME; - } - program { name : "appear_effect_other_view"; - action: STATE_SET "disappear_to" 0.0; - target: "swallow.view.other"; - transition: DECELERATE DISAPPEAR_EFFECT_TIME; - after: "effect_finish"; - } - program { name : "disappear_effect_other_view"; - action: STATE_SET "onscreen" 0.0; - target: "swallow.view.other"; - transition: DECELERATE APPEAR_EFFECT_TIME; - } - program { name : "disappear_effect_this_view"; - action: STATE_SET "disappear_to" 0.0; - target: "swallow.view.this"; - transition: DECELERATE DISAPPEAR_EFFECT_TIME; - after: "effect_finish"; + part { name: "toolbar_bg"; + type: RECT; + scale: 1; + clip_to: "toolbar_clipper"; + description { state: "default" 0.0; + rel1.to: "toolbar"; + rel2.to: "toolbar"; + color: TIZEN_VIEW_TOOLBAR_COLOR_INC; + } } - } - } - - // view manager fullscreen slide in - group { name: "layout/viewmgr/popup"; - inherit: "layout/viewmgr/noanimation"; - parts { - part { name: "swallow.view.this"; + part { name: "toolbar"; type: SWALLOW; + scale: 1; + clip_to: "toolbar_clipper"; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; + min: 0 0; + max: -1 0; + fixed: 0 1; + align: 0.5 1.0; + rel1 { to: "base"; relative: 0.0 1.0; } + rel2 { to: "base"; relative: 1.0 1.0; } + visible: 0; } - description { state: "onscreen" 0.0; - rel1.relative: 0.2 0.2; rel2.relative: 0.8 0.8; + description { state: "visible" 0.0; + inherit: "default" 0.0; + min: 0 TIZEN_VIEW_TOOLBAR_HEIGHT_INC; + max: -1 TIZEN_VIEW_TOOLBAR_HEIGHT_INC; + visible: 1; } - description { state: "appear_from" 0.0; - rel1.relative: 0.2 1; rel2.relative: 0.8 1.8; + } + part { name: "toolbar_clipper"; + type: RECT; + mouse_events: 0; + clip_to: "clipper"; + description { state: "default" 0.0; + rel1.to: "toolbar"; + rel2.to: "toolbar"; } - description { state: "disappear_to" 0.0; - inherit: "appear_from" 0.0; + } + part { name: "prev_btn_left_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: TIZEN_VIEW_BACK_BUTTON_LR_PADDING_WIDTH_INC 0; + max: TIZEN_VIEW_BACK_BUTTON_LR_PADDING_WIDTH_INC -1; + align: 0.0 0.0; + fixed: 1 1; + rel1 { to: "title_bg"; relative: 0.0 0.0; } + rel2 { to: "title_bg"; relative: 0.0 1.0; } } } - part { name: "swallow.view.other"; + part { name: "elm.swallow.prev_btn"; type: SWALLOW; + clip_to: "title_clipper"; + scale: 1; description { state: "default" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 0.0 0.0; + min: BUTTON_TIZEN_VIEW_BACK_BUTTON_SIZE_INC; + max: BUTTON_TIZEN_VIEW_BACK_BUTTON_SIZE_INC; + align: 0.0 0.5; + fixed: 1 1; + rel1 { to: "prev_btn_left_padding"; relative: 1.0 0.0; } + rel2 { to: "prev_btn_left_padding"; relative: 1.0 1.0; } + visible: 1; } - description { state: "onscreen" 0.0; - rel1.relative: 0.0 0.0; rel2.relative: 1.0 1.0; + description { state: "hidden" 0.0; + inherit: "default" 0.0; + visible: 0; } - description { state: "appear_from" 0.0; - inherit: "onscreen" 0.0; + } + part { name: "prev_btn_title_right_padding"; + type: SPACER; + scale: 1; + description { state: "default" 0.0; + min: TIZEN_VIEW_BACK_BUTTON_TITLE_RIGHT_PADDING_WIDTH_INC 0; + max: TIZEN_VIEW_BACK_BUTTON_TITLE_RIGHT_PADDING_WIDTH_INC -1; + align: 1.0 0.0; + fixed: 1 1; + rel1 { to: "title_bg"; relative: 1.0 0.0; } + rel2 { to: "title_bg"; relative: 1.0 1.0; } } - description { state: "disappear_to" 0.0; - inherit: "onscreen" 0.0; + } + part { name: "toolbar_more_btn"; + type: SWALLOW; + clip_to: "title_clipper"; + description { state: "default" 0.0; + min: 0 0; + max: 0 0; + align: 0.0 0.0; + fixed: 1 1; + rel1.to: "base"; + rel2.to: "base"; + visible: 0; } } } programs { - program { name : "appear_effect_this_view"; - action: STATE_SET "onscreen" 0.0; - target: "swallow.view.this"; - transition: DECELERATE APPEAR_EFFECT_TIME; - after: "effect_finish"; - } - program { name : "disappear_effect_this_view"; - action: STATE_SET "disappear_to" 0.0; - target: "swallow.view.this"; - transition: DECELERATE DISAPPEAR_EFFECT_TIME; - after: "effect_finish"; + program { name: "visible"; + signal: "elm,state,visible"; + source: "elm"; + action: STATE_SET "default" 0.0; + target: "clipper"; + } + program { name: "invisible"; + signal: "elm,state,invisible"; + source: "elm"; + action: STATE_SET "hidden" 0.0; + target: "clipper"; + } + program { name: "title_show"; + signal: "elm,state,title,show"; + source: "elm"; + script { + set_state(PART:"title_bg", "default", 0.0); + set_state(PART:"title_clipper", "default", 0.0); + if (get_int(title_left_btn_visible)) { + set_state(PART:"title_left_padding", "hidden", 0.0); + set_state(PART:"title_left_btn_bg", "visible", 0.0); + set_state(PART:"title_left_btn", "visible", 0.0); + set_state(PART:"title_right_btn_bg", "visible", 0.0); + set_state(PART:"title_right_padding", "hidden", 0.0); + } + else if (get_int(prev_btn_visible)) { + set_state(PART:"elm.swallow.prev_btn", "default", 0.0); + set_state(PART:"title_text_left_padding", "prev_btn_visible", 0.0); + set_state(PART:"title_text_right_padding", "prev_btn_visible", 0.0); + } + if (get_int(title_right_btn_visible)) { + set_state(PART:"title_right_padding", "hidden", 0.0); + set_state(PART:"title_right_btn_bg", "visible", 0.0); + 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){ + set_state(PART:"title_text_left_padding", "default", 0.0); + set_state(PART:"title_text_right_padding", "default", 0.0); + } + } + } + } + program { name: "title_hide"; + signal: "elm,state,title,hide"; + source: "elm"; + script { + set_state(PART:"title_bg", "hidden", 0.0); + set_state(PART:"title_clipper", "hidden", 0.0); + set_state(PART:"title_left_padding", "default", 0.0); + set_state(PART:"title_left_btn_bg", "default", 0.0); + set_state(PART:"title_left_btn", "default", 0.0); + set_state(PART:"title_right_btn_bg", "default", 0.0); + 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){ + set_state(PART:"title_text_left_padding", "prev_btn_visible", 0.0); + set_state(PART:"title_text_right_padding", "prev_btn_visible", 0.0); + } + } + } + program { name: "subtitle_show"; + signal: "elm,state,subtitle,show"; + source: "elm"; + script { + set_state(PART:"elm.text.title", "subtitle_visible", 0.0); + } + } + program { name: "subtitle_hide"; + signal: "elm,state,subtitle,hide"; + source: "elm"; + script { + set_state(PART:"elm.text.title", "default", 0.0); + } + } + program { name: "prev_btn_show"; + signal: "elm,state,prev_btn,show"; + source: "elm"; + script { + set_int(prev_btn_visible, 1); + if (get_int(title_left_btn_visible) == 0) { + set_state(PART:"elm.swallow.prev_btn", "default", 0.0); + set_state(PART:"title_text_left_padding", "prev_btn_visible", 0.0); + set_state(PART:"title_text_right_padding", "prev_btn_visible", 0.0); + } + } + } + program { name: "prev_btn_hide"; + signal: "elm,state,prev_btn,hide"; + source: "elm"; + script { + set_state(PART:"elm.swallow.prev_btn", "hidden", 0.0); + set_state(PART:"title_text_left_padding", "default", 0.0); + set_state(PART:"title_text_right_padding", "default", 0.0); + set_int(prev_btn_visible, 0); + } + } + program { name: "title_left_btn_show"; + signal: "elm,state,title_left_btn,show"; + source: "elm"; + script { + set_state(PART:"title_left_padding", "hidden", 0.0); + set_state(PART:"title_left_btn_bg", "visible", 0.0); + set_state(PART:"title_left_btn", "visible", 0.0); + set_state(PART:"title_right_btn_bg", "visible", 0.0); + set_state(PART:"title_right_padding", "hidden", 0.0); + set_state(PART:"elm.swallow.prev_btn", "hidden", 0.0); + set_state(PART:"title_text_left_padding", "default", 0.0); + set_state(PART:"title_text_right_padding", "default", 0.0); + set_int(title_left_btn_visible, 1); + } + } + program { name: "title_left_btn_hide"; + signal: "elm,state,title_left_btn,hide"; + source: "elm"; + script { + set_state(PART:"title_left_padding", "default", 0.0); + set_state(PART:"title_left_btn_bg", "default", 0.0); + set_state(PART:"title_left_btn", "default", 0.0); + set_state(PART:"title_right_padding", "default", 0.0); + set_state(PART:"title_right_btn_bg", "default", 0.0); + set_int(title_left_btn_visible, 0); + if (get_int(prev_btn_visible) == 1) { + set_state(PART:"elm.swallow.prev_btn", "default", 0.0); + set_state(PART:"title_text_left_padding", "prev_btn_visible", 0.0); + set_state(PART:"title_text_right_padding", "prev_btn_visible", 0.0); + } + } + } + program { name: "title_right_btn_show"; + signal: "elm,state,title_right_btn,show"; + source: "elm"; + script { + set_state(PART:"title_right_padding", "hidden", 0.0); + set_state(PART:"title_right_btn_bg", "visible", 0.0); + 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){ + set_state(PART:"title_text_left_padding", "default", 0.0); + set_state(PART:"title_text_right_padding", "default", 0.0); + } + set_int(title_right_btn_visible, 1); + } + } + program { name: "title_right_btn_hide"; + signal: "elm,state,title_right_btn,hide"; + source: "elm"; + script { + set_state(PART:"title_right_padding", "default", 0.0); + set_state(PART:"title_right_btn_bg", "default", 0.0); + set_state(PART:"title_right_btn", "default", 0.0); + set_state(PART:"title_left_padding", "default", 0.0); + set_state(PART:"title_left_btn_bg", "default", 0.0); + set_int(title_right_btn_visible, 0); + if (get_int(prev_btn_visible) == 1){ + set_state(PART:"title_text_left_padding", "prev_btn_visible", 0.0); + set_state(PART:"title_text_right_padding", "prev_btn_visible", 0.0); + } + } + } + program { name: "title_badge_show"; + signal: "elm,state,title_badge,show"; + source: "elm"; + script { + new buf[128]; + + set_state(PART:"badge_text_left_padding", "visible", 0.0); + set_state(PART:"badge_text_right_padding", "visible", 0.0); + set_state(PART:"badge_icon", "visible", 0.0); + set_state(PART:"badge_icon_left_padding", "visible", 0.0); + + get_text(PART:"title_badge", buf, 128); + set_text(PART:"title_badge2", buf); + set_state(PART:"title_badge2_padding", "visible", 0.0); + set_state(PART:"title_text_left_padding", "title_badge_visible", 0.0); + set_state(PART:"title_text_right_padding", "title_badge_visible", 0.0); + } + } + program { name: "title_badge_hide"; + signal: "elm,state,title_badge,hide"; + source: "elm"; + script { + set_state(PART:"badge_text_left_padding", "default", 0.0); + set_state(PART:"badge_text_right_padding", "default", 0.0); + set_state(PART:"badge_icon", "default", 0.0); + set_state(PART:"badge_icon_left_padding", "default", 0.0); + + set_text(PART:"title_badge2", ""); + set_state(PART:"title_badge2_padding", "default", 0.0); + set_state(PART:"title_text_left_padding", "default", 0.0); + set_state(PART:"title_text_right_padding", "default", 0.0); + } + } + program { name: "toolbar_show"; + signal: "elm,state,toolbar,show"; + source: "elm"; + script { + set_state(PART:"toolbar", "visible", 0.0); + } + } + program { name: "toolbar_hide"; + signal: "elm,state,toolbar,hide"; + source: "elm"; + script { + set_state(PART:"toolbar", "default", 0.0); + } + } + program { name: "title_clicked"; + signal: "mouse,clicked,1"; + source: "click_event_area"; + script { + emit("elm,action,title,clicked", ""); + } + } + program { name: "change_to_landscape"; + script { + if (!get_int(landscape_mode)) { + set_int(landscape_mode, 1); + } + set_state(PART:"bg_img", "landscape", 0.0); + } + } + program { name: "change_to_portrait"; + script { + if (get_int(landscape_mode)) { + set_int(landscape_mode, 0); + } + set_state(PART:"bg_img", "default", 0.0); + } + } + program { name: "landscape_mode"; + source: "elm"; + signal: "elm,state,orient,90"; + after: "change_to_landscape"; + } + program { name: "landscape_mode2"; + source: "elm"; + signal: "elm,state,orient,270"; + after: "change_to_landscape"; + } + program { name: "portrait_mode"; + source: "elm"; + signal: "elm,state,orient,0"; + after: "change_to_portrait"; + } + program { name: "portrait_mode2"; + source: "elm"; + signal: "elm,state,orient,180"; + after: "change_to_portrait"; } } } diff --git a/src/efl/mobile/ui_basic_view.cpp b/src/efl/mobile/ui_basic_view.cpp index db2414c..7187d5e 100644 --- a/src/efl/mobile/ui_basic_view.cpp +++ b/src/efl/mobile/ui_basic_view.cpp @@ -26,9 +26,9 @@ bool ui_basic_view::create_layout() return false; } - if (!elm_layout_theme_set(layout, "layout", "tizen_view", "default")) + if (!elm_layout_file_set(layout, EDJ_PATH, GROUP)) { - LOGE("Failed to set theme = ui_basic_view(%p)", this); + LOGE("Failed to set file = ui_basic_view(%p), path(%s), group(%s)", this, EDJ_PATH, GROUP); evas_object_del(layout); return false; } diff --git a/src/efl/mobile/ui_basic_view.h b/src/efl/mobile/ui_basic_view.h index f99674f..85f55cb 100644 --- a/src/efl/mobile/ui_basic_view.h +++ b/src/efl/mobile/ui_basic_view.h @@ -3,6 +3,10 @@ #include "../efl_viewmgr.h" +//FIXME: is it correct to define here? +#define EDJ_PATH "/opt/usr/apps/org.tizen.ui-viewmgr/res/ui-viewmgr.edj" +#define GROUP "elm/layout/tizen_view/default" + namespace efl {