Separtor: use orientation APIs

Summary: Use orientation APIs instead of horizontal get/set apis.

Test Plan: elementary_test -to separator

Reviewers: jpeg, cedric, Hermet, raster, singh.amitesh

Reviewed By: singh.amitesh

Differential Revision: https://phab.enlightenment.org/D3984
This commit is contained in:
Yeshwanth Reddivari 2016-05-27 10:11:12 +05:30 committed by Amitesh Singh
parent 058f07e759
commit f043c3be61
5 changed files with 63 additions and 26 deletions

View File

@ -28,7 +28,7 @@ test_separator(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event
evas_object_show(bt);
sp = elm_separator_add(win);
elm_separator_horizontal_set(sp, EINA_TRUE); // by default, separator is vertical, we must set it horizontal
efl_orientation_set(sp, EFL_ORIENT_HORIZONTAL);
elm_box_pack_end(bx, sp);
evas_object_show(sp);
@ -54,7 +54,7 @@ test_separator(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event
evas_object_show(bt);
sp = elm_separator_add(win);
elm_separator_horizontal_set(sp, EINA_TRUE);
efl_orientation_set(sp, EFL_ORIENT_HORIZONTAL);
elm_box_pack_end(bx, sp);
evas_object_show(sp);

View File

@ -21,7 +21,7 @@ _elm_separator_elm_widget_theme_apply(Eo *obj, Elm_Separator_Data *sd EINA_UNUSE
Eina_Bool int_ret = EINA_FALSE;
ELM_LAYOUT_DATA_GET(obj, ld);
if (sd->horizontal)
if (sd->orientation == EFL_ORIENT_HORIZONTAL)
eina_stringshare_replace(&ld->group, "horizontal");
else
eina_stringshare_replace(&ld->group, "vertical");
@ -51,6 +51,8 @@ _elm_separator_evas_object_smart_add(Eo *obj, Elm_Separator_Data *sd EINA_UNUSED
elm_widget_sub_object_parent_add(obj);
elm_widget_can_focus_set(obj, EINA_FALSE);
sd->orientation = EFL_ORIENT_VERTICAL;
if (!elm_layout_theme_set
(obj, "separator", "vertical", elm_widget_style_get(obj)))
CRI("Failed to set layout!");
@ -66,6 +68,32 @@ elm_separator_add(Evas_Object *parent)
return obj;
}
EAPI void
elm_separator_horizontal_set(Evas_Object *obj, Eina_Bool horizontal)
{
Efl_Orient orient;
if (horizontal)
orient = EFL_ORIENT_HORIZONTAL;
else
orient = EFL_ORIENT_VERTICAL;
if (orient == efl_orientation_get(obj)) return;
efl_orientation_set(obj, orient);
}
EAPI Eina_Bool
elm_separator_horizontal_get(const Evas_Object *obj)
{
ELM_SEPARATOR_DATA_GET_OR_RETURN_VAL(obj, sd, EINA_FALSE);
if (sd->orientation == EFL_ORIENT_VERTICAL)
return EINA_FALSE;
else
return EINA_TRUE;
}
EOLIAN static Eo *
_elm_separator_eo_base_constructor(Eo *obj, Elm_Separator_Data *sd EINA_UNUSED)
{
@ -77,20 +105,23 @@ _elm_separator_eo_base_constructor(Eo *obj, Elm_Separator_Data *sd EINA_UNUSED)
}
EOLIAN static void
_elm_separator_horizontal_set(Eo *obj, Elm_Separator_Data *sd, Eina_Bool horizontal)
_elm_separator_efl_orientation_orientation_set(Eo *obj, Elm_Separator_Data *sd, Efl_Orient dir)
{
horizontal = !!horizontal;
if (sd->horizontal == horizontal) return;
if (dir != EFL_ORIENT_VERTICAL &&
dir != EFL_ORIENT_HORIZONTAL)
return;
sd->horizontal = horizontal;
if (sd->orientation == dir) return;
sd->orientation = dir;
elm_obj_widget_theme_apply(obj);
}
EOLIAN static Eina_Bool
_elm_separator_horizontal_get(Eo *obj EINA_UNUSED, Elm_Separator_Data *sd)
EOLIAN static Efl_Orient
_elm_separator_efl_orientation_orientation_get(Eo *obj EINA_UNUSED, Elm_Separator_Data *sd)
{
return sd->horizontal;
return sd->orientation;
}
EOLIAN static Eina_Bool

View File

@ -1,20 +1,7 @@
class Elm.Separator (Elm.Layout)
class Elm.Separator (Elm.Layout, Efl.Orientation)
{
legacy_prefix: elm_separator;
eo_prefix: elm_obj_separator;
methods {
@property horizontal {
set {
[[Set the horizontal mode of a separator object]]
}
get {
[[Get the horizontal mode of a separator object]]
}
values {
horizontal: bool; [[If true, the separator is horizontal]]
}
}
}
implements {
class.constructor;
Eo.Base.constructor;
@ -22,6 +9,7 @@ class Elm.Separator (Elm.Layout)
Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_direction_manager_is;
Elm.Widget.theme_apply;
Efl.Orientation.orientation;
Elm.Layout.sizing_eval;
}

View File

@ -9,4 +9,22 @@
*/
EAPI Evas_Object *elm_separator_add(Evas_Object *parent);
#include "elm_separator.eo.legacy.h"
/**
* @brief Set the horizontal mode of a separator object
*
* @param[in] horizontal If true, the separator is horizontal
*
* @ingroup Elm_Separator
*/
EAPI void elm_separator_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
/**
* @brief Get the horizontal mode of a separator object
*
* @return If true, the separator is horizontal
*
* @ingroup Elm_Separator
*/
EAPI Eina_Bool elm_separator_horizontal_get(const Evas_Object *obj);
#include "elm_separator.eo.legacy.h"

View File

@ -26,7 +26,7 @@
typedef struct _Elm_Separator_Data Elm_Separator_Data;
struct _Elm_Separator_Data
{
Eina_Bool horizontal : 1;
Efl_Orient orientation;
};
/**