efl_ui_widget: find new edc resource for efl_ui_widgets

new eo widgets(efl_ui_ prefix) finds new edc group in
data/elementary/themes/edc/efl/*.edc.
New group name is "klass/group:style" and "base" group name and
"default" style name can be omitted.

for now, separator for style is ':' but needs to be decided.
This commit is contained in:
Sungtaek Hong 2017-11-14 19:59:42 +09:00
parent cff9b1b11a
commit dd4467505e
34 changed files with 1105 additions and 88 deletions

View File

@ -130,7 +130,6 @@ elementary/themes/edc/elm/menu.edc \
elementary/themes/edc/elm/multibuttonentry.edc \
elementary/themes/edc/elm/naviframe.edc \
elementary/themes/edc/elm/notify.edc \
elementary/themes/edc/elm/nstate.edc \
elementary/themes/edc/elm/panel.edc \
elementary/themes/edc/elm/panes.edc \
elementary/themes/edc/elm/photocam.edc \
@ -1016,8 +1015,28 @@ elementary/themes/snd/kbd-tap5.wav \
elementary/themes/snd/kbd-tap.wav
efl_ui_themes_files = \
elementary/themes/edc/efl/button.edc
elementary/themes/edc/efl/bg.edc \
elementary/themes/edc/efl/border.edc \
elementary/themes/edc/efl/button.edc \
elementary/themes/edc/efl/calendar.edc \
elementary/themes/edc/efl/check.edc \
elementary/themes/edc/efl/uiclock.edc \
elementary/themes/edc/efl/cursor.edc \
elementary/themes/edc/efl/focus.edc \
elementary/themes/edc/efl/frame.edc \
elementary/themes/edc/efl/multibuttonentry.edc \
elementary/themes/edc/efl/nstate.edc \
elementary/themes/edc/efl/panes.edc \
elementary/themes/edc/efl/photocam.edc \
elementary/themes/edc/efl/progress.edc \
elementary/themes/edc/efl/radio.edc \
elementary/themes/edc/efl/scroller.edc \
elementary/themes/edc/efl/slider.edc \
elementary/themes/edc/efl/text.edc \
elementary/themes/edc/efl/textpath.edc \
elementary/themes/edc/efl/tooltip.edc \
elementary/themes/edc/efl/video.edc \
elementary/themes/edc/efl/win.edc
elementary_fdo_actions_128_files = \
elementary/themes/fdo/actions/128/address-book-new.png \

View File

@ -13,7 +13,6 @@ collections {
// elm
#include "edc/elm/bg.edc"
#include "edc/elm/button.edc"
#include "edc/elm/nstate.edc"
// XXX: mobile mode needs invisible scrollers... make signals that do this
#include "edc/elm/scroller.edc"
// XXX: mobile mode needs different entry setup
@ -167,5 +166,29 @@ collections {
#include "edc/O/icons.edc"
// New efl ui themes
#include "edc/efl/bg.edc"
#include "edc/efl/button.edc"
#include "edc/efl/calendar.edc"
#include "edc/efl/nstate.edc"
// XXX: mobile mode needs invisible scrollers... make signals that do this
#include "edc/efl/scroller.edc"
// XXX: mobile mode needs different entry setup
#include "edc/efl/text.edc"
#include "edc/efl/frame.edc"
#include "edc/efl/check.edc"
#include "edc/efl/slider.edc"
#include "edc/efl/radio.edc"
#include "edc/efl/panes.edc"
#include "edc/efl/video.edc"
#include "edc/efl/focus.edc"
#include "edc/efl/multibuttonentry.edc"
#include "edc/efl/tooltip.edc"
#include "edc/efl/photocam.edc"
#include "edc/efl/progress.edc"
#include "edc/efl/border.edc"
// XXX: min size calc problems - too wide! ... err ok on my 32bit box... eh?
#include "edc/efl/cursor.edc"
#include "edc/efl/textpath.edc"
#include "edc/efl/win.edc"
#include "edc/efl/uiclock.edc"
}

View File

@ -0,0 +1,11 @@
/* bg widget style information
[SWALLOW]
elm.swallow.rectangle: Used for elm_bg_color_set()
elm.swallow.background: Used for elm_bg_file_set()
elm.swallow.content: Used for elm_layout_part_content_set(bg, "overlay", content).
*/
group { "efl/bg";
inherit: "elm/bg/base/default";
}

View File

@ -0,0 +1,21 @@
/* Window client-side decorations and extra slots
* Includes swallows for:
* - app content
* - main menu
* - indicator
* - soft key
* - virtual keyboard
*/
group { "efl/border";
inherit: "elm/border/base/default";
}
group { "efl/border/dialog";
inherit: "elm/border/dialog/default";
}
group { "efl/border/naviframe";
inherit: "elm/border/naviframe/default";
}

View File

@ -0,0 +1,8 @@
group { "efl/button";
inherit: "elm/button/base/default";
}
group { "efl/button:anchor";
inherit: "elm/button/base/anchor";
}

View File

@ -0,0 +1,3 @@
group { "efl/calendar";
inherit: "elm/calendar/base/default";
}

View File

@ -0,0 +1,7 @@
group { "efl/check";
inherit: "elm/check/base/default";
}
group { "efl/check:toggle";
inherit: "elm/check/base/toggle";
}

View File

@ -0,0 +1,91 @@
// cursors available:
//
// "x"
// "arrow"
// "based_arrow_down"
// "based_arrow_up"
// "boat"
// "bogosity"
// "bottom_left_corner"
// "bottom_right_corner"
// "bottom_side"
// "bottom_tee"
// "box_spiral"
// "center_ptr"
// "circle"
// "clock"
// "coffee_mug"
// "cross"
// "cross_reverse"
// "crosshair"
// "diamond_cross"
// "dot"
// "dot_box_mask"
// "double_arrow"
// "draft_large"
// "draft_small"
// "draped_box"
// "exchange"
// "fleur"
// "gobbler"
// "gumby"
// "hand1" *DONE*
// "hand2"
// "heart"
// "icon"
// "iron_cross"
// "left_ptr"
// "left_side"
// "left_tee"
// "leftbutton"
// "ll_angle"
// "lr_angle"
// "man"
// "middlebutton"
// "mouse"
// "pencil"
// "pirate"
// "plus"
// "question_arrow"
// "right_ptr"
// "right_side"
// "right_tee"
// "rightbutton"
// "rtl_logo"
// "sailboat"
// "sb_down_arrow"
// "sb_h_double_arrow"
// "sb_left_arrow"
// "sb_right_arrow"
// "sb_up_arrow"
// "sb_v_double_arrow"
// "shuttle"
// "sizing"
// "spider"
// "spraycan"
// "star"
// "target"
// "tcross"
// "top_left_arrow"
// "top_left_corner"
// "top_right_corner"
// "top_side"
// "top_tee"
// "trek"
// "ul_angle"
// "umbrella"
// "ur_angle"
// "watch"
// "xterm"
group { "efl/cursor/hand1";
inherit: "elm/cursor/hand1/default";
}
group { "efl/cursor/blank";
inherit: "elm/cursor/blank/default";
}
group { "efl/cursor/xterm";
inherit: "elm/cursor/xterm/default";
}

View File

@ -0,0 +1,7 @@
group { "efl/focus_highlight/top";
inherit: "elm/focus_highlight/top/default";
}
group { "efl/focus_highlight/top:blank";
inherit: "elm/focus_highlight/top/blank";
}

View File

@ -0,0 +1,3 @@
group { "efl/frame";
inherit: "elm/frame/base/default";
}

View File

@ -0,0 +1,19 @@
group { "efl/multibuttonentry";
inherit: "elm/multibuttonentry/base/default";
}
group { "efl/multibuttonentry/label";
inherit: "elm/multibuttonentry/label/default";
}
group { "efl/multibuttonentry/guidetext";
inherit: "elm/multibuttonentry/guidetext/default";
}
group { "efl/multibuttonentry/btn";
inherit: "elm/multibuttonentry/btn/default";
}
group { "efl/multibuttonentry/closedbutton";
inherit: "elm/multibuttonentry/closedbutton/default";
}

View File

@ -1,5 +1,5 @@
group { name: "elm/nstate/base/default";
inherit: "elm/button/base/default";
group { "efl/nstate";
inherit: "efl/button";
programs {
program {
signal: "mouse,clicked,1"; source: "event";

View File

@ -0,0 +1,44 @@
/* panes widget style information
[SIGNAL]
elm,panes,fixed: Used for elm_panes_fixed_set()
elm,panes,unfixed: Used for elm_panes_fixed_set()
[SIGNAL EMIT]
elm,action,click: Used for "clicked" smart callback.
elm,action,click,double: Used for "clicked,double" smart callback.
elm,action,press: Used for "press" smart callback.
elm,action,unpress: Used for "unpress" smart callback.
*/
group { "efl/panes/vertical";
inherit: "elm/panes/vertical/default";
}
group { "efl/panes/horizontal";
inherit: "elm/panes/horizontal/default";
}
group { "efl/panes/vertical:flush";
inherit: "elm/panes/vertical/flush";
}
group { "efl/panes/horizontal:flush";
inherit: "elm/panes/horizontal/flush";
}
group { "efl/panes/vertical:left-fold";
inherit: "elm/panes/vertical/left-fold";
}
group { "efl/panes/vertical:right-fold";
inherit: "elm/panes/vertical/right-fold";
}
group { "efl/panes/horizontal:up-fold";
inherit: "elm/panes/horizontal/up-fold";
}
group { "efl/panes/horizontal:down-fold";
inherit: "elm/panes/horizontal/down-fold";
}

View File

@ -0,0 +1,3 @@
group { "efl/photocam";
inherit: "elm/photocam/base/default";
}

View File

@ -0,0 +1,20 @@
group { "efl/progressbar/horizontal";
inherit: "elm/progressbar/horizontal/default";
}
group { "efl/progressbar/vertical";
inherit: "elm/progressbar/vertical/default";
}
group { "efl/progressbar/horizontal:wheel";
inherit: "elm/progressbar/horizontal/wheel";
alias: "efl/progressbar/vertical:wheel";
}
group { "efl/progressbar/horizontal:double";
inherit: "elm/progressbar/horizontal/double";
}
group { "efl/progressbar/vertical:double";
inherit: "elm/progressbar/vertical/double";
}

View File

@ -0,0 +1,3 @@
group { "efl/radio";
inherit: "elm/radio/base/default";
}

View File

@ -0,0 +1,12 @@
group { "efl/scroller";
inherit: "elm/scroller/base/default";
}
group { "efl/scroller:noclip";
inherit: "elm/scroller/base/noclip";
}
group { "efl/scroller/contents";
inherit: "elm/scroller/contents/default";
}

View File

@ -0,0 +1,73 @@
group { "efl/slider/hidden/limit";
inherit: "elm/slider/hidden/limit";
}
group { "efl/slider/horizontal/indicator";
inherit: "elm/slider/horizontal/indicator/default";
alias: "efl/slider/horizontal/indicator:disabled";
alias: "efl/slider/horizontal/popup";
alias: "efl/slider_interval/horizontal/indicator";
alias: "efl/slider_interval/horizontal/popup";
}
group { "efl/slider/vertical/indicator";
inherit: "elm/slider/vertical/indicator/default";
alias: "efl/slider/vertical/indicator:disabled";
alias: "efl/slider/vertical/popup";
alias: "efl/slider_interval/vertical/indicator";
alias: "efl/slider_interval/vertical/popup";
}
group { "efl/slider/horizontal";
inherit: "elm/slider/horizontal/default";
alias: "efl/slider/horizontal:disabled";
parts {
part { "limits";
source: "efl/slider/hidden/limit";
}
part { "button";
source: "efl/slider/horizontal/indicator";
}
}
}
group { "efl/slider/vertical";
inherit: "elm/slider/vertical/default";
alias: "efl/slider/vertical:disabled";
parts {
part { "limits";
source: "efl/slider/hidden/limit";
}
part { "button";
source: "efl/slider/vertical/indicator";
}
}
}
//Range
group { "efl/slider_interval/horizontal";
inherit: "elm/slider/range/horizontal/default";
alias: "efl/slider/horizontal:disabled";
parts {
part { "limits";
source: "efl/slider/hidden/limit";
}
part { "button";
source: "efl/slider_interval/horizontal/indicator";
}
}
}
group { "efl/slider_interval/vertical";
inherit: "elm/slider/range/vertical/default";
alias: "efl/slider/vertical:disabled";
parts {
part { "limits";
source: "efl/slider/hidden/limit";
}
part { "button";
source: "efl/slider_interval/vertical/indicator";
}
}
}

View File

@ -0,0 +1,328 @@
group { "efl/text/scroller";
inherit: "elm/scroller/entry/default";
}
group { "efl/text/single/scroller";
inherit: "elm/scroller/entry_single/default";
}
group { "efl/text/cursor";
inherit: "elm/entry/cursor/default";
alias: "efl/text/single/cursor";
alias: "efl/text/charwrap/cursor";
alias: "efl/text/mixedwrap/cursor";
alias: "efl/text/nowrap/cursor";
alias: "efl/text/noedit/cursor";
alias: "efl/text/single-noedit/cursor";
alias: "efl/text/noedit-charwrap/cursor";
alias: "efl/text/noedit-mixedwrap/cursor";
alias: "efl/text/nowrap-noedit/cursor";
}
group { "efl/text/selection";
inherit: "elm/entry/selection/default";
alias: "efl/text/single/selection";
alias: "efl/text/charwrap/selection";
alias: "efl/text/mixedwrap/selection";
alias: "efl/text/nowrap/selection";
alias: "efl/text/noedit/selection";
alias: "efl/text/single-noedit/selection";
alias: "efl/text/noedit-charwrap/selection";
alias: "efl/text/noedit-mixedwrap/selection";
alias: "efl/text/nowrap-noedit/selection";
}
group { "efl/text/anchor";
inherit: "elm/entry/anchor/default";
alias: "efl/text/single/anchor";
alias: "efl/text/charwrap/anchor";
alias: "efl/text/mixedwrap/anchor";
alias: "efl/text/nowrap/anchor";
alias: "efl/text/noedit/anchor";
alias: "efl/text/single-noedit/anchor";
alias: "efl/text/noedit-charwrap/anchor";
alias: "efl/text/noedit-mixedwrap/anchor";
alias: "efl/text/nowrap-noedit/anchor";
}
group { "efl/text";
inherit: "elm/entry/base/default";
alias: "efl/text/mixedwrap";
alias: "efl/text/charwrap";
alias: "efl/text/nowrap";
alias: "efl/text/single";
alias: "efl/text/single-noedit";
alias: "efl/text/noedit";
alias: "efl/text/noedit-mixedwrap";
alias: "efl/text/noedit-charwrap";
alias: "efl/text/nowrap-noedit";
alias: "efl/text/password";
sounds {
sample { name: "key-tap1" LOSSY 64;
source: "kbd-tap.wav";
}
sample { name: "key-tap2" LOSSY 64;
source: "kbd-tap2.wav";
}
sample { name: "key-tap3" LOSSY 64;
source: "kbd-tap3.wav";
}
sample { name: "key-tap4" LOSSY 64;
source: "kbd-tap4.wav";
}
sample { name: "key-tap5" LOSSY 64;
source: "kbd-tap5.wav";
}
}
// data.item: "context_menu_orientation" "horizontal";
parts {
part { name: "elm.swallow.background"; type: SWALLOW;
description { state: "default" 0.0;
rel1.offset: 1 1;
rel2.offset: -2 -2;
}
}
part { name: "elm.text"; type: SWALLOW;
scale: 1;
entry_mode: EDITABLE;
select_mode: DEFAULT;
// select_mode: EXPLICIT;
cursor_mode: BEFORE;
multiline: 1;
source: "efl/text/selection"; // selection under
// source2: "X"; // selection over
// source3: "X"; // cursor under
source4: "efl/text/cursor"; // cursorover
// source5: "efl/text/anchor"; // anchor under
source6: "efl/text/anchor"; // anchor over
description { state: "default" 0.0;
/* we gotta use 0 0 here, because of scrolled entries */
fixed: 0 0;
rel1.offset: 2 2;
rel2.offset: -3 -3;
}
description { state: "disabled" 0.0;
inherit: "default" 0.0;
}
}
}
programs {
program {
signal: "load"; source: "";
action: FOCUS_SET;
target: "elm.text";
}
program {
signal: "elm,state,disabled"; source: "elm";
action: STATE_SET "disabled" 0.0;
target: "elm.text";
}
program {
signal: "elm,state,enabled"; source: "elm";
action: STATE_SET "default" 0.0;
target: "elm.text";
}
#if 0
program {
signal: "elm,guide,disabled"; source: "elm";
action: STATE_SET "hidden" 0.0;
target: "elm.guide";
}
program {
signal: "elm,guide,enabled"; source: "elm";
action: STATE_SET "default" 0.0;
target: "elm.guide";
}
#endif
program { name: "key-down";
signal: "entry,keydown"; source: "elm.text";
script {
new buf[32];
snprintf(buf, 31, "key-down%i", (rand() % 5) + 1);
run_program(get_program_id(buf));
}
}
program { name: "key-down1";
action: PLAY_SAMPLE "key-tap1" 1.0 INPUT;
}
program { name: "key-down2";
action: PLAY_SAMPLE "key-tap2" 1.0 INPUT;
}
program { name: "key-down3";
action: PLAY_SAMPLE "key-tap3" 1.0 INPUT;
}
program { name: "key-down4";
action: PLAY_SAMPLE "key-tap4" 1.0 INPUT;
}
program { name: "key-down5";
action: PLAY_SAMPLE "key-tap5" 1.0 INPUT;
}
}
}
group { "efl/text/magnifier";
inherit: "elm/entry/magnifier/default";
alias: "efl/text/single/magnifier";
alias: "efl/text/charwrap/magnifier";
alias: "efl/text/mixedwrap/magnifier";
alias: "efl/text/nowrap/magnifier";
alias: "efl/text/noedit/magnifier";
alias: "efl/text/single-noedit/magnifier";
alias: "efl/text/noedit-charwrap/magnifier";
alias: "efl/text/noedit-mixedwrap/magnifier";
alias: "efl/text/nowrap-noedit/magnifier";
}
group { "efl/text/handler/start";
inherit: "elm/entry/handler/start/default";
alias: "efl/text/single/handler/start";
alias: "efl/text/charwrap/handler/start";
alias: "efl/text/mixedwrap/handler/start";
alias: "efl/text/nowrap/handler/start";
alias: "efl/text/noedit/handler/start";
alias: "efl/text/single-noedit/handler/start";
alias: "efl/text/noedit-charwrap/handler/start";
alias: "efl/text/noedit-mixedwrap/handler/start";
alias: "efl/text/nowrap-noedit/handler/start";
}
group { "efl/text/handler/end";
inherit: "elm/entry/handler/end/default";
alias: "efl/text/single/handler/end";
alias: "efl/text/charwrap/handler/end";
alias: "efl/text/mixedwrap/handler/end";
alias: "efl/text/nowrap/handler/end";
alias: "efl/text/noedit/handler/end";
alias: "efl/text/single-noedit/handler/end";
alias: "efl/text/noedit-charwrap/handler/end";
alias: "efl/text/noedit-mixedwrap/handler/end";
alias: "efl/text/nowrap-noedit/handler/end";
}
///////////////////////////////////////////////////////////////////////////////
// emoticon images from:
// Tanya - Latvia
// http://lazycrazy.deviantart.com/
// http://lazycrazy.deviantart.com/art/Very-Emotional-Emoticons-144461621
group { "efl/text/emoticon/angry"; images.image:
"emo-angry.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-angry.png"; } } } }
group { "efl/text/emoticon/angry-shout"; images.image:
"emo-angry-shout.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-angry-shout.png"; } } } }
group { "efl/text/emoticon/crazy-laugh"; images.image:
"emo-crazy-laugh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-crazy-laugh.png"; } } } }
group { "efl/text/emoticon/evil-laugh"; images.image:
"emo-evil-laugh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-evil-laugh.png"; } } } }
group { "efl/text/emoticon/evil"; images.image:
"emo-evil.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-evil.png"; } } } }
group { "efl/text/emoticon/goggle-smile"; images.image:
"emo-goggle-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-goggle-smile.png"; } } } }
group { "efl/text/emoticon/grumpy"; images.image:
"emo-grumpy.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-grumpy.png"; } } } }
group { "efl/text/emoticon/grumpy-smile"; images.image:
"emo-grumpy-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-grumpy-smile.png"; } } } }
group { "efl/text/emoticon/guilty"; images.image:
"emo-guilty.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-guilty.png"; } } } }
group { "efl/text/emoticon/guilty-smile"; images.image:
"emo-guilty-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-guilty-smile.png"; } } } }
group { "efl/text/emoticon/haha"; images.image:
"emo-haha.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-haha.png"; } } } }
group { "efl/text/emoticon/half-smile"; images.image:
"emo-half-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-half-smile.png"; } } } }
group { "efl/text/emoticon/happy-panting"; images.image:
"emo-happy-panting.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-happy-panting.png"; } } } }
group { "efl/text/emoticon/happy"; images.image:
"emo-happy.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-happy.png"; } } } }
group { "efl/text/emoticon/indifferent"; images.image:
"emo-indifferent.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-indifferent.png"; } } } }
group { "efl/text/emoticon/kiss"; images.image:
"emo-kiss.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-kiss.png"; } } } }
group { "efl/text/emoticon/knowing-grin"; images.image:
"emo-knowing-grin.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-knowing-grin.png"; } } } }
group { "efl/text/emoticon/laugh"; images.image:
"emo-laugh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-laugh.png"; } } } }
group { "efl/text/emoticon/little-bit-sorry"; images.image:
"emo-little-bit-sorry.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-little-bit-sorry.png"; } } } }
group { "efl/text/emoticon/love-lots"; images.image:
"emo-love-lots.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-love-lots.png"; } } } }
group { "efl/text/emoticon/love"; images.image:
"emo-love.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-love.png"; } } } }
group { "efl/text/emoticon/minimal-smile"; images.image:
"emo-minimal-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-minimal-smile.png"; } } } }
group { "efl/text/emoticon/not-happy"; images.image:
"emo-not-happy.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-not-happy.png"; } } } }
group { "efl/text/emoticon/not-impressed"; images.image:
"emo-not-impressed.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-not-impressed.png"; } } } }
group { "efl/text/emoticon/omg"; images.image:
"emo-omg.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-omg.png"; } } } }
group { "efl/text/emoticon/opensmile"; images.image:
"emo-opensmile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-opensmile.png"; } } } }
group { "efl/text/emoticon/smile"; images.image:
"emo-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-smile.png"; } } } }
group { "efl/text/emoticon/sorry"; images.image:
"emo-sorry.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-sorry.png"; } } } }
group { "efl/text/emoticon/squint-laugh"; images.image:
"emo-squint-laugh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-squint-laugh.png"; } } } }
group { "efl/text/emoticon/surprised"; images.image:
"emo-surprised.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-surprised.png"; } } } }
group { "efl/text/emoticon/suspicious"; images.image:
"emo-suspicious.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-suspicious.png"; } } } }
group { "efl/text/emoticon/tongue-dangling"; images.image:
"emo-tongue-dangling.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-tongue-dangling.png"; } } } }
group { "efl/text/emoticon/tongue-poke"; images.image:
"emo-tongue-poke.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-tongue-poke.png"; } } } }
group { "efl/text/emoticon/uh"; images.image:
"emo-uh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-uh.png"; } } } }
group { "efl/text/emoticon/unhappy"; images.image:
"emo-unhappy.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-unhappy.png"; } } } }
group { "efl/text/emoticon/very-sorry"; images.image:
"emo-very-sorry.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-very-sorry.png"; } } } }
group { "efl/text/emoticon/what"; images.image:
"emo-what.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-what.png"; } } } }
group { "efl/text/emoticon/wink"; images.image:
"emo-wink.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-wink.png"; } } } }
group { "efl/text/emoticon/worried"; images.image:
"emo-worried.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-worried.png"; } } } }
group { "efl/text/emoticon/wtf"; images.image:
"emo-wtf.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
"emo-wtf.png"; } } } }
//------------------------------------------------------------

View File

@ -0,0 +1,3 @@
group { "efl/textpath";
inherit: "elm/textpath/base/default";
}

View File

@ -0,0 +1,15 @@
group { "efl/label/tooltip";
inherit: "elm/label/base/tooltip/default";
alias: "efl/label/base/tooltip"; //XXX: Remove it in EFL 2.0
alias: "efl/label/base/tooltip/transparent";
}
group { "efl/tooltip";
inherit: "elm/tooltip/base/default";
}
group { "efl/tooltip:transparent";
inherit: "elm/tooltip/base/transparent";
}
///////////////////////////////////////////////////////////////////////////////

View File

@ -0,0 +1,223 @@
#define DATETIME_FIELD(_pos) \
part { \
name: "field"#_pos; type: SWALLOW; \
scale: 1; \
clip_to: "clip"; \
description { state: "default" 0.0; \
visible: 0; \
min: 0 0; \
align: 0.0 0.5; \
fixed: 1 1; \
rel1.relative: 1.0 0.0; \
rel1.to: "separator"#_pos; \
rel2.relative: 1.0 1.0; \
rel2.to: "separator"#_pos; \
} \
description { state: "enable" 0.0; \
inherit: "default" 0.0; \
visible: 1; \
min: 8 10; \
} \
} \
programs{ \
program { name: "field_"#_pos"enabled"; \
signal: "field"#_pos",enable"; source: "elm"; \
action: STATE_SET "enable" 0.0; \
target: "field"#_pos; \
} \
program { name: "field_"#_pos"disabled"; \
signal: "field"#_pos",disable"; source: "elm"; \
action: STATE_SET "default" 0.0; \
target: "field"#_pos; \
} \
}
#define DATETIME_SEPARATOR(_pos, _after) \
part { \
name: "separator"#_pos; type: TEXT; \
scale: 1; \
effect: SHADOW BOTTOM; \
clip_to: "disclip"; \
description { state: "default" 0.0; \
visible: 0; \
min: 0 0; \
align: 0.0 0.5; \
fixed: 1 0; \
rel1 { \
relative: 1.0 0.0; \
to: "field"#_after; \
} \
rel2 { \
relative: 1.0 1.0; \
to: "field"#_after; \
} \
color_class: "datetime_separator_text"; \
text { \
font: "Sans"; size: 10; \
min: 1 0; \
ellipsis: -1; \
align: 0.5 0.5; \
text_class: "datetime_separator_text"; \
} \
} \
description { state: "enable" 0.0; \
inherit: "default" 0.0; \
visible: 1; \
min: 8 10; \
} \
} \
part { \
name: "separator"#_pos"d"; type: TEXT; \
scale: 1; \
effect: SHADOW BOTTOM; \
clip_to: "disclip2"; \
description { state: "default" 0.0; \
visible: 0; \
rel1.to: "separator"#_pos; \
rel2.to: "separator"#_pos; \
color_class: "datetime_separator_text_disabled"; \
text { \
text_source: "separator"#_pos; \
font: "Sans"; size: 10; \
text_class: "datetime_separator_text_disabled"; \
} \
} \
description { state: "enable" 0.0; \
inherit: "default" 0.0; \
visible: 1; \
} \
} \
programs { \
program { \
signal: "field"#_after",enable"; source: "elm"; \
action: STATE_SET "enable" 0.0; \
target: "separator"#_pos; \
target: "separator"#_pos"d"; \
} \
program { \
signal: "field"#_after",disable"; source: "elm"; \
action: STATE_SET "default" 0.0; \
target: "separator"#_pos; \
target: "separator"#_pos"d"; \
} \
}
group { "efl/uiclock";
parts {
part { name: "bg"; type: RECT;
description { state: "default" 0.0;
color_class: "datetime_bg";
}
}
part { name: "clip"; type: RECT;
description { state: "default" 0.0;
rel1.to: "separator0";
rel2.to: "separator7";
}
}
part { name: "disclip"; type: RECT;
clip_to: "clip";
description { state: "default" 0.0;
rel1.to: "separator0";
rel2.to: "separator7";
}
description { state: "disabled" 0.0;
inherit: "default" 0.0;
visible: 0;
}
}
part { name: "disclip2"; type: RECT;
clip_to: "clip";
description { state: "default" 0.0;
rel1.to: "separator0";
rel2.to: "separator7";
visible: 0;
}
description { state: "disabled" 0.0;
inherit: "default" 0.0;
visible: 1;
}
}
part { name: "separator0"; type: SPACER;
scale: 1;
description { state: "default" 0.0;
min: 8 10;
align: 0.0 0.5;
fixed: 1 0;
rel2.relative: 0.0 1.0;
}
}
DATETIME_FIELD(0)
DATETIME_SEPARATOR(1,0)
DATETIME_FIELD(1)
DATETIME_SEPARATOR(2,1)
DATETIME_FIELD(2)
DATETIME_SEPARATOR(3,2)
DATETIME_FIELD(3)
DATETIME_SEPARATOR(4,3)
DATETIME_FIELD(4)
DATETIME_SEPARATOR(5,4)
DATETIME_FIELD(5)
DATETIME_SEPARATOR(6,5)
DATETIME_FIELD(6)
DATETIME_SEPARATOR(7,6)
DATETIME_FIELD(7)
DATETIME_SEPARATOR(8,7)
part { name: "separator9"; type: SPACER;
description { state: "default" 0.0;
rel1.to: "separator7";
rel1.relative: 1.0 0.0;
min: 8 10;
}
}
part { name: "discover"; type: RECT;
description { state: "default" 0.0;
rel1.to: "separator0";
rel2.to: "separator7";
visible: 0;
color: 0 0 0 0;
}
description { state: "disabled" 0.0;
inherit: "default" 0.0;
visible: 1;
}
}
part { name: "elm.access"; type: RECT; repeat_events: 1;
description { state: "default" 0.0;
color: 0 0 0 0;
}
}
}
programs {
program {
signal: "elm,state,disabled"; source: "elm";
action: STATE_SET "disabled" 0.0;
target: "disclip";
target: "disclip2";
target: "discover";
}
program {
signal: "elm,state,enabled"; source: "elm";
action: STATE_SET "default" 0.0;
target: "disclip";
target: "disclip2";
target: "discover";
}
}
}
#undef DATETIME_SEPARATOR
#undef DATETIME_FIELD
// AM_PM_BUTTON
group { "efl/uiclock/ampm"
inherit: "efl/button";
}
//ENTRY
group { "efl/uiclock/text"
inherit: "efl/text";
alias: "efl/uiclock/text/single";
alias: "efl/uiclock/text/single-noedit";
}
group { "efl/uiclock/text/selection"
inherit: "efl/text/selection";
}

View File

@ -0,0 +1,3 @@
group { "efl/video";
inherit: "elm/video/base/default";
}

View File

@ -0,0 +1,3 @@
group { "efl/win";
inherit: "elm/win/base/default";
}

View File

@ -53,18 +53,78 @@ static const Elm_Layout_Part_Alias_Description _content_aliases[] =
static void _set_min_size_new(void *data);
//TODO: efl_ui_slider also use this.
static const char *
_theme_group_modify_pos_get(const char *cur_group, const char *search, size_t len, Eina_Bool is_legacy)
{
const char *pos = NULL;
const char *temp_str = NULL;
if (is_legacy)
return cur_group;
temp_str = cur_group + len - strlen(search);
if (temp_str >= cur_group)
{
if (!strcmp(temp_str, search))
pos = temp_str;
}
return pos;
}
static char *
_efl_ui_panes_theme_group_get(Evas_Object *obj, Efl_Ui_Panes_Data *sd)
{
const char *pos = NULL;
const char *cur_group = elm_widget_theme_element_get(obj);
Eina_Strbuf *new_group = eina_strbuf_new();
Eina_Bool is_legacy = elm_widget_is_legacy(obj);
size_t len = 0;
if (cur_group)
{
len = strlen(cur_group);
pos = _theme_group_modify_pos_get(cur_group, "horizontal", len, is_legacy);
if (!pos)
pos = _theme_group_modify_pos_get(cur_group, "vertical", len, is_legacy);
// TODO: change separator when it is decided.
// can skip when prev_group == cur_group
if (!pos)
{
eina_strbuf_append(new_group, cur_group);
eina_strbuf_append(new_group, "/");
}
else
{
eina_strbuf_append_length(new_group, cur_group, pos - cur_group);
}
}
if (sd->dir == EFL_UI_DIR_HORIZONTAL)
eina_strbuf_append(new_group, "horizontal");
else
eina_strbuf_append(new_group, "vertical");
return eina_strbuf_release(new_group);
}
EOLIAN static Efl_Ui_Theme_Apply
_efl_ui_panes_elm_widget_theme_apply(Eo *obj, Efl_Ui_Panes_Data *sd)
{
double size;
Evas_Coord minw = 0, minh = 0;
char *group;
Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED;
if (sd->dir == EFL_UI_DIR_HORIZONTAL)
elm_widget_theme_element_set(obj, "horizontal");
else
elm_widget_theme_element_set(obj, "vertical");
group = _efl_ui_panes_theme_group_get(obj, sd);
if (group)
{
elm_widget_theme_element_set(obj, group);
free(group);
}
evas_object_hide(sd->event);
elm_coords_finger_size_adjust(1, &minw, 1, &minh);

View File

@ -663,9 +663,9 @@ _popup_add(Efl_Ui_Slider_Data *sd, Eo *obj, Evas_Object **popup,
*popup = edje_object_add(evas_object_evas_get(obj));
evas_object_smart_member_add(*popup, obj);
if (_is_horizontal(sd->dir))
_elm_theme_set(elm_widget_theme_get(obj), *popup, "slider", "horizontal/popup", elm_widget_style_get(obj));
efl_ui_widget_theme_object_set(obj, *popup, "slider", "horizontal/popup", elm_widget_style_get(obj));
else
_elm_theme_set(elm_widget_theme_get(obj), *popup, "slider", "vertical/popup", elm_widget_style_get(obj));
efl_ui_widget_theme_object_set(obj, *popup, "slider", "vertical/popup", elm_widget_style_get(obj));
edje_object_scale_set(*popup, efl_gfx_scale_get(obj) *
elm_config_scale_get());
edje_object_signal_callback_add(*popup, "popup,hide,done", "elm", // XXX: for compat
@ -708,11 +708,11 @@ _efl_ui_slider_elm_widget_theme_apply(Eo *obj, Efl_Ui_Slider_Data *sd)
else
elm_widget_theme_element_set(obj, "range/horizontal");
if (sd->popup)
_elm_theme_set(elm_widget_theme_get(obj), sd->popup,
efl_ui_widget_theme_object_set(obj, sd->popup,
"slider", "horizontal/popup",
elm_widget_style_get(obj));
if (sd->popup2)
_elm_theme_set(elm_widget_theme_get(obj), sd->popup2,
efl_ui_widget_theme_object_set(obj, sd->popup2,
"slider", "horizontal/popup",
elm_widget_style_get(obj));
}
@ -724,11 +724,11 @@ _efl_ui_slider_elm_widget_theme_apply(Eo *obj, Efl_Ui_Slider_Data *sd)
elm_widget_theme_element_set(obj, "range/vertical");
if (sd->popup)
_elm_theme_set(elm_widget_theme_get(obj), sd->popup,
efl_ui_widget_theme_object_set(obj, sd->popup,
"slider", "vertical/popup",
elm_widget_style_get(obj));
if (sd->popup2)
_elm_theme_set(elm_widget_theme_get(obj), sd->popup2,
efl_ui_widget_theme_object_set(obj, sd->popup2,
"slider", "vertical/popup",
elm_widget_style_get(obj));
}

View File

@ -658,56 +658,43 @@ _efl_ui_text_theme_group_get(Evas_Object *obj)
{
EFL_UI_TEXT_DATA_GET(obj, sd);
if (sd->password) return "password";
if (sd->editable)
{
if (sd->password) return "base-password";
else
if (sd->single_line) return "single";
switch (sd->line_wrap)
{
if (sd->single_line) return "base-single";
else
{
switch (sd->line_wrap)
{
case ELM_WRAP_CHAR:
return "base-charwrap";
case ELM_WRAP_CHAR:
return "charwrap";
case ELM_WRAP_WORD:
return "base";
case ELM_WRAP_WORD:
return "base";
case ELM_WRAP_MIXED:
return "base-mixedwrap";
case ELM_WRAP_MIXED:
return "mixedwrap";
case ELM_WRAP_NONE:
default:
return "base-nowrap";
}
}
case ELM_WRAP_NONE:
default:
return "nowrap";
}
}
else
{
if (sd->password) return "base-password";
else
if (sd->single_line) return "single-noedit";
switch (sd->line_wrap)
{
if (sd->single_line) return "base-single-noedit";
else
{
switch (sd->line_wrap)
{
case ELM_WRAP_CHAR:
return "base-noedit-charwrap";
case ELM_WRAP_CHAR:
return "noedit-charwrap";
case ELM_WRAP_WORD:
return "base-noedit";
case ELM_WRAP_WORD:
return "noedit";
case ELM_WRAP_MIXED:
return "base-noedit-mixedwrap";
case ELM_WRAP_MIXED:
return "noedit-mixedwrap";
case ELM_WRAP_NONE:
default:
return "base-nowrap-noedit";
}
}
case ELM_WRAP_NONE:
default:
return "nowrap-noedit";
}
}
}
@ -931,7 +918,7 @@ _efl_ui_text_elm_widget_theme_apply(Eo *obj, Efl_Ui_Text_Data *sd)
_mirrored_set(obj, efl_ui_mirrored_get(obj));
elm_widget_theme_object_set
(obj, sd->entry_edje, "efl_ui_text", _efl_ui_text_theme_group_get(obj), style);
(obj, sd->entry_edje, "text", _efl_ui_text_theme_group_get(obj), style);
if (elm_widget_disabled_get(obj))
edje_object_signal_emit(sd->entry_edje, "elm,state,disabled", "elm");
@ -1007,9 +994,9 @@ _efl_ui_text_elm_widget_theme_apply(Eo *obj, Efl_Ui_Text_Data *sd)
if (sd->start_handler)
{
elm_widget_theme_object_set(obj, sd->start_handler,
"entry", "handler/start", style);
"text", "handler/start", style);
elm_widget_theme_object_set(obj, sd->end_handler,
"entry", "handler/end", style);
"text", "handler/end", style);
}
sd->changed = EINA_TRUE;
@ -1753,7 +1740,7 @@ _magnifier_create(void *data)
//Bg
sd->mgf_bg = edje_object_add(e);
_elm_theme_object_set(data, sd->mgf_bg, "entry", "magnifier", "default");
elm_widget_theme_object_set(data, sd->mgf_bg, "text", "magnifier", "default");
evas_object_show(sd->mgf_bg);
//Proxy
@ -2582,16 +2569,16 @@ _item_get(void *data, const char *item)
evas_object_del(o);
o = edje_object_add(evas_object_evas_get(data));
elm_widget_theme_object_set
(data, o, "entry/emoticon", "wtf", style);
(data, o, "text/emoticon", "wtf", style);
}
return o;
}
o = edje_object_add(evas_object_evas_get(data));
if (!elm_widget_theme_object_set
(data, o, "entry", item, style))
(data, o, "text", item, style))
elm_widget_theme_object_set
(data, o, "entry/emoticon", "wtf", style);
(data, o, "text/emoticon", "wtf", style);
return o;
}
@ -3027,7 +3014,7 @@ _efl_ui_text_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Text_Data *priv)
_dnd_pos_cb, NULL,
_dnd_drop_cb, NULL);
if (!elm_layout_theme_set(obj, "efl_ui_text", "base", elm_widget_style_get(obj)))
if (!elm_layout_theme_set(obj, "text", "base", elm_widget_style_get(obj)))
CRI("Failed to set layout!");
edje_object_part_swallow(priv->entry_edje, "elm.text", text_obj);
@ -3189,7 +3176,7 @@ _create_selection_handlers(Evas_Object *obj, Efl_Ui_Text_Data *sd,
{
Evas_Object *handle;
handle = _decoration_create(sd, file, "elm/entry/handler/start", EINA_TRUE);
handle = _decoration_create(sd, file, "text/handler/start", EINA_TRUE);
evas_object_pass_events_set(handle, EINA_FALSE);
sd->start_handler = handle;
evas_object_event_callback_add(handle, EVAS_CALLBACK_MOUSE_DOWN,
@ -3200,7 +3187,7 @@ _create_selection_handlers(Evas_Object *obj, Efl_Ui_Text_Data *sd,
_start_handler_mouse_up_cb, obj);
evas_object_show(handle);
handle = _decoration_create(sd, file, "elm/entry/handler/end", EINA_TRUE);
handle = _decoration_create(sd, file, "text/handler/end", EINA_TRUE);
evas_object_pass_events_set(handle, EINA_FALSE);
sd->end_handler = handle;
evas_object_event_callback_add(handle, EVAS_CALLBACK_MOUSE_DOWN,

View File

@ -1170,7 +1170,7 @@ _elm_win_focus_highlight_reconfigure_job(void *data)
else
str = "default";
elm_widget_theme_object_set
efl_ui_widget_theme_object_set
(sd->obj, fobj, "focus_highlight", "top", str);
sd->focus_highlight.theme_changed = EINA_FALSE;
@ -3153,15 +3153,15 @@ _elm_win_wl_cursor_set(Evas_Object *obj, const char *cursor)
if (cursor)
{
if (!_elm_theme_object_set(sd->obj, sd->pointer.obj,
if (!efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj,
"cursor", cursor, "default"))
{
_elm_theme_object_set(sd->obj, sd->pointer.obj,
efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj,
"pointer", "base", "default");
}
}
else
_elm_theme_object_set(sd->obj, sd->pointer.obj,
efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj,
"pointer", "base", "default");
edje_object_size_min_get(sd->pointer.obj, &mw, &mh);
@ -3976,7 +3976,7 @@ _elm_win_frame_cb_resize_show(void *data,
{
Efl_Ui_Win_Move_Resize_Mode mode = _move_resize_mode_get(source);
const resize_info *ri = _resize_info_get(sd->rot, mode);
if (ri) _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", ri->cursor);
if (ri) efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", ri->cursor);
}
#else
(void)source;
@ -3996,7 +3996,7 @@ _elm_win_frame_cb_resize_hide(void *data,
#ifdef HAVE_ELEMENTARY_WL2
if (sd->pointer.obj)
_elm_theme_object_set(sd->obj, sd->pointer.obj,
efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj,
"pointer", "base", "default");
#endif
}
@ -4288,7 +4288,7 @@ _elm_win_frame_add(Efl_Ui_Win_Data *sd, const char *element, const char *style)
v = version ? atoi(version) : 0;
if (EINA_LIKELY(v >= FRAME_OBJ_THEME_MIN_VERSION))
{
if (!elm_widget_theme_object_set
if (!efl_ui_widget_theme_object_set
(sd->obj, sd->frame_obj, "border", element, style))
{
ERR("Failed to set main border theme for the window.");
@ -5240,7 +5240,7 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Efl_U
Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0;
sd->pointer.obj = o = edje_object_add(ecore_evas_get(tmp_sd.ee));
_elm_theme_object_set(obj, o, "pointer", "base", "default");
efl_ui_widget_theme_object_set(obj, o, "pointer", "base", "default");
edje_object_size_min_calc(o, &mw, &mh);
evas_object_resize(o, mw, mh);
edje_object_part_geometry_get(o, "elm.swallow.hotspot",
@ -6517,8 +6517,8 @@ _elm_win_theme_internal(Eo *obj, Efl_Ui_Win_Data *sd)
Eina_Bool ret = EINA_FALSE, prev_alpha;
const char *s;
int_ret = _elm_theme_object_set(obj, sd->legacy.edje, "win", "base",
elm_widget_style_get(obj));
int_ret = efl_ui_widget_theme_object_set(obj, sd->legacy.edje, "win", "base",
elm_widget_style_get(obj));
if (!int_ret) return EFL_UI_THEME_APPLY_FAILED;
edje_object_mirrored_set(sd->legacy.edje, efl_ui_mirrored_get(obj));

View File

@ -540,7 +540,8 @@ Efl_Ui_Theme_Apply _elm_theme_set(Elm_Theme *th,
Evas_Object *o,
const char *clas,
const char *group,
const char *style);
const char *style,
Eina_Bool is_legacy);
Eina_Bool _elm_theme_icon_set(Elm_Theme *th,
Evas_Object *o,
const char *group,

View File

@ -1293,8 +1293,11 @@ _elm_spinner_elm_widget_theme_apply(Eo *obj, Elm_Spinner_Data *sd)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED);
if (!elm_layout_theme_set(obj, "spinner", "base", elm_widget_style_get(obj)))
CRI("Failed to set layout!");
if (!efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)))
{
CRI("Failed to set layout!");
return EFL_UI_THEME_APPLY_FAILED;
}
if (edje_object_part_exists(wd->resize_obj, "elm.swallow.dec_button"))
sd->button_layout = EINA_TRUE;

View File

@ -281,7 +281,7 @@ _elm_theme_object_set(Evas_Object *parent, Evas_Object *o, const char *clas, con
Elm_Theme *th = NULL;
if (parent) th = elm_widget_theme_get(parent);
return _elm_theme_set(th, o, clas, group, style);
return _elm_theme_set(th, o, clas, group, style, elm_widget_is_legacy(parent));
}
/* only issued by elm_icon.c */
@ -296,14 +296,21 @@ _elm_theme_object_icon_set(Evas_Object *o,
}
Efl_Ui_Theme_Apply
_elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *group, const char *style)
_elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *group, const char *style, Eina_Bool is_legacy)
{
Eina_File *file;
char buf2[1024];
const char *group_sep = "/";
const char *style_sep = ":";
if ((!clas) || (!group) || (!style) || !o) return EFL_UI_THEME_APPLY_FAILED;
if ((!clas) || !o) return EFL_UI_THEME_APPLY_FAILED;
if (!th) th = &(theme_default);
snprintf(buf2, sizeof(buf2), "elm/%s/%s/%s", clas, group, style);
if (is_legacy)
snprintf(buf2, sizeof(buf2), "elm/%s/%s/%s", clas, (group) ? group : "base", (style) ? style : "default");
else
snprintf(buf2, sizeof(buf2), "efl/%s%s%s%s%s", clas,
((group) ? group_sep : "\0"), ((group) ? group : "\0"),
((style) ? style_sep : "\0"), ((style) ? style : "\0"));
if (!eina_hash_find(th->cache_style_load_failed, buf2))
{
file = _elm_theme_group_file_find(th, buf2);
@ -312,7 +319,7 @@ _elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *grou
if (edje_object_mmap_set(o, file, buf2)) return EFL_UI_THEME_APPLY_SUCCESS;
else
{
INF("could not set theme group '%s' from file '%s': %s",
ERR("could not set theme group '%s' from file '%s': %s",
buf2,
eina_file_filename_get(file),
edje_load_error_str(edje_object_load_error_get(o)));
@ -322,8 +329,15 @@ _elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *grou
eina_hash_add(th->cache_style_load_failed, buf2, (void *)1);
}
if (!style)
return EFL_UI_THEME_APPLY_FAILED;
// Use the elementary default style.
snprintf(buf2, sizeof(buf2), "elm/%s/%s/default", clas, group);
if (is_legacy)
snprintf(buf2, sizeof(buf2), "elm/%s/%s/%s", clas, (group) ? group : "base", "default");
else
snprintf(buf2, sizeof(buf2), "efl/%s%s%s", clas,
((group) ? group_sep : "\0"), ((group) ? group : "\0"));
if (!eina_hash_find(th->cache_style_load_failed, buf2))
{
file = _elm_theme_group_file_find(th, buf2);

View File

@ -3016,6 +3016,10 @@ elm_widget_scroll_child_locked_y_get(const Eo *obj)
EOLIAN static Efl_Ui_Theme_Apply
_elm_widget_theme_object_set(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *edj, const char *wname, const char *welement, const char *wstyle)
{
if (eina_streq(welement, "base"))
welement = NULL;
if (eina_streq(wstyle, "default"))
wstyle = NULL;
Efl_Ui_Theme_Apply ret = _elm_theme_object_set(obj, edj, wname, welement, wstyle);
if (!ret)
{
@ -3613,6 +3617,9 @@ EAPI Eina_Bool
elm_widget_theme_element_set(Evas_Object *obj, const char *name)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, pd, EINA_FALSE);
if (eina_streq(name, "base"))
name = NULL;
return eina_stringshare_replace(&(pd->group), name);
}
@ -3643,6 +3650,9 @@ EAPI Eina_Bool
elm_widget_theme_style_set(Evas_Object *obj, const char *name)
{
ELM_WIDGET_DATA_GET_OR_RETURN(obj, pd, EINA_FALSE);
if (eina_streq(name, "default"))
name = NULL;
return eina_stringshare_replace(&(pd->style), name);
}

View File

@ -270,7 +270,7 @@ _elm_cursor_obj_add(Evas_Object *obj, Elm_Cursor *cur)
cur->obj = edje_object_add(cur->evas);
if (!cur->obj) return EINA_FALSE;
if (!_elm_theme_object_set(obj, cur->obj, "cursor", cur->cursor_name,
if (!efl_ui_widget_theme_object_set(obj, cur->obj, "cursor", cur->cursor_name,
cur->style ? cur->style : "default"))
{
ELM_SAFE_FREE(cur->obj, evas_object_del);
@ -740,7 +740,7 @@ _elm_widget_efl_ui_cursor_cursor_style_set(Evas_Object *obj, Elm_Widget_Smart_Da
}
else
{
if (!_elm_theme_object_set(obj, cur->obj, "cursor", cur->cursor_name,
if (!efl_ui_widget_theme_object_set(obj, cur->obj, "cursor", cur->cursor_name,
style))
{
ERR("Could not apply the theme to the cursor style=%s", style);
@ -768,7 +768,7 @@ void
elm_cursor_theme(Elm_Cursor *cur)
{
if ((!cur) || (!cur->obj)) return;
if (!_elm_theme_object_set(cur->owner, cur->obj, "cursor",
if (!efl_ui_widget_theme_object_set(cur->owner, cur->obj, "cursor",
cur->cursor_name, cur->style))
ERR("Could not apply the theme to the cursor style=%s", cur->style);
else

View File

@ -170,7 +170,7 @@ _elm_ews_border_config_apply(Ecore_Evas *ee, Evas_Object *o, Elm_Theme *th)
if (ecore_evas_borderless_get(ee))
style = "borderless";
_elm_theme_set(th, o, "ews", "decoration", style ? style : "default");
_elm_theme_set(th, o, "ews", "decoration", style ? style : "default", EINA_TRUE);
if (ecore_evas_shaped_get(ee) || ecore_evas_alpha_get(ee) ||
ecore_evas_transparent_get(ee))
@ -446,7 +446,7 @@ _elm_ews_wm_rescale(Elm_Theme *th, Eina_Bool use_theme)
_elm_ews_wm_border_theme_set(*(void**)tp->key, tp->data, NULL);
if (_ews_bg)
_elm_theme_set(NULL, _ews_bg, "ews", "background", "default");
_elm_theme_set(NULL, _ews_bg, "ews", "background", "default", EINA_TRUE);
}
else
{
@ -454,7 +454,7 @@ _elm_ews_wm_rescale(Elm_Theme *th, Eina_Bool use_theme)
_elm_ews_wm_border_theme_set(*(void**)tp->key, tp->data, th);
if (_ews_bg)
_elm_theme_set(th, _ews_bg, "ews", "background", "default");
_elm_theme_set(th, _ews_bg, "ews", "background", "default", EINA_TRUE);
}
eina_iterator_free(it);
@ -477,7 +477,7 @@ _elm_ews_wm_init(void)
o = edje_object_add(e);
if (!o) return EINA_FALSE;
if (!_elm_theme_set(NULL, o, "ews", "background", "default"))
if (!_elm_theme_set(NULL, o, "ews", "background", "default", EINA_TRUE))
{
ERR("Could not set background theme, fallback to rectangle");
evas_object_del(o);