int segment_id;
};
-static void _sizing_eval(Evas_Object *obj);
static void _signal_segment_on(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _theme_hook(Evas_Object *obj);
static void _item_free(Evas_Object *obj, Elm_Segment_Item *it);
static void _update_list(Evas_Object *obj);
static void _refresh_segment_ids(Evas_Object *obj);
static void _state_value_set(Evas_Object *obj);
-static void _queue_list(Evas_Object *obj);
static Elm_Segment_Item* _item_new(Evas_Object *obj, const char *label, Evas_Object *icon);
static Elm_Segment_Item *_item_find(Evas_Object *obj, unsigned int index);
if (elm_widget_focus_get(obj))
{
- edje_object_signal_emit(wd->seg_ctrl, "elm,action,focus", "elm");
- evas_object_focus_set(wd->seg_ctrl, 1);
+ edje_object_signal_emit((Evas_Object *)wd->seg_ctrl, "elm,action,focus", "elm");
+ evas_object_focus_set((Evas_Object *)wd->seg_ctrl, 1);
printf("\n _on_focus_hook :: elm,action,focus \n");
}
else
{
- edje_object_signal_emit(wd->seg_ctrl, "elm,action,unfocus", "elm");
- evas_object_focus_set(wd->seg_ctrl, 0);
+ edje_object_signal_emit((Evas_Object *)wd->seg_ctrl, "elm,action,unfocus", "elm");
+ evas_object_focus_set((Evas_Object *)wd->seg_ctrl, 0);
EINA_LIST_FOREACH(wd->seg_ctrl, l, it)
{
if (it->segment_id == wd->cur_seg_id) {
wd->cur_seg_id = item->segment_id;
return;
}
- int i = 0;
EINA_LIST_FOREACH(wd->seg_ctrl, l, it)
{
if (it->segment_id == wd->cur_seg_id) {
evas_object_smart_callback_call(item->obj, "changed", (void*)wd->cur_seg_id);
}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
- Widget_Data *wd = elm_widget_data_get(obj);
- Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
- if (!wd) return;
- elm_coords_finger_size_adjust(1, &minw, 1, &minh);
- elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-
- evas_object_size_hint_weight_set(wd->base, 1.0, -1.0);
- evas_object_size_hint_align_set(wd->base, 1.0, -1.0);
- evas_object_size_hint_min_set(wd->base, -1, -1);
- evas_object_size_hint_max_set(wd->base, maxw, maxh);
- return;
-}
-
static void
_theme_hook(Evas_Object *obj)
{
- Widget_Data *wd = elm_widget_data_get(obj);
_elm_theme_object_set(obj, obj, "segmented-control", "base", elm_widget_style_get(obj));
return;
Evas_Object *obj;
Evas *e;
Widget_Data *wd;
- Evas_Coord w = 0, h = 0;
wd = ELM_NEW(Widget_Data);
e = evas_object_evas_get(parent);
wd->id = 0;
wd->del_index = 0;
wd->insert_index = 0;
+ wd->cur_seg_id = -1;
return obj;
}
Elm_Segment_Item *it;
it = calloc(1, sizeof( Elm_Segment_Item));
if (!it) return NULL;
- Evas_Coord mw, mh;
if(obj) it->obj = obj;
it->delete_me = EINA_FALSE;
edje_object_part_swallow(it->base, "elm.swallow.content", it->icon);
edje_object_signal_emit(it->base, "elm,state,icon,visible", "elm");
- if(wd->cur_seg_id == it->segment_id && elm_widget_focus_get(obj))
- {
- edje_object_signal_emit(it->base, "elm,state,segment,on", "elm");
- edje_object_signal_emit(it->base, "elm,state,text,change", "elm");
- }
+
i++;
}
}
Elm_Segment_Item *it;
Eina_List *l;
- Evas_Coord w, h, mw, mh, x, y, xx, yy;
+ Evas_Coord mw, mh, x, y;
int w1=0, w2;
}
}
-static void _queue_list(Evas_Object *obj)
-{
- Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd) return;
-
- Elm_Segment_Item *it;
- Eina_List *l;
- int i = 0;
- EINA_LIST_FOREACH(wd->seg_ctrl, l, it)
- {
- i++;
- }
- wd->count = eina_list_count(wd->seg_ctrl);
-}
-
/**
* Add a new segment to segmentcontrol
* @param obj The SegmentControl object
elm_segment_control_add_segment(Evas_Object *obj, Evas_Object *icon, const char *label, Eina_Bool animate)
{
Widget_Data *wd = elm_widget_data_get(obj);
- if(!wd) return;
+ if(!wd) return NULL;
Evas_Object *seg;
Elm_Segment_Item *it;
it = _item_new(obj, label, icon);
if(!it)
- return;
+ return NULL;
wd->seg_ctrl = eina_list_append(wd->seg_ctrl, it);
wd->id = eina_list_count(wd->seg_ctrl);
wd->item_width = wd->width = width*wd->scale_factor;
wd->height = height*wd->scale_factor;
- return;
+ return 0;
}