/* multibuttonentry */
typedef struct _Multibuttonentry_Item Elm_Multibuttonentry_Item;
+ typedef Eina_Bool (*Elm_Multibuttonentry_Item_Verify_Callback) (Evas_Object *obj, const char *item_label, void *item_data, void *data);
EAPI Evas_Object *elm_multibuttonentry_add(Evas_Object *parent);
EAPI const char *elm_multibuttonentry_label_get(Evas_Object *obj);
EAPI void elm_multibuttonentry_label_set(Evas_Object *obj, const char *label);
EAPI Elm_Multibuttonentry_Item *elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item);
EAPI void *elm_multibuttonentry_item_data_get(Elm_Multibuttonentry_Item *item);
EAPI void elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data);
+ EAPI void elm_multibuttonentry_item_verify_callback_set(Evas_Object *obj, Elm_Multibuttonentry_Item_Verify_Callback func, void *data);
/* smart callback called:
* "selected" - This signal is emitted when the selected item of multibuttonentry is changed.
* "added" - This signal is emitted when a new multibuttonentry item is added.
int contracted;
Eina_Bool focused: 1;
Ecore_IMF_Context *imf_context;
+ Elm_Multibuttonentry_Item_Verify_Callback add_callback;
+ void *add_callback_data;
};
static const char *widtype = NULL;
if (!wd || !wd->box || !wd->entry) return NULL;
+ if ((wd->add_callback) && !wd->add_callback(obj, str, data, wd->add_callback_data)) return NULL;
+
// add button
btn = edje_object_add(evas_object_evas_get(obj));
str_utf8 = elm_entry_markup_to_utf8(str);
wd->n_str = 0;
wd->rectForEnd = NULL;
wd->imf_context = NULL;
+ wd->add_callback = NULL;
+ wd->add_callback_data = NULL;
_view_init(obj);
_event_init(obj);
item->data = data;
}
+/**
+ * Set the multibuttonentry item_verify_callback function
+ *
+ * @param obj The multibuttonentry object
+ * @param func The function pointer to be called, it it's NULL, callback function will be deleted.
+ * @param data user data to be passed to the callback function
+ *
+ * @ingroup Multibuttonentry
+ */
+EAPI void
+elm_multibuttonentry_item_verify_callback_set(Evas_Object *obj, Elm_Multibuttonentry_Item_Verify_Callback func, void *data)
+{
+ ELM_CHECK_WIDTYPE(obj, widtype);
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+
+ wd->add_callback = func;
+ wd->add_callback_data = data;
+}