3 Copyright (c) 2000-2012 Samsung Electronics Co., Ltd All Rights Reserved
5 This file is part of org.tizen.efl-calendar
6 Written by Taeho Kang <taeho84.kang@samsung.com>
8 PROPRIETARY/CONFIDENTIAL
10 This software is the confidential and proprietary information of
11 SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
12 disclose such Confidential Information and shall use it only in
13 accordance with the terms of the license agreement you entered
14 into with SAMSUNG ELECTRONICS.
16 SAMSUNG make no representations or warranties about the suitability
17 of the software, either express or implied, including but not limited
18 to the implied warranties of merchantability, fitness for a particular
19 purpose, or non-infringement. SAMSUNG shall not be liable for any
20 damages suffered by licensee as a result of using, modifying or
21 distributing this software or its derivatives.
26 #include <calendar-svc-provider.h>
28 #include "edit-alarm.h"
31 #define _DAY (60 * 24)
32 #define _WEEK (60 * 24 * 7)
37 static const char *_name = "calendar/edit/alarm";
43 Evas_Object *ly; // self
45 Evas_Object *sc; // scroller
46 Evas_Object *bx; // box
48 Evas_Object *r_grp; // radio
49 Evas_Object *r_grp_member[8];
51 Evas_Object *e_custom;
52 Evas_Object *b_custom;
55 Evas_Object *rect; // for scrolling
59 Elm_Object_Item *pre_selected_it;
67 Evas_Coord_Rectangle ctx_r;
69 Eina_Bool is_imf_show;
72 struct __cal_edit_alarm_button {
76 static struct __cal_edit_alarm_button cal_edit_alarm_button[] = {
83 static Elm_Entry_Filter_Limit_Size _limit_2char = {
86 static Elm_Entry_Filter_Accept_Set _digit_only = {
87 .accepted = "0123456789",
90 static Elm_Genlist_Item_Class itc_seperator, itc_1text_1icon, itc_1icon, itc_2text_3icon;
92 typedef struct __cal_edit_alarm_item_data cal_edit_alarm_item_data;
93 struct __cal_edit_alarm_item_data
99 Evas_Object *item_radio;
102 enum cal_edit_alarm_genlist_item_type{
116 static cal_edit_alarm_item_data cal_edit_alarm_item_datas[] =
118 {NULL,_GTYPE_SPEA, 0, NULL, NULL},
119 {NULL,_GTYPE_OFF, _OFF, NULL, NULL},
120 {NULL,_GTYPE_ON_TIME, 0, NULL, NULL},
121 {NULL,_GTYPE_5_MIN, 5, NULL, NULL},
122 {NULL,_GTYPE_15_MIN, 15, NULL, NULL},
123 {NULL,_GTYPE_1_HOUR, _HOUR, NULL, NULL},
124 {NULL,_GTYPE_1_DAY, _DAY, NULL, NULL},
125 {NULL,_GTYPE_1_WEEK, _WEEK, NULL, NULL},
126 {NULL,_GTYPE_CUSTOMIZE, _CUSTOM, NULL, NULL},
130 static void __cal_edit_alarm_custom_ctx_selected_callback(void *data, Evas_Object *obj, void *ei);
132 static void __cal_edit_alarm_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
136 struct _priv *p = data;
142 evas_object_del(p->rect);
145 evas_object_del(p->ctx);
151 static void __cal_edit_alarm_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
154 Evas_Event_Mouse_Up *ev = ei;
157 if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
160 p = CAL_UTIL_GET_PRIV_DATA(obj);
163 elm_radio_value_set(p->r_grp, val);
164 evas_object_size_hint_min_set(p->rect, 0, 0);
168 static void __cal_edit_alarm_set_custom(struct _priv *p)
170 elm_radio_value_set(p->r_grp, _GTYPE_CUSTOMIZE);
172 elm_object_focus_set(p->e_custom, EINA_TRUE);
173 elm_entry_cursor_end_set(p->e_custom);
176 static void __cal_edit_alarm_custom_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
178 struct _priv *p = data;
179 Evas_Event_Mouse_Up *ev = ei;
181 if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
184 __cal_edit_alarm_set_custom(p);
187 static inline void __cal_edit_alarm_set_button_label(struct _priv *p)
189 elm_object_text_set(p->b_custom, _(cal_edit_alarm_button[p->bt_idx].label));
192 static void __cal_edit_alarm_custom_popup_hide_callback(void *data, Evas_Object *obj, void *ei)
194 c_retm_if(!data, "data is null");
195 c_retm_if(!obj, "obj is null");
197 struct _priv* p = data;
199 evas_object_del(obj);
202 static void __cal_edit_create_ctx_popup(struct _priv* p)
204 c_retm_if(!p, "p is NULL.");
206 Evas_Object *ctx = p->ctx;
209 evas_object_del(ctx);
211 p->ctx = elm_ctxpopup_add(p->ad->nv);
212 c_retm_if(!p->ctx, "elm_ctxpopup_add(p->ad->nv) returned null");
215 evas_object_data_set(ctx, "priv", p);
217 evas_object_smart_callback_add(ctx, "dismissed", __cal_edit_alarm_custom_popup_hide_callback, p);
218 elm_ctxpopup_item_append(ctx, S_("IDS_COM_BODY_MINUTE_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)0);
219 elm_ctxpopup_item_append(ctx, S_("IDS_COM_POP_HOUR_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)1);
220 elm_ctxpopup_item_append(ctx, C_("IDS_COM_POP_DAY_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)2);
221 elm_ctxpopup_item_append(ctx, C_("IDS_COM_POP_WEEK_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)3);
224 static void __cal_edit_alarm_custom_button_callback(void *data, Evas_Object *obj, void *ei)
226 struct _priv* p = data;
227 c_retm_if(!p, "p is null");
229 __cal_edit_create_ctx_popup(p);
230 c_retm_if(!p->ctx, "p is NULL.");
231 if (!p->is_imf_show) {
232 Evas_Coord x , y, w, h;
233 evas_object_geometry_get(p->b_custom, &x, &y, &w, &h);
234 evas_object_move(p->ctx, x+w, y);
236 evas_object_move(p->ctx, p->ctx_r.x+p->ctx_r.w, p->ctx_r.y);
238 evas_object_show(p->ctx);
241 static void __cal_edit_alarm_custom_ctx_selected_callback(void *data, Evas_Object *obj, void *ei)
243 struct _priv* p = CAL_UTIL_GET_PRIV_DATA(obj);
244 c_retm_if(!p, "p is NULL.");
246 int index = (int)data;
248 __cal_edit_alarm_set_button_label(p);
250 __cal_edit_alarm_set_custom(p);
251 p->selected = _GTYPE_CUSTOMIZE;
252 __cal_edit_alarm_custom_popup_hide_callback(p,p->ctx,ei);
255 static Evas_Object* __cal_edit_alarm_add_button(Evas_Object *parent, struct _priv *p)
259 bt = elm_button_add(parent);
263 elm_object_focus_allow_set(bt, EINA_FALSE);
264 evas_object_propagate_events_set(bt, EINA_FALSE);
265 evas_object_smart_callback_add(bt, "clicked", __cal_edit_alarm_custom_button_callback, p);
270 static inline void __cal_edit_alarm_get_week_str(int week, char *buf, int sz)
272 snprintf(buf, sz, "%d %s %s", week,C_("IDS_COM_POP_WEEK_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
275 static inline void __cal_edit_alarm_get_day_str(int day, char *buf, int sz)
277 snprintf(buf, sz, "%d %s %s", day, C_("IDS_COM_POP_DAY_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
280 static inline void __cal_edit_alarm_get_hour_str(int hour, char *buf, int sz)
282 snprintf(buf, sz, "%d %s %s", hour, S_("IDS_COM_POP_HOUR_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
285 static inline void __cal_edit_alarm_get_min_str(int min, char *buf, int sz)
287 snprintf(buf, sz, "%d %s %s", min, S_("IDS_COM_BODY_MINUTE_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
290 static inline void __cal_edit_alarm_get_str(int min, char *buf, int sz)
292 if ((min % _WEEK) == 0) {
293 __cal_edit_alarm_get_week_str(min / _WEEK, buf, sz);
297 if ((min % _DAY) == 0) {
298 __cal_edit_alarm_get_day_str(min / _DAY, buf, sz);
302 if ((min % _HOUR) == 0) {
303 __cal_edit_alarm_get_hour_str(min / _HOUR, buf, sz);
307 __cal_edit_alarm_get_min_str(min, buf, sz);
310 void cal_edit_alarm_get_alarm_str(int min, char *buf, int sz)
316 g_snprintf(buf,sz,"%s",S_("IDS_COM_BODY_OFF"));
321 g_snprintf(buf,sz,"%s", C_("IDS_CLD_BODY_ON_TIME"));
325 __cal_edit_alarm_get_str(min, buf, sz);
328 int cal_edit_alarm_get_min(int tick, cal_sch_remind_tick_unit_t unit)
335 case CAL_SCH_TIME_UNIT_MONTH:
336 min = min * _DAY * 30; // TODO: BUG!! not used!!
338 case CAL_SCH_TIME_UNIT_WEEK:
341 case CAL_SCH_TIME_UNIT_DAY:
344 case CAL_SCH_TIME_UNIT_HOUR:
347 default: // CAL_SCH_TIME_UNIT_MIN
354 void cal_edit_alarm_get_tick(int min, int *tick, cal_sch_remind_tick_unit_t *unit)
361 *unit = CAL_SCH_TIME_UNIT_MIN;
365 if ((min % _WEEK) == 0) {
367 *unit = CAL_SCH_TIME_UNIT_WEEK;
371 if ((min % _DAY) == 0) {
373 *unit = CAL_SCH_TIME_UNIT_DAY;
377 if ((min % _HOUR) == 0) {
379 *unit = CAL_SCH_TIME_UNIT_HOUR;
384 *unit = CAL_SCH_TIME_UNIT_MIN;
387 static char *__cal_edit_alarm_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
389 cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data*)data;
390 int type = (int)item_data->type;
391 char buf[1024] = {0};
393 if (!CAL_STRCMP(part, "elm.text"))
404 cal_edit_alarm_get_alarm_str(item_data->data, buf, sizeof(buf));
406 case _GTYPE_CUSTOMIZE:
407 //return strdup(C_("IDS_CLD_BODY_CUSTOMIZE_ATNT"));
414 if (!CAL_STRCMP(part, "elm.text.2"))
416 if(type == _GTYPE_CUSTOMIZE)
418 return strdup(C_("IDS_CLD_BODY_BEFORE_LC"));
425 static void __cal_edit_alarm_genlist_item_delete_callback(void *data, Evas_Object *obj)
428 cal_edit_alarm_item_data*item_data = (cal_edit_alarm_item_data*)data;
430 CAL_ASSERT(item_data->p);
431 struct _priv* p = item_data->p;
433 CAL_ASSERT(p->r_grp_member);
434 p->r_grp_member[item_data->type] = NULL;
439 static Eina_Bool __cal_edit_alarm_get_genlist_item_state(void *data, Evas_Object *obj, const char *part)
444 static void __cal_edit_alarm_set_radio_group(struct _priv *p, Evas_Object *rd, int val)
449 elm_radio_group_add(p->r_grp_member[1], p->r_grp);
450 elm_radio_group_add(p->r_grp_member[2], p->r_grp);
451 elm_radio_group_add(p->r_grp_member[3], p->r_grp);
452 elm_radio_group_add(p->r_grp_member[4], p->r_grp);
453 elm_radio_group_add(p->r_grp_member[5], p->r_grp);
454 elm_radio_group_add(p->r_grp_member[6], p->r_grp);
455 elm_radio_group_add(p->r_grp_member[7], p->r_grp);
458 elm_radio_group_add(rd, p->r_grp);
462 static Evas_Object* __cal_edit_alarm_add_radio(Evas_Object *dg, int val, struct _priv *p, cal_edit_alarm_item_data *item_data)
467 ly = cal_util_add_layout(dg, "dialoguegroup/radio");
471 char buf[1024] = {0};
473 cal_edit_alarm_get_alarm_str(item_data->data, buf, sizeof(buf));
475 edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), "text", buf);
476 evas_object_show(ly);
477 evas_object_data_set(ly, "priv", p);
478 evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_edit_alarm_clicked_callback, (void *)val);
480 rd = elm_radio_add(dg);
486 elm_radio_state_value_set(rd, val);
487 elm_object_part_content_set(ly, "content", rd);
488 item_data->item_radio = rd;
489 *(p->r_grp_member + val) = rd;
491 __cal_edit_alarm_set_radio_group(p, rd, val);
496 static void __cal_edit_alarm_entry_unfocused(void *data, Evas_Object *obj, void *event_info)
498 struct _priv *p = (struct _priv *)data;
501 snprintf(min, 7, "%d", p->min);
502 elm_entry_entry_set(p->e_custom, min);
505 static void __cal_edit_alarm_title_object_visible_changed(void *data, Evas_Object *obj, void *event_info)
507 struct _priv *p = (struct _priv *)data;
508 elm_object_focus_set(p->e_custom, EINA_FALSE);
511 static void __cal_edit_input_panel_event_callback(void *data, Ecore_IMF_Context *imf_context, int value)
513 c_retm_if(!data, "data is null");
514 struct _priv *p = data;
517 case ECORE_IMF_INPUT_PANEL_STATE_SHOW:
518 c_retm_if(!p->b_custom, "p->b_custom is null");
519 cal_util_get_geometry(&p->ctx_r, p->b_custom);
520 p->is_imf_show = EINA_TRUE;
522 case ECORE_IMF_INPUT_PANEL_STATE_HIDE:
523 p->is_imf_show = EINA_FALSE;
528 static Evas_Object* __cal_edit_alarm_add_entry(Evas_Object *parent, struct _priv *p, cal_edit_alarm_item_data *item_data)
531 Ecore_IMF_Context *ic;
533 e = elm_entry_add(parent);
537 elm_object_style_set(e, "font_color_black");
538 elm_entry_single_line_set(e, EINA_TRUE);
539 elm_entry_markup_filter_append(e, elm_entry_filter_limit_size, &_limit_2char);
540 elm_entry_markup_filter_append(e, elm_entry_filter_accept_set, &_digit_only);
541 elm_entry_input_panel_layout_set(e, ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
542 elm_entry_context_menu_disabled_set(e, EINA_TRUE);
544 ic = elm_entry_imf_context_get(e);
548 ecore_imf_context_input_panel_event_callback_add(ic, ECORE_IMF_INPUT_PANEL_STATE_EVENT, __cal_edit_input_panel_event_callback, p);
550 evas_object_smart_callback_add(e, "unfocused", __cal_edit_alarm_entry_unfocused, p);
551 evas_object_smart_callback_add(p->parent, "titleobj,visible,changed", __cal_edit_alarm_title_object_visible_changed, p);
555 static void __cal_edit_alarm_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
557 cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data *)data;
558 struct _priv *p = item_data->p;
559 const char *s = elm_entry_entry_get(p->e_custom);
563 static Evas_Object* __cal_edit_alarm_add_custom_text_object(struct _priv *p, Evas_Object *dg, const char *text)
565 Evas_Object *entry = NULL;
567 if (!text || text[0] == '\0')
570 entry = elm_entry_add(dg);
573 elm_entry_single_line_set(entry, EINA_TRUE);
574 elm_entry_context_menu_disabled_set(entry, EINA_TRUE);
575 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
576 evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_EXPAND);
577 elm_entry_editable_set(entry, EINA_FALSE);
578 elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
579 elm_entry_autocapital_type_set(entry, EINA_TRUE);
581 elm_entry_entry_set(entry, text);
586 static Evas_Object* __cal_edit_alarm_add_custom_layout(Evas_Object *dg, const char *text, int val, struct _priv *p, cal_edit_alarm_item_data *item_data)
592 Evas_Object *entry_custom;
593 Evas_Object *entry_before;
595 ly = cal_util_add_layout(dg, "dialoguegroup/alarm/custom2");
599 entry_custom = __cal_edit_alarm_add_custom_text_object(p, dg, text);
605 elm_object_part_content_set(ly, "text", entry_custom);
607 entry_before = __cal_edit_alarm_add_custom_text_object(p, dg, C_("IDS_CLD_BODY_BEFORE_LC"));
613 elm_object_part_content_set(ly, "text2", entry_before);
615 evas_object_show(ly);
616 evas_object_data_set(ly, "priv", p);
617 evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_edit_alarm_custom_clicked_callback, p);
619 rd = elm_radio_add(dg);
626 elm_radio_state_value_set(rd, val);
627 elm_object_part_content_set(ly, "content", rd);
628 item_data->item_radio = rd;
629 *(p->r_grp_member + val) = rd;
631 __cal_edit_alarm_set_radio_group(p, rd, val);
633 bt = __cal_edit_alarm_add_button(ly, p);
640 elm_object_style_set(bt, "sweep");
641 elm_object_part_content_set(ly, "button", bt);
643 __cal_edit_alarm_set_button_label(p);
645 entry = __cal_edit_alarm_add_entry(ly, p, item_data);
651 elm_object_part_content_set(ly, "input_sw", entry);
652 evas_object_smart_callback_add(entry, "changed", __cal_edit_alarm_entry_changed_callback, item_data);
659 static void __cal_edit_alarm_set_selected_state(cal_edit_alarm_item_data *item_data)
661 struct _priv *p = item_data->p;
662 elm_radio_value_set(p->r_grp, p->selected);
665 static Evas_Object *__cal_edit_alarm_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
667 Evas_Object *e_obj = NULL;
669 cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data*)data;
670 struct _priv *p = item_data->p;
672 if (!CAL_STRCMP(part, "elm.icon"))
674 switch ( item_data->type )
683 e_obj = __cal_edit_alarm_add_radio(obj, item_data->type, p, item_data);
684 __cal_edit_alarm_set_selected_state(item_data);
686 case _GTYPE_CUSTOMIZE:
687 e_obj =__cal_edit_alarm_add_custom_layout(obj, C_("IDS_COM_BODY_CUSTOMISE"), item_data->type, p, item_data);
688 __cal_edit_alarm_set_selected_state(item_data);
689 __cal_edit_alarm_set_button_label(p);
690 snprintf(buf, sizeof(buf), "%d", p->min);
691 elm_entry_entry_set(p->e_custom, buf);
700 static void __cal_edit_alarm_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
702 cal_edit_alarm_item_data *item_data;
703 Elm_Object_Item *it = elm_genlist_selected_item_get(obj);
706 elm_genlist_item_selected_set(it, EINA_FALSE);
708 item_data = (cal_edit_alarm_item_data *)elm_object_item_data_get(it);
710 int type = item_data->type;
711 struct _priv *p = item_data->p;
722 case _GTYPE_CUSTOMIZE:
723 if(_GTYPE_CUSTOMIZE != type)
724 elm_object_focus_set(p->e_custom, EINA_FALSE);
725 elm_radio_value_set(p->r_grp, type);
735 static void __cal_edit_alarm_append_genlist_item(Evas_Object *genlist, struct _priv *p)
738 cal_edit_alarm_item_data *item_data;
739 for(i = 0; i < sizeof(cal_edit_alarm_item_datas)/sizeof(cal_edit_alarm_item_datas[0]); i++)
741 CAL_CALLOC(item_data, 1, cal_edit_alarm_item_data);
744 item_data->type = cal_edit_alarm_item_datas[i].type;
745 item_data->data = cal_edit_alarm_item_datas[i].data;
747 if(_GTYPE_SPEA == item_data->type)
749 item_data->it = elm_genlist_item_append(genlist, &itc_seperator, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
750 elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_NONE);
754 if(_GTYPE_CUSTOMIZE == item_data->type)
756 item_data->it = elm_genlist_item_append(genlist, &itc_1icon, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
760 item_data->it = elm_genlist_item_append(genlist, &itc_1text_1icon, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
766 static int __cal_edit_alarm_add_alarm_content(struct _priv *p)
770 p->sc = elm_genlist_add(p->ly);
776 elm_object_theme_set(p->sc, p->theme);
778 itc_seperator.item_style = "dialogue/seperator";
779 itc_seperator.func.text_get = NULL;
780 itc_seperator.func.state_get = __cal_edit_alarm_get_genlist_item_state;
781 itc_seperator.func.del = __cal_edit_alarm_genlist_item_delete_callback;
783 itc_1text_1icon.item_style = "dialogue/1text.1icon.2";
784 itc_1text_1icon.func.del = __cal_edit_alarm_genlist_item_delete_callback;
785 itc_1text_1icon.func.content_get = __cal_edit_alarm_get_genlist_item_icon;
786 itc_1text_1icon.func.text_get = __cal_edit_alarm_get_genlist_item_label;
788 itc_1icon.item_style = "dialogue/1icon";
789 itc_1icon.func.del = __cal_edit_alarm_genlist_item_delete_callback;
790 itc_1icon.func.content_get = __cal_edit_alarm_get_genlist_item_icon;
791 itc_1icon.func.text_get = __cal_edit_alarm_get_genlist_item_label;
793 itc_2text_3icon.item_style = "dialogue.2text.3icon.2";
794 itc_2text_3icon.func.text_get = __cal_edit_alarm_get_genlist_item_label;
795 itc_2text_3icon.func.del = __cal_edit_alarm_genlist_item_delete_callback;
796 itc_2text_3icon.func.content_get = __cal_edit_alarm_get_genlist_item_icon;
798 __cal_edit_alarm_append_genlist_item(p->sc, p);
800 cf = elm_conformant_add(p->ad->win);
803 evas_object_size_hint_weight_set(cf, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
804 evas_object_show(cf);
805 elm_object_content_set(cf, p->sc);
806 elm_object_style_set(cf, "internal_layout");
807 elm_object_part_content_set(p->ly, "sw", cf);
812 static void __cal_edit_alarm_set_radio(struct _priv *p, int min)
819 p->selected = cal_edit_alarm_item_datas[1].type;
822 p->selected = cal_edit_alarm_item_datas[2].type;
825 p->selected = cal_edit_alarm_item_datas[3].type;
828 p->selected = cal_edit_alarm_item_datas[4].type;
831 p->selected = cal_edit_alarm_item_datas[5].type;
834 p->selected = cal_edit_alarm_item_datas[6].type;
837 p->selected = cal_edit_alarm_item_datas[7].type;
840 p->selected = cal_edit_alarm_item_datas[8].type;
844 if ((min % _WEEK) == 0)
849 else if ((min % _DAY) == 0)
854 else if ((min % _HOUR) == 0)
865 int cal_edit_alarm_get_alarm(Evas_Object *ly)
872 p = CAL_UTIL_GET_PRIV_DATA(ly);
873 if (!p || CAL_STRCMP(p->name, _name))
875 ERR("Invalid object");
879 if (p->selected == _GTYPE_CUSTOMIZE )
881 const char *s = elm_entry_entry_get(p->e_custom);
883 r = r * cal_edit_alarm_button[p->bt_idx].unit;
886 r = cal_edit_alarm_item_datas[p->selected+1].data;
891 Evas_Object *cal_edit_alarm_create_view(Evas_Object *parent, int min, struct appdata* ad)
899 CAL_CALLOC(p, 1, struct _priv);
905 p->theme = ad->theme;
907 ly = cal_util_add_layout(parent, "edit");
915 evas_object_data_set(ly, "priv", p);
917 cal_edit_alarm_button[0].label = S_("IDS_COM_BODY_MINUTE_LC");
918 cal_edit_alarm_button[1].label = S_("IDS_COM_POP_HOUR_LC");
919 cal_edit_alarm_button[2].label = C_("IDS_COM_POP_DAY_LC");
920 cal_edit_alarm_button[3].label = C_("IDS_COM_POP_WEEK_LC");
922 __cal_edit_alarm_set_radio(p, min);
924 r = __cal_edit_alarm_add_alarm_content(p);
932 evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_edit_alarm_delete_layout, p);