MULTIBUTONENTRY_POS_NUM\r
}Multibuttonentry_Pos;\r
\r
+typedef enum _Multibuttonentry_Button_State\r
+{\r
+ MULTIBUTONENTRY_BUTTON_STATE_DEFAULT,\r
+ MULTIBUTONENTRY_BUTTON_STATE_SELECTED,\r
+ MULTIBUTONENTRY_BUTTON_STATE_NUM\r
+}Multibuttonentry_Button_State;\r
+\r
+\r
struct _Multibuttonentry_Item {\r
Evas_Object *multibuttonentry;\r
Evas_Object *button;\r
}\r
\r
static void\r
+_change_current_button_state(Evas_Object *obj, Multibuttonentry_Button_State state)\r
+{\r
+ Widget_Data *wd = elm_widget_data_get(obj);\r
+ Elm_Multibuttonentry_Item *item = NULL;\r
+ if (!wd) return;\r
+\r
+ if(wd->current) \r
+ item = eina_list_data_get(wd->current);\r
+\r
+ if(item && item->button){\r
+ switch(state){\r
+ case MULTIBUTONENTRY_BUTTON_STATE_DEFAULT:\r
+ edje_object_signal_emit(item->button, "default", "");\r
+ wd->current = NULL;\r
+ break;\r
+ case MULTIBUTONENTRY_BUTTON_STATE_SELECTED:\r
+ edje_object_signal_emit(item->button, "focused", "");\r
+ evas_object_smart_callback_call(obj, "selected", item);\r
+ break;\r
+ default:\r
+ edje_object_signal_emit(item->button, "default", "");\r
+ wd->current = NULL;\r
+ break;\r
+ }\r
+ }\r
+}\r
+\r
+static void\r
_change_current_button(Evas_Object *obj, Evas_Object *btn)\r
{\r
Widget_Data *wd = elm_widget_data_get(obj);\r
if (!wd) return;\r
\r
// change the state of previous button to "default"\r
- if(wd->current){\r
- item = eina_list_data_get(wd->current);\r
- edje_object_signal_emit(item->button,"default", ""); \r
- }\r
+ _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_DEFAULT);\r
\r
// change the current\r
EINA_LIST_FOREACH(wd->items, l, item) {\r
}\r
\r
// chagne the state of current button to "focused"\r
- if(wd->current){\r
- item = eina_list_data_get(wd->current);\r
- edje_object_signal_emit(item->button,"focused", "");\r
- evas_object_smart_callback_call(obj, "selected", item);\r
- }\r
+ _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_SELECTED);\r
+ \r
}\r
\r
static void\r
}\r
\r
/**\r
+ * unselect all of items.\r
+ *\r
+ * @param obj The multibuttonentry object\r
+ *\r
+ * @ingroup Multibuttonentry\r
+ */\r
+EAPI void\r
+elm_multibuttonentry_item_unselect_all(Evas_Object *obj)\r
+{\r
+ ELM_CHECK_WIDTYPE(obj, widtype);\r
+ Widget_Data *wd = elm_widget_data_get(obj);\r
+ if (!wd) return;\r
+\r
+ _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_DEFAULT);\r
+}\r
+\r
+/**\r
* Remove all items in the multibuttonentry.\r
*\r
* @param obj The multibuttonentry object\r