widget: Use rectangle for focus_hilight

Ref T5363
This commit is contained in:
Jean-Philippe Andre 2017-08-29 15:59:40 +09:00
parent c6c1751fe3
commit 8c1f771a67
14 changed files with 130 additions and 119 deletions

View File

@ -1040,31 +1040,30 @@ static void
_elm_win_focus_highlight_anim_setup(Efl_Ui_Win_Data *sd, _elm_win_focus_highlight_anim_setup(Efl_Ui_Win_Data *sd,
Evas_Object *obj) Evas_Object *obj)
{ {
Evas_Coord tx, ty, tw, th; Eina_Rectangle rt;
Evas_Coord px, py, pw, ph; Evas_Coord px, py, pw, ph;
Edje_Message_Int_Set *m; Edje_Message_Int_Set *m;
Evas_Object *target = sd->focus_highlight.cur.target; Evas_Object *target = sd->focus_highlight.cur.target;
evas_object_geometry_get(obj, &px, &py, &pw, &ph); evas_object_geometry_get(obj, &px, &py, &pw, &ph);
elm_widget_focus_highlight_geometry_get(target, &tx, &ty, &tw, &th); rt = elm_widget_focus_highlight_geometry_get(target);
evas_object_move(obj, tx, ty); efl_gfx_geometry_set(obj, rt.x, rt.y, rt.w, rt.h);
evas_object_resize(obj, tw, th);
if ((px == tx) && (py == ty) && (pw == tw) && (ph == th)) return; if ((px == rt.x) && (py == rt.y) && (pw == rt.w) && (ph == rt.h)) return;
if (!_elm_config->focus_highlight_clip_disable) if (!_elm_config->focus_highlight_clip_disable)
evas_object_clip_unset(obj); evas_object_clip_unset(obj);
m = alloca(sizeof(*m) + (sizeof(int) * 8)); m = alloca(sizeof(*m) + (sizeof(int) * 8));
m->count = 8; m->count = 8;
m->val[0] = px - tx; m->val[0] = px - rt.x;
m->val[1] = py - ty; m->val[1] = py - rt.y;
m->val[2] = pw; m->val[2] = pw;
m->val[3] = ph; m->val[3] = ph;
m->val[4] = 0; m->val[4] = 0;
m->val[5] = 0; m->val[5] = 0;
m->val[6] = tw; m->val[6] = rt.w;
m->val[7] = th; m->val[7] = rt.h;
edje_object_message_send(obj, EDJE_MESSAGE_INT_SET, 1, m); edje_object_message_send(obj, EDJE_MESSAGE_INT_SET, 1, m);
} }
@ -1073,12 +1072,10 @@ _elm_win_focus_highlight_simple_setup(Efl_Ui_Win_Data *sd,
Evas_Object *obj) Evas_Object *obj)
{ {
Evas_Object *clip, *target = sd->focus_highlight.cur.target; Evas_Object *clip, *target = sd->focus_highlight.cur.target;
Evas_Coord x, y, w, h; Eina_Rectangle r;
elm_widget_focus_highlight_geometry_get(target, &x, &y, &w, &h); r = elm_widget_focus_highlight_geometry_get(target);
efl_gfx_geometry_set(obj, r.x, r.y, r.w, r.h);
evas_object_move(obj, x, y);
evas_object_resize(obj, w, h);
if (!_elm_config->focus_highlight_clip_disable) if (!_elm_config->focus_highlight_clip_disable)
{ {

View File

@ -2259,18 +2259,22 @@ _access_obj_process(Evas_Object *obj, Eina_Bool is_access)
} }
} }
EOLIAN static void EOLIAN static Eina_Rectangle
_elm_colorselector_elm_widget_focus_highlight_geometry_get(const Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) _elm_colorselector_elm_widget_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, Elm_Colorselector_Data *sd)
{ {
Eina_Rectangle r = {};
if (sd->focused_item && (sd->focused == ELM_COLORSELECTOR_PALETTE)) if (sd->focused_item && (sd->focused == ELM_COLORSELECTOR_PALETTE))
{ {
ELM_COLOR_ITEM_DATA_GET(sd->focused_item, focus_it); ELM_COLOR_ITEM_DATA_GET(sd->focused_item, focus_it);
evas_object_geometry_get(VIEW(focus_it), x, y, w, h); evas_object_geometry_get(VIEW(focus_it), &r.x, &r.y, &r.w, &r.h);
} }
else if(sd->focused == ELM_COLORSELECTOR_COMPONENTS) else if(sd->focused == ELM_COLORSELECTOR_COMPONENTS)
evas_object_geometry_get(sd->cb_data[sd->sel_color_type]->colorbar, x, y, w, h); evas_object_geometry_get(sd->cb_data[sd->sel_color_type]->colorbar, &r.x, &r.y, &r.w, &r.h);
else else
evas_object_geometry_get(obj, x, y, w, h); evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h);
return r;
} }
EOLIAN static void EOLIAN static void

View File

@ -112,7 +112,7 @@ class Elm.Colorselector (Efl.Ui.Layout, Elm.Interface.Atspi_Widget_Action,
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.focus_highlight_geometry_get; Elm.Widget.focus_highlight_geometry { get; }
Elm.Widget.on_access_update; Elm.Widget.on_access_update;
Elm.Widget.widget_event; Elm.Widget.widget_event;
Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Widget_Action.elm_actions { get; }

View File

@ -5480,10 +5480,11 @@ elm_gengrid_nth_item_get(const Evas_Object *obj, unsigned int nth)
return EO_OBJ(it); return EO_OBJ(it);
} }
EOLIAN static void EOLIAN static Eina_Rectangle
_elm_gengrid_elm_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Gengrid_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) _elm_gengrid_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Gengrid_Data *sd)
{ {
Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0; Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0;
Eina_Rectangle r = {};
evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh); evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh);
@ -5495,37 +5496,39 @@ _elm_gengrid_elm_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Gengrid_
} }
else else
{ {
evas_object_geometry_get(obj, x, y, w, h); evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h);
return; return r;
} }
*x = item_x; r.x = item_x;
*y = item_y; r.y = item_y;
*w = item_w; r.w = item_w;
*h = item_h; r.h = item_h;
if (sd->horizontal) if (sd->horizontal)
{ {
if (item_x < ox) if (item_x < ox)
{ {
*x = ox; r.x = ox;
} }
else if (item_x > (ox + ow - item_w)) else if (item_x > (ox + ow - item_w))
{ {
*x = ox + ow - item_w; r.x = ox + ow - item_w;
} }
} }
else else
{ {
if (item_y < oy) if (item_y < oy)
{ {
*y = oy; r.y = oy;
} }
else if (item_y > (oy + oh - item_h)) else if (item_y > (oy + oh - item_h))
{ {
*y = oy + oh - item_h; r.y = oy + oh - item_h;
} }
} }
return r;
} }
EOLIAN static Elm_Object_Item * EOLIAN static Elm_Object_Item *

View File

@ -556,7 +556,7 @@ class Elm.Gengrid (Efl.Ui.Layout, Elm.Interface_Scrollable,
Elm.Widget.on_focus; Elm.Widget.on_focus;
Elm.Widget.focus_region { get; } Elm.Widget.focus_region { get; }
Elm.Widget.widget_event; Elm.Widget.widget_event;
Elm.Widget.focus_highlight_geometry_get; Elm.Widget.focus_highlight_geometry { get; }
Elm.Widget.focused_item { get; } Elm.Widget.focused_item { get; }
Elm.Widget.item_loop_enabled { get; set; } Elm.Widget.item_loop_enabled { get; set; }
Elm.Interface_Scrollable.bounce_allow { set; } Elm.Interface_Scrollable.bounce_allow { set; }

View File

@ -8432,10 +8432,11 @@ elm_genlist_nth_item_get(const Evas_Object *obj, unsigned int nth)
return EO_OBJ(it); return EO_OBJ(it);
} }
EOLIAN static void EOLIAN static Eina_Rectangle
_elm_genlist_elm_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Genlist_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) _elm_genlist_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Genlist_Data *sd)
{ {
Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0; Evas_Coord ox, oy, oh, ow, item_x = 0, item_y = 0, item_w = 0, item_h = 0;
Eina_Rectangle r = {};
evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh); evas_object_geometry_get(sd->pan_obj, &ox, &oy, &ow, &oh);
@ -8447,32 +8448,34 @@ _elm_genlist_elm_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Genlist_
} }
else else
{ {
evas_object_geometry_get(obj, x, y, w, h); evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h);
return; return r;
} }
*x = item_x; r.x = item_x;
*y = item_y; r.y = item_y;
*w = item_w; r.w = item_w;
*h = item_h; r.h = item_h;
if (item_y < oy) if (item_y < oy)
{ {
*y = oy; r.y = oy;
} }
if (item_y > (oy + oh - item_h)) if (item_y > (oy + oh - item_h))
{ {
*y = oy + oh - item_h; r.y = oy + oh - item_h;
} }
if ((item_x + item_w) > (ox + ow)) if ((item_x + item_w) > (ox + ow))
{ {
*w = ow; r.w = ow;
} }
if (item_x < ox) if (item_x < ox)
{ {
*x = ox; r.x = ox;
} }
return r;
} }
EOLIAN static Elm_Object_Item * EOLIAN static Elm_Object_Item *

View File

@ -536,7 +536,7 @@ class Elm.Genlist (Efl.Ui.Layout, Elm.Interface_Scrollable, Efl.Ui.Clickable,
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.widget_sub_object_add; Elm.Widget.widget_sub_object_add;
Elm.Widget.on_access_update; Elm.Widget.on_access_update;
Elm.Widget.focus_highlight_geometry_get; Elm.Widget.focus_highlight_geometry { get; }
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.on_focus; Elm.Widget.on_focus;
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;

View File

@ -3089,12 +3089,8 @@ _elm_list_focus_on_selection_get(Eo *obj EINA_UNUSED, Elm_List_Data *sd)
return sd->focus_on_selection_enabled; return sd->focus_on_selection_enabled;
} }
static void static Eina_Rectangle
_elm_list_item_coordinates_adjust(Elm_List_Item_Data *it, _elm_list_item_coordinates_adjust(Elm_List_Item_Data *it)
Evas_Coord *x,
Evas_Coord *y,
Evas_Coord *w,
Evas_Coord *h)
{ {
Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh; Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh;
@ -3113,21 +3109,22 @@ _elm_list_item_coordinates_adjust(Elm_List_Item_Data *it,
if ((ix + iw) > (vx + vw)) if ((ix + iw) > (vx + vw))
iw = (vx + vw - ix); iw = (vx + vw - ix);
*x = ix; return (Eina_Rectangle) { ix, iy, iw, ih };
*y = iy;
*w = iw;
*h = ih;
} }
EOLIAN static void EOLIAN static Eina_Rectangle
_elm_list_elm_widget_focus_highlight_geometry_get(const Eo *obj EINA_UNUSED, Elm_List_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) _elm_list_elm_widget_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, Elm_List_Data *sd)
{ {
Eina_Rectangle r = {};
if (sd->focused_item) if (sd->focused_item)
{ {
ELM_LIST_ITEM_DATA_GET(sd->focused_item, focus_it); ELM_LIST_ITEM_DATA_GET(sd->focused_item, focus_it);
_elm_list_item_coordinates_adjust(focus_it, x, y, w, h); r = _elm_list_item_coordinates_adjust(focus_it);
elm_widget_focus_highlight_focus_part_geometry_get(VIEW(focus_it), x, y, w, h); elm_widget_focus_highlight_focus_part_geometry_get(VIEW(focus_it), &r.x, &r.y, &r.w, &r.h);
} }
return r;
} }
EOLIAN static Elm_Object_Item* EOLIAN static Elm_Object_Item*

View File

@ -437,7 +437,7 @@ class Elm.List (Efl.Ui.Layout, Elm.Interface_Scrollable,
Elm.Widget.focus_next_manager_is; Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_direction_manager_is;
Elm.Widget.on_access_update; Elm.Widget.on_access_update;
Elm.Widget.focus_highlight_geometry_get; Elm.Widget.focus_highlight_geometry { get; }
Elm.Widget.focus_next; Elm.Widget.focus_next;
Elm.Widget.on_disabled_update; Elm.Widget.on_disabled_update;
Elm.Widget.on_focus; Elm.Widget.on_focus;

View File

@ -3008,39 +3008,36 @@ _elm_toolbar_elm_widget_on_access_update(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *
_access_obj_process(sd, _elm_toolbar_smart_focus_next_enable); _access_obj_process(sd, _elm_toolbar_smart_focus_next_enable);
} }
static void static Eina_Rectangle
_elm_toolbar_coordinates_adjust(Elm_Toolbar_Item_Data *it, _elm_toolbar_coordinates_adjust(Elm_Toolbar_Item_Data *it)
Evas_Coord *x,
Evas_Coord *y,
Evas_Coord *w,
Evas_Coord *h)
{ {
ELM_TOOLBAR_DATA_GET(WIDGET(it), sd); ELM_TOOLBAR_DATA_GET(WIDGET(it), sd);
Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh; Evas_Coord ix, iy, iw, ih, vx, vy, vw, vh;
Eina_Rectangle r;
evas_object_geometry_get(sd->hit_rect, &vx, &vy, &vw, &vh); evas_object_geometry_get(sd->hit_rect, &vx, &vy, &vw, &vh);
evas_object_geometry_get(VIEW(it), &ix, &iy, &iw, &ih); evas_object_geometry_get(VIEW(it), &ix, &iy, &iw, &ih);
*x = ix; r = (Eina_Rectangle) { ix, iy, iw, ih };
*y = iy;
*w = iw;
*h = ih;
if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
{ {
//TODO: Enhance it later. //TODO: Enhance it later.
if ((ix < vx) || (ix + iw) > (vx + vw) || (iy + ih) > (vy + vh)) if ((ix < vx) || (ix + iw) > (vx + vw) || (iy + ih) > (vy + vh))
*y = iy - ih; r.y = iy - ih;
else if (iy < vy) else if (iy < vy)
*y = iy + ih; r.y = iy + ih;
} }
else else
{ {
//TODO: Enhance it later. //TODO: Enhance it later.
if ((iy < vy) || (ix + iw) > (vx + vw) || (iy + ih) > (vy + vh)) if ((iy < vy) || (ix + iw) > (vx + vw) || (iy + ih) > (vy + vh))
*x = ix - iw; r.x = ix - iw;
else if (ix < vx) else if (ix < vx)
*x = ix + iw; r.x = ix + iw;
} }
return r;
} }
EOLIAN static void EOLIAN static void
@ -3050,19 +3047,21 @@ _elm_toolbar_item_efl_ui_focus_object_focus_set(Eo *obj, Elm_Toolbar_Item_Data *
elm_wdg_item_focus_set(obj, focus); elm_wdg_item_focus_set(obj, focus);
} }
EOLIAN static void EOLIAN static Eina_Rectangle
_elm_toolbar_elm_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Toolbar_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) _elm_toolbar_elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Toolbar_Data *sd)
{ {
Eina_Rectangle r = {};
if (sd->focused_item) if (sd->focused_item)
{ {
ELM_TOOLBAR_ITEM_DATA_GET(sd->focused_item, focus_it); ELM_TOOLBAR_ITEM_DATA_GET(sd->focused_item, focus_it);
_elm_toolbar_coordinates_adjust r = _elm_toolbar_coordinates_adjust(focus_it);
(focus_it, x, y, w, h); elm_widget_focus_highlight_focus_part_geometry_get(VIEW(focus_it), &r.x, &r.y, &r.w, &r.h);
elm_widget_focus_highlight_focus_part_geometry_get
(VIEW(focus_it), x, y, w, h);
} }
else else
evas_object_geometry_get(obj, x, y, w, h); evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h);
return r;
} }
EAPI Evas_Object * EAPI Evas_Object *

View File

@ -327,7 +327,7 @@ class Elm.Toolbar (Elm.Widget, Elm.Interface_Scrollable, Efl.Ui.Direction,
Elm.Widget.on_focus; Elm.Widget.on_focus;
Elm.Widget.translate; Elm.Widget.translate;
Elm.Widget.widget_event; Elm.Widget.widget_event;
Elm.Widget.focus_highlight_geometry_get; Elm.Widget.focus_highlight_geometry { get; }
Elm.Widget.focused_item { get; } Elm.Widget.focused_item { get; }
Efl.Ui.Direction.direction { get; set; [[Only supports $vertical and $horizontal. Default is $horizontal.]] } Efl.Ui.Direction.direction { get; set; [[Only supports $vertical and $horizontal. Default is $horizontal.]] }
Elm.Widget.focus_register; Elm.Widget.focus_register;

View File

@ -1087,6 +1087,9 @@ _elm_widget_focus_region_show(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED)
EOLIAN static Eina_Bool EOLIAN static Eina_Bool
_elm_widget_focus_highlight_style_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd, const char *style) _elm_widget_focus_highlight_style_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd, const char *style)
{ {
// FIXME: This does not return the proper error code! Who cares if the
// string was changed?? This should return false if the desired style does
// not exist...
if (eina_stringshare_replace(&sd->focus_highlight_style, style)) return EINA_TRUE; if (eina_stringshare_replace(&sd->focus_highlight_style, style)) return EINA_TRUE;
return EINA_FALSE; return EINA_FALSE;
} }
@ -4475,17 +4478,18 @@ elm_widget_focus_highlight_focus_part_geometry_get(const Evas_Object *obj,
if (th != *h) *h = th; if (th != *h) *h = th;
} }
EOLIAN static void EOLIAN static Eina_Rectangle
_elm_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Widget_Smart_Data *sd, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h) _elm_widget_focus_highlight_geometry_get(Eo *obj, Elm_Widget_Smart_Data *sd)
{ {
Evas_Coord ox = 0, oy = 0, ow = 0, oh = 0; Evas_Coord ox = 0, oy = 0, ow = 0, oh = 0;
Evas_Object *scroller = (Evas_Object *)obj; Evas_Object *scroller = (Evas_Object *)obj;
Eina_Rectangle r = {};
evas_object_geometry_get(obj, x, y, w, h); evas_object_geometry_get(obj, &r.x, &r.y, &r.w, &r.h);
elm_widget_focus_highlight_focus_part_geometry_get(sd->resize_obj, x, y, w, h); elm_widget_focus_highlight_focus_part_geometry_get(sd->resize_obj, &r.x, &r.y, &r.w, &r.h);
if (_elm_config->focus_autoscroll_mode != ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN) if (_elm_config->focus_autoscroll_mode != ELM_FOCUS_AUTOSCROLL_MODE_BRING_IN)
return; return r;
while (scroller) while (scroller)
{ {
@ -4493,19 +4497,21 @@ _elm_widget_focus_highlight_geometry_get(const Eo *obj, Elm_Widget_Smart_Data *s
{ {
elm_interface_scrollable_content_viewport_geometry_get(scroller, &ox, &oy, &ow, &oh); elm_interface_scrollable_content_viewport_geometry_get(scroller, &ox, &oy, &ow, &oh);
if (*y < oy) if (r.y < oy)
*y = oy; r.y = oy;
else if ((oy + oh) < (*y + *h)) else if ((oy + oh) < (r.y + r.h))
*y = (oy + oh - *h); r.y = (oy + oh - r.h);
else if (*x < ox) else if (r.x < ox)
*x = ox; r.x = ox;
else if ((ox + ow) < (*x + *w)) else if ((ox + ow) < (r.x + r.w))
*x = (ox + ow - *w); r.x = (ox + ow - r.w);
break; break;
} }
scroller = elm_widget_parent_get(scroller); scroller = elm_widget_parent_get(scroller);
} }
return r;
} }
EOLIAN static Elm_Object_Item* EOLIAN static Elm_Object_Item*

View File

@ -532,6 +532,30 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
mode: Elm.Focus.Region.Show_Mode; [[Focus region show mode]] mode: Elm.Focus.Region.Show_Mode; [[Focus region show mode]]
} }
} }
@property focus_highlight_geometry {
[[The rectangle region to be highlighted on focus.
This is a rectangle region where the focus highlight should be
displayed.
]]
get {
[[This is a read-only property.]]
}
values {
region: Eina.Rectangle; [[The rectangle area.]]
}
}
@property focus_highlight_style {
[[Control the widget focus highlight style.]]
set {
return: bool; [[$true on success, $false otherwise.]]
}
get {
}
values {
style: string; [[The name of the focus highlight style.]]
}
}
/* Old focus API. FIXME: Needs massive clean up! */ /* Old focus API. FIXME: Needs massive clean up! */
@property focus_order { @property focus_order {
@ -588,15 +612,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
@in relative_child: Efl.Canvas.Object @optional; [[The relative object to position the child.]] @in relative_child: Efl.Canvas.Object @optional; [[The relative object to position the child.]]
} }
} }
focus_highlight_geometry_get @const {
[[Get the focus highlight geometry of widget.]]
params {
@out x: int; [[X coordinate]]
@out y: int; [[Y coordinate]]
@out w: int; [[Width]]
@out h: int; [[Height]]
}
}
focus_cycle { focus_cycle {
[[Give focus to next object with specific focus direction in [[Give focus to next object with specific focus direction in
object tree.]] object tree.]]
@ -746,19 +761,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
} }
} }
/* Other focus APIs */
@property focus_highlight_style {
[[Control the widget focus highlight style.]]
set {
return: bool; [[$true on success, $false otherwise.]]
}
get {
}
values {
style: string; [[The name of the focus highlight style.]]
}
}
/* Focus Manager API */ /* Focus Manager API */
focus_register { focus_register {
[[Register focus with focus manager]] [[Register focus with focus manager]]

View File

@ -771,7 +771,7 @@ EAPI const char *elm_widget_access_info_get(const Evas_Object *obj);
EAPI Elm_Object_Item *elm_widget_focused_item_get(const Evas_Object *obj); EAPI Elm_Object_Item *elm_widget_focused_item_get(const Evas_Object *obj);
EAPI void elm_widget_orientation_mode_disabled_set(Evas_Object *obj, Eina_Bool disabled); EAPI void elm_widget_orientation_mode_disabled_set(Evas_Object *obj, Eina_Bool disabled);
EAPI Eina_Bool elm_widget_orientation_mode_disabled_get(const Evas_Object *obj); EAPI Eina_Bool elm_widget_orientation_mode_disabled_get(const Evas_Object *obj);
EAPI void elm_widget_focus_highlight_geometry_get(const Evas_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h); EAPI Eina_Rectangle elm_widget_focus_highlight_geometry_get(const Evas_Object *obj);
void _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *it); void _elm_widget_item_highlight_in_theme(Evas_Object *obj, Elm_Object_Item *it);
EAPI void elm_widget_focus_move_policy_set(Evas_Object *obj, Elm_Focus_Move_Policy policy); EAPI void elm_widget_focus_move_policy_set(Evas_Object *obj, Elm_Focus_Move_Policy policy);
EAPI Elm_Focus_Move_Policy elm_widget_focus_move_policy_get(const Evas_Object *obj); EAPI Elm_Focus_Move_Policy elm_widget_focus_move_policy_get(const Evas_Object *obj);