void *add_callback_data;
};
-static const char *widtype = NULL;
static void _del_hook(Evas_Object *obj);
static void _theme_hook(Evas_Object *obj);
static void _on_focus_hook(void *data __UNUSED__, Evas_Object *obj);
static const char *_item_text_get_hook(const Elm_Object_Item *it,
const char *part);
- /* TODO
- * Code refactoring
- * use evas_object_smart_callback_descriptions_set for smart callbacks.
- */
+static const char *widtype = NULL;
+
+//widget signals
+static const char SIG_ITEM_SELECTED[] = "item,selected";
+static const char SIG_ITEM_ADDED[] = "item,added";
+static const char SIG_ITEM_DELETED[] = "item,deleted";
+static const char SIG_ITEM_CLICKED[] = "item,clicked";
+static const char SIG_CLICKED[] = "clicked";
+static const char SIG_FOCUSED[] = "focused";
+static const char SIG_UNFOCUSED[] = "unfocused";
+static const char SIG_EXPANDED[] = "expanded";
+static const char SIG_CONTRACTED[] = "contracted";
+static const char SIG_EXPAND_STATE_CHANGED[] = "expand,state,changed";
+
+static const Evas_Smart_Cb_Description _signals[] = {
+ {SIG_ITEM_SELECTED, ""},
+ {SIG_ITEM_ADDED, ""},
+ {SIG_ITEM_DELETED, ""},
+ {SIG_ITEM_CLICKED, ""},
+ {SIG_CLICKED, ""},
+ {SIG_FOCUSED, ""},
+ {SIG_UNFOCUSED, ""},
+ {SIG_EXPANDED, ""},
+ {SIG_CONTRACTED, ""},
+ {SIG_EXPAND_STATE_CHANGED, ""},
+ {NULL, NULL}
+};
static void
_del_hook(Evas_Object *obj)
elm_entry_input_panel_show(wd->entry);
}
wd->focused = EINA_TRUE;
- evas_object_smart_callback_call(obj, "focused", NULL);
+ evas_object_smart_callback_call(obj, SIG_FOCUSED, NULL);
}
else
{
_view_update(obj);
elm_entry_input_panel_hide(wd->entry);
- evas_object_smart_callback_call(obj, "unfocused", NULL);
+ evas_object_smart_callback_call(obj, SIG_UNFOCUSED, NULL);
}
}
elm_entry_input_panel_show(wd->entry);
- evas_object_smart_callback_call(data, "clicked", NULL);
+ evas_object_smart_callback_call(data, SIG_CLICKED, NULL);
}
static void
if (!wd) return;
evas_object_geometry_get(wd->box, NULL, NULL, &w, &h);
- if (wd->h_box < h) evas_object_smart_callback_call(data, "expanded", NULL);
- else if (wd->h_box > h) evas_object_smart_callback_call(data, "contracted", NULL);
+ if (wd->h_box < h) evas_object_smart_callback_call(data, SIG_EXPANDED, NULL);
+ else if (wd->h_box > h)
+ evas_object_smart_callback_call(data, SIG_CONTRACTED, NULL);
wd->w_box = w;
wd->h_box = h;
evas_object_show(wd->end);
wd->view_state = MULTIBUTTONENTRY_VIEW_SHRINK;
- evas_object_smart_callback_call(obj, "expand,state,changed", (void *)1);
+ evas_object_smart_callback_call(obj, SIG_EXPAND_STATE_CHANGED, (void *)1);
break;
}
}
evas_object_show(wd->end);
wd->view_state = MULTIBUTTONENTRY_VIEW_SHRINK;
- evas_object_smart_callback_call(obj, "expand,state,changed", (void *)0);
+ evas_object_smart_callback_call(obj, SIG_EXPAND_STATE_CHANGED, (void *)0);
break;
}
}
}
wd->view_state = MULTIBUTTONENTRY_VIEW_NONE;
- evas_object_smart_callback_call(obj, "expand,state,changed", (void *)(long)wd->shrink);
+ evas_object_smart_callback_call(obj, SIG_EXPAND_STATE_CHANGED,
+ (void *)(long)wd->shrink);
}
if (wd->view_state != MULTIBUTTONENTRY_VIEW_SHRINK)
{
break;
case MULTIBUTTONENTRY_BUTTON_STATE_SELECTED:
edje_object_signal_emit(item->button, "focused", "");
- evas_object_smart_callback_call(obj, "item,selected", item);
+ evas_object_smart_callback_call(obj, SIG_ITEM_SELECTED, item);
break;
default:
edje_object_signal_emit(item->button, "default", "");
if (wd->current)
if ((item = eina_list_data_get(wd->current)) != NULL)
{
- evas_object_smart_callback_call(data, "item,clicked", item);
+ evas_object_smart_callback_call(data, SIG_ITEM_CLICKED, item);
_select_button(data, item->button);
}
}
wd->items = eina_list_remove(wd->items, _item);
elm_box_unpack(wd->box, _item->button);
- evas_object_smart_callback_call(obj, "item,deleted", _item);
+ evas_object_smart_callback_call(obj, SIG_ITEM_DELETED, _item);
_del_button_obj(obj, _item->button);
break;
}
}
- evas_object_smart_callback_call(obj, "item,added", item);
+ evas_object_smart_callback_call(obj, SIG_ITEM_ADDED, item);
free(str_utf8);
wd->add_callback = NULL;
wd->add_callback_data = NULL;
+ evas_object_smart_callbacks_descriptions_set(obj, _signals);
+
_view_init(obj);
_event_init(obj);