summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2017-08-23 20:11:49 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2017-08-23 20:53:20 +0900
commit3f5f675c7465058a2c531a3c55afbfece019b0e8 (patch)
tree2ed89c3b49edeb87f267abd3b474c6d4fe2fb820
parentf1ab8c8fee7f422b8a4041c27b0a38fec2375bb8 (diff)
widget: Reshuffle EO file for clarity
Also marks theme.set/get as beta. Ref T5363
-rw-r--r--src/lib/elementary/elm_widget.c22
-rw-r--r--src/lib/elementary/elm_widget.eo465
2 files changed, 262 insertions, 225 deletions
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 8d5c26c087..d1ede03ff3 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -8,6 +8,7 @@
8#define ELM_WIDGET_ITEM_PROTECTED 8#define ELM_WIDGET_ITEM_PROTECTED
9#define EFL_CANVAS_OBJECT_BETA 9#define EFL_CANVAS_OBJECT_BETA
10#define EFL_INPUT_EVENT_PROTECTED 10#define EFL_INPUT_EVENT_PROTECTED
11#define ELM_WIDGET_BETA
11 12
12#include <Elementary.h> 13#include <Elementary.h>
13 14
@@ -3674,6 +3675,13 @@ _elm_widget_theme_set(Eo *obj, Elm_Widget_Smart_Data *sd, Elm_Theme *th)
3674 } 3675 }
3675} 3676}
3676 3677
3678/* beta in eo */
3679EAPI void
3680elm_widget_theme_set(Evas_Object *obj, Elm_Theme *th)
3681{
3682 elm_obj_widget_theme_set(obj, th);
3683}
3684
3677EOLIAN static void 3685EOLIAN static void
3678_elm_widget_part_text_set(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED, const char *part, const char *label) 3686_elm_widget_part_text_set(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED, const char *part, const char *label)
3679{ 3687{
@@ -3941,6 +3949,13 @@ _elm_widget_theme_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
3941 return sd->theme; 3949 return sd->theme;
3942} 3950}
3943 3951
3952/* beta in eo */
3953EAPI Elm_Theme *
3954elm_widget_theme_get(const Evas_Object *obj)
3955{
3956 return elm_obj_widget_theme_get(obj);
3957}
3958
3944EOLIAN static Efl_Ui_Theme_Apply 3959EOLIAN static Efl_Ui_Theme_Apply
3945_elm_widget_style_set(Eo *obj, Elm_Widget_Smart_Data *sd, const char *style) 3960_elm_widget_style_set(Eo *obj, Elm_Widget_Smart_Data *sd, const char *style)
3946{ 3961{
@@ -4074,6 +4089,13 @@ _elm_widget_theme_object_set(Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Object *ed
4074 return ret; 4089 return ret;
4075} 4090}
4076 4091
4092/* beta in eo */
4093EAPI Efl_Ui_Theme_Apply
4094elm_widget_theme_object_set(Evas_Object *obj, Evas_Object *edj, const char *wname, const char *welement, const char *wstyle)
4095{
4096 return elm_obj_widget_theme_object_set(obj, edj, wname, welement, wstyle);
4097}
4098
4077static void 4099static void
4078_convert(Efl_Dbg_Info *info, Eina_Iterator *ptr_list) 4100_convert(Efl_Dbg_Info *info, Eina_Iterator *ptr_list)
4079{ 4101{
diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo
index 31384ea714..209fe2dbbe 100644
--- a/src/lib/elementary/elm_widget.eo
+++ b/src/lib/elementary/elm_widget.eo
@@ -149,7 +149,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
149 } 149 }
150 } 150 }
151 // FIXME: focus_allow? can_focus? focusable? 151 // FIXME: focus_allow? can_focus? focusable?
152 // FIXME: should it be protected? i.e. only set by the widget itself?
153 @property focus_allow { 152 @property focus_allow {
154 [[The ability for a widget to be focused. 153 [[The ability for a widget to be focused.
155 154
@@ -217,95 +216,98 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
217 } 216 }
218 } 217 }
219 218
220 /* Not sure if the following are internal only? */ 219 /* Theme API: Not bound to EO */
221 @property on_show_region_hook { 220 @property theme @beta {
222 [[Region hook on show property]]
223 set {}
224 values {
225 func: Efl.Ui.Scrollable_On_Show_Region @nullable; [[Region hook function]]
226 }
227 }
228
229 @property drag_lock_y {
230 [[Lock the Y axis from being dragged]]
231 values {
232 lock: bool; [[$true if the Y axis is locked, $false otherwise]]
233 }
234 }
235 @property focus_highlight_style {
236 [[Control the widget focus highlight style.]]
237 set {
238 return: bool; [[$true on success, $false otherwise.]]
239 }
240 get {
241 }
242 values {
243 style: string; [[The name of the focus highlight style.]]
244 }
245 }
246 @property theme {
247 [[Widget theme]] 221 [[Widget theme]]
248 values { 222 values {
249 th: ptr(Elm.Theme) @nullable; [[Elementary theme]] 223 th: ptr(Elm.Theme) @nullable; [[Elementary theme]]
250 } 224 }
251 } 225 }
252 @property highlight_ignore { 226 @property highlight_ignore {
253 [[Highlight ignore]] 227 [[Highlight ignore]]
254 values { 228 values {
255 ignore: bool; [[$true if highlights are ignored, $false otherwise]] 229 ignore: bool; [[$true if highlights are ignored, $false otherwise]]
256 } 230 }
257 } 231 }
258 @property focus_custom_chain { 232 @property theme_object @beta {
259 [[A custom chain of objects to pass focus. 233 [[Theme object property]]
260
261 Note: On focus cycle, only will be evaluated children of this container.]]
262 set { 234 set {
263 [[This function overwrites any previous custom focus chain within 235 return: Efl.Ui.Theme.Apply; [[Theme apply]]
264 the list of objects. The previous list will be deleted and this list
265 will be managed by elementary. After it is set, don't modify it.]]
266 values {
267 objs: list<Efl.Canvas.Object>; [[Chain of objects to pass focus]]
268 }
269 } 236 }
270 get { 237 values {
271 values { 238 edj: Efl.Canvas.Object; [[Edje object]]
272 objs: const(list<Efl.Canvas.Object>); [[Chain of objects]] 239 wname: string; [[Widget name]]
273 } 240 welement: string; [[Widget element]]
241 wstyle: string; [[Widget style]]
274 } 242 }
275 } 243 }
244
245 /* Accessibility */
276 @property access_info { 246 @property access_info {
277 [[Accessibility information]] 247 [[Accessibility information]]
278 values { 248 values {
279 txt: string @nullable; [[Accessibility text description]] 249 txt: string @nullable; [[Accessibility text description]]
280 } 250 }
281 } 251 }
252
253 /* Drag API */
282 @property drag_lock_x { 254 @property drag_lock_x {
283 [[Drag lock on X axis]] 255 [[Drag lock on X axis]]
284 values { 256 values {
285 lock: bool; [[$true if drag is locked on X axis, $false otherwise]] 257 lock: bool; [[$true if drag is locked on X axis, $false otherwise]]
286 } 258 }
287 } 259 }
288 @property focus_region_show_mode { 260 @property drag_lock_y {
289 [[Control the focus_region_show mode.]] 261 [[Lock the Y axis from being dragged]]
290 values { 262 values {
291 mode: Elm.Focus.Region.Show_Mode; [[Focus region show mode]] 263 lock: bool; [[$true if the Y axis is locked, $false otherwise]]
292 } 264 }
293 } 265 }
294 @property theme_object { 266 @property drag_child_locked_x {
295 [[Theme object property]] 267 [[Drag child locked X axis]]
296 set { 268 get {
297 return: Efl.Ui.Theme.Apply; [[Theme apply]] 269 return: int; [[FIXME]]
298 } 270 }
299 values { 271 }
300 edj: Efl.Canvas.Object; [[Edje object]] 272 @property drag_child_locked_y {
301 wname: string; [[Widget name]] 273 [[Drag child locked Y axis property]]
302 welement: string; [[Widget element]] 274 get {
303 wstyle: string; [[Widget style]] 275 return: int; [[FIXME]]
276 }
277 }
278
279 /* Probably not required with eo find */
280 name_find @const {
281 [[Find widget by name]]
282 return: Efl.Canvas.Object; [[Widget]]
283 params {
284 @in name: string; [[Widget name]]
285 @in recurse: int; [[Depth in the tree to search for the widget]]
304 } 286 }
305 } 287 }
306 /* this is a part api */ 288 sub_object_add {
289 [['Virtual' function handling sub objects being added.]]
290 return: bool; [[$true on success, $false otherwise]]
291 params {
292 @in sobj: Efl.Canvas.Object; [[Sub object]]
293 }
294 }
295 sub_object_del {
296 [['Virtual' function handling sub objects being removed.]]
297 return: bool; [[$true on success, $false otherwise]]
298 params {
299 @in sobj: Efl.Canvas.Object; [[Object to be deleted]]
300 }
301 }
302
303 /* Translation & Text API. */
304 translate @protected {
305 [[Virtual function handling language changes.]]
306 return: bool; [[$true on success, $false otherwise]]
307 legacy: null;
308 }
307 @property domain_part_text_translatable { 309 @property domain_part_text_translatable {
308 [[Translate domain text part property]] 310 [[Translate domain text part property]]
309 set { 311 set {
310 } 312 }
311 values { 313 values {
@@ -314,16 +316,24 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
314 translatable: bool; [[$true if translatable, $false otherwise]] 316 translatable: bool; [[$true if translatable, $false otherwise]]
315 } 317 }
316 } 318 }
317 @property orientation { 319 @property part_text {
318 [[Widget orientation]] 320 [[Part text property]]
319 set { 321 keys {
322 part: string; [[Part name]]
320 } 323 }
321 values { 324 values {
322 rotation: int; [[Orientation]] 325 label: string; [[Label]]
326 }
327 }
328 translatable_part_text_get @const {
329 [[Get translatable part text]]
330 return: string; [[Part text]]
331 params {
332 @in part: string; [[Part name]]
323 } 333 }
324 } 334 }
325 @property domain_translatable_part_text { 335 @property domain_translatable_part_text {
326 [[Domain translatable text part property]] 336 [[Domain translatable text part property]]
327 set { 337 set {
328 } 338 }
329 values { 339 values {
@@ -332,16 +342,71 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
332 label: string; [[Label]] 342 label: string; [[Label]]
333 } 343 }
334 } 344 }
335 @property scroll_hold { 345 part_text_translate {
336 [[Scroll hold property]] 346 [[Translate part text]]
337 get { 347 return: string; [[Translated text]]
338 return: int; [[FIXME]] 348 params {
349 @in part: string; [[Part name]]
350 @in text: string; [[Text]]
339 } 351 }
340 } 352 }
341 @property drag_child_locked_y { 353
342 [[Drag child locked Y axis property]] 354 /* Internal hooks. */
343 get { 355 @property orientation {
344 return: int; [[FIXME]] 356 [[Widget orientation]]
357 set {
358 }
359 values {
360 rotation: int; [[Orientation]]
361 }
362 }
363 disable {
364 [['Virtual' function on the widget being disabled.]]
365 return: bool; [[$true on success, $false otherwise]]
366 }
367 theme_apply {
368 [['Virtual' function on the widget being re-themed.]]
369 return: Efl.Ui.Theme.Apply; [[Theme apply]]
370 }
371 activate {
372 [['Virtual' function to activate widget.]]
373 params {
374 @in act: Elm.Activate; [[Activate]]
375 }
376 return: bool; [[$true on success, $false otherwise]]
377 legacy: null; /* the legacy API has not the same number of parameter to we don't generate it. */
378 }
379 access {
380 [['Virtual' function on the widget being set access.]]
381 params {
382 @in acs: bool; [[$true if access is set, $false otherwise]]
383 }
384 legacy: null;
385 }
386 on_focus {
387 [['Virtual' function handling focus in/out events on the widget]]
388 params {
389 @in item: Elm.Widget.Item @nullable; [[Widget]]
390 }
391 return: bool; [[$true if this widget can handle focus, $false otherwise]]
392 }
393 on_focus_region {
394 [['Virtual' function returning an inner area of a widget that should be brought into the visible area of a broader viewport, may this context arise.]]
395 params {
396 @out x: int; [[X coordinate]]
397 @out y: int; [[Y coordinate]]
398 @out w: int; [[Width]]
399 @out h: int; [[Height]]
400 }
401 return: bool; [[$true on success, $false otherwise]]
402 }
403
404 /* Scroll API. */
405 @property on_show_region_hook {
406 [[Region hook on show property]]
407 set {}
408 values {
409 func: Efl.Ui.Scrollable_On_Show_Region @nullable; [[Region hook function]]
345 } 410 }
346 } 411 }
347 @property item_loop_enabled { 412 @property item_loop_enabled {
@@ -351,13 +416,52 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
351 } 416 }
352 } 417 }
353 @property scroll_freeze { 418 @property scroll_freeze {
354 [[Scroll freeze property]] 419 [[Scroll freeze property]]
355 get { 420 get {
356 return: int; [[FIXME]] 421 return: int; [[FIXME]]
357 } 422 }
358 } 423 }
424 @property scroll_hold {
425 [[Scroll hold property]]
426 get {
427 return: int; [[FIXME]]
428 }
429 }
430 scroll_hold_push {
431 [[Push scroll hold]]
432 }
433 show_region_set {
434 [[Set show region]]
435 params {
436 @in x: int; [[X coordinate]]
437 @in y: int; [[Y coordinate]]
438 @in w: int; [[Width]]
439 @in h: int; [[Height]]
440 @in forceshow: bool; [[$true if show should be forced, $false otherwise]]
441 }
442 }
443 show_region_get @const {
444 [[Get show region]]
445 params {
446 @out x: int @optional; [[X coordinate]]
447 @out y: int @optional; [[Y coordinate]]
448 @out w: int @optional; [[Width]]
449 @out h: int @optional; [[Height]]
450 }
451 }
452 scroll_hold_pop {
453 [[Pop scroller hold]]
454 }
455 scroll_freeze_push {
456 [[Push scroller freeze]]
457 }
458 scroll_freeze_pop {
459 [[Pop scroller freeze]]
460 }
461
462 /* Old focus API. FIXME: Needs massive clean up! */
359 @property focus_region { 463 @property focus_region {
360 [[Focus region property]] 464 [[Focus region property]]
361 get { 465 get {
362 return: bool; [[$true on success, $false otherwise]] 466 return: bool; [[$true on success, $false otherwise]]
363 } 467 }
@@ -369,41 +473,11 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
369 } 473 }
370 } 474 }
371 @property focus_order { 475 @property focus_order {
372 [[Focus order property]] 476 [[Focus order property]]
373 get { 477 get {
374 return: uint; [[FIXME]] 478 return: uint; [[FIXME]]
375 } 479 }
376 } 480 }
377 @property drag_child_locked_x {
378 [[Drag child locked X axis]]
379 get {
380 return: int; [[FIXME]]
381 }
382 }
383 @property focused_item {
384 get {
385 [[Get the focused widget item.]]
386 return: Elm.Widget.Item; [[Focused item]]
387 }
388 }
389 @property focused_object {
390 [[Current focused object in object tree.]]
391 get {
392 return: Efl.Canvas.Object; [[Current focused or $null, if there is no focused object.]]
393 }
394 }
395 @property part_text {
396 [[Part text property]]
397 keys {
398 part: string; [[Part name]]
399 }
400 values {
401 label: string; [[Label]]
402 }
403 }
404 scroll_hold_push {
405 [[Push scroll hold]]
406 }
407 focus_next_object_set { 481 focus_next_object_set {
408 [[Set the next object with specific focus direction. 482 [[Set the next object with specific focus direction.
409 483
@@ -452,14 +526,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
452 @in relative_child: Efl.Canvas.Object @optional; [[The relative object to position the child.]] 526 @in relative_child: Efl.Canvas.Object @optional; [[The relative object to position the child.]]
453 } 527 }
454 } 528 }
455 part_text_translate {
456 [[Translate part text]]
457 return: string; [[Translated text]]
458 params {
459 @in part: string; [[Part name]]
460 @in text: string; [[Text]]
461 }
462 }
463 focus_highlight_geometry_get @const { 529 focus_highlight_geometry_get @const {
464 [[Get the focus highlight geometry of widget.]] 530 [[Get the focus highlight geometry of widget.]]
465 params { 531 params {
@@ -469,50 +535,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
469 @out h: int; [[Height]] 535 @out h: int; [[Height]]
470 } 536 }
471 } 537 }
472 activate {
473 [['Virtual' function to activate widget.]]
474 params {
475 @in act: Elm.Activate; [[Activate]]
476 }
477 return: bool; [[$true on success, $false otherwise]]
478 legacy: null; /* the legacy API has not the same number of parameter to we don't generate it. */
479 }
480 sub_object_add {
481 [['Virtual' function handling sub objects being added.]]
482 return: bool; [[$true on success, $false otherwise]]
483 params {
484 @in sobj: Efl.Canvas.Object; [[Sub object]]
485 }
486 }
487 focus_direction_manager_is {
488 [['Virtual' function which checks if handling of passing focus to sub-objects in given direction is supported by widget.]]
489 return: bool; [[$true on success, $false otherwise]]
490 legacy: null;
491 }
492 access {
493 [['Virtual' function on the widget being set access.]]
494 params {
495 @in acs: bool; [[$true if access is set, $false otherwise]]
496 }
497 legacy: null;
498 }
499 on_focus {
500 [['Virtual' function handling focus in/out events on the widget]]
501 params {
502 @in item: Elm.Widget.Item @nullable; [[Widget]]
503 }
504 return: bool; [[$true if this widget can handle focus, $false otherwise]]
505 }
506 on_focus_region {
507 [['Virtual' function returning an inner area of a widget that should be brought into the visible area of a broader viewport, may this context arise.]]
508 params {
509 @out x: int; [[X coordinate]]
510 @out y: int; [[Y coordinate]]
511 @out w: int; [[Width]]
512 @out h: int; [[Height]]
513 }
514 return: bool; [[$true on success, $false otherwise]]
515 }
516 focus_cycle { 538 focus_cycle {
517 [[Give focus to next object with specific focus direction in 539 [[Give focus to next object with specific focus direction in
518 object tree.]] 540 object tree.]]
@@ -535,48 +557,18 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
535 [['Virtual' function which checks if handling of passing focus to sub-objects is supported by widget.]] 557 [['Virtual' function which checks if handling of passing focus to sub-objects is supported by widget.]]
536 return: bool; [[$true on success, $false otherwise]] 558 return: bool; [[$true on success, $false otherwise]]
537 } 559 }
538 name_find @const {
539 [[Find widget by name]]
540 return: Efl.Canvas.Object; [[Widget]]
541 params {
542 @in name: string; [[Widget name]]
543 @in recurse: int; [[Depth in the tree to search for the widget]]
544 }
545 }
546 focused_object_clear { 560 focused_object_clear {
547 [[Clear focused object]] 561 [[Clear focused object]]
548 } 562 }
549 focus_direction_go { 563 focus_direction_go {
550 [[Go in focus direction]] 564 [[Go in focus direction]]
551 return: bool; [[$true on success, $false otherwise]] 565 return: bool; [[$true on success, $false otherwise]]
552 params { 566 params {
553 @in degree: double; [[Degree]] 567 @in degree: double; [[Degree]]
554 } 568 }
555 } 569 }
556 show_region_set {
557 [[Set show region]]
558 params {
559 @in x: int; [[X coordinate]]
560 @in y: int; [[Y coordinate]]
561 @in w: int; [[Width]]
562 @in h: int; [[Height]]
563 @in forceshow: bool; [[$true if show should be forced, $false otherwise]]
564 }
565 }
566 show_region_get @const {
567 [[Get show region]]
568 params {
569 @out x: int @optional; [[X coordinate]]
570 @out y: int @optional; [[Y coordinate]]
571 @out w: int @optional; [[Width]]
572 @out h: int @optional; [[Height]]
573 }
574 }
575 scroll_freeze_pop {
576 [[Pop scroller freeze]]
577 }
578 focus_next_get @const { 570 focus_next_get @const {
579 [[Get next focus item]] 571 [[Get next focus item]]
580 return: bool; [[$true on success, $false otherwise]] 572 return: bool; [[$true on success, $false otherwise]]
581 params { 573 params {
582 @in dir: Elm.Focus_Direction; [[Focus direction]] 574 @in dir: Elm.Focus_Direction; [[Focus direction]]
@@ -584,13 +576,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
584 @out next_item: Elm.Widget.Item; [[Next item]] 576 @out next_item: Elm.Widget.Item; [[Next item]]
585 } 577 }
586 } 578 }
587 translatable_part_text_get @const {
588 [[Get translatable part text]]
589 return: string; [[Part text]]
590 params {
591 @in part: string; [[Part name]]
592 }
593 }
594 focus_restore { 579 focus_restore {
595 [[Restore the focus state of the sub-tree. 580 [[Restore the focus state of the sub-tree.
596 581
@@ -598,24 +583,13 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
598 state. If a sub-tree is unfocused and wants to get back to the latest 583 state. If a sub-tree is unfocused and wants to get back to the latest
599 focus state, this API will be helpful.]] 584 focus state, this API will be helpful.]]
600 } 585 }
601 scroll_hold_pop {
602 [[Pop scroller hold]]
603 }
604 translate {
605 [['Virtual' function handling language changes on Elementary.]]
606 return: bool; [[$true on success, $false otherwise]]
607 legacy: null;
608 }
609 scroll_freeze_push {
610 [[Push scroller freeze]]
611 }
612 focus_custom_chain_unset { 586 focus_custom_chain_unset {
613 [[Unset a custom focus chain on a given Elementary widget. 587 [[Unset a custom focus chain on a given Elementary widget.
614 588
615 Any focus chain previously set is removed entirely after this call.]] 589 Any focus chain previously set is removed entirely after this call.]]
616 } 590 }
617 focus_steal { 591 focus_steal {
618 [[Steal focus]] 592 [[Steal focus]]
619 params { 593 params {
620 @in item: Elm.Widget.Item @nullable; [[Widget to steal focus from]] 594 @in item: Elm.Widget.Item @nullable; [[Widget to steal focus from]]
621 } 595 }
@@ -633,15 +607,11 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
633 return: bool; [[$true on success, $false otherwise]] 607 return: bool; [[$true on success, $false otherwise]]
634 } 608 }
635 focus_mouse_up_handle { 609 focus_mouse_up_handle {
636 [[Handle focus mouse up]] 610 [[Handle focus mouse up]]
637 legacy: null; 611 legacy: null;
638 } 612 }
639 theme_apply {
640 [['Virtual' function on the widget being re-themed.]]
641 return: Efl.Ui.Theme.Apply; [[Theme apply]]
642 }
643 focus_direction_get @const { 613 focus_direction_get @const {
644 [[Get focus direction]] 614 [[Get focus direction]]
645 return: bool; [[$true on success, $false otherwise]] 615 return: bool; [[$true on success, $false otherwise]]
646 params { 616 params {
647 @in base: const(Efl.Canvas.Object); [[Base]] 617 @in base: const(Efl.Canvas.Object); [[Base]]
@@ -651,17 +621,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
651 @out weight: double; [[Weight]] 621 @out weight: double; [[Weight]]
652 } 622 }
653 } 623 }
654 disable {
655 [['Virtual' function on the widget being disabled.]]
656 return: bool; [[$true on success, $false otherwise]]
657 }
658 sub_object_del {
659 [['Virtual' function handling sub objects being removed.]]
660 return: bool; [[$true on success, $false otherwise]]
661 params {
662 @in sobj: Efl.Canvas.Object; [[Object to be deleted]]
663 }
664 }
665 focus_region_show @const { 624 focus_region_show @const {
666 [[Show focus region]] 625 [[Show focus region]]
667 } 626 }
@@ -697,6 +656,57 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
697 focus_reconfigure { 656 focus_reconfigure {
698 [[@since 1.18]] 657 [[@since 1.18]]
699 } 658 }
659 @property focus_custom_chain {
660 [[A custom chain of objects to pass focus.
661
662 Note: On focus cycle, only will be evaluated children of this container.]]
663 set {
664 [[This function overwrites any previous custom focus chain within
665 the list of objects. The previous list will be deleted and this list
666 will be managed by elementary. After it is set, don't modify it.]]
667 values {
668 objs: list<Efl.Canvas.Object>; [[Chain of objects to pass focus]]
669 }
670 }
671 get {
672 values {
673 objs: const(list<Efl.Canvas.Object>); [[Chain of objects]]
674 }
675 }
676 }
677 @property focused_item {
678 get {
679 [[Get the focused widget item.]]
680 return: Elm.Widget.Item; [[Focused item]]
681 }
682 }
683 @property focused_object {
684 [[Current focused object in object tree.]]
685 get {
686 return: Efl.Canvas.Object; [[Current focused or $null, if there is no focused object.]]
687 }
688 }
689
690 /* Other focus APIs */
691 @property focus_highlight_style {
692 [[Control the widget focus highlight style.]]
693 set {
694 return: bool; [[$true on success, $false otherwise.]]
695 }
696 get {
697 }
698 values {
699 style: string; [[The name of the focus highlight style.]]
700 }
701 }
702 @property focus_region_show_mode {
703 [[Control the focus_region_show mode.]]
704 values {
705 mode: Elm.Focus.Region.Show_Mode; [[Focus region show mode]]
706 }
707 }
708
709 /* Focus Manager API */
700 focus_register { 710 focus_register {
701 [[Register focus with focus manager]] 711 [[Register focus with focus manager]]
702 params { 712 params {
@@ -716,6 +726,11 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
716 } 726 }
717 return : Efl.Ui.Focus.Manager; 727 return : Efl.Ui.Focus.Manager;
718 } 728 }
729 focus_direction_manager_is @protected {
730 [['Virtual' function which checks if handling of passing focus to sub-objects in given direction is supported by widget.]]
731 return: bool; [[$true on success, $false otherwise]]
732 legacy: null;
733 }
719 } 734 }
720 implements { 735 implements {
721 class.constructor; 736 class.constructor;