Elementary: header split for DateTime, DaySelector, DiskSelector, Entry,

Flip, Flip Selector, Frame, Gesture Layer, GLView, Hover, Icon,
   Inwin, Label.
devs/felipealmeida/promises
Daniel Zaoui 10 years ago
parent 9e713bc791
commit 0ca5c025aa
  1. 36
      legacy/elementary/src/lib/Makefile.am
  2. 586
      legacy/elementary/src/lib/elm_datetime.h
  3. 15
      legacy/elementary/src/lib/elm_datetime_common.h
  4. 205
      legacy/elementary/src/lib/elm_datetime_eo.h
  5. 382
      legacy/elementary/src/lib/elm_datetime_legacy.h
  6. 261
      legacy/elementary/src/lib/elm_dayselector.h
  7. 19
      legacy/elementary/src/lib/elm_dayselector_common.h
  8. 135
      legacy/elementary/src/lib/elm_dayselector_eo.h
  9. 114
      legacy/elementary/src/lib/elm_dayselector_legacy.h
  10. 501
      legacy/elementary/src/lib/elm_diskselector.h
  11. 80
      legacy/elementary/src/lib/elm_diskselector_common.h
  12. 194
      legacy/elementary/src/lib/elm_diskselector_eo.h
  13. 240
      legacy/elementary/src/lib/elm_diskselector_legacy.h
  14. 2710
      legacy/elementary/src/lib/elm_entry.h
  15. 381
      legacy/elementary/src/lib/elm_entry_common.h
  16. 1321
      legacy/elementary/src/lib/elm_entry_eo.h
  17. 1172
      legacy/elementary/src/lib/elm_entry_legacy.h
  18. 418
      legacy/elementary/src/lib/elm_flip.h
  19. 32
      legacy/elementary/src/lib/elm_flip_common.h
  20. 154
      legacy/elementary/src/lib/elm_flip_eo.h
  21. 242
      legacy/elementary/src/lib/elm_flip_legacy.h
  22. 415
      legacy/elementary/src/lib/elm_flipselector.h
  23. 171
      legacy/elementary/src/lib/elm_flipselector_eo.h
  24. 196
      legacy/elementary/src/lib/elm_flipselector_legacy.h
  25. 154
      legacy/elementary/src/lib/elm_frame.h
  26. 86
      legacy/elementary/src/lib/elm_frame_eo.h
  27. 68
      legacy/elementary/src/lib/elm_frame_legacy.h
  28. 622
      legacy/elementary/src/lib/elm_gesture_layer.h
  29. 379
      legacy/elementary/src/lib/elm_gesture_layer_common.h
  30. 139
      legacy/elementary/src/lib/elm_gesture_layer_eo.h
  31. 111
      legacy/elementary/src/lib/elm_gesture_layer_legacy.h
  32. 382
      legacy/elementary/src/lib/elm_glview.h
  33. 52
      legacy/elementary/src/lib/elm_glview_common.h
  34. 182
      legacy/elementary/src/lib/elm_glview_eo.h
  35. 162
      legacy/elementary/src/lib/elm_glview_legacy.h
  36. 186
      legacy/elementary/src/lib/elm_hover.h
  37. 13
      legacy/elementary/src/lib/elm_hover_common.h
  38. 71
      legacy/elementary/src/lib/elm_hover_eo.h
  39. 99
      legacy/elementary/src/lib/elm_hover_legacy.h
  40. 221
      legacy/elementary/src/lib/elm_icon.h
  41. 29
      legacy/elementary/src/lib/elm_icon_common.h
  42. 90
      legacy/elementary/src/lib/elm_icon_eo.h
  43. 102
      legacy/elementary/src/lib/elm_icon_legacy.h
  44. 112
      legacy/elementary/src/lib/elm_inwin.h
  45. 23
      legacy/elementary/src/lib/elm_inwin_eo.h
  46. 82
      legacy/elementary/src/lib/elm_inwin_legacy.h
  47. 348
      legacy/elementary/src/lib/elm_label.h
  48. 7
      legacy/elementary/src/lib/elm_label_common.h
  49. 176
      legacy/elementary/src/lib/elm_label_eo.h
  50. 175
      legacy/elementary/src/lib/elm_label_legacy.h

@ -187,32 +187,68 @@ elm_conform_eo.h \
elm_conform_legacy.h \
elm_cursor.h \
elm_datetime.h \
elm_datetime_common.h \
elm_datetime_eo.h \
elm_datetime_legacy.h \
elm_dayselector.h \
elm_dayselector_common.h \
elm_dayselector_eo.h \
elm_dayselector_legacy.h \
elm_debug.h \
elm_deprecated.h \
elm_diskselector.h \
elm_diskselector_common.h \
elm_diskselector_eo.h \
elm_diskselector_legacy.h \
elm_entry.h \
elm_entry_common.h \
elm_entry_eo.h \
elm_entry_legacy.h \
elm_finger.h \
elm_flip.h \
elm_flip_common.h \
elm_flip_eo.h \
elm_flip_legacy.h \
elm_flipselector.h \
elm_flipselector_eo.h \
elm_flipselector_legacy.h \
elm_focus.h \
elm_font.h \
elm_frame.h \
elm_frame_eo.h \
elm_frame_legacy.h \
elm_gen.h \
elm_general.h \
elm_gengrid.h \
elm_genlist.h \
elm_gesture_layer.h \
elm_gesture_layer_common.h \
elm_gesture_layer_eo.h \
elm_gesture_layer_legacy.h \
elm_getting_started.h \
elm_glview.h \
elm_glview_common.h \
elm_glview_eo.h \
elm_glview_legacy.h \
elm_grid.h \
elm_hover.h \
elm_hover_common.h \
elm_hover_eo.h \
elm_hover_legacy.h \
elm_icon.h \
elm_icon_common.h \
elm_icon_eo.h \
elm_icon_legacy.h \
elm_image.h \
elm_index.h \
elm_intro.h \
elm_inwin.h \
elm_inwin_eo.h \
elm_inwin_legacy.h \
elm_label.h \
elm_label_common.h \
elm_label_eo.h \
elm_label_legacy.h \
elm_layout.h \
elm_list.h \
elm_macros.h \

@ -190,590 +190,18 @@
*
*/
#define ELM_OBJ_DATETIME_CLASS elm_obj_datetime_class_get()
const Eo_Class *elm_obj_datetime_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_DATETIME_BASE_ID;
enum
{
ELM_OBJ_DATETIME_SUB_ID_FORMAT_GET,
ELM_OBJ_DATETIME_SUB_ID_FORMAT_SET,
ELM_OBJ_DATETIME_SUB_ID_FIELD_VISIBLE_GET,
ELM_OBJ_DATETIME_SUB_ID_FIELD_VISIBLE_SET,
ELM_OBJ_DATETIME_SUB_ID_FIELD_LIMIT_GET,
ELM_OBJ_DATETIME_SUB_ID_FIELD_LIMIT_SET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_GET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_SET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_MIN_GET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_MIN_SET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_MAX_GET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_MAX_SET,
ELM_OBJ_DATETIME_SUB_ID_LAST
};
#define ELM_OBJ_DATETIME_ID(sub_id) (ELM_OBJ_DATETIME_BASE_ID + sub_id)
/**
* @def elm_obj_datetime_format_get
* @since 1.8
*
* Get the datetime format.
*
* @param[out] ret
*
* @see elm_datetime_format_get
*/
#define elm_obj_datetime_format_get(ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_datetime_format_set
* @since 1.8
*
* Set the datetime format.
*
* @param[in] fmt
*
* @see elm_datetime_format_set
*/
#define elm_obj_datetime_format_set(fmt) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FORMAT_SET), EO_TYPECHECK(const char *, fmt)
/**
* @def elm_obj_datetime_field_visible_get
* @since 1.8
*
* @brief Get whether a field can be visible/not
*
* @param[in] fieldtype
* @param[out] ret
*
* @see elm_datetime_field_visible_get
*/
#define elm_obj_datetime_field_visible_get(fieldtype, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FIELD_VISIBLE_GET), EO_TYPECHECK(Elm_Datetime_Field_Type, fieldtype), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_field_visible_set
* @since 1.8
*
* @brief Set a field to be visible or not.
*
* @param[in] fieldtype
* @param[in] visible
*
* @see elm_datetime_field_visible_set
*/
#define elm_obj_datetime_field_visible_set(fieldtype, visible) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FIELD_VISIBLE_SET), EO_TYPECHECK(Elm_Datetime_Field_Type, fieldtype), EO_TYPECHECK(Eina_Bool, visible)
/**
* @def elm_obj_datetime_field_limit_get
* @since 1.8
*
* @brief Get the field limits of a field.
*
* @param[in] fieldtype
* @param[out] min
* @param[out] max
*
* @see elm_datetime_field_limit_get
*/
#define elm_obj_datetime_field_limit_get(fieldtype, min, max) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FIELD_LIMIT_GET), EO_TYPECHECK(Elm_Datetime_Field_Type, fieldtype), EO_TYPECHECK(int *, min), EO_TYPECHECK(int *, max)
/**
* @def elm_obj_datetime_field_limit_set
* @since 1.8
*
* @brief Set the field limits of a field.
*
* @param[in] fieldtype
* @param[in] min
* @param[in] max
*
* @see elm_datetime_field_limit_set
*/
#define elm_obj_datetime_field_limit_set(fieldtype, min, max) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FIELD_LIMIT_SET), EO_TYPECHECK(Elm_Datetime_Field_Type, fieldtype), EO_TYPECHECK(int, min), EO_TYPECHECK(int, max)
/**
* @def elm_obj_datetime_value_get
* @since 1.8
*
* @brief Get the current value of a field.
*
* @param[out] currtime
* @param[out] ret
*
* @see elm_datetime_value_get
*/
#define elm_obj_datetime_value_get(currtime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_GET), EO_TYPECHECK(struct tm *, currtime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_set
* @since 1.8
*
* @brief Set the current value of a Datetime object.
*
* @param[in] newtime
* @param[out] ret
*
* @see elm_datetime_value_set
*/
#define elm_obj_datetime_value_set(newtime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_SET), EO_TYPECHECK(const struct tm *, newtime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_min_get
* @since 1.8
*
* @brief Get the lower boundary of a field.
*
* @param[out] mintime
* @param[out] ret
*
* @see elm_datetime_value_min_get
*/
#define elm_obj_datetime_value_min_get(mintime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_MIN_GET), EO_TYPECHECK(struct tm *, mintime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_min_set
* @since 1.8
*
* @brief Set the lower boundary of a field.
*
* @param[in] mintime
* @param[out] ret
*
* @see elm_datetime_value_min_set
*/
#define elm_obj_datetime_value_min_set(mintime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_MIN_SET), EO_TYPECHECK(const struct tm *, mintime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_max_get
* @since 1.8
*
* @brief Get the upper boundary of a field.
*
* @param[out] maxtime
* @param[out] ret
*
* @see elm_datetime_value_max_get
*/
#define elm_obj_datetime_value_max_get(maxtime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_MAX_GET), EO_TYPECHECK(struct tm *, maxtime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_max_set
* @since 1.8
*
* @brief Set the upper boundary of a field.
*
* @param[in] maxtime
* @param[out] ret
*
* @see elm_datetime_value_max_set
*/
#define elm_obj_datetime_value_max_set(maxtime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_MAX_SET), EO_TYPECHECK(const struct tm *, maxtime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @addtogroup Datetime
* @{
*/
/**
* Identifies a Datetime field, The widget supports 6 fields : Year, month,
* Date, Hour, Minute, AM/PM
*
*/
typedef enum _Elm_Datetime_Field_Type
{
ELM_DATETIME_YEAR = 0, /**< Indicates Year field */
ELM_DATETIME_MONTH = 1, /**< Indicates Month field */
ELM_DATETIME_DATE = 2, /**< Indicates Date field */
ELM_DATETIME_HOUR = 3, /**< Indicates Hour field */
ELM_DATETIME_MINUTE = 4, /**< Indicates Minute field */
ELM_DATETIME_AMPM = 5, /**< Indicates AM/PM field */
} Elm_Datetime_Field_Type;
/**
* @brief Adds a new datetime Widget
*
* The default datetime format and corresponding strings are based on current locale.
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* This function inserts a new datetime widget on the canvas.
*
* @ingroup Datetime
*/
EAPI Evas_Object *elm_datetime_add(Evas_Object *parent);
/**
* Get the datetime format. Format is a combination of allowed Libc date format
* specifiers like: "%b %d, %Y %I : %M %p".
*
* Maximum allowed format length is 64 chars.
*
* Format can include separators for each individual datetime field except
* for AM/PM field.
*
* Each separator can be a maximum of 6 UTF-8 bytes.
* Space is also taken as a separator.
*
* Following are the allowed set of format specifiers for each datetime field.
*
* @b %%Y : The year as a decimal number including the century.
*
* @b %%y : The year as a decimal number without a century (range 00 to 99).
*
* @b %%m : The month as a decimal number (range 01 to 12).
*
* @b %%b : The abbreviated month name according to the current locale.
*
* @b %%B : The full month name according to the current locale.
*
* @b %%h : The abbreviated month name according to the current locale(same as %%b).
*
* @b %%d : The day of the month as a decimal number (range 01 to 31).
*
* @b %%e : The day of the month as a decimal number (range 1 to 31). single
* digits are preceded by a blank.
*
* @b %%I : The hour as a decimal number using a 12-hour clock (range 01 to 12).
*
* @b %%H : The hour as a decimal number using a 24-hour clock (range 00 to 23).
*
* @b %%k : The hour (24-hour clock) as a decimal number (range 0 to 23). single
* digits are preceded by a blank.
*
* @b %%l : The hour (12-hour clock) as a decimal number (range 1 to 12); single
* digits are preceded by a blank.
*
* @b %%M : The minute as a decimal number (range 00 to 59).
*
* @b %%p : Either 'AM' or 'PM' according to the given time value, or the
* corresponding strings for the current locale. Noon is treated as 'PM'
* and midnight as 'AM'.
*
* @b %%P : Like %p but in lower case: 'am' or 'pm' or a corresponding string for
* the current locale.
*
* @b %%c : The preferred date and time representation for the current locale.
*
* @b %%x : The preferred date representation for the current locale without the time.
*
* @b %%X : The preferred time representation for the current locale without the date.
*
* @b %%r : The complete calendar time using the AM/PM format of the current locale.
*
* @b %%R : The hour and minute in decimal numbers using the format %H:%M.
*
* @b %%T : The time of day in decimal numbers using the format %H:%M:%S.
*
* @b %%D : The date using the format %%m/%%d/%%y.
*
* @b %%F : The date using the format %%Y-%%m-%%d.
*
* These specifiers can be arranged in any order and the widget will display the
* fields accordingly.
*
* Default format is taken as per the system locale settings.
*
* @param obj The datetime object
* @return The datetime format string. Example: "%b %d, %Y %I : %M %p"
*
* @see elm_datetime_format_set()
* @ingroup Datetime
*/
EAPI const char *elm_datetime_format_get(const Evas_Object *obj);
/**
* Set the datetime format. Format is a combination of allowed Libc date format
* specifiers like: "%b %d, %Y %I : %M %p".
*
* Maximum allowed format length is 64 chars.
*
* Format can include separators for each individual datetime field except
* for AM/PM field.
*
* Each separator can be a maximum of 6 UTF-8 bytes.
* Space is also taken as a separator.
*
* Following are the allowed set of format specifiers for each datetime field.
*
* @b %%Y : The year as a decimal number including the century.
*
* @b %%y : The year as a decimal number without a century (range 00 to 99).
*
* @b %%m : The month as a decimal number (range 01 to 12).
*
* @b %%b : The abbreviated month name according to the current locale.
*
* @b %%B : The full month name according to the current locale.
*
* @b %%h : The abbreviated month name according to the current locale(same as %%b).
*
* @b %%d : The day of the month as a decimal number (range 01 to 31).
*
* @b %%e : The day of the month as a decimal number (range 1 to 31). single
* digits are preceded by a blank.
*
* @b %%I : The hour as a decimal number using a 12-hour clock (range 01 to 12).
*
* @b %%H : The hour as a decimal number using a 24-hour clock (range 00 to 23).
*
* @b %%k : The hour (24-hour clock) as a decimal number (range 0 to 23). single
* digits are preceded by a blank.
*
* @b %%l : The hour (12-hour clock) as a decimal number (range 1 to 12); single
* digits are preceded by a blank.
*
* @b %%M : The minute as a decimal number (range 00 to 59).
*
* @b %%p : Either 'AM' or 'PM' according to the given time value, or the
* corresponding strings for the current locale. Noon is treated as 'PM'
* and midnight as 'AM'.
*
* @b %%P : Like %p but in lower case: 'am' or 'pm' or a corresponding string for
* the current locale.
*
* @b %%c : The preferred date and time representation for the current locale.
*
* @b %%x : The preferred date representation for the current locale without the time.
*
* @b %%X : The preferred time representation for the current locale without the date.
*
* @b %%r : The complete calendar time using the AM/PM format of the current locale.
*
* @b %%R : The hour and minute in decimal numbers using the format %H:%M.
*
* @b %%T : The time of day in decimal numbers using the format %H:%M:%S.
*
* @b %%D : The date using the format %%m/%%d/%%y.
*
* @b %%F : The date using the format %%Y-%%m-%%d.
*
* These specifiers can be arranged in any order and the widget will display the
* fields accordingly.
*
* Default format is taken as per the system locale settings.
*
* @param obj The datetime object
* @param fmt The datetime format
*
* @see elm_datetime_format_get()
* @ingroup Datetime
*/
EAPI void elm_datetime_format_set(Evas_Object *obj, const char *fmt);
/**
* @brief Get the upper boundary of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object
* @param maxtime Time structure containing the maximum time value.
* @return EINA_TRUE if maximum value is returned successfully.
*
* @see elm_datetime_value_max_set()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_max_get(const Evas_Object *obj, struct tm *maxtime);
/**
* @brief Set the upper boundary of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object
* @param maxtime Time structure containing the maximum time value.
* @return EINA_TRUE if maximum value is accepted.
*
* @see elm_datetime_value_max_get()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_max_set(Evas_Object *obj, const struct tm *maxtime);
/**
* @brief Get the lower boundary of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object
* @param mintime Time structure.
* @return EINA_TRUE if minimum value is successfully returned.
*
* @see elm_datetime_value_min_set()
* @ingroup Datepicker
*/
EAPI Eina_Bool elm_datetime_value_min_get(const Evas_Object *obj, struct tm *mintime);
/**
* @brief Set the lower boundary of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object.
* @param mintime Time structure containing the minimum time value.
* @return EINA_TRUE if minimum value is accepted.
*
* @see elm_datetime_value_min_get()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_min_set(Evas_Object *obj, const struct tm *mintime);
/**
* @brief Get the field limits of a field.
*
* Limits can be set to individual fields, independently, except for AM/PM field.
* Any field can display the values only in between these Minimum and Maximum limits unless
* the corresponding time value is restricted from MinTime to MaxTime.
* That is, Min/ Max field limits always works under the limitations of MinTime/ MaxTime.
*
* There is no provision to set the limits of AM/PM field.
*
* @param obj The datetime object
* @param fieldtype Type of the field. ELM_DATETIME_YEAR etc.
* @param min Reference to field's minimum value
* @param max Reference to field's maximum value
*
* @see elm_datetime_field_limit_set()
* @ingroup Datetime
*/
EAPI void elm_datetime_field_limit_get(const Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, int *min, int *max);
/**
* @brief Set the field limits of a field.
*
* Limits can be set to individual fields, independently, except for AM/PM field.
* Any field can display the values only in between these Minimum and Maximum limits unless
* the corresponding time value is restricted from MinTime to MaxTime.
* That is, Min/ Max field limits always works under the limitations of MinTime/ MaxTime.
*
* There is no provision to set the limits of AM/PM field.
*
* @param obj The datetime object
* @param fieldtype Type of the field. ELM_DATETIME_YEAR etc.
* @param min Reference to field's minimum value
* @param max Reference to field's maximum value
*
* @see elm_datetime_field_limit_set()
* @ingroup Datetime
*/
EAPI void elm_datetime_field_limit_set(Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, int min, int max);
/**
* @brief Get the current value of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object.
* @param currtime Time structure.
* @return EINA_TRUE if current time is returned successfully.
*
* @see elm_datetime_field_value_set()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_get(const Evas_Object *obj, struct tm *currtime);
/**
* @brief Set the current value of a Datetime object.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
*
* @param obj The datetime object.
* @param newtime Time structure filled with values to be set.
* @return EINA_TRUE if current time is set successfully.
*
* @see elm_datetime_value_set()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_set(Evas_Object *obj, const struct tm *newtime);
/**
* @brief Get whether a field can be visible/not
*
* @param obj The datetime object
* @param fieldtype Type of the field. ELM_DATETIME_YEAR etc
* @return bool @c EINA_TRUE, if field can be visible. @c EINA_FALSE otherwise.
*
* @see elm_datetime_field_visible_set()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_field_visible_get(const Evas_Object *obj, Elm_Datetime_Field_Type fieldtype);
/**
* @brief Set a field to be visible or not.
* Setting this API True does not ensure that the field is visible, apart from
* this, the field's format must be present in Datetime overall format.
* If a field's visibility is set to False then it won't appear even though
* its format is present in overall format.
* So if and only if this API is set true and the corresponding field's format
* is present in Datetime format, the field is visible.
*
* By default the field visibility is set to True.
*
* @param obj The datetime object
* @param fieldtype Type of the field. ELM_DATETIME_YEAR etc.
* @param visible @c EINA_TRUE field can be visible, @c EINA_FALSE otherwise.
*
* @see elm_datetime_field_visible_get()
* @ingroup Datetime
*/
EAPI void elm_datetime_field_visible_set(Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, Eina_Bool visible);
#include "elm_datetime_common.h"
#ifdef EFL_EO_API_SUPPORT
#include "elm_datetime_eo.h"
#endif
#ifndef EFL_NOLEGACY_API_SUPPORT
#include "elm_datetime_legacy.h"
#endif
/**
* @}
*/

@ -0,0 +1,15 @@
/**
* Identifies a Datetime field, The widget supports 6 fields : Year, month,
* Date, Hour, Minute, AM/PM
*
*/
typedef enum _Elm_Datetime_Field_Type
{
ELM_DATETIME_YEAR = 0, /**< Indicates Year field */
ELM_DATETIME_MONTH = 1, /**< Indicates Month field */
ELM_DATETIME_DATE = 2, /**< Indicates Date field */
ELM_DATETIME_HOUR = 3, /**< Indicates Hour field */
ELM_DATETIME_MINUTE = 4, /**< Indicates Minute field */
ELM_DATETIME_AMPM = 5, /**< Indicates AM/PM field */
} Elm_Datetime_Field_Type;

@ -0,0 +1,205 @@
#define ELM_OBJ_DATETIME_CLASS elm_obj_datetime_class_get()
const Eo_Class *elm_obj_datetime_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_DATETIME_BASE_ID;
enum
{
ELM_OBJ_DATETIME_SUB_ID_FORMAT_GET,
ELM_OBJ_DATETIME_SUB_ID_FORMAT_SET,
ELM_OBJ_DATETIME_SUB_ID_FIELD_VISIBLE_GET,
ELM_OBJ_DATETIME_SUB_ID_FIELD_VISIBLE_SET,
ELM_OBJ_DATETIME_SUB_ID_FIELD_LIMIT_GET,
ELM_OBJ_DATETIME_SUB_ID_FIELD_LIMIT_SET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_GET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_SET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_MIN_GET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_MIN_SET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_MAX_GET,
ELM_OBJ_DATETIME_SUB_ID_VALUE_MAX_SET,
ELM_OBJ_DATETIME_SUB_ID_LAST
};
#define ELM_OBJ_DATETIME_ID(sub_id) (ELM_OBJ_DATETIME_BASE_ID + sub_id)
/**
* @def elm_obj_datetime_format_get
* @since 1.8
*
* Get the datetime format.
*
* @param[out] ret
*
* @see elm_datetime_format_get
*
* @ingroup Datetime
*/
#define elm_obj_datetime_format_get(ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FORMAT_GET), EO_TYPECHECK(const char **, ret)
/**
* @def elm_obj_datetime_format_set
* @since 1.8
*
* Set the datetime format.
*
* @param[in] fmt
*
* @see elm_datetime_format_set
*
* @ingroup Datetime
*/
#define elm_obj_datetime_format_set(fmt) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FORMAT_SET), EO_TYPECHECK(const char *, fmt)
/**
* @def elm_obj_datetime_field_visible_get
* @since 1.8
*
* @brief Get whether a field can be visible/not
*
* @param[in] fieldtype
* @param[out] ret
*
* @see elm_datetime_field_visible_get
*
* @ingroup Datetime
*/
#define elm_obj_datetime_field_visible_get(fieldtype, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FIELD_VISIBLE_GET), EO_TYPECHECK(Elm_Datetime_Field_Type, fieldtype), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_field_visible_set
* @since 1.8
*
* @brief Set a field to be visible or not.
*
* @param[in] fieldtype
* @param[in] visible
*
* @see elm_datetime_field_visible_set
*
* @ingroup Datetime
*/
#define elm_obj_datetime_field_visible_set(fieldtype, visible) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FIELD_VISIBLE_SET), EO_TYPECHECK(Elm_Datetime_Field_Type, fieldtype), EO_TYPECHECK(Eina_Bool, visible)
/**
* @def elm_obj_datetime_field_limit_get
* @since 1.8
*
* @brief Get the field limits of a field.
*
* @param[in] fieldtype
* @param[out] min
* @param[out] max
*
* @see elm_datetime_field_limit_get
*
* @ingroup Datetime
*/
#define elm_obj_datetime_field_limit_get(fieldtype, min, max) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FIELD_LIMIT_GET), EO_TYPECHECK(Elm_Datetime_Field_Type, fieldtype), EO_TYPECHECK(int *, min), EO_TYPECHECK(int *, max)
/**
* @def elm_obj_datetime_field_limit_set
* @since 1.8
*
* @brief Set the field limits of a field.
*
* @param[in] fieldtype
* @param[in] min
* @param[in] max
*
* @see elm_datetime_field_limit_set
*
* @ingroup Datetime
*/
#define elm_obj_datetime_field_limit_set(fieldtype, min, max) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_FIELD_LIMIT_SET), EO_TYPECHECK(Elm_Datetime_Field_Type, fieldtype), EO_TYPECHECK(int, min), EO_TYPECHECK(int, max)
/**
* @def elm_obj_datetime_value_get
* @since 1.8
*
* @brief Get the current value of a field.
*
* @param[out] currtime
* @param[out] ret
*
* @see elm_datetime_value_get
*
* @ingroup Datetime
*/
#define elm_obj_datetime_value_get(currtime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_GET), EO_TYPECHECK(struct tm *, currtime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_set
* @since 1.8
*
* @brief Set the current value of a Datetime object.
*
* @param[in] newtime
* @param[out] ret
*
* @see elm_datetime_value_set
*
* @ingroup Datetime
*/
#define elm_obj_datetime_value_set(newtime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_SET), EO_TYPECHECK(const struct tm *, newtime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_min_get
* @since 1.8
*
* @brief Get the lower boundary of a field.
*
* @param[out] mintime
* @param[out] ret
*
* @see elm_datetime_value_min_get
*
* @ingroup Datetime
*/
#define elm_obj_datetime_value_min_get(mintime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_MIN_GET), EO_TYPECHECK(struct tm *, mintime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_min_set
* @since 1.8
*
* @brief Set the lower boundary of a field.
*
* @param[in] mintime
* @param[out] ret
*
* @see elm_datetime_value_min_set
*
* @ingroup Datetime
*/
#define elm_obj_datetime_value_min_set(mintime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_MIN_SET), EO_TYPECHECK(const struct tm *, mintime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_max_get
* @since 1.8
*
* @brief Get the upper boundary of a field.
*
* @param[out] maxtime
* @param[out] ret
*
* @see elm_datetime_value_max_get
*
* @ingroup Datetime
*/
#define elm_obj_datetime_value_max_get(maxtime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_MAX_GET), EO_TYPECHECK(struct tm *, maxtime), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def elm_obj_datetime_value_max_set
* @since 1.8
*
* @brief Set the upper boundary of a field.
*
* @param[in] maxtime
* @param[out] ret
*
* @see elm_datetime_value_max_set
*
* @ingroup Datetime
*/
#define elm_obj_datetime_value_max_set(maxtime, ret) ELM_OBJ_DATETIME_ID(ELM_OBJ_DATETIME_SUB_ID_VALUE_MAX_SET), EO_TYPECHECK(const struct tm *, maxtime), EO_TYPECHECK(Eina_Bool *, ret)

@ -0,0 +1,382 @@
/**
* @brief Adds a new datetime Widget
*
* The default datetime format and corresponding strings are based on current locale.
*
* @param parent The parent object
* @return The new object or NULL if it cannot be created
*
* This function inserts a new datetime widget on the canvas.
*
* @ingroup Datetime
*/
EAPI Evas_Object *elm_datetime_add(Evas_Object *parent);
/**
* Get the datetime format. Format is a combination of allowed Libc date format
* specifiers like: "%b %d, %Y %I : %M %p".
*
* Maximum allowed format length is 64 chars.
*
* Format can include separators for each individual datetime field except
* for AM/PM field.
*
* Each separator can be a maximum of 6 UTF-8 bytes.
* Space is also taken as a separator.
*
* Following are the allowed set of format specifiers for each datetime field.
*
* @b %%Y : The year as a decimal number including the century.
*
* @b %%y : The year as a decimal number without a century (range 00 to 99).
*
* @b %%m : The month as a decimal number (range 01 to 12).
*
* @b %%b : The abbreviated month name according to the current locale.
*
* @b %%B : The full month name according to the current locale.
*
* @b %%h : The abbreviated month name according to the current locale(same as %%b).
*
* @b %%d : The day of the month as a decimal number (range 01 to 31).
*
* @b %%e : The day of the month as a decimal number (range 1 to 31). single
* digits are preceded by a blank.
*
* @b %%I : The hour as a decimal number using a 12-hour clock (range 01 to 12).
*
* @b %%H : The hour as a decimal number using a 24-hour clock (range 00 to 23).
*
* @b %%k : The hour (24-hour clock) as a decimal number (range 0 to 23). single
* digits are preceded by a blank.
*
* @b %%l : The hour (12-hour clock) as a decimal number (range 1 to 12); single
* digits are preceded by a blank.
*
* @b %%M : The minute as a decimal number (range 00 to 59).
*
* @b %%p : Either 'AM' or 'PM' according to the given time value, or the
* corresponding strings for the current locale. Noon is treated as 'PM'
* and midnight as 'AM'.
*
* @b %%P : Like %p but in lower case: 'am' or 'pm' or a corresponding string for
* the current locale.
*
* @b %%c : The preferred date and time representation for the current locale.
*
* @b %%x : The preferred date representation for the current locale without the time.
*
* @b %%X : The preferred time representation for the current locale without the date.
*
* @b %%r : The complete calendar time using the AM/PM format of the current locale.
*
* @b %%R : The hour and minute in decimal numbers using the format %H:%M.
*
* @b %%T : The time of day in decimal numbers using the format %H:%M:%S.
*
* @b %%D : The date using the format %%m/%%d/%%y.
*
* @b %%F : The date using the format %%Y-%%m-%%d.
*
* These specifiers can be arranged in any order and the widget will display the
* fields accordingly.
*
* Default format is taken as per the system locale settings.
*
* @param obj The datetime object
* @return The datetime format string. Example: "%b %d, %Y %I : %M %p"
*
* @see elm_datetime_format_set()
* @ingroup Datetime
*/
EAPI const char *elm_datetime_format_get(const Evas_Object *obj);
/**
* Set the datetime format. Format is a combination of allowed Libc date format
* specifiers like: "%b %d, %Y %I : %M %p".
*
* Maximum allowed format length is 64 chars.
*
* Format can include separators for each individual datetime field except
* for AM/PM field.
*
* Each separator can be a maximum of 6 UTF-8 bytes.
* Space is also taken as a separator.
*
* Following are the allowed set of format specifiers for each datetime field.
*
* @b %%Y : The year as a decimal number including the century.
*
* @b %%y : The year as a decimal number without a century (range 00 to 99).
*
* @b %%m : The month as a decimal number (range 01 to 12).
*
* @b %%b : The abbreviated month name according to the current locale.
*
* @b %%B : The full month name according to the current locale.
*
* @b %%h : The abbreviated month name according to the current locale(same as %%b).
*
* @b %%d : The day of the month as a decimal number (range 01 to 31).
*
* @b %%e : The day of the month as a decimal number (range 1 to 31). single
* digits are preceded by a blank.
*
* @b %%I : The hour as a decimal number using a 12-hour clock (range 01 to 12).
*
* @b %%H : The hour as a decimal number using a 24-hour clock (range 00 to 23).
*
* @b %%k : The hour (24-hour clock) as a decimal number (range 0 to 23). single
* digits are preceded by a blank.
*
* @b %%l : The hour (12-hour clock) as a decimal number (range 1 to 12); single
* digits are preceded by a blank.
*
* @b %%M : The minute as a decimal number (range 00 to 59).
*
* @b %%p : Either 'AM' or 'PM' according to the given time value, or the
* corresponding strings for the current locale. Noon is treated as 'PM'
* and midnight as 'AM'.
*
* @b %%P : Like %p but in lower case: 'am' or 'pm' or a corresponding string for
* the current locale.
*
* @b %%c : The preferred date and time representation for the current locale.
*
* @b %%x : The preferred date representation for the current locale without the time.
*
* @b %%X : The preferred time representation for the current locale without the date.
*
* @b %%r : The complete calendar time using the AM/PM format of the current locale.
*
* @b %%R : The hour and minute in decimal numbers using the format %H:%M.
*
* @b %%T : The time of day in decimal numbers using the format %H:%M:%S.
*
* @b %%D : The date using the format %%m/%%d/%%y.
*
* @b %%F : The date using the format %%Y-%%m-%%d.
*
* These specifiers can be arranged in any order and the widget will display the
* fields accordingly.
*
* Default format is taken as per the system locale settings.
*
* @param obj The datetime object
* @param fmt The datetime format
*
* @see elm_datetime_format_get()
* @ingroup Datetime
*/
EAPI void elm_datetime_format_set(Evas_Object *obj, const char *fmt);
/**
* @brief Get whether a field can be visible/not
*
* @param obj The datetime object
* @param fieldtype Type of the field. ELM_DATETIME_YEAR etc
* @return bool @c EINA_TRUE, if field can be visible. @c EINA_FALSE otherwise.
*
* @see elm_datetime_field_visible_set()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_field_visible_get(const Evas_Object *obj, Elm_Datetime_Field_Type fieldtype);
/**
* @brief Set a field to be visible or not.
* Setting this API True does not ensure that the field is visible, apart from
* this, the field's format must be present in Datetime overall format.
* If a field's visibility is set to False then it won't appear even though
* its format is present in overall format.
* So if and only if this API is set true and the corresponding field's format
* is present in Datetime format, the field is visible.
*
* By default the field visibility is set to True.
*
* @param obj The datetime object
* @param fieldtype Type of the field. ELM_DATETIME_YEAR etc.
* @param visible @c EINA_TRUE field can be visible, @c EINA_FALSE otherwise.
*
* @see elm_datetime_field_visible_get()
* @ingroup Datetime
*/
EAPI void elm_datetime_field_visible_set(Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, Eina_Bool visible);
/**
* @brief Get the field limits of a field.
*
* Limits can be set to individual fields, independently, except for AM/PM field.
* Any field can display the values only in between these Minimum and Maximum limits unless
* the corresponding time value is restricted from MinTime to MaxTime.
* That is, Min/ Max field limits always works under the limitations of MinTime/ MaxTime.
*
* There is no provision to set the limits of AM/PM field.
*
* @param obj The datetime object
* @param fieldtype Type of the field. ELM_DATETIME_YEAR etc.
* @param min Reference to field's minimum value
* @param max Reference to field's maximum value
*
* @see elm_datetime_field_limit_set()
* @ingroup Datetime
*/
EAPI void elm_datetime_field_limit_get(const Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, int *min, int *max);
/**
* @brief Set the field limits of a field.
*
* Limits can be set to individual fields, independently, except for AM/PM field.
* Any field can display the values only in between these Minimum and Maximum limits unless
* the corresponding time value is restricted from MinTime to MaxTime.
* That is, Min/ Max field limits always works under the limitations of MinTime/ MaxTime.
*
* There is no provision to set the limits of AM/PM field.
*
* @param obj The datetime object
* @param fieldtype Type of the field. ELM_DATETIME_YEAR etc.
* @param min Reference to field's minimum value
* @param max Reference to field's maximum value
*
* @see elm_datetime_field_limit_set()
* @ingroup Datetime
*/
EAPI void elm_datetime_field_limit_set(Evas_Object *obj, Elm_Datetime_Field_Type fieldtype, int min, int max);
/**
* @brief Get the current value of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object.
* @param currtime Time structure.
* @return EINA_TRUE if current time is returned successfully.
*
* @see elm_datetime_field_value_set()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_get(const Evas_Object *obj, struct tm *currtime);
/**
* @brief Set the current value of a Datetime object.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
*
* @param obj The datetime object.
* @param newtime Time structure filled with values to be set.
* @return EINA_TRUE if current time is set successfully.
*
* @see elm_datetime_value_set()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_set(Evas_Object *obj, const struct tm *newtime);
/**
* @brief Get the lower boundary of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object
* @param mintime Time structure.
* @return EINA_TRUE if minimum value is successfully returned.
*
* @see elm_datetime_value_min_set()
* @ingroup Datepicker
*/
EAPI Eina_Bool elm_datetime_value_min_get(const Evas_Object *obj, struct tm *mintime);
/**
* @brief Set the lower boundary of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object.
* @param mintime Time structure containing the minimum time value.
* @return EINA_TRUE if minimum value is accepted.
*
* @see elm_datetime_value_min_get()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_min_set(Evas_Object *obj, const struct tm *mintime);
/**
* @brief Get the upper boundary of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object
* @param maxtime Time structure containing the maximum time value.
* @return EINA_TRUE if maximum value is returned successfully.
*
* @see elm_datetime_value_max_set()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_max_get(const Evas_Object *obj, struct tm *maxtime);
/**
* @brief Set the upper boundary of a field.
*
* Year: years since 1900. Negative value represents year below 1900 (year
* value -30 represents 1870). Year default range is from 70 to 137.
*
* Month: default value range is from 0 to 11.
*
* Date: default value range is from 1 to 31 according to the month value.
*
* Hour: default value will be in terms of 24 hr format (0~23)
*
* Minute: default value range is from 0 to 59.
*
* @param obj The datetime object
* @param maxtime Time structure containing the maximum time value.
* @return EINA_TRUE if maximum value is accepted.
*
* @see elm_datetime_value_max_get()
* @ingroup Datetime
*/
EAPI Eina_Bool elm_datetime_value_max_set(Evas_Object *obj, const struct tm *maxtime);

@ -75,260 +75,13 @@
* @{
*/
#define ELM_OBJ_DAYSELECTOR_CLASS elm_obj_dayselector_class_get()
const Eo_Class *elm_obj_dayselector_class_get(void) EINA_CONST;
extern EAPI Eo_Op ELM_OBJ_DAYSELECTOR_BASE_ID;
enum
{
ELM_OBJ_DAYSELECTOR_SUB_ID_DAY_SELECTED_SET,
ELM_OBJ_DAYSELECTOR_SUB_ID_DAY_SELECTED_GET,
ELM_OBJ_DAYSELECTOR_SUB_ID_WEEK_START_SET,
ELM_OBJ_DAYSELECTOR_SUB_ID_WEEK_START_GET,