diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 9f28146ff9..866017b83a 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -238,8 +238,6 @@ elm_legacy_eolian_files = \ lib/elementary/elm_actionslider_part.eo \ lib/elementary/elm_bubble_part.eo \ lib/elementary/elm_fileselector_part.eo \ - lib/elementary/elm_diskselector.eo \ - lib/elementary/elm_diskselector_item.eo \ lib/elementary/elm_fileselector_button.eo \ lib/elementary/elm_fileselector_entry.eo \ lib/elementary/elm_flipselector.eo \ @@ -343,6 +341,10 @@ lib/elementary/elm_ctxpopup_item_eo.c \ lib/elementary/elm_dayselector_eo.legacy.c \ lib/elementary/elm_dayselector_eo.c \ lib/elementary/elm_dayselector_item_eo.c \ +lib/elementary/elm_diskselector_eo.legacy.c \ +lib/elementary/elm_diskselector_eo.c \ +lib/elementary/elm_diskselector_item_eo.legacy.c \ +lib/elementary/elm_diskselector_item_eo.c \ lib/elementary/elm_hoversel_eo.c \ lib/elementary/elm_hoversel_item_eo.c \ lib/elementary/elm_hoversel_item_eo.legacy.c @@ -422,6 +424,10 @@ lib/elementary/elm_dayselector_eo.h \ lib/elementary/elm_dayselector_eo.legacy.h \ lib/elementary/elm_dayselector_item_eo.h \ lib/elementary/elm_dayselector_item_eo.legacy.h \ +lib/elementary/elm_diskselector_eo.h \ +lib/elementary/elm_diskselector_eo.legacy.h \ +lib/elementary/elm_diskselector_item_eo.h \ +lib/elementary/elm_diskselector_item_eo.legacy.h \ lib/elementary/elm_hoversel_eo.h \ lib/elementary/elm_hoversel_eo.legacy.h \ lib/elementary/elm_hoversel_item_eo.h \ diff --git a/src/lib/elementary/elm_diskselector.c b/src/lib/elementary/elm_diskselector.c index 3fce2c9296..bbaa7e6505 100644 --- a/src/lib/elementary/elm_diskselector.c +++ b/src/lib/elementary/elm_diskselector.c @@ -9,8 +9,8 @@ #include #include "elm_priv.h" -#include "elm_diskselector.eo.h" -#include "elm_diskselector_item.eo.h" +#include "elm_diskselector_eo.h" +#include "elm_diskselector_item_eo.h" #include "elm_widget_diskselector.h" #include "elm_interface_scrollable.h" @@ -1789,5 +1789,5 @@ ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_diskselector, Elm_Diskselector_Data) #define ELM_DISKSELECTOR_EXTRA_OPS \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_diskselector) -#include "elm_diskselector.eo.c" -#include "elm_diskselector_item.eo.c" +#include "elm_diskselector_eo.c" +#include "elm_diskselector_item_eo.c" diff --git a/src/lib/elementary/elm_diskselector.eo b/src/lib/elementary/elm_diskselector.eo deleted file mode 100644 index acfb688a24..0000000000 --- a/src/lib/elementary/elm_diskselector.eo +++ /dev/null @@ -1,213 +0,0 @@ -class Elm.Diskselector extends Efl.Ui.Widget implements Elm.Interface_Scrollable, - Efl.Access.Widget.Action, - Efl.Ui.Clickable, Efl.Ui.Scrollable, - Efl.Ui.Selectable, Efl.Ui.Legacy -{ - [[Elementary diskselector class]] - legacy_prefix: elm_diskselector; - eo_prefix: elm_obj_diskselector; - event_prefix: elm_diskselector; - methods { - @property side_text_max_length { - set { - [[Set the side labels max length. - - Length is the number of characters of items' label that will be - visible when it's set on side positions. It will just crop - the string after defined size. E.g.: - - An item with label "January" would be displayed on side position as - "Jan" if max length is set to 3, or "Janu", if this property - is set to 4. - - When it's selected, the entire label will be displayed, except for - width restrictions. In this case label will be cropped and "..." - will be concatenated. - - Default side label max length is 3. - - This property will be applied over all items, included before or - later this function call. - ]] - } - get { - [[Get the side labels max length. - - See also @.side_text_max_length.set for details. - ]] - } - values { - len: int; [[The max length defined for side labels.]] - } - } - @property round_enabled { - set { - [[Enable or disable round mode. - - Disabled by default. If round mode is enabled the items list will - work like a circular list, so when the user reaches the last item, - the first one will popup. - - See also @.round_enabled.get. - ]] - } - get { - [[Get a value whether round mode is enabled or not. - - See also @.round_enabled.set for details. - ]] - } - values { - enabled: bool; [[$true to enable round mode or $false to - disable it.]] - } - } - @property display_item_num { - set { - [[Set the number of items to be displayed. - - Default value is 3, and also it's the minimum. If $num is less - than 3, it will be set to 3. - - Also, it can be set on theme, using data item $display_item_num - on group "elm/diskselector/item/X", where X is style set. - ]] - /* FIXME-doc - * E.g.: - * group { name: "elm/diskselector/item/X"; - * data { - * item: "display_item_num" "5"; - * } - */ - } - get { - [[Get the number of items in the diskselector object.]] - } - values { - num: int; [[The number of items the diskselector will display.]] - } - } - @property first_item { - get { - [[Get the first item of the diskselector. - - The list of items follows append order. So it will return the first - item appended to the widget that wasn't deleted. - - See also @.item_append, - @.items.get. - ]] - return: Elm.Widget.Item; [[The first item, or $null if none.]] - } - } - @property items { - get { - [[Get a list of all the diskselector items. - - See also @.item_append, - \@ref elm_object_item_del, - @.clear. - ]] - return: const(list); [[A $list of diskselector items, or $ull on failure.]] - } - } - @property last_item { - get { - [[Get the last item of the diskselector. - - The list of items follows append order. So it will return last first - item appended to the widget that wasn't deleted. - - See also @.item_append, - @.items.get. - ]] - return: Elm.Widget.Item; [[The last item, or $null if none.]] - } - } - @property selected_item { - get { - [[Get the selected item. - - - The selected item can be unselected with - @Elm.Diskselector.Item.selected.set, and the first item of - diskselector will be selected. - - The selected item always will be centered on diskselector, with - full label displayed, i.e., max length set to side labels won't - apply on the selected item. More details on - @.side_text_max_length.set. - ]] - return: Elm.Widget.Item; [[The selected diskselector item.]] - } - } - item_append { - [[Appends a new item to the diskselector object. - - A new item will be created and appended to the diskselector, i.e., will - be set as last item. Also, if there is no selected item, it will - be selected. This will always happens for the first appended 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. - - Items created with this method can be deleted with - \@ref elm_object_item_del. - - Associated $data can be properly freed when item is deleted if a - callback function is set with \@ref elm_object_item_del_cb_set. - - If a function is passed as argument, it will be called every time this item - is selected, i.e., the user stops the diskselector with this - item on center position. If such function isn't needed, just passing - $null as $func is enough. The same should be done for $data. - - See also \@ref elm_object_item_del, - @.clear, - \@ref elm_icon_add. - ]] - /* FIXME-doc - * Simple example (with no function callback or data associated): - * @code - * disk = elm_diskselector_add(win); - * ic = elm_icon_add(win); - * elm_image_file_set(ic, "path/to/image", NULL); - * elm_icon_resizable_set(ic, true, true); - * elm_diskselector_item_append(disk, "label", ic, NULL, NULL); - * @endcode - */ - return: Elm.Widget.Item; [[New item]] - params { - @in label: string; [[The label of the diskselector item.]] - @in icon: Efl.Canvas.Object @optional; [[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(). ]] - @in func: Evas_Smart_Cb @optional; [[The function to call when the item is selected.]] - @in data: const(void_ptr) @optional; [[The data to associate with the item for related callbacks.]] - } - } - clear { - [[Remove all diskselector's items. - - See also \@ref elm_object_item_del, - @.item_append. - ]] - } - } - implements { - class.constructor; - Efl.Object.constructor; - Efl.Gfx.Entity.position { set; } - Efl.Gfx.Entity.size { set; } - Efl.Canvas.Group.group_member_add; - Efl.Ui.Widget.on_access_update; - Efl.Ui.Widget.theme_apply; - Efl.Ui.Focus.Object.on_focus_update; - Efl.Ui.L10n.translation_update; - Efl.Ui.Widget.widget_sub_object_del; - Efl.Ui.Widget.widget_input_event_handler; - Elm.Interface_Scrollable.policy { get; set; } - Efl.Access.Widget.Action.elm_actions { get; } - } -} diff --git a/src/lib/elementary/elm_diskselector_eo.c b/src/lib/elementary/elm_diskselector_eo.c new file mode 100644 index 0000000000..a016e724c3 --- /dev/null +++ b/src/lib/elementary/elm_diskselector_eo.c @@ -0,0 +1,227 @@ + +void _elm_diskselector_side_text_max_length_set(Eo *obj, Elm_Diskselector_Data *pd, int len); + + +static Eina_Error +__eolian_elm_diskselector_side_text_max_length_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; int cval; + if (!eina_value_int_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_diskselector_side_text_max_length_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_diskselector_side_text_max_length_set, EFL_FUNC_CALL(len), int len); + +int _elm_diskselector_side_text_max_length_get(const Eo *obj, Elm_Diskselector_Data *pd); + + +static Eina_Value +__eolian_elm_diskselector_side_text_max_length_get_reflect(Eo *obj) +{ + int val = elm_obj_diskselector_side_text_max_length_get(obj); + return eina_value_int_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_side_text_max_length_get, int, 0); + +void _elm_diskselector_round_enabled_set(Eo *obj, Elm_Diskselector_Data *pd, Eina_Bool enabled); + + +static Eina_Error +__eolian_elm_diskselector_round_enabled_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; Eina_Bool cval; + if (!eina_value_bool_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_diskselector_round_enabled_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_diskselector_round_enabled_set, EFL_FUNC_CALL(enabled), Eina_Bool enabled); + +Eina_Bool _elm_diskselector_round_enabled_get(const Eo *obj, Elm_Diskselector_Data *pd); + + +static Eina_Value +__eolian_elm_diskselector_round_enabled_get_reflect(Eo *obj) +{ + Eina_Bool val = elm_obj_diskselector_round_enabled_get(obj); + return eina_value_bool_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_round_enabled_get, Eina_Bool, 0); + +void _elm_diskselector_display_item_num_set(Eo *obj, Elm_Diskselector_Data *pd, int num); + + +static Eina_Error +__eolian_elm_diskselector_display_item_num_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; int cval; + if (!eina_value_int_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_diskselector_display_item_num_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_diskselector_display_item_num_set, EFL_FUNC_CALL(num), int num); + +int _elm_diskselector_display_item_num_get(const Eo *obj, Elm_Diskselector_Data *pd); + + +static Eina_Value +__eolian_elm_diskselector_display_item_num_get_reflect(Eo *obj) +{ + int val = elm_obj_diskselector_display_item_num_get(obj); + return eina_value_int_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_display_item_num_get, int, 0); + +Elm_Widget_Item *_elm_diskselector_first_item_get(const Eo *obj, Elm_Diskselector_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_first_item_get, Elm_Widget_Item *, NULL); + +const Eina_List *_elm_diskselector_items_get(const Eo *obj, Elm_Diskselector_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_items_get, const Eina_List *, NULL); + +Elm_Widget_Item *_elm_diskselector_last_item_get(const Eo *obj, Elm_Diskselector_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_last_item_get, Elm_Widget_Item *, NULL); + +Elm_Widget_Item *_elm_diskselector_selected_item_get(const Eo *obj, Elm_Diskselector_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_selected_item_get, Elm_Widget_Item *, NULL); + +Elm_Widget_Item *_elm_diskselector_item_append(Eo *obj, Elm_Diskselector_Data *pd, const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data); + +EOAPI EFL_FUNC_BODYV(elm_obj_diskselector_item_append, Elm_Widget_Item *, NULL, EFL_FUNC_CALL(label, icon, func, data), const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data); + +void _elm_diskselector_clear(Eo *obj, Elm_Diskselector_Data *pd); + +EOAPI EFL_VOID_FUNC_BODY(elm_obj_diskselector_clear); + +Efl_Object *_elm_diskselector_efl_object_constructor(Eo *obj, Elm_Diskselector_Data *pd); + + +void _elm_diskselector_efl_gfx_entity_position_set(Eo *obj, Elm_Diskselector_Data *pd, Eina_Position2D pos); + + +void _elm_diskselector_efl_gfx_entity_size_set(Eo *obj, Elm_Diskselector_Data *pd, Eina_Size2D size); + + +void _elm_diskselector_efl_canvas_group_group_member_add(Eo *obj, Elm_Diskselector_Data *pd, Efl_Canvas_Object *sub_obj); + + +void _elm_diskselector_efl_ui_widget_on_access_update(Eo *obj, Elm_Diskselector_Data *pd, Eina_Bool enable); + + +Eina_Error _elm_diskselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Diskselector_Data *pd); + + +Eina_Bool _elm_diskselector_efl_ui_focus_object_on_focus_update(Eo *obj, Elm_Diskselector_Data *pd); + + +void _elm_diskselector_efl_ui_l10n_translation_update(Eo *obj, Elm_Diskselector_Data *pd); + + +Eina_Bool _elm_diskselector_efl_ui_widget_widget_sub_object_del(Eo *obj, Elm_Diskselector_Data *pd, Efl_Canvas_Object *sub_obj); + + +Eina_Bool _elm_diskselector_efl_ui_widget_widget_input_event_handler(Eo *obj, Elm_Diskselector_Data *pd, const Efl_Event *eo_event, Efl_Canvas_Object *source); + + +void _elm_diskselector_elm_interface_scrollable_policy_set(Eo *obj, Elm_Diskselector_Data *pd, Elm_Scroller_Policy hbar, Elm_Scroller_Policy vbar); + + +void _elm_diskselector_elm_interface_scrollable_policy_get(const Eo *obj, Elm_Diskselector_Data *pd, Elm_Scroller_Policy *hbar, Elm_Scroller_Policy *vbar); + + +const Efl_Access_Action_Data *_elm_diskselector_efl_access_widget_action_elm_actions_get(const Eo *obj, Elm_Diskselector_Data *pd); + + +static Eina_Bool +_elm_diskselector_class_initializer(Efl_Class *klass) +{ + const Efl_Object_Ops *opsp = NULL; + + const Efl_Object_Property_Reflection_Ops *ropsp = NULL; + +#ifndef ELM_DISKSELECTOR_EXTRA_OPS +#define ELM_DISKSELECTOR_EXTRA_OPS +#endif + + EFL_OPS_DEFINE(ops, + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_side_text_max_length_set, _elm_diskselector_side_text_max_length_set), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_side_text_max_length_get, _elm_diskselector_side_text_max_length_get), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_round_enabled_set, _elm_diskselector_round_enabled_set), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_round_enabled_get, _elm_diskselector_round_enabled_get), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_display_item_num_set, _elm_diskselector_display_item_num_set), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_display_item_num_get, _elm_diskselector_display_item_num_get), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_first_item_get, _elm_diskselector_first_item_get), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_items_get, _elm_diskselector_items_get), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_last_item_get, _elm_diskselector_last_item_get), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_selected_item_get, _elm_diskselector_selected_item_get), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_item_append, _elm_diskselector_item_append), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_clear, _elm_diskselector_clear), + EFL_OBJECT_OP_FUNC(efl_constructor, _elm_diskselector_efl_object_constructor), + EFL_OBJECT_OP_FUNC(efl_gfx_entity_position_set, _elm_diskselector_efl_gfx_entity_position_set), + EFL_OBJECT_OP_FUNC(efl_gfx_entity_size_set, _elm_diskselector_efl_gfx_entity_size_set), + EFL_OBJECT_OP_FUNC(efl_canvas_group_member_add, _elm_diskselector_efl_canvas_group_group_member_add), + EFL_OBJECT_OP_FUNC(efl_ui_widget_on_access_update, _elm_diskselector_efl_ui_widget_on_access_update), + EFL_OBJECT_OP_FUNC(efl_ui_widget_theme_apply, _elm_diskselector_efl_ui_widget_theme_apply), + EFL_OBJECT_OP_FUNC(efl_ui_focus_object_on_focus_update, _elm_diskselector_efl_ui_focus_object_on_focus_update), + EFL_OBJECT_OP_FUNC(efl_ui_l10n_translation_update, _elm_diskselector_efl_ui_l10n_translation_update), + EFL_OBJECT_OP_FUNC(efl_ui_widget_sub_object_del, _elm_diskselector_efl_ui_widget_widget_sub_object_del), + EFL_OBJECT_OP_FUNC(efl_ui_widget_input_event_handler, _elm_diskselector_efl_ui_widget_widget_input_event_handler), + EFL_OBJECT_OP_FUNC(elm_interface_scrollable_policy_set, _elm_diskselector_elm_interface_scrollable_policy_set), + EFL_OBJECT_OP_FUNC(elm_interface_scrollable_policy_get, _elm_diskselector_elm_interface_scrollable_policy_get), + EFL_OBJECT_OP_FUNC(efl_access_widget_action_elm_actions_get, _elm_diskselector_efl_access_widget_action_elm_actions_get), + ELM_DISKSELECTOR_EXTRA_OPS + ); + opsp = &ops; + + static const Efl_Object_Property_Reflection refl_table[] = { + {"side_text_max_length", __eolian_elm_diskselector_side_text_max_length_set_reflect, __eolian_elm_diskselector_side_text_max_length_get_reflect}, + {"round_enabled", __eolian_elm_diskselector_round_enabled_set_reflect, __eolian_elm_diskselector_round_enabled_get_reflect}, + {"display_item_num", __eolian_elm_diskselector_display_item_num_set_reflect, __eolian_elm_diskselector_display_item_num_get_reflect}, + }; + static const Efl_Object_Property_Reflection_Ops rops = { + refl_table, EINA_C_ARRAY_LENGTH(refl_table) + }; + ropsp = &rops; + + return efl_class_functions_set(klass, opsp, ropsp); +} + +static const Efl_Class_Description _elm_diskselector_class_desc = { + EO_VERSION, + "Elm.Diskselector", + EFL_CLASS_TYPE_REGULAR, + sizeof(Elm_Diskselector_Data), + _elm_diskselector_class_initializer, + _elm_diskselector_class_constructor, + NULL +}; + +EFL_DEFINE_CLASS(elm_diskselector_class_get, &_elm_diskselector_class_desc, EFL_UI_WIDGET_CLASS, ELM_INTERFACE_SCROLLABLE_MIXIN, EFL_ACCESS_WIDGET_ACTION_MIXIN, EFL_UI_CLICKABLE_INTERFACE, EFL_UI_SCROLLABLE_INTERFACE, EFL_UI_SELECTABLE_INTERFACE, EFL_UI_LEGACY_INTERFACE, NULL); + +#include "elm_diskselector_eo.legacy.c" diff --git a/src/lib/elementary/elm_diskselector_eo.h b/src/lib/elementary/elm_diskselector_eo.h new file mode 100644 index 0000000000..1c95bc125c --- /dev/null +++ b/src/lib/elementary/elm_diskselector_eo.h @@ -0,0 +1,232 @@ +#ifndef _ELM_DISKSELECTOR_EO_H_ +#define _ELM_DISKSELECTOR_EO_H_ + +#ifndef _ELM_DISKSELECTOR_EO_CLASS_TYPE +#define _ELM_DISKSELECTOR_EO_CLASS_TYPE + +typedef Eo Elm_Diskselector; + +#endif + +#ifndef _ELM_DISKSELECTOR_EO_TYPES +#define _ELM_DISKSELECTOR_EO_TYPES + + +#endif +/** Elementary diskselector class + * + * @ingroup Elm_Diskselector + */ +#define ELM_DISKSELECTOR_CLASS elm_diskselector_class_get() + +EWAPI const Efl_Class *elm_diskselector_class_get(void); + +/** + * @brief Set the side labels max length. + * + * Length is the number of characters of items' label that will be visible when + * it's set on side positions. It will just crop the string after defined size. + * E.g.: + * + * An item with label "January" would be displayed on side position as "Jan" if + * max length is set to 3, or "Janu", if this property is set to 4. + * + * When it's selected, the entire label will be displayed, except for width + * restrictions. In this case label will be cropped and "..." will be + * concatenated. + * + * Default side label max length is 3. + * + * This property will be applied over all items, included before or later this + * function call. + * + * @param[in] obj The object. + * @param[in] len The max length defined for side labels. + * + * @ingroup Elm_Diskselector + */ +EOAPI void elm_obj_diskselector_side_text_max_length_set(Eo *obj, int len); + +/** + * @brief Get the side labels max length. + * + * See also @ref elm_obj_diskselector_side_text_max_length_set for details. + * + * @param[in] obj The object. + * + * @return The max length defined for side labels. + * + * @ingroup Elm_Diskselector + */ +EOAPI int elm_obj_diskselector_side_text_max_length_get(const Eo *obj); + +/** + * @brief Enable or disable round mode. + * + * Disabled by default. If round mode is enabled the items list will work like + * a circular list, so when the user reaches the last item, the first one will + * popup. + * + * See also @ref elm_obj_diskselector_round_enabled_get. + * + * @param[in] obj The object. + * @param[in] enabled @c true to enable round mode or @c false to disable it. + * + * @ingroup Elm_Diskselector + */ +EOAPI void elm_obj_diskselector_round_enabled_set(Eo *obj, Eina_Bool enabled); + +/** + * @brief Get a value whether round mode is enabled or not. + * + * See also @ref elm_obj_diskselector_round_enabled_set for details. + * + * @param[in] obj The object. + * + * @return @c true to enable round mode or @c false to disable it. + * + * @ingroup Elm_Diskselector + */ +EOAPI Eina_Bool elm_obj_diskselector_round_enabled_get(const Eo *obj); + +/** + * @brief Set the number of items to be displayed. + * + * Default value is 3, and also it's the minimum. If @c num is less than 3, it + * will be set to 3. + * + * Also, it can be set on theme, using data item @c display_item_num on group + * "elm/diskselector/item/X", where X is style set. + * + * @param[in] obj The object. + * @param[in] num The number of items the diskselector will display. + * + * @ingroup Elm_Diskselector + */ +EOAPI void elm_obj_diskselector_display_item_num_set(Eo *obj, int num); + +/** + * @brief Get the number of items in the diskselector object. + * + * @param[in] obj The object. + * + * @return The number of items the diskselector will display. + * + * @ingroup Elm_Diskselector + */ +EOAPI int elm_obj_diskselector_display_item_num_get(const Eo *obj); + +/** + * @brief Get the first item of the diskselector. + * + * The list of items follows append order. So it will return the first item + * appended to the widget that wasn't deleted. + * + * See also @ref elm_obj_diskselector_item_append, + * @ref elm_obj_diskselector_items_get. + * + * @param[in] obj The object. + * + * @return The first item, or @c null if none. + * + * @ingroup Elm_Diskselector + */ +EOAPI Elm_Widget_Item *elm_obj_diskselector_first_item_get(const Eo *obj); + +/** + * @brief Get a list of all the diskselector items. + * + * See also @ref elm_obj_diskselector_item_append, @ref elm_object_item_del, + * @ref elm_obj_diskselector_clear. + * + * @param[in] obj The object. + * + * @return A @c list of diskselector items, or @c ull on failure. + * + * @ingroup Elm_Diskselector + */ +EOAPI const Eina_List *elm_obj_diskselector_items_get(const Eo *obj); + +/** + * @brief Get the last item of the diskselector. + * + * The list of items follows append order. So it will return last first item + * appended to the widget that wasn't deleted. + * + * See also @ref elm_obj_diskselector_item_append, + * @ref elm_obj_diskselector_items_get. + * + * @param[in] obj The object. + * + * @return The last item, or @c null if none. + * + * @ingroup Elm_Diskselector + */ +EOAPI Elm_Widget_Item *elm_obj_diskselector_last_item_get(const Eo *obj); + +/** + * @brief Get the selected item. + * + * The selected item can be unselected with + * @ref elm_obj_diskselector_item_selected_set, and the first item of + * diskselector will be selected. + * + * The selected item always will be centered on diskselector, with full label + * displayed, i.e., max length set to side labels won't apply on the selected + * item. More details on @ref elm_obj_diskselector_side_text_max_length_set. + * + * @param[in] obj The object. + * + * @return The selected diskselector item. + * + * @ingroup Elm_Diskselector + */ +EOAPI Elm_Widget_Item *elm_obj_diskselector_selected_item_get(const Eo *obj); + +/** + * @brief Appends a new item to the diskselector object. + * + * A new item will be created and appended to the diskselector, i.e., will be + * set as last item. Also, if there is no selected item, it will be selected. + * This will always happens for the first appended 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. + * + * Items created with this method can be deleted with @ref elm_object_item_del. + * + * Associated @c data can be properly freed when item is deleted if a callback + * function is set with @ref elm_object_item_del_cb_set. + * + * If a function is passed as argument, it will be called every time this item + * is selected, i.e., the user stops the diskselector with this item on center + * position. If such function isn't needed, just passing @c null as @c func is + * enough. The same should be done for @c data. + * + * See also @ref elm_object_item_del, @ref elm_obj_diskselector_clear, @ref + * elm_icon_add. + * + * @param[in] obj The object. + * @param[in] label The label of the diskselector item. + * @param[in] icon 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(). + * @param[in] func The function to call when the item is selected. + * @param[in] data The data to associate with the item for related callbacks. + * + * @return New item + * + * @ingroup Elm_Diskselector + */ +EOAPI Elm_Widget_Item *elm_obj_diskselector_item_append(Eo *obj, const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data); + +/** + * @brief Remove all diskselector's items. + * + * See also @ref elm_object_item_del, @ref elm_obj_diskselector_item_append. + * @param[in] obj The object. + * + * @ingroup Elm_Diskselector + */ +EOAPI void elm_obj_diskselector_clear(Eo *obj); + +#endif diff --git a/src/lib/elementary/elm_diskselector_eo.legacy.c b/src/lib/elementary/elm_diskselector_eo.legacy.c new file mode 100644 index 0000000000..eb4c1d92b9 --- /dev/null +++ b/src/lib/elementary/elm_diskselector_eo.legacy.c @@ -0,0 +1,72 @@ + +EAPI void +elm_diskselector_side_text_max_length_set(Elm_Diskselector *obj, int len) +{ + elm_obj_diskselector_side_text_max_length_set(obj, len); +} + +EAPI int +elm_diskselector_side_text_max_length_get(const Elm_Diskselector *obj) +{ + return elm_obj_diskselector_side_text_max_length_get(obj); +} + +EAPI void +elm_diskselector_round_enabled_set(Elm_Diskselector *obj, Eina_Bool enabled) +{ + elm_obj_diskselector_round_enabled_set(obj, enabled); +} + +EAPI Eina_Bool +elm_diskselector_round_enabled_get(const Elm_Diskselector *obj) +{ + return elm_obj_diskselector_round_enabled_get(obj); +} + +EAPI void +elm_diskselector_display_item_num_set(Elm_Diskselector *obj, int num) +{ + elm_obj_diskselector_display_item_num_set(obj, num); +} + +EAPI int +elm_diskselector_display_item_num_get(const Elm_Diskselector *obj) +{ + return elm_obj_diskselector_display_item_num_get(obj); +} + +EAPI Elm_Widget_Item * +elm_diskselector_first_item_get(const Elm_Diskselector *obj) +{ + return elm_obj_diskselector_first_item_get(obj); +} + +EAPI const Eina_List * +elm_diskselector_items_get(const Elm_Diskselector *obj) +{ + return elm_obj_diskselector_items_get(obj); +} + +EAPI Elm_Widget_Item * +elm_diskselector_last_item_get(const Elm_Diskselector *obj) +{ + return elm_obj_diskselector_last_item_get(obj); +} + +EAPI Elm_Widget_Item * +elm_diskselector_selected_item_get(const Elm_Diskselector *obj) +{ + return elm_obj_diskselector_selected_item_get(obj); +} + +EAPI Elm_Widget_Item * +elm_diskselector_item_append(Elm_Diskselector *obj, const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data) +{ + return elm_obj_diskselector_item_append(obj, label, icon, func, data); +} + +EAPI void +elm_diskselector_clear(Elm_Diskselector *obj) +{ + elm_obj_diskselector_clear(obj); +} diff --git a/src/lib/elementary/elm_diskselector_eo.legacy.h b/src/lib/elementary/elm_diskselector_eo.legacy.h new file mode 100644 index 0000000000..0f888488eb --- /dev/null +++ b/src/lib/elementary/elm_diskselector_eo.legacy.h @@ -0,0 +1,223 @@ +#ifndef _ELM_DISKSELECTOR_EO_LEGACY_H_ +#define _ELM_DISKSELECTOR_EO_LEGACY_H_ + +#ifndef _ELM_DISKSELECTOR_EO_CLASS_TYPE +#define _ELM_DISKSELECTOR_EO_CLASS_TYPE + +typedef Eo Elm_Diskselector; + +#endif + +#ifndef _ELM_DISKSELECTOR_EO_TYPES +#define _ELM_DISKSELECTOR_EO_TYPES + + +#endif + +/** + * @brief Set the side labels max length. + * + * Length is the number of characters of items' label that will be visible when + * it's set on side positions. It will just crop the string after defined size. + * E.g.: + * + * An item with label "January" would be displayed on side position as "Jan" if + * max length is set to 3, or "Janu", if this property is set to 4. + * + * When it's selected, the entire label will be displayed, except for width + * restrictions. In this case label will be cropped and "..." will be + * concatenated. + * + * Default side label max length is 3. + * + * This property will be applied over all items, included before or later this + * function call. + * + * @param[in] obj The object. + * @param[in] len The max length defined for side labels. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI void elm_diskselector_side_text_max_length_set(Elm_Diskselector *obj, int len); + +/** + * @brief Get the side labels max length. + * + * See also @ref elm_diskselector_side_text_max_length_set for details. + * + * @param[in] obj The object. + * + * @return The max length defined for side labels. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI int elm_diskselector_side_text_max_length_get(const Elm_Diskselector *obj); + +/** + * @brief Enable or disable round mode. + * + * Disabled by default. If round mode is enabled the items list will work like + * a circular list, so when the user reaches the last item, the first one will + * popup. + * + * See also @ref elm_diskselector_round_enabled_get. + * + * @param[in] obj The object. + * @param[in] enabled @c true to enable round mode or @c false to disable it. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI void elm_diskselector_round_enabled_set(Elm_Diskselector *obj, Eina_Bool enabled); + +/** + * @brief Get a value whether round mode is enabled or not. + * + * See also @ref elm_diskselector_round_enabled_set for details. + * + * @param[in] obj The object. + * + * @return @c true to enable round mode or @c false to disable it. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI Eina_Bool elm_diskselector_round_enabled_get(const Elm_Diskselector *obj); + +/** + * @brief Set the number of items to be displayed. + * + * Default value is 3, and also it's the minimum. If @c num is less than 3, it + * will be set to 3. + * + * Also, it can be set on theme, using data item @c display_item_num on group + * "elm/diskselector/item/X", where X is style set. + * + * @param[in] obj The object. + * @param[in] num The number of items the diskselector will display. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI void elm_diskselector_display_item_num_set(Elm_Diskselector *obj, int num); + +/** + * @brief Get the number of items in the diskselector object. + * + * @param[in] obj The object. + * + * @return The number of items the diskselector will display. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI int elm_diskselector_display_item_num_get(const Elm_Diskselector *obj); + +/** + * @brief Get the first item of the diskselector. + * + * The list of items follows append order. So it will return the first item + * appended to the widget that wasn't deleted. + * + * See also @ref elm_diskselector_item_append, @ref elm_diskselector_items_get. + * + * @param[in] obj The object. + * + * @return The first item, or @c null if none. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI Elm_Widget_Item *elm_diskselector_first_item_get(const Elm_Diskselector *obj); + +/** + * @brief Get a list of all the diskselector items. + * + * See also @ref elm_diskselector_item_append, @ref elm_object_item_del, + * @ref elm_diskselector_clear. + * + * @param[in] obj The object. + * + * @return A @c list of diskselector items, or @c ull on failure. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI const Eina_List *elm_diskselector_items_get(const Elm_Diskselector *obj); + +/** + * @brief Get the last item of the diskselector. + * + * The list of items follows append order. So it will return last first item + * appended to the widget that wasn't deleted. + * + * See also @ref elm_diskselector_item_append, @ref elm_diskselector_items_get. + * + * @param[in] obj The object. + * + * @return The last item, or @c null if none. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI Elm_Widget_Item *elm_diskselector_last_item_get(const Elm_Diskselector *obj); + +/** + * @brief Get the selected item. + * + * The selected item can be unselected with + * @ref elm_diskselector_item_selected_set, and the first item of diskselector + * will be selected. + * + * The selected item always will be centered on diskselector, with full label + * displayed, i.e., max length set to side labels won't apply on the selected + * item. More details on @ref elm_diskselector_side_text_max_length_set. + * + * @param[in] obj The object. + * + * @return The selected diskselector item. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI Elm_Widget_Item *elm_diskselector_selected_item_get(const Elm_Diskselector *obj); + +/** + * @brief Appends a new item to the diskselector object. + * + * A new item will be created and appended to the diskselector, i.e., will be + * set as last item. Also, if there is no selected item, it will be selected. + * This will always happens for the first appended 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. + * + * Items created with this method can be deleted with @ref elm_object_item_del. + * + * Associated @c data can be properly freed when item is deleted if a callback + * function is set with @ref elm_object_item_del_cb_set. + * + * If a function is passed as argument, it will be called every time this item + * is selected, i.e., the user stops the diskselector with this item on center + * position. If such function isn't needed, just passing @c null as @c func is + * enough. The same should be done for @c data. + * + * See also @ref elm_object_item_del, @ref elm_diskselector_clear, @ref + * elm_icon_add. + * + * @param[in] obj The object. + * @param[in] label The label of the diskselector item. + * @param[in] icon 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(). + * @param[in] func The function to call when the item is selected. + * @param[in] data The data to associate with the item for related callbacks. + * + * @return New item + * + * @ingroup Elm_Diskselector_Group + */ +EAPI Elm_Widget_Item *elm_diskselector_item_append(Elm_Diskselector *obj, const char *label, Efl_Canvas_Object *icon, Evas_Smart_Cb func, const void *data); + +/** + * @brief Remove all diskselector's items. + * + * See also @ref elm_object_item_del, @ref elm_diskselector_item_append. + * @param[in] obj The object. + * + * @ingroup Elm_Diskselector_Group + */ +EAPI void elm_diskselector_clear(Elm_Diskselector *obj); + +#endif diff --git a/src/lib/elementary/elm_diskselector_item.eo b/src/lib/elementary/elm_diskselector_item.eo deleted file mode 100644 index 7653061255..0000000000 --- a/src/lib/elementary/elm_diskselector_item.eo +++ /dev/null @@ -1,90 +0,0 @@ -class Elm.Diskselector.Item extends Elm.Widget.Item implements Efl.Ui.Legacy -{ - [[Elementary diskselector item class]] - legacy_prefix: elm_diskselector_item; - eo_prefix: elm_obj_diskselector_item; - methods { - @property prev { - get { - [[Get the item before $item in diskselector. - - The list of items follows append order. So it will return item appended - just before $item and that wasn't deleted. - - If it is the first item, $null will be returned. - First item can be get by \@ref elm_diskselector_first_item_get. - - See also \@ref elm_diskselector_item_append, - \@ref elm_diskselector_items_get. - ]] - } - values { - item: Elm.Widget.Item; [[The item before $item, or $null if none or on failure.]] - } - } - @property next { - get { - [[Get the item after $item in diskselector. - - The list of items follows append order. So it will return item appended - just after $item and that wasn't deleted. - - If it is the last item, $null will be returned. - Last item can be get by \@ref elm_diskselector_last_item_get. - - See also \@ref elm_diskselector_item_append, - \@ref elm_diskselector_items_get. - ]] - } - values { - item: Elm.Widget.Item; [[The item after $item, or $null if none or on failure.]] - } - } - @property selected { - get { - [[Get whether the $item is selected or not. - - See also \@ref elm_diskselector_selected_item_set for details, - \@ref elm_diskselector_item_selected_get. - ]] - } - set { - [[Set the selected state of an item. - - This sets the selected state of the given $item as $true, - for selected and $false for not selected. - - If a new item is selected the previously selected will be unselected. - Previously selected item can be get with function - \@ref elm_diskselector_selected_item_get. - - If the $item is unselected, the first item of diskselector will - be selected. - - Selected items will be visible on center position of diskselector. - So if it was on another position before selected, or was invisible, - diskselector will animate items until the selected item reaches center - position. - - See also \@ref elm_diskselector_item_selected_get, - \@ref elm_diskselector_selected_item_get. - ]] - } - values { - selected: bool; [[The selected state]] - } - } - /* init { FIXME - params { - Evas_Smart_Cb func; - const(void_ptr) data; - } - }*/ - } - implements { - Efl.Object.constructor; - Efl.Object.destructor; - Elm.Widget.Item.part_text { get; set; } - Elm.Widget.Item.part_content { get; set; } - } -} diff --git a/src/lib/elementary/elm_diskselector_item_eo.c b/src/lib/elementary/elm_diskselector_item_eo.c new file mode 100644 index 0000000000..806113c4c9 --- /dev/null +++ b/src/lib/elementary/elm_diskselector_item_eo.c @@ -0,0 +1,109 @@ + +Elm_Widget_Item *_elm_diskselector_item_prev_get(const Eo *obj, Elm_Diskselector_Item_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_item_prev_get, Elm_Widget_Item *, NULL); + +Elm_Widget_Item *_elm_diskselector_item_next_get(const Eo *obj, Elm_Diskselector_Item_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_item_next_get, Elm_Widget_Item *, NULL); + +void _elm_diskselector_item_selected_set(Eo *obj, Elm_Diskselector_Item_Data *pd, Eina_Bool selected); + + +static Eina_Error +__eolian_elm_diskselector_item_selected_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; Eina_Bool cval; + if (!eina_value_bool_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_diskselector_item_selected_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_diskselector_item_selected_set, EFL_FUNC_CALL(selected), Eina_Bool selected); + +Eina_Bool _elm_diskselector_item_selected_get(const Eo *obj, Elm_Diskselector_Item_Data *pd); + + +static Eina_Value +__eolian_elm_diskselector_item_selected_get_reflect(Eo *obj) +{ + Eina_Bool val = elm_obj_diskselector_item_selected_get(obj); + return eina_value_bool_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_diskselector_item_selected_get, Eina_Bool, 0); + +Efl_Object *_elm_diskselector_item_efl_object_constructor(Eo *obj, Elm_Diskselector_Item_Data *pd); + + +void _elm_diskselector_item_efl_object_destructor(Eo *obj, Elm_Diskselector_Item_Data *pd); + + +void _elm_diskselector_item_elm_widget_item_part_text_set(Eo *obj, Elm_Diskselector_Item_Data *pd, const char *part, const char *label); + + +const char *_elm_diskselector_item_elm_widget_item_part_text_get(const Eo *obj, Elm_Diskselector_Item_Data *pd, const char *part); + + +void _elm_diskselector_item_elm_widget_item_part_content_set(Eo *obj, Elm_Diskselector_Item_Data *pd, const char *part, Efl_Canvas_Object *content); + + +Efl_Canvas_Object *_elm_diskselector_item_elm_widget_item_part_content_get(const Eo *obj, Elm_Diskselector_Item_Data *pd, const char *part); + + +static Eina_Bool +_elm_diskselector_item_class_initializer(Efl_Class *klass) +{ + const Efl_Object_Ops *opsp = NULL; + + const Efl_Object_Property_Reflection_Ops *ropsp = NULL; + +#ifndef ELM_DISKSELECTOR_ITEM_EXTRA_OPS +#define ELM_DISKSELECTOR_ITEM_EXTRA_OPS +#endif + + EFL_OPS_DEFINE(ops, + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_item_prev_get, _elm_diskselector_item_prev_get), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_item_next_get, _elm_diskselector_item_next_get), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_item_selected_set, _elm_diskselector_item_selected_set), + EFL_OBJECT_OP_FUNC(elm_obj_diskselector_item_selected_get, _elm_diskselector_item_selected_get), + EFL_OBJECT_OP_FUNC(efl_constructor, _elm_diskselector_item_efl_object_constructor), + EFL_OBJECT_OP_FUNC(efl_destructor, _elm_diskselector_item_efl_object_destructor), + EFL_OBJECT_OP_FUNC(elm_wdg_item_part_text_set, _elm_diskselector_item_elm_widget_item_part_text_set), + EFL_OBJECT_OP_FUNC(elm_wdg_item_part_text_get, _elm_diskselector_item_elm_widget_item_part_text_get), + EFL_OBJECT_OP_FUNC(elm_wdg_item_part_content_set, _elm_diskselector_item_elm_widget_item_part_content_set), + EFL_OBJECT_OP_FUNC(elm_wdg_item_part_content_get, _elm_diskselector_item_elm_widget_item_part_content_get), + ELM_DISKSELECTOR_ITEM_EXTRA_OPS + ); + opsp = &ops; + + static const Efl_Object_Property_Reflection refl_table[] = { + {"selected", __eolian_elm_diskselector_item_selected_set_reflect, __eolian_elm_diskselector_item_selected_get_reflect}, + }; + static const Efl_Object_Property_Reflection_Ops rops = { + refl_table, EINA_C_ARRAY_LENGTH(refl_table) + }; + ropsp = &rops; + + return efl_class_functions_set(klass, opsp, ropsp); +} + +static const Efl_Class_Description _elm_diskselector_item_class_desc = { + EO_VERSION, + "Elm.Diskselector.Item", + EFL_CLASS_TYPE_REGULAR, + sizeof(Elm_Diskselector_Item_Data), + _elm_diskselector_item_class_initializer, + NULL, + NULL +}; + +EFL_DEFINE_CLASS(elm_diskselector_item_class_get, &_elm_diskselector_item_class_desc, ELM_WIDGET_ITEM_CLASS, EFL_UI_LEGACY_INTERFACE, NULL); + +#include "elm_diskselector_item_eo.legacy.c" diff --git a/src/lib/elementary/elm_diskselector_item_eo.h b/src/lib/elementary/elm_diskselector_item_eo.h new file mode 100644 index 0000000000..d322b4630a --- /dev/null +++ b/src/lib/elementary/elm_diskselector_item_eo.h @@ -0,0 +1,103 @@ +#ifndef _ELM_DISKSELECTOR_ITEM_EO_H_ +#define _ELM_DISKSELECTOR_ITEM_EO_H_ + +#ifndef _ELM_DISKSELECTOR_ITEM_EO_CLASS_TYPE +#define _ELM_DISKSELECTOR_ITEM_EO_CLASS_TYPE + +typedef Eo Elm_Diskselector_Item; + +#endif + +#ifndef _ELM_DISKSELECTOR_ITEM_EO_TYPES +#define _ELM_DISKSELECTOR_ITEM_EO_TYPES + + +#endif +/** Elementary diskselector item class + * + * @ingroup Elm_Diskselector_Item + */ +#define ELM_DISKSELECTOR_ITEM_CLASS elm_diskselector_item_class_get() + +EWAPI const Efl_Class *elm_diskselector_item_class_get(void); + +/** + * @brief Get the item before @c item in diskselector. + * + * The list of items follows append order. So it will return item appended just + * before @c item and that wasn't deleted. + * + * If it is the first item, @c null will be returned. First item can be get by + * @ref elm_diskselector_first_item_get. + * + * See also @ref elm_diskselector_item_append, @ref elm_diskselector_items_get. + * + * @param[in] obj The object. + * + * @return The item before @c item, or @c null if none or on failure. + * + * @ingroup Elm_Diskselector_Item + */ +EOAPI Elm_Widget_Item *elm_obj_diskselector_item_prev_get(const Eo *obj); + +/** + * @brief Get the item after @c item in diskselector. + * + * The list of items follows append order. So it will return item appended just + * after @c item and that wasn't deleted. + * + * If it is the last item, @c null will be returned. Last item can be get by + * @ref elm_diskselector_last_item_get. + * + * See also @ref elm_diskselector_item_append, @ref elm_diskselector_items_get. + * + * @param[in] obj The object. + * + * @return The item after @c item, or @c null if none or on failure. + * + * @ingroup Elm_Diskselector_Item + */ +EOAPI Elm_Widget_Item *elm_obj_diskselector_item_next_get(const Eo *obj); + +/** + * @brief Set the selected state of an item. + * + * This sets the selected state of the given @c item as @c true, for selected + * and @c false for not selected. + * + * If a new item is selected the previously selected will be unselected. + * Previously selected item can be get with function @ref + * elm_diskselector_selected_item_get. + * + * If the @c item is unselected, the first item of diskselector will be + * selected. + * + * Selected items will be visible on center position of diskselector. So if it + * was on another position before selected, or was invisible, diskselector will + * animate items until the selected item reaches center position. + * + * See also @ref elm_diskselector_item_selected_get, @ref + * elm_diskselector_selected_item_get. + * + * @param[in] obj The object. + * @param[in] selected The selected state + * + * @ingroup Elm_Diskselector_Item + */ +EOAPI void elm_obj_diskselector_item_selected_set(Eo *obj, Eina_Bool selected); + +/** + * @brief Get whether the @c item is selected or not. + * + * See also @ref elm_diskselector_selected_item_set for details, @ref + * elm_diskselector_item_selected_get. + * + * @param[in] obj The object. + * + * @return The selected state + * + * @ingroup Elm_Diskselector_Item + */ +EOAPI Eina_Bool elm_obj_diskselector_item_selected_get(const Eo *obj); + +#endif diff --git a/src/lib/elementary/elm_diskselector_item_eo.legacy.c b/src/lib/elementary/elm_diskselector_item_eo.legacy.c new file mode 100644 index 0000000000..f12cc63d8a --- /dev/null +++ b/src/lib/elementary/elm_diskselector_item_eo.legacy.c @@ -0,0 +1,24 @@ + +EAPI Elm_Widget_Item * +elm_diskselector_item_prev_get(const Elm_Diskselector_Item *obj) +{ + return elm_obj_diskselector_item_prev_get(obj); +} + +EAPI Elm_Widget_Item * +elm_diskselector_item_next_get(const Elm_Diskselector_Item *obj) +{ + return elm_obj_diskselector_item_next_get(obj); +} + +EAPI void +elm_diskselector_item_selected_set(Elm_Diskselector_Item *obj, Eina_Bool selected) +{ + elm_obj_diskselector_item_selected_set(obj, selected); +} + +EAPI Eina_Bool +elm_diskselector_item_selected_get(const Elm_Diskselector_Item *obj) +{ + return elm_obj_diskselector_item_selected_get(obj); +} diff --git a/src/lib/elementary/elm_diskselector_item_eo.legacy.h b/src/lib/elementary/elm_diskselector_item_eo.legacy.h new file mode 100644 index 0000000000..680cb58549 --- /dev/null +++ b/src/lib/elementary/elm_diskselector_item_eo.legacy.h @@ -0,0 +1,96 @@ +#ifndef _ELM_DISKSELECTOR_ITEM_EO_LEGACY_H_ +#define _ELM_DISKSELECTOR_ITEM_EO_LEGACY_H_ + +#ifndef _ELM_DISKSELECTOR_ITEM_EO_CLASS_TYPE +#define _ELM_DISKSELECTOR_ITEM_EO_CLASS_TYPE + +typedef Eo Elm_Diskselector_Item; + +#endif + +#ifndef _ELM_DISKSELECTOR_ITEM_EO_TYPES +#define _ELM_DISKSELECTOR_ITEM_EO_TYPES + + +#endif + +/** + * @brief Get the item before @c item in diskselector. + * + * The list of items follows append order. So it will return item appended just + * before @c item and that wasn't deleted. + * + * If it is the first item, @c null will be returned. First item can be get by + * @ref elm_diskselector_first_item_get. + * + * See also @ref elm_diskselector_item_append, @ref elm_diskselector_items_get. + * + * @param[in] obj The object. + * + * @return The item before @c item, or @c null if none or on failure. + * + * @ingroup Elm_Diskselector_Item_Group + */ +EAPI Elm_Widget_Item *elm_diskselector_item_prev_get(const Elm_Diskselector_Item *obj); + +/** + * @brief Get the item after @c item in diskselector. + * + * The list of items follows append order. So it will return item appended just + * after @c item and that wasn't deleted. + * + * If it is the last item, @c null will be returned. Last item can be get by + * @ref elm_diskselector_last_item_get. + * + * See also @ref elm_diskselector_item_append, @ref elm_diskselector_items_get. + * + * @param[in] obj The object. + * + * @return The item after @c item, or @c null if none or on failure. + * + * @ingroup Elm_Diskselector_Item_Group + */ +EAPI Elm_Widget_Item *elm_diskselector_item_next_get(const Elm_Diskselector_Item *obj); + +/** + * @brief Set the selected state of an item. + * + * This sets the selected state of the given @c item as @c true, for selected + * and @c false for not selected. + * + * If a new item is selected the previously selected will be unselected. + * Previously selected item can be get with function @ref + * elm_diskselector_selected_item_get. + * + * If the @c item is unselected, the first item of diskselector will be + * selected. + * + * Selected items will be visible on center position of diskselector. So if it + * was on another position before selected, or was invisible, diskselector will + * animate items until the selected item reaches center position. + * + * See also @ref elm_diskselector_item_selected_get, @ref + * elm_diskselector_selected_item_get. + * + * @param[in] obj The object. + * @param[in] selected The selected state + * + * @ingroup Elm_Diskselector_Item_Group + */ +EAPI void elm_diskselector_item_selected_set(Elm_Diskselector_Item *obj, Eina_Bool selected); + +/** + * @brief Get whether the @c item is selected or not. + * + * See also @ref elm_diskselector_selected_item_set for details, @ref + * elm_diskselector_item_selected_get. + * + * @param[in] obj The object. + * + * @return The selected state + * + * @ingroup Elm_Diskselector_Item_Group + */ +EAPI Eina_Bool elm_diskselector_item_selected_get(const Elm_Diskselector_Item *obj); + +#endif diff --git a/src/lib/elementary/elm_diskselector_legacy.h b/src/lib/elementary/elm_diskselector_legacy.h index 7ee5080a28..8f34c06332 100644 --- a/src/lib/elementary/elm_diskselector_legacy.h +++ b/src/lib/elementary/elm_diskselector_legacy.h @@ -11,5 +11,5 @@ */ EAPI Evas_Object *elm_diskselector_add(Evas_Object *parent); -#include "elm_diskselector_item.eo.legacy.h" -#include "elm_diskselector.eo.legacy.h" +#include "elm_diskselector_item_eo.legacy.h" +#include "elm_diskselector_eo.legacy.h" diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index ded37efddd..33a15ce816 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -52,8 +52,6 @@ pub_legacy_eo_files = [ 'elm_actionslider_part.eo', 'elm_bubble_part.eo', 'elm_fileselector_part.eo', - 'elm_diskselector.eo', - 'elm_diskselector_item.eo', 'elm_fileselector_button.eo', 'elm_fileselector_entry.eo', 'elm_flipselector.eo', @@ -738,6 +736,10 @@ elementary_pub_headers = [ 'elm_dayselector_eo.legacy.h', 'elm_dayselector_item_eo.h', 'elm_dayselector_item_eo.legacy.h', + 'elm_diskselector_eo.h', + 'elm_diskselector_eo.legacy.h', + 'elm_diskselector_item_eo.h', + 'elm_diskselector_item_eo.legacy.h', 'elm_hoversel_eo.h', 'elm_hoversel_eo.legacy.h', 'elm_hoversel_item_eo.h',