forked from enlightenment/efl
Panes: Use orientation interface APIs instead of horizontal set/get APIs
Differential Revision: https://phab.enlightenment.org/D3919
This commit is contained in:
parent
546ff7bbba
commit
f007380fb9
|
@ -76,7 +76,7 @@ test_panes(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf
|
|||
|
||||
// add panes
|
||||
panes_h = elm_panes_add(win);
|
||||
elm_panes_horizontal_set(panes_h, EINA_TRUE);
|
||||
efl_orientation_set(panes_h, EFL_ORIENT_HORIZONTAL);
|
||||
elm_panes_content_right_min_size_set(panes_h, 100);
|
||||
elm_panes_content_right_size_set(panes_h, 0.3);
|
||||
evas_object_show(panes_h);
|
||||
|
|
|
@ -52,7 +52,7 @@ _elm_panes_elm_widget_theme_apply(Eo *obj, Elm_Panes_Data *sd)
|
|||
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");
|
||||
|
@ -100,7 +100,8 @@ _elm_panes_elm_widget_focus_next(Eo *obj, Elm_Panes_Data *sd, Elm_Focus_Directio
|
|||
left = elm_layout_content_get(obj, "left");
|
||||
right = elm_layout_content_get(obj, "right");
|
||||
|
||||
if (((sd->horizontal) && (h == 0.0)) || ((!sd->horizontal) && (w == 0.0)))
|
||||
if (((sd->orientation == EFL_ORIENT_HORIZONTAL) && (h == 0.0)) ||
|
||||
((sd->orientation == EFL_ORIENT_VERTICAL) && (w == 0.0)))
|
||||
{
|
||||
return elm_widget_focus_next_get(right, dir, next, next_item);
|
||||
}
|
||||
|
@ -193,7 +194,7 @@ _set_min_size(void *data)
|
|||
sizer = sizer / sum;
|
||||
sizel = sizel / sum;
|
||||
}
|
||||
if (sd->horizontal)
|
||||
if (sd->orientation == EFL_ORIENT_HORIZONTAL)
|
||||
{
|
||||
edje_object_part_drag_value_set
|
||||
(wd->resize_obj, "right_constraint", 0.0, (1 - sizer));
|
||||
|
@ -219,7 +220,7 @@ _update_fixed_sides(void *data)
|
|||
|
||||
if (sd->right_min_size_is_relative)
|
||||
{
|
||||
if (sd->horizontal)
|
||||
if (sd->orientation == EFL_ORIENT_HORIZONTAL)
|
||||
sd->right_min_size = (int)(h * sd->right_min_relative_size);
|
||||
else
|
||||
sd->right_min_size =(int)(w * sd->right_min_relative_size);
|
||||
|
@ -227,15 +228,15 @@ _update_fixed_sides(void *data)
|
|||
else
|
||||
{
|
||||
sd->right_min_relative_size = 0;
|
||||
if (sd->horizontal && (h > 0))
|
||||
if (sd->orientation == EFL_ORIENT_HORIZONTAL && (h > 0))
|
||||
sd->right_min_relative_size = sd->right_min_size / (double)h;
|
||||
if (!sd->horizontal && (w > 0))
|
||||
if (sd->orientation == EFL_ORIENT_VERTICAL && (w > 0))
|
||||
sd->right_min_relative_size = sd->right_min_size / (double)w;
|
||||
}
|
||||
|
||||
if(sd->left_min_size_is_relative)
|
||||
{
|
||||
if (sd->horizontal)
|
||||
if (sd->orientation == EFL_ORIENT_HORIZONTAL)
|
||||
sd->left_min_size = (int)(h * sd->left_min_relative_size);
|
||||
else
|
||||
sd->left_min_size = (int)(w * sd->left_min_relative_size);
|
||||
|
@ -243,9 +244,9 @@ _update_fixed_sides(void *data)
|
|||
else
|
||||
{
|
||||
sd->left_min_relative_size = 0;
|
||||
if (sd->horizontal && (h > 0))
|
||||
if (sd->orientation == EFL_ORIENT_HORIZONTAL && (h > 0))
|
||||
sd->left_min_relative_size = sd->left_min_size / (double)h;
|
||||
if (!sd->horizontal && (w > 0))
|
||||
if (sd->orientation == EFL_ORIENT_VERTICAL && (w > 0))
|
||||
sd->left_min_relative_size = sd->left_min_size / (double)w;
|
||||
}
|
||||
_set_min_size(data);
|
||||
|
@ -385,7 +386,8 @@ _elm_panes_content_left_size_get(Eo *obj, Elm_Panes_Data *sd)
|
|||
edje_object_part_drag_value_get
|
||||
(wd->resize_obj, "elm.bar", &w, &h);
|
||||
|
||||
if (sd->horizontal) return h;
|
||||
if (sd->orientation == EFL_ORIENT_HORIZONTAL)
|
||||
return h;
|
||||
else return w;
|
||||
}
|
||||
|
||||
|
@ -397,7 +399,7 @@ _elm_panes_content_left_size_set(Eo *obj, Elm_Panes_Data *sd, double size)
|
|||
if (size < 0.0) size = 0.0;
|
||||
else if (size > 1.0) size = 1.0;
|
||||
|
||||
if (sd->horizontal)
|
||||
if (sd->orientation == EFL_ORIENT_HORIZONTAL)
|
||||
edje_object_part_drag_value_set
|
||||
(wd->resize_obj, "elm.bar", 0.0, size);
|
||||
else
|
||||
|
@ -418,19 +420,46 @@ _elm_panes_content_right_size_set(Eo *obj, Elm_Panes_Data *_pd EINA_UNUSED, doub
|
|||
}
|
||||
|
||||
EOLIAN static void
|
||||
_elm_panes_horizontal_set(Eo *obj, Elm_Panes_Data *sd, Eina_Bool horizontal)
|
||||
_elm_panes_efl_orientation_orientation_set(Eo *obj, Elm_Panes_Data *sd, Efl_Orient dir)
|
||||
{
|
||||
sd->horizontal = horizontal;
|
||||
if ((dir != EFL_ORIENT_HORIZONTAL) && (dir != EFL_ORIENT_VERTICAL))
|
||||
return;
|
||||
|
||||
sd->orientation = dir;
|
||||
elm_obj_widget_theme_apply(obj);
|
||||
_update_fixed_sides(obj);
|
||||
|
||||
elm_panes_content_left_size_set(obj, 0.5);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_panes_horizontal_get(Eo *obj EINA_UNUSED, Elm_Panes_Data *sd)
|
||||
EOLIAN static Efl_Orient
|
||||
_elm_panes_efl_orientation_orientation_get(Eo *obj EINA_UNUSED, Elm_Panes_Data *sd)
|
||||
{
|
||||
return sd->horizontal;
|
||||
return sd->orientation;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal)
|
||||
{
|
||||
Efl_Orient orient;
|
||||
|
||||
if (horizontal)
|
||||
orient = EFL_ORIENT_HORIZONTAL;
|
||||
else
|
||||
orient = EFL_ORIENT_VERTICAL;
|
||||
|
||||
efl_orientation_set(obj, orient);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_panes_horizontal_get(const Evas_Object *obj)
|
||||
{
|
||||
Efl_Orient orient = efl_orientation_get(obj);
|
||||
|
||||
if (orient == EFL_ORIENT_HORIZONTAL)
|
||||
return EINA_TRUE;
|
||||
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
class Elm.Panes (Elm.Layout, Evas.Clickable_Interface)
|
||||
class Elm.Panes (Elm.Layout, Efl.Orientation,
|
||||
Evas.Clickable_Interface)
|
||||
{
|
||||
legacy_prefix: elm_panes;
|
||||
eo_prefix: elm_obj_panes;
|
||||
|
@ -25,25 +26,6 @@ class Elm.Panes (Elm.Layout, Evas.Clickable_Interface)
|
|||
size: double; [[Value between 0.0 and 1.0 representing size proportion of left side.]]
|
||||
}
|
||||
}
|
||||
@property horizontal {
|
||||
[[Set how to split and dispose each content.
|
||||
|
||||
Use this function to change how your panes is to be disposed:
|
||||
vertically or horizontally.
|
||||
Horizontal panes have "top" and "bottom" contents, vertical panes have
|
||||
"left" and "right" contents.
|
||||
|
||||
By default panes is in a vertical mode.]]
|
||||
set {
|
||||
}
|
||||
get {
|
||||
}
|
||||
values {
|
||||
horizontal: bool; [[Use $true to make $obj to split panes
|
||||
horizontally ("top" and "bottom" contents). $false to make it
|
||||
vertically ("left" and "right" contents).]]
|
||||
}
|
||||
}
|
||||
@property fixed {
|
||||
[[Set whether the left and right panes can be resized by user interaction.
|
||||
|
||||
|
@ -139,6 +121,7 @@ class Elm.Panes (Elm.Layout, Evas.Clickable_Interface)
|
|||
Elm.Widget.focus_next;
|
||||
Elm.Widget.theme_apply;
|
||||
Elm.Layout.content_aliases.get;
|
||||
Efl.Orientation.orientation;
|
||||
}
|
||||
events {
|
||||
press;
|
||||
|
|
|
@ -11,4 +11,38 @@
|
|||
*/
|
||||
EAPI Evas_Object *elm_panes_add(Evas_Object *parent);
|
||||
|
||||
/**
|
||||
* @brief Set how to split and dispose each content.
|
||||
*
|
||||
* Use this function to change how your panes is to be disposed: vertically or
|
||||
* horizontally. Horizontal panes have "top" and "bottom" contents, vertical
|
||||
* panes have "left" and "right" contents.
|
||||
*
|
||||
* By default panes is in a vertical mode.
|
||||
*
|
||||
* @param[in] horizontal Use @c true to make @c obj to split panes horizontally
|
||||
* ("top" and "bottom" contents). @c false to make it vertically ("left" and
|
||||
* "right" contents).
|
||||
*
|
||||
* @ingroup Elm_Panes
|
||||
*/
|
||||
EAPI void elm_panes_horizontal_set(Evas_Object *obj, Eina_Bool horizontal);
|
||||
|
||||
/**
|
||||
* @brief Set how to split and dispose each content.
|
||||
*
|
||||
* Use this function to change how your panes is to be disposed: vertically or
|
||||
* horizontally. Horizontal panes have "top" and "bottom" contents, vertical
|
||||
* panes have "left" and "right" contents.
|
||||
*
|
||||
* By default panes is in a vertical mode.
|
||||
*
|
||||
* @return Use @c true to make @c obj to split panes horizontally ("top" and
|
||||
* "bottom" contents). @c false to make it vertically ("left" and "right"
|
||||
* contents).
|
||||
*
|
||||
* @ingroup Elm_Panes
|
||||
*/
|
||||
EAPI Eina_Bool elm_panes_horizontal_get(const Evas_Object *obj);
|
||||
|
||||
#include "elm_panes.eo.legacy.h"
|
||||
|
|
|
@ -34,12 +34,12 @@ struct _Elm_Panes_Data
|
|||
Eina_Bool move;
|
||||
} move;
|
||||
|
||||
Efl_Orient orientation;
|
||||
double left_min_relative_size;
|
||||
double right_min_relative_size;
|
||||
Evas_Coord left_min_size;
|
||||
Evas_Coord right_min_size;
|
||||
Eina_Bool double_clicked : 1;
|
||||
Eina_Bool horizontal : 1;
|
||||
Eina_Bool fixed : 1;
|
||||
Eina_Bool left_min_size_is_relative : 1;
|
||||
Eina_Bool right_min_size_is_relative : 1;
|
||||
|
|
Loading…
Reference in New Issue