diff options
author | Amitesh Singh <amitesh.sh@samsung.com> | 2015-06-25 16:15:06 +0200 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2015-06-25 17:24:08 +0200 |
commit | 8889b728774bd479294ee5029730c90cdddf4450 (patch) | |
tree | 52b78f9d53c8e26ae62915d9d74b5137390e1798 | |
parent | 60396b1158df8a6ea4ca958c6ead92965ca61822 (diff) |
genlist/list/win: Revert focus highlight animation when looping is enable
Summary:
-
Revert "focus: Added internal widget APIs of focus highlight object of elm window."
This reverts commit 3f98d71830163a154762f2d16301d720c781b7c5.
- Revert "List: Focus highlight when loop is enable"
This reverts commit 57ad32a900e71f83441bf7246671b8f16a8ec909.
- Revert "genlist: Focus highlight when loop is enable"
This reverts commit 91282a22cba66ee5e7799018d3abe8957fb1b1fa.
Reviewers: seoz, raster, jpeg, SanghyeonLee
Subscribers: anand.km, seoz
Differential Revision: https://phab.enlightenment.org/D2725
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
-rw-r--r-- | data/themes/edc/elm/focus.edc | 173 | ||||
-rw-r--r-- | src/lib/elm_genlist.c | 59 | ||||
-rw-r--r-- | src/lib/elm_list.c | 98 | ||||
-rw-r--r-- | src/lib/elm_widget.c | 31 | ||||
-rw-r--r-- | src/lib/elm_widget.h | 6 | ||||
-rw-r--r-- | src/lib/elm_win.c | 29 |
6 files changed, 28 insertions, 368 deletions
diff --git a/data/themes/edc/elm/focus.edc b/data/themes/edc/elm/focus.edc index 5c06179b9..19d78cde7 100644 --- a/data/themes/edc/elm/focus.edc +++ b/data/themes/edc/elm/focus.edc | |||
@@ -5,7 +5,7 @@ group { name: "elm/focus_highlight/top/default"; | |||
5 | script { | 5 | script { |
6 | public s_x, s_y, s_w, s_h; /* source */ | 6 | public s_x, s_y, s_w, s_h; /* source */ |
7 | public difx, dify, difw, difh; | 7 | public difx, dify, difw, difh; |
8 | 8 | ||
9 | public animator1(val, Float:pos) { | 9 | public animator1(val, Float:pos) { |
10 | new x, y, w, h, dx, dy, dw, dh, Float:p; | 10 | new x, y, w, h, dx, dy, dw, dh, Float:p; |
11 | p = 1.0 - ((1.0 - pos) * (1.0 - pos) * (1.0 - pos)); | 11 | p = 1.0 - ((1.0 - pos) * (1.0 - pos) * (1.0 - pos)); |
@@ -19,16 +19,16 @@ group { name: "elm/focus_highlight/top/default"; | |||
19 | h = get_int(s_h) + dh; | 19 | h = get_int(s_h) + dh; |
20 | update_offset(x, y, w, h); | 20 | update_offset(x, y, w, h); |
21 | } | 21 | } |
22 | 22 | ||
23 | public update_offset(x, y, w, h) { | 23 | public update_offset(x, y, w, h) { |
24 | set_state_val(PART:"base", STATE_REL1_OFFSET, x, y); | 24 | set_state_val(PART:"base", STATE_REL1_OFFSET, x, y); |
25 | set_state_val(PART:"base", STATE_REL2_OFFSET, x + w, y + h); | 25 | set_state_val(PART:"base", STATE_REL2_OFFSET, x + w, y + h); |
26 | } | 26 | } |
27 | 27 | ||
28 | public message(Msg_Type:type, id, ...) { | 28 | public message(Msg_Type:type, id, ...) { |
29 | if ((type == MSG_INT_SET) && (id == 1)) { | 29 | if ((type == MSG_INT_SET) && (id == 1)) { |
30 | new x1, y1, w1, h1, x2, y2, w2, h2; | 30 | new x1, y1, w1, h1, x2, y2, w2, h2; |
31 | 31 | ||
32 | x1 = getarg(2); | 32 | x1 = getarg(2); |
33 | y1 = getarg(3); | 33 | y1 = getarg(3); |
34 | w1 = getarg(4); | 34 | w1 = getarg(4); |
@@ -37,7 +37,7 @@ group { name: "elm/focus_highlight/top/default"; | |||
37 | y2 = getarg(7); | 37 | y2 = getarg(7); |
38 | w2 = getarg(8); | 38 | w2 = getarg(8); |
39 | h2 = getarg(9); | 39 | h2 = getarg(9); |
40 | 40 | ||
41 | set_int(s_x, x1); | 41 | set_int(s_x, x1); |
42 | set_int(s_y, y1); | 42 | set_int(s_y, y1); |
43 | set_int(s_w, w1); | 43 | set_int(s_w, w1); |
@@ -46,74 +46,31 @@ group { name: "elm/focus_highlight/top/default"; | |||
46 | set_int(dify, y2 - y1); | 46 | set_int(dify, y2 - y1); |
47 | set_int(difw, w2 - w1); | 47 | set_int(difw, w2 - w1); |
48 | set_int(difh, h2 - h1); | 48 | set_int(difh, h2 - h1); |
49 | 49 | ||
50 | custom_state(PART:"base", "default", 0.0); | 50 | custom_state(PART:"base", "default", 0.0); |
51 | set_state_val(PART:"base", STATE_REL1, 0.0, 0.0); | 51 | set_state_val(PART:"base", STATE_REL1, 0.0, 0.0); |
52 | set_state_val(PART:"base", STATE_REL2, 0.0, 0.0); | 52 | set_state_val(PART:"base", STATE_REL2, 0.0, 0.0); |
53 | update_offset(x1, y1, w1, h1); | 53 | update_offset(x1, y1, w1, h1); |
54 | set_state(PART:"base", "custom", 0.0); | 54 | set_state(PART:"base", "custom", 0.0); |
55 | 55 | ||
56 | anim(0.2, "animator1", 1); | 56 | anim(0.2, "animator1", 1); |
57 | } | 57 | } |
58 | } | 58 | } |
59 | } | 59 | } |
60 | parts { | 60 | parts { |
61 | part { name: "base"; type: RECT; | 61 | part { name: "base"; type: SPACER; |
62 | clip_to: "clip"; | ||
63 | description { state: "default" 0.0; | 62 | description { state: "default" 0.0; |
64 | visible: 0; | ||
65 | } | ||
66 | description { state: "move_down" 0.0; | ||
67 | inherit: "default" 0.0; | ||
68 | rel1.relative: 0 1; | ||
69 | rel2.relative: 1 2; | ||
70 | } | ||
71 | description { state: "move_up" 0.0; | ||
72 | inherit: "default" 0.0; | ||
73 | rel1.relative: 0 -1; | ||
74 | rel2.relative: 1 0; | ||
75 | } | ||
76 | description { state: "move_left" 0.0; | ||
77 | inherit: "default" 0.0; | ||
78 | rel1.relative: -1 0; | ||
79 | rel2.relative: 0 1; | ||
80 | } | ||
81 | description { state: "move_right" 0.0; | ||
82 | inherit: "default" 0.0; | ||
83 | rel1.relative: 1 0; | ||
84 | rel2.relative: 2 1; | ||
85 | } | 63 | } |
86 | } | 64 | } |
87 | part { name: "clip"; type: RECT; | 65 | part { name: "clip"; type: RECT; |
88 | scale: 1; | 66 | description { state: "default" 0.0; |
89 | description { | 67 | rel1.to: "glow"; |
90 | state: "default" 0.0; | 68 | rel2.to: "glow"; |
91 | color: 255 255 255 255; | ||
92 | rel1.relative: -1 -1; | ||
93 | rel2.relative: 2 2; | ||
94 | } | ||
95 | description { state: "move_down" 0.0; | ||
96 | inherit: "default" 0.0; | ||
97 | color: 255 255 255 0; | ||
98 | } | ||
99 | description { state: "move_up" 0.0; | ||
100 | inherit: "default" 0.0; | ||
101 | color: 255 255 255 0 ; | ||
102 | } | ||
103 | description { state: "move_left" 0.0; | ||
104 | inherit: "default" 0.0; | ||
105 | color: 255 255 255 0; | 69 | color: 255 255 255 0; |
106 | } | 70 | } |
107 | description { state: "move_right" 0.0; | ||
108 | inherit: "default" 0.0; | ||
109 | color: 255 255 255 0 ; | ||
110 | } | ||
111 | description { state: "visible" 0.0; | 71 | description { state: "visible" 0.0; |
112 | inherit: "default" 0.0; | 72 | inherit: "default" 0.0; |
113 | } | 73 | color: 255 255 255 255; |
114 | description { state: "invisible" 0.0; | ||
115 | inherit: "default" 0.0; | ||
116 | color: 255 255 255 0; | ||
117 | } | 74 | } |
118 | } | 75 | } |
119 | part { name: "glow"; mouse_events: 0; | 76 | part { name: "glow"; mouse_events: 0; |
@@ -164,7 +121,7 @@ group { name: "elm/focus_highlight/top/default"; | |||
164 | } | 121 | } |
165 | program { | 122 | program { |
166 | signal: "elm,action,focus,hide"; source: "elm"; | 123 | signal: "elm,action,focus,hide"; source: "elm"; |
167 | action: STATE_SET "invisible" 0.0; | 124 | action: STATE_SET "default" 0.0; |
168 | transition: DECELERATE 0.4; | 125 | transition: DECELERATE 0.4; |
169 | target: "clip"; | 126 | target: "clip"; |
170 | after: "stop2"; | 127 | after: "stop2"; |
@@ -196,109 +153,5 @@ group { name: "elm/focus_highlight/top/default"; | |||
196 | action: STATE_SET "default" 0.0; | 153 | action: STATE_SET "default" 0.0; |
197 | target: "base"; | 154 | target: "base"; |
198 | } | 155 | } |
199 | program { name: "move_down"; | ||
200 | signal: "elm,action,focus,move,down"; | ||
201 | source: "elm"; | ||
202 | transition: LIN 0.3; | ||
203 | action: STATE_SET "move_down" 0.0; | ||
204 | target: "base"; | ||
205 | target: "clip"; | ||
206 | after: "move_down_end"; | ||
207 | } | ||
208 | program { name: "move_down_end"; | ||
209 | action: SIGNAL_EMIT "elm,focus,move,down,end" "elm"; | ||
210 | } | ||
211 | program { name: "move_up"; | ||
212 | signal: "elm,action,focus,move,up"; | ||
213 | source: "elm"; | ||
214 | transition: LIN 0.3; | ||
215 | action: STATE_SET "move_up" 0.0; | ||
216 | target: "base"; | ||
217 | target: "clip"; | ||
218 | after: "move_up_end"; | ||
219 | } | ||
220 | program { name: "move_up_end"; | ||
221 | action: SIGNAL_EMIT "elm,focus,move,up,end" "elm"; | ||
222 | } | ||
223 | program { name: "move_home_from_up"; | ||
224 | signal: "elm,action,focus,move,home,up"; | ||
225 | source: "elm"; | ||
226 | action: STATE_SET "move_up" 0.0; | ||
227 | target: "base"; | ||
228 | target: "clip"; | ||
229 | after: "move_home_from_up2"; | ||
230 | } | ||
231 | program { name: "move_home_from_up2"; | ||
232 | action: STATE_SET "default" 0.0; | ||
233 | transition: LIN 0.3; | ||
234 | target: "base"; | ||
235 | target: "clip"; | ||
236 | } | ||
237 | program { name: "move_home_from_down"; | ||
238 | signal: "elm,action,focus,move,home,down"; | ||
239 | source: "elm"; | ||
240 | action: STATE_SET "move_down" 0.0; | ||
241 | target: "base"; | ||
242 | target: "clip"; | ||
243 | after: "move_home_from_down2"; | ||
244 | } | ||
245 | program { name: "move_home_from_down2"; | ||
246 | action: STATE_SET "default" 0.0; | ||
247 | transition: LIN 0.3; | ||
248 | target: "base"; | ||
249 | target: "clip"; | ||
250 | } | ||
251 | program { name: "move_left"; | ||
252 | signal: "elm,action,focus,move,left"; | ||
253 | source: "elm"; | ||
254 | transition: LIN 0.3; | ||
255 | action: STATE_SET "move_left" 0.0; | ||
256 | target: "base"; | ||
257 | target: "clip"; | ||
258 | after: "move_left_end"; | ||
259 | } | ||
260 | program { name: "move_left_end"; | ||
261 | action: SIGNAL_EMIT "elm,focus,move,left,end" "elm"; | ||
262 | } | ||
263 | program { name: "move_right"; | ||
264 | signal: "elm,action,focus,move,right"; | ||
265 | source: "elm"; | ||
266 | transition: LIN 0.3; | ||
267 | action: STATE_SET "move_right" 0.0; | ||
268 | target: "base"; | ||
269 | target: "clip"; | ||
270 | after: "move_right_end"; | ||
271 | } | ||
272 | program { name: "move_right_end"; | ||
273 | action: SIGNAL_EMIT "elm,focus,move,right,end" "elm"; | ||
274 | } | ||
275 | program { name: "move_home_from_right"; | ||
276 | signal: "elm,action,focus,move,home,right"; | ||
277 | source: "elm"; | ||
278 | action: STATE_SET "move_right" 0.0; | ||
279 | target: "base"; | ||
280 | target: "clip"; | ||
281 | after: "move_home_from_right2"; | ||
282 | } | ||
283 | program { name: "move_home_from_right2"; | ||
284 | action: STATE_SET "default" 0.0; | ||
285 | transition: LIN 0.3; | ||
286 | target: "base"; | ||
287 | target: "clip"; | ||
288 | } | ||
289 | program { name: "move_home_from_left"; | ||
290 | signal: "elm,action,focus,move,home,left"; | ||
291 | source: "elm"; | ||
292 | action: STATE_SET "move_left" 0.0; | ||
293 | target: "base"; | ||
294 | target: "clip"; | ||
295 | after: "move_home_from_left2"; | ||
296 | } | ||
297 | program { name: "move_home_from_left2"; | ||
298 | action: STATE_SET "default" 0.0; | ||
299 | transition: LIN 0.3; | ||
300 | target: "base"; | ||
301 | target: "clip"; | ||
302 | } | ||
303 | } | 156 | } |
304 | } | 157 | } |
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index dcb7c0cf3..a5d44ba5a 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c | |||
@@ -5386,9 +5386,13 @@ _elm_genlist_looping_up_cb(void *data, | |||
5386 | Elm_Object_Item *eo_it = elm_genlist_last_item_get(genlist); | 5386 | Elm_Object_Item *eo_it = elm_genlist_last_item_get(genlist); |
5387 | 5387 | ||
5388 | elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN); | 5388 | elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN); |
5389 | _elm_widget_focus_highlight_signal_emit(genlist, "elm,action,focus,move,up", "elm"); | ||
5390 | elm_layout_signal_emit(genlist, "elm,action,looping,up,end", "elm"); | 5389 | elm_layout_signal_emit(genlist, "elm,action,looping,up,end", "elm"); |
5391 | sd->item_looping_on = EINA_FALSE; | 5390 | sd->item_looping_on = EINA_FALSE; |
5391 | |||
5392 | if (!_elm_config->item_select_on_focus_disable) | ||
5393 | elm_genlist_item_selected_set(eo_it, EINA_TRUE); | ||
5394 | else | ||
5395 | elm_object_item_focus_set(eo_it, EINA_TRUE); | ||
5392 | } | 5396 | } |
5393 | 5397 | ||
5394 | static void | 5398 | static void |
@@ -5404,43 +5408,13 @@ _elm_genlist_looping_down_cb(void *data, | |||
5404 | Elm_Object_Item *eo_it = elm_genlist_first_item_get(genlist); | 5408 | Elm_Object_Item *eo_it = elm_genlist_first_item_get(genlist); |
5405 | 5409 | ||
5406 | elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN); | 5410 | elm_genlist_item_show(eo_it, ELM_GENLIST_ITEM_SCROLLTO_IN); |
5407 | _elm_widget_focus_highlight_signal_emit(genlist, "elm,action,focus,move,down", "elm"); | ||
5408 | elm_layout_signal_emit(genlist, "elm,action,looping,down,end", "elm"); | 5411 | elm_layout_signal_emit(genlist, "elm,action,looping,down,end", "elm"); |
5409 | sd->item_looping_on = EINA_FALSE; | 5412 | sd->item_looping_on = EINA_FALSE; |
5410 | } | ||
5411 | |||
5412 | static void | ||
5413 | _elm_genlist_focus_highlight_move_down_end_cb(void *data, | ||
5414 | Evas_Object *obj EINA_UNUSED, | ||
5415 | const char *emission EINA_UNUSED, | ||
5416 | const char *source EINA_UNUSED) | ||
5417 | { | ||
5418 | Evas_Object *gl = data; | ||
5419 | Elm_Object_Item *eo_it = elm_genlist_first_item_get(gl); | ||
5420 | |||
5421 | if (!_elm_config->item_select_on_focus_disable) | ||
5422 | elm_genlist_item_selected_set(eo_it, EINA_TRUE); | ||
5423 | else | ||
5424 | elm_object_item_focus_set(eo_it, EINA_TRUE); | ||
5425 | |||
5426 | _elm_widget_focus_highlight_signal_emit(gl, "elm,action,focus,move,home,up", "elm"); | ||
5427 | } | ||
5428 | 5413 | ||
5429 | static void | 5414 | if (!_elm_config->item_select_on_focus_disable) |
5430 | _elm_genlist_focus_highlight_move_up_end_cb(void *data, | 5415 | elm_genlist_item_selected_set(eo_it, EINA_TRUE); |
5431 | Evas_Object *obj EINA_UNUSED, | 5416 | else |
5432 | const char *emission EINA_UNUSED, | 5417 | elm_object_item_focus_set(eo_it, EINA_TRUE); |
5433 | const char *source EINA_UNUSED) | ||
5434 | { | ||
5435 | Evas_Object *gl = data; | ||
5436 | Elm_Object_Item *eo_it = elm_genlist_last_item_get(gl); | ||
5437 | |||
5438 | if (!_elm_config->item_select_on_focus_disable) | ||
5439 | elm_genlist_item_selected_set(eo_it, EINA_TRUE); | ||
5440 | else | ||
5441 | elm_object_item_focus_set(eo_it, EINA_TRUE); | ||
5442 | |||
5443 | _elm_widget_focus_highlight_signal_emit(gl, "elm,action,focus,move,home,down", "elm"); | ||
5444 | } | 5418 | } |
5445 | 5419 | ||
5446 | static void | 5420 | static void |
@@ -7954,21 +7928,6 @@ _elm_genlist_elm_widget_focused_item_get(Eo *obj EINA_UNUSED, Elm_Genlist_Data * | |||
7954 | EOLIAN static void | 7928 | EOLIAN static void |
7955 | _elm_genlist_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool enable) | 7929 | _elm_genlist_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_Genlist_Data *sd, Eina_Bool enable) |
7956 | { | 7930 | { |
7957 | if (enable == EINA_TRUE) | ||
7958 | { | ||
7959 | _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,down,end", | ||
7960 | "elm", _elm_genlist_focus_highlight_move_down_end_cb, obj); | ||
7961 | _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,up,end", | ||
7962 | "elm", _elm_genlist_focus_highlight_move_up_end_cb, obj); | ||
7963 | } | ||
7964 | else | ||
7965 | { | ||
7966 | _elm_widget_focus_highlight_signal_callback_del(obj, "elm,focus,move,down,end", | ||
7967 | "elm", _elm_genlist_focus_highlight_move_down_end_cb); | ||
7968 | _elm_widget_focus_highlight_signal_callback_del(obj, "elm,focus,move,up,end", | ||
7969 | "elm", _elm_genlist_focus_highlight_move_up_end_cb); | ||
7970 | } | ||
7971 | |||
7972 | sd->item_loop_enable = !!enable; | 7931 | sd->item_loop_enable = !!enable; |
7973 | } | 7932 | } |
7974 | 7933 | ||
diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c index f89b32cde..09aa88a49 100644 --- a/src/lib/elm_list.c +++ b/src/lib/elm_list.c | |||
@@ -1813,16 +1813,15 @@ _elm_list_looping_left_cb(void *data, | |||
1813 | elm_list_item_selected_set(it, EINA_TRUE); | 1813 | elm_list_item_selected_set(it, EINA_TRUE); |
1814 | else | 1814 | else |
1815 | elm_object_item_focus_set(it, EINA_TRUE); | 1815 | elm_object_item_focus_set(it, EINA_TRUE); |
1816 | _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,left", "elm"); | ||
1817 | elm_layout_signal_emit(list, "elm,action,looping,left,end", "elm"); | 1816 | elm_layout_signal_emit(list, "elm,action,looping,left,end", "elm"); |
1818 | sd->item_looping_on = EINA_FALSE; | 1817 | sd->item_looping_on = EINA_FALSE; |
1819 | } | 1818 | } |
1820 | 1819 | ||
1821 | static void | 1820 | static void |
1822 | _elm_list_looping_right_cb(void *data, | 1821 | _elm_list_looping_right_cb(void *data, |
1823 | Evas_Object *obj EINA_UNUSED, | 1822 | Evas_Object *obj EINA_UNUSED, |
1824 | const char *emission EINA_UNUSED, | 1823 | const char *emission EINA_UNUSED, |
1825 | const char *source EINA_UNUSED) | 1824 | const char *source EINA_UNUSED) |
1826 | { | 1825 | { |
1827 | Evas_Object *list = data; | 1826 | Evas_Object *list = data; |
1828 | 1827 | ||
@@ -1833,16 +1832,15 @@ _elm_list_looping_right_cb(void *data, | |||
1833 | elm_list_item_selected_set(it, EINA_TRUE); | 1832 | elm_list_item_selected_set(it, EINA_TRUE); |
1834 | else | 1833 | else |
1835 | elm_object_item_focus_set(it, EINA_TRUE); | 1834 | elm_object_item_focus_set(it, EINA_TRUE); |
1836 | _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,right", "elm"); | ||
1837 | elm_layout_signal_emit(list, "elm,action,looping,right,end", "elm"); | 1835 | elm_layout_signal_emit(list, "elm,action,looping,right,end", "elm"); |
1838 | sd->item_looping_on = EINA_FALSE; | 1836 | sd->item_looping_on = EINA_FALSE; |
1839 | } | 1837 | } |
1840 | 1838 | ||
1841 | static void | 1839 | static void |
1842 | _elm_list_looping_up_cb(void *data, | 1840 | _elm_list_looping_up_cb(void *data, |
1843 | Evas_Object *obj EINA_UNUSED, | 1841 | Evas_Object *obj EINA_UNUSED, |
1844 | const char *emission EINA_UNUSED, | 1842 | const char *emission EINA_UNUSED, |
1845 | const char *source EINA_UNUSED) | 1843 | const char *source EINA_UNUSED) |
1846 | { | 1844 | { |
1847 | Evas_Object *list = data; | 1845 | Evas_Object *list = data; |
1848 | 1846 | ||
@@ -1853,7 +1851,6 @@ _elm_list_looping_up_cb(void *data, | |||
1853 | elm_list_item_selected_set(it, EINA_TRUE); | 1851 | elm_list_item_selected_set(it, EINA_TRUE); |
1854 | else | 1852 | else |
1855 | elm_object_item_focus_set(it, EINA_TRUE); | 1853 | elm_object_item_focus_set(it, EINA_TRUE); |
1856 | _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,up", "elm"); | ||
1857 | elm_layout_signal_emit(list, "elm,action,looping,up,end", "elm"); | 1854 | elm_layout_signal_emit(list, "elm,action,looping,up,end", "elm"); |
1858 | sd->item_looping_on = EINA_FALSE; | 1855 | sd->item_looping_on = EINA_FALSE; |
1859 | } | 1856 | } |
@@ -1873,80 +1870,8 @@ _elm_list_looping_down_cb(void *data, | |||
1873 | elm_list_item_selected_set(it, EINA_TRUE); | 1870 | elm_list_item_selected_set(it, EINA_TRUE); |
1874 | else | 1871 | else |
1875 | elm_object_item_focus_set(it, EINA_TRUE); | 1872 | elm_object_item_focus_set(it, EINA_TRUE); |
1876 | _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,down", "elm"); | ||
1877 | elm_layout_signal_emit(list, "elm,action,looping,down,end", "elm"); | ||
1878 | sd->item_looping_on = EINA_FALSE; | ||
1879 | } | ||
1880 | |||
1881 | static void | ||
1882 | _elm_list_focus_highlight_move_down_end_cb(void *data, | ||
1883 | Evas_Object *obj EINA_UNUSED, | ||
1884 | const char *emission EINA_UNUSED, | ||
1885 | const char *source EINA_UNUSED) | ||
1886 | { | ||
1887 | Evas_Object *list = data; | ||
1888 | Elm_List_Item *it = (Elm_List_Item *)elm_list_first_item_get(list); | ||
1889 | ELM_LIST_DATA_GET(list, sd); | ||
1890 | |||
1891 | if (!_elm_config->item_select_on_focus_disable) | ||
1892 | elm_list_item_selected_set(it, EINA_TRUE); | ||
1893 | else | ||
1894 | elm_object_item_focus_set(it, EINA_TRUE); | ||
1895 | elm_layout_signal_emit(list, "elm,action,looping,down,end", "elm"); | 1873 | elm_layout_signal_emit(list, "elm,action,looping,down,end", "elm"); |
1896 | sd->item_looping_on = EINA_FALSE; | 1874 | sd->item_looping_on = EINA_FALSE; |
1897 | |||
1898 | _elm_widget_focus_highlight_signal_emit(list, "elm,action,focus,move,home,up", "elm"); | ||
1899 | } | ||
1900 | |||
1901 | static void | ||
1902 | _elm_list_focus_highlight_move_up_end_cb(void *data, | ||
1903 | Evas_Object *obj EINA_UNUSED, | ||
1904 | const char *emission EINA_UNUSED, | ||
1905 | const char *source EINA_UNUSED) | ||
1906 | { | ||
1907 | Evas_Object *li = data; | ||
1908 | Elm_List_Item *it = (Elm_List_Item *)elm_list_last_item_get(li); | ||
1909 | |||
1910 | if (!_elm_config->item_select_on_focus_disable) | ||
1911 | elm_list_item_selected_set((Elm_Object_Item *)it, EINA_TRUE); | ||
1912 | else | ||
1913 | elm_object_item_focus_set((Elm_Object_Item *)it, EINA_TRUE); | ||
1914 | |||
1915 | _elm_widget_focus_highlight_signal_emit(li, "elm,action,focus,move,home,down", "elm"); | ||
1916 | } | ||
1917 | |||
1918 | static void | ||
1919 | _elm_list_focus_highlight_move_right_end_cb(void *data, | ||
1920 | Evas_Object *obj EINA_UNUSED, | ||
1921 | const char *emission EINA_UNUSED, | ||
1922 | const char *source EINA_UNUSED) | ||
1923 | { | ||
1924 | Evas_Object *li = data; | ||
1925 | Elm_List_Item *it = (Elm_List_Item *)elm_list_first_item_get(li); | ||
1926 | |||
1927 | if (!_elm_config->item_select_on_focus_disable) | ||
1928 | elm_list_item_selected_set((Elm_Object_Item *)it, EINA_TRUE); | ||
1929 | else | ||
1930 | elm_object_item_focus_set((Elm_Object_Item *)it, EINA_TRUE); | ||
1931 | |||
1932 | _elm_widget_focus_highlight_signal_emit(li, "elm,action,focus,move,home,left", "elm"); | ||
1933 | } | ||
1934 | |||
1935 | static void | ||
1936 | _elm_list_focus_highlight_move_left_end_cb(void *data, | ||
1937 | Evas_Object *obj EINA_UNUSED, | ||
1938 | const char *emission EINA_UNUSED, | ||
1939 | const char *source EINA_UNUSED) | ||
1940 | { | ||
1941 | Evas_Object *li = data; | ||
1942 | Elm_List_Item *it = (Elm_List_Item *)elm_list_last_item_get(li); | ||
1943 | |||
1944 | if (!_elm_config->item_select_on_focus_disable) | ||
1945 | elm_list_item_selected_set((Elm_Object_Item *)it, EINA_TRUE); | ||
1946 | else | ||
1947 | elm_object_item_focus_set((Elm_Object_Item *)it, EINA_TRUE); | ||
1948 | |||
1949 | _elm_widget_focus_highlight_signal_emit(li, "elm,action,focus,move,home,right", "elm"); | ||
1950 | } | 1875 | } |
1951 | 1876 | ||
1952 | EOLIAN static void | 1877 | EOLIAN static void |
@@ -3194,17 +3119,6 @@ _elm_list_elm_widget_focused_item_get(Eo *obj EINA_UNUSED, Elm_List_Data *sd) | |||
3194 | EOLIAN static void | 3119 | EOLIAN static void |
3195 | _elm_list_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_List_Data *sd, Eina_Bool enable) | 3120 | _elm_list_elm_widget_item_loop_enabled_set(Eo *obj EINA_UNUSED, Elm_List_Data *sd, Eina_Bool enable) |
3196 | { | 3121 | { |
3197 | if (enable == EINA_TRUE) | ||
3198 | { | ||
3199 | _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,down,end", | ||
3200 | "elm", _elm_list_focus_highlight_move_down_end_cb, obj); | ||
3201 | _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,up,end", | ||
3202 | "elm", _elm_list_focus_highlight_move_up_end_cb, obj); | ||
3203 | _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,left,end", | ||
3204 | "elm", _elm_list_focus_highlight_move_left_end_cb, obj); | ||
3205 | _elm_widget_focus_highlight_signal_callback_add(obj, "elm,focus,move,right,end", | ||
3206 | "elm", _elm_list_focus_highlight_move_right_end_cb, obj); | ||
3207 | } | ||
3208 | sd->item_loop_enable = !!enable; | 3122 | sd->item_loop_enable = !!enable; |
3209 | } | 3123 | } |
3210 | 3124 | ||
diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index 17b81aec7..e105da434 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c | |||
@@ -173,37 +173,6 @@ _elm_widget_focus_highlight_start(const Evas_Object *obj) | |||
173 | _elm_win_focus_highlight_start(top); | 173 | _elm_win_focus_highlight_start(top); |
174 | } | 174 | } |
175 | 175 | ||
176 | void | ||
177 | _elm_widget_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source) | ||
178 | { | ||
179 | Evas_Object *top = elm_widget_top_get(obj); | ||
180 | |||
181 | if (top && eo_isa(top, ELM_WIN_CLASS)) | ||
182 | _elm_win_focus_highlight_signal_emit(top, emission, source); | ||
183 | } | ||
184 | |||
185 | void | ||
186 | _elm_widget_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission, | ||
187 | const char *source, Edje_Signal_Cb _focus_highlight_signal_cb, | ||
188 | void *data) | ||
189 | { | ||
190 | Evas_Object *top = elm_widget_top_get(obj); | ||
191 | |||
192 | if (top && eo_isa(top, ELM_WIN_CLASS)) | ||
193 | _elm_win_focus_highlight_signal_callback_add(top, emission, source, _focus_highlight_signal_cb, data); | ||
194 | } | ||
195 | |||
196 | void | ||
197 | _elm_widget_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission, | ||
198 | const char *source, | ||
199 | Edje_Signal_Cb _focus_highlight_signal_cb) | ||
200 | { | ||
201 | Evas_Object *top = elm_widget_top_get(obj); | ||
202 | |||
203 | if (top && eo_isa(top, ELM_WIN_CLASS)) | ||
204 | _elm_win_focus_highlight_signal_callback_del(top, emission, source, _focus_highlight_signal_cb); | ||
205 | } | ||
206 | |||
207 | EAPI Eina_Bool | 176 | EAPI Eina_Bool |
208 | elm_widget_focus_highlight_enabled_get(const Evas_Object *obj) | 177 | elm_widget_focus_highlight_enabled_get(const Evas_Object *obj) |
209 | { | 178 | { |
diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h index 12e6ebb94..5c173c684 100644 --- a/src/lib/elm_widget.h +++ b/src/lib/elm_widget.h | |||
@@ -529,16 +529,10 @@ void _elm_access_widget_item_access_order_unset(Elm_Widget_Item | |||
529 | // widget focus highlight | 529 | // widget focus highlight |
530 | void _elm_widget_focus_highlight_start(const Evas_Object *obj); | 530 | void _elm_widget_focus_highlight_start(const Evas_Object *obj); |
531 | void _elm_widget_highlight_in_theme_update(Eo *obj); | 531 | void _elm_widget_highlight_in_theme_update(Eo *obj); |
532 | void _elm_widget_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source); | ||
533 | void _elm_widget_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb, void *data); | ||
534 | void _elm_widget_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb); | ||
535 | 532 | ||
536 | // win focus highlight | 533 | // win focus highlight |
537 | void _elm_win_focus_highlight_start(Evas_Object *obj); | 534 | void _elm_win_focus_highlight_start(Evas_Object *obj); |
538 | void _elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool in_theme); | 535 | void _elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool in_theme); |
539 | void _elm_win_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source); | ||
540 | void _elm_win_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb, void *data); | ||
541 | void _elm_win_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission, const char *source, Edje_Signal_Cb _focus_highlight_signal_cb); | ||
542 | void _elm_win_focus_auto_show(Evas_Object *obj); | 536 | void _elm_win_focus_auto_show(Evas_Object *obj); |
543 | void _elm_win_focus_auto_hide(Evas_Object *obj); | 537 | void _elm_win_focus_auto_hide(Evas_Object *obj); |
544 | 538 | ||
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index a7c9e74cf..6d4135905 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c | |||
@@ -5337,35 +5337,6 @@ _elm_win_focus_highlight_in_theme_update(Evas_Object *obj, Eina_Bool in_theme) | |||
5337 | } | 5337 | } |
5338 | 5338 | ||
5339 | void | 5339 | void |
5340 | _elm_win_focus_highlight_signal_emit(Evas_Object *obj, const char *emission, const char *source) | ||
5341 | { | ||
5342 | ELM_WIN_DATA_GET(obj, sd); | ||
5343 | if ((sd->focus_highlight.enabled) || (sd->focus_highlight.auto_enabled)) | ||
5344 | edje_object_signal_emit(sd->focus_highlight.fobj, emission, source); | ||
5345 | } | ||
5346 | |||
5347 | void | ||
5348 | _elm_win_focus_highlight_signal_callback_add(Evas_Object *obj, const char *emission, | ||
5349 | const char *source, Edje_Signal_Cb _focus_highlight_signal_cb, | ||
5350 | void *data) | ||
5351 | { | ||
5352 | ELM_WIN_DATA_GET(obj, sd); | ||
5353 | if (((sd->focus_highlight.enabled) || (sd->focus_highlight.auto_enabled)) | ||
5354 | && (sd->focus_highlight.fobj)) | ||
5355 | edje_object_signal_callback_add(sd->focus_highlight.fobj, emission, source, _focus_highlight_signal_cb, data); | ||
5356 | } | ||
5357 | |||
5358 | void | ||
5359 | _elm_win_focus_highlight_signal_callback_del(Evas_Object *obj, const char *emission, | ||
5360 | const char *source, Edje_Signal_Cb _focus_highlight_signal_cb) | ||
5361 | { | ||
5362 | ELM_WIN_DATA_GET(obj, sd); | ||
5363 | if (((sd->focus_highlight.enabled) || (sd->focus_highlight.auto_enabled)) | ||
5364 | && (sd->focus_highlight.fobj)) | ||
5365 | edje_object_signal_callback_del(sd->focus_highlight.fobj, emission, source, _focus_highlight_signal_cb); | ||
5366 | } | ||
5367 | |||
5368 | void | ||
5369 | _elm_win_focus_highlight_start(Evas_Object *obj) | 5340 | _elm_win_focus_highlight_start(Evas_Object *obj) |
5370 | { | 5341 | { |
5371 | ELM_WIN_DATA_GET(obj, sd); | 5342 | ELM_WIN_DATA_GET(obj, sd); |