summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSungtaek Hong <sth253.hong@samsung.com>2017-11-14 19:59:42 +0900
committerSungtaek Hong <sth253.hong@samsung.com>2017-12-08 15:57:26 +0900
commitdd4467505ea29d6120e5e7d467d76836a6630ff4 (patch)
treeaeb0cc91f72e33d732a655ee1f6b80383b99cf9f
parentcff9b1b11ae2fa25f24821bcefc3a2a02f693a4b (diff)
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.
-rw-r--r--data/elementary/themes/Makefile.am25
-rw-r--r--data/elementary/themes/default.edc25
-rw-r--r--data/elementary/themes/edc/efl/bg.edc11
-rw-r--r--data/elementary/themes/edc/efl/border.edc21
-rw-r--r--data/elementary/themes/edc/efl/button.edc8
-rw-r--r--data/elementary/themes/edc/efl/calendar.edc3
-rw-r--r--data/elementary/themes/edc/efl/check.edc7
-rw-r--r--data/elementary/themes/edc/efl/cursor.edc91
-rw-r--r--data/elementary/themes/edc/efl/focus.edc7
-rw-r--r--data/elementary/themes/edc/efl/frame.edc3
-rw-r--r--data/elementary/themes/edc/efl/multibuttonentry.edc19
-rw-r--r--data/elementary/themes/edc/efl/nstate.edc (renamed from data/elementary/themes/edc/elm/nstate.edc)4
-rw-r--r--data/elementary/themes/edc/efl/panes.edc44
-rw-r--r--data/elementary/themes/edc/efl/photocam.edc3
-rw-r--r--data/elementary/themes/edc/efl/progress.edc20
-rw-r--r--data/elementary/themes/edc/efl/radio.edc3
-rw-r--r--data/elementary/themes/edc/efl/scroller.edc12
-rw-r--r--data/elementary/themes/edc/efl/slider.edc73
-rw-r--r--data/elementary/themes/edc/efl/text.edc328
-rw-r--r--data/elementary/themes/edc/efl/textpath.edc3
-rw-r--r--data/elementary/themes/edc/efl/tooltip.edc15
-rw-r--r--data/elementary/themes/edc/efl/uiclock.edc223
-rw-r--r--data/elementary/themes/edc/efl/video.edc3
-rw-r--r--data/elementary/themes/edc/efl/win.edc3
-rw-r--r--src/lib/elementary/efl_ui_panes.c68
-rw-r--r--src/lib/elementary/efl_ui_slider.c12
-rw-r--r--src/lib/elementary/efl_ui_text.c79
-rw-r--r--src/lib/elementary/efl_ui_win.c20
-rw-r--r--src/lib/elementary/elm_priv.h3
-rw-r--r--src/lib/elementary/elm_spinner.c7
-rw-r--r--src/lib/elementary/elm_theme.c26
-rw-r--r--src/lib/elementary/elm_widget.c10
-rw-r--r--src/lib/elementary/els_cursor.c6
-rw-r--r--src/lib/elementary/elu_ews_wm.c8
34 files changed, 1105 insertions, 88 deletions
diff --git a/data/elementary/themes/Makefile.am b/data/elementary/themes/Makefile.am
index f1ee7b1..758f778 100644
--- a/data/elementary/themes/Makefile.am
+++ b/data/elementary/themes/Makefile.am
@@ -130,7 +130,6 @@ elementary/themes/edc/elm/menu.edc \
130elementary/themes/edc/elm/multibuttonentry.edc \ 130elementary/themes/edc/elm/multibuttonentry.edc \
131elementary/themes/edc/elm/naviframe.edc \ 131elementary/themes/edc/elm/naviframe.edc \
132elementary/themes/edc/elm/notify.edc \ 132elementary/themes/edc/elm/notify.edc \
133elementary/themes/edc/elm/nstate.edc \
134elementary/themes/edc/elm/panel.edc \ 133elementary/themes/edc/elm/panel.edc \
135elementary/themes/edc/elm/panes.edc \ 134elementary/themes/edc/elm/panes.edc \
136elementary/themes/edc/elm/photocam.edc \ 135elementary/themes/edc/elm/photocam.edc \
@@ -1016,8 +1015,28 @@ elementary/themes/snd/kbd-tap5.wav \
1016elementary/themes/snd/kbd-tap.wav 1015elementary/themes/snd/kbd-tap.wav
1017 1016
1018efl_ui_themes_files = \ 1017efl_ui_themes_files = \
1019elementary/themes/edc/efl/button.edc 1018elementary/themes/edc/efl/bg.edc \
1020 1019elementary/themes/edc/efl/border.edc \
1020elementary/themes/edc/efl/button.edc \
1021elementary/themes/edc/efl/calendar.edc \
1022elementary/themes/edc/efl/check.edc \
1023elementary/themes/edc/efl/uiclock.edc \
1024elementary/themes/edc/efl/cursor.edc \
1025elementary/themes/edc/efl/focus.edc \
1026elementary/themes/edc/efl/frame.edc \
1027elementary/themes/edc/efl/multibuttonentry.edc \
1028elementary/themes/edc/efl/nstate.edc \
1029elementary/themes/edc/efl/panes.edc \
1030elementary/themes/edc/efl/photocam.edc \
1031elementary/themes/edc/efl/progress.edc \
1032elementary/themes/edc/efl/radio.edc \
1033elementary/themes/edc/efl/scroller.edc \
1034elementary/themes/edc/efl/slider.edc \
1035elementary/themes/edc/efl/text.edc \
1036elementary/themes/edc/efl/textpath.edc \
1037elementary/themes/edc/efl/tooltip.edc \
1038elementary/themes/edc/efl/video.edc \
1039elementary/themes/edc/efl/win.edc
1021 1040
1022elementary_fdo_actions_128_files = \ 1041elementary_fdo_actions_128_files = \
1023 elementary/themes/fdo/actions/128/address-book-new.png \ 1042 elementary/themes/fdo/actions/128/address-book-new.png \
diff --git a/data/elementary/themes/default.edc b/data/elementary/themes/default.edc
index 9d61529..d3254be 100644
--- a/data/elementary/themes/default.edc
+++ b/data/elementary/themes/default.edc
@@ -13,7 +13,6 @@ collections {
13// elm 13// elm
14#include "edc/elm/bg.edc" 14#include "edc/elm/bg.edc"
15#include "edc/elm/button.edc" 15#include "edc/elm/button.edc"
16#include "edc/elm/nstate.edc"
17// XXX: mobile mode needs invisible scrollers... make signals that do this 16// XXX: mobile mode needs invisible scrollers... make signals that do this
18#include "edc/elm/scroller.edc" 17#include "edc/elm/scroller.edc"
19// XXX: mobile mode needs different entry setup 18// XXX: mobile mode needs different entry setup
@@ -167,5 +166,29 @@ collections {
167#include "edc/O/icons.edc" 166#include "edc/O/icons.edc"
168 167
169// New efl ui themes 168// New efl ui themes
169#include "edc/efl/bg.edc"
170#include "edc/efl/button.edc" 170#include "edc/efl/button.edc"
171#include "edc/efl/calendar.edc"
172#include "edc/efl/nstate.edc"
173// XXX: mobile mode needs invisible scrollers... make signals that do this
174#include "edc/efl/scroller.edc"
175// XXX: mobile mode needs different entry setup
176#include "edc/efl/text.edc"
177#include "edc/efl/frame.edc"
178#include "edc/efl/check.edc"
179#include "edc/efl/slider.edc"
180#include "edc/efl/radio.edc"
181#include "edc/efl/panes.edc"
182#include "edc/efl/video.edc"
183#include "edc/efl/focus.edc"
184#include "edc/efl/multibuttonentry.edc"
185#include "edc/efl/tooltip.edc"
186#include "edc/efl/photocam.edc"
187#include "edc/efl/progress.edc"
188#include "edc/efl/border.edc"
189// XXX: min size calc problems - too wide! ... err ok on my 32bit box... eh?
190#include "edc/efl/cursor.edc"
191#include "edc/efl/textpath.edc"
192#include "edc/efl/win.edc"
193#include "edc/efl/uiclock.edc"
171} 194}
diff --git a/data/elementary/themes/edc/efl/bg.edc b/data/elementary/themes/edc/efl/bg.edc
new file mode 100644
index 0000000..43547d3
--- /dev/null
+++ b/data/elementary/themes/edc/efl/bg.edc
@@ -0,0 +1,11 @@
1/* bg widget style information
2
3 [SWALLOW]
4 elm.swallow.rectangle: Used for elm_bg_color_set()
5 elm.swallow.background: Used for elm_bg_file_set()
6 elm.swallow.content: Used for elm_layout_part_content_set(bg, "overlay", content).
7*/
8
9group { "efl/bg";
10 inherit: "elm/bg/base/default";
11}
diff --git a/data/elementary/themes/edc/efl/border.edc b/data/elementary/themes/edc/efl/border.edc
new file mode 100644
index 0000000..5574826
--- /dev/null
+++ b/data/elementary/themes/edc/efl/border.edc
@@ -0,0 +1,21 @@
1/* Window client-side decorations and extra slots
2 * Includes swallows for:
3 * - app content
4 * - main menu
5 * - indicator
6 * - soft key
7 * - virtual keyboard
8 */
9
10group { "efl/border";
11 inherit: "elm/border/base/default";
12}
13
14group { "efl/border/dialog";
15 inherit: "elm/border/dialog/default";
16}
17
18group { "efl/border/naviframe";
19 inherit: "elm/border/naviframe/default";
20}
21
diff --git a/data/elementary/themes/edc/efl/button.edc b/data/elementary/themes/edc/efl/button.edc
index e69de29..1fe935b 100644
--- a/data/elementary/themes/edc/efl/button.edc
+++ b/data/elementary/themes/edc/efl/button.edc
@@ -0,0 +1,8 @@
1group { "efl/button";
2 inherit: "elm/button/base/default";
3}
4
5group { "efl/button:anchor";
6 inherit: "elm/button/base/anchor";
7}
8
diff --git a/data/elementary/themes/edc/efl/calendar.edc b/data/elementary/themes/edc/efl/calendar.edc
new file mode 100644
index 0000000..c6b8276
--- /dev/null
+++ b/data/elementary/themes/edc/efl/calendar.edc
@@ -0,0 +1,3 @@
1group { "efl/calendar";
2 inherit: "elm/calendar/base/default";
3}
diff --git a/data/elementary/themes/edc/efl/check.edc b/data/elementary/themes/edc/efl/check.edc
new file mode 100644
index 0000000..76db7a8
--- /dev/null
+++ b/data/elementary/themes/edc/efl/check.edc
@@ -0,0 +1,7 @@
1group { "efl/check";
2 inherit: "elm/check/base/default";
3}
4
5group { "efl/check:toggle";
6 inherit: "elm/check/base/toggle";
7}
diff --git a/data/elementary/themes/edc/efl/cursor.edc b/data/elementary/themes/edc/efl/cursor.edc
new file mode 100644
index 0000000..1302e4c
--- /dev/null
+++ b/data/elementary/themes/edc/efl/cursor.edc
@@ -0,0 +1,91 @@
1// cursors available:
2//
3// "x"
4// "arrow"
5// "based_arrow_down"
6// "based_arrow_up"
7// "boat"
8// "bogosity"
9// "bottom_left_corner"
10// "bottom_right_corner"
11// "bottom_side"
12// "bottom_tee"
13// "box_spiral"
14// "center_ptr"
15// "circle"
16// "clock"
17// "coffee_mug"
18// "cross"
19// "cross_reverse"
20// "crosshair"
21// "diamond_cross"
22// "dot"
23// "dot_box_mask"
24// "double_arrow"
25// "draft_large"
26// "draft_small"
27// "draped_box"
28// "exchange"
29// "fleur"
30// "gobbler"
31// "gumby"
32// "hand1" *DONE*
33// "hand2"
34// "heart"
35// "icon"
36// "iron_cross"
37// "left_ptr"
38// "left_side"
39// "left_tee"
40// "leftbutton"
41// "ll_angle"
42// "lr_angle"
43// "man"
44// "middlebutton"
45// "mouse"
46// "pencil"
47// "pirate"
48// "plus"
49// "question_arrow"
50// "right_ptr"
51// "right_side"
52// "right_tee"
53// "rightbutton"
54// "rtl_logo"
55// "sailboat"
56// "sb_down_arrow"
57// "sb_h_double_arrow"
58// "sb_left_arrow"
59// "sb_right_arrow"
60// "sb_up_arrow"
61// "sb_v_double_arrow"
62// "shuttle"
63// "sizing"
64// "spider"
65// "spraycan"
66// "star"
67// "target"
68// "tcross"
69// "top_left_arrow"
70// "top_left_corner"
71// "top_right_corner"
72// "top_side"
73// "top_tee"
74// "trek"
75// "ul_angle"
76// "umbrella"
77// "ur_angle"
78// "watch"
79// "xterm"
80
81group { "efl/cursor/hand1";
82 inherit: "elm/cursor/hand1/default";
83}
84
85group { "efl/cursor/blank";
86 inherit: "elm/cursor/blank/default";
87}
88
89group { "efl/cursor/xterm";
90 inherit: "elm/cursor/xterm/default";
91}
diff --git a/data/elementary/themes/edc/efl/focus.edc b/data/elementary/themes/edc/efl/focus.edc
new file mode 100644
index 0000000..d7c3b78
--- /dev/null
+++ b/data/elementary/themes/edc/efl/focus.edc
@@ -0,0 +1,7 @@
1group { "efl/focus_highlight/top";
2 inherit: "elm/focus_highlight/top/default";
3}
4
5group { "efl/focus_highlight/top:blank";
6 inherit: "elm/focus_highlight/top/blank";
7}
diff --git a/data/elementary/themes/edc/efl/frame.edc b/data/elementary/themes/edc/efl/frame.edc
new file mode 100644
index 0000000..f8b4690
--- /dev/null
+++ b/data/elementary/themes/edc/efl/frame.edc
@@ -0,0 +1,3 @@
1group { "efl/frame";
2 inherit: "elm/frame/base/default";
3}
diff --git a/data/elementary/themes/edc/efl/multibuttonentry.edc b/data/elementary/themes/edc/efl/multibuttonentry.edc
new file mode 100644
index 0000000..149f9e6
--- /dev/null
+++ b/data/elementary/themes/edc/efl/multibuttonentry.edc
@@ -0,0 +1,19 @@
1group { "efl/multibuttonentry";
2 inherit: "elm/multibuttonentry/base/default";
3}
4
5group { "efl/multibuttonentry/label";
6 inherit: "elm/multibuttonentry/label/default";
7}
8
9group { "efl/multibuttonentry/guidetext";
10 inherit: "elm/multibuttonentry/guidetext/default";
11}
12
13group { "efl/multibuttonentry/btn";
14 inherit: "elm/multibuttonentry/btn/default";
15}
16
17group { "efl/multibuttonentry/closedbutton";
18 inherit: "elm/multibuttonentry/closedbutton/default";
19}
diff --git a/data/elementary/themes/edc/elm/nstate.edc b/data/elementary/themes/edc/efl/nstate.edc
index f058806..c63624d 100644
--- a/data/elementary/themes/edc/elm/nstate.edc
+++ b/data/elementary/themes/edc/efl/nstate.edc
@@ -1,5 +1,5 @@
1group { name: "elm/nstate/base/default"; 1group { "efl/nstate";
2 inherit: "elm/button/base/default"; 2 inherit: "efl/button";
3 programs { 3 programs {
4 program { 4 program {
5 signal: "mouse,clicked,1"; source: "event"; 5 signal: "mouse,clicked,1"; source: "event";
diff --git a/data/elementary/themes/edc/efl/panes.edc b/data/elementary/themes/edc/efl/panes.edc
new file mode 100644
index 0000000..38f178c
--- /dev/null
+++ b/data/elementary/themes/edc/efl/panes.edc
@@ -0,0 +1,44 @@
1/* panes widget style information
2
3 [SIGNAL]
4 elm,panes,fixed: Used for elm_panes_fixed_set()
5 elm,panes,unfixed: Used for elm_panes_fixed_set()
6
7 [SIGNAL EMIT]
8 elm,action,click: Used for "clicked" smart callback.
9 elm,action,click,double: Used for "clicked,double" smart callback.
10 elm,action,press: Used for "press" smart callback.
11 elm,action,unpress: Used for "unpress" smart callback.
12*/
13
14group { "efl/panes/vertical";
15 inherit: "elm/panes/vertical/default";
16}
17
18group { "efl/panes/horizontal";
19 inherit: "elm/panes/horizontal/default";
20}
21
22group { "efl/panes/vertical:flush";
23 inherit: "elm/panes/vertical/flush";
24}
25
26group { "efl/panes/horizontal:flush";
27 inherit: "elm/panes/horizontal/flush";
28}
29
30group { "efl/panes/vertical:left-fold";
31 inherit: "elm/panes/vertical/left-fold";
32}
33
34group { "efl/panes/vertical:right-fold";
35 inherit: "elm/panes/vertical/right-fold";
36}
37
38group { "efl/panes/horizontal:up-fold";
39 inherit: "elm/panes/horizontal/up-fold";
40}
41
42group { "efl/panes/horizontal:down-fold";
43 inherit: "elm/panes/horizontal/down-fold";
44}
diff --git a/data/elementary/themes/edc/efl/photocam.edc b/data/elementary/themes/edc/efl/photocam.edc
new file mode 100644
index 0000000..ccc226e
--- /dev/null
+++ b/data/elementary/themes/edc/efl/photocam.edc
@@ -0,0 +1,3 @@
1group { "efl/photocam";
2 inherit: "elm/photocam/base/default";
3}
diff --git a/data/elementary/themes/edc/efl/progress.edc b/data/elementary/themes/edc/efl/progress.edc
new file mode 100644
index 0000000..2cb11b2
--- /dev/null
+++ b/data/elementary/themes/edc/efl/progress.edc
@@ -0,0 +1,20 @@
1group { "efl/progressbar/horizontal";
2 inherit: "elm/progressbar/horizontal/default";
3}
4
5group { "efl/progressbar/vertical";
6 inherit: "elm/progressbar/vertical/default";
7}
8
9group { "efl/progressbar/horizontal:wheel";
10 inherit: "elm/progressbar/horizontal/wheel";
11 alias: "efl/progressbar/vertical:wheel";
12}
13
14group { "efl/progressbar/horizontal:double";
15 inherit: "elm/progressbar/horizontal/double";
16}
17
18group { "efl/progressbar/vertical:double";
19 inherit: "elm/progressbar/vertical/double";
20}
diff --git a/data/elementary/themes/edc/efl/radio.edc b/data/elementary/themes/edc/efl/radio.edc
new file mode 100644
index 0000000..5c6dc64
--- /dev/null
+++ b/data/elementary/themes/edc/efl/radio.edc
@@ -0,0 +1,3 @@
1group { "efl/radio";
2 inherit: "elm/radio/base/default";
3}
diff --git a/data/elementary/themes/edc/efl/scroller.edc b/data/elementary/themes/edc/efl/scroller.edc
new file mode 100644
index 0000000..e0d8148
--- /dev/null
+++ b/data/elementary/themes/edc/efl/scroller.edc
@@ -0,0 +1,12 @@
1group { "efl/scroller";
2 inherit: "elm/scroller/base/default";
3}
4
5group { "efl/scroller:noclip";
6 inherit: "elm/scroller/base/noclip";
7}
8
9group { "efl/scroller/contents";
10 inherit: "elm/scroller/contents/default";
11}
12
diff --git a/data/elementary/themes/edc/efl/slider.edc b/data/elementary/themes/edc/efl/slider.edc
new file mode 100644
index 0000000..20b479b
--- /dev/null
+++ b/data/elementary/themes/edc/efl/slider.edc
@@ -0,0 +1,73 @@
1group { "efl/slider/hidden/limit";
2 inherit: "elm/slider/hidden/limit";
3}
4
5group { "efl/slider/horizontal/indicator";
6 inherit: "elm/slider/horizontal/indicator/default";
7 alias: "efl/slider/horizontal/indicator:disabled";
8 alias: "efl/slider/horizontal/popup";
9 alias: "efl/slider_interval/horizontal/indicator";
10 alias: "efl/slider_interval/horizontal/popup";
11}
12
13group { "efl/slider/vertical/indicator";
14 inherit: "elm/slider/vertical/indicator/default";
15 alias: "efl/slider/vertical/indicator:disabled";
16 alias: "efl/slider/vertical/popup";
17 alias: "efl/slider_interval/vertical/indicator";
18 alias: "efl/slider_interval/vertical/popup";
19}
20
21group { "efl/slider/horizontal";
22 inherit: "elm/slider/horizontal/default";
23 alias: "efl/slider/horizontal:disabled";
24 parts {
25 part { "limits";
26 source: "efl/slider/hidden/limit";
27 }
28 part { "button";
29 source: "efl/slider/horizontal/indicator";
30 }
31 }
32}
33
34group { "efl/slider/vertical";
35 inherit: "elm/slider/vertical/default";
36 alias: "efl/slider/vertical:disabled";
37 parts {
38 part { "limits";
39 source: "efl/slider/hidden/limit";
40 }
41 part { "button";
42 source: "efl/slider/vertical/indicator";
43 }
44 }
45}
46
47//Range
48
49group { "efl/slider_interval/horizontal";
50 inherit: "elm/slider/range/horizontal/default";
51 alias: "efl/slider/horizontal:disabled";
52 parts {
53 part { "limits";
54 source: "efl/slider/hidden/limit";
55 }
56 part { "button";
57 source: "efl/slider_interval/horizontal/indicator";
58 }
59 }
60}
61
62group { "efl/slider_interval/vertical";
63 inherit: "elm/slider/range/vertical/default";
64 alias: "efl/slider/vertical:disabled";
65 parts {
66 part { "limits";
67 source: "efl/slider/hidden/limit";
68 }
69 part { "button";
70 source: "efl/slider_interval/vertical/indicator";
71 }
72 }
73}
diff --git a/data/elementary/themes/edc/efl/text.edc b/data/elementary/themes/edc/efl/text.edc
new file mode 100644
index 0000000..5ee4227
--- /dev/null
+++ b/data/elementary/themes/edc/efl/text.edc
@@ -0,0 +1,328 @@
1group { "efl/text/scroller";
2 inherit: "elm/scroller/entry/default";
3}
4
5group { "efl/text/single/scroller";
6 inherit: "elm/scroller/entry_single/default";
7}
8
9group { "efl/text/cursor";
10 inherit: "elm/entry/cursor/default";
11 alias: "efl/text/single/cursor";
12 alias: "efl/text/charwrap/cursor";
13 alias: "efl/text/mixedwrap/cursor";
14 alias: "efl/text/nowrap/cursor";
15 alias: "efl/text/noedit/cursor";
16 alias: "efl/text/single-noedit/cursor";
17 alias: "efl/text/noedit-charwrap/cursor";
18 alias: "efl/text/noedit-mixedwrap/cursor";
19 alias: "efl/text/nowrap-noedit/cursor";
20}
21
22group { "efl/text/selection";
23 inherit: "elm/entry/selection/default";
24 alias: "efl/text/single/selection";
25 alias: "efl/text/charwrap/selection";
26 alias: "efl/text/mixedwrap/selection";
27 alias: "efl/text/nowrap/selection";
28 alias: "efl/text/noedit/selection";
29 alias: "efl/text/single-noedit/selection";
30 alias: "efl/text/noedit-charwrap/selection";
31 alias: "efl/text/noedit-mixedwrap/selection";
32 alias: "efl/text/nowrap-noedit/selection";
33}
34
35group { "efl/text/anchor";
36 inherit: "elm/entry/anchor/default";
37 alias: "efl/text/single/anchor";
38 alias: "efl/text/charwrap/anchor";
39 alias: "efl/text/mixedwrap/anchor";
40 alias: "efl/text/nowrap/anchor";
41 alias: "efl/text/noedit/anchor";
42 alias: "efl/text/single-noedit/anchor";
43 alias: "efl/text/noedit-charwrap/anchor";
44 alias: "efl/text/noedit-mixedwrap/anchor";
45 alias: "efl/text/nowrap-noedit/anchor";
46}
47
48group { "efl/text";
49 inherit: "elm/entry/base/default";
50 alias: "efl/text/mixedwrap";
51 alias: "efl/text/charwrap";
52 alias: "efl/text/nowrap";
53 alias: "efl/text/single";
54 alias: "efl/text/single-noedit";
55 alias: "efl/text/noedit";
56 alias: "efl/text/noedit-mixedwrap";
57 alias: "efl/text/noedit-charwrap";
58 alias: "efl/text/nowrap-noedit";
59 alias: "efl/text/password";
60 sounds {
61 sample { name: "key-tap1" LOSSY 64;
62 source: "kbd-tap.wav";
63 }
64 sample { name: "key-tap2" LOSSY 64;
65 source: "kbd-tap2.wav";
66 }
67 sample { name: "key-tap3" LOSSY 64;
68 source: "kbd-tap3.wav";
69 }
70 sample { name: "key-tap4" LOSSY 64;
71 source: "kbd-tap4.wav";
72 }
73 sample { name: "key-tap5" LOSSY 64;
74 source: "kbd-tap5.wav";
75 }
76 }
77
78// data.item: "context_menu_orientation" "horizontal";
79 parts {
80 part { name: "elm.swallow.background"; type: SWALLOW;
81 description { state: "default" 0.0;
82 rel1.offset: 1 1;
83 rel2.offset: -2 -2;
84 }
85 }
86 part { name: "elm.text"; type: SWALLOW;
87 scale: 1;
88 entry_mode: EDITABLE;
89 select_mode: DEFAULT;
90// select_mode: EXPLICIT;
91 cursor_mode: BEFORE;
92 multiline: 1;
93 source: "efl/text/selection"; // selection under
94// source2: "X"; // selection over
95// source3: "X"; // cursor under
96 source4: "efl/text/cursor"; // cursorover
97// source5: "efl/text/anchor"; // anchor under
98 source6: "efl/text/anchor"; // anchor over
99 description { state: "default" 0.0;
100 /* we gotta use 0 0 here, because of scrolled entries */
101 fixed: 0 0;
102 rel1.offset: 2 2;
103 rel2.offset: -3 -3;
104 }
105 description { state: "disabled" 0.0;
106 inherit: "default" 0.0;
107 }
108 }
109 }
110 programs {
111 program {
112 signal: "load"; source: "";
113 action: FOCUS_SET;
114 target: "elm.text";
115 }
116 program {
117 signal: "elm,state,disabled"; source: "elm";
118 action: STATE_SET "disabled" 0.0;
119 target: "elm.text";
120 }
121 program {
122 signal: "elm,state,enabled"; source: "elm";
123 action: STATE_SET "default" 0.0;
124 target: "elm.text";
125 }
126 #if 0
127 program {
128 signal: "elm,guide,disabled"; source: "elm";
129 action: STATE_SET "hidden" 0.0;
130 target: "elm.guide";
131 }
132 program {
133 signal: "elm,guide,enabled"; source: "elm";
134 action: STATE_SET "default" 0.0;
135 target: "elm.guide";
136 }
137 #endif
138 program { name: "key-down";
139 signal: "entry,keydown"; source: "elm.text";
140 script {
141 new buf[32];
142 snprintf(buf, 31, "key-down%i", (rand() % 5) + 1);
143 run_program(get_program_id(buf));
144 }
145 }
146 program { name: "key-down1";
147 action: PLAY_SAMPLE "key-tap1" 1.0 INPUT;
148 }
149 program { name: "key-down2";
150 action: PLAY_SAMPLE "key-tap2" 1.0 INPUT;
151 }
152 program { name: "key-down3";
153 action: PLAY_SAMPLE "key-tap3" 1.0 INPUT;
154 }
155 program { name: "key-down4";
156 action: PLAY_SAMPLE "key-tap4" 1.0 INPUT;
157 }
158 program { name: "key-down5";
159 action: PLAY_SAMPLE "key-tap5" 1.0 INPUT;
160 }
161 }
162}
163
164group { "efl/text/magnifier";
165 inherit: "elm/entry/magnifier/default";
166 alias: "efl/text/single/magnifier";
167 alias: "efl/text/charwrap/magnifier";
168 alias: "efl/text/mixedwrap/magnifier";
169 alias: "efl/text/nowrap/magnifier";
170 alias: "efl/text/noedit/magnifier";
171 alias: "efl/text/single-noedit/magnifier";
172 alias: "efl/text/noedit-charwrap/magnifier";
173 alias: "efl/text/noedit-mixedwrap/magnifier";
174 alias: "efl/text/nowrap-noedit/magnifier";
175}
176
177group { "efl/text/handler/start";
178 inherit: "elm/entry/handler/start/default";
179 alias: "efl/text/single/handler/start";
180 alias: "efl/text/charwrap/handler/start";
181 alias: "efl/text/mixedwrap/handler/start";
182 alias: "efl/text/nowrap/handler/start";
183 alias: "efl/text/noedit/handler/start";
184 alias: "efl/text/single-noedit/handler/start";
185 alias: "efl/text/noedit-charwrap/handler/start";
186 alias: "efl/text/noedit-mixedwrap/handler/start";
187 alias: "efl/text/nowrap-noedit/handler/start";
188}
189
190group { "efl/text/handler/end";
191 inherit: "elm/entry/handler/end/default";
192 alias: "efl/text/single/handler/end";
193 alias: "efl/text/charwrap/handler/end";
194 alias: "efl/text/mixedwrap/handler/end";
195 alias: "efl/text/nowrap/handler/end";
196 alias: "efl/text/noedit/handler/end";
197 alias: "efl/text/single-noedit/handler/end";
198 alias: "efl/text/noedit-charwrap/handler/end";
199 alias: "efl/text/noedit-mixedwrap/handler/end";
200 alias: "efl/text/nowrap-noedit/handler/end";
201}
202
203///////////////////////////////////////////////////////////////////////////////
204// emoticon images from:
205// Tanya - Latvia
206// http://lazycrazy.deviantart.com/
207// http://lazycrazy.deviantart.com/art/Very-Emotional-Emoticons-144461621
208group { "efl/text/emoticon/angry"; images.image:
209 "emo-angry.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
210 "emo-angry.png"; } } } }
211group { "efl/text/emoticon/angry-shout"; images.image:
212 "emo-angry-shout.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
213 "emo-angry-shout.png"; } } } }
214group { "efl/text/emoticon/crazy-laugh"; images.image:
215 "emo-crazy-laugh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
216 "emo-crazy-laugh.png"; } } } }
217group { "efl/text/emoticon/evil-laugh"; images.image:
218 "emo-evil-laugh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
219 "emo-evil-laugh.png"; } } } }
220group { "efl/text/emoticon/evil"; images.image:
221 "emo-evil.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
222 "emo-evil.png"; } } } }
223group { "efl/text/emoticon/goggle-smile"; images.image:
224 "emo-goggle-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
225 "emo-goggle-smile.png"; } } } }
226group { "efl/text/emoticon/grumpy"; images.image:
227 "emo-grumpy.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
228 "emo-grumpy.png"; } } } }
229group { "efl/text/emoticon/grumpy-smile"; images.image:
230 "emo-grumpy-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
231 "emo-grumpy-smile.png"; } } } }
232group { "efl/text/emoticon/guilty"; images.image:
233 "emo-guilty.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
234 "emo-guilty.png"; } } } }
235group { "efl/text/emoticon/guilty-smile"; images.image:
236 "emo-guilty-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
237 "emo-guilty-smile.png"; } } } }
238group { "efl/text/emoticon/haha"; images.image:
239 "emo-haha.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
240 "emo-haha.png"; } } } }
241group { "efl/text/emoticon/half-smile"; images.image:
242 "emo-half-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
243 "emo-half-smile.png"; } } } }
244group { "efl/text/emoticon/happy-panting"; images.image:
245 "emo-happy-panting.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
246 "emo-happy-panting.png"; } } } }
247group { "efl/text/emoticon/happy"; images.image:
248 "emo-happy.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
249 "emo-happy.png"; } } } }
250group { "efl/text/emoticon/indifferent"; images.image:
251 "emo-indifferent.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
252 "emo-indifferent.png"; } } } }
253group { "efl/text/emoticon/kiss"; images.image:
254 "emo-kiss.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
255 "emo-kiss.png"; } } } }
256group { "efl/text/emoticon/knowing-grin"; images.image:
257 "emo-knowing-grin.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
258 "emo-knowing-grin.png"; } } } }
259group { "efl/text/emoticon/laugh"; images.image:
260 "emo-laugh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
261 "emo-laugh.png"; } } } }
262group { "efl/text/emoticon/little-bit-sorry"; images.image:
263 "emo-little-bit-sorry.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
264 "emo-little-bit-sorry.png"; } } } }
265group { "efl/text/emoticon/love-lots"; images.image:
266 "emo-love-lots.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
267 "emo-love-lots.png"; } } } }
268group { "efl/text/emoticon/love"; images.image:
269 "emo-love.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
270 "emo-love.png"; } } } }
271group { "efl/text/emoticon/minimal-smile"; images.image:
272 "emo-minimal-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
273 "emo-minimal-smile.png"; } } } }
274group { "efl/text/emoticon/not-happy"; images.image:
275 "emo-not-happy.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
276 "emo-not-happy.png"; } } } }
277group { "efl/text/emoticon/not-impressed"; images.image:
278 "emo-not-impressed.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
279 "emo-not-impressed.png"; } } } }
280group { "efl/text/emoticon/omg"; images.image:
281 "emo-omg.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
282 "emo-omg.png"; } } } }
283group { "efl/text/emoticon/opensmile"; images.image:
284 "emo-opensmile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
285 "emo-opensmile.png"; } } } }
286group { "efl/text/emoticon/smile"; images.image:
287 "emo-smile.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
288 "emo-smile.png"; } } } }
289group { "efl/text/emoticon/sorry"; images.image:
290 "emo-sorry.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
291 "emo-sorry.png"; } } } }
292group { "efl/text/emoticon/squint-laugh"; images.image:
293 "emo-squint-laugh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
294 "emo-squint-laugh.png"; } } } }
295group { "efl/text/emoticon/surprised"; images.image:
296 "emo-surprised.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
297 "emo-surprised.png"; } } } }
298group { "efl/text/emoticon/suspicious"; images.image:
299 "emo-suspicious.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
300 "emo-suspicious.png"; } } } }
301group { "efl/text/emoticon/tongue-dangling"; images.image:
302 "emo-tongue-dangling.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
303 "emo-tongue-dangling.png"; } } } }
304group { "efl/text/emoticon/tongue-poke"; images.image:
305 "emo-tongue-poke.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
306 "emo-tongue-poke.png"; } } } }
307group { "efl/text/emoticon/uh"; images.image:
308 "emo-uh.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
309 "emo-uh.png"; } } } }
310group { "efl/text/emoticon/unhappy"; images.image:
311 "emo-unhappy.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
312 "emo-unhappy.png"; } } } }
313group { "efl/text/emoticon/very-sorry"; images.image:
314 "emo-very-sorry.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
315 "emo-very-sorry.png"; } } } }
316group { "efl/text/emoticon/what"; images.image:
317 "emo-what.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
318 "emo-what.png"; } } } }
319group { "efl/text/emoticon/wink"; images.image:
320 "emo-wink.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
321 "emo-wink.png"; } } } }
322group { "efl/text/emoticon/worried"; images.image:
323 "emo-worried.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
324 "emo-worried.png"; } } } }
325group { "efl/text/emoticon/wtf"; images.image:
326 "emo-wtf.png" COMP; parts { part { "icon"; nomouse; desc { "default"; max: 64 64; image.normal:
327 "emo-wtf.png"; } } } }
328//------------------------------------------------------------
diff --git a/data/elementary/themes/edc/efl/textpath.edc b/data/elementary/themes/edc/efl/textpath.edc
new file mode 100644
index 0000000..ed4924f
--- /dev/null
+++ b/data/elementary/themes/edc/efl/textpath.edc
@@ -0,0 +1,3 @@
1group { "efl/textpath";
2 inherit: "elm/textpath/base/default";
3}
diff --git a/data/elementary/themes/edc/efl/tooltip.edc b/data/elementary/themes/edc/efl/tooltip.edc
new file mode 100644
index 0000000..204b2b4
--- /dev/null
+++ b/data/elementary/themes/edc/efl/tooltip.edc
@@ -0,0 +1,15 @@
1group { "efl/label/tooltip";
2 inherit: "elm/label/base/tooltip/default";
3 alias: "efl/label/base/tooltip"; //XXX: Remove it in EFL 2.0
4 alias: "efl/label/base/tooltip/transparent";
5}
6
7group { "efl/tooltip";
8 inherit: "elm/tooltip/base/default";
9}
10
11group { "efl/tooltip:transparent";
12 inherit: "elm/tooltip/base/transparent";
13}
14
15///////////////////////////////////////////////////////////////////////////////
diff --git a/data/elementary/themes/edc/efl/uiclock.edc b/data/elementary/themes/edc/efl/uiclock.edc
new file mode 100644
index 0000000..e0b0586
--- /dev/null
+++ b/data/elementary/themes/edc/efl/uiclock.edc
@@ -0,0 +1,223 @@
1#define DATETIME_FIELD(_pos) \
2 part { \
3 name: "field"#_pos; type: SWALLOW; \
4 scale: 1; \
5 clip_to: "clip"; \
6 description { state: "default" 0.0; \
7 visible: 0; \
8 min: 0 0; \
9 align: 0.0 0.5; \
10 fixed: 1 1; \
11 rel1.relative: 1.0 0.0; \
12 rel1.to: "separator"#_pos; \
13 rel2.relative: 1.0 1.0; \
14 rel2.to: "separator"#_pos; \
15 } \
16 description { state: "enable" 0.0; \
17 inherit: "default" 0.0; \
18 visible: 1; \
19 min: 8 10; \
20 } \
21 } \
22 programs{ \
23 program { name: "field_"#_pos"enabled"; \
24 signal: "field"#_pos",enable"; source: "elm"; \
25 action: STATE_SET "enable" 0.0; \
26 target: "field"#_pos; \
27 } \
28 program { name: "field_"#_pos"disabled"; \
29 signal: "field"#_pos",disable"; source: "elm"; \
30 action: STATE_SET "default" 0.0; \
31 target: "field"#_pos; \
32 } \
33 }
34#define DATETIME_SEPARATOR(_pos, _after) \
35 part { \
36 name: "separator"#_pos; type: TEXT; \
37 scale: 1; \
38 effect: SHADOW BOTTOM; \
39 clip_to: "disclip"; \
40 description { state: "default" 0.0; \
41 visible: 0; \
42 min: 0 0; \
43 align: 0.0 0.5; \
44 fixed: 1 0; \
45 rel1 { \
46 relative: 1.0 0.0; \
47 to: "field"#_after; \
48 } \
49 rel2 { \
50 relative: 1.0 1.0; \
51 to: "field"#_after; \
52 } \
53 color_class: "datetime_separator_text"; \
54 text { \
55 font: "Sans"; size: 10; \
56 min: 1 0; \
57 ellipsis: -1; \
58 align: 0.5 0.5; \
59 text_class: "datetime_separator_text"; \
60 } \
61 } \
62 description { state: "enable" 0.0; \
63 inherit: "default" 0.0; \
64 visible: 1; \
65 min: 8 10; \
66 } \
67 } \
68 part { \
69 name: "separator"#_pos"d"; type: TEXT; \
70 scale: 1; \
71 effect: SHADOW BOTTOM; \
72 clip_to: "disclip2"; \
73 description { state: "default" 0.0; \
74 visible: 0; \
75 rel1.to: "separator"#_pos; \
76 rel2.to: "separator"#_pos; \
77 color_class: "datetime_separator_text_disabled"; \
78 text { \
79 text_source: "separator"#_pos; \
80 font: "Sans"; size: 10; \
81 text_class: "datetime_separator_text_disabled"; \
82 } \
83 } \
84 description { state: "enable" 0.0; \
85 inherit: "default" 0.0; \
86 visible: 1; \
87 } \
88 } \
89 programs { \
90 program { \
91 signal: "field"#_after",enable"; source: "elm"; \
92 action: STATE_SET "enable" 0.0; \
93 target: "separator"#_pos; \
94 target: "separator"#_pos"d"; \
95 } \
96 program { \
97 signal: "field"#_after",disable"; source: "elm"; \
98 action: STATE_SET "default" 0.0; \
99 target: "separator"#_pos; \
100 target: "separator"#_pos"d"; \
101 } \
102 }
103
104group { "efl/uiclock";
105 parts {
106 part { name: "bg"; type: RECT;
107 description { state: "default" 0.0;
108 color_class: "datetime_bg";
109 }
110 }
111 part { name: "clip"; type: RECT;
112 description { state: "default" 0.0;
113 rel1.to: "separator0";
114 rel2.to: "separator7";
115 }
116 }
117 part { name: "disclip"; type: RECT;
118 clip_to: "clip";
119 description { state: "default" 0.0;
120 rel1.to: "separator0";
121 rel2.to: "separator7";
122 }
123 description { state: "disabled" 0.0;
124 inherit: "default" 0.0;
125 visible: 0;
126 }
127 }
128 part { name: "disclip2"; type: RECT;
129 clip_to: "clip";
130 description { state: "default" 0.0;
131 rel1.to: "separator0";
132 rel2.to: "separator7";
133 visible: 0;
134 }
135 description { state: "disabled" 0.0;
136 inherit: "default" 0.0;
137 visible: 1;
138 }
139 }
140 part { name: "separator0"; type: SPACER;
141 scale: 1;
142 description { state: "default" 0.0;
143 min: 8 10;
144 align: 0.0 0.5;
145 fixed: 1 0;
146 rel2.relative: 0.0 1.0;
147 }
148 }
149 DATETIME_FIELD(0)
150 DATETIME_SEPARATOR(1,0)
151 DATETIME_FIELD(1)
152 DATETIME_SEPARATOR(2,1)
153 DATETIME_FIELD(2)
154 DATETIME_SEPARATOR(3,2)
155 DATETIME_FIELD(3)
156 DATETIME_SEPARATOR(4,3)
157 DATETIME_FIELD(4)
158 DATETIME_SEPARATOR(5,4)
159 DATETIME_FIELD(5)
160 DATETIME_SEPARATOR(6,5)
161 DATETIME_FIELD(6)
162 DATETIME_SEPARATOR(7,6)
163 DATETIME_FIELD(7)
164 DATETIME_SEPARATOR(8,7)
165 part { name: "separator9"; type: SPACER;
166 description { state: "default" 0.0;
167 rel1.to: "separator7";
168 rel1.relative: 1.0 0.0;
169 min: 8 10;
170 }
171 }
172 part { name: "discover"; type: RECT;
173 description { state: "default" 0.0;
174 rel1.to: "separator0";
175 rel2.to: "separator7";
176 visible: 0;
177 color: 0 0 0 0;
178 }
179 description { state: "disabled" 0.0;
180 inherit: "default" 0.0;
181 visible: 1;
182 }
183 }
184 part { name: "elm.access"; type: RECT; repeat_events: 1;
185 description { state: "default" 0.0;
186 color: 0 0 0 0;
187 }
188 }
189 }
190 programs {
191 program {
192 signal: "elm,state,disabled"; source: "elm";
193 action: STATE_SET "disabled" 0.0;
194 target: "disclip";
195 target: "disclip2";
196 target: "discover";
197 }
198 program {
199 signal: "elm,state,enabled"; source: "elm";
200 action: STATE_SET "default" 0.0;
201 target: "disclip";
202 target: "disclip2";
203 target: "discover";
204 }
205 }
206}
207#undef DATETIME_SEPARATOR
208#undef DATETIME_FIELD
209
210// AM_PM_BUTTON
211group { "efl/uiclock/ampm"
212 inherit: "efl/button";
213}
214
215//ENTRY
216group { "efl/uiclock/text"
217 inherit: "efl/text";
218 alias: "efl/uiclock/text/single";
219 alias: "efl/uiclock/text/single-noedit";
220}
221group { "efl/uiclock/text/selection"
222 inherit: "efl/text/selection";
223}
diff --git a/data/elementary/themes/edc/efl/video.edc b/data/elementary/themes/edc/efl/video.edc
new file mode 100644
index 0000000..3a2a658
--- /dev/null
+++ b/data/elementary/themes/edc/efl/video.edc
@@ -0,0 +1,3 @@
1group { "efl/video";
2 inherit: "elm/video/base/default";
3}
diff --git a/data/elementary/themes/edc/efl/win.edc b/data/elementary/themes/edc/efl/win.edc
new file mode 100644
index 0000000..d0b6611
--- /dev/null
+++ b/data/elementary/themes/edc/efl/win.edc
@@ -0,0 +1,3 @@
1group { "efl/win";
2 inherit: "elm/win/base/default";
3}
diff --git a/src/lib/elementary/efl_ui_panes.c b/src/lib/elementary/efl_ui_panes.c
index 1d70fd2..893ee1d 100644
--- a/src/lib/elementary/efl_ui_panes.c
+++ b/src/lib/elementary/efl_ui_panes.c
@@ -53,18 +53,78 @@ static const Elm_Layout_Part_Alias_Description _content_aliases[] =
53 53
54static void _set_min_size_new(void *data); 54static void _set_min_size_new(void *data);
55 55
56//TODO: efl_ui_slider also use this.
57static const char *
58_theme_group_modify_pos_get(const char *cur_group, const char *search, size_t len, Eina_Bool is_legacy)
59{
60 const char *pos = NULL;
61 const char *temp_str = NULL;
62
63 if (is_legacy)
64 return cur_group;
65
66 temp_str = cur_group + len - strlen(search);
67 if (temp_str >= cur_group)
68 {
69 if (!strcmp(temp_str, search))
70 pos = temp_str;
71 }
72
73 return pos;
74}
75
76static char *
77_efl_ui_panes_theme_group_get(Evas_Object *obj, Efl_Ui_Panes_Data *sd)
78{
79 const char *pos = NULL;
80 const char *cur_group = elm_widget_theme_element_get(obj);
81 Eina_Strbuf *new_group = eina_strbuf_new();
82 Eina_Bool is_legacy = elm_widget_is_legacy(obj);
83 size_t len = 0;
84
85 if (cur_group)
86 {
87 len = strlen(cur_group);
88 pos = _theme_group_modify_pos_get(cur_group, "horizontal", len, is_legacy);
89 if (!pos)
90 pos = _theme_group_modify_pos_get(cur_group, "vertical", len, is_legacy);
91
92 // TODO: change separator when it is decided.
93 // can skip when prev_group == cur_group
94 if (!pos)
95 {
96 eina_strbuf_append(new_group, cur_group);
97 eina_strbuf_append(new_group, "/");
98 }
99 else
100 {
101 eina_strbuf_append_length(new_group, cur_group, pos - cur_group);
102 }
103 }
104
105 if (sd->dir == EFL_UI_DIR_HORIZONTAL)
106 eina_strbuf_append(new_group, "horizontal");
107 else
108 eina_strbuf_append(new_group, "vertical");
109
110 return eina_strbuf_release(new_group);
111}
112
56EOLIAN static Efl_Ui_Theme_Apply 113EOLIAN static Efl_Ui_Theme_Apply
57_efl_ui_panes_elm_widget_theme_apply(Eo *obj, Efl_Ui_Panes_Data *sd) 114_efl_ui_panes_elm_widget_theme_apply(Eo *obj, Efl_Ui_Panes_Data *sd)
58{ 115{
59 double size; 116 double size;
60 Evas_Coord minw = 0, minh = 0; 117 Evas_Coord minw = 0, minh = 0;
118 char *group;
61 119
62 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED; 120 Efl_Ui_Theme_Apply int_ret = EFL_UI_THEME_APPLY_FAILED;
63 121
64 if (sd->dir == EFL_UI_DIR_HORIZONTAL) 122 group = _efl_ui_panes_theme_group_get(obj, sd);
65 elm_widget_theme_element_set(obj, "horizontal"); 123 if (group)
66 else 124 {
67 elm_widget_theme_element_set(obj, "vertical"); 125 elm_widget_theme_element_set(obj, group);
126 free(group);
127 }
68 128
69 evas_object_hide(sd->event); 129 evas_object_hide(sd->event);
70 elm_coords_finger_size_adjust(1, &minw, 1, &minh); 130 elm_coords_finger_size_adjust(1, &minw, 1, &minh);
diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c
index e445385..9ec6cb2 100644
--- a/src/lib/elementary/efl_ui_slider.c
+++ b/src/lib/elementary/efl_ui_slider.c
@@ -663,9 +663,9 @@ _popup_add(Efl_Ui_Slider_Data *sd, Eo *obj, Evas_Object **popup,
663 *popup = edje_object_add(evas_object_evas_get(obj)); 663 *popup = edje_object_add(evas_object_evas_get(obj));
664 evas_object_smart_member_add(*popup, obj); 664 evas_object_smart_member_add(*popup, obj);
665 if (_is_horizontal(sd->dir)) 665 if (_is_horizontal(sd->dir))
666 _elm_theme_set(elm_widget_theme_get(obj), *popup, "slider", "horizontal/popup", elm_widget_style_get(obj)); 666 efl_ui_widget_theme_object_set(obj, *popup, "slider", "horizontal/popup", elm_widget_style_get(obj));
667 else 667 else
668 _elm_theme_set(elm_widget_theme_get(obj), *popup, "slider", "vertical/popup", elm_widget_style_get(obj)); 668 efl_ui_widget_theme_object_set(obj, *popup, "slider", "vertical/popup", elm_widget_style_get(obj));
669 edje_object_scale_set(*popup, efl_gfx_scale_get(obj) * 669 edje_object_scale_set(*popup, efl_gfx_scale_get(obj) *
670 elm_config_scale_get()); 670 elm_config_scale_get());
671 edje_object_signal_callback_add(*popup, "popup,hide,done", "elm", // XXX: for compat 671 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)
708 else 708 else
709 elm_widget_theme_element_set(obj, "range/horizontal"); 709 elm_widget_theme_element_set(obj, "range/horizontal");
710 if (sd->popup) 710 if (sd->popup)
711 _elm_theme_set(elm_widget_theme_get(obj), sd->popup, 711 efl_ui_widget_theme_object_set(obj, sd->popup,
712 "slider", "horizontal/popup", 712 "slider", "horizontal/popup",
713 elm_widget_style_get(obj)); 713 elm_widget_style_get(obj));
714 if (sd->popup2) 714 if (sd->popup2)
715 _elm_theme_set(elm_widget_theme_get(obj), sd->popup2, 715 efl_ui_widget_theme_object_set(obj, sd->popup2,
716 "slider", "horizontal/popup", 716 "slider", "horizontal/popup",
717 elm_widget_style_get(obj)); 717 elm_widget_style_get(obj));
718 } 718 }
@@ -724,11 +724,11 @@ _efl_ui_slider_elm_widget_theme_apply(Eo *obj, Efl_Ui_Slider_Data *sd)
724 elm_widget_theme_element_set(obj, "range/vertical"); 724 elm_widget_theme_element_set(obj, "range/vertical");
725 725
726 if (sd->popup) 726 if (sd->popup)
727 _elm_theme_set(elm_widget_theme_get(obj), sd->popup, 727 efl_ui_widget_theme_object_set(obj, sd->popup,
728 "slider", "vertical/popup", 728 "slider", "vertical/popup",
729 elm_widget_style_get(obj)); 729 elm_widget_style_get(obj));
730 if (sd->popup2) 730 if (sd->popup2)
731 _elm_theme_set(elm_widget_theme_get(obj), sd->popup2, 731 efl_ui_widget_theme_object_set(obj, sd->popup2,
732 "slider", "vertical/popup", 732 "slider", "vertical/popup",
733 elm_widget_style_get(obj)); 733 elm_widget_style_get(obj));
734 } 734 }
diff --git a/src/lib/elementary/efl_ui_text.c b/src/lib/elementary/efl_ui_text.c
index 7586812..44f546d 100644
--- a/src/lib/elementary/efl_ui_text.c
+++ b/src/lib/elementary/efl_ui_text.c
@@ -658,56 +658,43 @@ _efl_ui_text_theme_group_get(Evas_Object *obj)
658{ 658{
659 EFL_UI_TEXT_DATA_GET(obj, sd); 659 EFL_UI_TEXT_DATA_GET(obj, sd);
660 660
661 if (sd->password) return "password";
661 if (sd->editable) 662 if (sd->editable)
662 { 663 {
663 if (sd->password) return "base-password"; 664 if (sd->single_line) return "single";
664 else 665 switch (sd->line_wrap)
665 { 666 {
666 if (sd->single_line) return "base-single"; 667 case ELM_WRAP_CHAR:
667 else 668 return "charwrap";
668 {
669 switch (sd->line_wrap)
670 {
671 case ELM_WRAP_CHAR:
672 return "base-charwrap";
673 669
674 case ELM_WRAP_WORD: 670 case ELM_WRAP_WORD:
675 return "base"; 671 return "base";
676 672
677 case ELM_WRAP_MIXED: 673 case ELM_WRAP_MIXED:
678 return "base-mixedwrap"; 674 return "mixedwrap";
679 675
680 case ELM_WRAP_NONE: 676 case ELM_WRAP_NONE:
681 default: 677 default:
682 return "base-nowrap"; 678 return "nowrap";
683 }
684 }
685 } 679 }
686 } 680 }
687 else 681 else
688 { 682 {
689 if (sd->password) return "base-password"; 683 if (sd->single_line) return "single-noedit";
690 else 684 switch (sd->line_wrap)
691 { 685 {
692 if (sd->single_line) return "base-single-noedit"; 686 case ELM_WRAP_CHAR:
693 else 687 return "noedit-charwrap";
694 {
695 switch (sd->line_wrap)
696 {
697 case ELM_WRAP_CHAR:
698 return "base-noedit-charwrap";
699 688
700 case ELM_WRAP_WORD: 689 case ELM_WRAP_WORD:
701 return "base-noedit"; 690 return "noedit";
702 691
703 case ELM_WRAP_MIXED: 692 case ELM_WRAP_MIXED:
704 return "base-noedit-mixedwrap"; 693 return "noedit-mixedwrap";
705 694
706 case ELM_WRAP_NONE: 695 case ELM_WRAP_NONE:
707 default: 696 default:
708 return "base-nowrap-noedit"; 697 return "nowrap-noedit";
709 }
710 }
711 } 698 }
712 } 699 }
713} 700}
@@ -931,7 +918,7 @@ _efl_ui_text_elm_widget_theme_apply(Eo *obj, Efl_Ui_Text_Data *sd)
931 _mirrored_set(obj, efl_ui_mirrored_get(obj)); 918 _mirrored_set(obj, efl_ui_mirrored_get(obj));
932 919
933 elm_widget_theme_object_set 920 elm_widget_theme_object_set
934 (obj, sd->entry_edje, "efl_ui_text", _efl_ui_text_theme_group_get(obj), style); 921 (obj, sd->entry_edje, "text", _efl_ui_text_theme_group_get(obj), style);
935 922
936 if (elm_widget_disabled_get(obj)) 923 if (elm_widget_disabled_get(obj))
937 edje_object_signal_emit(sd->entry_edje, "elm,state,disabled", "elm"); 924 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)
1007 if (sd->start_handler) 994 if (sd->start_handler)
1008 { 995 {
1009 elm_widget_theme_object_set(obj, sd->start_handler, 996 elm_widget_theme_object_set(obj, sd->start_handler,
1010 "entry", "handler/start", style); 997 "text", "handler/start", style);
1011 elm_widget_theme_object_set(obj, sd->end_handler, 998 elm_widget_theme_object_set(obj, sd->end_handler,
1012 "entry", "handler/end", style); 999 "text", "handler/end", style);
1013 } 1000 }
1014 1001
1015 sd->changed = EINA_TRUE; 1002 sd->changed = EINA_TRUE;
@@ -1753,7 +1740,7 @@ _magnifier_create(void *data)
1753 1740
1754 //Bg 1741 //Bg
1755 sd->mgf_bg = edje_object_add(e); 1742 sd->mgf_bg = edje_object_add(e);
1756 _elm_theme_object_set(data, sd->mgf_bg, "entry", "magnifier", "default"); 1743 elm_widget_theme_object_set(data, sd->mgf_bg, "text", "magnifier", "default");
1757 evas_object_show(sd->mgf_bg); 1744 evas_object_show(sd->mgf_bg);
1758 1745
1759 //Proxy 1746 //Proxy
@@ -2582,16 +2569,16 @@ _item_get(void *data, const char *item)
2582 evas_object_del(o); 2569 evas_object_del(o);
2583 o = edje_object_add(evas_object_evas_get(data)); 2570 o = edje_object_add(evas_object_evas_get(data));
2584 elm_widget_theme_object_set 2571 elm_widget_theme_object_set
2585 (data, o, "entry/emoticon", "wtf", style); 2572 (data, o, "text/emoticon", "wtf", style);
2586 } 2573 }
2587 return o; 2574 return o;
2588 } 2575 }
2589 2576
2590 o = edje_object_add(evas_object_evas_get(data)); 2577 o = edje_object_add(evas_object_evas_get(data));
2591 if (!elm_widget_theme_object_set 2578 if (!elm_widget_theme_object_set
2592 (data, o, "entry", item, style)) 2579 (data, o, "text", item, style))
2593 elm_widget_theme_object_set 2580 elm_widget_theme_object_set
2594 (data, o, "entry/emoticon", "wtf", style); 2581 (data, o, "text/emoticon", "wtf", style);
2595 return o; 2582 return o;
2596} 2583}
2597 2584
@@ -3027,7 +3014,7 @@ _efl_ui_text_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Text_Data *priv)
3027 _dnd_pos_cb, NULL, 3014 _dnd_pos_cb, NULL,
3028 _dnd_drop_cb, NULL); 3015 _dnd_drop_cb, NULL);
3029 3016
3030 if (!elm_layout_theme_set(obj, "efl_ui_text", "base", elm_widget_style_get(obj))) 3017 if (!elm_layout_theme_set(obj, "text", "base", elm_widget_style_get(obj)))
3031 CRI("Failed to set layout!"); 3018 CRI("Failed to set layout!");
3032 3019
3033 edje_object_part_swallow(priv->entry_edje, "elm.text", text_obj); 3020 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,
3189{ 3176{
3190 Evas_Object *handle; 3177 Evas_Object *handle;
3191 3178
3192 handle = _decoration_create(sd, file, "elm/entry/handler/start", EINA_TRUE); 3179 handle = _decoration_create(sd, file, "text/handler/start", EINA_TRUE);
3193 evas_object_pass_events_set(handle, EINA_FALSE); 3180 evas_object_pass_events_set(handle, EINA_FALSE);
3194 sd->start_handler = handle; 3181 sd->start_handler = handle;
3195 evas_object_event_callback_add(handle, EVAS_CALLBACK_MOUSE_DOWN, 3182 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,
3200 _start_handler_mouse_up_cb, obj); 3187 _start_handler_mouse_up_cb, obj);
3201 evas_object_show(handle); 3188 evas_object_show(handle);
3202 3189
3203 handle = _decoration_create(sd, file, "elm/entry/handler/end", EINA_TRUE); 3190 handle = _decoration_create(sd, file, "text/handler/end", EINA_TRUE);
3204 evas_object_pass_events_set(handle, EINA_FALSE); 3191 evas_object_pass_events_set(handle, EINA_FALSE);
3205 sd->end_handler = handle; 3192 sd->end_handler = handle;
3206 evas_object_event_callback_add(handle, EVAS_CALLBACK_MOUSE_DOWN, 3193 evas_object_event_callback_add(handle, EVAS_CALLBACK_MOUSE_DOWN,
diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 5472d81..457d65d 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -1170,7 +1170,7 @@ _elm_win_focus_highlight_reconfigure_job(void *data)
1170 else 1170 else
1171 str = "default"; 1171 str = "default";
1172 1172
1173 elm_widget_theme_object_set 1173 efl_ui_widget_theme_object_set
1174 (sd->obj, fobj, "focus_highlight", "top", str); 1174 (sd->obj, fobj, "focus_highlight", "top", str);
1175 sd->focus_highlight.theme_changed = EINA_FALSE; 1175 sd->focus_highlight.theme_changed = EINA_FALSE;
1176 1176
@@ -3153,15 +3153,15 @@ _elm_win_wl_cursor_set(Evas_Object *obj, const char *cursor)
3153 3153
3154 if (cursor) 3154 if (cursor)
3155 { 3155 {
3156 if (!_elm_theme_object_set(sd->obj, sd->pointer.obj, 3156 if (!efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj,
3157 "cursor", cursor, "default")) 3157 "cursor", cursor, "default"))
3158 { 3158 {
3159 _elm_theme_object_set(sd->obj, sd->pointer.obj, 3159 efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj,
3160 "pointer", "base", "default"); 3160 "pointer", "base", "default");
3161 } 3161 }
3162 } 3162 }
3163 else 3163 else
3164 _elm_theme_object_set(sd->obj, sd->pointer.obj, 3164 efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj,
3165 "pointer", "base", "default"); 3165 "pointer", "base", "default");
3166 3166
3167 edje_object_size_min_get(sd->pointer.obj, &mw, &mh); 3167 edje_object_size_min_get(sd->pointer.obj, &mw, &mh);
@@ -3976,7 +3976,7 @@ _elm_win_frame_cb_resize_show(void *data,
3976 { 3976 {
3977 Efl_Ui_Win_Move_Resize_Mode mode = _move_resize_mode_get(source); 3977 Efl_Ui_Win_Move_Resize_Mode mode = _move_resize_mode_get(source);
3978 const resize_info *ri = _resize_info_get(sd->rot, mode); 3978 const resize_info *ri = _resize_info_get(sd->rot, mode);
3979 if (ri) _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", ri->cursor); 3979 if (ri) efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", ri->cursor);
3980 } 3980 }
3981#else 3981#else
3982 (void)source; 3982 (void)source;
@@ -3996,7 +3996,7 @@ _elm_win_frame_cb_resize_hide(void *data,
3996 3996
3997#ifdef HAVE_ELEMENTARY_WL2 3997#ifdef HAVE_ELEMENTARY_WL2
3998 if (sd->pointer.obj) 3998 if (sd->pointer.obj)
3999 _elm_theme_object_set(sd->obj, sd->pointer.obj, 3999 efl_ui_widget_theme_object_set(sd->obj, sd->pointer.obj,
4000 "pointer", "base", "default"); 4000 "pointer", "base", "default");
4001#endif 4001#endif
4002} 4002}
@@ -4288,7 +4288,7 @@ _elm_win_frame_add(Efl_Ui_Win_Data *sd, const char *element, const char *style)
4288 v = version ? atoi(version) : 0; 4288 v = version ? atoi(version) : 0;
4289 if (EINA_LIKELY(v >= FRAME_OBJ_THEME_MIN_VERSION)) 4289 if (EINA_LIKELY(v >= FRAME_OBJ_THEME_MIN_VERSION))
4290 { 4290 {
4291 if (!elm_widget_theme_object_set 4291 if (!efl_ui_widget_theme_object_set
4292 (sd->obj, sd->frame_obj, "border", element, style)) 4292 (sd->obj, sd->frame_obj, "border", element, style))
4293 { 4293 {
4294 ERR("Failed to set main border theme for the window."); 4294 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
5240 Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0; 5240 Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0;
5241 5241
5242 sd->pointer.obj = o = edje_object_add(ecore_evas_get(tmp_sd.ee)); 5242 sd->pointer.obj = o = edje_object_add(ecore_evas_get(tmp_sd.ee));
5243 _elm_theme_object_set(obj, o, "pointer", "base", "default"); 5243 efl_ui_widget_theme_object_set(obj, o, "pointer", "base", "default");
5244 edje_object_size_min_calc(o, &mw, &mh); 5244 edje_object_size_min_calc(o, &mw, &mh);
5245 evas_object_resize(o, mw, mh); 5245 evas_object_resize(o, mw, mh);
5246 edje_object_part_geometry_get(o, "elm.swallow.hotspot", 5246 edje_object_part_geometry_get(o, "elm.swallow.hotspot",
@@ -6517,8 +6517,8 @@ _elm_win_theme_internal(Eo *obj, Efl_Ui_Win_Data *sd)
6517 Eina_Bool ret = EINA_FALSE, prev_alpha; 6517 Eina_Bool ret = EINA_FALSE, prev_alpha;
6518 const char *s; 6518 const char *s;
6519 6519
6520 int_ret = _elm_theme_object_set(obj, sd->legacy.edje, "win", "base", 6520 int_ret = efl_ui_widget_theme_object_set(obj, sd->legacy.edje, "win", "base",
6521 elm_widget_style_get(obj)); 6521 elm_widget_style_get(obj));
6522 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED; 6522 if (!int_ret) return EFL_UI_THEME_APPLY_FAILED;
6523 6523
6524 edje_object_mirrored_set(sd->legacy.edje, efl_ui_mirrored_get(obj)); 6524 edje_object_mirrored_set(sd->legacy.edje, efl_ui_mirrored_get(obj));
diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h
index 8029384..135b06b 100644
--- a/src/lib/elementary/elm_priv.h
+++ b/src/lib/elementary/elm_priv.h
@@ -540,7 +540,8 @@ Efl_Ui_Theme_Apply _elm_theme_set(Elm_Theme *th,
540 Evas_Object *o, 540 Evas_Object *o,
541 const char *clas, 541 const char *clas,
542 const char *group, 542 const char *group,
543 const char *style); 543 const char *style,
544 Eina_Bool is_legacy);
544Eina_Bool _elm_theme_icon_set(Elm_Theme *th, 545Eina_Bool _elm_theme_icon_set(Elm_Theme *th,
545 Evas_Object *o, 546 Evas_Object *o,
546 const char *group, 547 const char *group,
diff --git a/src/lib/elementary/elm_spinner.c b/src/lib/elementary/elm_spinner.c
index 5c25079..3e809ef 100644
--- a/src/lib/elementary/elm_spinner.c
+++ b/src/lib/elementary/elm_spinner.c
@@ -1293,8 +1293,11 @@ _elm_spinner_elm_widget_theme_apply(Eo *obj, Elm_Spinner_Data *sd)
1293{ 1293{
1294 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED); 1294 ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EFL_UI_THEME_APPLY_FAILED);
1295 1295
1296 if (!elm_layout_theme_set(obj, "spinner", "base", elm_widget_style_get(obj))) 1296 if (!efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS)))
1297 CRI("Failed to set layout!"); 1297 {
1298 CRI("Failed to set layout!");
1299 return EFL_UI_THEME_APPLY_FAILED;
1300 }
1298 1301
1299 if (edje_object_part_exists(wd->resize_obj, "elm.swallow.dec_button")) 1302 if (edje_object_part_exists(wd->resize_obj, "elm.swallow.dec_button"))
1300 sd->button_layout = EINA_TRUE; 1303 sd->button_layout = EINA_TRUE;
diff --git a/src/lib/elementary/elm_theme.c b/src/lib/elementary/elm_theme.c
index 3f2144b..69028c6 100644
--- a/src/lib/elementary/elm_theme.c
+++ b/src/lib/elementary/elm_theme.c
@@ -281,7 +281,7 @@ _elm_theme_object_set(Evas_Object *parent, Evas_Object *o, const char *clas, con
281 Elm_Theme *th = NULL; 281 Elm_Theme *th = NULL;
282 282
283 if (parent) th = elm_widget_theme_get(parent); 283 if (parent) th = elm_widget_theme_get(parent);
284 return _elm_theme_set(th, o, clas, group, style); 284 return _elm_theme_set(th, o, clas, group, style, elm_widget_is_legacy(parent));
285} 285}
286 286
287/* only issued by elm_icon.c */ 287/* only issued by elm_icon.c */
@@ -296,14 +296,21 @@ _elm_theme_object_icon_set(Evas_Object *o,
296} 296}
297 297
298Efl_Ui_Theme_Apply 298Efl_Ui_Theme_Apply
299_elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *group, const char *style) 299_elm_theme_set(Elm_Theme *th, Evas_Object *o, const char *clas, const char *group, const char *style, Eina_Bool is_legacy)
300{ 300{
301 Eina_File *file; 301 Eina_File *file;
302 char buf2[1024]; 302 char buf2[1024];
303 const char *group_sep = "/";
304 const char *style_sep = ":";
303 305
304 if ((!clas) || (!group) || (!style) || !o) return EFL_UI_THEME_APPLY_FAILED; 306 if ((!clas) || !o) return EFL_UI_THEME_APPLY_FAILED;
305 if (!th) th = &(theme_default); 307 if (!th) th = &(theme_default);
306 snprintf(buf2, sizeof(buf2), "elm/%s/%s/%s", clas, group, style); 308 if (is_legacy)
309 snprintf(buf2, sizeof(buf2), "elm/%s/%s/%s", clas, (group) ? group : "base", (style) ? style : "default");
310 else
311 snprintf(buf2, sizeof(buf2), "efl/%s%s%s%s%s", clas,
312 ((group) ? group_sep : "\0"), ((group) ? group : "\0"),
313 ((style) ? style_sep : "\0"), ((style) ? style : "\0"));
307 if (!eina_hash_find(th->cache_style_load_failed, buf2)) 314 if (!eina_hash_find(th->cache_style_load_failed, buf2))
308 { 315 {
309 file = _elm_theme_group_file_find(th, buf2); 316 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
312 if (edje_object_mmap_set(o, file, buf2)) return EFL_UI_THEME_APPLY_SUCCESS; 319 if (edje_object_mmap_set(o, file, buf2)) return EFL_UI_THEME_APPLY_SUCCESS;
313 else 320 else
314 { 321 {
315 INF("could not set theme group '%s' from file '%s': %s", 322 ERR("could not set theme group '%s' from file '%s': %s",
316 buf2, 323 buf2,
317 eina_file_filename_get(file), 324 eina_file_filename_get(file),
318 edje_load_error_str(edje_object_load_error_get(o))); 325 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
322 eina_hash_add(th->cache_style_load_failed, buf2, (void *)1); 329 eina_hash_add(th->cache_style_load_failed, buf2, (void *)1);
323 } 330 }
324 331
332 if (!style)
333 return EFL_UI_THEME_APPLY_FAILED;
334
325 // Use the elementary default style. 335 // Use the elementary default style.
326 snprintf(buf2, sizeof(buf2), "elm/%s/%s/default", clas, group); 336 if (is_legacy)
337 snprintf(buf2, sizeof(buf2), "elm/%s/%s/%s", clas, (group) ? group : "base", "default");
338 else
339 snprintf(buf2, sizeof(buf2), "efl/%s%s%s", clas,
340 ((group) ? group_sep : "\0"), ((group) ? group : "\0"));
327 if (!eina_hash_find(th->cache_style_load_failed, buf2)) 341 if (!eina_hash_find(th->cache_style_load_failed, buf2))
328 { 342 {
329 file = _elm_theme_group_file_find(th, buf2); 343 file = _elm_theme_group_file_find(th, buf2);
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 89386b2..45163c8 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -3016,6 +3016,10 @@ elm_widget_scroll_child_locked_y_get(const Eo *obj)
3016EOLIAN static Efl_Ui_Theme_Apply 3016EOLIAN static Efl_Ui_Theme_Apply
3017_elm_widget_theme_object_set(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *edj, const char *wname, const char *welement, const char *wstyle) 3017_elm_widget_theme_object_set(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *edj, const char *wname, const char *welement, const char *wstyle)
3018{ 3018{
3019 if (eina_streq(welement, "base"))
3020 welement = NULL;
3021 if (eina_streq(wstyle, "default"))
3022 wstyle = NULL;
3019 Efl_Ui_Theme_Apply ret = _elm_theme_object_set(obj, edj, wname, welement, wstyle); 3023 Efl_Ui_Theme_Apply ret = _elm_theme_object_set(obj, edj, wname, welement, wstyle);
3020 if (!ret) 3024 if (!ret)
3021 { 3025 {
@@ -3613,6 +3617,9 @@ EAPI Eina_Bool
3613elm_widget_theme_element_set(Evas_Object *obj, const char *name) 3617elm_widget_theme_element_set(Evas_Object *obj, const char *name)
3614{ 3618{
3615 ELM_WIDGET_DATA_GET_OR_RETURN(obj, pd, EINA_FALSE); 3619 ELM_WIDGET_DATA_GET_OR_RETURN(obj, pd, EINA_FALSE);
3620 if (eina_streq(name, "base"))
3621 name = NULL;
3622
3616 return eina_stringshare_replace(&(pd->group), name); 3623 return eina_stringshare_replace(&(pd->group), name);
3617} 3624}
3618 3625
@@ -3643,6 +3650,9 @@ EAPI Eina_Bool
3643elm_widget_theme_style_set(Evas_Object *obj, const char *name) 3650elm_widget_theme_style_set(Evas_Object *obj, const char *name)
3644{ 3651{
3645 ELM_WIDGET_DATA_GET_OR_RETURN(obj, pd, EINA_FALSE); 3652 ELM_WIDGET_DATA_GET_OR_RETURN(obj, pd, EINA_FALSE);
3653 if (eina_streq(name, "default"))
3654 name = NULL;
3655
3646 return eina_stringshare_replace(&(pd->style), name); 3656 return eina_stringshare_replace(&(pd->style), name);
3647} 3657}
3648 3658
diff --git a/src/lib/elementary/els_cursor.c b/src/lib/elementary/els_cursor.c
index f8be56e..9f1a371 100644
--- a/src/lib/elementary/els_cursor.c
+++ b/src/lib/elementary/els_cursor.c
@@ -270,7 +270,7 @@ _elm_cursor_obj_add(Evas_Object *obj, Elm_Cursor *cur)
270 cur->obj = edje_object_add(cur->evas); 270 cur->obj = edje_object_add(cur->evas);
271 if (!cur->obj) return EINA_FALSE; 271 if (!cur->obj) return EINA_FALSE;
272 272
273 if (!_elm_theme_object_set(obj, cur->obj, "cursor", cur->cursor_name, 273 if (!efl_ui_widget_theme_object_set(obj, cur->obj, "cursor", cur->cursor_name,
274 cur->style ? cur->style : "default")) 274 cur->style ? cur->style : "default"))
275 { 275 {
276 ELM_SAFE_FREE(cur->obj, evas_object_del); 276 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
740 } 740 }
741 else 741 else
742 { 742 {
743 if (!_elm_theme_object_set(obj, cur->obj, "cursor", cur->cursor_name, 743 if (!efl_ui_widget_theme_object_set(obj, cur->obj, "cursor", cur->cursor_name,
744 style)) 744 style))
745 { 745 {
746 ERR("Could not apply the theme to the cursor style=%s", style); 746 ERR("Could not apply the theme to the cursor style=%s", style);
@@ -768,7 +768,7 @@ void
768elm_cursor_theme(Elm_Cursor *cur) 768elm_cursor_theme(Elm_Cursor *cur)
769{ 769{
770 if ((!cur) || (!cur->obj)) return; 770 if ((!cur) || (!cur->obj)) return;
771 if (!_elm_theme_object_set(cur->owner, cur->obj, "cursor", 771 if (!efl_ui_widget_theme_object_set(cur->owner, cur->obj, "cursor",
772 cur->cursor_name, cur->style)) 772 cur->cursor_name, cur->style))
773 ERR("Could not apply the theme to the cursor style=%s", cur->style); 773 ERR("Could not apply the theme to the cursor style=%s", cur->style);
774 else 774 else
diff --git a/src/lib/elementary/elu_ews_wm.c b/src/lib/elementary/elu_ews_wm.c
index d8c63cfc..9799b2a 100644
--- a/src/lib/elementary/elu_ews_wm.c
+++ b/src/lib/elementary/elu_ews_wm.c
@@ -170,7 +170,7 @@ _elm_ews_border_config_apply(Ecore_Evas *ee, Evas_Object *o, Elm_Theme *th)
170 if (ecore_evas_borderless_get(ee)) 170 if (ecore_evas_borderless_get(ee))
171 style = "borderless"; 171 style = "borderless";
172 172
173 _elm_theme_set(th, o, "ews", "decoration", style ? style : "default"); 173 _elm_theme_set(th, o, "ews", "decoration", style ? style : "default", EINA_TRUE);
174 174
175 if (ecore_evas_shaped_get(ee) || ecore_evas_alpha_get(ee) || 175 if (ecore_evas_shaped_get(ee) || ecore_evas_alpha_get(ee) ||
176 ecore_evas_transparent_get(ee)) 176 ecore_evas_transparent_get(ee))
@@ -446,7 +446,7 @@ _elm_ews_wm_rescale(Elm_Theme *th, Eina_Bool use_theme)
446 _elm_ews_wm_border_theme_set(*(void**)tp->key, tp->data, NULL); 446 _elm_ews_wm_border_theme_set(*(void**)tp->key, tp->data, NULL);
447 447
448 if (_ews_bg) 448 if (_ews_bg)
449 _elm_theme_set(NULL, _ews_bg, "ews", "background", "default"); 449 _elm_theme_set(NULL, _ews_bg, "ews", "background", "default", EINA_TRUE);
450 } 450 }
451 else 451 else
452 { 452 {
@@ -454,7 +454,7 @@ _elm_ews_wm_rescale(Elm_Theme *th, Eina_Bool use_theme)
454 _elm_ews_wm_border_theme_set(*(void**)tp->key, tp->data, th); 454 _elm_ews_wm_border_theme_set(*(void**)tp->key, tp->data, th);
455 455
456 if (_ews_bg) 456 if (_ews_bg)
457 _elm_theme_set(th, _ews_bg, "ews", "background", "default"); 457 _elm_theme_set(th, _ews_bg, "ews", "background", "default", EINA_TRUE);
458 } 458 }
459 459
460 eina_iterator_free(it); 460 eina_iterator_free(it);
@@ -477,7 +477,7 @@ _elm_ews_wm_init(void)
477 o = edje_object_add(e); 477 o = edje_object_add(e);
478 if (!o) return EINA_FALSE; 478 if (!o) return EINA_FALSE;
479 479
480 if (!_elm_theme_set(NULL, o, "ews", "background", "default")) 480 if (!_elm_theme_set(NULL, o, "ews", "background", "default", EINA_TRUE))
481 { 481 {
482 ERR("Could not set background theme, fallback to rectangle"); 482 ERR("Could not set background theme, fallback to rectangle");
483 evas_object_del(o); 483 evas_object_del(o);