118 lines
3.6 KiB
C
118 lines
3.6 KiB
C
#include "private.h"
|
|
|
|
static Evas_Object *
|
|
elm_prefs_vertical_frame_add(const Elm_Prefs_Page_Iface *iface __UNUSED__,
|
|
Evas_Object *prefs)
|
|
{
|
|
Evas_Object *bx, *obj = elm_frame_add(prefs);
|
|
|
|
bx = elm_box_add(obj);
|
|
evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
|
|
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
|
|
|
elm_layout_content_set(obj, NULL, bx);
|
|
|
|
evas_object_data_set(obj, "bx_container", bx);
|
|
|
|
return obj;
|
|
}
|
|
|
|
static Eina_Bool
|
|
elm_prefs_vertical_frame_title_set(Evas_Object *obj,
|
|
const char *title)
|
|
{
|
|
elm_layout_text_set(obj, NULL, title);
|
|
|
|
return EINA_TRUE;
|
|
}
|
|
|
|
static Eina_Bool
|
|
elm_prefs_vertical_frame_item_pack(Evas_Object *obj,
|
|
Evas_Object *it,
|
|
const Elm_Prefs_Item_Type type,
|
|
const Elm_Prefs_Item_Iface *iface)
|
|
{
|
|
Evas_Object *l, *bx = evas_object_data_get(obj, "bx_container");
|
|
|
|
if ((type == ELM_PREFS_TYPE_SEPARATOR) &&
|
|
(!elm_prefs_page_item_value_set(it, iface, EINA_TRUE)))
|
|
return EINA_FALSE;
|
|
|
|
l = evas_object_data_get(it, "label_widget");
|
|
if (l)
|
|
evas_object_size_hint_align_set(l, 0.0, 1.0);
|
|
|
|
elm_prefs_vertical_page_common_pack(it, bx, iface);
|
|
|
|
return EINA_TRUE;
|
|
}
|
|
|
|
static Eina_Bool
|
|
elm_prefs_vertical_frame_item_unpack(Evas_Object *obj,
|
|
Evas_Object *it)
|
|
{
|
|
Evas_Object *bx = evas_object_data_get(obj, "bx_container");
|
|
|
|
/* back to defaults */
|
|
evas_object_size_hint_align_set(it, 0.5, 0.5);
|
|
evas_object_size_hint_weight_set(it, 0.0, 0.0);
|
|
|
|
elm_prefs_page_common_unpack(it, bx);
|
|
|
|
return EINA_TRUE;
|
|
}
|
|
|
|
|
|
static Eina_Bool
|
|
elm_prefs_vertical_frame_item_pack_before(Evas_Object *obj,
|
|
Evas_Object *it,
|
|
Evas_Object *it_before,
|
|
const Elm_Prefs_Item_Type type,
|
|
const Elm_Prefs_Item_Iface *iface)
|
|
{
|
|
Evas_Object *l, *bx = evas_object_data_get(obj, "bx_container");
|
|
|
|
if ((type == ELM_PREFS_TYPE_SEPARATOR) &&
|
|
(!elm_prefs_page_item_value_set(it, iface, EINA_TRUE)))
|
|
return EINA_FALSE;
|
|
|
|
l = evas_object_data_get(it, "label_widget");
|
|
if (l)
|
|
evas_object_size_hint_align_set(l, 0.0, 1.0);
|
|
|
|
elm_prefs_vertical_page_common_pack_before(it, it_before, bx, iface);
|
|
|
|
return EINA_TRUE;
|
|
}
|
|
|
|
static Eina_Bool
|
|
elm_prefs_vertical_frame_item_pack_after(Evas_Object *obj,
|
|
Evas_Object *it,
|
|
Evas_Object *it_after,
|
|
const Elm_Prefs_Item_Type type,
|
|
const Elm_Prefs_Item_Iface *iface)
|
|
{
|
|
Evas_Object *l, *bx = evas_object_data_get(obj, "bx_container");
|
|
|
|
if ((type == ELM_PREFS_TYPE_SEPARATOR) &&
|
|
(!elm_prefs_page_item_value_set(it, iface, EINA_TRUE)))
|
|
return EINA_FALSE;
|
|
|
|
l = evas_object_data_get(it, "label_widget");
|
|
if (l)
|
|
evas_object_size_hint_align_set(l, 0.0, 1.0);
|
|
|
|
elm_prefs_vertical_page_common_pack_after(it, it_after, bx, iface);
|
|
|
|
return EINA_TRUE;
|
|
}
|
|
|
|
PREFS_PAGE_WIDGET_ADD(vertical_frame,
|
|
elm_prefs_vertical_frame_title_set,
|
|
NULL,
|
|
NULL,
|
|
elm_prefs_vertical_frame_item_pack,
|
|
elm_prefs_vertical_frame_item_unpack,
|
|
elm_prefs_vertical_frame_item_pack_before,
|
|
elm_prefs_vertical_frame_item_pack_after);
|