typedef struct _Widget_Data Widget_Data;
-enum {
- DATE_YEAR,
- DATE_MON,
- DATE_DAY,
- DATE_MAX
+enum
+{
+ DATE_YEAR,
+ DATE_MON,
+ DATE_DAY,
+ DATE_MAX
};
-enum {
- TIME_HOUR,
- TIME_MIN,
- TIME_MAX
+enum
+{
+ TIME_HOUR,
+ TIME_MIN,
+ TIME_MAX
};
-enum {
- DATE_FORMAT_YYMMDD,
- DATE_FORMAT_YYDDMM,
- DATE_FORMAT_MMYYDD,
- DATE_FORMAT_MMDDYY,
- DATE_FORMAT_DDYYMM,
- DATE_FORMAT_DDMMYY,
- DATE_FORMAT_MAX
+enum
+{
+ DATE_FORMAT_YYMMDD,
+ DATE_FORMAT_YYDDMM,
+ DATE_FORMAT_MMYYDD,
+ DATE_FORMAT_MMDDYY,
+ DATE_FORMAT_DDYYMM,
+ DATE_FORMAT_DDMMYY,
+ DATE_FORMAT_MAX
};
-#define YEAR_MAX_LENGTH 4
-#define MONTH_MAX_LENGTH 3
-#define DAY_MAX_LENGTH 2
-#define TIME_MAX_LENGTH 2
+#define YEAR_MAX_LENGTH 4
+#define MONTH_MAX_LENGTH 3
+#define DAY_MAX_LENGTH 2
+#define TIME_MAX_LENGTH 2
-#define MONTH_MAXIMUM 12
-#define HOUR_24H_MAXIMUM 23
-#define HOUR_12H_MAXIMUM 12
-#define MIN_MAXIMUM 59
+#define MONTH_MAXIMUM 12
+#define HOUR_24H_MAXIMUM 23
+#define HOUR_12H_MAXIMUM 12
+#define MIN_MAXIMUM 59
static char month_label[12][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
struct _Widget_Data
{
- Evas_Object *base;
+ Evas_Object *base;
Evas_Object *date[DATE_MAX];
Evas_Object *time[TIME_MAX];
Ecore_Event_Handler *handler;
_del_hook(Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
- if (!wd) return ;
+ if (!wd) return ;
ecore_event_handler_del(wd->handler);
if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME)
{
- _elm_theme_object_set(obj, wd->base, "datefield", "dateandtime", elm_widget_style_get(obj));
+ _elm_theme_object_set(obj, wd->base, "datefield", "dateandtime", elm_widget_style_get(obj));
- for (i = 0; i < DATE_MAX; i++)
- elm_object_style_set(wd->date[i], "datefield/hybrid");
- for (i = 0; i < TIME_MAX; i++)
- elm_object_style_set(wd->time[i], "datefield/hybrid");
+ for (i = 0; i < DATE_MAX; i++)
+ elm_object_style_set(wd->date[i], "datefield/hybrid");
+ for (i = 0; i < TIME_MAX; i++)
+ elm_object_style_set(wd->time[i], "datefield/hybrid");
}
else if (wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
{
- _elm_theme_object_set(obj, wd->base, "datefield", "date", elm_widget_style_get(obj));
+ _elm_theme_object_set(obj, wd->base, "datefield", "date", elm_widget_style_get(obj));
- for (i = 0; i < DATE_MAX; i++)
- elm_object_style_set(wd->date[i], "datefield");
+ for (i = 0; i < DATE_MAX; i++)
+ elm_object_style_set(wd->date[i], "datefield");
- for (i = 0; i < TIME_MAX; i++)
- evas_object_hide(wd->time[i]);
+ for (i = 0; i < TIME_MAX; i++)
+ evas_object_hide(wd->time[i]);
}
else if (wd->layout == ELM_DATEFIELD_LAYOUT_TIME)
{
- _elm_theme_object_set(obj, wd->base, "datefield", "time", elm_widget_style_get(obj));
+ _elm_theme_object_set(obj, wd->base, "datefield", "time", elm_widget_style_get(obj));
- for (i = 0; i < TIME_MAX; i++)
- elm_object_style_set(wd->time[i], "datefield");
+ for (i = 0; i < TIME_MAX; i++)
+ elm_object_style_set(wd->time[i], "datefield");
- for (i = 0; i < DATE_MAX; i++)
- evas_object_hide(wd->date[i]);
+ for (i = 0; i < DATE_MAX; i++)
+ evas_object_hide(wd->date[i]);
}
if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME || wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
{
- edje_object_part_swallow(wd->base, "elm.swallow.date.year", wd->date[DATE_YEAR]);
- edje_object_part_swallow(wd->base, "elm.swallow.date.month", wd->date[DATE_MON]);
- edje_object_part_swallow(wd->base, "elm.swallow.date.day", wd->date[DATE_DAY]);
- edje_object_part_text_set(wd->base, "elm.text.date.comma", ",");
+ edje_object_part_swallow(wd->base, "elm.swallow.date.year", wd->date[DATE_YEAR]);
+ edje_object_part_swallow(wd->base, "elm.swallow.date.month", wd->date[DATE_MON]);
+ edje_object_part_swallow(wd->base, "elm.swallow.date.day", wd->date[DATE_DAY]);
+ edje_object_part_text_set(wd->base, "elm.text.date.comma", ",");
}
if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME || wd->layout == ELM_DATEFIELD_LAYOUT_TIME)
{
- edje_object_part_swallow(wd->base, "elm.swallow.time.hour", wd->time[TIME_HOUR]);
- edje_object_part_swallow(wd->base, "elm.swallow.time.min", wd->time[TIME_MIN]);
- edje_object_part_text_set(wd->base, "elm.text.colon", ":");
+ edje_object_part_swallow(wd->base, "elm.swallow.time.hour", wd->time[TIME_HOUR]);
+ edje_object_part_swallow(wd->base, "elm.swallow.time.min", wd->time[TIME_MIN]);
+ edje_object_part_text_set(wd->base, "elm.text.colon", ":");
}
edje_object_scale_set(wd->base, elm_widget_scale_get(obj) * _elm_config->scale);
Widget_Data *wd = elm_widget_data_get(data);
Evas_Object *focus_obj;
- if (!wd || !wd->base) return ;
+ if (!wd || !wd->base) return ;
focus_obj = elm_widget_focused_object_get(data);
if (focus_obj) elm_object_unfocus(focus_obj);
_signal_ampm_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
{
Widget_Data *wd = elm_widget_data_get(data);
- if (!wd || !wd->base) return ;
+ if (!wd || !wd->base) return ;
wd->pm = !wd->pm;
if (wd->pm)
{
- edje_object_part_text_set(wd->base, "elm.text.ampm", "PM");
- wd->hour += HOUR_12H_MAXIMUM;
+ edje_object_part_text_set(wd->base, "elm.text.ampm", "PM");
+ wd->hour += HOUR_12H_MAXIMUM;
}
else
{
- edje_object_part_text_set(wd->base, "elm.text.ampm", "AM");
- wd->hour -= HOUR_12H_MAXIMUM;
+ edje_object_part_text_set(wd->base, "elm.text.ampm", "AM");
+ wd->hour -= HOUR_12H_MAXIMUM;
}
}
elm_object_focus(wd->time[TIME_MIN]);
else if (!strcmp(source, "elm.rect.date.left.pad"))
{
- switch (wd->date_format)
- {
- case DATE_FORMAT_YYDDMM:
- case DATE_FORMAT_YYMMDD:
- elm_object_focus(wd->date[DATE_YEAR]);
- break;
- case DATE_FORMAT_MMDDYY:
- case DATE_FORMAT_MMYYDD:
- elm_object_focus(wd->date[DATE_MON]);
- break;
- case DATE_FORMAT_DDMMYY:
- case DATE_FORMAT_DDYYMM:
- elm_object_focus(wd->date[DATE_DAY]);
- }
+ switch (wd->date_format)
+ {
+ case DATE_FORMAT_YYDDMM:
+ case DATE_FORMAT_YYMMDD:
+ elm_object_focus(wd->date[DATE_YEAR]);
+ break;
+ case DATE_FORMAT_MMDDYY:
+ case DATE_FORMAT_MMYYDD:
+ elm_object_focus(wd->date[DATE_MON]);
+ break;
+ case DATE_FORMAT_DDMMYY:
+ case DATE_FORMAT_DDYYMM:
+ elm_object_focus(wd->date[DATE_DAY]);
+ }
}
else if (!strcmp(source, "elm.rect.date.right.pad"))
{
- switch (wd->date_format)
- {
- case DATE_FORMAT_MMDDYY:
- case DATE_FORMAT_DDMMYY:
- elm_object_focus(wd->date[DATE_YEAR]);
- break;
- case DATE_FORMAT_DDYYMM:
- case DATE_FORMAT_YYDDMM:
- elm_object_focus(wd->date[DATE_MON]);
- break;
- case DATE_FORMAT_YYMMDD:
- case DATE_FORMAT_MMYYDD:
- elm_object_focus(wd->date[DATE_DAY]);
- }
+ switch (wd->date_format)
+ {
+ case DATE_FORMAT_MMDDYY:
+ case DATE_FORMAT_DDMMYY:
+ elm_object_focus(wd->date[DATE_YEAR]);
+ break;
+ case DATE_FORMAT_DDYYMM:
+ case DATE_FORMAT_YYDDMM:
+ elm_object_focus(wd->date[DATE_MON]);
+ break;
+ case DATE_FORMAT_YYMMDD:
+ case DATE_FORMAT_MMYYDD:
+ elm_object_focus(wd->date[DATE_DAY]);
+ }
}
}
focus_obj = elm_widget_focused_object_get(obj);
if (focus_obj == obj)
{
- if (wd->layout == ELM_DATEFIELD_LAYOUT_TIME)
- elm_object_focus(wd->time[TIME_HOUR]);
-
- else if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME || wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
- {
- switch (wd->date_format)
- {
- case DATE_FORMAT_YYDDMM:
- case DATE_FORMAT_YYMMDD:
- elm_object_focus(wd->date[DATE_YEAR]);
- break;
- case DATE_FORMAT_MMDDYY:
- case DATE_FORMAT_MMYYDD:
- elm_object_focus(wd->date[DATE_MON]);
- break;
- case DATE_FORMAT_DDMMYY:
- case DATE_FORMAT_DDYYMM:
- elm_object_focus(wd->date[DATE_DAY]);
- }
- }
+ if (wd->layout == ELM_DATEFIELD_LAYOUT_TIME)
+ elm_object_focus(wd->time[TIME_HOUR]);
+
+ else if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME || wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
+ {
+ switch (wd->date_format)
+ {
+ case DATE_FORMAT_YYDDMM:
+ case DATE_FORMAT_YYMMDD:
+ elm_object_focus(wd->date[DATE_YEAR]);
+ break;
+ case DATE_FORMAT_MMDDYY:
+ case DATE_FORMAT_MMYYDD:
+ elm_object_focus(wd->date[DATE_MON]);
+ break;
+ case DATE_FORMAT_DDMMYY:
+ case DATE_FORMAT_DDYYMM:
+ elm_object_focus(wd->date[DATE_DAY]);
+ }
+ }
}
wd->idler = NULL;
return EINA_FALSE;
if (wd->idler)
{
- ecore_idler_del(wd->idler);
- wd->idler = NULL;
+ ecore_idler_del(wd->idler);
+ wd->idler = NULL;
}
if (obj == wd->date[DATE_YEAR])
if (obj == wd->date[DATE_YEAR])
{
- if (strlen(elm_entry_entry_get(wd->date[DATE_YEAR]))) wd->year = atoi(elm_entry_entry_get(wd->date[DATE_YEAR]));
- wd->year = _check_date_boundary(data, wd->year, DATE_YEAR);
- sprintf(str, "%d", wd->year);
- elm_entry_entry_set(wd->date[DATE_YEAR], str);
-
- //check month boundary
- if(wd->month != (num = _check_date_boundary(data, wd->month, DATE_MON)))
- {
- wd->month = num;
- elm_entry_entry_set(wd->date[DATE_MON], month_label[wd->month-1]);
- }
- //check day boundary
- if (wd->day != (num = _check_date_boundary(data, wd->day, DATE_DAY)))
- {
- wd->day = num;
- sprintf(str, "%d", wd->day);
- elm_entry_entry_set(wd->date[DATE_DAY], str);
- }
- edje_object_signal_emit(wd->base, "elm,state,year,focus,out", "elm");
+ if (strlen(elm_entry_entry_get(wd->date[DATE_YEAR])))
+ wd->year = atoi(elm_entry_entry_get(wd->date[DATE_YEAR]));
+ wd->year = _check_date_boundary(data, wd->year, DATE_YEAR);
+ sprintf(str, "%d", wd->year);
+ elm_entry_entry_set(wd->date[DATE_YEAR], str);
+ //check month boundary
+ if (wd->month != (num = _check_date_boundary(data, wd->month, DATE_MON)))
+ {
+ wd->month = num;
+ elm_entry_entry_set(wd->date[DATE_MON], month_label[wd->month-1]);
+ }
+ //check day boundary
+ if (wd->day != (num = _check_date_boundary(data, wd->day, DATE_DAY)))
+ {
+ wd->day = num;
+ sprintf(str, "%d", wd->day);
+ elm_entry_entry_set(wd->date[DATE_DAY], str);
+ }
+ edje_object_signal_emit(wd->base, "elm,state,year,focus,out", "elm");
}
else if (obj == wd->date[DATE_MON])
{
- if(wd->month != (num = _check_date_boundary(data, wd->month, DATE_MON)))
- {
- wd->month = num;
- elm_entry_entry_set(wd->date[DATE_MON], month_label[wd->month-1]);
- }
- //check day boundary
- if (wd->day != (num = _check_date_boundary(data, wd->day, DATE_DAY)))
- {
- wd->day = num;
- sprintf(str, "%d", wd->day);
- elm_entry_entry_set(wd->date[DATE_DAY], str);
- }
- edje_object_signal_emit(wd->base, "elm,state,month,focus,out", "elm");
- }
+ if (wd->month != (num = _check_date_boundary(data, wd->month, DATE_MON)))
+ {
+ wd->month = num;
+ elm_entry_entry_set(wd->date[DATE_MON], month_label[wd->month-1]);
+ }
+ //check day boundary
+ if (wd->day != (num = _check_date_boundary(data, wd->day, DATE_DAY)))
+ {
+ wd->day = num;
+ sprintf(str, "%d", wd->day);
+ elm_entry_entry_set(wd->date[DATE_DAY], str);
+ }
+ edje_object_signal_emit(wd->base, "elm,state,month,focus,out", "elm");
+ }
else if (obj == wd->date[DATE_DAY])
{
- if (strlen(elm_entry_entry_get(wd->date[DATE_DAY]))) wd->day = atoi(elm_entry_entry_get(wd->date[DATE_DAY]));
- wd->day = _check_date_boundary(data, wd->day, DATE_DAY);
- sprintf(str, "%d", wd->day);
- elm_entry_entry_set(wd->date[DATE_DAY], str);
- edje_object_signal_emit(wd->base, "elm,state,day,focus,out", "elm");
+ if (strlen(elm_entry_entry_get(wd->date[DATE_DAY])))
+ wd->day = atoi(elm_entry_entry_get(wd->date[DATE_DAY]));
+ wd->day = _check_date_boundary(data, wd->day, DATE_DAY);
+ sprintf(str, "%d", wd->day);
+ elm_entry_entry_set(wd->date[DATE_DAY], str);
+ edje_object_signal_emit(wd->base, "elm,state,day,focus,out", "elm");
}
else if (obj == wd->time[TIME_HOUR])
{
- if (strlen(elm_entry_entry_get(wd->time[TIME_HOUR]))) num = atoi(elm_entry_entry_get(wd->time[TIME_HOUR]));
- else num = wd->hour;
-
- if (!wd->time_mode) // 24 mode
- {
- if (num > HOUR_24H_MAXIMUM) num = HOUR_24H_MAXIMUM;
- wd->hour = num;
- }
- else // 12 mode
- {
- if (num > HOUR_24H_MAXIMUM || num == 0)
- {
- num = HOUR_12H_MAXIMUM;
- wd->pm = EINA_FALSE;
- }
- else if (num > HOUR_12H_MAXIMUM)
- {
- num -= HOUR_12H_MAXIMUM;
- wd->pm = EINA_TRUE;
- }
- wd->hour = (wd->pm == EINA_TRUE)? num + HOUR_12H_MAXIMUM : num;
- if((wd->hour % 12) == 0) wd->hour -= HOUR_12H_MAXIMUM;
-
- if (wd->pm) edje_object_part_text_set(wd->base, "elm.text.ampm", "PM");
- else edje_object_part_text_set(wd->base, "elm.text.ampm", "AM");
- }
- sprintf(str, "%02d", num);
- elm_entry_entry_set(wd->time[TIME_HOUR], str);
- edje_object_signal_emit(wd->base, "elm,state,hour,focus,out", "elm");
+ if (strlen(elm_entry_entry_get(wd->time[TIME_HOUR])))
+ num = atoi(elm_entry_entry_get(wd->time[TIME_HOUR]));
+ else num = wd->hour;
+
+ if (!wd->time_mode) // 24 mode
+ {
+ if (num > HOUR_24H_MAXIMUM) num = HOUR_24H_MAXIMUM;
+ wd->hour = num;
+ }
+ else // 12 mode
+ {
+ if (num > HOUR_24H_MAXIMUM || num == 0)
+ {
+ num = HOUR_12H_MAXIMUM;
+ wd->pm = EINA_FALSE;
+ }
+ else if (num > HOUR_12H_MAXIMUM)
+ {
+ num -= HOUR_12H_MAXIMUM;
+ wd->pm = EINA_TRUE;
+ }
+ wd->hour = (wd->pm == EINA_TRUE)? num + HOUR_12H_MAXIMUM : num;
+ if ((wd->hour % 12) == 0) wd->hour -= HOUR_12H_MAXIMUM;
+ if (wd->pm) edje_object_part_text_set(wd->base, "elm.text.ampm", "PM");
+ else edje_object_part_text_set(wd->base, "elm.text.ampm", "AM");
+ }
+ sprintf(str, "%02d", num);
+ elm_entry_entry_set(wd->time[TIME_HOUR], str);
+ edje_object_signal_emit(wd->base, "elm,state,hour,focus,out", "elm");
}
else if (obj == wd->time[TIME_MIN])
{
- if (strlen(elm_entry_entry_get(wd->time[TIME_MIN]))) wd->min = atoi(elm_entry_entry_get(wd->time[TIME_MIN]));
- if (wd->min > MIN_MAXIMUM) wd->min = MIN_MAXIMUM;
+ if (strlen(elm_entry_entry_get(wd->time[TIME_MIN])))
+ wd->min = atoi(elm_entry_entry_get(wd->time[TIME_MIN]));
+ if (wd->min > MIN_MAXIMUM) wd->min = MIN_MAXIMUM;
- sprintf(str, "%02d", wd->min);
- elm_entry_entry_set(wd->time[TIME_MIN], str);
- edje_object_signal_emit(wd->base, "elm,state,min,focus,out", "elm");
+ sprintf(str, "%02d", wd->min);
+ elm_entry_entry_set(wd->time[TIME_MIN], str);
+ edje_object_signal_emit(wd->base, "elm,state,min,focus,out", "elm");
}
- evas_object_smart_callback_call(data, "changed", NULL);
+ evas_object_smart_callback_call(data, "changed", NULL);
}
static void
_entry_focus_move(Evas_Object *obj, Evas_Object *focus_obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
-
if (!wd) return;
if (focus_obj == wd->date[DATE_YEAR])
{
- switch (wd->date_format)
- {
- case DATE_FORMAT_DDMMYY:
- case DATE_FORMAT_MMDDYY:
- if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME)
- elm_object_focus(wd->time[TIME_HOUR]);
- else if (wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
- elm_object_unfocus(wd->date[DATE_YEAR]);
- break;
- case DATE_FORMAT_DDYYMM:
- case DATE_FORMAT_YYMMDD:
- elm_object_focus(wd->date[DATE_MON]);
- break;
- case DATE_FORMAT_MMYYDD:
- case DATE_FORMAT_YYDDMM:
- elm_object_focus(wd->date[DATE_DAY]);
- }
+ switch (wd->date_format)
+ {
+ case DATE_FORMAT_DDMMYY:
+ case DATE_FORMAT_MMDDYY:
+ {
+ if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME)
+ elm_object_focus(wd->time[TIME_HOUR]);
+ else if (wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
+ elm_object_unfocus(wd->date[DATE_YEAR]);
+ }
+ break;
+ case DATE_FORMAT_DDYYMM:
+ case DATE_FORMAT_YYMMDD:
+ elm_object_focus(wd->date[DATE_MON]);
+ break;
+ case DATE_FORMAT_MMYYDD:
+ case DATE_FORMAT_YYDDMM:
+ elm_object_focus(wd->date[DATE_DAY]);
+ }
}
else if (focus_obj == wd->date[DATE_MON])
{
- switch (wd->date_format)
- {
- case DATE_FORMAT_DDYYMM:
- case DATE_FORMAT_YYDDMM:
- if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME)
- elm_object_focus(wd->time[TIME_HOUR]);
- else if (wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
- elm_object_unfocus(wd->date[DATE_MON]);
- break;
- case DATE_FORMAT_DDMMYY:
- case DATE_FORMAT_MMYYDD:
- elm_object_focus(wd->date[DATE_YEAR]);
- break;
- case DATE_FORMAT_MMDDYY:
- case DATE_FORMAT_YYMMDD:
- elm_object_focus(wd->date[DATE_DAY]);
- }
+ switch (wd->date_format)
+ {
+ case DATE_FORMAT_DDYYMM:
+ case DATE_FORMAT_YYDDMM:
+ {
+ if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME)
+ elm_object_focus(wd->time[TIME_HOUR]);
+ else if (wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
+ elm_object_unfocus(wd->date[DATE_MON]);
+ }
+ break;
+ case DATE_FORMAT_DDMMYY:
+ case DATE_FORMAT_MMYYDD:
+ elm_object_focus(wd->date[DATE_YEAR]);
+ break;
+ case DATE_FORMAT_MMDDYY:
+ case DATE_FORMAT_YYMMDD:
+ elm_object_focus(wd->date[DATE_DAY]);
+ }
}
else if (focus_obj == wd->date[DATE_DAY])
{
- switch (wd->date_format)
- {
- case DATE_FORMAT_YYMMDD:
- case DATE_FORMAT_MMYYDD:
- if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME)
- elm_object_focus(wd->time[TIME_HOUR]);
- else if (wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
- elm_object_unfocus(wd->date[DATE_DAY]);
- break;
- case DATE_FORMAT_DDYYMM:
- case DATE_FORMAT_MMDDYY:
- elm_object_focus(wd->date[DATE_YEAR]);
- break;
- case DATE_FORMAT_DDMMYY:
- case DATE_FORMAT_YYDDMM:
- elm_object_focus(wd->date[DATE_MON]);
- }
+ switch (wd->date_format)
+ {
+ case DATE_FORMAT_YYMMDD:
+ case DATE_FORMAT_MMYYDD:
+ {
+ if (wd->layout == ELM_DATEFIELD_LAYOUT_DATEANDTIME)
+ elm_object_focus(wd->time[TIME_HOUR]);
+ else if (wd->layout == ELM_DATEFIELD_LAYOUT_DATE)
+ elm_object_unfocus(wd->date[DATE_DAY]);
+ }
+ break;
+ case DATE_FORMAT_DDYYMM:
+ case DATE_FORMAT_MMDDYY:
+ elm_object_focus(wd->date[DATE_YEAR]);
+ break;
+ case DATE_FORMAT_DDMMYY:
+ case DATE_FORMAT_YYDDMM:
+ elm_object_focus(wd->date[DATE_MON]);
+ }
}
else if (focus_obj == wd->time[TIME_HOUR])
elm_object_focus(wd->time[TIME_MIN]);
Widget_Data *wd = elm_widget_data_get(obj);
if (flag == DATE_YEAR)
{
- if (num > wd->y_max) num = wd->y_max;
- else if (num < wd->y_min) num = wd->y_min;
- return num;
+ if (num > wd->y_max) num = wd->y_max;
+ else if (num < wd->y_min) num = wd->y_min;
+ return num;
}
else if (flag == DATE_MON)
{
- if (wd->year == wd->y_max && num > wd->m_max) num = wd->m_max;
- else if (wd->year == wd->y_min && num < wd->m_min) num = wd->m_min;
- else if (num > MONTH_MAXIMUM) num = MONTH_MAXIMUM;
- else if (num <= 0) num = 1;
- return num;
+ if (wd->year == wd->y_max && num > wd->m_max) num = wd->m_max;
+ else if (wd->year == wd->y_min && num < wd->m_min) num = wd->m_min;
+ else if (num > MONTH_MAXIMUM) num = MONTH_MAXIMUM;
+ else if (num <= 0) num = 1;
+ return num;
}
else if (flag == DATE_DAY)
{
- int day_of_month = _maximum_day_get(wd->year, wd->month);
- if (wd->year == wd->y_max && wd->month == wd->m_max && num > wd->d_max) num = wd->d_max;
- else if (wd->year == wd->y_min && wd->month == wd->m_min && num < wd->d_min) num = wd->d_min;
- else if (num > day_of_month) num = day_of_month;
- else if (num <= 0) num = 1;
- return num;
+ int day_of_month = _maximum_day_get(wd->year, wd->month);
+ if (wd->year == wd->y_max && wd->month == wd->m_max && num > wd->d_max) num = wd->d_max;
+ else if (wd->year == wd->y_min && wd->month == wd->m_min && num < wd->d_min) num = wd->d_min;
+ else if (num > day_of_month) num = day_of_month;
+ else if (num <= 0) num = 1;
+ return num;
}
return num;
}
int day_of_month = 0;
if (year == 0 || month == 0) return 0;
- switch (month) {
- case 4:
- case 6:
- case 9:
+ switch (month)
+ {
+ case 4:
+ case 6:
+ case 9:
case 11:
- day_of_month = 30;
- break;
+ day_of_month = 30;
+ break;
case 2:
- if ((!(year % 4) && (year % 100)) || !(year % 400))
- day_of_month = 29;
- else
- day_of_month = 28;
- break;
+ {
+ if ((!(year % 4) && (year % 100)) || !(year % 400))
+ day_of_month = 29;
+ else
+ day_of_month = 28;
+ }
+ break;
default:
- day_of_month = 31;
- break;
- }
+ day_of_month = 31;
+ break;
+ }
return day_of_month;
}
wd->editing = EINA_FALSE;
else if (focus_obj == wd->date[DATE_DAY])
{
- if (strlen == DAY_MAX_LENGTH || atoi(elm_entry_entry_get(focus_obj)) > 3)
- wd->editing = EINA_FALSE;
+ if (strlen == DAY_MAX_LENGTH || atoi(elm_entry_entry_get(focus_obj)) > 3)
+ wd->editing = EINA_FALSE;
}
else if (focus_obj == wd->time[TIME_HOUR])
- {
- if (strlen == TIME_MAX_LENGTH || atoi(elm_entry_entry_get(focus_obj)) > 2)
- wd->editing = EINA_FALSE;
+ {
+ if (strlen == TIME_MAX_LENGTH || atoi(elm_entry_entry_get(focus_obj)) > 2)
+ wd->editing = EINA_FALSE;
}
else if (focus_obj == wd->time[TIME_MIN])
{
- if (strlen == TIME_MAX_LENGTH || atoi(elm_entry_entry_get(focus_obj)) > 5)
- wd->editing = EINA_FALSE;
+ if (strlen == TIME_MAX_LENGTH || atoi(elm_entry_entry_get(focus_obj)) > 5)
+ wd->editing = EINA_FALSE;
}
return !wd->editing;
}
focus_obj = elm_widget_focused_object_get(data);
if (!wd->editing)
{
- elm_entry_entry_set(focus_obj, "");
- wd->editing = EINA_TRUE;
+ elm_entry_entry_set(focus_obj, "");
+ wd->editing = EINA_TRUE;
}
-
if (focus_obj == wd->date[DATE_MON])
{
- wd->month = atoi(ev->str);
- strcpy(str, month_label[wd->month-1]);
+ wd->month = atoi(ev->str);
+ strcpy(str, month_label[wd->month-1]);
}
else
{
- strcpy(str, elm_entry_entry_get(focus_obj));
- str[strlen(str)] = ev->str[0];
+ strcpy(str, elm_entry_entry_get(focus_obj));
+ str[strlen(str)] = ev->str[0];
}
elm_entry_entry_set(focus_obj, str);
if (!wd) return;
- if (wd->func)
+ if (wd->func)
wd->func(wd->func_data, data, value);
}
sprintf(str, "%d", wd->hour);
else
{
- if (wd->hour >= HOUR_12H_MAXIMUM)
- {
- wd->pm = EINA_TRUE;
- edje_object_part_text_set(wd->base, "elm.text.ampm", "PM");
- }
- else
- {
- wd->pm = EINA_FALSE;
- edje_object_part_text_set(wd->base, "elm.text.ampm", "AM");
- }
-
- if (wd->hour > HOUR_12H_MAXIMUM)
- sprintf(str, "%02d", wd->hour - HOUR_12H_MAXIMUM);
- else if (wd->hour == 0)
- sprintf(str, "%02d", HOUR_12H_MAXIMUM);
- else
- sprintf(str, "%02d", wd->hour);
+ if (wd->hour >= HOUR_12H_MAXIMUM)
+ {
+ wd->pm = EINA_TRUE;
+ edje_object_part_text_set(wd->base, "elm.text.ampm", "PM");
+ }
+ else
+ {
+ wd->pm = EINA_FALSE;
+ edje_object_part_text_set(wd->base, "elm.text.ampm", "AM");
+ }
+
+ if (wd->hour > HOUR_12H_MAXIMUM)
+ sprintf(str, "%02d", wd->hour - HOUR_12H_MAXIMUM);
+ else if (wd->hour == 0)
+ sprintf(str, "%02d", HOUR_12H_MAXIMUM);
+ else
+ sprintf(str, "%02d", wd->hour);
}
elm_entry_entry_set(wd->time[TIME_HOUR], str);
-
sprintf(str, "%02d", wd->min);
elm_entry_entry_set(wd->time[TIME_MIN], str);
}
for (i = 0; i < DATE_MAX; i++)
{
- wd->date[i] = elm_entry_add(obj);
- elm_entry_single_line_set(wd->date[i], EINA_TRUE);
- elm_entry_context_menu_disabled_set(wd->date[i], EINA_TRUE);
- if (i == DATE_MON) elm_entry_input_panel_layout_set(wd->date[i], ELM_INPUT_PANEL_LAYOUT_MONTH);
- else elm_entry_input_panel_layout_set(wd->date[i], ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
- evas_object_size_hint_weight_set(wd->date[i], EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(wd->date[i], EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_smart_callback_add(wd->date[i], "focused", _entry_focused_cb, obj);
- evas_object_smart_callback_add(wd->date[i], "unfocused", _entry_unfocused_cb, obj);
- evas_object_event_callback_add(wd->date[i], EVAS_CALLBACK_KEY_UP, _entry_key_up_cb, obj);
- elm_widget_sub_object_add(obj, wd->date[i]);
+ wd->date[i] = elm_entry_add(obj);
+ elm_entry_single_line_set(wd->date[i], EINA_TRUE);
+ elm_entry_context_menu_disabled_set(wd->date[i], EINA_TRUE);
+ if (i == DATE_MON) elm_entry_input_panel_layout_set(wd->date[i], ELM_INPUT_PANEL_LAYOUT_MONTH);
+ else elm_entry_input_panel_layout_set(wd->date[i], ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
+ evas_object_size_hint_weight_set(wd->date[i], EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(wd->date[i], EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_smart_callback_add(wd->date[i], "focused", _entry_focused_cb, obj);
+ evas_object_smart_callback_add(wd->date[i], "unfocused", _entry_unfocused_cb, obj);
+ evas_object_event_callback_add(wd->date[i], EVAS_CALLBACK_KEY_UP, _entry_key_up_cb, obj);
+ elm_widget_sub_object_add(obj, wd->date[i]);
}
elm_entry_maximum_bytes_set(wd->date[DATE_YEAR], YEAR_MAX_LENGTH);
elm_entry_maximum_bytes_set(wd->date[DATE_MON], MONTH_MAX_LENGTH);
Widget_Data *wd = elm_widget_data_get(obj);
int i;
- if (!wd) return;
+ if (!wd) return;
for (i = 0; i < TIME_MAX; i++)
{
- wd->time[i] = elm_entry_add(obj);
- elm_entry_single_line_set(wd->time[i], EINA_TRUE);
- elm_entry_context_menu_disabled_set(wd->time[i], EINA_TRUE);
- elm_entry_input_panel_layout_set(wd->time[i], ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
- elm_entry_maximum_bytes_set(wd->time[i], TIME_MAX_LENGTH);
- evas_object_size_hint_weight_set(wd->time[i], EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(wd->time[i], EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_smart_callback_add(wd->time[i], "focused", _entry_focused_cb, obj);
- evas_object_smart_callback_add(wd->time[i], "unfocused", _entry_unfocused_cb, obj);
- evas_object_event_callback_add(wd->time[i], EVAS_CALLBACK_KEY_UP, _entry_key_up_cb, obj);
- elm_widget_sub_object_add(obj, wd->time[i]);
+ wd->time[i] = elm_entry_add(obj);
+ elm_entry_single_line_set(wd->time[i], EINA_TRUE);
+ elm_entry_context_menu_disabled_set(wd->time[i], EINA_TRUE);
+ elm_entry_input_panel_layout_set(wd->time[i], ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
+ elm_entry_maximum_bytes_set(wd->time[i], TIME_MAX_LENGTH);
+ evas_object_size_hint_weight_set(wd->time[i], EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(wd->time[i], EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_smart_callback_add(wd->time[i], "focused", _entry_focused_cb, obj);
+ evas_object_smart_callback_add(wd->time[i], "unfocused", _entry_unfocused_cb, obj);
+ evas_object_event_callback_add(wd->time[i], EVAS_CALLBACK_KEY_UP, _entry_key_up_cb, obj);
+ elm_widget_sub_object_add(obj, wd->time[i]);
}
}
edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.left.pad", _signal_rect_mouse_down, obj);
edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.year.over", _signal_rect_mouse_down, obj);
edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.month.over", _signal_rect_mouse_down, obj);
- edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.day.over", _signal_rect_mouse_down, obj);
+ edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.day.over", _signal_rect_mouse_down, obj);
edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.date.right.pad", _signal_rect_mouse_down, obj);
edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.rect.time.hour.over", _signal_rect_mouse_down, obj);
wd->handler = ecore_event_handler_add(ECORE_IMF_EVENT_COMMIT, _imf_event_commit_cb, obj);
_date_entry_add(obj);
- _time_entry_add(obj);
+ _time_entry_add(obj);
wd->y_min = 1900;
wd->m_min = 1;
wd->d_min = 1;
wd->y_max = 2099;
wd->m_max = 12;
- wd->d_max = 31;
+ wd->d_max = 31;
wd->year = wd->y_min;
wd->month = 1;
wd->day = 1;
if (wd->layout != layout)
{
- wd->layout = layout;
- _theme_hook(obj);
+ wd->layout = layout;
+ _theme_hook(obj);
}
return;
}
if (wd->year > wd->y_max)
{
- wd->year = wd->y_max;
- update = EINA_TRUE;
+ wd->year = wd->y_max;
+ update = EINA_TRUE;
}
if (wd->year == wd->y_max && wd->month > wd->m_max)
{
- wd->month = wd->m_max;
- update = EINA_TRUE;
+ wd->month = wd->m_max;
+ update = EINA_TRUE;
}
if (wd->year == wd->y_max && wd->month == wd->m_max && wd->day > wd->d_max)
{
- wd->day = wd->d_max;
- update = EINA_TRUE;
+ wd->day = wd->d_max;
+ update = EINA_TRUE;
}
if (update) _date_update(obj);
if (wd->year < wd->y_min)
{
- wd->year = wd->y_min;
- update = EINA_TRUE;
+ wd->year = wd->y_min;
+ update = EINA_TRUE;
}
if (wd->year == wd->y_min && wd->month < wd->m_min)
{
- wd->month = wd->m_min;
- update = EINA_TRUE;
+ wd->month = wd->m_min;
+ update = EINA_TRUE;
}
if (wd->year == wd->y_min && wd->month == wd->m_min && wd->day < wd->d_min)
{
- wd->day = wd->d_min;
- update = EINA_TRUE;
+ wd->day = wd->d_min;
+ update = EINA_TRUE;
}
if (update) _date_update(obj);
if (wd->time_mode != mode)
{
- char str[YEAR_MAX_LENGTH+1];
-
- wd->time_mode = mode;
- if (!wd->time_mode) edje_object_signal_emit(wd->base, "elm,state,mode,24h", "elm");
- else edje_object_signal_emit(wd->base, "elm,state,mode,12h", "elm");
-
- if (!wd->time_mode) //24 mode
- sprintf(str, "%d", wd->hour);
- else
- {
- if (wd->hour >= HOUR_12H_MAXIMUM)
- {
- wd->pm = EINA_TRUE;
- edje_object_part_text_set(wd->base, "elm.text.ampm", "PM");
- }
- else
- {
- wd->pm = EINA_FALSE;
- edje_object_part_text_set(wd->base, "elm.text.ampm", "AM");
- }
-
- if (wd->hour > HOUR_12H_MAXIMUM)
- sprintf(str, "%d", wd->hour - HOUR_12H_MAXIMUM);
- else if (wd->hour == 0)
- sprintf(str, "%d", HOUR_12H_MAXIMUM);
- else
- sprintf(str, "%d", wd->hour);
- }
- elm_entry_entry_set(wd->time[TIME_HOUR], str);
- }
+ char str[YEAR_MAX_LENGTH+1];
+
+ wd->time_mode = mode;
+ if (!wd->time_mode) edje_object_signal_emit(wd->base, "elm,state,mode,24h", "elm");
+ else edje_object_signal_emit(wd->base, "elm,state,mode,12h", "elm");
+
+ if (!wd->time_mode) //24 mode
+ sprintf(str, "%d", wd->hour);
+ else
+ {
+ if (wd->hour >= HOUR_12H_MAXIMUM)
+ {
+ wd->pm = EINA_TRUE;
+ edje_object_part_text_set(wd->base, "elm.text.ampm", "PM");
+ }
+ else
+ {
+ wd->pm = EINA_FALSE;
+ edje_object_part_text_set(wd->base, "elm.text.ampm", "AM");
+ }
+
+ if (wd->hour > HOUR_12H_MAXIMUM)
+ sprintf(str, "%d", wd->hour - HOUR_12H_MAXIMUM);
+ else if (wd->hour == 0)
+ sprintf(str, "%d", HOUR_12H_MAXIMUM);
+ else
+ sprintf(str, "%d", wd->hour);
+ }
+ elm_entry_entry_set(wd->time[TIME_HOUR], str);
+ }
}
/**
if (!wd || !fmt) return;
j = strlen(sig);
- while (j < 32) {
- sig[j++] = tolower(fmt[i++]);
- }
+ while (j < 32)
+ {
+ sig[j++] = tolower(fmt[i++]);
+ }
edje_object_signal_emit(wd->base, sig, "elm");
if (!wd) return;
if (wd->func && (wd->func != pEventCallbackFunc))
- elm_datefield_input_panel_state_callback_del(obj, wd->func);
+ elm_datefield_input_panel_state_callback_del(obj, wd->func);
if (wd->func != pEventCallbackFunc)
{
- wd->func = pEventCallbackFunc;
- wd->func_data = data;
+ wd->func = pEventCallbackFunc;
+ wd->func_data = data;
- for (i = 0; i < DATE_MAX; i++)
- ecore_imf_context_input_panel_event_callback_add(
- elm_entry_imf_context_get(wd->date[i]), ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback, obj);
+ for (i = 0; i < DATE_MAX; i++)
+ ecore_imf_context_input_panel_event_callback_add(
+ elm_entry_imf_context_get(wd->date[i]), ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback, obj);
- for (i = 0; i < TIME_MAX; i++)
- ecore_imf_context_input_panel_event_callback_add(
- elm_entry_imf_context_get(wd->time[i]), ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback, obj);
- }
+ for (i = 0; i < TIME_MAX; i++)
+ ecore_imf_context_input_panel_event_callback_add(
+ elm_entry_imf_context_get(wd->time[i]), ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback, obj);
+ }
}
/**
if (wd->func && wd->func == pEventCallbackFunc)
{
- for (i = 0; i < DATE_MAX; i++)
- ecore_imf_context_input_panel_event_callback_del(
- elm_entry_imf_context_get(wd->date[i]), ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback);
+ for (i = 0; i < DATE_MAX; i++)
+ ecore_imf_context_input_panel_event_callback_del(
+ elm_entry_imf_context_get(wd->date[i]), ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback);
- for (i = 0; i < TIME_MAX; i++)
- ecore_imf_context_input_panel_event_callback_del(
- elm_entry_imf_context_get(wd->time[i]), ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback);
+ for (i = 0; i < TIME_MAX; i++)
+ ecore_imf_context_input_panel_event_callback_del(
+ elm_entry_imf_context_get(wd->time[i]), ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_event_callback);
- wd->func = NULL;
- wd->func_data = NULL;
+ wd->func = NULL;
+ wd->func_data = NULL;
}
}