655 lines
20 KiB
C
655 lines
20 KiB
C
#include <Elementary.h>
|
|
#include "common.h"
|
|
#include "log.h"
|
|
#include "gui.h"
|
|
#include "widget.h"
|
|
#include "widget_option.h"
|
|
|
|
Widget_Option_Data *wod = NULL;
|
|
extern Gui_Data *gd;
|
|
|
|
#define WIDGET_OPTION_CHECK_ADD(text__, checked__, cb__) \
|
|
o = elm_check_add(box); \
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); FILL(o); \
|
|
elm_object_text_set(o, text__); \
|
|
elm_check_state_set(o, checked__); \
|
|
elm_box_pack_end(box, o); \
|
|
evas_object_show(o); \
|
|
evas_object_smart_callback_add(o, "changed", cb__, NULL);
|
|
|
|
#define WIDGET_OPTION_RADIO_ADD(text__, value__, cb__) \
|
|
o = elm_radio_add(box); \
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); FILL(o); \
|
|
elm_object_text_set(o, text__); \
|
|
elm_radio_state_value_set(o, value__); \
|
|
elm_box_pack_end(box, o); \
|
|
evas_object_show(o); \
|
|
evas_object_smart_callback_add(o, "changed", cb__, NULL);
|
|
|
|
#define WIDGET_OPTION_LABEL_ADD(text__) \
|
|
o = elm_label_add(box); \
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); ALIGN(o, 0.0, 0.5); \
|
|
elm_object_text_set(o, text__); \
|
|
elm_box_pack_end(box, o); \
|
|
evas_object_show(o);
|
|
|
|
#define WIDGET_OPTION_SEPARATOR_ADD() \
|
|
o = elm_separator_add(box); \
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); ALIGN(o, EVAS_HINT_FILL, 0.0); \
|
|
elm_separator_horizontal_set(o, EINA_TRUE); \
|
|
elm_box_pack_end(box, o); \
|
|
evas_object_show(o);
|
|
|
|
#define WIDGET_OPTION_HORIZ_PADDING_ADD() \
|
|
o = elm_box_add(box); \
|
|
WEIGHT(o, 0.0, EVAS_HINT_EXPAND; ALIGN(o, 0.0, EVAS_HINT_FILL); \
|
|
evas_object_size_hint_min_set(o, elm_config_scale_get() * 10, 10); \
|
|
elm_box_pack_end(box, o); \
|
|
evas_object_show(o);
|
|
|
|
#define WIDGET_OPTION_VERT_PADDING_ADD() \
|
|
o = elm_box_add(box); \
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); ALIGN(o, EVAS_HINT_FILL, 0.0); \
|
|
evas_object_size_hint_min_set(o, 0, elm_config_scale_get() * 10); \
|
|
elm_box_pack_end(box, o); \
|
|
evas_object_show(o);
|
|
|
|
#define WIDGET_OPTION_PADDING_ADD() \
|
|
o = elm_box_add(box); \
|
|
EXPAND(o); FILL(o); \
|
|
elm_box_pack_end(box, o); \
|
|
evas_object_show(o);
|
|
|
|
#define WIDGET_OPTION_HORIZ_BOX_ADD() \
|
|
bx = o = elm_box_add(box); \
|
|
elm_box_horizontal_set(o, EINA_TRUE); \
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); FILL(o); \
|
|
elm_box_pack_end(box, o); \
|
|
evas_object_show(o);
|
|
|
|
// button
|
|
static void
|
|
_btn_text_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->btn_text = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_btn_image_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->btn_image = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_widget_option_button_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL;
|
|
|
|
WIDGET_OPTION_CHECK_ADD("Text", wod->btn_text,
|
|
_btn_text_check_changed_cb);
|
|
WIDGET_OPTION_CHECK_ADD("Image", wod->btn_image,
|
|
_btn_image_check_changed_cb);
|
|
}
|
|
|
|
// check
|
|
static void
|
|
_check_text_selected_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->chk_selected = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_check_text_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->chk_text = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_check_image_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->chk_image = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_widget_option_check_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL;
|
|
|
|
WIDGET_OPTION_CHECK_ADD("Selected", wod->chk_selected,
|
|
_check_text_selected_changed_cb);
|
|
WIDGET_OPTION_CHECK_ADD("Text", wod->chk_text,
|
|
_check_text_check_changed_cb);
|
|
WIDGET_OPTION_CHECK_ADD("Image", wod->chk_image,
|
|
_check_image_check_changed_cb);
|
|
}
|
|
|
|
// entry
|
|
static void
|
|
_entry_text_len_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->entry_text_len = elm_radio_value_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_entry_guide_text_check_changed_cb(void *data EINA_UNUSED,
|
|
Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->entry_guide_text = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_widget_option_entry_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL, *rdg = NULL;
|
|
|
|
// text length
|
|
WIDGET_OPTION_LABEL_ADD(" < Length of Text > ");
|
|
WIDGET_OPTION_RADIO_ADD("Short", 0, _entry_text_len_changed_cb);
|
|
rdg = o;
|
|
WIDGET_OPTION_RADIO_ADD("Middle", 1, _entry_text_len_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
WIDGET_OPTION_RADIO_ADD("Long", 2, _entry_text_len_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
elm_radio_value_set(rdg, wod->entry_text_len);
|
|
|
|
WIDGET_OPTION_SEPARATOR_ADD();
|
|
|
|
WIDGET_OPTION_CHECK_ADD("Guide Text", wod->entry_guide_text,
|
|
_entry_guide_text_check_changed_cb);
|
|
}
|
|
|
|
// gengrid
|
|
Evas_Object *gengrid_width_entry = NULL;
|
|
Evas_Object *gengrid_height_entry = NULL;
|
|
|
|
static void
|
|
_gengrid_item_size_changed_cb(void *data EINA_UNUSED,
|
|
Evas_Object *obj EINA_UNUSED,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->gengrid_item_width = atoi(elm_entry_entry_get(gengrid_width_entry));
|
|
wod->gengrid_item_height = atoi(elm_entry_entry_get(gengrid_height_entry));
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_gengrid_text_len_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->gengrid_text_len = elm_radio_value_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_gengrid_entry_focused_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
elm_entry_select_all(obj);
|
|
}
|
|
|
|
static void
|
|
_widget_option_gengrid_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL, *bx = NULL, *rdg = NULL;
|
|
char buf[PATH_MAX] = { 0 };
|
|
//struct _Gengrid_Option_Data data = { 0 };
|
|
|
|
WIDGET_OPTION_LABEL_ADD(" < Gengrid Item Size > ");
|
|
|
|
// width
|
|
WIDGET_OPTION_HORIZ_BOX_ADD();
|
|
|
|
o = elm_label_add(bx);
|
|
WEIGHT(o, 0.0, EVAS_HINT_EXPAND); FILL(o);
|
|
elm_object_text_set(o, "Width : ");
|
|
elm_box_pack_end(bx, o);
|
|
evas_object_show(o);
|
|
|
|
gengrid_width_entry = o = elm_entry_add(bx);
|
|
EXPAND(o); FILL(o);
|
|
elm_entry_single_line_set(o, EINA_TRUE);
|
|
elm_entry_scrollable_set(o, EINA_TRUE);
|
|
snprintf(buf, PATH_MAX, "%d", wod->gengrid_item_width);
|
|
elm_entry_entry_set(o, buf);
|
|
evas_object_smart_callback_add(o, "focused", _gengrid_entry_focused_cb, NULL);
|
|
evas_object_smart_callback_add(o, "activated",
|
|
_gengrid_item_size_changed_cb, NULL);
|
|
elm_box_pack_end(bx, o);
|
|
evas_object_show(o);
|
|
|
|
// height
|
|
WIDGET_OPTION_HORIZ_BOX_ADD();
|
|
|
|
o = elm_label_add(bx);
|
|
WEIGHT(o, 0.0, 0.0); FILL(o);
|
|
elm_object_text_set(o, "Height : ");
|
|
elm_box_pack_end(bx, o);
|
|
evas_object_show(o);
|
|
|
|
gengrid_height_entry = o = elm_entry_add(bx);
|
|
EXPAND(o); FILL(o);
|
|
elm_entry_single_line_set(o, EINA_TRUE);
|
|
elm_entry_scrollable_set(o, EINA_TRUE);
|
|
snprintf(buf, PATH_MAX, "%d", wod->gengrid_item_height);
|
|
elm_entry_entry_set(o, buf);
|
|
evas_object_smart_callback_add(o, "focused", _gengrid_entry_focused_cb, NULL);
|
|
evas_object_smart_callback_add(o, "activated",
|
|
_gengrid_item_size_changed_cb, NULL);
|
|
elm_box_pack_end(bx, o);
|
|
evas_object_show(o);
|
|
|
|
o = elm_button_add(box);
|
|
ALIGN(o, 0.0, EVAS_HINT_FILL);
|
|
elm_object_text_set(o, "Apply Item Size Change");
|
|
elm_box_pack_end(box, o);
|
|
evas_object_show(o);
|
|
evas_object_smart_callback_add(o, "clicked",
|
|
_gengrid_item_size_changed_cb, NULL);
|
|
|
|
WIDGET_OPTION_SEPARATOR_ADD();
|
|
|
|
// text length
|
|
WIDGET_OPTION_LABEL_ADD(" < Length of Text > ");
|
|
WIDGET_OPTION_RADIO_ADD("Short", 0, _gengrid_text_len_changed_cb);
|
|
rdg = o;
|
|
WIDGET_OPTION_RADIO_ADD("Middle", 1, _gengrid_text_len_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
WIDGET_OPTION_RADIO_ADD("Long", 2, _gengrid_text_len_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
elm_radio_value_set(rdg, wod->gengrid_text_len);
|
|
}
|
|
|
|
// genlist
|
|
static void
|
|
_genlist_text_len_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->genlist_text_len = elm_radio_value_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_genlist_content_type_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->genlist_content_type = elm_radio_value_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_widget_option_genlist_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL, *rdg = NULL;
|
|
|
|
// text length
|
|
WIDGET_OPTION_LABEL_ADD(" < Length of Text > ");
|
|
WIDGET_OPTION_RADIO_ADD("Short", 0, _genlist_text_len_changed_cb);
|
|
rdg = o;
|
|
WIDGET_OPTION_RADIO_ADD("Middle", 1, _genlist_text_len_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
WIDGET_OPTION_RADIO_ADD("Long", 2, _genlist_text_len_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
elm_radio_value_set(rdg, wod->genlist_text_len);
|
|
|
|
WIDGET_OPTION_SEPARATOR_ADD();
|
|
|
|
// content type
|
|
WIDGET_OPTION_LABEL_ADD(" < Content Type > ");
|
|
WIDGET_OPTION_RADIO_ADD("Icon", 0, _genlist_content_type_changed_cb);
|
|
rdg = o;
|
|
WIDGET_OPTION_RADIO_ADD("Check", 1, _genlist_content_type_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
WIDGET_OPTION_RADIO_ADD("Button", 2, _genlist_content_type_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
elm_radio_value_set(rdg, wod->genlist_content_type);
|
|
}
|
|
|
|
// popup
|
|
struct _Popup_Orient
|
|
{
|
|
const char *name;
|
|
Elm_Popup_Orient orient;
|
|
};
|
|
|
|
struct _Popup_Orient _popup_orient[ELM_POPUP_ORIENT_LAST] =
|
|
{
|
|
{ "Top", ELM_POPUP_ORIENT_TOP },
|
|
{ "Center", ELM_POPUP_ORIENT_CENTER },
|
|
{ "Bottom", ELM_POPUP_ORIENT_BOTTOM },
|
|
{ "Left", ELM_POPUP_ORIENT_LEFT },
|
|
{ "Right", ELM_POPUP_ORIENT_RIGHT },
|
|
{ "Top Left", ELM_POPUP_ORIENT_TOP_LEFT },
|
|
{ "Top Right", ELM_POPUP_ORIENT_TOP_RIGHT },
|
|
{ "Bottom Left", ELM_POPUP_ORIENT_BOTTOM_LEFT },
|
|
{ "Bottom Right", ELM_POPUP_ORIENT_BOTTOM_RIGHT }
|
|
};
|
|
|
|
static void
|
|
_popup_button_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->pop_button = elm_radio_value_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_popup_title_text_check_changed_cb(void *data EINA_UNUSED,
|
|
Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->pop_title_text = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_popup_title_icon_check_changed_cb(void *data EINA_UNUSED,
|
|
Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->pop_title_icon = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_popup_content_changed_cb(void *data EINA_UNUSED,
|
|
Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->pop_content_type = elm_radio_value_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_popup_orient_changed_cb(void *data, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->pop_orient = (int)(uintptr_t)data;
|
|
gui_preview_update();
|
|
|
|
elm_object_text_set(obj, _popup_orient[wod->pop_orient].name);
|
|
}
|
|
|
|
static void
|
|
_widget_option_popup_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL, *rdg = NULL;
|
|
int i = 0;
|
|
|
|
// number of buttons
|
|
WIDGET_OPTION_LABEL_ADD(" < Number of Buttons > ");
|
|
WIDGET_OPTION_RADIO_ADD("0 Button", 0, _popup_button_changed_cb);
|
|
rdg = o;
|
|
WIDGET_OPTION_RADIO_ADD("1 Button", 1, _popup_button_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
WIDGET_OPTION_RADIO_ADD("2 Buttons", 2, _popup_button_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
WIDGET_OPTION_RADIO_ADD("3 Buttons", 3, _popup_button_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
elm_radio_value_set(rdg, wod->pop_button);
|
|
|
|
WIDGET_OPTION_SEPARATOR_ADD();
|
|
|
|
// title optoin
|
|
WIDGET_OPTION_LABEL_ADD(" < Title Option > ");
|
|
WIDGET_OPTION_CHECK_ADD("Title Text", wod->pop_title_text,
|
|
_popup_title_text_check_changed_cb);
|
|
WIDGET_OPTION_CHECK_ADD("Title Icon", wod->pop_title_icon,
|
|
_popup_title_icon_check_changed_cb);
|
|
|
|
WIDGET_OPTION_SEPARATOR_ADD();
|
|
|
|
// content option
|
|
WIDGET_OPTION_LABEL_ADD(" < Content Option > ");
|
|
WIDGET_OPTION_RADIO_ADD("Text as content", 0, _popup_content_changed_cb);
|
|
rdg = o;
|
|
WIDGET_OPTION_RADIO_ADD("Button as content", 1, _popup_content_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
WIDGET_OPTION_RADIO_ADD("200x50 Rectangle as content", 2,
|
|
_popup_content_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
WIDGET_OPTION_RADIO_ADD("500x200 Rectangle as content", 3,
|
|
_popup_content_changed_cb);
|
|
elm_radio_group_add(o, rdg);
|
|
elm_radio_value_set(rdg, wod->pop_content_type);
|
|
|
|
WIDGET_OPTION_SEPARATOR_ADD();
|
|
|
|
// orient set
|
|
WIDGET_OPTION_LABEL_ADD(" < Popup Orient > ");
|
|
|
|
o = elm_hoversel_add(box);
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); ALIGN(o, 0.0, 0.0);
|
|
elm_hoversel_hover_parent_set(o, gd->win);
|
|
elm_object_text_set(o, _popup_orient[wod->pop_orient].name);
|
|
for (i = 0; i < ELM_POPUP_ORIENT_LAST; i++)
|
|
{
|
|
elm_hoversel_item_add(o, _popup_orient[i].name, NULL, ELM_ICON_NONE,
|
|
_popup_orient_changed_cb,
|
|
(void *)(uintptr_t)_popup_orient[i].orient);
|
|
}
|
|
elm_box_pack_end(box, o);
|
|
evas_object_show(o);
|
|
}
|
|
|
|
// progressbar
|
|
static void
|
|
_progressbar_pulse_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->pg_pulse = elm_radio_value_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_widget_option_progressbar_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL, *rdg = NULL;
|
|
|
|
rdg = o = elm_radio_add(box);
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); FILL(o);
|
|
elm_object_text_set(o, "Pulse");
|
|
elm_radio_state_value_set(o, 1);
|
|
elm_box_pack_end(box, o);
|
|
evas_object_show(o);
|
|
evas_object_smart_callback_add(o, "changed",
|
|
_progressbar_pulse_changed_cb, NULL);
|
|
|
|
o = elm_radio_add(box);
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); FILL(o);
|
|
elm_object_text_set(o, "Progress");
|
|
elm_radio_state_value_set(o, 0);
|
|
elm_radio_group_add(o, rdg);
|
|
elm_box_pack_end(box, o);
|
|
evas_object_show(o);
|
|
evas_object_smart_callback_add(o, "changed",
|
|
_progressbar_pulse_changed_cb, NULL);
|
|
|
|
elm_radio_value_set(rdg, wod->pg_pulse);
|
|
}
|
|
|
|
// radio
|
|
static void
|
|
_radio_text_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->rd_text = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_radio_image_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->rd_image = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_widget_option_radio_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL;
|
|
|
|
WIDGET_OPTION_CHECK_ADD("Text", wod->rd_text,
|
|
_radio_text_check_changed_cb);
|
|
WIDGET_OPTION_CHECK_ADD("Image", wod->rd_image,
|
|
_radio_image_check_changed_cb);
|
|
}
|
|
|
|
// slider
|
|
static void
|
|
_slider_text_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->sl_text = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_slider_image_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->sl_image = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_slider_indicator_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
|
|
void *event_info EINA_UNUSED)
|
|
{
|
|
wod->sl_indicator = elm_check_state_get(obj);
|
|
gui_preview_update();
|
|
}
|
|
|
|
static void
|
|
_widget_option_slider_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL;
|
|
|
|
WIDGET_OPTION_CHECK_ADD("Text", wod->sl_text,
|
|
_slider_text_check_changed_cb);
|
|
WIDGET_OPTION_CHECK_ADD("Image", wod->sl_image,
|
|
_slider_image_check_changed_cb);
|
|
WIDGET_OPTION_CHECK_ADD("Indicator", wod->sl_indicator,
|
|
_slider_indicator_check_changed_cb);
|
|
}
|
|
|
|
// not implemented
|
|
static void
|
|
_widget_option_not_implemented_create(Evas_Object *box)
|
|
{
|
|
Evas_Object *o = NULL;
|
|
|
|
o = elm_label_add(box);
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); FILL(o);
|
|
elm_label_line_wrap_set(o, ELM_WRAP_MIXED);
|
|
elm_object_text_set(o, "Widget specific option is available here. But this widget does not support that feature now. Sorry.");
|
|
elm_box_pack_end(box, o);
|
|
evas_object_show(o);
|
|
}
|
|
|
|
static void
|
|
_wod_init(void)
|
|
{
|
|
wod = calloc(1, sizeof(Widget_Option_Data));
|
|
if (!wod)
|
|
{
|
|
CRI("Internal Widget_Option_Data is not created!");
|
|
return;
|
|
}
|
|
wod->btn_text = EINA_TRUE;
|
|
wod->chk_text = EINA_TRUE;
|
|
wod->entry_text_len = 2;
|
|
wod->gengrid_item_width = 168;
|
|
wod->gengrid_item_height = 168;
|
|
wod->genlist_text_len = 3;
|
|
wod->pop_button = 2;
|
|
wod->pop_title_text = 1;
|
|
wod->pop_orient = 1;
|
|
wod->pg_pulse = EINA_TRUE;
|
|
wod->rd_text = EINA_TRUE;
|
|
wod->sl_text = EINA_TRUE;
|
|
wod->sl_indicator = EINA_TRUE;
|
|
}
|
|
|
|
void
|
|
widget_option_content_update(Widget_Type type)
|
|
{
|
|
Evas_Object *o = NULL, *fr = NULL, *box = NULL;
|
|
char buf[PATH_MAX] = { 0 };
|
|
static Widget_Type prev_type = ETV_ID_NONE;
|
|
|
|
if (!gd) return;
|
|
if (!wod) _wod_init();
|
|
|
|
// optimization. do not create the same object again.
|
|
if (prev_type == type) return;
|
|
prev_type = type;
|
|
|
|
// option padding frame
|
|
fr = o = elm_frame_add(gd->widget_option_scr);
|
|
EXPAND(o); FILL(o);
|
|
elm_object_style_set(o, "pad_medium");
|
|
evas_object_show(o);
|
|
|
|
// option box
|
|
box = o = elm_box_add(fr);
|
|
EXPAND(o); FILL(o);
|
|
elm_box_padding_set(o, 0, elm_config_scale_get() * 5);
|
|
elm_object_content_set(fr, o);
|
|
evas_object_show(o);
|
|
|
|
// widget description label
|
|
o = elm_label_add(box);
|
|
WEIGHT(o, EVAS_HINT_EXPAND, 0.0); FILL(o);
|
|
elm_label_line_wrap_set(o, ELM_WRAP_MIXED);
|
|
sprintf(buf, "< %s widget specific options >", widget_name_get_by_type(type));
|
|
elm_object_text_set(o, buf);
|
|
elm_box_pack_end(box, o);
|
|
evas_object_show(o);
|
|
|
|
#define WIDGET_OPTION(name__, type__) \
|
|
else if (type == type__) \
|
|
_widget_option_##name__##_create(box); \
|
|
|
|
if (type == ETV_ID_NONE)
|
|
{
|
|
o = elm_object_content_unset(gd->widget_option_scr);
|
|
if (o) evas_object_del(o);
|
|
return;
|
|
}
|
|
WIDGET_OPTION(button, ETV_ID_BUTTON)
|
|
WIDGET_OPTION(check, ETV_ID_CHECK)
|
|
WIDGET_OPTION(entry, ETV_ID_ENTRY)
|
|
WIDGET_OPTION(gengrid, ETV_ID_GENGRID)
|
|
WIDGET_OPTION(genlist, ETV_ID_GENLIST)
|
|
WIDGET_OPTION(popup, ETV_ID_POPUP)
|
|
WIDGET_OPTION(progressbar, ETV_ID_PROGRESSBAR)
|
|
WIDGET_OPTION(radio, ETV_ID_RADIO)
|
|
WIDGET_OPTION(slider, ETV_ID_SLIDER)
|
|
else
|
|
_widget_option_not_implemented_create(box);
|
|
|
|
// padding
|
|
o = elm_box_add(box);
|
|
EXPAND(o); FILL(o);
|
|
elm_box_pack_end(box, o);
|
|
evas_object_show(o);
|
|
|
|
// set the frame into option scroller
|
|
elm_object_content_set(gd->widget_option_scr, fr);
|
|
}
|