toolbar: Switch to Efl.Ui.Dir (EO)

Ref T5870
This commit is contained in:
Jean-Philippe Andre 2017-08-10 13:54:05 +09:00
parent 63f599a47e
commit a28b89304e
3 changed files with 51 additions and 50 deletions

View File

@ -168,7 +168,7 @@ _items_visibility_fix(Elm_Toolbar_Data *sd,
if (sd->more_item) if (sd->more_item)
{ {
evas_object_geometry_get(sd->VIEW(more_item), NULL, NULL, &ciw, &cih); evas_object_geometry_get(sd->VIEW(more_item), NULL, NULL, &ciw, &cih);
if (sd->orientation == EFL_ORIENT_VERTICAL) *iw += cih; if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) *iw += cih;
else *iw += ciw; else *iw += ciw;
} }
@ -177,7 +177,7 @@ _items_visibility_fix(Elm_Toolbar_Data *sd,
if (it->prio.priority > sd->standard_priority) if (it->prio.priority > sd->standard_priority)
{ {
evas_object_geometry_get(VIEW(it), NULL, NULL, &ciw, &cih); evas_object_geometry_get(VIEW(it), NULL, NULL, &ciw, &cih);
if (sd->orientation == EFL_ORIENT_VERTICAL) *iw += cih; if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) *iw += cih;
else *iw += ciw; else *iw += ciw;
it->prio.visible = (*iw <= vw); it->prio.visible = (*iw <= vw);
it->in_box = sd->bx; it->in_box = sd->bx;
@ -335,7 +335,7 @@ _items_size_fit(Evas_Object *obj, Evas_Coord *bl, Evas_Coord view)
if (mw != -1 || mh != -1) if (mw != -1 || mh != -1)
{ {
if (sd->orientation == EFL_ORIENT_VERTICAL) min = mh; if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE)) min = mh;
else min = mw; else min = mw;
if ((!full) && ((sumf + min) > view)) if ((!full) && ((sumf + min) > view))
@ -433,7 +433,7 @@ _resize_job(void *data)
{ {
Evas_Coord iw = 0, ih = 0, more_w = 0, more_h = 0; Evas_Coord iw = 0, ih = 0, more_w = 0, more_h = 0;
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
{ {
h = vh; h = vh;
_items_visibility_fix(sd, &ih, vh, &more); _items_visibility_fix(sd, &ih, vh, &more);
@ -446,7 +446,7 @@ _resize_job(void *data)
evas_object_geometry_get evas_object_geometry_get
(sd->VIEW(more_item), NULL, NULL, &more_w, &more_h); (sd->VIEW(more_item), NULL, NULL, &more_w, &more_h);
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
{ {
if ((ih - more_h) <= vh) ih -= more_h; if ((ih - more_h) <= vh) ih -= more_h;
} }
@ -459,8 +459,9 @@ _resize_job(void *data)
* individual items won't trigger a resize. Items are be * individual items won't trigger a resize. Items are be
* readded below. */ * readded below. */
evas_object_box_remove_all(sd->bx, EINA_FALSE); evas_object_box_remove_all(sd->bx, EINA_FALSE);
if (((sd->orientation == EFL_ORIENT_VERTICAL) && (ih > vh)) || if ((!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE) && (ih > vh)) ||
((sd->orientation == EFL_ORIENT_HORIZONTAL) && (iw > vw)) || more) ( efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE) && (iw > vw)) ||
more)
{ {
Evas_Object *menu; Evas_Object *menu;
@ -513,7 +514,7 @@ _resize_job(void *data)
{ {
Evas_Coord iw = 0, ih = 0; Evas_Coord iw = 0, ih = 0;
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
{ {
h = vh; h = vh;
_items_visibility_fix(sd, &ih, vh, &more); _items_visibility_fix(sd, &ih, vh, &more);
@ -524,8 +525,9 @@ _resize_job(void *data)
_items_visibility_fix(sd, &iw, vw, &more); _items_visibility_fix(sd, &iw, vw, &more);
} }
evas_object_box_remove_all(sd->bx, EINA_FALSE); evas_object_box_remove_all(sd->bx, EINA_FALSE);
if (((sd->orientation == EFL_ORIENT_VERTICAL) && (ih > vh)) || if ((!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE) && (ih > vh)) ||
((sd->orientation == EFL_ORIENT_HORIZONTAL) && (iw > vw)) || more) ( efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE) && (iw > vw)) ||
more)
{ {
EINA_INLIST_FOREACH(sd->items, it) EINA_INLIST_FOREACH(sd->items, it)
{ {
@ -552,12 +554,12 @@ _resize_job(void *data)
{ {
Evas_Coord iw = 0, ih = 0; Evas_Coord iw = 0, ih = 0;
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
h = (vh >= mh) ? vh : mh; h = (vh >= mh) ? vh : mh;
else else
w = (vw >= mw) ? vw : mw; w = (vw >= mw) ? vw : mw;
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
_items_visibility_fix(sd, &ih, vh, &more); _items_visibility_fix(sd, &ih, vh, &more);
else else
_items_visibility_fix(sd, &iw, vw, &more); _items_visibility_fix(sd, &iw, vw, &more);
@ -582,7 +584,7 @@ _resize_job(void *data)
else else
evas_object_hide(sd->VIEW(more_item)); evas_object_hide(sd->VIEW(more_item));
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
{ {
if (h > vh) _items_size_fit(obj, &h, vh); if (h > vh) _items_size_fit(obj, &h, vh);
if (sd->item_count - sd->separator_count > 0) if (sd->item_count - sd->separator_count > 0)
@ -599,7 +601,7 @@ _resize_job(void *data)
} }
else else
{ {
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
h = (vh >= mh) ? vh : mh; h = (vh >= mh) ? vh : mh;
else else
w = (vw >= mw) ? vw : mw; w = (vw >= mw) ? vw : mw;
@ -613,7 +615,7 @@ _resize_job(void *data)
if (sd->transverse_expanded) if (sd->transverse_expanded)
{ {
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
w = vw; w = vw;
else else
h = vh; h = vh;
@ -758,8 +760,8 @@ _elm_toolbar_nearest_visible_item_get(Evas_Object *obj, Elm_Object_Item *eo_it)
item_list = evas_object_box_children_get(sd->bx); item_list = evas_object_box_children_get(sd->bx);
if ((sd->orientation == EFL_ORIENT_VERTICAL && (iy < vy)) || if ((!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE) && (iy < vy)) ||
(sd->orientation == EFL_ORIENT_HORIZONTAL && (iw < vw)) || ( efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE) && (iw < vw)) ||
search_next) search_next)
{ {
while ((item_list = eina_list_next(item_list))) while ((item_list = eina_list_next(item_list)))
@ -1368,7 +1370,7 @@ _item_theme_hook(Evas_Object *obj,
_item_shrink_signal_emit(view, sd->shrink_mode); _item_shrink_signal_emit(view, sd->shrink_mode);
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
elm_layout_signal_emit(view, "elm,orient,vertical", "elm"); elm_layout_signal_emit(view, "elm,orient,vertical", "elm");
else else
elm_layout_signal_emit(view, "elm,orient,horizontal", "elm"); elm_layout_signal_emit(view, "elm,orient,horizontal", "elm");
@ -1378,7 +1380,7 @@ _item_theme_hook(Evas_Object *obj,
elm_coords_finger_size_adjust(1, &mw, 1, &mh); elm_coords_finger_size_adjust(1, &mw, 1, &mh);
if (sd->shrink_mode != ELM_TOOLBAR_SHRINK_EXPAND) if (sd->shrink_mode != ELM_TOOLBAR_SHRINK_EXPAND)
{ {
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
{ {
evas_object_size_hint_weight_set(view, EVAS_HINT_EXPAND, -1.0); evas_object_size_hint_weight_set(view, EVAS_HINT_EXPAND, -1.0);
evas_object_size_hint_align_set evas_object_size_hint_align_set
@ -1470,7 +1472,7 @@ _sizing_eval(Evas_Object *obj)
} }
else if (sd->shrink_mode == ELM_TOOLBAR_SHRINK_EXPAND) else if (sd->shrink_mode == ELM_TOOLBAR_SHRINK_EXPAND)
{ {
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
{ {
minw = minw_bx + (w - vw); minw = minw_bx + (w - vw);
if (minh_bx <= vh) minh_bx = vh; if (minh_bx <= vh) minh_bx = vh;
@ -1485,7 +1487,7 @@ _sizing_eval(Evas_Object *obj)
} }
else else
{ {
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
{ {
minw = minw_bx + (w - vw); minw = minw_bx + (w - vw);
minh = h - vh; minh = h - vh;
@ -1499,7 +1501,7 @@ _sizing_eval(Evas_Object *obj)
if (sd->transverse_expanded) if (sd->transverse_expanded)
{ {
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
minw_bx = vw; minw_bx = vw;
else else
minh_bx = vh; minh_bx = vh;
@ -1546,7 +1548,7 @@ _elm_toolbar_elm_widget_theme_apply(Eo *obj, Elm_Toolbar_Data *sd)
elm_widget_theme_object_set elm_widget_theme_object_set
(obj, wd->resize_obj, "toolbar", "base", (obj, wd->resize_obj, "toolbar", "base",
elm_widget_style_get(obj)); elm_widget_style_get(obj));
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
edje_object_signal_emit(wd->resize_obj, "elm,orient,vertical", "elm"); edje_object_signal_emit(wd->resize_obj, "elm,orient,vertical", "elm");
else else
edje_object_signal_emit(wd->resize_obj, "elm,orient,horizontal", "elm"); edje_object_signal_emit(wd->resize_obj, "elm,orient,horizontal", "elm");
@ -1554,7 +1556,7 @@ _elm_toolbar_elm_widget_theme_apply(Eo *obj, Elm_Toolbar_Data *sd)
if (!elm_layout_theme_set if (!elm_layout_theme_set
(sd->more, "toolbar", "more", elm_widget_style_get(obj))) (sd->more, "toolbar", "more", elm_widget_style_get(obj)))
CRI("Failed to set layout!"); CRI("Failed to set layout!");
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
elm_object_signal_emit(sd->more, "elm,orient,vertical", "elm"); elm_object_signal_emit(sd->more, "elm,orient,vertical", "elm");
else else
elm_object_signal_emit(sd->more, "elm,orient,horizontal", "elm"); elm_object_signal_emit(sd->more, "elm,orient,horizontal", "elm");
@ -2039,7 +2041,7 @@ _mouse_move_reorder(Elm_Toolbar_Item_Data *item,
ELM_TOOLBAR_DATA_GET(WIDGET(item), sd); ELM_TOOLBAR_DATA_GET(WIDGET(item), sd);
evas_object_geometry_get(VIEW(item), &x, &y, &w, &h); evas_object_geometry_get(VIEW(item), &x, &y, &w, &h);
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
evas_object_move(item->proxy, x, ev->cur.canvas.y - (h / 2)); evas_object_move(item->proxy, x, ev->cur.canvas.y - (h / 2));
else else
evas_object_move(item->proxy, ev->cur.canvas.x - (w / 2), y); evas_object_move(item->proxy, ev->cur.canvas.x - (w / 2), y);
@ -2318,7 +2320,7 @@ _layout(Evas_Object *o,
ELM_TOOLBAR_DATA_GET(obj, sd); ELM_TOOLBAR_DATA_GET(obj, sd);
horizontal = sd->orientation ? EINA_TRUE : EINA_FALSE; horizontal = efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE);
_els_box_layout _els_box_layout
(o, priv, horizontal, sd->homogeneous, efl_ui_mirrored_get(obj)); (o, priv, horizontal, sd->homogeneous, efl_ui_mirrored_get(obj));
@ -2819,7 +2821,7 @@ _elm_toolbar_efl_canvas_group_group_add(Eo *obj, Elm_Toolbar_Data *priv)
elm_interface_scrollable_objects_set(obj, edje, priv->hit_rect); elm_interface_scrollable_objects_set(obj, edje, priv->hit_rect);
priv->standard_priority = -99999; priv->standard_priority = -99999;
priv->orientation = EFL_ORIENT_HORIZONTAL; priv->dir = EFL_UI_DIR_HORIZONTAL;
elm_interface_scrollable_bounce_allow_set elm_interface_scrollable_bounce_allow_set
(obj, _elm_config->thumbscroll_bounce_enable, EINA_FALSE); (obj, _elm_config->thumbscroll_bounce_enable, EINA_FALSE);
@ -2857,7 +2859,7 @@ _elm_toolbar_efl_canvas_group_group_add(Eo *obj, Elm_Toolbar_Data *priv)
priv->more = elm_layout_add(obj); priv->more = elm_layout_add(obj);
if (!elm_layout_theme_set(priv->more, "toolbar", "more", "default")) if (!elm_layout_theme_set(priv->more, "toolbar", "more", "default"))
CRI("Failed to set layout!"); CRI("Failed to set layout!");
if (priv->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(priv->dir, EINA_TRUE))
elm_object_signal_emit(priv->more, "elm,orient,vertical", "elm"); elm_object_signal_emit(priv->more, "elm,orient,vertical", "elm");
else else
elm_object_signal_emit(priv->more, "elm,orient,horizontal", "elm"); elm_object_signal_emit(priv->more, "elm,orient,horizontal", "elm");
@ -3039,7 +3041,7 @@ _elm_toolbar_coordinates_adjust(Elm_Toolbar_Item_Data *it,
*y = iy; *y = iy;
*w = iw; *w = iw;
*h = ih; *h = ih;
if (sd->orientation == EFL_ORIENT_VERTICAL) 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))
@ -3643,7 +3645,7 @@ _elm_toolbar_menu_parent_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
EOLIAN static void EOLIAN static void
_elm_toolbar_align_set(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, double align) _elm_toolbar_align_set(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd, double align)
{ {
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
{ {
if (sd->align != align) if (sd->align != align)
evas_object_box_align_set(sd->bx, 0.5, align); evas_object_box_align_set(sd->bx, 0.5, align);
@ -3872,15 +3874,17 @@ _elm_toolbar_item_state_prev(Eo *eo_item EINA_UNUSED, Elm_Toolbar_Item_Data *ite
} }
EOLIAN static void EOLIAN static void
_elm_toolbar_efl_orientation_orientation_set(Eo *obj, Elm_Toolbar_Data *sd, Efl_Orient dir) _elm_toolbar_efl_ui_direction_direction_set(Eo *obj, Elm_Toolbar_Data *sd, Efl_Ui_Dir dir)
{ {
if (dir != EFL_ORIENT_VERTICAL && // Adjust direction to be either horizontal or vertical.
dir != EFL_ORIENT_HORIZONTAL) if (efl_ui_dir_is_horizontal(dir, EINA_TRUE))
return; dir = EFL_UI_DIR_HORIZONTAL;
else
dir = EFL_UI_DIR_VERTICAL;
sd->orientation = dir; sd->dir = dir;
if (sd->orientation == EFL_ORIENT_VERTICAL) if (!efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE))
evas_object_box_align_set(sd->bx, 0.5, sd->align); evas_object_box_align_set(sd->bx, 0.5, sd->align);
else else
evas_object_box_align_set(sd->bx, sd->align, 0.5); evas_object_box_align_set(sd->bx, sd->align, 0.5);
@ -3888,23 +3892,23 @@ _elm_toolbar_efl_orientation_orientation_set(Eo *obj, Elm_Toolbar_Data *sd, Efl_
_sizing_eval(obj); _sizing_eval(obj);
} }
EOLIAN static Efl_Orient EOLIAN static Efl_Ui_Dir
_elm_toolbar_efl_orientation_orientation_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd) _elm_toolbar_efl_ui_direction_direction_get(Eo *obj EINA_UNUSED, Elm_Toolbar_Data *sd)
{ {
return sd->orientation; return sd->dir;
} }
EAPI void EAPI void
elm_toolbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) elm_toolbar_horizontal_set(Evas_Object *obj, Eina_Bool horizontal)
{ {
Efl_Orient orient; Efl_Ui_Dir dir;
if (horizontal) if (horizontal)
orient = EFL_ORIENT_HORIZONTAL; dir = EFL_UI_DIR_HORIZONTAL;
else else
orient = EFL_ORIENT_VERTICAL; dir = EFL_UI_DIR_VERTICAL;
efl_orientation_set(obj, orient); efl_ui_direction_set(obj, dir);
} }
EAPI Eina_Bool EAPI Eina_Bool
@ -3912,10 +3916,7 @@ elm_toolbar_horizontal_get(const Evas_Object *obj)
{ {
ELM_TOOLBAR_DATA_GET_OR_RETURN_VAL(obj, sd, EINA_FALSE); ELM_TOOLBAR_DATA_GET_OR_RETURN_VAL(obj, sd, EINA_FALSE);
if (sd->orientation == EFL_ORIENT_VERTICAL) return efl_ui_dir_is_horizontal(sd->dir, EINA_TRUE);
return EINA_FALSE;
else
return EINA_TRUE;
} }
EOLIAN static unsigned int EOLIAN static unsigned int

View File

@ -23,7 +23,7 @@ enum Elm.Toolbar.Shrink_Mode
last [[Indicates error if returned by elm_toolbar_shrink_mode_get()]] last [[Indicates error if returned by elm_toolbar_shrink_mode_get()]]
} }
class Elm.Toolbar (Elm.Widget, Elm.Interface_Scrollable, Efl.Orientation, class Elm.Toolbar (Elm.Widget, Elm.Interface_Scrollable, Efl.Ui.Direction,
Elm.Interface.Atspi_Widget_Action, Elm.Interface.Atspi.Selection, Elm.Interface.Atspi_Widget_Action, Elm.Interface.Atspi.Selection,
Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Menu) Efl.Ui.Clickable, Efl.Ui.Selectable, Efl.Ui.Menu)
{ {
@ -329,7 +329,7 @@ class Elm.Toolbar (Elm.Widget, Elm.Interface_Scrollable, Efl.Orientation,
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.Orientation.orientation { get; set; } Efl.Ui.Direction.direction { get; set; [[Only supports $vertical and $horizontal. Default is $horizontal.]] }
Elm.Widget.focus_register; Elm.Widget.focus_register;
Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
Elm.Interface.Atspi_Accessible.children { get; } Elm.Interface.Atspi_Accessible.children { get; }

View File

@ -49,7 +49,7 @@ struct _Elm_Toolbar_Data
Elm_Object_Select_Mode select_mode; Elm_Object_Select_Mode select_mode;
Ecore_Timer *long_timer; Ecore_Timer *long_timer;
Ecore_Job *resize_job; Ecore_Job *resize_job;
Efl_Orient orientation; Efl_Ui_Dir dir;
Eina_Bool long_press : 1; Eina_Bool long_press : 1;
Eina_Bool homogeneous : 1; Eina_Bool homogeneous : 1;