_disk_sel(void *data __UNUSED__, Evas_Object * obj __UNUSED__, void *event_info)
{
Elm_Object_Item *ds_it = event_info;
- printf("Equinox: %s\n", elm_diskselector_item_label_get(ds_it));
+ printf("Equinox: %s\n", elm_object_item_text_get(ds_it));
}
static void
Elm_Object_Item *next_ds_it, *prev_ds_it, *ds_it = event_info;
prev_ds_it = elm_diskselector_item_prev_get(ds_it);
next_ds_it = elm_diskselector_item_next_get(ds_it);
- printf("Prev: %s, Next: %s\n",
- elm_diskselector_item_label_get(prev_ds_it),
- elm_diskselector_item_label_get(next_ds_it));
+ printf("Prev: %s, Next: %s\n", elm_object_item_text_get(prev_ds_it),
+ elm_object_item_text_get(next_ds_it));
}
static void
_print_disk_info_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
Elm_Object_Item *ds_it = event_info;
- printf("Selected label: %s\n", elm_diskselector_item_label_get(ds_it));
+ printf("Selected label: %s\n", elm_object_item_text_get(ds_it));
}
static Evas_Object *
_sel_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
{
Elm_Object_Item *ds_it = event_info;
- printf("Selected label: %s\n", elm_diskselector_item_label_get(ds_it));
+ printf("Selected label: %s\n", elm_object_item_text_get(ds_it));
}
static void
char *content = data;
Elm_Object_Item *ds_it = event_info;
printf("Selected label: %s with data: %s\n",
- elm_diskselector_item_label_get(ds_it), content);
+ elm_object_item_text_get(ds_it), content);
}
static void
items = elm_diskselector_items_get(ds);
EINA_LIST_FOREACH(items, l, ds_it)
- printf("%s\n", elm_diskselector_item_label_get(ds_it));
+ printf("%s\n", elm_object_item_text_get(ds_it));
}
static void
*/
EINA_DEPRECATED EAPI void elm_diskselector_side_label_lenght_set(Evas_Object *obj, int len);
+/**
+ * Get the data associated to the item.
+ *
+ * @param it The diskselector item
+ * @return The data associated to @p it
+ *
+ * The return value is a pointer to data associated to @p item when it was
+ * created, with function elm_diskselector_item_append(). If no data
+ * was passed as argument, it will return @c NULL.
+ *
+ * @see elm_diskselector_item_append()
+ * @deprecated Use elm_object_item_data_get()
+ *
+ * @ingroup Diskselector
+ */
+EINA_DEPRECATED EAPI void *elm_diskselector_item_data_get(const Elm_Object_Item *it);
+
+/**
+ * Set the icon associated to the item.
+ *
+ * @param it The diskselector item
+ * @param icon The icon object to associate with @p it
+ *
+ * The icon object to use at left side of the item. An
+ * icon can be any Evas object, but usually it is an icon created
+ * with elm_icon_add().
+ *
+ * Once the icon object is set, a previously set one will be deleted.
+ * @warning Setting the same icon for two items will cause the icon to
+ * dissapear from the first item.
+ *
+ * If an icon was passed as argument on item creation, with function
+ * elm_diskselector_item_append(), it will be already
+ * associated to the item.
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_item_icon_get()
+ *
+ * @deprecated Use elm_object_item_part_content_set() instead
+ * @ingroup Diskselector
+ */
+EINA_DEPRECATED EAPI void elm_diskselector_item_icon_set(Elm_Object_Item *it, Evas_Object *icon);
+
+/**
+ * Get the icon associated to the item.
+ *
+ * @param item The diskselector item
+ * @return The icon associated to @p it
+ *
+ * The return value is a pointer to the icon associated to @p item when it was
+ * created, with function elm_diskselector_item_append(), or later
+ * with function elm_diskselector_item_icon_set. If no icon
+ * was passed as argument, it will return @c NULL.
+ *
+ * @see elm_diskselector_item_append()
+ * @see elm_diskselector_item_icon_set()
+ *
+ * @deprecated Use elm_object_item_part_content_set() instead
+ * @ingroup Diskselector
+ */
+EAPI Evas_Object *elm_diskselector_item_icon_get(const Elm_Object_Item *it);
+
+/**
+ * Set the label of item.
+ *
+ * @param it The item of diskselector.
+ * @param label The label of item.
+ *
+ * The label to be displayed by the item.
+ *
+ * If no icon is set, label will be centered on item position, otherwise
+ * the icon will be placed at left of the label, that will be shifted
+ * to the right.
+ *
+ * An item with label "January" would be displayed on side position as
+ * "Jan" if max length is set to 3 with function
+ * elm_diskselector_side_label_lenght_set(), or "Janu", if this property
+ * is set to 4.
+ *
+ * When this @p item is selected, the entire label will be displayed,
+ * except for width restrictions.
+ * In this case label will be cropped and "..." will be concatenated,
+ * but only for display purposes. It will keep the entire string, so
+ * if diskselector is resized the remaining characters will be displayed.
+ *
+ * If a label was passed as argument on item creation, with function
+ * elm_diskselector_item_append(), it will be already
+ * displayed by the item.
+ *
+ * @see elm_diskselector_side_label_lenght_set()
+ * @see elm_diskselector_item_label_get()
+ * @see elm_diskselector_item_append()
+ *
+ * @deprecated Use elm_object_item_text_set() instead
+ * @ingroup Diskselector
+ */
+EINA_DEPRECATED EAPI void elm_diskselector_item_label_set(Elm_Object_Item *it, const char *label);
+
+/**
+ * Get the label of item.
+ *
+ * @param it The item of diskselector.
+ * @return The label of item.
+ *
+ * The return value is a pointer to the label associated to @p item when it was
+ * created, with function elm_diskselector_item_append(), or later
+ * with function elm_diskselector_item_label_set. If no label
+ * was passed as argument, it will return @c NULL.
+ *
+ * @see elm_diskselector_item_label_set() for more details.
+ * @see elm_diskselector_item_append()
+ * @use elm_object_item_text_get()
+ *
+ * @ingroup Diskselector
+ */
+EINA_DEPRECATED EAPI const char *elm_diskselector_item_label_get(const Elm_Object_Item *it);
+
EINA_DEPRECATED EAPI void elm_factory_content_set(Evas_Object *obj, Evas_Object *content);
EINA_DEPRECATED EAPI Evas_Object *elm_factory_content_get(const Evas_Object *obj);
const char *emission __UNUSED__,
const char *source __UNUSED__);
static void _selected_item_indicate(Elm_Diskselector_Item *it);
+static void _item_text_set_hook(Elm_Object_Item *it,
+ const char *part,
+ const char *label);
+static const char * _item_text_get_hook(const Elm_Object_Item *it,
+ const char *part);
+static void _item_content_set_hook(Elm_Object_Item *it,
+ const char *part,
+ Evas_Object *content);
+static Evas_Object * _item_content_get_hook(const Elm_Object_Item *it,
+ const char *part);
static const char SIG_SELECTED[] = "selected";
static const Evas_Smart_Cb_Description _signals[] = {
it = elm_widget_item_new(obj, Elm_Diskselector_Item);
if (!it) return NULL;
+ elm_widget_item_text_set_hook_set(it, _item_text_set_hook);
+ elm_widget_item_text_get_hook_set(it, _item_text_get_hook);
+ elm_widget_item_content_set_hook_set(it, _item_content_set_hook);
+ elm_widget_item_content_get_hook_set(it, _item_content_get_hook);
+
it->label = eina_stringshare_add(label);
it->icon = icon;
it->func = func;
Evas_Coord x, w, ow;
Eina_List *l, *list;
- if (wd->idler)
- return;
+ if (wd->idler) return;
if (!wd->round)
list = wd->items;
EINA_LIST_FOREACH(list, l, it)
{
evas_object_geometry_get(VIEW(it), &x, NULL, &w, NULL);
- if (abs((int)(ow / 2 - (int)(x + w / 2))) < 10)
- break;
+ if (abs((int)(ow / 2 - (int)(x + w / 2))) < 10) break;
}
- if (!it)
- return;
-
+ if (!it) return;
_select_item(it);
}
}
}
+static void
+_item_text_set_hook(Elm_Object_Item *it, const char *part, const char *label)
+{
+ ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+ Elm_Diskselector_Item *item;
+ if (part && strcmp(part, "default")) return;
+ item = (Elm_Diskselector_Item *) it;
+ eina_stringshare_replace(&item->label, label);
+ edje_object_part_text_set(VIEW(item), "elm.text", item->label);
+}
+
+static const char *
+_item_text_get_hook(const Elm_Object_Item *it, const char *part)
+{
+ ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
+ if (part && strcmp(part, "default")) return NULL;
+ return ((Elm_Diskselector_Item *) it)->label;
+}
+
+static void
+_item_content_set_hook(Elm_Object_Item *it,
+ const char *part,
+ Evas_Object *content)
+{
+ ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
+ if (part && strcmp(part, "icon")) return;
+ _item_icon_set((Elm_Diskselector_Item *) it, content);
+ _check_identical_item((Elm_Diskselector_Item *) it, content);
+}
+
+static Evas_Object *
+_item_content_get_hook(const Elm_Object_Item *it, const char *part)
+{
+ ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
+ if (part && strcmp(part, "icon")) return NULL;
+ return ((Elm_Diskselector_Item *) it)->icon;
+}
+
EAPI Evas_Object *
elm_diskselector_add(Evas_Object *parent)
{
EAPI const char *
elm_diskselector_item_label_get(const Elm_Object_Item * it)
{
- ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
- return ((Elm_Diskselector_Item *) it)->label;
+ return _item_text_get_hook(it, NULL);
}
EAPI void
elm_diskselector_item_label_set(Elm_Object_Item * it, const char *label)
{
- ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
- Elm_Diskselector_Item *item = (Elm_Diskselector_Item *) it;
- eina_stringshare_replace(&item->label, label);
- edje_object_part_text_set(VIEW(item), "elm.text", item->label);
+ _item_text_set_hook(it, NULL, label);
}
EAPI Elm_Object_Item *
EAPI void *
elm_diskselector_item_data_get(const Elm_Object_Item *it)
{
- ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
- return elm_widget_item_data_get(it);
+ return elm_object_item_data_get(it);
}
EAPI Evas_Object *
elm_diskselector_item_icon_get(const Elm_Object_Item *it)
{
- ELM_OBJ_ITEM_CHECK_OR_RETURN(it, NULL);
- return ((Elm_Diskselector_Item *) it)->icon;
+ return _item_content_get_hook(it, NULL);
}
EAPI void
elm_diskselector_item_icon_set(Elm_Object_Item *it, Evas_Object *icon)
{
- ELM_OBJ_ITEM_CHECK_OR_RETURN(it);
- _item_icon_set((Elm_Diskselector_Item *) it, icon);
- _check_identical_item((Elm_Diskselector_Item *) it, icon);
+ _item_content_set_hook(it, NULL, icon);
}
EAPI Elm_Object_Item *
* Available styles for it:
* - @c "default"
*
+ * Default contents parts of the diskseletor items that you can use for are:
+ * @li "icon" - An icon in the diskselector item
+ *
+ * Default text parts of the diskselector items that you can use for are:
+ * @li "default" - Label of the diskselector item
+ *
* List of examples:
* @li @ref diskselector_example_01
* @li @ref diskselector_example_02
EAPI void elm_diskselector_item_del_cb_set(Elm_Object_Item *it, Evas_Smart_Cb func);
/**
- * Get the data associated to the item.
- *
- * @param it The diskselector item
- * @return The data associated to @p it
- *
- * The return value is a pointer to data associated to @p item when it was
- * created, with function elm_diskselector_item_append(). If no data
- * was passed as argument, it will return @c NULL.
- *
- * @see elm_diskselector_item_append()
- *
- * @ingroup Diskselector
- */
-EAPI void *elm_diskselector_item_data_get(const Elm_Object_Item *it);
-
-/**
- * Set the icon associated to the item.
- *
- * @param it The diskselector item
- * @param icon The icon object to associate with @p it
- *
- * The icon object to use at left side of the item. An
- * icon can be any Evas object, but usually it is an icon created
- * with elm_icon_add().
- *
- * Once the icon object is set, a previously set one will be deleted.
- * @warning Setting the same icon for two items will cause the icon to
- * dissapear from the first item.
- *
- * If an icon was passed as argument on item creation, with function
- * elm_diskselector_item_append(), it will be already
- * associated to the item.
- *
- * @see elm_diskselector_item_append()
- * @see elm_diskselector_item_icon_get()
- *
- * @ingroup Diskselector
- */
-EAPI void elm_diskselector_item_icon_set(Elm_Object_Item *it, Evas_Object *icon);
-
-/**
- * Get the icon associated to the item.
- *
- * @param item The diskselector item
- * @return The icon associated to @p it
- *
- * The return value is a pointer to the icon associated to @p item when it was
- * created, with function elm_diskselector_item_append(), or later
- * with function elm_diskselector_item_icon_set. If no icon
- * was passed as argument, it will return @c NULL.
- *
- * @see elm_diskselector_item_append()
- * @see elm_diskselector_item_icon_set()
- *
- * @ingroup Diskselector
- */
-EAPI Evas_Object *elm_diskselector_item_icon_get(const Elm_Object_Item *it);
-
-/**
- * Set the label of item.
- *
- * @param it The item of diskselector.
- * @param label The label of item.
- *
- * The label to be displayed by the item.
- *
- * If no icon is set, label will be centered on item position, otherwise
- * the icon will be placed at left of the label, that will be shifted
- * to the right.
- *
- * An item with label "January" would be displayed on side position as
- * "Jan" if max length is set to 3 with function
- * elm_diskselector_side_label_lenght_set(), or "Janu", if this property
- * is set to 4.
- *
- * When this @p item is selected, the entire label will be displayed,
- * except for width restrictions.
- * In this case label will be cropped and "..." will be concatenated,
- * but only for display purposes. It will keep the entire string, so
- * if diskselector is resized the remaining characters will be displayed.
- *
- * If a label was passed as argument on item creation, with function
- * elm_diskselector_item_append(), it will be already
- * displayed by the item.
- *
- * @see elm_diskselector_side_label_lenght_set()
- * @see elm_diskselector_item_label_get()
- * @see elm_diskselector_item_append()
- *
- * @ingroup Diskselector
- */
-EAPI void elm_diskselector_item_label_set(Elm_Object_Item *it, const char *label);
-
-/**
- * Get the label of item.
- *
- * @param it The item of diskselector.
- * @return The label of item.
- *
- * The return value is a pointer to the label associated to @p item when it was
- * created, with function elm_diskselector_item_append(), or later
- * with function elm_diskselector_item_label_set. If no label
- * was passed as argument, it will return @c NULL.
- *
- * @see elm_diskselector_item_label_set() for more details.
- * @see elm_diskselector_item_append()
- *
- * @ingroup Diskselector
- */
-EAPI const char *elm_diskselector_item_label_get(const Elm_Object_Item *it);
-
-/**
* Get the selected item.
*
* @param obj The diskselector object.