diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -187,7 +187,6 @@ elm_legacy_eolian_files = \ lib/elementary/efl_ui_clock_legacy.eo \ lib/elementary/elm_interface_fileselector.eo \ - lib/elementary/elm_dayselector.eo \ lib/elementary/elm_entry.eo \ lib/elementary/elm_fileselector.eo \ lib/elementary/elm_gengrid.eo \ @@ -214,7 +213,6 @@ lib/elementary/elm_sys_notify.eo \ lib/elementary/elm_sys_notify_dbus.eo \ lib/elementary/elm_systray.eo \ - lib/elementary/elm_dayselector_item.eo \ lib/elementary/elm_flipselector_item.eo \ lib/elementary/elm_menu_item.eo \ lib/elementary/elm_index_item.eo \ @@ -342,6 +340,9 @@ lib/elementary/elm_ctxpopup_eo.c \ lib/elementary/elm_ctxpopup_item_eo.legacy.c \ 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_hoversel_eo.c \ lib/elementary/elm_hoversel_item_eo.c \ lib/elementary/elm_hoversel_item_eo.legacy.c @@ -417,6 +418,10 @@ lib/elementary/elm_ctxpopup_eo.legacy.h \ lib/elementary/elm_ctxpopup_item_eo.h \ lib/elementary/elm_ctxpopup_item_eo.legacy.h \ +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_hoversel_eo.h \ lib/elementary/elm_hoversel_eo.legacy.h \ lib/elementary/elm_hoversel_item_eo.h \ diff --git a/src/lib/elementary/elm_dayselector.c b/src/lib/elementary/elm_dayselector.c --- a/src/lib/elementary/elm_dayselector.c +++ b/src/lib/elementary/elm_dayselector.c @@ -653,6 +653,6 @@ ELM_LAYOUT_SIZING_EVAL_OPS(elm_dayselector), \ EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_dayselector) -#include "elm_dayselector.eo.c" -#include "elm_dayselector_item.eo.c" +#include "elm_dayselector_eo.c" +#include "elm_dayselector_item_eo.c" diff --git a/src/lib/elementary/elm_dayselector.eo b/src/lib/elementary/elm_dayselector.eo deleted file mode 100644 --- a/src/lib/elementary/elm_dayselector.eo +++ /dev/null @@ -1,163 +0,0 @@ -enum Elm.Dayselector.Day -{ - [[Identifies the day of the week. API can call the selection/unselection - of day with this as a parameter. - - See also @Elm.Dayselector.day_selected_set, @Elm.Dayselector.day_selected_get. - ]] - - legacy: elm_dayselector; - sun = 0,[[Indicates Sunday.]] - mon, [[Indicates Monday.]] - tue, [[Indicates Tuesday.]] - wed, [[Indicates Wednesday.]] - thu, [[Indicates Thursday.]] - fri, [[Indicates Friday.]] - sat, [[Indicates Saturday.]] - max [[Sentinel value to indicate last enum field during iteration]] -} - -class Elm.Dayselector extends Efl.Ui.Layout_Base implements Efl.Ui.Legacy -{ - [[Elementary dayselector class]] - legacy_prefix: elm_dayselector; - eo_prefix: elm_obj_dayselector; - event_prefix: elm_dayselector; - methods { - @property week_start { - set { - [[Set the starting day of Dayselector. - - See also @Elm.Dayselector.Day, - @.week_start.get. - ]] - } - get { - [[Get the starting day of Dayselector. - - See also @Elm.Dayselector.Day, - @.week_start.set. - ]] - } - values { - day: Elm.Dayselector.Day; [[Dayselector_Day the first day that the user wants to display.]] - } - } - @property weekend_length { - set { - [[Set the weekend length of Dayselector. - - See also @.weekend_length.get. - ]] - } - get { - [[Get the weekend length of Dayselector. - - See also @Elm.Dayselector.Day, - @.weekend_length.set. - ]] - } - values { - length: uint; [[Weekend length, number of days as an integer.]] - } - } - @property weekend_start { - set { - [[Set the weekend starting day of Dayselector. - - See also @Elm.Dayselector.Day, - @.weekend_start.get. - ]] - } - get { - [[Get the weekend starting day of Dayselector. - - See also @Elm.Dayselector.Day, - @.weekend_start.set. - ]] - } - values { - day: Elm.Dayselector.Day; [[Dayselector_Day the first day from where weekend starts.]] - } - } - weekdays_names_set { - [[Set weekdays names to be displayed by the Dayselector. - - By default or if weekdays is $null, weekdays abbreviations get from system are displayed: - E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat" - - The first string should be related to Sunday, the second to Monday... - - See also @.weekdays_names_get, - @.weekend_start.set. - - @since 1.8 - ]] - /* FIXME-doc - * - * The usage should be like this: - * @code - * const char *weekdays[] = - * { - * "Sunday", "Monday", "Tuesday", "Wednesday", - * "Thursday", "Friday", "Saturday" - * }; - * elm_dayselector_wekdays_names_set(calendar, weekdays); - * @endcode - */ - - params { - @in weekdays: legacy(ptr(string)) @nullable; [[Array of seven strings to be used as weekday names. - Warning: It must have 7 elements, or it will access invalid memory. - Warning: The strings must be NULL terminated ('@\0').]] - } - } - weekdays_names_get @const { - [[Get weekdays names displayed by the calendar. - - By default, weekdays abbreviations get from system are displayed: - E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat" - The first string is related to Sunday, the second to Monday... - - See also @.weekdays_names_set. - - @since 1.8 - ]] - return: list @owned @warn_unused; [[A list of seven strings to be used as weekday names.]] - } - day_selected_set { - [[Set the state of given Dayselector_Day. - - See also @Elm.Dayselector.Day, - @.day_selected_get. - ]] - params { - @in day: Elm.Dayselector.Day; [[Dayselector_Day that the user want to set state.]] - @in selected: bool; [[State of the day. $true is selected.]] - } - } - day_selected_get @const { - [[Get the state of given Dayselector_Day. - - See also @Elm.Dayselector.Day, - @.day_selected_set. - ]] - return: bool; [[$true on success, $false on failure]] - params { - @in day: Elm.Dayselector.Day; [[Dayselector_Day that the user want to know state.]] - } - } - } - implements { - class.constructor; - Efl.Object.constructor; - Efl.Ui.Widget.theme_apply; - Efl.Ui.L10n.translation_update; - Efl.Part.part_get; - } - events { - /* FIXME: Nobody emits this - dayselector,changed; [[Called when dayselector widget changed]] - */ - } -} diff --git a/src/lib/elementary/elm_dayselector_eo.h b/src/lib/elementary/elm_dayselector_eo.h new file mode 100644 --- /dev/null +++ b/src/lib/elementary/elm_dayselector_eo.h @@ -0,0 +1,194 @@ +#ifndef _ELM_DAYSELECTOR_EO_H_ +#define _ELM_DAYSELECTOR_EO_H_ + +#ifndef _ELM_DAYSELECTOR_EO_CLASS_TYPE +#define _ELM_DAYSELECTOR_EO_CLASS_TYPE + +typedef Eo Elm_Dayselector; + +#endif + +#ifndef _ELM_DAYSELECTOR_EO_TYPES +#define _ELM_DAYSELECTOR_EO_TYPES + +/** + * @brief Identifies the day of the week. API can call the + * selection/unselection of day with this as a parameter. + * + * See also @ref elm_obj_dayselector_day_selected_set, + * @ref elm_obj_dayselector_day_selected_get. + * + * @ingroup Elm_Dayselector + */ +typedef enum +{ + ELM_DAYSELECTOR_SUN = 0, /**< Indicates Sunday. */ + ELM_DAYSELECTOR_MON, /**< Indicates Monday. */ + ELM_DAYSELECTOR_TUE, /**< Indicates Tuesday. */ + ELM_DAYSELECTOR_WED, /**< Indicates Wednesday. */ + ELM_DAYSELECTOR_THU, /**< Indicates Thursday. */ + ELM_DAYSELECTOR_FRI, /**< Indicates Friday. */ + ELM_DAYSELECTOR_SAT, /**< Indicates Saturday. */ + ELM_DAYSELECTOR_MAX /**< Sentinel value to indicate last enum field during + * iteration */ +} Elm_Dayselector_Day; + + +#endif +/** Elementary dayselector class + * + * @ingroup Elm_Dayselector + */ +#define ELM_DAYSELECTOR_CLASS elm_dayselector_class_get() + +EWAPI const Efl_Class *elm_dayselector_class_get(void); + +/** + * @brief Set the starting day of Dayselector. + * + * See also @ref Elm_Dayselector_Day, @ref elm_obj_dayselector_week_start_get. + * + * @param[in] obj The object. + * @param[in] day Dayselector_Day the first day that the user wants to display. + * + * @ingroup Elm_Dayselector + */ +EOAPI void elm_obj_dayselector_week_start_set(Eo *obj, Elm_Dayselector_Day day); + +/** + * @brief Get the starting day of Dayselector. + * + * See also @ref Elm_Dayselector_Day, @ref elm_obj_dayselector_week_start_set. + * + * @param[in] obj The object. + * + * @return Dayselector_Day the first day that the user wants to display. + * + * @ingroup Elm_Dayselector + */ +EOAPI Elm_Dayselector_Day elm_obj_dayselector_week_start_get(const Eo *obj); + +/** + * @brief Set the weekend length of Dayselector. + * + * See also @ref elm_obj_dayselector_weekend_length_get. + * + * @param[in] obj The object. + * @param[in] length Weekend length, number of days as an integer. + * + * @ingroup Elm_Dayselector + */ +EOAPI void elm_obj_dayselector_weekend_length_set(Eo *obj, unsigned int length); + +/** + * @brief Get the weekend length of Dayselector. + * + * See also @ref Elm_Dayselector_Day, + * @ref elm_obj_dayselector_weekend_length_set. + * + * @param[in] obj The object. + * + * @return Weekend length, number of days as an integer. + * + * @ingroup Elm_Dayselector + */ +EOAPI unsigned int elm_obj_dayselector_weekend_length_get(const Eo *obj); + +/** + * @brief Set the weekend starting day of Dayselector. + * + * See also @ref Elm_Dayselector_Day, + * @ref elm_obj_dayselector_weekend_start_get. + * + * @param[in] obj The object. + * @param[in] day Dayselector_Day the first day from where weekend starts. + * + * @ingroup Elm_Dayselector + */ +EOAPI void elm_obj_dayselector_weekend_start_set(Eo *obj, Elm_Dayselector_Day day); + +/** + * @brief Get the weekend starting day of Dayselector. + * + * See also @ref Elm_Dayselector_Day, + * @ref elm_obj_dayselector_weekend_start_set. + * + * @param[in] obj The object. + * + * @return Dayselector_Day the first day from where weekend starts. + * + * @ingroup Elm_Dayselector + */ +EOAPI Elm_Dayselector_Day elm_obj_dayselector_weekend_start_get(const Eo *obj); + +/** + * @brief Set weekdays names to be displayed by the Dayselector. + * + * By default or if weekdays is @c null, weekdays abbreviations get from system + * are displayed: E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat" + * + * The first string should be related to Sunday, the second to Monday... + * + * See also @ref elm_obj_dayselector_weekdays_names_get, + * @ref elm_obj_dayselector_weekend_start_set. + * + * @param[in] obj The object. + * @param[in] weekdays Array of seven strings to be used as weekday names. + * Warning: It must have 7 elements, or it will access invalid memory. Warning: + * The strings must be NULL terminated ('@\0'). + * + * @since 1.8 + * + * @ingroup Elm_Dayselector + */ +EOAPI void elm_obj_dayselector_weekdays_names_set(Eo *obj, const char **weekdays); + +/** + * @brief Get weekdays names displayed by the calendar. + * + * By default, weekdays abbreviations get from system are displayed: E.g. for + * an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat" The first string is + * related to Sunday, the second to Monday... + * + * See also @ref elm_obj_dayselector_weekdays_names_set. + * + * @param[in] obj The object. + * + * @return A list of seven strings to be used as weekday names. + * + * @since 1.8 + * + * @ingroup Elm_Dayselector + */ +EOAPI Eina_List *elm_obj_dayselector_weekdays_names_get(const Eo *obj) EINA_WARN_UNUSED_RESULT; + +/** + * @brief Set the state of given Dayselector_Day. + * + * See also @ref Elm_Dayselector_Day, + * @ref elm_obj_dayselector_day_selected_get. + * + * @param[in] obj The object. + * @param[in] day Dayselector_Day that the user want to set state. + * @param[in] selected State of the day. @c true is selected. + * + * @ingroup Elm_Dayselector + */ +EOAPI void elm_obj_dayselector_day_selected_set(Eo *obj, Elm_Dayselector_Day day, Eina_Bool selected); + +/** + * @brief Get the state of given Dayselector_Day. + * + * See also @ref Elm_Dayselector_Day, + * @ref elm_obj_dayselector_day_selected_set. + * + * @param[in] obj The object. + * @param[in] day Dayselector_Day that the user want to know state. + * + * @return @c true on success, @c false on failure + * + * @ingroup Elm_Dayselector + */ +EOAPI Eina_Bool elm_obj_dayselector_day_selected_get(const Eo *obj, Elm_Dayselector_Day day); + +#endif diff --git a/src/lib/elementary/elm_dayselector_eo.c b/src/lib/elementary/elm_dayselector_eo.c new file mode 100644 --- /dev/null +++ b/src/lib/elementary/elm_dayselector_eo.c @@ -0,0 +1,131 @@ + +void _elm_dayselector_week_start_set(Eo *obj, Elm_Dayselector_Data *pd, Elm_Dayselector_Day day); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_dayselector_week_start_set, EFL_FUNC_CALL(day), Elm_Dayselector_Day day); + +Elm_Dayselector_Day _elm_dayselector_week_start_get(const Eo *obj, Elm_Dayselector_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_dayselector_week_start_get, Elm_Dayselector_Day, 0); + +void _elm_dayselector_weekend_length_set(Eo *obj, Elm_Dayselector_Data *pd, unsigned int length); + + +static Eina_Error +__eolian_elm_dayselector_weekend_length_set_reflect(Eo *obj, Eina_Value val) +{ + Eina_Error r = 0; unsigned int cval; + if (!eina_value_uint_convert(&val, &cval)) + { + r = EINA_ERROR_VALUE_FAILED; + goto end; + } + elm_obj_dayselector_weekend_length_set(obj, cval); + end: + eina_value_flush(&val); + return r; +} + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_dayselector_weekend_length_set, EFL_FUNC_CALL(length), unsigned int length); + +unsigned int _elm_dayselector_weekend_length_get(const Eo *obj, Elm_Dayselector_Data *pd); + + +static Eina_Value +__eolian_elm_dayselector_weekend_length_get_reflect(Eo *obj) +{ + unsigned int val = elm_obj_dayselector_weekend_length_get(obj); + return eina_value_uint_init(val); +} + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_dayselector_weekend_length_get, unsigned int, 0); + +void _elm_dayselector_weekend_start_set(Eo *obj, Elm_Dayselector_Data *pd, Elm_Dayselector_Day day); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_dayselector_weekend_start_set, EFL_FUNC_CALL(day), Elm_Dayselector_Day day); + +Elm_Dayselector_Day _elm_dayselector_weekend_start_get(const Eo *obj, Elm_Dayselector_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_dayselector_weekend_start_get, Elm_Dayselector_Day, 0); + +void _elm_dayselector_weekdays_names_set(Eo *obj, Elm_Dayselector_Data *pd, const char **weekdays); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_dayselector_weekdays_names_set, EFL_FUNC_CALL(weekdays), const char **weekdays); + +Eina_List *_elm_dayselector_weekdays_names_get(const Eo *obj, Elm_Dayselector_Data *pd); + +EOAPI EFL_FUNC_BODY_CONST(elm_obj_dayselector_weekdays_names_get, Eina_List *, NULL); + +void _elm_dayselector_day_selected_set(Eo *obj, Elm_Dayselector_Data *pd, Elm_Dayselector_Day day, Eina_Bool selected); + +EOAPI EFL_VOID_FUNC_BODYV(elm_obj_dayselector_day_selected_set, EFL_FUNC_CALL(day, selected), Elm_Dayselector_Day day, Eina_Bool selected); + +Eina_Bool _elm_dayselector_day_selected_get(const Eo *obj, Elm_Dayselector_Data *pd, Elm_Dayselector_Day day); + +EOAPI EFL_FUNC_BODYV_CONST(elm_obj_dayselector_day_selected_get, Eina_Bool, 0, EFL_FUNC_CALL(day), Elm_Dayselector_Day day); + +Efl_Object *_elm_dayselector_efl_object_constructor(Eo *obj, Elm_Dayselector_Data *pd); + + +Eina_Error _elm_dayselector_efl_ui_widget_theme_apply(Eo *obj, Elm_Dayselector_Data *pd); + + +void _elm_dayselector_efl_ui_l10n_translation_update(Eo *obj, Elm_Dayselector_Data *pd); + + +Efl_Object *_elm_dayselector_efl_part_part_get(const Eo *obj, Elm_Dayselector_Data *pd, const char *name); + + +static Eina_Bool +_elm_dayselector_class_initializer(Efl_Class *klass) +{ + const Efl_Object_Ops *opsp = NULL; + + const Efl_Object_Property_Reflection_Ops *ropsp = NULL; + +#ifndef ELM_DAYSELECTOR_EXTRA_OPS +#define ELM_DAYSELECTOR_EXTRA_OPS +#endif + + EFL_OPS_DEFINE(ops, + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_week_start_set, _elm_dayselector_week_start_set), + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_week_start_get, _elm_dayselector_week_start_get), + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_weekend_length_set, _elm_dayselector_weekend_length_set), + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_weekend_length_get, _elm_dayselector_weekend_length_get), + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_weekend_start_set, _elm_dayselector_weekend_start_set), + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_weekend_start_get, _elm_dayselector_weekend_start_get), + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_weekdays_names_set, _elm_dayselector_weekdays_names_set), + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_weekdays_names_get, _elm_dayselector_weekdays_names_get), + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_day_selected_set, _elm_dayselector_day_selected_set), + EFL_OBJECT_OP_FUNC(elm_obj_dayselector_day_selected_get, _elm_dayselector_day_selected_get), + EFL_OBJECT_OP_FUNC(efl_constructor, _elm_dayselector_efl_object_constructor), + EFL_OBJECT_OP_FUNC(efl_ui_widget_theme_apply, _elm_dayselector_efl_ui_widget_theme_apply), + EFL_OBJECT_OP_FUNC(efl_ui_l10n_translation_update, _elm_dayselector_efl_ui_l10n_translation_update), + EFL_OBJECT_OP_FUNC(efl_part_get, _elm_dayselector_efl_part_part_get), + ELM_DAYSELECTOR_EXTRA_OPS + ); + opsp = &ops; + + static const Efl_Object_Property_Reflection refl_table[] = { + {"weekend_length", __eolian_elm_dayselector_weekend_length_set_reflect, __eolian_elm_dayselector_weekend_length_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_dayselector_class_desc = { + EO_VERSION, + "Elm.Dayselector", + EFL_CLASS_TYPE_REGULAR, + sizeof(Elm_Dayselector_Data), + _elm_dayselector_class_initializer, + _elm_dayselector_class_constructor, + NULL +}; + +EFL_DEFINE_CLASS(elm_dayselector_class_get, &_elm_dayselector_class_desc, EFL_UI_LAYOUT_BASE_CLASS, EFL_UI_LEGACY_INTERFACE, NULL); + +#include "elm_dayselector_eo.legacy.c" diff --git a/src/lib/elementary/elm_dayselector_eo.legacy.h b/src/lib/elementary/elm_dayselector_eo.legacy.h new file mode 100644 --- /dev/null +++ b/src/lib/elementary/elm_dayselector_eo.legacy.h @@ -0,0 +1,182 @@ +#ifndef _ELM_DAYSELECTOR_EO_LEGACY_H_ +#define _ELM_DAYSELECTOR_EO_LEGACY_H_ + +#ifndef _ELM_DAYSELECTOR_EO_CLASS_TYPE +#define _ELM_DAYSELECTOR_EO_CLASS_TYPE + +typedef Eo Elm_Dayselector; + +#endif + +#ifndef _ELM_DAYSELECTOR_EO_TYPES +#define _ELM_DAYSELECTOR_EO_TYPES + +/** + * @brief Identifies the day of the week. API can call the + * selection/unselection of day with this as a parameter. + * + * See also @ref elm_dayselector_day_selected_set, + * @ref elm_dayselector_day_selected_get. + * + * @ingroup Elm_Dayselector + */ +typedef enum +{ + ELM_DAYSELECTOR_SUN = 0, /**< Indicates Sunday. */ + ELM_DAYSELECTOR_MON, /**< Indicates Monday. */ + ELM_DAYSELECTOR_TUE, /**< Indicates Tuesday. */ + ELM_DAYSELECTOR_WED, /**< Indicates Wednesday. */ + ELM_DAYSELECTOR_THU, /**< Indicates Thursday. */ + ELM_DAYSELECTOR_FRI, /**< Indicates Friday. */ + ELM_DAYSELECTOR_SAT, /**< Indicates Saturday. */ + ELM_DAYSELECTOR_MAX /**< Sentinel value to indicate last enum field during + * iteration */ +} Elm_Dayselector_Day; + + +#endif + +/** + * @brief Set the starting day of Dayselector. + * + * See also @ref Elm_Dayselector_Day, @ref elm_dayselector_week_start_get. + * + * @param[in] obj The object. + * @param[in] day Dayselector_Day the first day that the user wants to display. + * + * @ingroup Elm_Dayselector_Group + */ +EAPI void elm_dayselector_week_start_set(Elm_Dayselector *obj, Elm_Dayselector_Day day); + +/** + * @brief Get the starting day of Dayselector. + * + * See also @ref Elm_Dayselector_Day, @ref elm_dayselector_week_start_set. + * + * @param[in] obj The object. + * + * @return Dayselector_Day the first day that the user wants to display. + * + * @ingroup Elm_Dayselector_Group + */ +EAPI Elm_Dayselector_Day elm_dayselector_week_start_get(const Elm_Dayselector *obj); + +/** + * @brief Set the weekend length of Dayselector. + * + * See also @ref elm_dayselector_weekend_length_get. + * + * @param[in] obj The object. + * @param[in] length Weekend length, number of days as an integer. + * + * @ingroup Elm_Dayselector_Group + */ +EAPI void elm_dayselector_weekend_length_set(Elm_Dayselector *obj, unsigned int length); + +/** + * @brief Get the weekend length of Dayselector. + * + * See also @ref Elm_Dayselector_Day, @ref elm_dayselector_weekend_length_set. + * + * @param[in] obj The object. + * + * @return Weekend length, number of days as an integer. + * + * @ingroup Elm_Dayselector_Group + */ +EAPI unsigned int elm_dayselector_weekend_length_get(const Elm_Dayselector *obj); + +/** + * @brief Set the weekend starting day of Dayselector. + * + * See also @ref Elm_Dayselector_Day, @ref elm_dayselector_weekend_start_get. + * + * @param[in] obj The object. + * @param[in] day Dayselector_Day the first day from where weekend starts. + * + * @ingroup Elm_Dayselector_Group + */ +EAPI void elm_dayselector_weekend_start_set(Elm_Dayselector *obj, Elm_Dayselector_Day day); + +/** + * @brief Get the weekend starting day of Dayselector. + * + * See also @ref Elm_Dayselector_Day, @ref elm_dayselector_weekend_start_set. + * + * @param[in] obj The object. + * + * @return Dayselector_Day the first day from where weekend starts. + * + * @ingroup Elm_Dayselector_Group + */ +EAPI Elm_Dayselector_Day elm_dayselector_weekend_start_get(const Elm_Dayselector *obj); + +/** + * @brief Set weekdays names to be displayed by the Dayselector. + * + * By default or if weekdays is @c null, weekdays abbreviations get from system + * are displayed: E.g. for an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat" + * + * The first string should be related to Sunday, the second to Monday... + * + * See also @ref elm_dayselector_weekdays_names_get, + * @ref elm_dayselector_weekend_start_set. + * + * @param[in] obj The object. + * @param[in] weekdays Array of seven strings to be used as weekday names. + * Warning: It must have 7 elements, or it will access invalid memory. Warning: + * The strings must be NULL terminated ('@\0'). + * + * @since 1.8 + * + * @ingroup Elm_Dayselector_Group + */ +EAPI void elm_dayselector_weekdays_names_set(Elm_Dayselector *obj, const char **weekdays); + +/** + * @brief Get weekdays names displayed by the calendar. + * + * By default, weekdays abbreviations get from system are displayed: E.g. for + * an en_US locale: "Sun, Mon, Tue, Wed, Thu, Fri, Sat" The first string is + * related to Sunday, the second to Monday... + * + * See also @ref elm_dayselector_weekdays_names_set. + * + * @param[in] obj The object. + * + * @return A list of seven strings to be used as weekday names. + * + * @since 1.8 + * + * @ingroup Elm_Dayselector_Group + */ +EAPI Eina_List *elm_dayselector_weekdays_names_get(const Elm_Dayselector *obj) EINA_WARN_UNUSED_RESULT; + +/** + * @brief Set the state of given Dayselector_Day. + * + * See also @ref Elm_Dayselector_Day, @ref elm_dayselector_day_selected_get. + * + * @param[in] obj The object. + * @param[in] day Dayselector_Day that the user want to set state. + * @param[in] selected State of the day. @c true is selected. + * + * @ingroup Elm_Dayselector_Group + */ +EAPI void elm_dayselector_day_selected_set(Elm_Dayselector *obj, Elm_Dayselector_Day day, Eina_Bool selected); + +/** + * @brief Get the state of given Dayselector_Day. + * + * See also @ref Elm_Dayselector_Day, @ref elm_dayselector_day_selected_set. + * + * @param[in] obj The object. + * @param[in] day Dayselector_Day that the user want to know state. + * + * @return @c true on success, @c false on failure + * + * @ingroup Elm_Dayselector_Group + */ +EAPI Eina_Bool elm_dayselector_day_selected_get(const Elm_Dayselector *obj, Elm_Dayselector_Day day); + +#endif diff --git a/src/lib/elementary/elm_dayselector_eo.legacy.c b/src/lib/elementary/elm_dayselector_eo.legacy.c new file mode 100644 --- /dev/null +++ b/src/lib/elementary/elm_dayselector_eo.legacy.c @@ -0,0 +1,60 @@ + +EAPI void +elm_dayselector_week_start_set(Elm_Dayselector *obj, Elm_Dayselector_Day day) +{ + elm_obj_dayselector_week_start_set(obj, day); +} + +EAPI Elm_Dayselector_Day +elm_dayselector_week_start_get(const Elm_Dayselector *obj) +{ + return elm_obj_dayselector_week_start_get(obj); +} + +EAPI void +elm_dayselector_weekend_length_set(Elm_Dayselector *obj, unsigned int length) +{ + elm_obj_dayselector_weekend_length_set(obj, length); +} + +EAPI unsigned int +elm_dayselector_weekend_length_get(const Elm_Dayselector *obj) +{ + return elm_obj_dayselector_weekend_length_get(obj); +} + +EAPI void +elm_dayselector_weekend_start_set(Elm_Dayselector *obj, Elm_Dayselector_Day day) +{ + elm_obj_dayselector_weekend_start_set(obj, day); +} + +EAPI Elm_Dayselector_Day +elm_dayselector_weekend_start_get(const Elm_Dayselector *obj) +{ + return elm_obj_dayselector_weekend_start_get(obj); +} + +EAPI void +elm_dayselector_weekdays_names_set(Elm_Dayselector *obj, const char **weekdays) +{ + elm_obj_dayselector_weekdays_names_set(obj, weekdays); +} + +EAPI Eina_List * +elm_dayselector_weekdays_names_get(const Elm_Dayselector *obj) +{ + return elm_obj_dayselector_weekdays_names_get(obj); +} + +EAPI void +elm_dayselector_day_selected_set(Elm_Dayselector *obj, Elm_Dayselector_Day day, Eina_Bool selected) +{ + elm_obj_dayselector_day_selected_set(obj, day, selected); +} + +EAPI Eina_Bool +elm_dayselector_day_selected_get(const Elm_Dayselector *obj, Elm_Dayselector_Day day) +{ + return elm_obj_dayselector_day_selected_get(obj, day); +} diff --git a/src/lib/elementary/elm_dayselector_item.eo b/src/lib/elementary/elm_dayselector_item.eo deleted file mode 100644 --- a/src/lib/elementary/elm_dayselector_item.eo +++ /dev/null @@ -1,8 +0,0 @@ -class Elm.Dayselector.Item extends Elm.Widget.Item -{ - [[Elementary dayselector item class]] - eo_prefix: elm_dayselector_item; - implements { - Efl.Object.constructor; - } -} diff --git a/src/lib/elementary/elm_dayselector_item_eo.h b/src/lib/elementary/elm_dayselector_item_eo.h new file mode 100644 --- /dev/null +++ b/src/lib/elementary/elm_dayselector_item_eo.h @@ -0,0 +1,24 @@ +#ifndef _ELM_DAYSELECTOR_ITEM_EO_H_ +#define _ELM_DAYSELECTOR_ITEM_EO_H_ + +#ifndef _ELM_DAYSELECTOR_ITEM_EO_CLASS_TYPE +#define _ELM_DAYSELECTOR_ITEM_EO_CLASS_TYPE + +typedef Eo Elm_Dayselector_Item; + +#endif + +#ifndef _ELM_DAYSELECTOR_ITEM_EO_TYPES +#define _ELM_DAYSELECTOR_ITEM_EO_TYPES + + +#endif +/** Elementary dayselector item class + * + * @ingroup Elm_Dayselector_Item + */ +#define ELM_DAYSELECTOR_ITEM_CLASS elm_dayselector_item_class_get() + +EWAPI const Efl_Class *elm_dayselector_item_class_get(void); + +#endif diff --git a/src/lib/elementary/elm_dayselector_item_eo.c b/src/lib/elementary/elm_dayselector_item_eo.c new file mode 100644 --- /dev/null +++ b/src/lib/elementary/elm_dayselector_item_eo.c @@ -0,0 +1,35 @@ + +Efl_Object *_elm_dayselector_item_efl_object_constructor(Eo *obj, Elm_Dayselector_Item_Data *pd); + + +static Eina_Bool +_elm_dayselector_item_class_initializer(Efl_Class *klass) +{ + const Efl_Object_Ops *opsp = NULL; + + const Efl_Object_Property_Reflection_Ops *ropsp = NULL; + +#ifndef ELM_DAYSELECTOR_ITEM_EXTRA_OPS +#define ELM_DAYSELECTOR_ITEM_EXTRA_OPS +#endif + + EFL_OPS_DEFINE(ops, + EFL_OBJECT_OP_FUNC(efl_constructor, _elm_dayselector_item_efl_object_constructor), + ELM_DAYSELECTOR_ITEM_EXTRA_OPS + ); + opsp = &ops; + + return efl_class_functions_set(klass, opsp, ropsp); +} + +static const Efl_Class_Description _elm_dayselector_item_class_desc = { + EO_VERSION, + "Elm.Dayselector.Item", + EFL_CLASS_TYPE_REGULAR, + sizeof(Elm_Dayselector_Item_Data), + _elm_dayselector_item_class_initializer, + NULL, + NULL +}; + +EFL_DEFINE_CLASS(elm_dayselector_item_class_get, &_elm_dayselector_item_class_desc, ELM_WIDGET_ITEM_CLASS, NULL); diff --git a/src/lib/elementary/elm_dayselector_item_eo.legacy.h b/src/lib/elementary/elm_dayselector_item_eo.legacy.h new file mode 100644 --- /dev/null +++ b/src/lib/elementary/elm_dayselector_item_eo.legacy.h @@ -0,0 +1,17 @@ +#ifndef _ELM_DAYSELECTOR_ITEM_EO_LEGACY_H_ +#define _ELM_DAYSELECTOR_ITEM_EO_LEGACY_H_ + +#ifndef _ELM_DAYSELECTOR_ITEM_EO_CLASS_TYPE +#define _ELM_DAYSELECTOR_ITEM_EO_CLASS_TYPE + +typedef Eo Elm_Dayselector_Item; + +#endif + +#ifndef _ELM_DAYSELECTOR_ITEM_EO_TYPES +#define _ELM_DAYSELECTOR_ITEM_EO_TYPES + + +#endif + +#endif diff --git a/src/lib/elementary/elm_dayselector_legacy.h b/src/lib/elementary/elm_dayselector_legacy.h --- a/src/lib/elementary/elm_dayselector_legacy.h +++ b/src/lib/elementary/elm_dayselector_legacy.h @@ -8,4 +8,4 @@ */ EAPI Evas_Object *elm_dayselector_add(Evas_Object *parent); -#include "elm_dayselector.eo.legacy.h" +#include "elm_dayselector_eo.legacy.h" diff --git a/src/lib/elementary/elm_widget_dayselector.h b/src/lib/elementary/elm_widget_dayselector.h --- a/src/lib/elementary/elm_widget_dayselector.h +++ b/src/lib/elementary/elm_widget_dayselector.h @@ -2,8 +2,8 @@ #define ELM_WIDGET_DAYSELECTOR_H #include "Elementary.h" -#include "elm_dayselector_item.eo.h" -#include "elm_dayselector.eo.h" +#include "elm_dayselector_item_eo.h" +#include "elm_dayselector_eo.h" /* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -1,7 +1,6 @@ pub_legacy_eo_files = [ 'efl_ui_clock_legacy.eo', 'elm_interface_fileselector.eo', - 'elm_dayselector.eo', 'elm_entry.eo', 'elm_fileselector.eo', 'elm_gengrid.eo', @@ -28,7 +27,6 @@ 'elm_sys_notify.eo', 'elm_sys_notify_dbus.eo', 'elm_systray.eo', - 'elm_dayselector_item.eo', 'elm_flipselector_item.eo', 'elm_menu_item.eo', 'elm_index_item.eo', @@ -736,6 +734,10 @@ 'elm_ctxpopup_eo.legacy.h', 'elm_ctxpopup_item_eo.h', 'elm_ctxpopup_item_eo.legacy.h', + 'elm_dayselector_eo.h', + 'elm_dayselector_eo.legacy.h', + 'elm_dayselector_item_eo.h', + 'elm_dayselector_item_eo.legacy.h', 'elm_hoversel_eo.h', 'elm_hoversel_eo.legacy.h', 'elm_hoversel_item_eo.h',