diff --git a/legacy/elementary/src/lib/elm_clock.h b/legacy/elementary/src/lib/elm_clock.h
index 5ad0a0feed..e29ac7457b 100644
--- a/legacy/elementary/src/lib/elm_clock.h
+++ b/legacy/elementary/src/lib/elm_clock.h
@@ -54,436 +54,13 @@
* @{
*/
-#define ELM_OBJ_CLOCK_CLASS elm_obj_clock_class_get()
-
-const Eo_Class *elm_obj_clock_class_get(void) EINA_CONST;
-
-extern EAPI Eo_Op ELM_OBJ_CLOCK_BASE_ID;
-
-enum
-{
- ELM_OBJ_CLOCK_SUB_ID_TIME_SET,
- ELM_OBJ_CLOCK_SUB_ID_TIME_GET,
- ELM_OBJ_CLOCK_SUB_ID_EDIT_SET,
- ELM_OBJ_CLOCK_SUB_ID_EDIT_GET,
- ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_SET,
- ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_GET,
- ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_SET,
- ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_GET,
- ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_SET,
- ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_GET,
- ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_SET,
- ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_GET,
- ELM_OBJ_CLOCK_SUB_ID_LAST
-};
-
-#define ELM_OBJ_CLOCK_ID(sub_id) (ELM_OBJ_CLOCK_BASE_ID + sub_id)
-
-
-/**
- * @def elm_obj_clock_time_set
- * @since 1.8
- *
- * Set a clock widget's time, programmatically
- *
- * @param[in] hrs
- * @param[in] min
- * @param[in] sec
- *
- * @see elm_clock_time_set
- */
-#define elm_obj_clock_time_set(hrs, min, sec) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_TIME_SET), EO_TYPECHECK(int, hrs), EO_TYPECHECK(int, min), EO_TYPECHECK(int, sec)
-
-/**
- * @def elm_obj_clock_time_get
- * @since 1.8
- *
- * Get a clock widget's time values
- *
- * @param[out] hrs
- * @param[out] min
- * @param[out] sec
- *
- * @see elm_clock_time_get
- */
-#define elm_obj_clock_time_get(hrs, min, sec) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_TIME_GET), EO_TYPECHECK(int *, hrs), EO_TYPECHECK(int *, min), EO_TYPECHECK(int *, sec)
-
-/**
- * @def elm_obj_clock_edit_set
- * @since 1.8
- *
- * Set whether a given clock widget is under edition mode or
- * under (default) displaying-only mode.
- *
- * @param[in] edit
- *
- * @see elm_clock_edit_set
- */
-#define elm_obj_clock_edit_set(edit) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_SET), EO_TYPECHECK(Eina_Bool, edit)
-
-/**
- * @def elm_obj_clock_edit_get
- * @since 1.8
- *
- * Retrieve whether a given clock widget is under editing mode
- * under (default) displaying-only mode.
- *
- * @param[out] ret
- *
- * @see elm_clock_edit_get
- */
-#define elm_obj_clock_edit_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_clock_edit_mode_set
- * @since 1.8
- *
- * Set what digits of the given clock widget should be editable
- *
- * @param[in] digedit
- *
- * @see elm_clock_edit_mode_set
- */
-#define elm_obj_clock_edit_mode_set(digedit) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_SET), EO_TYPECHECK(Elm_Clock_Edit_Mode, digedit)
-
-/**
- * @def elm_obj_clock_edit_mode_get
- * @since 1.8
- *
- * Retrieve what digits of the given clock widget should be
- * editable when in edition mode.
- *
- * @param[out] ret
- *
- * @see elm_clock_edit_mode_get
- */
-#define elm_obj_clock_edit_mode_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_GET), EO_TYPECHECK(Elm_Clock_Edit_Mode *, ret)
-
-/**
- * @def elm_obj_clock_show_am_pm_set
- * @since 1.8
- *
- * Set if the given clock widget must show hours in military or
- * am/pm mode
- *
- * @param[in] am_pm
- *
- * @see elm_clock_show_am_pm_set
- */
-#define elm_obj_clock_show_am_pm_set(am_pm) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_SET), EO_TYPECHECK(Eina_Bool, am_pm)
-
-/**
- * @def elm_obj_clock_show_am_pm_get
- * @since 1.8
- *
- * Get if the given clock widget shows hours in military or am/pm
- * mode
- *
- * @param[out] ret
- *
- * @see elm_clock_show_am_pm_get
- */
-#define elm_obj_clock_show_am_pm_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_clock_show_seconds_set
- * @since 1.8
- *
- * Set if the given clock widget must show time with seconds or not
- *
- * @param[in] seconds
- *
- * @see elm_clock_show_seconds_set
- */
-#define elm_obj_clock_show_seconds_set(seconds) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_SET), EO_TYPECHECK(Eina_Bool, seconds)
-
-/**
- * @def elm_obj_clock_show_seconds_get
- * @since 1.8
- *
- * Get whether the given clock widget is showing time with seconds
- *
- * @param[out] ret
- *
- * @see elm_clock_show_seconds_get
- */
-#define elm_obj_clock_show_seconds_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_GET), EO_TYPECHECK(Eina_Bool *, ret)
-
-/**
- * @def elm_obj_clock_first_interval_set
- * @since 1.8
- *
- * Set the first interval on time updates for a user mouse button hold
- *
- * @param[in] interval
- *
- * @see elm_clock_first_interval_set
- */
-#define elm_obj_clock_first_interval_set(interval) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_SET), EO_TYPECHECK(double, interval)
-
-/**
- * @def elm_obj_clock_first_interval_get
- * @since 1.8
- *
- * Get the first interval on time updates for a user mouse button hold
- *
- * @param[out] ret
- *
- * @see elm_clock_first_interval_get
- */
-#define elm_obj_clock_first_interval_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_GET), EO_TYPECHECK(double *, ret)
-
-/**
- * Identifiers for which clock digits should be editable, when a
- * clock widget is in edition mode. Values may be OR-ed together to
- * make a mask, naturally.
- *
- * @see elm_clock_edit_set()
- * @see elm_clock_edit_mode_set()
- */
-typedef enum
-{
- ELM_CLOCK_EDIT_DEFAULT = 0, /**< Default value. Means that all digits are editable, when in edition mode. */
- ELM_CLOCK_EDIT_HOUR_DECIMAL = 1 << 0, /**< Decimal digit of hours value should be editable */
- ELM_CLOCK_EDIT_HOUR_UNIT = 1 << 1, /**< Unit digit of hours value should be editable */
- ELM_CLOCK_EDIT_MIN_DECIMAL = 1 << 2, /**< Decimal digit of minutes value should be editable */
- ELM_CLOCK_EDIT_MIN_UNIT = 1 << 3, /**< Unit digit of minutes value should be editable */
- ELM_CLOCK_EDIT_SEC_DECIMAL = 1 << 4, /**< Decimal digit of seconds value should be editable */
- ELM_CLOCK_EDIT_SEC_UNIT = 1 << 5, /**< Unit digit of seconds value should be editable */
- ELM_CLOCK_EDIT_ALL = (1 << 6) - 1 /**< All digits should be editable */
-} Elm_Clock_Edit_Mode;
-
-/**
- * Add a new clock widget to the given parent Elementary
- * (container) object
- *
- * @param parent The parent object
- * @return a new clock widget handle or @c NULL, on errors
- *
- * This function inserts a new clock widget on the canvas.
- *
- * @ingroup Clock
- */
-EAPI Evas_Object *elm_clock_add(Evas_Object *parent);
-
-/**
- * Set a clock widget's time, programmatically
- *
- * @param obj The clock widget object
- * @param hrs The hours to set
- * @param min The minutes to set
- * @param sec The seconds to set
- *
- * This function updates the time that is showed by the clock
- * widget.
- *
- * Values @b must be set within the following ranges:
- * - 0 - 23, for hours
- * - 0 - 59, for minutes
- * - 0 - 59, for seconds,
- *
- * even if the clock is not in "military" mode.
- *
- * @warning The behavior for values set out of those ranges is @b
- * undefined.
- *
- * @ingroup Clock
- */
-EAPI void elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec);
-
-/**
- * Get a clock widget's time values
- *
- * @param obj The clock object
- * @param[out] hrs Pointer to the variable to get the hours value
- * @param[out] min Pointer to the variable to get the minutes value
- * @param[out] sec Pointer to the variable to get the seconds value
- *
- * This function gets the time set for @p obj, returning
- * it on the variables passed as the arguments to function
- *
- * @note Use @c NULL pointers on the time values you're not
- * interested in: they'll be ignored by the function.
- *
- * @ingroup Clock
- */
-EAPI void elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec);
-
-/**
- * Set whether a given clock widget is under edition mode or
- * under (default) displaying-only mode.
- *
- * @param obj The clock object
- * @param edit @c EINA_TRUE to put it in edition, @c EINA_FALSE to
- * put it back to "displaying only" mode
- *
- * This function makes a clock's time to be editable or not by
- * user interaction. When in edition mode, clocks @b stop
- * ticking, until one brings them back to canonical mode. The
- * elm_clock_edit_mode_set() function will influence which digits
- * of the clock will be editable.
- *
- * @note am/pm sheets, if being shown, will @b always be editable
- * under edition mode.
- *
- * @see elm_clock_edit_get()
- *
- * @ingroup Clock
- */
-EAPI void elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit);
-
-/**
- * Retrieve whether a given clock widget is under editing mode
- * or under (default) displaying-only mode.
- *
- * @param obj The clock object
- * @return @c EINA_TRUE, if it's in edition mode, @c EINA_FALSE otherwise
- *
- * This function retrieves whether the clock's time can be edited
- * or not by user interaction.
- *
- * @see elm_clock_edit_set() for more details
- *
- * @ingroup Clock
- */
-EAPI Eina_Bool elm_clock_edit_get(const Evas_Object *obj);
-
-/**
- * Set what digits of the given clock widget should be editable
- * when in edition mode.
- *
- * @param obj The clock object
- * @param digedit Bit mask indicating the digits to be editable
- * (values in #Elm_Clock_Edit_Mode).
- *
- * @see elm_clock_edit_mode_get()
- *
- * @ingroup Clock
- */
-EAPI void elm_clock_edit_mode_set(Evas_Object *obj, Elm_Clock_Edit_Mode digedit);
-
-/**
- * Retrieve what digits of the given clock widget should be
- * editable when in edition mode.
- *
- * @param obj The clock object
- * @return Bit mask indicating the digits to be editable
- * (values in #Elm_Clock_Edit_Mode).
- *
- * @see elm_clock_edit_mode_set() for more details
- *
- * @ingroup Clock
- */
-EAPI Elm_Clock_Edit_Mode elm_clock_edit_mode_get(const Evas_Object *obj);
-
-/**
- * Set if the given clock widget must show hours in military or
- * am/pm mode
- *
- * @param obj The clock object
- * @param am_pm @c EINA_TRUE to put it in am/pm mode, @c EINA_FALSE
- * to military mode
- *
- * This function sets if the clock must show hours in military or
- * am/pm mode. In some countries like Brazil the military mode
- * (00-24h-format) is used, in opposition to the USA, where the
- * am/pm mode is more commonly used.
- *
- * @see elm_clock_show_am_pm_get()
- *
- * @ingroup Clock
- */
-EAPI void elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm);
-
-/**
- * Get if the given clock widget shows hours in military or am/pm
- * mode
- *
- * @param obj The clock object
- * @return @c EINA_TRUE, if in am/pm mode, @c EINA_FALSE if in
- * military
- *
- * This function gets if the clock shows hours in military or am/pm
- * mode.
- *
- * @see elm_clock_show_am_pm_set() for more details
- *
- * @ingroup Clock
- */
-EAPI Eina_Bool elm_clock_show_am_pm_get(const Evas_Object *obj);
-
-/**
- * Set if the given clock widget must show time with seconds or not
- *
- * @param obj The clock object
- * @param seconds @c EINA_TRUE to show seconds, @c EINA_FALSE otherwise
- *
- * This function sets if the given clock must show or not elapsed
- * seconds. By default, they are @b not shown.
- *
- * @see elm_clock_show_seconds_get()
- *
- * @ingroup Clock
- */
-EAPI void elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds);
-
-/**
- * Get whether the given clock widget is showing time with seconds
- * or not
- *
- * @param obj The clock object
- * @return @c EINA_TRUE if it's showing seconds, @c EINA_FALSE otherwise
- *
- * This function gets whether @p obj is showing or not the elapsed
- * seconds.
- *
- * @see elm_clock_show_seconds_set()
- *
- * @ingroup Clock
- */
-EAPI Eina_Bool elm_clock_show_seconds_get(const Evas_Object *obj);
-
-/**
- * Set the first interval on time updates for a user mouse button hold
- * on clock widgets' time edition.
- *
- * @param obj The clock object
- * @param interval The first interval value in seconds
- *
- * This interval value is @b decreased while the user holds the
- * mouse pointer either incrementing or decrementing a given the
- * clock digit's value.
- *
- * This helps the user to get to a given time distant from the
- * current one easier/faster, as it will start to flip quicker and
- * quicker on mouse button holds.
- *
- * The calculation for the next flip interval value, starting from
- * the one set with this call, is the previous interval divided by
- * 1.05, so it decreases a little bit.
- *
- * The default starting interval value for automatic flips is
- * @b 0.85 seconds.
- *
- * @see elm_clock_first_interval_get()
- *
- * @ingroup Clock
- */
-EAPI void elm_clock_first_interval_set(Evas_Object *obj, double interval);
-
-/**
- * Get the first interval on time updates for a user mouse button hold
- * on clock widgets' time edition.
- *
- * @param obj The clock object
- * @return The first interval value, in seconds, set on it
- *
- * @see elm_clock_first_interval_set() for more details
- *
- * @ingroup Clock
- */
-EAPI double elm_clock_first_interval_get(const Evas_Object *obj);
-
+#include "elm_clock_common.h"
+#ifdef EFL_EO_API_SUPPORT
+#include "elm_clock_eo.h"
+#endif
+#ifndef EFL_NOLEGACY_API_SUPPORT
+#include "elm_clock_legacy.h"
+#endif
/**
* @}
*/
diff --git a/legacy/elementary/src/lib/elm_clock_common.h b/legacy/elementary/src/lib/elm_clock_common.h
new file mode 100644
index 0000000000..60a38bda4f
--- /dev/null
+++ b/legacy/elementary/src/lib/elm_clock_common.h
@@ -0,0 +1,20 @@
+/**
+ * Identifiers for which clock digits should be editable, when a
+ * clock widget is in edition mode. Values may be OR-ed together to
+ * make a mask, naturally.
+ *
+ * @see elm_clock_edit_set()
+ * @see elm_clock_edit_mode_set()
+ */
+typedef enum
+{
+ ELM_CLOCK_EDIT_DEFAULT = 0, /**< Default value. Means that all digits are editable, when in edition mode. */
+ ELM_CLOCK_EDIT_HOUR_DECIMAL = 1 << 0, /**< Decimal digit of hours value should be editable */
+ ELM_CLOCK_EDIT_HOUR_UNIT = 1 << 1, /**< Unit digit of hours value should be editable */
+ ELM_CLOCK_EDIT_MIN_DECIMAL = 1 << 2, /**< Decimal digit of minutes value should be editable */
+ ELM_CLOCK_EDIT_MIN_UNIT = 1 << 3, /**< Unit digit of minutes value should be editable */
+ ELM_CLOCK_EDIT_SEC_DECIMAL = 1 << 4, /**< Decimal digit of seconds value should be editable */
+ ELM_CLOCK_EDIT_SEC_UNIT = 1 << 5, /**< Unit digit of seconds value should be editable */
+ ELM_CLOCK_EDIT_ALL = (1 << 6) - 1 /**< All digits should be editable */
+} Elm_Clock_Edit_Mode;
+
diff --git a/legacy/elementary/src/lib/elm_clock_eo.h b/legacy/elementary/src/lib/elm_clock_eo.h
new file mode 100644
index 0000000000..653c1253b2
--- /dev/null
+++ b/legacy/elementary/src/lib/elm_clock_eo.h
@@ -0,0 +1,202 @@
+#define ELM_OBJ_CLOCK_CLASS elm_obj_clock_class_get()
+
+const Eo_Class *elm_obj_clock_class_get(void) EINA_CONST;
+
+extern EAPI Eo_Op ELM_OBJ_CLOCK_BASE_ID;
+
+enum
+{
+ ELM_OBJ_CLOCK_SUB_ID_TIME_SET,
+ ELM_OBJ_CLOCK_SUB_ID_TIME_GET,
+ ELM_OBJ_CLOCK_SUB_ID_EDIT_SET,
+ ELM_OBJ_CLOCK_SUB_ID_EDIT_GET,
+ ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_SET,
+ ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_GET,
+ ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_SET,
+ ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_GET,
+ ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_SET,
+ ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_GET,
+ ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_SET,
+ ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_GET,
+ ELM_OBJ_CLOCK_SUB_ID_LAST
+};
+
+#define ELM_OBJ_CLOCK_ID(sub_id) (ELM_OBJ_CLOCK_BASE_ID + sub_id)
+
+
+/**
+ * @def elm_obj_clock_time_set
+ * @since 1.8
+ *
+ * Set a clock widget's time, programmatically
+ *
+ * @param[in] hrs
+ * @param[in] min
+ * @param[in] sec
+ *
+ * @see elm_clock_time_set
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_time_set(hrs, min, sec) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_TIME_SET), EO_TYPECHECK(int, hrs), EO_TYPECHECK(int, min), EO_TYPECHECK(int, sec)
+
+/**
+ * @def elm_obj_clock_time_get
+ * @since 1.8
+ *
+ * Get a clock widget's time values
+ *
+ * @param[out] hrs
+ * @param[out] min
+ * @param[out] sec
+ *
+ * @see elm_clock_time_get
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_time_get(hrs, min, sec) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_TIME_GET), EO_TYPECHECK(int *, hrs), EO_TYPECHECK(int *, min), EO_TYPECHECK(int *, sec)
+
+/**
+ * @def elm_obj_clock_edit_set
+ * @since 1.8
+ *
+ * Set whether a given clock widget is under edition mode or
+ * under (default) displaying-only mode.
+ *
+ * @param[in] edit
+ *
+ * @see elm_clock_edit_set
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_edit_set(edit) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_SET), EO_TYPECHECK(Eina_Bool, edit)
+
+/**
+ * @def elm_obj_clock_edit_get
+ * @since 1.8
+ *
+ * Retrieve whether a given clock widget is under editing mode
+ * under (default) displaying-only mode.
+ *
+ * @param[out] ret
+ *
+ * @see elm_clock_edit_get
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_edit_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_clock_edit_mode_set
+ * @since 1.8
+ *
+ * Set what digits of the given clock widget should be editable
+ *
+ * @param[in] digedit
+ *
+ * @see elm_clock_edit_mode_set
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_edit_mode_set(digedit) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_SET), EO_TYPECHECK(Elm_Clock_Edit_Mode, digedit)
+
+/**
+ * @def elm_obj_clock_edit_mode_get
+ * @since 1.8
+ *
+ * Retrieve what digits of the given clock widget should be
+ * editable when in edition mode.
+ *
+ * @param[out] ret
+ *
+ * @see elm_clock_edit_mode_get
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_edit_mode_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_EDIT_MODE_GET), EO_TYPECHECK(Elm_Clock_Edit_Mode *, ret)
+
+/**
+ * @def elm_obj_clock_show_am_pm_set
+ * @since 1.8
+ *
+ * Set if the given clock widget must show hours in military or
+ * am/pm mode
+ *
+ * @param[in] am_pm
+ *
+ * @see elm_clock_show_am_pm_set
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_show_am_pm_set(am_pm) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_SET), EO_TYPECHECK(Eina_Bool, am_pm)
+
+/**
+ * @def elm_obj_clock_show_am_pm_get
+ * @since 1.8
+ *
+ * Get if the given clock widget shows hours in military or am/pm
+ * mode
+ *
+ * @param[out] ret
+ *
+ * @see elm_clock_show_am_pm_get
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_show_am_pm_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_AM_PM_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_clock_show_seconds_set
+ * @since 1.8
+ *
+ * Set if the given clock widget must show time with seconds or not
+ *
+ * @param[in] seconds
+ *
+ * @see elm_clock_show_seconds_set
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_show_seconds_set(seconds) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_SET), EO_TYPECHECK(Eina_Bool, seconds)
+
+/**
+ * @def elm_obj_clock_show_seconds_get
+ * @since 1.8
+ *
+ * Get whether the given clock widget is showing time with seconds
+ *
+ * @param[out] ret
+ *
+ * @see elm_clock_show_seconds_get
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_show_seconds_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_SHOW_SECONDS_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_clock_first_interval_set
+ * @since 1.8
+ *
+ * Set the first interval on time updates for a user mouse button hold
+ *
+ * @param[in] interval
+ *
+ * @see elm_clock_first_interval_set
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_first_interval_set(interval) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_SET), EO_TYPECHECK(double, interval)
+
+/**
+ * @def elm_obj_clock_first_interval_get
+ * @since 1.8
+ *
+ * Get the first interval on time updates for a user mouse button hold
+ *
+ * @param[out] ret
+ *
+ * @see elm_clock_first_interval_get
+ *
+ * @ingroup Clock
+ */
+#define elm_obj_clock_first_interval_get(ret) ELM_OBJ_CLOCK_ID(ELM_OBJ_CLOCK_SUB_ID_FIRST_INTERVAL_GET), EO_TYPECHECK(double *, ret)
diff --git a/legacy/elementary/src/lib/elm_clock_legacy.h b/legacy/elementary/src/lib/elm_clock_legacy.h
new file mode 100644
index 0000000000..c3e61fccdb
--- /dev/null
+++ b/legacy/elementary/src/lib/elm_clock_legacy.h
@@ -0,0 +1,230 @@
+/**
+ * Add a new clock widget to the given parent Elementary
+ * (container) object
+ *
+ * @param parent The parent object
+ * @return a new clock widget handle or @c NULL, on errors
+ *
+ * This function inserts a new clock widget on the canvas.
+ *
+ * @ingroup Clock
+ */
+EAPI Evas_Object *elm_clock_add(Evas_Object *parent);
+
+/**
+ * Set a clock widget's time, programmatically
+ *
+ * @param obj The clock widget object
+ * @param hrs The hours to set
+ * @param min The minutes to set
+ * @param sec The seconds to set
+ *
+ * This function updates the time that is showed by the clock
+ * widget.
+ *
+ * Values @b must be set within the following ranges:
+ * - 0 - 23, for hours
+ * - 0 - 59, for minutes
+ * - 0 - 59, for seconds,
+ *
+ * even if the clock is not in "military" mode.
+ *
+ * @warning The behavior for values set out of those ranges is @b
+ * undefined.
+ *
+ * @ingroup Clock
+ */
+EAPI void elm_clock_time_set(Evas_Object *obj, int hrs, int min, int sec);
+
+/**
+ * Get a clock widget's time values
+ *
+ * @param obj The clock object
+ * @param[out] hrs Pointer to the variable to get the hours value
+ * @param[out] min Pointer to the variable to get the minutes value
+ * @param[out] sec Pointer to the variable to get the seconds value
+ *
+ * This function gets the time set for @p obj, returning
+ * it on the variables passed as the arguments to function
+ *
+ * @note Use @c NULL pointers on the time values you're not
+ * interested in: they'll be ignored by the function.
+ *
+ * @ingroup Clock
+ */
+EAPI void elm_clock_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec);
+
+/**
+ * Set whether a given clock widget is under edition mode or
+ * under (default) displaying-only mode.
+ *
+ * @param obj The clock object
+ * @param edit @c EINA_TRUE to put it in edition, @c EINA_FALSE to
+ * put it back to "displaying only" mode
+ *
+ * This function makes a clock's time to be editable or not by
+ * user interaction. When in edition mode, clocks @b stop
+ * ticking, until one brings them back to canonical mode. The
+ * elm_clock_edit_mode_set() function will influence which digits
+ * of the clock will be editable.
+ *
+ * @note am/pm sheets, if being shown, will @b always be editable
+ * under edition mode.
+ *
+ * @see elm_clock_edit_get()
+ *
+ * @ingroup Clock
+ */
+EAPI void elm_clock_edit_set(Evas_Object *obj, Eina_Bool edit);
+
+/**
+ * Retrieve whether a given clock widget is under editing mode
+ * or under (default) displaying-only mode.
+ *
+ * @param obj The clock object
+ * @return @c EINA_TRUE, if it's in edition mode, @c EINA_FALSE otherwise
+ *
+ * This function retrieves whether the clock's time can be edited
+ * or not by user interaction.
+ *
+ * @see elm_clock_edit_set() for more details
+ *
+ * @ingroup Clock
+ */
+EAPI Eina_Bool elm_clock_edit_get(const Evas_Object *obj);
+
+/**
+ * Set what digits of the given clock widget should be editable
+ * when in edition mode.
+ *
+ * @param obj The clock object
+ * @param digedit Bit mask indicating the digits to be editable
+ * (values in #Elm_Clock_Edit_Mode).
+ *
+ * @see elm_clock_edit_mode_get()
+ *
+ * @ingroup Clock
+ */
+EAPI void elm_clock_edit_mode_set(Evas_Object *obj, Elm_Clock_Edit_Mode digedit);
+
+/**
+ * Retrieve what digits of the given clock widget should be
+ * editable when in edition mode.
+ *
+ * @param obj The clock object
+ * @return Bit mask indicating the digits to be editable
+ * (values in #Elm_Clock_Edit_Mode).
+ *
+ * @see elm_clock_edit_mode_set() for more details
+ *
+ * @ingroup Clock
+ */
+EAPI Elm_Clock_Edit_Mode elm_clock_edit_mode_get(const Evas_Object *obj);
+
+/**
+ * Set if the given clock widget must show hours in military or
+ * am/pm mode
+ *
+ * @param obj The clock object
+ * @param am_pm @c EINA_TRUE to put it in am/pm mode, @c EINA_FALSE
+ * to military mode
+ *
+ * This function sets if the clock must show hours in military or
+ * am/pm mode. In some countries like Brazil the military mode
+ * (00-24h-format) is used, in opposition to the USA, where the
+ * am/pm mode is more commonly used.
+ *
+ * @see elm_clock_show_am_pm_get()
+ *
+ * @ingroup Clock
+ */
+EAPI void elm_clock_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm);
+
+/**
+ * Get if the given clock widget shows hours in military or am/pm
+ * mode
+ *
+ * @param obj The clock object
+ * @return @c EINA_TRUE, if in am/pm mode, @c EINA_FALSE if in
+ * military
+ *
+ * This function gets if the clock shows hours in military or am/pm
+ * mode.
+ *
+ * @see elm_clock_show_am_pm_set() for more details
+ *
+ * @ingroup Clock
+ */
+EAPI Eina_Bool elm_clock_show_am_pm_get(const Evas_Object *obj);
+
+/**
+ * Set if the given clock widget must show time with seconds or not
+ *
+ * @param obj The clock object
+ * @param seconds @c EINA_TRUE to show seconds, @c EINA_FALSE otherwise
+ *
+ * This function sets if the given clock must show or not elapsed
+ * seconds. By default, they are @b not shown.
+ *
+ * @see elm_clock_show_seconds_get()
+ *
+ * @ingroup Clock
+ */
+EAPI void elm_clock_show_seconds_set(Evas_Object *obj, Eina_Bool seconds);
+
+/**
+ * Get whether the given clock widget is showing time with seconds
+ * or not
+ *
+ * @param obj The clock object
+ * @return @c EINA_TRUE if it's showing seconds, @c EINA_FALSE otherwise
+ *
+ * This function gets whether @p obj is showing or not the elapsed
+ * seconds.
+ *
+ * @see elm_clock_show_seconds_set()
+ *
+ * @ingroup Clock
+ */
+EAPI Eina_Bool elm_clock_show_seconds_get(const Evas_Object *obj);
+
+/**
+ * Set the first interval on time updates for a user mouse button hold
+ * on clock widgets' time edition.
+ *
+ * @param obj The clock object
+ * @param interval The first interval value in seconds
+ *
+ * This interval value is @b decreased while the user holds the
+ * mouse pointer either incrementing or decrementing a given the
+ * clock digit's value.
+ *
+ * This helps the user to get to a given time distant from the
+ * current one easier/faster, as it will start to flip quicker and
+ * quicker on mouse button holds.
+ *
+ * The calculation for the next flip interval value, starting from
+ * the one set with this call, is the previous interval divided by
+ * 1.05, so it decreases a little bit.
+ *
+ * The default starting interval value for automatic flips is
+ * @b 0.85 seconds.
+ *
+ * @see elm_clock_first_interval_get()
+ *
+ * @ingroup Clock
+ */
+EAPI void elm_clock_first_interval_set(Evas_Object *obj, double interval);
+
+/**
+ * Get the first interval on time updates for a user mouse button hold
+ * on clock widgets' time edition.
+ *
+ * @param obj The clock object
+ * @return The first interval value, in seconds, set on it
+ *
+ * @see elm_clock_first_interval_set() for more details
+ *
+ * @ingroup Clock
+ */
+EAPI double elm_clock_first_interval_get(const Evas_Object *obj);