forked from enlightenment/efl
elementary: add elm_calendar_selectable_set
SVN revision: 76478
This commit is contained in:
parent
47d2139e0f
commit
6b520ae48d
|
@ -326,6 +326,9 @@ test_calendar3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
|
||||||
cal = elm_calendar_add(win);
|
cal = elm_calendar_add(win);
|
||||||
elm_calendar_first_day_of_week_set(cal, ELM_DAY_THURSDAY);
|
elm_calendar_first_day_of_week_set(cal, ELM_DAY_THURSDAY);
|
||||||
elm_calendar_select_mode_set(cal, ELM_CALENDAR_SELECT_MODE_ONDEMAND);
|
elm_calendar_select_mode_set(cal, ELM_CALENDAR_SELECT_MODE_ONDEMAND);
|
||||||
|
elm_calendar_selectable_set(cal,
|
||||||
|
(ELM_CALENDAR_SELECTABLE_YEAR
|
||||||
|
| ELM_CALENDAR_SELECTABLE_MONTH));
|
||||||
current_time = time(NULL) + 34 * 84600;
|
current_time = time(NULL) + 34 * 84600;
|
||||||
localtime_r(¤t_time, &selected_time);
|
localtime_r(¤t_time, &selected_time);
|
||||||
elm_calendar_selected_time_set(cal, &selected_time);
|
elm_calendar_selected_time_set(cal, &selected_time);
|
||||||
|
|
|
@ -711,6 +711,7 @@ _elm_calendar_smart_add(Evas_Object *obj)
|
||||||
priv->first_day_it = -1;
|
priv->first_day_it = -1;
|
||||||
priv->format_func = _format_month_year;
|
priv->format_func = _format_month_year;
|
||||||
priv->marks = NULL;
|
priv->marks = NULL;
|
||||||
|
priv->selectable = (~(ELM_CALENDAR_SELECTABLE_NONE));
|
||||||
|
|
||||||
edje_object_signal_callback_add
|
edje_object_signal_callback_add
|
||||||
(ELM_WIDGET_DATA(priv)->resize_obj, "elm,action,increment,start", "*",
|
(ELM_WIDGET_DATA(priv)->resize_obj, "elm,action,increment,start", "*",
|
||||||
|
@ -943,9 +944,21 @@ elm_calendar_selected_time_set(Evas_Object *obj,
|
||||||
ELM_CALENDAR_DATA_GET(obj, sd);
|
ELM_CALENDAR_DATA_GET(obj, sd);
|
||||||
EINA_SAFETY_ON_NULL_RETURN(selected_time);
|
EINA_SAFETY_ON_NULL_RETURN(selected_time);
|
||||||
|
|
||||||
sd->selected_time = *selected_time;
|
if (sd->selectable & ELM_CALENDAR_SELECTABLE_YEAR)
|
||||||
if (!sd->selected)
|
sd->selected_time.tm_year = selected_time->tm_year;
|
||||||
sd->selected = EINA_TRUE;
|
if (sd->selectable & ELM_CALENDAR_SELECTABLE_MONTH)
|
||||||
|
sd->selected_time.tm_mon = selected_time->tm_mon;
|
||||||
|
if (sd->selectable & ELM_CALENDAR_SELECTABLE_DAY)
|
||||||
|
{
|
||||||
|
sd->selected_time.tm_mday = selected_time->tm_mday;
|
||||||
|
if (!sd->selected)
|
||||||
|
sd->selected = EINA_TRUE;
|
||||||
|
}
|
||||||
|
else if (sd->select_mode != ELM_CALENDAR_SELECT_MODE_ONDEMAND)
|
||||||
|
{
|
||||||
|
if (!sd->selected)
|
||||||
|
sd->selected = EINA_TRUE;
|
||||||
|
}
|
||||||
if (sd->selected_time.tm_year != sd->shown_time.tm_year)
|
if (sd->selected_time.tm_year != sd->shown_time.tm_year)
|
||||||
sd->shown_time.tm_year = sd->selected_time.tm_year;
|
sd->shown_time.tm_year = sd->selected_time.tm_year;
|
||||||
if (sd->selected_time.tm_mon != sd->shown_time.tm_mon)
|
if (sd->selected_time.tm_mon != sd->shown_time.tm_mon)
|
||||||
|
@ -1094,3 +1107,22 @@ elm_calendar_select_mode_get(const Evas_Object *obj)
|
||||||
|
|
||||||
return sd->select_mode;
|
return sd->select_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
elm_calendar_selectable_set(Evas_Object *obj, Elm_Calendar_Selectable selectable)
|
||||||
|
{
|
||||||
|
ELM_CALENDAR_CHECK(obj);
|
||||||
|
ELM_CALENDAR_DATA_GET(obj, sd);
|
||||||
|
|
||||||
|
sd->selectable = selectable;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Elm_Calendar_Selectable
|
||||||
|
elm_calendar_selectable_get(const Evas_Object *obj)
|
||||||
|
{
|
||||||
|
ELM_CALENDAR_CHECK(obj) -1;
|
||||||
|
ELM_CALENDAR_DATA_GET_OR_RETURN_VAL(obj, sd, -1);
|
||||||
|
|
||||||
|
return sd->selectable;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -117,6 +117,28 @@ typedef enum
|
||||||
*/
|
*/
|
||||||
typedef _Elm_Calendar_Select_Mode Elm_Calendar_Select_Mode;
|
typedef _Elm_Calendar_Select_Mode Elm_Calendar_Select_Mode;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
ELM_CALENDAR_SELECTABLE_NONE = 0,
|
||||||
|
ELM_CALENDAR_SELECTABLE_YEAR = (1 << 0),
|
||||||
|
ELM_CALENDAR_SELECTABLE_MONTH = (1 << 1),
|
||||||
|
ELM_CALENDAR_SELECTABLE_DAY = (1 << 2)
|
||||||
|
} _Elm_Calendar_Selectable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @enum _Elm_Calendar_Selectable
|
||||||
|
* @typedef Elm_Calendar_Selectable
|
||||||
|
*
|
||||||
|
* A bitmask used to define which fields of a @b tm struct will be taken into
|
||||||
|
* account, when elm_calendar_selected_time_set() is invoked.
|
||||||
|
*
|
||||||
|
* @ingroup Calendar
|
||||||
|
* @see elm_calendar_selectable_set()
|
||||||
|
* @see elm_calendar_selected_time_set()
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
typedef _Elm_Calendar_Selectable Elm_Calendar_Selectable;
|
||||||
|
|
||||||
typedef struct _Elm_Calendar_Mark Elm_Calendar_Mark; /**< Item handle for a calendar mark. Created with elm_calendar_mark_add() and deleted with elm_calendar_mark_del(). */
|
typedef struct _Elm_Calendar_Mark Elm_Calendar_Mark; /**< Item handle for a calendar mark. Created with elm_calendar_mark_add() and deleted with elm_calendar_mark_del(). */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -515,6 +537,36 @@ EAPI void elm_calendar_first_day_of_week_set(Evas_Object *obj, E
|
||||||
*/
|
*/
|
||||||
EAPI Elm_Calendar_Weekday elm_calendar_first_day_of_week_get(const Evas_Object *obj);
|
EAPI Elm_Calendar_Weekday elm_calendar_first_day_of_week_get(const Evas_Object *obj);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define which fields of a @b tm struct will be taken into account, when
|
||||||
|
* elm_calendar_selected_time_set() is invoked.
|
||||||
|
*
|
||||||
|
* @param obj The calendar object
|
||||||
|
* @param selectable A bitmask of Elm_Calendar_Selectable
|
||||||
|
*
|
||||||
|
* By Default the bitmask is set to use all fields of a @b tm struct (year,
|
||||||
|
* month and day of the month).
|
||||||
|
*
|
||||||
|
* @ingroup Calendar
|
||||||
|
* @see elm_calendar_selected_time_set
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI void elm_calendar_selectable_set(Evas_Object *obj, Elm_Calendar_Selectable selectable);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get how elm_calendar_selected_time_set manage a date
|
||||||
|
*
|
||||||
|
* @param obj The calendar object
|
||||||
|
* @return The flag used to manage a date with a elm_calendar_selected_time_set
|
||||||
|
*
|
||||||
|
* @ingroup Calendar
|
||||||
|
* @see elm_calendar_selectable_set
|
||||||
|
* @see elm_calendar_selected_time_set
|
||||||
|
* @since 1.8
|
||||||
|
*/
|
||||||
|
EAPI Elm_Calendar_Selectable elm_calendar_selectable_get(const Evas_Object *obj);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -143,6 +143,7 @@ struct _Elm_Calendar_Smart_Data
|
||||||
Day_Color day_color[42]; // EINA_DEPRECATED
|
Day_Color day_color[42]; // EINA_DEPRECATED
|
||||||
Elm_Calendar_Select_Mode select_mode;
|
Elm_Calendar_Select_Mode select_mode;
|
||||||
Eina_Bool selected : 1;
|
Eina_Bool selected : 1;
|
||||||
|
Elm_Calendar_Selectable selectable;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Elm_Calendar_Mark
|
struct _Elm_Calendar_Mark
|
||||||
|
|
Loading…
Reference in New Issue