Tizen 2.1 base
authorJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:37:19 +0000 (01:37 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Tue, 12 Mar 2013 16:37:19 +0000 (01:37 +0900)
385 files changed:
CMakeLists.txt [new file with mode: 0755]
LICENSE.Flora [new file with mode: 0755]
NOTICE [new file with mode: 0644]
common/acct-svc.c [new file with mode: 0755]
common/cal-svc.c [new file with mode: 0755]
common/common.c [new file with mode: 0755]
common/dialogue.c [new file with mode: 0755]
common/external-ug.c [new file with mode: 0755]
common/gi-radio-timepicker.c [new file with mode: 0755]
common/gi-timepicker.c [new file with mode: 0755]
common/grid.c [new file with mode: 0755]
common/lang-manager.c [new file with mode: 0755]
common/query.c [new file with mode: 0755]
common/radio-group.c [new file with mode: 0755]
common/reminder.c [new file with mode: 0755]
common/save-cancel.c [new file with mode: 0755]
common/searchbar.c [new file with mode: 0755]
common/util-efl.c [new file with mode: 0755]
common/util.c [new file with mode: 0755]
data/CMakeLists.txt [new file with mode: 0755]
data/edc/CMakeLists.txt [new file with mode: 0755]
data/edc/images/00_title_icon_search.png [new file with mode: 0755]
data/edc/images/P01_Task_event.png [new file with mode: 0755]
data/edc/images/P01_Task_event_completion.png [new file with mode: 0755]
data/edc/images/P01_Task_event_completion_press.png [new file with mode: 0755]
data/edc/images/P01_change_view.png [new file with mode: 0755]
data/edc/images/P01_event_list_icon_alarm.png [new file with mode: 0755]
data/edc/images/P01_event_list_icon_facebook.png [new file with mode: 0755]
data/edc/images/P01_event_list_icon_reapeat.png [new file with mode: 0755]
data/edc/images/P01_event_list_icon_reminder.png [new file with mode: 0755]
data/edc/images/P01_list_icon_priority.png [new file with mode: 0644]
data/edc/images/P01_list_icon_priority_low.png [new file with mode: 0644]
data/edc/images/P01_today.png [new file with mode: 0755]
data/edc/images/all_calendar.png [new file with mode: 0644]
data/edc/images/caller_ID_default.png [new file with mode: 0644]
data/edc/images/com.samsung.calendar.png [new file with mode: 0755]
data/edc/images/detail_view_lock_timezone.png [new file with mode: 0755]
data/edc/images/image_macro.edc [new file with mode: 0755]
data/edc/images/org.tizen.calendar.png [new file with mode: 0755]
data/edc/inc/calendar-inc.edc [new file with mode: 0755]
data/edc/inc/hd-black-inc.edc [new file with mode: 0755]
data/edc/inc/hd-white-inc.edc [new file with mode: 0755]
data/edc/inc/theme-inc.edc [new file with mode: 0755]
data/edc/inc/wvga-black-inc.edc [new file with mode: 0755]
data/edc/inc/wvga-white-inc.edc [new file with mode: 0755]
data/edc/layout/calendar.edc [new file with mode: 0755]
data/edc/layout/extended-edc.h [new file with mode: 0755]
data/edc/layout/inc.acct.colorselector.edc [new file with mode: 0755]
data/edc/layout/inc.acct.edc [new file with mode: 0755]
data/edc/layout/inc.edit.edc [new file with mode: 0755]
data/edc/layout/inc.images.edc [new file with mode: 0755]
data/edc/layout/inc.layouts.edc [new file with mode: 0755]
data/edc/layout/inc.main.day.edc [new file with mode: 0755]
data/edc/layout/inc.main.day.tb.edc [new file with mode: 0755]
data/edc/layout/inc.main.edc [new file with mode: 0755]
data/edc/layout/inc.main.month.cal.edc [new file with mode: 0755]
data/edc/layout/inc.main.month.cal.weekly.edc [new file with mode: 0755]
data/edc/layout/inc.main.month.edc [new file with mode: 0755]
data/edc/layout/inc.main.month.weekly.edc [new file with mode: 0755]
data/edc/layout/inc.main.tab.edc [new file with mode: 0755]
data/edc/layout/inc.main.title.edc [new file with mode: 0755]
data/edc/layout/inc.main.week.edc [new file with mode: 0755]
data/edc/layout/inc.main.week.item.edc [new file with mode: 0755]
data/edc/layout/inc.main.year.cal.edc [new file with mode: 0755]
data/edc/layout/inc.main.year.edc [new file with mode: 0755]
data/edc/layout/inc.map.edc [new file with mode: 0755]
data/edc/layout/inc.part.edc [new file with mode: 0755]
data/edc/theme/button.edc [new file with mode: 0755]
data/edc/theme/genlist.edc [new file with mode: 0755]
data/edc/theme/naviframe.edc [new file with mode: 0755]
data/edc/theme/naviframe_custom.edc [new file with mode: 0755]
data/edc/theme/originals/genlist_macro.edc [new file with mode: 0755]
data/edc/theme/originals/readme [new file with mode: 0644]
data/edc/theme/originals/tizen-hd-inc.edc [new file with mode: 0755]
data/edc/theme/originals/white-hd-inc.edc [new file with mode: 0755]
data/edc/theme/theme.edc [new file with mode: 0755]
data/edc/theme2/dialogue.edc [new file with mode: 0755]
data/edc/theme2/genlist.edc [new file with mode: 0755]
data/edc/theme2/originals/genlist_macro.edc [new file with mode: 0755]
data/edc/theme2/originals/genlist_textblock_style.edc [new file with mode: 0644]
data/edc/theme2/originals/readme [new file with mode: 0644]
data/edc/theme2/originals/tizen-hd-inc.edc [new file with mode: 0755]
data/edc/theme2/theme2.edc [new file with mode: 0755]
data/edc/theme3/button.edc [new file with mode: 0755]
data/edc/theme3/dialogue.edc [new file with mode: 0755]
data/edc/theme3/gengrid.edc [new file with mode: 0644]
data/edc/theme3/list-base.edc [new file with mode: 0755]
data/edc/theme3/originals/genlist_macro.edc [new file with mode: 0644]
data/edc/theme3/originals/genlist_textblock_style.edc [new file with mode: 0644]
data/edc/theme3/originals/readme [new file with mode: 0644]
data/edc/theme3/originals/tizen-hd-inc.edc [new file with mode: 0644]
data/edc/theme3/theme3.edc [new file with mode: 0755]
data/images/hd/00_button_expand_closed.png [new file with mode: 0755]
data/images/hd/00_button_expand_opened.png [new file with mode: 0755]
data/images/hd/00_index list_bg.png [new file with mode: 0644]
data/images/hd/00_list_bubble_bg.png [new file with mode: 0644]
data/images/hd/00_list_group_bg.png [new file with mode: 0644]
data/images/hd/00_list_group_bg_bottom.png [new file with mode: 0644]
data/images/hd/00_list_group_bg_bottom_press.png [new file with mode: 0644]
data/images/hd/00_list_group_bg_center.png [new file with mode: 0644]
data/images/hd/00_list_group_bg_center_press.png [new file with mode: 0644]
data/images/hd/00_list_group_bg_press.png [new file with mode: 0644]
data/images/hd/00_list_group_bg_top.png [new file with mode: 0644]
data/images/hd/00_list_group_bg_top_press.png [new file with mode: 0644]
data/images/hd/00_list_img_check.png [new file with mode: 0644]
data/images/hd/00_list_photo_default.png [new file with mode: 0644]
data/images/hd/00_list_thumbnail_bg.png [new file with mode: 0644]
data/images/hd/00_overscrolling_left.png [new file with mode: 0755]
data/images/hd/00_overscrolling_right.png [new file with mode: 0755]
data/images/hd/00_search_edit_field_bg_02.png [new file with mode: 0644]
data/images/hd/00_title_btn_bg_press.png [new file with mode: 0755]
data/images/hd/00_winset_control_tabbar_bg.png [new file with mode: 0755]
data/images/hd/00_winset_control_toolbar_bg.png [new file with mode: 0755]
data/images/hd/00_winset_control_top_arrow.png [new file with mode: 0755]
data/images/hd/00_winset_control_top_bg.png [new file with mode: 0755]
data/images/hd/00_winset_title_bg.png [new file with mode: 0755]
data/images/hd/00_winset_title_line.png [new file with mode: 0755]
data/images/hd/01_controlbar_icon_View.png [new file with mode: 0755]
data/images/hd/01_controlbar_icon_calendars.png [new file with mode: 0755]
data/images/hd/01_controlbar_icon_create.png [new file with mode: 0755]
data/images/hd/01_controlbar_icon_today.png [new file with mode: 0755]
data/images/hd/01_dialoguegroup_edit_default.png [new file with mode: 0644]
data/images/hd/01_header_icon_add.png [new file with mode: 0644]
data/images/hd/01_header_icon_done.png [new file with mode: 0644]
data/images/hd/01_header_icon_others.png [new file with mode: 0644]
data/images/hd/01_navi_icon_delete.png [new file with mode: 0644]
data/images/hd/01_navi_icon_edit.png [new file with mode: 0644]
data/images/hd/01_navi_icon_new.png [new file with mode: 0644]
data/images/hd/49_memo_noitems.png [new file with mode: 0644]
data/images/hd/57_calendar_bg2.png [new file with mode: 0644]
data/images/hd/57_calendar_event(1)_bg.png [new file with mode: 0644]
data/images/hd/57_calendar_event(2)_bg.png [new file with mode: 0644]
data/images/hd/57_calendar_event(3)_bg.png [new file with mode: 0644]
data/images/hd/57_calendar_event(4)_bg.png [new file with mode: 0644]
data/images/hd/57_calendar_month_view(1)_bg.png [new file with mode: 0644]
data/images/hd/57_calendar_spin_01_icon.png [new file with mode: 0644]
data/images/hd/57_calendar_spin_02_icon.png [new file with mode: 0644]
data/images/hd/57_calendar_tab.png [new file with mode: 0644]
data/images/hd/57_calendar_tab_focus_bg.png [new file with mode: 0644]
data/images/hd/57_calendar_tab_press.png [new file with mode: 0644]
data/images/hd/57_calendar_today_icon.png [new file with mode: 0644]
data/images/hd/57_calendar_today_icon2.png [new file with mode: 0644]
data/images/hd/57_calendar_today_icon_press.png [new file with mode: 0644]
data/images/hd/57_calendar_week_arrow_focus_icon.png [new file with mode: 0644]
data/images/hd/57_calendar_week_arrow_icon.png [new file with mode: 0644]
data/images/hd/57_calendar_week_view_bg.png [new file with mode: 0644]
data/images/hd/57_calendar_week_view_press.png [new file with mode: 0644]
data/images/hd/57_calendar_year_view_bg.png [new file with mode: 0644]
data/images/hd/P01_Tap_normal.png [new file with mode: 0755]
data/images/hd/P01_Tap_press.png [new file with mode: 0755]
data/images/hd/P01_Task_event.png [new file with mode: 0755]
data/images/hd/P01_Task_event_completion.png [new file with mode: 0755]
data/images/hd/P01_Task_event_completion_press.png [new file with mode: 0755]
data/images/hd/P01_bg.png [new file with mode: 0644]
data/images/hd/P01_control_top_bg.png [new file with mode: 0644]
data/images/hd/P01_control_top_bg_tmp.png [new file with mode: 0644]
data/images/hd/P01_day_current_time.png [new file with mode: 0755]
data/images/hd/P01_day_event_bg_01.png [new file with mode: 0755]
data/images/hd/P01_day_event_bg_01_press.png [new file with mode: 0755]
data/images/hd/P01_day_event_bg_02.png [new file with mode: 0755]
data/images/hd/P01_day_event_bg_02_press.png [new file with mode: 0755]
data/images/hd/P01_day_event_bg_02_strok.png [new file with mode: 0755]
data/images/hd/P01_day_event_bg_03.png [new file with mode: 0755]
data/images/hd/P01_day_event_bg_03_press.png [new file with mode: 0755]
data/images/hd/P01_day_event_bg_04.png [new file with mode: 0755]
data/images/hd/P01_day_event_bg_04_press.png [new file with mode: 0755]
data/images/hd/P01_day_expand_all_event.png [new file with mode: 0755]
data/images/hd/P01_day_expand_all_event_1.png [new file with mode: 0755]
data/images/hd/P01_event.png [new file with mode: 0644]
data/images/hd/P01_event_index_bg.png [new file with mode: 0755]
data/images/hd/P01_event_index_icon_close.png [new file with mode: 0755]
data/images/hd/P01_event_index_icon_close_press.png [new file with mode: 0755]
data/images/hd/P01_event_index_icon_open.png [new file with mode: 0755]
data/images/hd/P01_event_index_icon_open_press.png [new file with mode: 0755]
data/images/hd/P01_event_list_icon_alarm.png [new file with mode: 0755]
data/images/hd/P01_event_list_icon_facebook.png [new file with mode: 0755]
data/images/hd/P01_event_list_icon_priority.png [new file with mode: 0755]
data/images/hd/P01_event_list_icon_reapeat.png [new file with mode: 0755]
data/images/hd/P01_event_list_icon_reminder.png [new file with mode: 0755]
data/images/hd/P01_icon_title_arrow_l.png [new file with mode: 0755]
data/images/hd/P01_icon_title_arrow_l_press.png [new file with mode: 0755]
data/images/hd/P01_icon_title_arrow_r.png [new file with mode: 0755]
data/images/hd/P01_icon_title_arrow_r_press.png [new file with mode: 0755]
data/images/hd/P01_month view_Today.png [new file with mode: 0755]
data/images/hd/P01_month view_Today_focus.png [new file with mode: 0755]
data/images/hd/P01_month view_day_event_dim.png [new file with mode: 0755]
data/images/hd/P01_month view_day_focus.png [new file with mode: 0755]
data/images/hd/P01_month_view_event_bg.png [new file with mode: 0755]
data/images/hd/P01_month_view_focus_bg.png [new file with mode: 0755]
data/images/hd/P01_noschedule.png [new file with mode: 0644]
data/images/hd/P01_spin_left.png [new file with mode: 0755]
data/images/hd/P01_spin_left_press.png [new file with mode: 0755]
data/images/hd/P01_spin_right.png [new file with mode: 0755]
data/images/hd/P01_spin_right_press.png [new file with mode: 0755]
data/images/hd/P01_tab_bg.png [new file with mode: 0644]
data/images/hd/P01_tab_default.png [new file with mode: 0644]
data/images/hd/P01_tab_focus.png [new file with mode: 0644]
data/images/hd/P01_tab_press.png [new file with mode: 0644]
data/images/hd/P01_title_bg.png [new file with mode: 0644]
data/images/hd/P01_title_bg_tmp.png [new file with mode: 0644]
data/images/hd/P01_title_left.png [new file with mode: 0755]
data/images/hd/P01_title_left_press.png [new file with mode: 0755]
data/images/hd/P01_title_right.png [new file with mode: 0755]
data/images/hd/P01_title_right_press.png [new file with mode: 0755]
data/images/hd/P01_week_view_icon_close.png [new file with mode: 0755]
data/images/hd/P01_week_view_icon_open.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_01_02_30_33.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_03_04_05_34_35_36_37_38.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_06_07_08_09_10_11_32.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_12_13_18_24_25_26_39_40.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_14.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_15_41_42.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_16_17.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_19_22_23_31_44.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_20_21.png [new file with mode: 0755]
data/images/hd/P01_wheather_today_bg_27_28_29.png [new file with mode: 0755]
data/images/hd/P01_year_day_focus.png [new file with mode: 0755]
data/images/hd/P01_year_month_focus.png [new file with mode: 0755]
data/images/hd/T01_controlbar_icon_delete.png [new file with mode: 0755]
data/images/hd/T01_controlbar_icon_edit.png [new file with mode: 0755]
data/images/hd/T01_controlbar_icon_share02.png [new file with mode: 0755]
data/images/hd/all_calendar.png [new file with mode: 0644]
data/images/hd/calendar_selected.png [new file with mode: 0644]
data/images/hd/navibar_item_separator.png [new file with mode: 0644]
data/images/hd/navibar_item_separator_tmp.png [new file with mode: 0644]
data/images/hd/org.tizen.calendar.png [new file with mode: 0755]
include/acct-svc.h [new file with mode: 0755]
include/cal-svc.h [new file with mode: 0755]
include/cld-images.h [new file with mode: 0755]
include/cld-log.h [new file with mode: 0755]
include/cld-utils.h [new file with mode: 0755]
include/cld.h [new file with mode: 0755]
include/dialogue.h [new file with mode: 0755]
include/external-ug.h [new file with mode: 0755]
include/gi-radio-timepicker.h [new file with mode: 0755]
include/gi-timepicker.h [new file with mode: 0755]
include/grid.h [new file with mode: 0755]
include/lang-manager.h [new file with mode: 0755]
include/query.h [new file with mode: 0755]
include/radio-group.h [new file with mode: 0755]
include/reminder.h [new file with mode: 0755]
include/save-cancel.h [new file with mode: 0755]
include/searchbar.h [new file with mode: 0755]
libug-calendar-efl.xml [new file with mode: 0755]
org.tizen.calendar.desktop.in [new file with mode: 0755]
org.tizen.calendar.manifest [new file with mode: 0755]
org.tizen.calendar.xml [new file with mode: 0644]
packaging/org.tizen.calendar.spec [new file with mode: 0755]
po/CMakeLists.txt [new file with mode: 0755]
po/ar.po [new file with mode: 0755]
po/az.po [new file with mode: 0755]
po/bg.po [new file with mode: 0755]
po/ca.po [new file with mode: 0755]
po/cs.po [new file with mode: 0755]
po/da.po [new file with mode: 0755]
po/de_DE.po [new file with mode: 0755]
po/el_GR.po [new file with mode: 0755]
po/en.po [new file with mode: 0755]
po/en_PH.po [new file with mode: 0755]
po/en_US.po [new file with mode: 0755]
po/es_ES.po [new file with mode: 0755]
po/es_MX.po [new file with mode: 0755]
po/es_US.po [new file with mode: 0755]
po/et.po [new file with mode: 0755]
po/eu.po [new file with mode: 0755]
po/fi.po [new file with mode: 0755]
po/fr_CA.po [new file with mode: 0755]
po/fr_FR.po [new file with mode: 0755]
po/ga.po [new file with mode: 0755]
po/gl.po [new file with mode: 0755]
po/hi.po [new file with mode: 0755]
po/hr.po [new file with mode: 0755]
po/hu.po [new file with mode: 0755]
po/hy.po [new file with mode: 0755]
po/is.po [new file with mode: 0755]
po/it_IT.po [new file with mode: 0755]
po/ja_JP.po [new file with mode: 0755]
po/ka.po [new file with mode: 0755]
po/kk.po [new file with mode: 0755]
po/ko_KR.po [new file with mode: 0755]
po/lt.po [new file with mode: 0755]
po/lv.po [new file with mode: 0755]
po/mk.po [new file with mode: 0755]
po/nb.po [new file with mode: 0755]
po/nl_NL.po [new file with mode: 0755]
po/pl.po [new file with mode: 0755]
po/pt_BR.po [new file with mode: 0755]
po/pt_PT.po [new file with mode: 0755]
po/ro.po [new file with mode: 0755]
po/ru_RU.po [new file with mode: 0755]
po/sk.po [new file with mode: 0755]
po/sl.po [new file with mode: 0755]
po/sr.po [new file with mode: 0755]
po/sv.po [new file with mode: 0755]
po/tr_TR.po [new file with mode: 0755]
po/uk.po [new file with mode: 0755]
po/uz.po [new file with mode: 0755]
po/zh_CN.po [new file with mode: 0755]
po/zh_HK.po [new file with mode: 0755]
po/zh_SG.po [new file with mode: 0755]
po/zh_TW.po [new file with mode: 0755]
res/icons/default/small/icon_application.png [new file with mode: 0644]
src/base-block.c [new file with mode: 0755]
src/base-block.h [new file with mode: 0755]
src/base-data.c [new file with mode: 0755]
src/base-data.h [new file with mode: 0755]
src/base-time-block.c [new file with mode: 0755]
src/base-time-block.h [new file with mode: 0755]
src/base-time.c [new file with mode: 0755]
src/base-time.h [new file with mode: 0755]
src/day-event-block.c [new file with mode: 0755]
src/day-event-block.h [new file with mode: 0755]
src/day-event-data.c [new file with mode: 0755]
src/day-event-data.h [new file with mode: 0755]
src/day-expandable-list.c [new file with mode: 0755]
src/day-expandable-list.h [new file with mode: 0755]
src/day-time-block.c [new file with mode: 0755]
src/day-time-block.h [new file with mode: 0755]
src/day-time.c [new file with mode: 0755]
src/day-time.h [new file with mode: 0755]
src/detail-view.c [new file with mode: 0755]
src/detail-view.h [new file with mode: 0755]
src/edit-view.c [new file with mode: 0755]
src/edit-view.h [new file with mode: 0755]
src/list-base.c [new file with mode: 0755]
src/list-base.h [new file with mode: 0755]
src/list-broker.c [new file with mode: 0755]
src/list-broker.h [new file with mode: 0755]
src/list-comparator.c [new file with mode: 0644]
src/list-comparator.h [new file with mode: 0644]
src/list-data.c [new file with mode: 0644]
src/list-data.h [new file with mode: 0644]
src/list-delete.c [new file with mode: 0755]
src/list-provider.c [new file with mode: 0755]
src/list-provider.h [new file with mode: 0755]
src/main.c [new file with mode: 0755]
src/month-calendar.c [new file with mode: 0755]
src/month-data.c [new file with mode: 0755]
src/month-data.h [new file with mode: 0644]
src/noti-handler.c [new file with mode: 0755]
src/noti-handler.h [new file with mode: 0755]
src/search.c [new file with mode: 0755]
src/search.h [new file with mode: 0755]
src/view-acct.c [new file with mode: 0755]
src/view-day-list.c [new file with mode: 0755]
src/view-day-list.h [new file with mode: 0644]
src/view-main-day.c [new file with mode: 0755]
src/view-main-list.c [new file with mode: 0755]
src/view-main-month.c [new file with mode: 0755]
src/view-main-todo.c [new file with mode: 0755]
src/view-main-week.c [new file with mode: 0755]
src/view-main-year.c [new file with mode: 0755]
src/view-main.c [new file with mode: 0755]
src/view.h [new file with mode: 0755]
src/week-data.c [new file with mode: 0755]
src/week-data.h [new file with mode: 0755]
ug/CMakeLists.txt [new file with mode: 0755]
ug/detail/CMakeLists.txt [new file with mode: 0755]
ug/detail/detail-attendee.c [new file with mode: 0755]
ug/detail/detail-attendee.h [new file with mode: 0755]
ug/detail/detail-common.c [new file with mode: 0755]
ug/detail/detail-common.h [new file with mode: 0755]
ug/detail/detail-ug.c [new file with mode: 0755]
ug/edit/CMakeLists.txt [new file with mode: 0755]
ug/edit/edit-alarm.c [new file with mode: 0755]
ug/edit/edit-alarm.h [new file with mode: 0755]
ug/edit/edit-attendee.c [new file with mode: 0755]
ug/edit/edit-attendee.h [new file with mode: 0755]
ug/edit/edit-repeat.c [new file with mode: 0755]
ug/edit/edit-repeat.h [new file with mode: 0755]
ug/edit/edit-ug.c [new file with mode: 0755]
ug/list/CMakeLists.txt [new file with mode: 0755]
ug/list/ug-list.c [new file with mode: 0755]
ug/list/ug.c [new file with mode: 0755]
ug/list/ug.h [new file with mode: 0755]
ug/settings/CMakeLists.txt [new file with mode: 0755]
ug/settings/ug-setting-export.c [new file with mode: 0755]
ug/settings/ug-settings-view.c [new file with mode: 0755]
ug/settings/ug-settings-view.h [new file with mode: 0755]
ug/settings/ug-settings.c [new file with mode: 0755]
ug/settings/ug-settings.h [new file with mode: 0755]
viewer/CMakeLists.txt [new file with mode: 0755]
viewer/calendar-viewer.xml [new file with mode: 0644]
viewer/org.tizen.calendar-viewer.manifest [new file with mode: 0644]
viewer/viewer.c [new file with mode: 0755]

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..7b0d111
--- /dev/null
@@ -0,0 +1,116 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(calendar C)
+
+FILE(GLOB SRCS src/*.c)
+FILE(GLOB COMM_SRCS common/*.c)
+
+SET(VENDOR "org.tizen")
+
+SET(CALENDAR ${PROJECT_NAME})
+SET(PKGNAME "${VENDOR}.${CALENDAR}")
+SET(CALENDAR_PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${CALENDAR_PREFIX}/bin")
+SET(RESDIR "${CALENDAR_PREFIX}/res")
+SET(DATADIR "${CALENDAR_PREFIX}/data")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(ICONDIR "${RESDIR}/icons/default/small")
+SET(EDJDIR "${RESDIR}/edje")
+SET(SELECTED_TARGET "hd")
+SET(UGNAME "ug-calendar-efl")
+SET(UGSETTINGS "ug-calendar-settings-efl")
+SET(UGEDIT "ug-calendar-edit-efl")
+SET(UGDETAIL "ug-calendar-detail-efl")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
+       SET(CMAKE_BUILD_TYPE "Release")
+ENDIF()
+MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+               appcore-efl
+               dlog
+               utilX
+               contacts-service2
+               calendar-service2
+               ecore-input
+               ecore-imf
+               ecore-x
+               ecore-evas
+               ecore
+               eina
+               evas
+               edje
+               icu-i18n
+               glib-2.0
+               appsvc
+               capi-appfw-application
+               ui-gadget-1
+               libxml-2.0
+               ecore-evas
+               notification
+               capi-content-media-content
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fpie -Wall")
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
+SET(CMAKE_C_FLAGS_RELEASE "-O2")
+
+IF("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
+       ADD_DEFINITIONS("-DCLD_DEBUG")
+       ADD_DEFINITIONS("-DCLD_FILE_LOGGING")
+ENDIF()
+
+FIND_PROGRAM(UNAME NAMES uname)
+EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH")
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+       MESSAGE(STATUS "add -DTARGET")
+ENDIF()
+
+ADD_DEFINITIONS("-DCALENDAR=\"${CALENDAR}\"")
+ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
+ADD_DEFINITIONS("-DCALENDAR_PREFIX=\"${CALENDAR_PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-DUGNAME=\"${UGNAME}\"")
+ADD_DEFINITIONS("-DUGSETTINGS=\"${UGSETTINGS}\"")
+ADD_DEFINITIONS("-DUGEDIT=\"${UGEDIT}\"")
+ADD_DEFINITIONS("-DUGDETAIL=\"${UGDETAIL}\"")
+
+SET(COMMON_LIB "common_lib")
+ADD_LIBRARY(${COMMON_LIB} STATIC ${COMM_SRCS})
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${COMMON_LIB} ${pkgs_LDFLAGS} "-pie -lm")
+
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
+
+# install desktop file
+CONFIGURE_FILE(org.tizen.calendar.xml ${CMAKE_BINARY_DIR}/${PKGNAME}.xml)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${PKGNAME}.xml DESTINATION /usr/share/packages)
+
+# ui-gadget
+ADD_SUBDIRECTORY(ug)
+
+INSTALL(FILES ${CMAKE_BINARY_DIR}/libug-calendar-efl.xml DESTINATION /usr/share/packages)
+
+# i18n
+ADD_SUBDIRECTORY(po)
+
+# data
+ADD_SUBDIRECTORY(data)
+
+INSTALL(DIRECTORY DESTINATION ${DATADIR})
+
+# vcs viewer
+ADD_SUBDIRECTORY(viewer)
+
+INSTALL(FILES ${CMAKE_BINARY_DIR}/LICENSE.Flora DESTINATION /usr/share/license RENAME ${PKGNAME})
+
diff --git a/LICENSE.Flora b/LICENSE.Flora
new file mode 100755 (executable)
index 0000000..cc8727b
--- /dev/null
@@ -0,0 +1,75 @@
+Flora License
+
+Version 1.0, May, 2012
+
+http://floralicense.org/license/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies with the standards set forth in the Compatibility Definition Document and passes the Compatibility Test Suite as defined from time to time by the Tizen Technical Steering Group and certified by the Tizen Association or its designated agent.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work solely as incorporated into a Tizen Certified Platform, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work solely as incorporated into a Tizen Certified Platform to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof pursuant to the copyright license above, in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+  2. You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+  3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+
+  4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Flora License, Version 1.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://floralicense.org/license/
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/NOTICE b/NOTICE
new file mode 100644 (file)
index 0000000..db2274d
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,3 @@
+Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Flora License, Version 1.
+Please, see the LICENSE.Flora file for Flora License, Version 1 terms and conditions.
diff --git a/common/acct-svc.c b/common/acct-svc.c
new file mode 100755 (executable)
index 0000000..a5f39e9
--- /dev/null
@@ -0,0 +1,263 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "acct-svc.h"
+
+static bool __cal_account_get_capability_callback(const char* capability_type,
+                               account_capability_state_e capability_value, void* user_data)
+{
+       c_retvm_if(!user_data, FALSE, "user_data is null");
+
+       bool *has_calendar = user_data;
+
+       if (strcmp(capability_type, ACCOUNT_SUPPORTS_CAPABILITY_CALENDAR) == 0 &&
+               capability_value == ACCOUNT_CAPABILITY_ENABLED)
+       {
+               *has_calendar = TRUE;
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+static void __cal_account_free_acct(struct _acct *at)
+{
+       c_ret_if(!at);
+
+       if (at->name)
+               free(at->name);
+
+       if (at->icon)
+               free(at->icon);
+
+       free(at);
+}
+
+static bool __cal_account_get_callback(account_h handle, void* user_data)
+{
+       c_retvm_if(!handle, FALSE, "handle is null");
+       c_retvm_if(!user_data, FALSE, "user_data is null");
+
+       Eina_List** account_list = user_data;
+       struct _acct *at = NULL;
+       char *text;
+       account_error_e ret;
+       bool has_calendar = FALSE;
+
+       ret = account_get_capability_all(handle, __cal_account_get_capability_callback, &has_calendar);
+       c_retvm_if(ret != ACCOUNT_ERROR_NONE, FALSE, "account_get_capability is failed(%x)", ret);
+
+       if (has_calendar == TRUE) {
+               at = calloc(1, sizeof(struct _acct));
+               c_retvm_if(!at, FALSE,"calloc is failed");
+       }
+       else
+               return FALSE;
+
+       text = NULL;
+       ret = account_get_email_address(handle, &text);
+       if (ret != ACCOUNT_ERROR_NONE) {
+               ERR("account_get_email_address is failed(%x)", ret);
+               __cal_account_free_acct(at);
+               return FALSE;
+       }
+
+       if (!CAL_STRLEN(text)) {
+               ret = account_get_user_name(handle, &text);
+               if (ret != ACCOUNT_ERROR_NONE) {
+                       ERR("account_get_user_name is failed(%x)", ret);
+                       __cal_account_free_acct(at);
+                       return FALSE;
+               }
+       }
+
+       if (CAL_STRLEN(text))
+               at->name = text;
+       else if (text)
+               free(text);
+
+       text = NULL;
+
+       ret = account_get_icon_path(handle, &text);
+       if (ret != ACCOUNT_ERROR_NONE) {
+               ERR("account_get_icon_path is failed(%x)", ret);
+               __cal_account_free_acct(at);
+               return FALSE;
+       }
+
+       if (CAL_STRLEN(text))
+               at->icon = text;
+       else if (text)
+               free(text);
+
+       text = NULL;
+
+       ret = account_get_domain_name(handle, &text);
+       if (ret != ACCOUNT_ERROR_NONE) {
+               ERR("account_get_domain_name is failed(%x)", ret);
+               __cal_account_free_acct(at);
+               return FALSE;
+       }
+
+       if (CAL_STRLEN(text))
+               at->domain = text;
+       else if (text)
+               free(text);
+
+       text = NULL;
+
+       ret = account_get_account_id(handle, &at->id);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_get_account_id is failed(%x)", ret);
+               __cal_account_free_acct(at);
+               return FALSE;
+       }
+
+       *account_list = eina_list_append(*account_list, at);
+
+       return TRUE;
+}
+
+Eina_List* cal_account_svc_get_account_list(void)
+{
+       CAL_FN_START;
+
+       Eina_List *account_list = NULL;
+       account_error_e ret;
+
+       ret = account_foreach_account_from_db(__cal_account_get_callback, &account_list);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_foreach_account_from_db is failed(%x)", ret);
+
+               CAL_FN_END;
+
+               return NULL;
+       }
+
+       CAL_FN_END;
+
+       return account_list;
+}
+
+void cal_account_svc_free_account_list(Eina_List **h)
+{
+       c_ret_if(!h);
+       c_ret_if(!*h);
+
+       Eina_List *l;
+       struct _acct *at;
+
+       EINA_LIST_FOREACH(*h, l, at) {
+               if (!at)
+                       continue;
+
+               if (at->name)
+                       free(at->name);
+
+               if (at->icon)
+                       free(at->icon);
+
+               if (at->domain)
+                       free(at->domain);
+
+               free(at);
+       }
+
+       *h = eina_list_free(*h);
+}
+
+char* cal_account_svc_get_account_icon_path(int account_id)
+{
+       account_error_e ret = ACCOUNT_ERROR_NONE;
+       account_h account = NULL;
+       char* text = NULL;
+       char* icon_path = NULL;
+
+       ret = account_create(&account);
+       c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_create is failed(%d)", ret);
+
+       ret = account_query_account_by_account_id(account_id, &account);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_query_account_by_account_id is failed(%x)", ret);
+
+               ret = account_destroy(account);
+               c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_destroy is failed(%d)", ret);
+
+               return NULL;
+       }
+
+       ret = account_get_icon_path(account, &text);
+       if (ret != ACCOUNT_ERROR_NONE)
+       {
+               ERR("account_get_icon_path is failed(%x)", ret);
+
+               ret = account_destroy(account);
+               c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_destroy is failed(%d)", ret);
+
+               return NULL;
+       }
+
+       if (text)
+               icon_path = strdup(text);
+
+       ret = account_destroy(account);
+       c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_destroy is failed(%d)", ret);
+
+       return icon_path;
+}
+
+char* cal_account_svc_get_account_name(int account_id)
+{
+       account_error_e ret = ACCOUNT_ERROR_NONE;
+       account_h account = NULL;
+       char* text = NULL;
+       char* name = NULL;
+
+       ret = account_create(&account);
+       c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_create is failed(%d)", ret);
+
+       ret = account_query_account_by_account_id(account_id, &account);
+       if (ret != ACCOUNT_ERROR_NONE) {
+               ERR("account_query_account_by_account_id is failed(%x)", ret);
+
+               ret = account_destroy(account);
+               c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_destroy is failed(%d)", ret);
+
+               return NULL;
+       }
+
+       ret = account_get_user_name(account, &text);
+       if (ret != ACCOUNT_ERROR_NONE) {
+               ERR("account_get_user_name is failed(%x)", ret);
+
+               ret = account_destroy(account);
+               c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_destroy is failed(%d)", ret);
+
+               return NULL;
+       }
+
+       if (CAL_STRLEN(text))
+               name = strdup(text);
+
+       ret = account_destroy(account);
+       c_retvm_if(ret != ACCOUNT_ERROR_NONE, NULL, "account_destroy is failed(%d)", ret);
+
+       return name;
+}
diff --git a/common/cal-svc.c b/common/cal-svc.c
new file mode 100755 (executable)
index 0000000..1b7ca33
--- /dev/null
@@ -0,0 +1,2662 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <unicode/ucal.h>
+#include <unicode/ustring.h>
+
+#include "cld.h"
+#include "query.h"
+
+static GHashTable *__calendar_record_uri_hash_table = NULL;
+
+static _calendar_book_color __calendar_default_color[] = {
+       {90, 167, 48, 255,},
+       {221, 129, 0, 255,},
+       {0, 182, 252, 255,},
+       {122, 52, 122, 255,},
+       {22, 139, 121, 255,},
+       {40, 81, 163, 255,},
+};
+
+void _calendar_init_hash()
+{
+       CAL_FN_START;
+
+       if (__calendar_record_uri_hash_table)
+               return;
+
+       __calendar_record_uri_hash_table = g_hash_table_new(g_str_hash, g_str_equal);
+       c_ret_if(!__calendar_record_uri_hash_table);
+
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_book._uri, (gpointer)_CALENDAR_RECORD_TYPE_CALENDARBOOK);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_event._uri, (gpointer)_CALENDAR_RECORD_TYPE_EVENT);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_todo._uri, (gpointer)_CALENDAR_RECORD_TYPE_TODO);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_timezone._uri, (gpointer)_CALENDAR_RECORD_TYPE_TIMEZONE);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_attendee._uri, (gpointer)_CALENDAR_RECORD_TYPE_ATTENDEE);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_alarm._uri, (gpointer)_CALENDAR_RECORD_TYPE_ALARM);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_updated_info._uri, (gpointer)_CALENDAR_RECORD_TYPE_UPDATED_INFO);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_event_calendar_book._uri, (gpointer)_CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_todo_calendar_book._uri, (gpointer)_CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_event_calendar_book_attendee._uri, (gpointer)_CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_instance_normal_calendar_book._uri, (gpointer)_CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_instance_allday_calendar_book._uri, (gpointer)_CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR);
+       g_hash_table_insert(__calendar_record_uri_hash_table, (gpointer)_calendar_extended_property._uri, (gpointer)_CALENDAR_RECORD_TYPE_EXTENDED_PROPERTY);
+
+       CAL_FN_END;
+}
+
+_calendar_record_type _calendar_get_record_type(calendar_record_h record)
+{
+       c_retv_if(!record, _CALENDAR_RECORD_TYPE_MAX);
+
+       char *view_uri = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error =  calendar_record_get_uri_p(record, &view_uri);
+       c_retvm_if(error != CALENDAR_ERROR_NONE, _CALENDAR_RECORD_TYPE_MAX, "calendar_record_get_uri_p() is failed(%x)", error);
+       c_retv_if(!CAL_STRLEN(view_uri), _CALENDAR_RECORD_TYPE_MAX);
+
+       return (_calendar_record_type)g_hash_table_lookup(__calendar_record_uri_hash_table, view_uri);
+}
+
+Eina_List * _calendar_get_normal_instance_list(struct tm *start, struct tm *end)
+{
+       c_retv_if(!start, NULL);
+       c_retv_if(!end, NULL);
+
+       Eina_List *normal_instance_list = NULL;
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_query_create(_calendar_instance_normal_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_time_s caltime_start = {0};
+       calendar_time_s caltime_end = {0};
+
+       long long int lli_start = 0;
+       long long int lli_end = 0;
+
+       cal_util_convert_tm_to_lli(NULL, start, &lli_start);
+       cal_util_convert_tm_to_lli(NULL, end, &lli_end);
+
+       caltime_start.type = CALENDAR_TIME_UTIME;
+       caltime_start.time.utime = lli_start;
+
+       caltime_end.type = CALENDAR_TIME_UTIME;
+       caltime_end.time.utime = lli_end;
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_filter_create(_calendar_instance_normal_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_normal_calendar_book.end_time, CALENDAR_MATCH_GREATER_THAN, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_normal_calendar_book.start_time,CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_instance_normal_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       int count = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       int i = 0;
+
+       for (i = 0; i < count; i++) {
+
+               calendar_record_h record = NULL;
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               calendar_record_h new_record = NULL;
+
+               error = calendar_record_clone(record, &new_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+
+               normal_instance_list = eina_list_append(normal_instance_list, new_record);
+               c_warn_if(!normal_instance_list, "eina_list_append() is failed.");
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, false);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return normal_instance_list;
+}
+
+Eina_List * _calendar_get_allday_instance_list(struct tm *start, struct tm *end)
+{
+       c_retv_if(!start, NULL);
+       c_retv_if(!end, NULL);
+
+       Eina_List *allday_instance_list = NULL;
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_query_create(_calendar_instance_allday_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_time_s caltime_start = {0};
+       calendar_time_s caltime_end = {0};
+
+       caltime_start.type = CALENDAR_TIME_LOCALTIME;
+       caltime_start.time.date.year = start->tm_year + 1900;
+       caltime_start.time.date.month = start->tm_mon + 1;
+       caltime_start.time.date.mday = start->tm_mday;
+
+       caltime_end.type = CALENDAR_TIME_LOCALTIME;
+       caltime_end.time.date.year = end->tm_year + 1900;
+       caltime_end.time.date.month = end->tm_mon + 1;
+       caltime_end.time.date.mday = end->tm_mday;
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_filter_create(_calendar_instance_allday_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_allday_calendar_book.end_time, CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_allday_calendar_book.start_time,CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_instance_allday_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       int count = 0;
+
+       error = calendar_list_get_count(list,&count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       int i = 0;
+
+       for (i = 0; i < count; i++) {
+
+               calendar_record_h record = NULL;
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               calendar_record_h new_record = NULL;
+
+               error = calendar_record_clone(record, &new_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+
+               allday_instance_list = eina_list_append(allday_instance_list, new_record);
+               c_warn_if(!allday_instance_list, "eina_list_append() is failed.");
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, false);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return allday_instance_list;
+}
+
+static int __calendar_compare_list_item(const void *data1, const void *data2)
+{
+       c_retv_if(!data1, 1);
+       c_retv_if(!data2, -1);
+
+       calendar_record_h normal_instance = (calendar_record_h)data1;
+       calendar_record_h allday_instance = (calendar_record_h)data2;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_time_s normal_instance_start_time = {0};
+
+       error = calendar_record_get_caltime(normal_instance, _calendar_instance_normal_calendar_book.start_time, &normal_instance_start_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+
+       long long int lli_normal = normal_instance_start_time.time.utime;
+
+       calendar_time_s allday_instance_start_time = {0};
+
+       error = calendar_record_get_caltime(allday_instance, _calendar_instance_allday_calendar_book.start_time, &allday_instance_start_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+
+       struct tm tm_allday = {0};
+       tm_allday.tm_year = allday_instance_start_time.time.date.year - 1900;
+       tm_allday.tm_mon = allday_instance_start_time.time.date.month - 1;
+       tm_allday.tm_mday = allday_instance_start_time.time.date.mday;
+
+       long long int lli_allday;
+       cal_util_convert_tm_to_lli(NULL, &tm_allday, &lli_allday);
+
+       return (lli_allday < lli_normal) ? 1 : -1;
+}
+
+static int __calendar_compare_event_record_list_item(const void *data1, const void *data2)
+{
+       c_retv_if(!data1, 1);
+       c_retv_if(!data2, -1);
+
+       calendar_record_h record1 = data1;
+       calendar_record_h record2 = data2;
+
+       calendar_time_s record1_start_time = {0};
+       calendar_time_s record2_start_time = {0};
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       error = calendar_record_get_caltime(record1, _calendar_instance_normal_calendar_book.start_time, &record1_start_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+
+       error = calendar_record_get_caltime(record2, _calendar_instance_normal_calendar_book.start_time, &record2_start_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+
+       long long int lli_normal1 = record1_start_time.time.utime;
+       long long int lli_normal2 = record2_start_time.time.utime;
+
+       return (lli_normal1 > lli_normal2) ? 1 : -1;
+}
+
+
+Eina_List * _calendar_get_all_instance_list(struct tm *start, struct tm *end)
+{
+       c_retv_if(start < 0, NULL);
+       c_retv_if(end < 0, NULL);
+
+       Eina_List *allday_instance_list = _calendar_get_allday_instance_list(start, end);
+
+       Eina_List *normal_instance_list = _calendar_get_normal_instance_list(start, end);
+       normal_instance_list = eina_list_sort(normal_instance_list, 0, __calendar_compare_event_record_list_item);
+
+       allday_instance_list = eina_list_merge(allday_instance_list, normal_instance_list);
+
+       return allday_instance_list;
+}
+
+Eina_List * _calendar_get_all_record_list(void)
+{
+       calendar_query_h query =
+                       cal_query_create_all_event_list_query();
+       c_retv_if(!query, NULL);
+
+       calendar_list_h list = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       int count = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       Eina_List *event_list = NULL;
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       int i = 0;
+       for (i = 0; i < count; i++) {
+
+               calendar_record_h record = NULL;
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               calendar_record_h new_record = NULL;
+
+               error = calendar_record_clone(record, &new_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+
+               event_list = eina_list_append(event_list, new_record);
+               c_warn_if(!event_list, "eina_list_append() is failed.");
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, false);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return event_list;
+}
+
+Eina_Bool _calendar_is_task_record(calendar_record_h record)
+{
+       c_retv_if(!record, EINA_FALSE);
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       if (record_type == _CALENDAR_RECORD_TYPE_TODO)
+               return EINA_TRUE;
+       else if (record_type == _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR)
+               return EINA_TRUE;
+       else
+               return EINA_FALSE;
+}
+
+Eina_Bool _calendar_is_allday_record(calendar_record_h record)
+{
+       c_retv_if(!record, EINA_FALSE);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_time_s start_time = {0};
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_caltime(record, _calendar_event.start_time, &start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_caltime(record, _calendar_todo.start_time, &start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_event_calendar_book.start_time, &start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_todo_calendar_book.start_time, &start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_caltime(record, _calendar_event_calendar_book_attendee.start_time, &start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_instance_normal_calendar_book.start_time, &start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_instance_allday_calendar_book.start_time, &start_time);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+
+       if (start_time.type == CALENDAR_TIME_LOCALTIME)
+               return EINA_TRUE;
+       else
+               return EINA_FALSE;
+}
+
+int _calendar_get_account_id(calendar_record_h record)
+{
+       c_retv_if(!record, -1);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int calendar_book_id = 0;
+       int account_id = 0;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_int(record, _calendar_event.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_int(record, _calendar_todo.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_CALENDARBOOK:
+                       error = calendar_record_get_int(record, _calendar_book.account_id, &account_id);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+                       return account_id;
+
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_todo_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book_attendee.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_normal_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_allday_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       calendar_record_h calendar_book = NULL;
+
+       error = calendar_db_get_record(_calendar_book._uri, calendar_book_id, &calendar_book);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record() is failed(%x)", error);
+
+
+
+       error = calendar_record_get_int(calendar_book, _calendar_book.account_id, &account_id);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (calendar_book) {
+               error = calendar_record_destroy(calendar_book, true);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+       }
+
+       return account_id;
+}
+
+char * _calendar_get_calendar_name(calendar_record_h record)
+{
+       c_retv_if(!record, NULL);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int calendar_book_id = 0;
+
+       calendar_record_h calendar_book = NULL;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_CALENDARBOOK:
+                       calendar_book = record;
+                       break;
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_int(record, _calendar_event.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_int(record, _calendar_todo.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_todo_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book_attendee.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_normal_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_allday_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (!calendar_book) {
+
+               error = calendar_db_get_record(_calendar_book._uri, calendar_book_id, &calendar_book);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record() is failed(%x)", error);
+       }
+
+       char *calendar_name = NULL;
+
+       error = calendar_record_get_str(calendar_book, _calendar_book.name, &calendar_name);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (calendar_book != record) {
+               error = calendar_record_destroy(calendar_book, true);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+       }
+
+       return CAL_STRDUP(calendar_name);
+}
+
+void _calendar_get_calendar_color(calendar_record_h record, _calendar_book_color* calendar_color )
+{
+       c_ret_if(!record);
+       c_ret_if(!calendar_color);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_record_h calendar_book = NULL;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       if (record_type == _CALENDAR_RECORD_TYPE_CALENDARBOOK)
+               calendar_book = record;
+       else {
+               int calendar_book_id = _calendar_get_calendar_index(record);
+
+               error = calendar_db_get_record(_calendar_book._uri, calendar_book_id, &calendar_book);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record(%d) is failed(%x)", calendar_book_id, error);
+       }
+
+       char *color = NULL;
+
+       error = calendar_record_get_str(calendar_book, _calendar_book.color, &color);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       char* token = NULL;
+       char* temp = NULL;
+
+       if (8 < CAL_STRLEN(color)) {
+
+               token = strtok_r(color, ".", &temp);
+               if (token)
+                       calendar_color->red = atoi(token);
+               else
+                       calendar_color->red = 0;
+
+               token = strtok_r(NULL, ".", &temp);
+               if (token)
+                       calendar_color->green = atoi(token);
+               else
+                       calendar_color->green = 0;
+
+               token = strtok_r(NULL, ".", &temp);
+               if (token)
+                       calendar_color->blue = atoi(token);
+               else
+                       calendar_color->blue = 0;
+
+               token = strtok_r(NULL, ".", &temp);
+               if (token)
+                       calendar_color->alpha = atoi(token);
+               else
+                       calendar_color->alpha = 255;
+       } else
+               *calendar_color = __calendar_default_color[_calendar_get_record_index(calendar_book)%6];
+
+       if (color)
+               free(color);
+
+       if (calendar_book != record) {
+               error = calendar_record_destroy(calendar_book, true);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+       }
+}
+
+int _calendar_get_calendar_index(calendar_record_h record)
+{
+       c_retv_if(!record, -1);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       int calendar_book_id = 0;
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_CALENDARBOOK:
+                       error = calendar_record_get_int(record, _calendar_book.id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_int(record, _calendar_event.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_int(record, _calendar_todo.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_todo_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book_attendee.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_normal_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_allday_calendar_book.calendar_book_id, &calendar_book_id);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       return calendar_book_id;
+}
+
+static char * __calendar_get_birthday_contact_title(calendar_record_h record)
+{
+       c_retv_if(!record, NULL);
+
+       calendar_record_h origin_calendar_record = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_get_record_type(record) == _CALENDAR_RECORD_TYPE_EVENT)
+               origin_calendar_record = record;
+       else
+       {
+               int id = _calendar_get_record_index(record);
+
+               error = calendar_db_get_record(_calendar_event._uri, id, &origin_calendar_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record(%d) is failed(%x)", id, error);
+       }
+
+       char *sync_data1 = NULL;
+       char *summary = NULL;
+
+       error = calendar_record_get_str_p(origin_calendar_record, _calendar_event.sync_data1, &sync_data1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str_p() is failed(%x)", error);
+
+       error = calendar_record_get_str_p(origin_calendar_record, _calendar_event.summary, &summary);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str_p() is failed(%x)", error);
+
+       int title_len = strlen(summary)+50;
+       char *contact_title = calloc(1, title_len);
+       c_retv_if(!contact_title, NULL);
+       char *format = NULL;
+
+       if (!CAL_STRCMP(sync_data1, "anniversary"))
+       {
+               format = C_("IDS_CLD_BODY_PSS_ANNIVERSARY");
+               snprintf(contact_title, title_len-1, format, summary);
+       }
+       else if (!CAL_STRCMP(sync_data1, "birthday"))
+       {
+               format = C_("IDS_CLD_POP_NAMES_BIRTHDAY");
+               snprintf(contact_title, title_len-1, format, summary);
+       }
+       else
+               snprintf(contact_title, title_len-1, "%s.%s", summary, sync_data1);
+
+       if (origin_calendar_record != record) {
+               error = calendar_record_destroy(origin_calendar_record, true);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+       }
+
+       return contact_title;
+}
+
+static Eina_Bool __calendar_is_birthday_contact_record(calendar_record_h record)
+{
+       c_retv_if(!record, EINA_FALSE);
+
+       int calendar_id = _calendar_get_calendar_index(record);
+       if(calendar_id == DEFAULT_BIRTHDAY_CALENDAR_BOOK_ID )
+               return EINA_TRUE;
+
+       return EINA_FALSE;
+}
+
+char * _calendar_get_summary(calendar_record_h record)
+{
+       c_retv_if(!record, NULL);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       char *summary = NULL;
+
+       if(__calendar_is_birthday_contact_record(record))
+       {
+               summary = __calendar_get_birthday_contact_title(record);
+               return summary;
+       }
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_str(record, _calendar_event.summary, &summary);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_str(record, _calendar_todo.summary, &summary);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_str(record, _calendar_event_calendar_book.summary, &summary);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_str(record, _calendar_todo_calendar_book.summary, &summary);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_str(record, _calendar_event_calendar_book_attendee.summary, &summary);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_str(record, _calendar_instance_normal_calendar_book.summary, &summary);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_str(record, _calendar_instance_allday_calendar_book.summary, &summary);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       if (!CAL_STRLEN(summary)) {
+
+               CAL_FREE(summary);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+       }
+
+       return summary;
+}
+
+char * _calendar_get_location(calendar_record_h record)
+{
+       c_retv_if(!record, NULL);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       char *location = NULL;
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_str(record, _calendar_event.location, &location);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_str(record, _calendar_todo.location, &location);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_str(record, _calendar_event_calendar_book.location, &location);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_str(record, _calendar_todo_calendar_book.location, &location);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_str(record, _calendar_event_calendar_book_attendee.location, &location);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_str(record, _calendar_instance_normal_calendar_book.location, &location);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_str(record, _calendar_instance_allday_calendar_book.location, &location);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       return location;
+}
+
+
+void _calendar_free_record_list(Eina_List **record_list)
+{
+       c_ret_if(!record_list);
+
+       if (!*record_list)
+               return;
+
+       calendar_record_h record = NULL;
+       Eina_List *list = NULL;
+
+       EINA_LIST_FOREACH(*record_list, list, record) {
+               if (!record)
+                       continue;
+
+               calendar_error_e error = CALENDAR_ERROR_NONE;
+
+               error = calendar_record_destroy(record, true);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+       }
+
+       *record_list = eina_list_free(*record_list);
+       c_warn_if(*record_list, "eina_list_free() is failed()");
+}
+
+void _calendar_get_start_time(calendar_record_h record, calendar_time_s *start_time)
+{
+       c_ret_if(!record);
+       c_ret_if(!start_time);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_caltime(record, _calendar_event.start_time, start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_caltime(record, _calendar_todo.due_time, start_time);       // !!!
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_event_calendar_book.start_time, start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_todo_calendar_book.due_time, start_time);         // !!!
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_caltime(record, _calendar_event_calendar_book_attendee.start_time, start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_instance_normal_calendar_book.start_time, start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_instance_allday_calendar_book.start_time, start_time);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+}
+
+void _calendar_get_end_time(calendar_record_h record, calendar_time_s *end_time)
+{
+       c_ret_if(!record);
+       c_ret_if(!end_time);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_caltime(record, _calendar_event.end_time, end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_caltime(record, _calendar_todo.due_time, end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_event_calendar_book.end_time, end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_todo_calendar_book.due_time, end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_caltime(record, _calendar_event_calendar_book_attendee.end_time, end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_instance_normal_calendar_book.end_time, end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_caltime(record, _calendar_instance_allday_calendar_book.end_time, end_time);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+}
+
+void _calendar_set_start_time(calendar_record_h record, calendar_time_s *start_time)
+{
+       c_ret_if(!record);
+       c_ret_if(!start_time);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_set_caltime(record, _calendar_event.start_time, *start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_set_caltime(record, _calendar_todo.start_time, *start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_set_caltime(record, _calendar_event_calendar_book.start_time, *start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_set_caltime(record, _calendar_todo_calendar_book.start_time, *start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_set_caltime(record, _calendar_event_calendar_book_attendee.start_time, *start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_set_caltime(record, _calendar_instance_normal_calendar_book.start_time, *start_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_set_caltime(record, _calendar_instance_allday_calendar_book.start_time, *start_time);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() is failed(%x)", error);
+}
+
+void _calendar_set_end_time(calendar_record_h record, calendar_time_s *end_time)
+{
+       c_ret_if(!record);
+       c_ret_if(!end_time);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_set_caltime(record, _calendar_event.end_time, *end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_set_caltime(record, _calendar_todo.due_time, *end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_set_caltime(record, _calendar_event_calendar_book.end_time, *end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_set_caltime(record, _calendar_todo_calendar_book.due_time, *end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_set_caltime(record, _calendar_event_calendar_book_attendee.end_time, *end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_set_caltime(record, _calendar_instance_normal_calendar_book.end_time, *end_time);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_set_caltime(record, _calendar_instance_allday_calendar_book.end_time, *end_time);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() is failed(%x)", error);
+}
+
+
+void _calendar_delete_record_with_index(int index)
+{
+       c_ret_if(index < 0);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_delete_record(_calendar_event._uri, index);
+
+       if (error != CALENDAR_ERROR_NONE)
+               error = calendar_db_delete_record(_calendar_todo._uri, index);
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_delete_record() is failed(%x)", error);
+}
+
+void _calendar_delete_record(calendar_record_h record)
+{
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int index = _calendar_get_record_index(record);
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_db_delete_record(_calendar_todo._uri, index);
+                       break;
+               default:
+                       error = calendar_db_delete_record(_calendar_event._uri, index);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_delete_record() is failed(%x)", error);
+}
+
+Eina_Bool _calendar_is_recurrent_record(calendar_record_h record)
+{
+       c_retv_if(!record, EINA_FALSE);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       calendar_recurrence_frequency_e frequency = CALENDAR_RECURRENCE_NONE;
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_int(record, _calendar_event.freq, (int *)&frequency);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_int(record, _calendar_todo.freq, (int *)&frequency);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book.freq, (int *)&frequency);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_todo_calendar_book.freq, (int *)&frequency);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book_attendee.freq, (int *)&frequency);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_normal_calendar_book.has_rrule, (int *)&frequency);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_allday_calendar_book.has_rrule, (int *)&frequency);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (frequency == CALENDAR_RECURRENCE_NONE)
+               return EINA_FALSE;
+       else
+               return EINA_TRUE;
+}
+
+Eina_Bool _calendar_has_reminder(calendar_record_h record)
+{
+       c_retv_if(!record, EINA_FALSE);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       int has_reminder = 0;
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_int(record, _calendar_event.has_alarm, &has_reminder);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_int(record, _calendar_todo.has_alarm, &has_reminder);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book.has_alarm, &has_reminder);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_todo_calendar_book.has_alarm, &has_reminder);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book_attendee.has_alarm, &has_reminder);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_normal_calendar_book.has_alarm, &has_reminder);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_allday_calendar_book.has_alarm, &has_reminder);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       _calendar_show_error(error);
+
+       if (has_reminder)
+               return EINA_TRUE;
+       else
+               return EINA_FALSE;
+}
+
+
+calendar_record_h _calendar_get_record_with_index(int index)
+{
+       c_retv_if(index < 0, NULL);
+
+       calendar_record_h record = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_get_record(_calendar_event._uri, index, &record);
+
+       if (error != CALENDAR_ERROR_NONE)
+               error = calendar_db_get_record(_calendar_todo._uri, index, &record);
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_delete_record() is failed(%x)", error);
+
+       return record;
+}
+
+int _calendar_get_record_index(calendar_record_h record)
+{
+       c_retv_if(!record, -1);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int index = -1;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       switch (record_type) {
+               case _CALENDAR_RECORD_TYPE_EVENT:
+                       error = calendar_record_get_int(record, _calendar_event.id, &index);
+                       break;
+               case _CALENDAR_RECORD_TYPE_TODO:
+                       error = calendar_record_get_int(record, _calendar_todo.id, &index);
+                       break;
+               case _CALENDAR_RECORD_TYPE_CALENDARBOOK:
+                       error = calendar_record_get_int(record, _calendar_book.id, &index);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book.event_id, &index);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_todo_calendar_book.todo_id, &index);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE:
+                       error = calendar_record_get_int(record, _calendar_event_calendar_book_attendee.event_id, &index);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_normal_calendar_book.event_id, &index);
+                       break;
+               case _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR:
+                       error = calendar_record_get_int(record, _calendar_instance_allday_calendar_book.event_id, &index);
+                       break;
+               case _CALENDAR_RECORD_TYPE_EXTENDED_PROPERTY:
+                       error = calendar_record_get_int(record, _calendar_extended_property.id, &index);
+                       break;
+               default:
+                       ERR("Invaild type : %d", record_type);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       return index;
+}
+
+void _calendar_export_record_to_vcs(calendar_record_h record, const char *file_path)
+{
+       c_ret_if(!record);
+       c_ret_if(!file_path);
+
+       calendar_list_h list = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_list_create(&list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_create() is failed(%x)");
+
+       error = calendar_list_add(list, record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_add() is failed(%x)");
+
+       char *vcalendar_strem = NULL;
+
+       error = calendar_vcalendar_make_from_records(list, &vcalendar_strem);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_vcalendar_make_from_records() is failed(%x)");
+
+       int fd = open(file_path, O_WRONLY|O_CREAT|O_TRUNC, 0644);
+       if(fd < 0){
+               ERR("open(%s) is failed.", file_path);
+               free(vcalendar_strem);
+               error = calendar_list_destroy(list, false);
+               return;
+       }
+
+       int ret = 0;
+
+       if (0 <= fd) {
+
+               if (vcalendar_strem) {
+                       ret = write(fd, vcalendar_strem, strlen(vcalendar_strem));
+                       if (ret < 0) {
+                               ERR("write() is failed");
+
+                       } else
+                               cal_util_update_media_db(file_path);
+
+                       free(vcalendar_strem);
+               }
+
+               ret = fsync(fd);
+               c_warn_if(ret < 0, "fsync(%d) is failed.", fd);
+
+               close(fd);
+       }
+
+       error = calendar_list_destroy(list, false);
+}
+
+int * _calendar_get_month(struct tm *start, struct tm *end, int is_display_completed_todo)
+{
+       CAL_FN_START;
+
+       c_retv_if(!start, NULL);
+       c_retv_if(!end, NULL);
+
+       int *month = calloc(31, sizeof(int));
+       c_retv_if(!month, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_time_s caltime_start = {0};
+       calendar_time_s caltime_end = {0};
+
+       long long int lli_start = 0;
+       long long int lli_end = 0;
+
+       struct tm tm_start = {0};
+       struct tm tm_end = {0};
+
+       cal_util_convert_tm_to_lli(NULL, start, &lli_start);
+       cal_util_convert_tm_to_lli(NULL, end, &lli_end);
+
+       caltime_start.type = CALENDAR_TIME_UTIME;
+       caltime_start.time.utime = lli_start;
+
+       caltime_end.type = CALENDAR_TIME_UTIME;
+       caltime_end.time.utime = lli_end;
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_query_create(_calendar_instance_normal_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       error = calendar_filter_create(_calendar_instance_normal_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_normal_calendar_book.end_time, CALENDAR_MATCH_GREATER_THAN, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_normal_calendar_book.start_time,CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_instance_normal_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       int count = 0;
+
+       error = calendar_list_get_count(list,&count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       int i = 0;
+       int index = 0;
+
+       for (index = 0; index < count; index++) {
+
+               calendar_record_h record = NULL;
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               _calendar_get_start_time(record, &caltime_start);
+               _calendar_get_end_time(record, &caltime_end);
+
+               cal_util_convert_lli_to_tm(NULL, caltime_start.time.utime, &tm_start);
+               cal_util_convert_lli_to_tm(NULL, caltime_end.time.utime, &tm_end);
+
+               for (i = tm_start.tm_mday; i <= tm_end.tm_mday; i++)
+                       month[i - 1] += 1;
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+       list = NULL;
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+       filter = NULL;
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+       query = NULL;
+
+       error = calendar_query_create(_calendar_todo_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       error = calendar_filter_create(_calendar_todo_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       caltime_start.time.utime = lli_start;
+       caltime_end.time.utime = lli_end;
+
+       error = calendar_filter_add_caltime(filter, _calendar_todo_calendar_book.due_time, CALENDAR_MATCH_GREATER_THAN, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_todo_calendar_book.due_time,CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.is_deleted, CALENDAR_MATCH_EQUAL, 0);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_list_get_count(list,&count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       for (index = 0; index < count; index++) {
+
+               calendar_record_h record = NULL;
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               _calendar_get_end_time(record, &caltime_end);
+
+               cal_util_convert_lli_to_tm(NULL, caltime_end.time.utime, &tm_end);
+
+               if (!is_display_completed_todo) {
+                       int todo_status;
+                       calendar_record_get_int(record, _calendar_todo_calendar_book.todo_status, &todo_status);
+                       if (CALENDAR_TODO_STATUS_COMPLETED != todo_status)
+                               month[tm_end.tm_mday - 1] += 1;
+               } else {
+                       month[tm_end.tm_mday - 1] += 1;
+               }
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+       list = NULL;
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+       filter = NULL;
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+       query = NULL;
+
+       caltime_start.type = CALENDAR_TIME_LOCALTIME;
+       caltime_start.time.date.year = start->tm_year + 1900;
+       caltime_start.time.date.month = start->tm_mon + 1;
+       caltime_start.time.date.mday = start->tm_mday;
+
+       caltime_end.type = CALENDAR_TIME_LOCALTIME;
+       caltime_end.time.date.year = end->tm_year + 1900;
+       caltime_end.time.date.month = end->tm_mon + 1;
+       caltime_end.time.date.mday = end->tm_mday;
+
+       error = calendar_query_create(_calendar_instance_allday_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       error = calendar_filter_create(_calendar_instance_allday_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_allday_calendar_book.end_time, CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_allday_calendar_book.start_time,CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_instance_allday_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_list_get_count(list,&count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       i = 0;
+       for (index = 0; index < count; index++) {
+
+               calendar_record_h record = NULL;
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               _calendar_get_start_time(record, &caltime_start);
+               _calendar_get_end_time(record, &caltime_end);
+
+               for (i = caltime_start.time.date.mday; i <= caltime_end.time.date.mday; i++)
+                       month[i - 1] += 1;
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+       list = NULL;
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+       filter = NULL;
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+       query = NULL;
+
+       CAL_FN_END;
+
+       return month;
+}
+
+calendar_list_h _calendar_get_normal_instance_list_handler(struct tm *start, struct tm *end)
+{
+       c_retv_if(!start, NULL);
+       c_retv_if(!end, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_query_create(_calendar_instance_normal_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_time_s caltime_start = {0};
+       calendar_time_s caltime_end = {0};
+
+       long long int lli_start = 0;
+       long long int lli_end = 0;
+
+       cal_util_convert_tm_to_lli(NULL, start, &lli_start);
+       cal_util_convert_tm_to_lli(NULL, end, &lli_end);
+
+       caltime_start.type = CALENDAR_TIME_UTIME;
+       caltime_start.time.utime = lli_start;
+
+       caltime_end.type = CALENDAR_TIME_UTIME;
+       caltime_end.time.utime = lli_end;
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_filter_create(_calendar_instance_normal_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_normal_calendar_book.end_time, CALENDAR_MATCH_GREATER_THAN, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_normal_calendar_book.start_time,CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_instance_normal_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       return list;
+}
+
+calendar_list_h _calendar_get_allday_instance_list_handler(struct tm *start, struct tm *end)
+{
+       c_retv_if(!start, NULL);
+       c_retv_if(!end, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_query_create(_calendar_instance_allday_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_time_s caltime_start = {0};
+       calendar_time_s caltime_end = {0};
+
+       caltime_start.type = CALENDAR_TIME_LOCALTIME;
+       caltime_start.time.date.year = start->tm_year + 1900;
+       caltime_start.time.date.month = start->tm_mon + 1;
+       caltime_start.time.date.mday = start->tm_mday;
+
+       caltime_end.type = CALENDAR_TIME_LOCALTIME;
+       caltime_end.time.date.year = end->tm_year + 1900;
+       caltime_end.time.date.month = end->tm_mon + 1;
+       caltime_end.time.date.mday = end->tm_mday;
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_filter_create(_calendar_instance_allday_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_allday_calendar_book.end_time, CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_instance_allday_calendar_book.start_time,CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_instance_allday_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       return list;
+}
+
+calendar_list_h _calendar_get_task_list_handler(struct tm *start, struct tm *end, Eina_Bool is_show_completed_task, _calendar_task_sort_type sort_type)
+{
+       c_retv_if(!start, NULL);
+       c_retv_if(!end, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_query_create(_calendar_todo_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_time_s caltime_start = {0};
+       calendar_time_s caltime_end = {0};
+
+       long long int lli_start = 0;
+       long long int lli_end = 0;
+
+       cal_util_convert_tm_to_lli(NULL, start, &lli_start);
+       cal_util_convert_tm_to_lli(NULL, end, &lli_end);
+
+       caltime_start.type = CALENDAR_TIME_UTIME;
+       caltime_start.time.utime = lli_start;
+
+       caltime_end.type = CALENDAR_TIME_UTIME;
+       caltime_end.time.utime = lli_end;
+
+       calendar_filter_h filter = NULL;
+       calendar_filter_h status_filter = NULL;
+
+       error = calendar_filter_create(_calendar_todo_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_todo_calendar_book.due_time, CALENDAR_MATCH_GREATER_THAN, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_todo_calendar_book.due_time,CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.is_deleted, CALENDAR_MATCH_EQUAL, 0);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       if (!is_show_completed_task) {
+
+               error = calendar_filter_create(_calendar_todo_calendar_book._uri, &status_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_NONE);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(status_filter, CALENDAR_FILTER_OPERATOR_OR);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_NEEDS_ACTION);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(status_filter, CALENDAR_FILTER_OPERATOR_OR);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_IN_PROCESS);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(status_filter, CALENDAR_FILTER_OPERATOR_OR);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_CANCELED);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+               error = calendar_filter_add_filter(filter, status_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_filter() is failed(%x)", error);
+       }
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       switch (sort_type) {
+               case _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.due_time, true);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_DUEDATE_DES:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.due_time, false);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_PRIORITY_ASC:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.priority, true);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_PRIORITY_DES:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.priority, false);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_STATUS_ASC:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.todo_status, true);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_STATUS_DES:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.todo_status, false);
+                       break;
+               default:
+                       break;
+       }
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_filter_destroy(status_filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       return list;
+}
+
+calendar_list_h _calendar_search_event(const char *keyword)
+{
+       c_retv_if(!CAL_STRLEN(keyword), NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_query_create(_calendar_event_calendar_book_attendee._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_filter_h visibility_filter = NULL;
+
+       error = calendar_filter_create(_calendar_event_calendar_book_attendee._uri, &visibility_filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_int(visibility_filter, _calendar_event_calendar_book_attendee.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_filter_create(_calendar_event_calendar_book_attendee._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_str(filter, _calendar_event_calendar_book_attendee.summary, CALENDAR_MATCH_CONTAINS, keyword);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_str() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_OR);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_str(filter, _calendar_event_calendar_book_attendee.location, CALENDAR_MATCH_CONTAINS, keyword);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_str() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_OR);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_str(filter, _calendar_event_calendar_book_attendee.description, CALENDAR_MATCH_CONTAINS, keyword);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_str() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_OR);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_str(filter, _calendar_event_calendar_book_attendee.attendee_name, CALENDAR_MATCH_CONTAINS, keyword);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_str() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(visibility_filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_filter(visibility_filter, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_filter() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, visibility_filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       error = calendar_filter_destroy(visibility_filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return list;
+}
+
+calendar_list_h _calendar_search_task(const char* keyword)
+{
+       calendar_query_h query = cal_query_create_task_search_query(keyword);
+       c_retv_if(!query, NULL);
+
+       calendar_list_h list = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return list;
+}
+
+calendar_list_h _calendar_get_all_task_list(struct tm *start, struct tm *end, Eina_Bool is_show_completed_task, _calendar_task_sort_type sort_type)
+{
+       calendar_query_h query =
+                       cal_query_create_all_task_list_query(start, end, is_show_completed_task, sort_type);
+       c_retv_if(!query, NULL);
+
+       calendar_list_h list = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       return list;
+}
+
+Eina_List* _calendar_get_all_task_list2(struct tm *start, struct tm *end, Eina_Bool is_show_completed_task, _calendar_task_sort_type sort_type)
+{
+       calendar_query_h query =
+                       cal_query_create_all_task_list_query(start, end, is_show_completed_task, sort_type);
+       c_retv_if(!query, NULL);
+
+       calendar_list_h list = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       int count = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       Eina_List *todo_list = NULL;
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       int i = 0;
+       for (i = 0; i < count; i++) {
+
+               calendar_record_h record = NULL;
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               calendar_record_h new_record = NULL;
+
+               error = calendar_record_clone(record, &new_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+
+               todo_list = eina_list_append(todo_list, new_record);
+               c_warn_if(!todo_list, "eina_list_append() is failed.");
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, false);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return todo_list;
+}
+
+static int __calendar_compare_todo_record_list_item(const void *data1, const void *data2)
+{
+       c_retv_if(!data1, 1);
+       c_retv_if(!data2, -1);
+
+       calendar_record_h record1 = data1;
+       calendar_record_h record2 = data2;
+
+       calendar_time_s record1_due_time = {0};
+       calendar_time_s record2_due_time = {0};
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       error = calendar_record_get_caltime(record1, _calendar_todo_calendar_book.due_time, &record1_due_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+
+       error = calendar_record_get_caltime(record2, _calendar_todo_calendar_book.due_time, &record2_due_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+
+       long long int lli_due1 = record1_due_time.time.utime;
+       long long int lli_due2 = record2_due_time.time.utime;
+
+       return (lli_due1 > lli_due2) ? 1 : -1;
+}
+
+
+Eina_List* _calendar_get_due_date_task_list(struct tm *start, struct tm *end, Eina_Bool is_show_completed_task, _calendar_task_sort_type sort_type)
+{
+       calendar_query_h query =
+                       cal_query_create_due_date_task_list_query(start, end, is_show_completed_task, sort_type);
+       c_retv_if(!query, NULL);
+
+       calendar_list_h list = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       int count = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       Eina_List *todo_list = NULL;
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       int i = 0;
+       for (i = 0; i < count; i++) {
+
+               calendar_record_h record = NULL;
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               calendar_record_h new_record = NULL;
+
+               error = calendar_record_clone(record, &new_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+
+               todo_list = eina_list_append(todo_list, new_record);
+               c_warn_if(!todo_list, "eina_list_append() is failed.");
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, false);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       eina_list_sort(todo_list, 0, __calendar_compare_todo_record_list_item);
+       return todo_list;
+}
+
+Eina_List * _calendar_get_calendar_book_list_with_account_id(int account_id)
+{
+       c_retv_if(account_id < -1, NULL);
+
+       Eina_List *calendar_book_list = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_query_h query = NULL;
+
+       error = calendar_query_create( _calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_filter_h filter = NULL;
+
+       if (account_id != _CALENDAR_ALL_ACCOUNT_ID) {
+
+               error = calendar_filter_create(_calendar_book._uri, &filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+               error = calendar_filter_add_int(filter, _calendar_book.is_deleted, CALENDAR_MATCH_EQUAL, 0);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+               error = calendar_filter_add_int(filter, _calendar_book.account_id, CALENDAR_MATCH_EQUAL, account_id);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_query_set_filter(query, filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+       }
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       int count = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       int i = 0;
+
+       for (i = 0; i < count; i++) {
+
+               calendar_record_h record = NULL;
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               calendar_book_list = eina_list_append(calendar_book_list, record);
+               c_warn_if(!calendar_book_list, "eina_list_append() is failed.");
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, false);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       if (account_id != _CALENDAR_ALL_ACCOUNT_ID) {
+               error = calendar_filter_destroy(filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+       }
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return calendar_book_list;
+}
+
+static char * __calendar_get_time_str_from_lli(long long int lli)
+{
+       UErrorCode status = U_ZERO_ERROR;
+
+       UChar *tz_id = (UChar*)calloc(strlen("Etc/Unknown") + 1, sizeof(UChar));
+       c_retv_if(!tz_id, NULL);
+
+       u_uastrcpy(tz_id, "Etc/Unknown");
+
+       UCalendar *cal = ucal_open(tz_id, u_strlen(tz_id), "en_US", UCAL_TRADITIONAL, &status);
+       c_retv_if(U_FAILURE(status), NULL);
+
+       free(tz_id);
+
+       int year = 0;
+       int month = 0;
+       int day = 0;
+       int hour = 0;
+       int minute = 0;
+       int second = 0;
+
+       ucal_setMillis(cal, lli * 1000, &status);
+
+       year = ucal_get(cal, UCAL_YEAR, &status);
+       month = ucal_get(cal, UCAL_MONTH, &status) + 1;
+       day = ucal_get(cal, UCAL_DATE, &status);
+       hour = ucal_get(cal, UCAL_HOUR_OF_DAY, &status);
+       minute = ucal_get(cal, UCAL_MINUTE, &status);
+       second = ucal_get(cal, UCAL_SECOND, &status);
+
+       return g_strdup_printf("%04d%02d%02dT%02d%02d%02dZ", year, month, day, hour, minute, second);
+}
+
+void _calendar_delete_recurrence_instance(calendar_record_h instance)
+{
+       c_ret_if(!instance);
+
+       _calendar_record_type record_type = _calendar_get_record_type(instance);
+
+       c_ret_if(record_type != _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR
+               && record_type != _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR);
+
+       calendar_record_h original_record = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int event_id = 0;
+
+       if (record_type == _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR) {
+               error = calendar_record_get_int(instance, _calendar_instance_allday_calendar_book.event_id, &event_id);
+       } else {
+               error = calendar_record_get_int(instance, _calendar_instance_normal_calendar_book.event_id, &event_id);
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       error = calendar_db_get_record(_calendar_event._uri, event_id, &original_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record() is failed(%x)", error);
+
+       char *exdate = NULL;
+
+       error = calendar_record_get_str(original_record, _calendar_event.exdate, &exdate);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       calendar_time_s start_time = {0};
+
+       _calendar_get_start_time(instance, &start_time);
+
+       char *new_exdate = NULL;
+
+       if (record_type == _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR) {
+
+               if (CAL_STRLEN(exdate))
+                       new_exdate = g_strdup_printf("%s,%04d%02d%02d", exdate, start_time.time.date.year, start_time.time.date.month, start_time.time.date.mday);
+               else
+                       new_exdate = g_strdup_printf("%04d%02d%02d", start_time.time.date.year, start_time.time.date.month, start_time.time.date.mday);
+
+       } else {
+               char *lli = __calendar_get_time_str_from_lli(start_time.time.utime);
+               c_ret_if(!lli);
+
+               if (CAL_STRLEN(exdate))
+                       new_exdate = g_strdup_printf("%s,%s", exdate, lli);
+               else
+                       new_exdate = g_strdup_printf("%s", lli);
+
+               free(lli);
+       }
+
+       error = calendar_record_set_str(original_record, _calendar_event.exdate, new_exdate);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+
+       CAL_FREE(new_exdate);
+       CAL_FREE(exdate);
+
+       error = calendar_db_update_record(original_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_update_record() is failed(%x)", error);
+}
+
+void _calendar_edit_recurrence_instance(calendar_record_h exception_record, int original_event_id)
+{
+       c_ret_if(!exception_record);
+       c_ret_if(original_event_id <= 0);
+
+       calendar_record_h original_record = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_set_int(exception_record, _calendar_event.original_event_id, original_event_id);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+       error = calendar_db_get_record(_calendar_event._uri, original_event_id, &original_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record() is failed(%x)", error);
+
+       char *recurrence_id = NULL;
+
+       error = calendar_record_get_str(original_record, _calendar_event.recurrence_id, &recurrence_id);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       calendar_time_s time = {0};
+
+       _calendar_get_start_time(exception_record, &time);
+
+       char *new_recurrence_id = NULL;
+
+       if (time.type == CALENDAR_TIME_LOCALTIME) {
+
+               if (CAL_STRLEN(recurrence_id))
+                       new_recurrence_id = g_strdup_printf("%s,%04d%02d%02d", recurrence_id, time.time.date.year, time.time.date.month, time.time.date.mday);
+               else
+                       new_recurrence_id = g_strdup_printf("%04d%02d%02d", time.time.date.year, time.time.date.month, time.time.date.mday);
+
+       } else {
+               char *lli = __calendar_get_time_str_from_lli(time.time.utime);
+               c_ret_if(!lli);
+
+               if (CAL_STRLEN(recurrence_id))
+                       new_recurrence_id = g_strdup_printf("%s,%s", recurrence_id, lli);
+               else
+                       new_recurrence_id = g_strdup_printf("%s", lli);
+
+               free(lli);
+       }
+
+       error = calendar_record_set_str(exception_record, _calendar_event.recurrence_id, new_recurrence_id);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+
+       CAL_FREE(new_recurrence_id);
+       CAL_FREE(recurrence_id);
+}
+
+void _calendar_clear_child_record(calendar_record_h record, unsigned int property_id)
+{
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       unsigned int child_record_count = 0;
+
+       error = calendar_record_get_child_record_count(record, property_id, &child_record_count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_count() is failed(%x)", error);
+
+       while (child_record_count--) {
+               calendar_record_h child_record = NULL;
+
+               error = calendar_record_get_child_record_at_p(record, property_id, 0, &child_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_at_p() is failed(%x)", error);
+
+               error = calendar_record_remove_child_record(record, property_id, child_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_at_p() is failed(%x)", error);
+       }
+}
+
+void _calendar_clear_child_record_by_key(calendar_record_h record, unsigned int property_id, const char *key)
+{
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       unsigned int child_record_count = 0;
+       char *item_key = NULL;
+
+       error = calendar_record_get_child_record_count(record, property_id, &child_record_count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_count() is failed(%x)", error);
+
+       while (child_record_count--) {
+               calendar_record_h child_record = NULL;
+
+               error = calendar_record_get_child_record_at_p(record, property_id, 0, &child_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_at_p() is failed(%x)", error);
+
+               error = calendar_record_get_str_p(child_record, _calendar_extended_property.key, &item_key);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str_p() is failed(%x)", error);
+
+               if (!CAL_STRCMP(item_key, key)) {
+               error = calendar_record_remove_child_record(record, property_id, child_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_at_p() is failed(%x)", error);
+               }
+       }
+}
+
+calendar_record_h _calendar_get_instance_from_record(calendar_record_h record, struct tm *start, struct tm *end)
+{
+       CAL_FN_START;
+
+       c_retv_if(!record, NULL);
+       c_retv_if(!start, NULL);
+       c_retv_if(!end, NULL);
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+       c_retv_if(record_type != _CALENDAR_RECORD_TYPE_EVENT, NULL);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       Eina_Bool is_allday_record = _calendar_is_allday_record(record);
+
+       int record_index = 0;
+
+       error = calendar_record_get_int(record, _calendar_event.id, &record_index);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       calendar_time_s caltime_start = {0};
+       calendar_time_s caltime_end = {0};
+
+       calendar_query_h query = NULL;
+       calendar_filter_h filter = NULL;
+
+       if (is_allday_record) {
+               error = calendar_query_create(_calendar_instance_allday_calendar_book._uri, &query);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+               error = calendar_filter_create(_calendar_instance_allday_calendar_book._uri, &filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+               caltime_start.type = CALENDAR_TIME_LOCALTIME;
+               caltime_end.type = CALENDAR_TIME_LOCALTIME;
+
+               caltime_start.time.date.year = start->tm_year + 1900;
+               caltime_start.time.date.month = start->tm_mon + 1;
+               caltime_start.time.date.mday = start->tm_mday;
+
+               caltime_end.time.date.year = end->tm_year + 1900;
+               caltime_end.time.date.month = end->tm_mon + 1;
+               caltime_end.time.date.mday = end->tm_mday;
+
+               error = calendar_filter_add_caltime(filter, _calendar_instance_allday_calendar_book.end_time, CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, caltime_start);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+               error = calendar_filter_add_caltime(filter, _calendar_instance_allday_calendar_book.start_time, CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+               error = calendar_filter_add_int(filter, _calendar_instance_allday_calendar_book.event_id, CALENDAR_MATCH_EQUAL, record_index);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       } else {
+
+               error = calendar_query_create(_calendar_instance_normal_calendar_book._uri, &query);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+               error = calendar_filter_create(_calendar_instance_normal_calendar_book._uri, &filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+               caltime_start.type = CALENDAR_TIME_UTIME;
+               caltime_end.type = CALENDAR_TIME_UTIME;
+
+               cal_util_convert_tm_to_lli(NULL, start, &caltime_start.time.utime);
+               cal_util_convert_tm_to_lli(NULL, end, &caltime_end.time.utime);
+
+               error = calendar_filter_add_caltime(filter, _calendar_instance_normal_calendar_book.end_time, CALENDAR_MATCH_GREATER_THAN, caltime_start);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+               error = calendar_filter_add_caltime(filter, _calendar_instance_normal_calendar_book.start_time, CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+               error = calendar_filter_add_int(filter, _calendar_instance_normal_calendar_book.event_id, CALENDAR_MATCH_EQUAL, record_index);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+       }
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       int count = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+       c_warn_if(count != 1, "count is not 1(%d)", count);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       calendar_record_h instance = NULL;
+
+       error = calendar_list_get_current_record_p(list, &instance);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+       error = calendar_list_destroy(list, false);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return instance;
+}
+
+void _calendar_convert_calendar_time_to_tm(calendar_time_s *time, struct tm *tm)
+{
+       c_ret_if(!time);
+       c_ret_if(!tm);
+
+       if (time->type == CALENDAR_TIME_UTIME) {
+               cal_util_convert_lli_to_tm(NULL, time->time.utime, tm);
+       } else {
+               tm->tm_year = time->time.date.year - 1900;
+               tm->tm_mon = time->time.date.month - 1;
+               tm->tm_mday = time->time.date.mday;
+               tm->tm_hour = 0;
+               tm->tm_min = 0;
+               tm->tm_sec = 0;
+       }
+}
+
+char * _calendar_get_time_str(calendar_time_s *time, const char *date_format, const char *time_format)
+{
+       c_retv_if(!time, NULL);
+
+       struct tm tm = {0};
+
+       _calendar_convert_calendar_time_to_tm(time, &tm);
+
+       char buffer[128] = {0};
+
+       cal_util_get_time_text(buffer, sizeof(buffer), date_format, time_format, &tm);
+
+       return strdup(buffer);
+}
+
+const char* __calendar_get_time_format()
+{
+       if (is_hour24)
+               return CAL_UTIL_TIME_FORMAT_6;
+       else
+               return CAL_UTIL_TIME_FORMAT_1;
+}
+
+char * _calendar_get_time_str_for_genlist(calendar_record_h record)
+{
+       c_retv_if(!record, NULL);
+
+       if (_calendar_is_allday_record(record))
+               return strdup(C_("IDS_COM_BODY_ALL_DAY"));
+
+       calendar_time_s stat_time = {0};
+       calendar_time_s end_time = {0};
+       char buff[256] = {0};
+
+       if (_calendar_is_task_record(record)) {
+               calendar_time_s due_time;
+               calendar_record_get_caltime(record, _calendar_todo_calendar_book.due_time, &due_time);
+               if (due_time.time.utime == CALENDAR_TODO_NO_DUE_DATE) {
+                       return strdup(C_("IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"));
+               }
+
+               _calendar_get_end_time(record, &end_time);
+
+               struct tm today_tm;
+               struct tm record_tm;
+
+               time_t now = time(NULL);
+               localtime_r(&now, &today_tm);
+
+               _calendar_convert_calendar_time_to_tm(&end_time, &record_tm);
+
+               if ((today_tm.tm_year == record_tm.tm_year) && (today_tm.tm_mon == record_tm.tm_mon) && (today_tm.tm_mday == record_tm.tm_mday)) {
+                       return _calendar_get_time_str(&end_time, NULL, __calendar_get_time_format());
+               } else {
+                       char *time = _calendar_get_time_str(&end_time, NULL, __calendar_get_time_format());
+                       char *date = _calendar_get_time_str(&end_time, NULL, CAL_UTIL_DATE_FORMAT_12);
+                       sprintf(buff, "%s %s", time, date);
+                       free(time);
+                       free(date);
+                       return strdup(buff);
+               }
+       } else {
+               _calendar_get_start_time(record, &stat_time);
+               _calendar_get_end_time(record, &end_time);
+               char *start_str = _calendar_get_time_str(&stat_time, NULL, __calendar_get_time_format());
+               char *end_str = _calendar_get_time_str(&end_time, NULL, __calendar_get_time_format());
+               sprintf(buff, "%s-%s", start_str, end_str);
+               free(start_str);
+               free(end_str);
+               return strdup(buff);
+       }
+}
+
+static Eina_Bool __calendar_check_record_sync_data4(calendar_record_h record, const char *category)
+{
+       c_retv_if(!record, EINA_FALSE);
+       c_retv_if(!CAL_STRLEN(category), EINA_FALSE);
+
+       int calendar_book_id = _calendar_get_calendar_index(record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_record_h calendar_book = NULL;
+
+       error = calendar_db_get_record(_calendar_book._uri, calendar_book_id, &calendar_book);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record(%d) is failed(%x)", calendar_book_id, error);
+
+       char *sync_data4 = NULL;
+
+       error = calendar_record_get_str_p(calendar_book, _calendar_book.sync_data4, &sync_data4);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str_p() is failed(%x)", error);
+
+       Eina_Bool result = EINA_FALSE;
+
+       if (!CAL_STRCMP(sync_data4, category))
+               result = EINA_TRUE;
+
+       error = calendar_record_destroy(calendar_book, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+
+       return result;
+}
+
+Eina_Bool _calendar_is_eas_record(calendar_record_h record)
+{
+       return __calendar_check_record_sync_data4(record, "exchange");
+}
+
+Eina_Bool _calendar_is_facebook_record(calendar_record_h record)
+{
+       return __calendar_check_record_sync_data4(record, "facebook");
+}
+
+void _calendar_get_recurrence_frequency_str(int freq, char *buf, int size)
+{
+       c_ret_if(!buf);
+
+       char *format = NULL;
+
+       switch (freq) {
+
+               case CALENDAR_RECURRENCE_DAILY:
+
+                       snprintf(buf, size, "%s", C_("IDS_KC_BODY_EVERY_DAY"));
+                       break;
+
+               case CAL_REPEAT_EVERY_3_DAY:
+
+                       format = C_("IDS_CLD_BODY_EVERY_PD_DAYS");
+                       snprintf(buf, size, format, 3);
+                       break;
+
+               case CALENDAR_RECURRENCE_WEEKLY:
+
+                       snprintf(buf, size, "%s", C_("IDS_CLD_BODY_EVERY_WEEK"));
+                       break;
+
+               case CAL_REPEAT_EVERY_2_WEEK:
+
+                       format = C_("IDS_CLD_BODY_EVERY_PD_WEEKS");
+                       snprintf(buf, size, format, 2);
+                       break;
+
+               case CALENDAR_RECURRENCE_MONTHLY:
+
+                       snprintf(buf, size, "%s", C_("IDS_CLD_BODY_EVERY_MONTH"));
+                       break;
+
+               case CALENDAR_RECURRENCE_YEARLY:
+
+                       snprintf(buf, size, "%s", C_("IDS_CLD_BODY_EVERY_YEAR"));
+                       break;
+
+               default:
+
+                       snprintf(buf, size, "%s", S_("IDS_COM_BODY_OFF"));
+                       break;
+
+       }
+
+       buf[size-1] = '\0';
+}
+
+void _calendar_set_coordinates(calendar_record_h record, double latitude, double longitude)
+{
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_is_task_record(record)) {
+
+               error = calendar_record_set_double(record, _calendar_todo.latitude, latitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_double() is failed(%x)", error);
+
+               error = calendar_record_set_double(record, _calendar_todo.longitude, longitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_double() is failed(%x)", error);
+
+       } else {
+               error = calendar_record_set_double(record, _calendar_event.latitude, latitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_double() is failed(%x)", error);
+
+               error = calendar_record_set_double(record, _calendar_event.longitude, longitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_double() is failed(%x)", error);
+
+       }
+}
+
+void _calendar_get_coordinates(calendar_record_h record, double *latitude, double *longitude)
+{
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_is_task_record(record)) {
+
+               error = calendar_record_get_double(record, _calendar_todo.latitude, latitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_double() is failed(%x)", error);
+
+               error = calendar_record_get_double(record, _calendar_todo.longitude, longitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_double() is failed(%x)", error);
+
+       } else {
+               error = calendar_record_get_double(record, _calendar_event.latitude, latitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_double() is failed(%x)", error);
+
+               error = calendar_record_get_double(record, _calendar_event.longitude, longitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_double() is failed(%x)", error);
+       }
+}
diff --git a/common/common.c b/common/common.c
new file mode 100755 (executable)
index 0000000..7409981
--- /dev/null
@@ -0,0 +1,45 @@
+
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include "cld.h"
+
+#ifdef CAL_TIMECHECK
+double cal_set_start_time(void)
+{
+       struct timeval tv;
+       double curtime;
+
+       gettimeofday(&tv, NULL);
+       curtime = tv.tv_sec * 1000 + (double)tv.tv_usec/1000;
+       return curtime;
+}
+
+double cal_exec_time(double start, double correction)
+{
+       double end = cal_set_start_time();
+       return (end - start - correction);
+}
+
+double cal_init_time(double correction)
+{
+       double temp_t;
+       temp_t = cal_set_start_time();
+       return cal_exec_time(temp_t, correction);
+}
+#endif//CAL_TIMECHECK
diff --git a/common/dialogue.c b/common/dialogue.c
new file mode 100755 (executable)
index 0000000..9126d1d
--- /dev/null
@@ -0,0 +1,330 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "cld.h"
+#include "dialogue.h"
+
+#define CAL_DIALOGUE_CUSTOM_EDJ "/usr/apps/"CALENDAR_PACKAGE"/res/edje/dialogue.edj"
+#define CAL_DIALOGUE_UNPACKED_ITEM_LIST "unpacked_item_list"
+
+typedef struct {
+       Evas_Object *item;
+       cal_dialogue_item_clicked_callback callback_func;
+       void *callback_data;
+} __cal_dialogue_item_callback_s;
+
+static void __cal_dialogue_box_delete_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!obj);
+
+       Eina_List *unpacked_item_list = NULL;
+       Eina_List *cursor = NULL;
+       Evas_Object *unpacked_item = NULL;
+
+       unpacked_item_list = evas_object_data_get(obj, CAL_DIALOGUE_UNPACKED_ITEM_LIST);
+
+       if (!unpacked_item_list)
+               return;
+
+       EINA_LIST_FOREACH(unpacked_item_list, cursor, unpacked_item) {
+               if (unpacked_item)
+                       evas_object_del(unpacked_item);
+       }
+}
+
+Evas_Object * cal_dialogue_create(Evas_Object *parent)
+{
+       c_retv_if(!parent, NULL);
+
+       Evas_Object *scroller = cal_util_add_scroller(parent);
+       c_retv_if(!scroller, NULL);
+
+       elm_object_style_set(scroller, "dialogue");
+
+       Evas_Object *box = elm_box_add(scroller);
+       if (!box) {
+               ERR("elm_box_add(scroller) is failed");
+               evas_object_del(scroller);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(box, EVAS_HINT_FILL, 0.0);
+
+       elm_object_content_set(scroller, box);
+
+       evas_object_show(box);
+
+       evas_object_event_callback_add(box, EVAS_CALLBACK_DEL, __cal_dialogue_box_delete_callback, NULL);
+
+       return scroller;
+}
+
+void cal_dialogue_destroy(Evas_Object * dialogue)
+{
+       c_ret_if(!dialogue);
+
+       evas_object_del(dialogue);
+}
+
+Evas_Object * cal_dialogue_get_box(Evas_Object *dialogue)
+{
+       c_retv_if(!dialogue, NULL);
+
+       Evas_Object *box = elm_object_content_get(dialogue);
+
+       return box;
+}
+
+static void __cal_dialogue_item_clicked_callback(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+       Evas_Event_Mouse_Up *ev = (Evas_Event_Mouse_Up *)event_info;
+
+       __cal_dialogue_item_callback_s *callback = data;
+       c_ret_if(!callback);
+
+       Evas_Object *item = callback->item;
+
+       elm_object_signal_emit(item, "elm,state,unselected", "elm");
+       elm_object_focus_set(obj, EINA_TRUE);
+
+       if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       callback->callback_func(item, callback->callback_data);
+}
+
+static void __cal_dialogue_item_move_callback(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+       Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *)event_info;
+
+       __cal_dialogue_item_callback_s *callback = data;
+       c_ret_if(!callback);
+
+       Evas_Object *item = callback->item;
+
+       if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) {
+               elm_object_signal_emit(item, "elm,state,unselected", "elm");
+               return;
+       }
+}
+
+static void __cal_dialogue_item_down_callback(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+{
+       __cal_dialogue_item_callback_s *callback = data;
+
+       Evas_Object *item = callback->item;
+       c_ret_if(!callback);
+
+       elm_object_signal_emit(item, "elm,state,selected", "elm");
+}
+
+static void __cal_dialogue_item_delete_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       __cal_dialogue_item_callback_s *callback = data;
+
+       if (callback)
+               free(callback);
+}
+
+static Evas_Object * __cal_dialogue_create_item(Evas_Object *box, const char *style, cal_dialogue_item_clicked_callback callback_func, void *callback_data)
+{
+       Evas_Object *layout = NULL;
+
+       layout = elm_layout_add(box);
+       c_retv_if(!layout, NULL);
+
+       Eina_Bool ret = elm_layout_theme_set(layout, "layout", "dialogue", style);
+       if (ret != EINA_TRUE) {
+               ret = elm_layout_file_set(layout, CAL_DIALOGUE_CUSTOM_EDJ, style);
+               if (ret != EINA_TRUE) {
+                       ERR("elm_layout_theme_set(%s) is failed.", style);
+                       evas_object_del(layout);
+                       return NULL;
+               }
+       }
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, 0.0);
+
+       if (callback_func) {
+               __cal_dialogue_item_callback_s *callback = calloc(1, sizeof(__cal_dialogue_item_callback_s));
+
+               callback->item = layout;
+               callback->callback_func = callback_func;
+               callback->callback_data = callback_data;
+
+               evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_UP, __cal_dialogue_item_clicked_callback, callback);
+               evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_DOWN, __cal_dialogue_item_down_callback, callback);
+               evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_MOVE, __cal_dialogue_item_move_callback, callback);
+               evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, __cal_dialogue_item_delete_callback, callback);
+       }
+
+       return layout;
+}
+
+Evas_Object * cal_dialogue_append_item(Evas_Object *box, const char *style, cal_dialogue_item_clicked_callback callback_func, void *callback_data)
+{
+       c_retv_if(!box, NULL);
+       c_retv_if(!CAL_STRLEN(style), NULL);
+
+       Evas_Object *item = __cal_dialogue_create_item(box, style, callback_func, callback_data);
+       c_retv_if(!item, NULL);
+
+       elm_box_pack_end(box, item);
+       evas_object_show(item);
+
+       return item;
+}
+
+Evas_Object * cal_dialogue_insert_item_after(Evas_Object *box, const char *style, Evas_Object *after, cal_dialogue_item_clicked_callback callback_func, void *callback_data)
+{
+       c_retv_if(!box, NULL);
+       c_retv_if(!CAL_STRLEN(style), NULL);
+       c_retv_if(!after, NULL);
+
+       Evas_Object *item = __cal_dialogue_create_item(box, style, callback_func, callback_data);
+       c_retv_if(!item, NULL);
+
+       elm_box_pack_after(box, item, after);
+       evas_object_show(item);
+
+       return item;
+}
+
+Evas_Object * cal_dialogue_insert_item_before(Evas_Object *box, const char *style, Evas_Object *before, cal_dialogue_item_clicked_callback callback_func, void *callback_data)
+{
+       c_retv_if(!box, NULL);
+       c_retv_if(!CAL_STRLEN(style), NULL);
+       c_retv_if(!before, NULL);
+
+       Evas_Object *item = __cal_dialogue_create_item(box, style, callback_func, callback_data);
+       c_retv_if(!item, NULL);
+
+       elm_box_pack_before(box, item, before);
+       evas_object_show(item);
+
+       return item;
+}
+
+void cal_dialogue_delete_item(Evas_Object *box, Evas_Object *item)
+{
+       c_ret_if(!box);
+       c_ret_if(!item);
+
+       elm_box_unpack(box, item);
+       evas_object_del(item);
+
+       Eina_List *unpacked_item_list = NULL;
+
+       unpacked_item_list = evas_object_data_get(box, CAL_DIALOGUE_UNPACKED_ITEM_LIST);
+
+       if (unpacked_item_list)
+               eina_list_remove(unpacked_item_list, item);
+}
+
+void cal_dialogue_delete_all_items(Evas_Object *dialogue)
+{
+       c_ret_if(!dialogue);
+
+       Evas_Object *box = cal_dialogue_get_box(dialogue);
+       c_ret_if(!box);
+
+       elm_box_clear(box);
+
+       Eina_List *unpacked_item_list = NULL;
+
+       unpacked_item_list = evas_object_data_get(box, CAL_DIALOGUE_UNPACKED_ITEM_LIST);
+
+       if (unpacked_item_list) {
+               unpacked_item_list = eina_list_free(unpacked_item_list);
+               evas_object_data_set(box, CAL_DIALOGUE_UNPACKED_ITEM_LIST, unpacked_item_list);
+       }
+}
+
+static Eina_Bool __cal_dialogue_check_item_is_already_added(Evas_Object *box, Evas_Object *item)
+{
+       Eina_Bool ret = EINA_FALSE;
+
+       c_retv_if(!box, ret);
+       c_retv_if(!item, ret);
+
+       Eina_List *children = NULL;
+
+       children = elm_box_children_get(box);
+       c_retv_if(!children, ret);
+
+       Eina_List *cursor = NULL;
+       Evas_Object *data = NULL;
+
+       EINA_LIST_FOREACH(children, cursor, data) {
+               if (data && data == item) {
+                       ret = EINA_TRUE;
+                       break;
+               }
+       }
+
+       eina_list_free(children);
+
+       return ret;
+}
+
+void cal_dialogue_show_item_before(Evas_Object *box, Evas_Object *item, Evas_Object *before)
+{
+       c_ret_if(!box);
+       c_ret_if(!item);
+
+       if (__cal_dialogue_check_item_is_already_added(box, item))
+               return;
+
+       c_ret_if(!before);
+
+       elm_box_pack_before(box, item, before);
+       evas_object_show(item);
+}
+
+void cal_dialogue_show_item_after(Evas_Object *box, Evas_Object *item, Evas_Object *after)
+{
+       c_ret_if(!box);
+       c_ret_if(!item);
+
+       if (__cal_dialogue_check_item_is_already_added(box, item))
+               return;
+
+       c_ret_if(!after);
+
+       elm_box_pack_after(box, item, after);
+       evas_object_show(item);
+}
+
+void cal_dialogue_hide_item(Evas_Object *box, Evas_Object *item)
+{
+       c_ret_if(!box);
+       c_ret_if(!item);
+
+       elm_box_unpack(box, item);
+       evas_object_hide(item);
+
+       Eina_List *unpacked_item_list = NULL;
+
+       unpacked_item_list = evas_object_data_get(box, CAL_DIALOGUE_UNPACKED_ITEM_LIST);
+
+       unpacked_item_list = eina_list_append(unpacked_item_list, item);
+
+       if (!evas_object_data_get(box, CAL_DIALOGUE_UNPACKED_ITEM_LIST))
+               evas_object_data_set(box, CAL_DIALOGUE_UNPACKED_ITEM_LIST, unpacked_item_list);
+}
diff --git a/common/external-ug.c b/common/external-ug.c
new file mode 100755 (executable)
index 0000000..930a106
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include "cld.h"
+#include "external-ug.h"
+
+static void __cal_ug_destroy_callback(ui_gadget_h ug, void *priv)
+{
+       c_retm_if(!ug, "ug is null");
+
+       ug_destroy(ug);
+}
+
+static void __cal_ug_layout_callback(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       c_retm_if(!ug, "ug is null");
+       c_retm_if(mode != UG_MODE_FULLVIEW, "mode is invaild");
+
+       Evas_Object *base = ug_get_layout(ug);
+       if (!base) {
+               ERR("ug_get_layout() returned null");
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(base);
+               break;
+       }
+}
+
+static void __cal_ug_result_callback(ui_gadget_h ug, service_h res, void *priv)
+{
+       c_retm_if(!ug, "ug is null");
+}
+
+ui_gadget_h cal_launch_ug(ui_gadget_h parent_ug, service_h bd, char *ug_name, struct ug_cbs *cbs)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!bd, NULL, "bd is null");
+       c_retvm_if(!ug_name, NULL, "ug_name is null");
+
+       ui_gadget_h ug;
+       struct ug_cbs uc;
+
+       if (NULL == cbs) {
+               uc.destroy_cb = __cal_ug_destroy_callback;
+               uc.layout_cb = __cal_ug_layout_callback;
+               uc.result_cb = __cal_ug_result_callback;
+               uc.priv = NULL;
+       } else {
+               if (NULL == cbs->destroy_cb)
+                       uc.destroy_cb = __cal_ug_destroy_callback;
+               else
+                       uc.destroy_cb = cbs->destroy_cb;
+
+               if (NULL == cbs->layout_cb)
+                       uc.layout_cb = __cal_ug_layout_callback;
+               else
+                       uc.layout_cb = cbs->layout_cb;
+
+               if (NULL == cbs->result_cb)
+                       uc.result_cb = __cal_ug_result_callback;
+               else
+                       uc.result_cb = cbs->result_cb;
+
+               if (NULL == cbs->priv)
+                       uc.priv = NULL;
+               else
+                       uc.priv = cbs->priv;
+       }
+
+       ug = ug_create(parent_ug, ug_name, UG_MODE_FULLVIEW, bd, &uc);
+       if (!ug)
+               ERR("ug create error");
+
+       return ug;
+}
+
+ui_gadget_h cal_launch_ug_with_var(ui_gadget_h parent_ug, char *ug_name, struct ug_cbs *cbs,...)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ug_name, NULL);
+
+       char *key = NULL;
+       char *val = NULL;
+       service_h service;
+       int r = service_create(&service);
+       c_retv_if(r != SERVICE_ERROR_NONE, NULL);
+
+       va_list ap;
+       va_start(ap, cbs);
+       while (1) {
+               key = va_arg(ap, char *);
+               val = va_arg(ap, char *);
+
+               if (!key || !val) {
+                       break;
+               }
+
+               service_add_extra_data(service, key, val);
+               service_set_uri(service, val);
+       }
+
+       va_end(ap);
+
+       /* Temporary code for email UG */
+       if (!CAL_STRCMP(ug_name, CAL_EMAIL_COMPOSER_UG)) {
+
+               if(!cbs){
+                       ERR("cbs is NULL!");
+                       service_destroy(service);
+                       return NULL;
+               }
+
+               struct appdata *ad = (struct appdata*)cbs;
+               if(!ad->win)
+               {
+                       ERR("ad->win is null");
+                       service_destroy(service);
+                       return NULL;
+               }
+
+               service_set_operation(service, SERVICE_OPERATION_SEND);
+
+               service_set_app_id(service, CAL_EMAIL_COMPOSER_UG);
+
+               Ecore_X_Window win_id = elm_win_xwindow_get(ad->win);
+
+               service_set_window(service, win_id);
+
+               service_send_launch_request(service, NULL, NULL);
+
+               service_destroy(service);
+
+               return NULL;
+       } else {
+
+       ui_gadget_h ug = cal_launch_ug(parent_ug, service, ug_name, cbs);
+
+       service_destroy(service);
+
+       return ug;
+       }
+}
diff --git a/common/gi-radio-timepicker.c b/common/gi-radio-timepicker.c
new file mode 100755 (executable)
index 0000000..ff572d4
--- /dev/null
@@ -0,0 +1,137 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "cld.h"
+#include "gi-radio-timepicker.h"
+#include "gi-timepicker.h"
+
+typedef struct {
+       void* data;
+       cal_radio_group_h radio_group;
+       Elm_Object_Item* timepicker;
+       struct tm* value;
+       int radio_index;
+} __cal_genlist_item_radio_timepicker_info;
+
+static void __cal_genlist_item_radio_timepicker_radio_changed(
+               unsigned int index, bool selected, void* data)
+{
+       CAL_FN_START;
+
+       __cal_genlist_item_radio_timepicker_info* info = (__cal_genlist_item_radio_timepicker_info*)data;
+
+       if (!selected) {
+               elm_object_item_del(info->timepicker);
+               info->timepicker = NULL;
+       }
+}
+
+static Evas_Object *__cal_genlist_item_radio_timepicker_icon(
+               void *data, Evas_Object *obj, const char *part)
+{
+       CAL_FN_START;
+
+       __cal_genlist_item_radio_timepicker_info* info = (__cal_genlist_item_radio_timepicker_info*)data;
+
+       Evas_Object* rd = elm_radio_add(obj);
+       c_retvm_if(!rd, NULL, "rd is NULL");
+
+       elm_object_part_content_set(rd, "content", rd);
+
+       cal_radio_group_set_radio_object(info->radio_group, info->radio_index, rd);
+
+       evas_object_show(rd);
+       evas_object_data_set(rd, "priv", info);
+
+       cal_radio_group_set_changed_callback(info->radio_group, info->radio_index,
+                       __cal_genlist_item_radio_timepicker_radio_changed, info);
+
+       return rd;
+}
+
+static char *__cal_genlist_item_radio_timepicker_label(void *data, Evas_Object *obj, const char *part)
+{
+       return strdup(C_("IDS_COM_BODY_CUSTOMISE"));
+}
+
+static void __cal_genlist_item_radio_timepicker_select_callback(
+               void* data, Evas_Object* obj, void* event_info)
+{
+       CAL_FN_START;
+
+       __cal_genlist_item_radio_timepicker_info* info = (__cal_genlist_item_radio_timepicker_info*)data;
+       Elm_Object_Item* item = elm_genlist_selected_item_get(obj);
+
+       cal_radio_group_select_radio(info->radio_group, info->radio_index);
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       if (info->timepicker == NULL) {
+               info->timepicker = cal_genlist_item_timepicker_add(obj, " ", info->value, EINA_FALSE, NULL, NULL);
+       }
+}
+
+static void __cal_genlist_item_radio_timepicker_delete_callback(void *data, Evas_Object *obj)
+{
+       __cal_genlist_item_radio_timepicker_info* info = (__cal_genlist_item_radio_timepicker_info*)data;
+       free(info);
+}
+
+Elm_Object_Item* cal_genlist_item_radio_timepicker_add(
+               Evas_Object* genlist, cal_radio_group_h radio_group, int radio_index,
+               bool expanded, struct tm* value, void* data)
+{
+       CAL_FN_START;
+
+       static Elm_Genlist_Item_Class* itc = NULL;
+       if (itc == NULL) {
+               itc = (Elm_Genlist_Item_Class*)calloc(1, sizeof(Elm_Genlist_Item_Class));
+               itc->item_style = "dialogue/1text.1icon.2";
+               itc->func.del = __cal_genlist_item_radio_timepicker_delete_callback;
+               itc->func.content_get = __cal_genlist_item_radio_timepicker_icon;
+               itc->func.text_get = __cal_genlist_item_radio_timepicker_label;
+       }
+
+       __cal_genlist_item_radio_timepicker_info* info =
+                       (__cal_genlist_item_radio_timepicker_info*)calloc(1, sizeof(__cal_genlist_item_radio_timepicker_info));
+
+       info->data = data;
+       info->radio_group = radio_group;
+       info->radio_index = radio_index;
+       info->value = value;
+
+       Elm_Object_Item* item = elm_genlist_item_append(genlist, itc, info, NULL, ELM_GENLIST_ITEM_NONE,
+                       __cal_genlist_item_radio_timepicker_select_callback, info);
+
+       if (expanded)
+               info->timepicker = cal_genlist_item_timepicker_add(genlist, " ", info->value, EINA_FALSE, NULL, NULL);
+       else
+               info->timepicker = NULL;
+
+       CAL_FN_END;
+
+       return item;
+}
+
+void cal_genlist_item_radio_timepicker_get_time(Elm_Object_Item* radio_timepicker, struct tm* datetime)
+{
+       c_retm_if(radio_timepicker == NULL, "radio_timepicker is null");
+
+       __cal_genlist_item_radio_timepicker_info* info =
+                       (__cal_genlist_item_radio_timepicker_info*)elm_object_item_data_get(radio_timepicker);
+
+       cal_genlist_item_radio_timepicker_get_value(info->timepicker, datetime);
+}
diff --git a/common/gi-timepicker.c b/common/gi-timepicker.c
new file mode 100755 (executable)
index 0000000..f3d5b86
--- /dev/null
@@ -0,0 +1,230 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include "gi-timepicker.h"
+#include "cld.h"
+
+typedef struct
+{
+       const char* title;
+       struct tm* value;
+       Eina_Bool allday;
+       Time_Changed_Callback time_changed_callback;
+       void* data;
+       Evas_Object *datetime;
+} __cal_genlist_item_timepicker_info;
+
+static void __cal_genlist_item_timepicker_time_changed_callback(void *data, Evas_Object* obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(data == NULL, "data is null");
+       c_retm_if(obj == NULL, "datetime is null");
+
+       __cal_genlist_item_timepicker_info* info = (__cal_genlist_item_timepicker_info*)data;
+
+       struct tm value;
+       time_t t = time(NULL);
+       localtime_r(&t, &value); // to fill hidden field
+
+       elm_datetime_value_get(obj, &value);
+
+       *info->value = value;
+
+       if (info->time_changed_callback != NULL)
+               info->time_changed_callback(info->data, &value);
+}
+
+static Evas_Object *__cal_genlist_item_timepicker_get_icon(void* data, Evas_Object* obj, const char* part)
+{
+       CAL_FN_START;
+
+       c_retvm_if(data == NULL, NULL, "data is null");
+
+       if (!CAL_STRCMP(part, "elm.icon")) {
+
+               __cal_genlist_item_timepicker_info* info = (__cal_genlist_item_timepicker_info*)data;
+
+               Evas_Object* icon_obj = cal_util_add_datetime(obj, info->title, info->value);
+               c_retvm_if(!icon_obj, NULL, "icon_obj is null");
+
+               Evas_Object* dt = elm_object_part_content_get(icon_obj, "elm.icon");
+               if (!dt) {
+                       ERR("dt is null");
+                       evas_object_del(icon_obj);
+                       return NULL;
+               }
+
+               info->datetime = dt;
+
+               if (is_hour24)
+                       elm_datetime_format_set(dt, "%b %d , %Y %H : %M");
+               else
+                       elm_datetime_format_set(dt, "%b %d , %Y %I : %M %p");
+
+               if (!info->allday)
+               {
+                       elm_datetime_field_visible_set(dt, ELM_DATETIME_HOUR, EINA_TRUE);
+                       elm_datetime_field_visible_set(dt, ELM_DATETIME_MINUTE, EINA_TRUE);
+                       if (is_hour24)
+                               elm_datetime_field_visible_set(dt, ELM_DATETIME_AMPM, EINA_FALSE);
+                       else
+                               elm_datetime_field_visible_set(dt, ELM_DATETIME_AMPM, EINA_TRUE);
+               }
+               else
+               {
+                       elm_datetime_field_visible_set(dt, ELM_DATETIME_HOUR, EINA_FALSE);
+                       elm_datetime_field_visible_set(dt, ELM_DATETIME_MINUTE, EINA_FALSE);
+                       elm_datetime_field_visible_set(dt, ELM_DATETIME_AMPM, EINA_FALSE);
+               }
+
+               evas_object_smart_callback_add(dt, "changed",
+                               __cal_genlist_item_timepicker_time_changed_callback, info);
+
+               return icon_obj;
+       }
+
+       return NULL;
+}
+
+static void __cal_genlist_item_timepicker_delete(void *data, Evas_Object *obj)
+{
+       CAL_FN_START;
+
+       __cal_genlist_item_timepicker_info* info = (__cal_genlist_item_timepicker_info*)data;
+       free(info);
+}
+
+static void __cal_add_genlist_item_timepicker_select_callback(void* data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(obj == NULL, "obj is null");
+
+       Elm_Object_Item* item = elm_genlist_selected_item_get(obj);
+       c_retm_if(item == NULL, "elm_genlist_selected_item_get() returned null");
+
+       __cal_genlist_item_timepicker_info* info = (__cal_genlist_item_timepicker_info*)data;
+       c_retm_if(info == NULL, "info is null");
+
+       elm_object_focus_set(info->datetime, EINA_TRUE);
+
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+}
+
+Elm_Object_Item* cal_genlist_item_timepicker_add(Evas_Object *genlist,
+               const char* title, struct tm* value, Eina_Bool allday,
+               Time_Changed_Callback time_changed_callback, void* data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(genlist == NULL, NULL, "genlist is null");
+       c_retvm_if(time == NULL, NULL, "time is null");
+
+       static Elm_Genlist_Item_Class* itc = NULL;
+       if (itc == NULL) {
+               itc = malloc(sizeof(Elm_Genlist_Item_Class));
+               itc->item_style = "dialogue/1icon";
+               itc->func.text_get = NULL;
+               itc->func.del = __cal_genlist_item_timepicker_delete;
+               itc->func.content_get = __cal_genlist_item_timepicker_get_icon;
+       }
+
+       __cal_genlist_item_timepicker_info* info =
+                       (__cal_genlist_item_timepicker_info*)calloc(1, sizeof(__cal_genlist_item_timepicker_info));
+
+       info->title = title;
+       info->value = value;
+       info->allday = allday;
+       info->time_changed_callback = time_changed_callback;
+       info->data = data;
+
+       Elm_Object_Item* item =
+                       elm_genlist_item_append(genlist, itc, info, NULL, ELM_GENLIST_ITEM_NONE,
+                                       __cal_add_genlist_item_timepicker_select_callback, info);
+
+       elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_NONE);
+
+       return item;
+}
+
+void cal_genlist_item_timepicker_update_value(Elm_Object_Item* item)
+{
+       CAL_FN_START;
+
+       c_retm_if(item == NULL, "item is null");
+
+       __cal_genlist_item_timepicker_info* info =
+                       (__cal_genlist_item_timepicker_info*)elm_object_item_data_get(item);
+
+       elm_datetime_value_set(info->datetime, info->value);
+
+       CAL_FN_END;
+}
+
+void cal_genlist_item_timepicker_update_mode(
+               Elm_Object_Item* item, Eina_Bool allday)
+{
+       CAL_FN_START;
+
+       c_retm_if(item == NULL, "item is null");
+       __cal_genlist_item_timepicker_info* info =
+                       (__cal_genlist_item_timepicker_info*)elm_object_item_data_get(item);
+
+       info->allday = allday;
+
+       if (!allday) {
+               elm_datetime_field_visible_set(info->datetime, ELM_DATETIME_HOUR, EINA_TRUE);
+               elm_datetime_field_visible_set(info->datetime, ELM_DATETIME_MINUTE, EINA_TRUE);
+               if (!is_hour24)
+                       elm_datetime_field_visible_set(info->datetime, ELM_DATETIME_AMPM, EINA_TRUE);
+       } else {
+               elm_datetime_field_visible_set(info->datetime, ELM_DATETIME_HOUR, EINA_FALSE);
+               elm_datetime_field_visible_set(info->datetime, ELM_DATETIME_MINUTE, EINA_FALSE);
+               elm_datetime_field_visible_set(info->datetime, ELM_DATETIME_AMPM, EINA_FALSE);
+       }
+}
+
+void cal_genlist_item_timepicker_disabled_set(Elm_Object_Item* item, Eina_Bool disabled)
+{
+       c_ret_if(item == NULL);
+       __cal_genlist_item_timepicker_info* info =
+                       (__cal_genlist_item_timepicker_info*)elm_object_item_data_get(item);
+
+       elm_object_disabled_set(info->datetime, disabled);
+}
+
+void cal_genlist_item_radio_timepicker_get_value(Elm_Object_Item* timepicker, struct tm* datetime)
+{
+       c_retm_if(timepicker == NULL, "timepicker is null");
+
+       __cal_genlist_item_timepicker_info* info =
+                       (__cal_genlist_item_timepicker_info*)elm_object_item_data_get(timepicker);
+
+       elm_datetime_value_get(info->datetime, datetime);
+}
+
+void cal_genlist_item_radio_timepicker_set_value(Elm_Object_Item* timepicker, const struct tm* datetime)
+{
+       c_retm_if(timepicker == NULL, "timepicker is null");
+
+       __cal_genlist_item_timepicker_info* info =
+                       (__cal_genlist_item_timepicker_info*)elm_object_item_data_get(timepicker);
+
+       elm_datetime_value_set(info->datetime, datetime);
+}
diff --git a/common/grid.c b/common/grid.c
new file mode 100755 (executable)
index 0000000..9674f1d
--- /dev/null
@@ -0,0 +1,289 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "cld.h"
+#include "grid.h"
+
+typedef struct {
+       Evas_Object *gengrid;
+
+       unsigned int max_item_count;
+
+       cal_grid_item_changed_callback callback_func;
+       void *callback_data;
+} cal_grid_s;
+
+typedef struct {
+       Elm_Object_Item *item;
+       char *path;
+
+       cal_grid_s *data;
+} cal_grid_item_s;
+
+static Elm_Gengrid_Item_Class *gengrid_item_class = NULL;
+
+static void __cal_grid_item_remove_button_callback(void *user_data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_ret_if(!user_data);
+       c_ret_if(!obj);
+
+       cal_grid_item_s *item = (cal_grid_item_s *)user_data;
+
+       cal_grid_s *data = item->data;
+       c_ret_if(!data);
+
+       cal_grid_item_changed_callback callback_func = data->callback_func;
+       void *callback_data = data->callback_data;
+
+       elm_object_item_del(item->item);
+
+       if (callback_func)
+               callback_func(callback_data);
+}
+
+static Evas_Object * __cal_grid_content_get_callback(void *data, Evas_Object *obj, const char *part)
+{
+       cal_grid_item_s *item = (cal_grid_item_s *)data;
+
+       if (!CAL_STRCMP(part, "elm.swallow.icon")) {
+
+               Evas_Object *icon = elm_icon_add(obj);
+
+               elm_icon_file_set(icon, item->path, NULL);
+               elm_icon_aspect_fixed_set(icon, EINA_FALSE);
+               evas_object_show(icon);
+
+               return icon;
+
+       } else if (!CAL_STRCMP(part, "elm.swallow.end")) {
+
+               Elm_Object_Select_Mode mode = elm_gengrid_select_mode_get(obj);
+
+               if (mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
+                       return NULL;
+
+               Evas_Object *remove_button = elm_button_add(obj);
+
+               elm_object_style_set(remove_button, "minus");
+
+               evas_object_propagate_events_set(remove_button, EINA_FALSE);
+               evas_object_smart_callback_add(remove_button, "clicked", __cal_grid_item_remove_button_callback, data);
+               evas_object_show(remove_button);
+
+               return remove_button;
+       }
+
+       return NULL;
+}
+
+static void __cal_grid_item_delete_callback(void *data, Evas_Object *obj)
+{
+       c_ret_if(!data);
+
+       cal_grid_item_s *item = data;
+
+       free(item->path);
+
+       free(item);
+}
+
+static void __cal_grid_delete_callback(void *user_data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_ret_if(!user_data);
+
+       cal_grid_s *data = user_data;
+
+       free(data);
+}
+
+Evas_Object * cal_grid_create(Evas_Object *parent, cal_grid_item_changed_callback callback_func, void *callback_data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!parent, NULL);
+
+       Evas_Object *gengrid = elm_gengrid_add(parent);
+       c_retv_if(!gengrid, NULL);
+
+       cal_grid_s *data = calloc(1, sizeof(cal_grid_s));
+
+       evas_object_data_set(gengrid, "data", data);
+
+       data->gengrid = gengrid;
+       data->callback_func = callback_func;
+       data->callback_data = callback_data;
+
+       evas_object_size_hint_weight_set(gengrid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(gengrid, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       elm_gengrid_item_size_set(gengrid, 205, 205);
+       elm_gengrid_align_set(gengrid, 0.0, 0.0);
+       elm_gengrid_horizontal_set(gengrid, EINA_TRUE);
+       elm_gengrid_bounce_set(gengrid, EINA_FALSE, EINA_FALSE);
+       elm_gengrid_reorder_mode_set(gengrid, EINA_FALSE);
+       elm_gengrid_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF);
+       elm_gengrid_select_mode_set(gengrid, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       evas_object_event_callback_add(gengrid, EVAS_CALLBACK_DEL, __cal_grid_delete_callback, data);
+
+       if (!gengrid_item_class) {
+               gengrid_item_class = elm_gengrid_item_class_new();
+
+               gengrid_item_class->item_style = "grid";
+               gengrid_item_class->func.text_get = NULL;
+               gengrid_item_class->func.content_get = __cal_grid_content_get_callback;
+               gengrid_item_class->func.state_get = NULL;
+               gengrid_item_class->func.del = __cal_grid_item_delete_callback;
+       }
+
+       return gengrid;
+}
+
+void cal_grid_set_edit_mode(Evas_Object *grid, Eina_Bool is_edit_mode)
+{
+       CAL_FN_START;
+
+       c_ret_if(!grid);
+
+       if (is_edit_mode == EINA_TRUE)
+               elm_gengrid_select_mode_set(grid, ELM_OBJECT_SELECT_MODE_DEFAULT);
+       else
+               elm_gengrid_select_mode_set(grid, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+}
+
+void cal_grid_set_max_item_count(Evas_Object *grid, unsigned int count)
+{
+       CAL_FN_START;
+
+       c_ret_if(!grid);
+
+       cal_grid_s *data = evas_object_data_get(grid, "data");
+       c_ret_if(!data);
+
+       data->max_item_count = count;
+}
+
+unsigned int cal_grid_get_current_item_count(Evas_Object *grid)
+{
+       CAL_FN_START;
+
+       c_retv_if(!grid, 0);
+
+       return elm_gengrid_items_count(grid);
+}
+
+static void __cal_grid_item_selected_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_grid_item_s *item = (cal_grid_item_s *)data;
+
+       if (!elm_gengrid_reorder_mode_get(obj))
+               elm_gengrid_item_selected_set(item->item, EINA_FALSE);
+}
+
+Elm_Object_Item * cal_grid_append_item(Evas_Object *grid, const char *image_path)
+{
+       c_retv_if(!grid, NULL);
+       c_retv_if(!CAL_STRLEN(image_path), NULL);
+
+       cal_grid_s *data = evas_object_data_get(grid, "data");
+       c_retv_if(!data, NULL);
+
+       if (elm_gengrid_items_count(grid) == data->max_item_count) {
+
+               ERR("Max item count is reached.");
+
+               return NULL;
+       }
+
+       cal_grid_item_s *item = NULL;
+
+       item = calloc(1, sizeof(cal_grid_item_s));
+
+       item->item = elm_gengrid_item_append(grid, gengrid_item_class, item, __cal_grid_item_selected_callback, item);
+       if (!item->item) {
+
+               ERR("elm_gengrid_item_append() is failed");
+               free(item);
+
+               return NULL;
+       }
+
+       item->path = strdup(image_path);
+       item->data = data;
+
+       if (data->callback_func)
+               data->callback_func(data->callback_data);
+
+       return item->item;
+}
+
+void cal_grid_delete_item(Evas_Object *grid, Elm_Object_Item *item)
+{
+       c_ret_if(!grid);
+       c_ret_if(!item);
+
+       elm_object_item_del(item);
+}
+
+Eina_List * cal_grid_get_item_path_list(Evas_Object *grid)
+{
+       CAL_FN_START;
+
+       Eina_List *item_path_list = NULL;
+
+       c_retv_if(!grid, NULL);
+
+       Elm_Object_Item *item = elm_gengrid_first_item_get(grid);
+
+       while (item) {
+
+               cal_grid_item_s *item_data = elm_object_item_data_get(item);
+
+               if (!CAL_STRLEN(item_data->path))
+                       ERR("item path is null");
+               else
+                       item_path_list = eina_list_append(item_path_list, strdup(item_data->path));
+
+               item = elm_gengrid_item_next_get(item);
+
+       }
+
+       return item_path_list;
+}
+
+void cal_grid_free_item_path_list(Eina_List *item_path_list)
+{
+       CAL_FN_START;
+
+       c_ret_if(!item_path_list);
+
+       Eina_List *cursor = NULL;
+
+       char *item_path = NULL;
+
+       EINA_LIST_FOREACH(item_path_list, cursor, item_path)
+               CAL_FREE(item_path);
+
+       eina_list_free(item_path_list);
+}
diff --git a/common/lang-manager.c b/common/lang-manager.c
new file mode 100755 (executable)
index 0000000..91a98f5
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "cld.h"
+#include "lang-manager.h"
+
+typedef struct {
+       cal_lang_manager_callback callback;
+       void *callback_data;
+} __cal_lang_manager_callback_data;
+
+static Eina_List *__cal_lang_manager_callback_list;
+
+void cal_lang_manager_apply()
+{
+       CAL_FN_START;
+
+       if (!__cal_lang_manager_callback_list || !eina_list_count(__cal_lang_manager_callback_list))
+               return;
+
+       Eina_List *cursor = NULL;
+       __cal_lang_manager_callback_data *data = NULL;
+
+       EINA_LIST_FOREACH(__cal_lang_manager_callback_list, cursor, data) {
+               if (data && data->callback)
+                       data->callback(data->callback_data);
+       }
+}
+
+void cal_lang_manager_remove_all_callback()
+{
+       CAL_FN_START;
+
+       if (!__cal_lang_manager_callback_list || !eina_list_count(__cal_lang_manager_callback_list))
+               return;
+
+       Eina_List *cursor = NULL;
+       __cal_lang_manager_callback_data *data = NULL;
+
+       EINA_LIST_FOREACH(__cal_lang_manager_callback_list, cursor, data) {
+               if (data) {
+                       __cal_lang_manager_callback_list = eina_list_remove(__cal_lang_manager_callback_list, data);
+
+                       free(data);
+               }
+       }
+
+}
+
+void cal_lang_manager_add_callback(cal_lang_manager_callback callback, void *callback_data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!callback);
+
+       __cal_lang_manager_callback_data *data = NULL;
+
+       data = calloc(1, sizeof(__cal_lang_manager_callback_data));
+
+       data->callback = callback;
+       data->callback_data = callback_data;
+
+       __cal_lang_manager_callback_list = eina_list_append(__cal_lang_manager_callback_list, data);
+       c_warn_if(!__cal_lang_manager_callback_list, "eina_list_append() is failed.");
+}
+
+void cal_lang_manager_remove_callback(cal_lang_manager_callback callback, void *callback_data)
+{
+       CAL_FN_START;
+
+       if (!__cal_lang_manager_callback_list || !eina_list_count(__cal_lang_manager_callback_list))
+               return;
+
+       Eina_List *cursor = NULL;
+       __cal_lang_manager_callback_data *data = NULL;
+
+       EINA_LIST_FOREACH(__cal_lang_manager_callback_list, cursor, data) {
+               if (data && data->callback == callback && data->callback_data == callback_data) {
+
+                       __cal_lang_manager_callback_list = eina_list_remove(__cal_lang_manager_callback_list, data);
+
+                       free(data);
+
+                       return;
+               }
+       }
+}
diff --git a/common/query.c b/common/query.c
new file mode 100755 (executable)
index 0000000..0dc692d
--- /dev/null
@@ -0,0 +1,599 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "query.h"
+
+void __cal_query_get_caltime_day(const struct tm* date, bool all_day, calendar_time_s* caltime)
+{
+       if (all_day) {
+               caltime->type = CALENDAR_TIME_LOCALTIME;
+               caltime->time.date.year = date->tm_year + 1900;
+               caltime->time.date.month = date->tm_mon + 1;
+               caltime->time.date.mday = date->tm_mday;
+       } else {
+               long long int lli_start = 0;
+               cal_util_convert_tm_to_lli(NULL, date, &lli_start);
+               caltime->type = CALENDAR_TIME_UTIME;
+               caltime->time.utime = lli_start;
+       }
+}
+
+void __cal_query_add_int_equal_condition(calendar_filter_h filter, unsigned int property_id, int value)
+{
+       calendar_error_e error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, property_id, CALENDAR_MATCH_EQUAL, value);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+}
+
+void __cal_query_set_date_range_condition(calendar_filter_h filter,
+                                          unsigned int time_property_id, const struct tm* date,
+                                          int direction, bool all_day)
+{
+       calendar_time_s caltime_start = {0};
+       __cal_query_get_caltime_day(date, all_day, &caltime_start);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (direction > 0)
+               error = calendar_filter_add_caltime(
+                                       filter, time_property_id, CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, caltime_start);
+       else
+               error = calendar_filter_add_caltime(
+                                       filter, time_property_id, CALENDAR_MATCH_LESS_THAN, caltime_start);
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+}
+
+calendar_query_h cal_query_create_list_more_normal_query(
+               unsigned int time_property_id, const struct tm* start, int direction)
+{
+       c_retv_if(start == NULL, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error =
+                       calendar_query_create(_calendar_instance_normal_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_filter_h filter;
+
+       error = calendar_filter_create(_calendar_instance_normal_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       __cal_query_set_date_range_condition(filter, time_property_id, start, direction, false);
+
+       __cal_query_add_int_equal_condition(filter,
+                       _calendar_instance_normal_calendar_book.calendar_book_visibility, 1);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_add_filter() is failed(%x)", error);
+
+       error = calendar_query_set_sort(query, time_property_id, direction > 0);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_sort() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       return query;
+}
+
+calendar_query_h cal_query_create_list_more_allday_query(
+               unsigned int time_property_id, const struct tm* start, int direction)
+{
+       c_retv_if(start == NULL, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error =
+                       calendar_query_create(_calendar_instance_allday_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_filter_h filter;
+
+       error = calendar_filter_create(_calendar_instance_allday_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       __cal_query_set_date_range_condition(filter, time_property_id, start, direction, true);
+
+       __cal_query_add_int_equal_condition(filter,
+                       _calendar_instance_allday_calendar_book.calendar_book_visibility, 1);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_add_filter() is failed(%x)", error);
+
+       error = calendar_query_set_sort(query, time_property_id, direction > 0);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_sort() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       return query;
+}
+
+calendar_filter_h cal_query_create_not_completed_task_filter()
+{
+       calendar_filter_h filter;
+
+       calendar_error_e error = calendar_filter_create(_calendar_todo_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.todo_status,
+                                                                       CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_NONE);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_OR);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.todo_status,
+                                                                       CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_NEEDS_ACTION);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_OR);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.todo_status,
+                                                                       CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_IN_PROCESS);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       return filter;
+}
+
+calendar_query_h cal_query_create_list_more_task_query(
+               const struct tm* start, int direction, bool include_completed)
+{
+       c_retv_if(start == NULL, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = calendar_query_create(_calendar_todo_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_filter_h filter = NULL;
+
+       calendar_filter_h not_competed_filter = NULL;
+
+       error = calendar_filter_create(_calendar_todo_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       __cal_query_set_date_range_condition(filter,
+                       _calendar_todo_calendar_book.due_time, start, direction, false);
+
+       __cal_query_add_int_equal_condition(filter,
+                                                                       _calendar_todo_calendar_book.calendar_book_visibility, 1);
+
+       if (!include_completed) {
+               not_competed_filter = cal_query_create_not_completed_task_filter();
+
+               error = calendar_filter_add_filter(filter, not_competed_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_filter() is failed(%x)", error);
+
+               // todo: filter handle destroy!
+       }
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_add_filter() is failed(%x)", error);
+
+       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.due_time, direction > 0);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_sort() is failed(%x)", error);
+
+       if (not_competed_filter) {
+               error = calendar_filter_destroy(not_competed_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+       }
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       return query;
+}
+
+calendar_query_h cal_query_create_list_range_query(const char* view_uri,
+               unsigned int start_time_property_id, unsigned int end_time_property_id,
+               const struct tm* start, const struct tm* end, bool all_day)
+{
+       c_retv_if(start == NULL, NULL);
+       c_retv_if(end == NULL, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = calendar_query_create(view_uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_time_s caltime_start = {0};
+       __cal_query_get_caltime_day(start, all_day, &caltime_start);
+
+       calendar_time_s caltime_end = {0};
+       __cal_query_get_caltime_day(end, all_day, &caltime_end);
+
+       calendar_filter_h filter;
+
+       error = calendar_filter_create(view_uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(
+                               filter, end_time_property_id, CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(
+                               filter, start_time_property_id, CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_add_filter() is failed(%x)", error);
+
+       error = calendar_query_set_sort(query, start_time_property_id, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_sort() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       return query;
+}
+
+calendar_query_h cal_query_create_due_date_task_list_query(struct tm *start, struct tm *end, Eina_Bool is_show_completed_task, _calendar_task_sort_type sort_type)
+{
+       c_retv_if(!start, NULL);
+       c_retv_if(!end, NULL);
+       c_retv_if(sort_type <= _CALENDAR_TASK_SORT_TYPE_NONE, NULL);
+       c_retv_if(_CALENDAR_TASK_SORT_TYPE_MAX <= sort_type, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_query_create(_calendar_todo_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_time_s caltime_start = {0};
+       calendar_time_s caltime_end = {0};
+
+       long long int lli_start = 0;
+       long long int lli_end = 0;
+
+       cal_util_convert_tm_to_lli(NULL, start, &lli_start);
+       cal_util_convert_tm_to_lli(NULL, end, &lli_end);
+
+       caltime_start.type = CALENDAR_TIME_UTIME;
+       caltime_start.time.utime = lli_start;
+
+       caltime_end.type = CALENDAR_TIME_UTIME;
+       caltime_end.time.utime = lli_end;
+
+       calendar_filter_h filter = NULL;
+       calendar_filter_h status_filter = NULL;
+
+       error = calendar_filter_create(_calendar_todo_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_todo_calendar_book.due_time, CALENDAR_MATCH_GREATER_THAN_OR_EQUAL, caltime_start);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_caltime(filter, _calendar_todo_calendar_book.due_time,CALENDAR_MATCH_LESS_THAN_OR_EQUAL, caltime_end);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_caltime() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.is_deleted, CALENDAR_MATCH_EQUAL, 0);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       if (!is_show_completed_task) {
+
+               error = calendar_filter_create(_calendar_todo_calendar_book._uri, &status_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_NONE);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(status_filter, CALENDAR_FILTER_OPERATOR_OR);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_NEEDS_ACTION);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(status_filter, CALENDAR_FILTER_OPERATOR_OR);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_IN_PROCESS);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(status_filter, CALENDAR_FILTER_OPERATOR_OR);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_CANCELED);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+               error = calendar_filter_add_filter(filter, status_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_filter() is failed(%x)", error);
+       }
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       switch (sort_type) {
+               case _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.due_time, true);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_DUEDATE_DES:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.due_time, false);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_PRIORITY_ASC:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.priority, true);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_PRIORITY_DES:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.priority, false);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_STATUS_ASC:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.todo_status, true);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_STATUS_DES:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.todo_status, false);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_sort() is failed(%x)", error);
+
+       if (status_filter) {
+               error = calendar_filter_destroy(status_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+       }
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       return query;
+}
+
+calendar_query_h cal_query_create_all_task_list_query(struct tm *start, struct tm *end, Eina_Bool is_show_completed_task, _calendar_task_sort_type sort_type)
+{
+       c_retv_if(!start, NULL);
+       c_retv_if(!end, NULL);
+       c_retv_if(sort_type <= _CALENDAR_TASK_SORT_TYPE_NONE, NULL);
+       c_retv_if(_CALENDAR_TASK_SORT_TYPE_MAX <= sort_type, NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_query_create(_calendar_todo_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_time_s caltime_start = {0};
+       calendar_time_s caltime_end = {0};
+
+       long long int lli_start = 0;
+       long long int lli_end = 0;
+
+       cal_util_convert_tm_to_lli(NULL, start, &lli_start);
+       cal_util_convert_tm_to_lli(NULL, end, &lli_end);
+
+       caltime_start.type = CALENDAR_TIME_UTIME;
+       caltime_start.time.utime = lli_start;
+
+       caltime_end.type = CALENDAR_TIME_UTIME;
+       caltime_end.time.utime = lli_end;
+
+       calendar_filter_h filter = NULL;
+       calendar_filter_h status_filter = NULL;
+
+       error = calendar_filter_create(_calendar_todo_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.is_deleted, CALENDAR_MATCH_EQUAL, 0);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_todo_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       if (!is_show_completed_task) {
+
+               error = calendar_filter_create(_calendar_todo_calendar_book._uri, &status_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_NONE);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(status_filter, CALENDAR_FILTER_OPERATOR_OR);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_NEEDS_ACTION);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(status_filter, CALENDAR_FILTER_OPERATOR_OR);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_IN_PROCESS);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(status_filter, CALENDAR_FILTER_OPERATOR_OR);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_int(status_filter, _calendar_todo_calendar_book.todo_status, CALENDAR_MATCH_EQUAL, CALENDAR_TODO_STATUS_CANCELED);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+               error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+               error = calendar_filter_add_filter(filter, status_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_filter() is failed(%x)", error);
+       }
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       switch (sort_type) {
+               case _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.due_time, true);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_DUEDATE_DES:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.due_time, false);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_PRIORITY_ASC:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.priority, true);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_PRIORITY_DES:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.priority, false);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_STATUS_ASC:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.todo_status, true);
+                       break;
+               case _CALENDAR_TASK_SORT_TYPE_STATUS_DES:
+                       error = calendar_query_set_sort(query, _calendar_todo_calendar_book.todo_status, false);
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_sort() is failed(%x)", error);
+
+       if (status_filter) {
+               error = calendar_filter_destroy(status_filter);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+       }
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       return query;
+}
+
+
+
+calendar_query_h cal_query_create_task_search_query(const char* keyword)
+{
+       c_retv_if(!CAL_STRLEN(keyword), NULL);
+
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_filter_h visibility_filter = NULL;
+
+       error = calendar_filter_create(_calendar_todo_calendar_book._uri, &visibility_filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_int(visibility_filter, _calendar_todo_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_query_create(_calendar_todo_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       error = calendar_filter_create(_calendar_todo_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_str(filter, _calendar_todo_calendar_book.summary, CALENDAR_MATCH_CONTAINS, keyword);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_str() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_OR);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_str(filter, _calendar_todo_calendar_book.location, CALENDAR_MATCH_CONTAINS, keyword);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_str() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_OR);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_str(filter, _calendar_todo_calendar_book.description, CALENDAR_MATCH_CONTAINS, keyword);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_str() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(visibility_filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_filter(visibility_filter, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_filter() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       error = calendar_filter_destroy(visibility_filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       return query;
+}
+
+void cal_do_for_each_record_in_list(calendar_list_h list, cal_for_each_record_callback cb, void* data)
+{
+       calendar_record_h record = NULL;
+       calendar_error_e error = calendar_list_get_current_record_p(list, &record);
+       while (error == CALENDAR_ERROR_NONE) {
+               cb(record, data);
+
+               error = calendar_list_next(list);
+               c_ret_if(error != CALENDAR_ERROR_NONE);
+
+               error = calendar_list_get_current_record_p(list, &record);
+       }
+}
+
+calendar_query_h cal_query_create_all_event_list_query(void)
+{
+       calendar_query_h query = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_query_create(_calendar_event_calendar_book._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_filter_create(_calendar_event_calendar_book._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_event_calendar_book.is_deleted, CALENDAR_MATCH_EQUAL, 0);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_AND);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_event_calendar_book.calendar_book_visibility, CALENDAR_MATCH_EQUAL, 1);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       return query;
+}
+
diff --git a/common/radio-group.c b/common/radio-group.c
new file mode 100755 (executable)
index 0000000..c57b910
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "cld.h"
+#include "radio-group.h"
+
+typedef struct {
+       unsigned int count;
+       unsigned int selected;
+       Evas_Object* head;
+       Evas_Object** objects;
+       cal_radio_group_changed_callback* changed_cb;
+       void** changed_cb_data;
+} cal_radio_group_s;
+
+cal_radio_group_h cal_radio_group_create(unsigned int count, Evas_Object* parent)
+{
+       c_retv_if(count == 0, NULL);
+
+       cal_radio_group_s* p = (cal_radio_group_s*)calloc(1, sizeof(cal_radio_group_s));
+       c_retv_if(!p, NULL);
+
+       p->count = count;
+       p->head = elm_radio_add(parent);
+       c_retv_if(!p->head, p);
+
+       p->objects = (Evas_Object**)calloc(count, sizeof(Evas_Object*));
+       c_retv_if(!p->objects, p);
+
+       p->changed_cb = (cal_radio_group_changed_callback*)calloc(count, sizeof(cal_radio_group_changed_callback));
+       c_retv_if(!p->changed_cb, p);
+
+       p->changed_cb_data = (void**)calloc(count, sizeof(void*));
+       c_retv_if(!p->changed_cb_data, p);
+
+       return p;
+}
+
+void cal_radio_group_destroy(cal_radio_group_h rg)
+{
+       cal_radio_group_s* p = (cal_radio_group_s*)rg;
+       c_ret_if(p == NULL);
+
+       evas_object_del(p->head);
+       free(p->objects);
+       free(p->changed_cb);
+       free(p->changed_cb_data);
+       free(p);
+}
+
+void cal_radio_group_set_radio_object(cal_radio_group_h rg, unsigned int index, Evas_Object* obj)
+{
+       cal_radio_group_s* p = (cal_radio_group_s*)rg;
+       c_ret_if(p == NULL);
+       c_ret_if(index >= p->count);
+       c_ret_if(obj == NULL);
+
+       p->objects[index] = obj;
+
+       DBG("%d %d", index, p->head);
+
+       elm_radio_state_value_set(obj, index);
+
+       elm_radio_group_add(obj, p->head);
+
+       if (index == p->selected) {
+               elm_radio_value_set(p->head, index);
+               DBG("recovered selection %d", index);
+       }
+}
+
+void cal_radio_group_set_changed_callback(cal_radio_group_h rg, unsigned int index,
+               cal_radio_group_changed_callback func, void* data)
+{
+       CAL_FN_START;
+
+       cal_radio_group_s* p = (cal_radio_group_s*)rg;
+       c_ret_if(rg == NULL);
+       c_ret_if(index >= p->count);
+
+       p->changed_cb[index] = func;
+       p->changed_cb_data[index] = data;
+}
+
+void cal_radio_group_remove_radio_object(cal_radio_group_h rg, unsigned int index)
+{
+       cal_radio_group_s* p = (cal_radio_group_s*)rg;
+       c_ret_if(p == NULL);
+       c_ret_if(index >= p->count);
+
+       p->objects[index] = NULL;
+}
+
+void cal_radio_group_select_radio(cal_radio_group_h rg, unsigned int index)
+{
+       cal_radio_group_s* p = (cal_radio_group_s*)rg;
+       c_ret_if(p == NULL);
+       c_ret_if(index >= p->count);
+
+       DBG("%d %d", index, p->head);
+
+       int old = p->selected;
+
+       if (p->changed_cb[old] != NULL)
+               p->changed_cb[old](old, false, p->changed_cb_data[old]);
+
+       p->selected = index;
+
+       elm_radio_value_set(p->head, index);
+
+       if (p->changed_cb[index] != NULL)
+               p->changed_cb[index](index, true, p->changed_cb_data[index]);
+}
+
+int cal_radio_group_get_selected_radio(cal_radio_group_h rg)
+{
+       cal_radio_group_s* p = (cal_radio_group_s*)rg;
+       c_retv_if(p == NULL, -1);
+
+       return p->selected;
+}
+
diff --git a/common/reminder.c b/common/reminder.c
new file mode 100755 (executable)
index 0000000..d258949
--- /dev/null
@@ -0,0 +1,209 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "cld.h"
+#include "reminder.h"
+
+static inline void __cal_reminder_get_week_str(int week, char *buf, int sz)
+{
+       snprintf(buf, sz, "%d %s %s", week,C_("IDS_COM_POP_WEEK_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
+}
+
+static inline void __cal_reminder_get_day_str(int day, char *buf, int sz)
+{
+       snprintf(buf, sz, "%d %s %s", day, C_("IDS_COM_POP_DAY_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
+}
+
+static inline void __cal_reminder_get_hour_str(int hour, char *buf, int sz)
+{
+       snprintf(buf, sz, "%d %s %s", hour, S_("IDS_COM_POP_HOUR_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
+}
+
+static inline void __cal_reminder_get_min_str(int min, char *buf, int sz)
+{
+       snprintf(buf, sz, "%d %s %s", min, S_("IDS_COM_BODY_MINUTE_LC"), C_("IDS_CLD_BODY_BEFORE_LC"));
+}
+
+static inline void __cal_reminder_get_str(const Cal_Reminder* reminder, char *buf, int sz)
+{
+       int min = reminder->alarm_value;
+
+       if ((min % _WEEK) == 0) {
+               __cal_reminder_get_week_str(min / _WEEK, buf, sz);
+               return;
+       }
+
+       if ((min % _DAY) == 0) {
+               __cal_reminder_get_day_str(min / _DAY, buf, sz);
+               return;
+       }
+
+       if ((min % _HOUR) == 0) {
+               __cal_reminder_get_hour_str(min / _HOUR, buf, sz);
+               return;
+       }
+
+       __cal_reminder_get_min_str(min, buf, sz);
+}
+
+void cal_reminder_get_string(const Cal_Reminder* reminder, char *buf, int size)
+{
+       if (!buf || size < 0)
+               return;
+
+       switch (reminder->tick_unit) {
+       case CALENDAR_ALARM_TIME_UNIT_SPECIFIC:
+               cal_util_get_time_text(buf, size, CAL_UTIL_DATE_FORMAT_1, CAL_UTIL_TIME_FORMAT_5, &reminder->datetime);
+               break;
+       case CALENDAR_ALARM_NONE:
+               g_snprintf(buf, size, "%s", S_("IDS_COM_BODY_OFF"));
+               break;
+       case CALENDAR_ALARM_TIME_UNIT_MINUTE:
+               if (reminder->alarm_value == 0)
+                       g_snprintf(buf, size, "%s", C_("IDS_CLD_BODY_ON_TIME"));
+               else
+                       __cal_reminder_get_str(reminder, buf, size);
+               break;
+       default:
+               ERR("ERROR!! %d", reminder->tick_unit);
+               break;
+       }
+}
+
+Cal_Reminder* cal_reminder_create(calendar_record_h calendar_alarm)
+{
+       c_retv_if(!calendar_alarm, NULL);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int tick = 0;
+       error = calendar_record_get_int(calendar_alarm, _calendar_alarm.tick, &tick);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       calendar_alarm_time_unit_type_e tick_unit = CALENDAR_ALARM_NONE;
+
+       error = calendar_record_get_int(calendar_alarm, _calendar_alarm.tick_unit, &tick_unit);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       calendar_time_s alarm_time = {0};
+
+       error = calendar_record_get_lli(calendar_alarm, _calendar_alarm.time, &alarm_time.time.utime);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+
+       _calendar_show_error(error);
+
+       Cal_Reminder* reminder = calloc(1, sizeof(Cal_Reminder));
+       c_retv_if(!reminder, NULL);
+
+       cal_util_convert_lli_to_tm(NULL, alarm_time.time.utime, &reminder->datetime);
+
+       if (tick_unit == CALENDAR_ALARM_NONE) {
+               reminder->tick_unit = CALENDAR_ALARM_NONE;
+               return reminder;
+       }
+
+       if (tick_unit == CALENDAR_ALARM_TIME_UNIT_SPECIFIC) {
+               reminder->tick_unit = CALENDAR_ALARM_TIME_UNIT_SPECIFIC;
+               return reminder;
+       }
+
+       switch (tick_unit) {
+       case CALENDAR_ALARM_TIME_UNIT_MONTH:
+               reminder->alarm_value = tick * _DAY * 30; // TODO: BUG!! not used!!
+               break;
+       case CALENDAR_ALARM_TIME_UNIT_WEEK:
+               reminder->alarm_value = tick * _WEEK;
+               break;
+       case CALENDAR_ALARM_TIME_UNIT_DAY:
+               reminder->alarm_value = tick * _DAY;
+               break;
+       case CALENDAR_ALARM_TIME_UNIT_HOUR:
+               reminder->alarm_value = tick * _HOUR;
+               break;
+       case CALENDAR_ALARM_TIME_UNIT_MINUTE:
+               reminder->alarm_value = tick;
+               break;
+       default:
+               reminder->alarm_value = 0;
+               break;
+       }
+
+       reminder->tick_unit = CALENDAR_ALARM_TIME_UNIT_MINUTE;
+
+       return reminder;
+}
+
+calendar_record_h cal_reminder_get_cal_val(const Cal_Reminder* reminder)
+{
+       c_retv_if(!reminder, NULL);
+
+       calendar_record_h calendar_alarm = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_create(_calendar_alarm._uri, &calendar_alarm);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_create() is failed(%x)", error);
+
+       if (reminder->tick_unit == CALENDAR_ALARM_NONE) {
+
+               error = calendar_record_set_int(calendar_alarm, _calendar_alarm.tick_unit, CALENDAR_ALARM_NONE);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+               return calendar_alarm;
+       }
+
+       long long int lli_time;
+       cal_util_convert_tm_to_lli(NULL, &reminder->datetime, &lli_time);
+
+       error = calendar_record_set_lli(calendar_alarm, _calendar_alarm.time, lli_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_lli() is failed(%x)", error);
+
+       error = calendar_record_set_int(calendar_alarm, _calendar_alarm.tick_unit, CALENDAR_ALARM_TIME_UNIT_SPECIFIC);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+       int min = reminder->alarm_value;
+       int tick;
+       calendar_alarm_time_unit_type_e tick_unit;
+
+       if (reminder->tick_unit == CALENDAR_ALARM_TIME_UNIT_SPECIFIC) {
+               tick = 0;
+               tick_unit = CALENDAR_ALARM_TIME_UNIT_SPECIFIC;
+       } else if (min == -1) {
+               tick = -1;
+               tick_unit = CALENDAR_ALARM_TIME_UNIT_MINUTE;
+       } else if ((min % _WEEK) == 0) {
+               tick = min / _WEEK;
+               tick_unit = CALENDAR_ALARM_TIME_UNIT_WEEK;
+       } else if ((min % _DAY) == 0) {
+               tick = min / _DAY;
+               tick_unit = CALENDAR_ALARM_TIME_UNIT_DAY;
+       } else if ((min % _HOUR) == 0) {
+               tick = min / _HOUR;
+               tick_unit = CALENDAR_ALARM_TIME_UNIT_HOUR;
+       } else {
+               tick = min;
+               tick_unit = CALENDAR_ALARM_TIME_UNIT_MINUTE;
+       }
+
+       error = calendar_record_set_int(calendar_alarm, _calendar_alarm.tick, tick);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+       error = calendar_record_set_int(calendar_alarm, _calendar_alarm.tick_unit, tick_unit);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+       return calendar_alarm;
+}
diff --git a/common/save-cancel.c b/common/save-cancel.c
new file mode 100755 (executable)
index 0000000..1137f00
--- /dev/null
@@ -0,0 +1,310 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "save-cancel.h"
+#include "cld.h"
+
+typedef struct {
+       Evas_Object *naviframe;
+       Elm_Object_Item *navi_item;
+
+       Evas_Object *conformant;
+
+       Evas_Object *tabbar;
+
+       Evas_Object *title_save_button;
+       Evas_Object *title_cancel_button;
+
+       Evas_Object *bottom_save_button;
+       Evas_Object *bottom_cancel_button;
+
+       save_cancel_cb save_callback;
+       save_cancel_cb cancel_callback;
+       void *callback_data;
+} cal_save_cancel_s;
+
+static void __cal_save_cancel_show_title_toolbar(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       cal_save_cancel_s* p = data;
+
+       Elm_Object_Item *navi_item = p->navi_item;
+
+       Evas_Object *tabbar = elm_object_item_part_content_unset(navi_item, "tabbar");
+
+       if (tabbar != NULL) {
+
+               evas_object_hide(tabbar);
+
+               Evas_Object *bottom_save_button = elm_object_item_part_content_unset(navi_item, "toolbar_button1");
+               evas_object_hide(bottom_save_button);
+
+               Evas_Object *bottom_cancel_button = elm_object_item_part_content_unset(navi_item, "prev_btn");
+               evas_object_hide(bottom_cancel_button);
+
+               p->tabbar = tabbar;
+       }
+
+       elm_object_item_signal_emit(navi_item, "elm,state,sip,shown", "");
+}
+
+static void __cal_save_cancel_hide_title_toolbar(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       cal_save_cancel_s* p = data;
+
+       Elm_Object_Item *navi_item = p->navi_item;
+
+       if (p->tabbar != NULL) {
+
+               elm_object_item_part_content_set(navi_item, "tabbar", p->tabbar);
+
+               evas_object_show(p->tabbar);
+
+               elm_object_item_part_content_set(navi_item, "toolbar_button1", p->bottom_save_button);
+               evas_object_show(p->bottom_save_button);
+
+               elm_object_item_part_content_set(navi_item, "prev_btn", p->bottom_cancel_button);
+               evas_object_show(p->bottom_cancel_button);
+
+               p->tabbar = NULL;
+       }
+
+       elm_object_item_signal_emit(navi_item, "elm,state,sip,hidden", "");
+}
+
+static void __cal_save_cancel_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+
+       cal_save_cancel_s* p = data;
+
+       __cal_save_cancel_hide_title_toolbar(p, obj, event_info);
+}
+
+static void __cal_save_cancel_title_cancel_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+
+       cal_save_cancel_s* p = data;
+
+       __cal_save_cancel_button_callback(data, obj, event_info);
+
+       if (p->cancel_callback)
+               p->cancel_callback(p->callback_data, obj, event_info);
+
+       elm_naviframe_item_pop(p->naviframe);
+}
+
+static void __cal_save_cancel_bottom_cancel_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+
+       cal_save_cancel_s* p = data;
+
+       __cal_save_cancel_button_callback(data, obj, event_info);
+
+       if (p->cancel_callback)
+               p->cancel_callback(p->callback_data, obj, event_info);
+}
+
+static void __cal_save_cancel_save_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+
+       cal_save_cancel_s* p = data;
+
+       __cal_save_cancel_button_callback(data, obj, event_info);
+
+       p->save_callback(p->callback_data, obj, event_info);
+}
+
+static void __cal_save_cancel_input_panel_state_callback(void *data, Ecore_IMF_Context *imf_context, int value)
+{
+       c_ret_if(!data);
+
+       if (value == ECORE_IMF_INPUT_PANEL_STATE_SHOW)
+               __cal_save_cancel_show_title_toolbar(data, NULL, NULL);
+       else
+               __cal_save_cancel_hide_title_toolbar(data, NULL, NULL);
+}
+
+void cal_save_cancel_set_input_panel_callback_for_ug(cal_save_cancel_h info, Evas_Object *entry)
+{
+       c_ret_if(!info);
+       c_ret_if(!entry);
+
+       cal_save_cancel_s* p = (cal_save_cancel_s*)info;
+
+       Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(entry);
+       c_ret_if(!imf_context);
+
+       ecore_imf_context_input_panel_event_callback_add(imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, __cal_save_cancel_input_panel_state_callback, p);
+}
+
+void cal_save_cancel_unset_input_panel_callback_for_ug(Evas_Object *entry)
+{
+       c_ret_if(!entry);
+
+       Ecore_IMF_Context *imf_context = (Ecore_IMF_Context *)elm_entry_imf_context_get(entry);
+       c_ret_if(!imf_context);
+
+       ecore_imf_context_input_panel_event_callback_del(imf_context, ECORE_IMF_INPUT_PANEL_STATE_EVENT, __cal_save_cancel_input_panel_state_callback);
+}
+
+cal_save_cancel_h cal_save_cancel_create(Evas_Object *naviframe, Evas_Object *conformant, save_cancel_cb save_cb, save_cancel_cb cancel_cb, void* data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!naviframe, NULL);
+
+       Elm_Object_Item *navi_item = elm_naviframe_top_item_get(naviframe);
+       c_retv_if(!navi_item, NULL);
+
+       cal_save_cancel_s* p = (cal_save_cancel_s*)calloc(sizeof(cal_save_cancel_s), 1);
+       c_retv_if(!p, NULL);
+
+       p->save_callback = save_cb;
+       p->cancel_callback = cancel_cb;
+       p->callback_data = data;
+
+       Evas_Object *button = NULL;
+
+       if (save_cb) {
+
+               button = cal_util_add_toolbar_button(naviframe, "toolbar_button1", S_("IDS_COM_OPT_SAVE"), __cal_save_cancel_save_button_callback, p);
+               c_warn_if(!button, "cal_util_add_toolbar_button() is failed.");
+
+               p->bottom_save_button = button;
+
+               button = cal_util_add_toolbar_button(naviframe, "title_toolbar_button1", S_("IDS_COM_OPT_SAVE"), __cal_save_cancel_save_button_callback, p);
+               c_warn_if(!button, "cal_util_add_toolbar_button() is failed.");
+
+               p->title_save_button = button;
+
+       }
+
+       button = elm_object_item_part_content_get(navi_item, "prev_btn");
+       if (!button) {
+
+               button = cal_util_add_toolbar_button(naviframe, "prev_btn", NULL, __cal_save_cancel_bottom_cancel_button_callback, p);
+               c_warn_if(!button, "cal_util_add_toolbar_button() is failed.");
+
+               elm_object_style_set(button, "naviframe/end_btn/default");
+
+       } else
+               if (cancel_cb)
+                       evas_object_smart_callback_add(button, "clicked", cancel_cb, data);
+
+       p->bottom_cancel_button = button;
+
+       button = cal_util_add_toolbar_button(naviframe, "title_prev_btn", NULL, __cal_save_cancel_title_cancel_button_callback, p);
+       c_warn_if(!button, "cal_util_add_toolbar_button() is failed.");
+
+       p->title_cancel_button = button;
+
+       elm_object_style_set(button, "naviframe/end_btn/default");
+
+       p->naviframe = naviframe;
+       p->navi_item = navi_item;
+
+       if (conformant) {
+               p->conformant = conformant;
+
+               evas_object_smart_callback_add(conformant, "virtualkeypad,state,on", __cal_save_cancel_show_title_toolbar, p);
+               evas_object_smart_callback_add(conformant, "virtualkeypad,state,off", __cal_save_cancel_hide_title_toolbar, p);
+       }
+
+       return p;
+}
+
+void cal_save_cancel_destroy(cal_save_cancel_h info)
+{
+       CAL_FN_START;
+
+       cal_save_cancel_s* p = (cal_save_cancel_s*)info;
+       c_retm_if(!p, "p is null");
+
+       evas_object_smart_callback_del(p->conformant, "virtualkeypad,state,on", __cal_save_cancel_show_title_toolbar);
+       evas_object_smart_callback_del(p->conformant, "virtualkeypad,state,off", __cal_save_cancel_hide_title_toolbar);
+
+       if (p->title_save_button)
+               evas_object_del(p->title_save_button);
+
+       if (p->title_cancel_button)
+               evas_object_del(p->title_cancel_button);
+
+       if (p->bottom_save_button)
+               evas_object_del(p->bottom_save_button);
+
+       if (p->bottom_cancel_button)
+               evas_object_del(p->bottom_cancel_button);
+
+       free(p);
+}
+
+void cal_save_cancel_set_button_text(cal_save_cancel_h info, const char *save_button_text, const char *cancel_button_text)
+{
+       CAL_FN_START;
+
+       cal_save_cancel_s* p = (cal_save_cancel_s*)info;
+       c_ret_if(!p);
+
+       if (CAL_STRLEN(save_button_text)) {
+
+               if (p->title_save_button)
+                       elm_object_text_set(p->title_save_button, save_button_text);
+
+               if (p->bottom_save_button)
+                       elm_object_text_set(p->bottom_save_button, save_button_text);
+       }
+
+       if (CAL_STRLEN(cancel_button_text)) {
+
+               if (p->title_cancel_button)
+                       elm_object_text_set(p->title_cancel_button, save_button_text);
+
+               if (p->bottom_cancel_button)
+                       elm_object_text_set(p->bottom_cancel_button, save_button_text);
+       }
+}
+
+void cal_save_cancel_set_disabled(cal_save_cancel_h info, Eina_Bool is_disabled_save, Eina_Bool is_disabled_cancel)
+{
+       CAL_FN_START;
+
+       cal_save_cancel_s* p = (cal_save_cancel_s*)info;
+       c_ret_if(!p);
+
+       if (p->title_save_button)
+               elm_object_disabled_set(p->title_save_button, is_disabled_save);
+
+       if (p->bottom_save_button)
+               elm_object_disabled_set(p->bottom_save_button, is_disabled_save);
+
+       if (p->title_cancel_button)
+               elm_object_disabled_set(p->title_cancel_button, is_disabled_cancel);
+
+       if (p->bottom_cancel_button)
+               elm_object_disabled_set(p->bottom_cancel_button, is_disabled_cancel);
+}
diff --git a/common/searchbar.c b/common/searchbar.c
new file mode 100755 (executable)
index 0000000..b7d4361
--- /dev/null
@@ -0,0 +1,173 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "searchbar.h"
+
+static void __cal_util_searchbar_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       if (elm_object_focus_get(data)) {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       } else {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+       }
+}
+
+static void __cal_util_searchbar_with_cancel_btn_focused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (!elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+
+       elm_object_signal_emit(data, "cancel,in", "");
+}
+
+static void __cal_util_searchbar_focused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void __cal_util_searchbar_eraser_clicked_callback(void *data, Evas_Object *obj, const char *emission, const char *source) // When X marked button is clicked, empty entry's contents.
+{
+       c_retm_if(!data, "data is null");
+
+       elm_entry_entry_set(data, "");
+}
+
+static void __cal_util_searchbar_cancel_btn_clicked_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *searchbar_layout = data;
+       Evas_Object *entry = elm_object_part_content_get(searchbar_layout, "elm.swallow.content");
+       c_retm_if(!entry, "entry is null");
+
+       evas_object_hide(obj);
+
+       elm_entry_input_panel_hide(entry);
+
+       elm_entry_entry_set(entry, NULL);
+
+       elm_object_focus_set(entry, EINA_FALSE);
+}
+
+static void __cal_util_searchbar_unfocused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+
+       elm_object_signal_emit(data, "cancel,out", "");
+}
+
+static void __cal_util_searchbar_symbol_clicked_callback(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       c_retm_if(!data, "data is null");
+
+       elm_object_focus_set(data, EINA_TRUE);
+}
+
+static void __cal_util_searchbar_bg_clicked_callback(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       c_retm_if(!data, "data is null");
+
+       elm_object_focus_set(data, EINA_TRUE);
+}
+
+Evas_Object * cal_util_add_searchbar(Evas_Object *parent, const char *text,  const char *guide,
+                       Eina_Bool cancel_button, Evas_Smart_Cb cancel_callback, void* cancel_callback_data)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *searchbar_layout = elm_layout_add(parent);
+       c_retvm_if(!searchbar_layout, NULL, "searchbar_layout is null");
+
+       if (cancel_button)
+               elm_layout_theme_set(searchbar_layout, "layout", "searchbar", "cancel_button");
+       else
+               elm_layout_theme_set(searchbar_layout, "layout", "searchbar", "default");
+
+       Evas_Object *entry = elm_entry_add(searchbar_layout);
+       c_retvm_if(!entry, searchbar_layout, "entry is null");
+
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+       evas_object_show(entry);
+
+       elm_entry_scrollable_set(entry, EINA_TRUE);
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       ecore_imf_context_input_panel_return_key_type_set(elm_entry_imf_context_get(entry), ECORE_IMF_INPUT_PANEL_RETURN_KEY_TYPE_SEARCH);
+
+       elm_object_part_content_set(searchbar_layout, "elm.swallow.content", entry);
+
+       if (guide && strlen(guide))
+               elm_object_part_text_set(searchbar_layout, "elm.guidetext", guide);
+       else
+               elm_object_part_text_set(searchbar_layout, "elm.guidetext", S_("IDS_COM_BODY_SEARCH"));
+
+       if (text && strlen(text))
+               elm_object_text_set(entry, text);
+
+       if (cancel_button) {
+               Evas_Object *cancel_btn = elm_button_add(searchbar_layout);
+               c_retvm_if(!cancel_btn, searchbar_layout, "cancel_btn is null");
+
+               elm_object_part_content_set(searchbar_layout, "button_cancel", cancel_btn);
+               elm_object_style_set(cancel_btn, "searchbar/default");
+               elm_object_text_set(cancel_btn, S_("IDS_COM_SK_CANCEL"));
+
+               evas_object_smart_callback_add(entry, "focused", __cal_util_searchbar_with_cancel_btn_focused_callback, searchbar_layout);
+               if (cancel_callback == NULL)
+                       evas_object_smart_callback_add(cancel_btn, "clicked", __cal_util_searchbar_cancel_btn_clicked_callback, searchbar_layout);
+               else
+                       evas_object_smart_callback_add(cancel_btn, "clicked", cancel_callback, cancel_callback_data);
+       }
+       else {
+               evas_object_smart_callback_add(entry, "focused", __cal_util_searchbar_focused_callback, searchbar_layout);
+       }
+
+       evas_object_smart_callback_add(entry, "changed", __cal_util_searchbar_changed_callback, searchbar_layout);
+       evas_object_smart_callback_add(entry, "preedit,changed", __cal_util_searchbar_changed_callback, searchbar_layout);
+       evas_object_smart_callback_add(entry, "unfocused", __cal_util_searchbar_unfocused_callback, searchbar_layout);
+       elm_object_signal_callback_add(searchbar_layout, "elm,eraser,clicked", "elm", __cal_util_searchbar_eraser_clicked_callback, entry);
+       elm_object_signal_callback_add(searchbar_layout, "elm,bg,clicked", "elm", __cal_util_searchbar_bg_clicked_callback, entry);
+       elm_object_signal_callback_add(searchbar_layout, "elm,action,click", "", __cal_util_searchbar_symbol_clicked_callback, entry);
+
+       return searchbar_layout;
+}
diff --git a/common/util-efl.c b/common/util-efl.c
new file mode 100755 (executable)
index 0000000..6d733f1
--- /dev/null
@@ -0,0 +1,1074 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <Ecore_X.h>
+#include <unicode/ucal.h>
+#include <unicode/udat.h>
+#include <unicode/udatpg.h>
+#include <unicode/uloc.h>
+#include <unicode/ustring.h>
+#include <unicode/ustdio.h>
+#include <vconf.h>
+
+#include "cld.h"
+#include "cld-images.h"
+
+static UDateTimePatternGenerator *pattern_generator = NULL;
+static pthread_mutex_t mutex_lock = PTHREAD_MUTEX_INITIALIZER;
+static UErrorCode status = U_ZERO_ERROR;
+static int pattern_generator_reference_counter = 0;
+
+static char _partbuf[1024];
+static char _textbuf[1024];
+static char _sigbuf[1024];
+static char _timezone[32];
+
+Evas_Object* cal_util_add_bg(Evas_Object *obj, Eina_Bool is_window)
+{
+       CAL_FN_START;
+
+       Evas_Object *bg;
+       CAL_ASSERT(obj);
+       bg = elm_bg_add(obj);
+       if (!bg)
+               return NULL;
+
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (is_window)
+               elm_win_resize_object_add(obj, bg);
+       else
+               elm_object_style_set(bg, "group_list");
+
+       evas_object_show(bg);
+
+       CAL_FN_END;
+
+       return bg;
+}
+
+Evas_Object* cal_util_add_layout(Evas_Object *win, const char *g)
+{
+       c_retvm_if(!win, NULL, "win is null");
+
+       Eina_Bool r;
+       Evas_Object *eo = elm_layout_add(win);
+       c_retvm_if(!eo, NULL, "elm_layout_add returned null");
+
+       if (g) {
+               r = elm_layout_file_set(eo, EDJ_FILE, g);
+               c_warn_if(r == EINA_FALSE, "elm_layout_file_set is failed");
+       }
+       else {
+               r = elm_layout_theme_set(eo, "layout", "application", "default");
+               c_warn_if(r == EINA_FALSE, "elm_layout_theme_set is failed");
+       }
+
+       if (r == EINA_FALSE) {
+               evas_object_del(eo);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(eo);
+
+       return eo;
+}
+
+Evas_Object* cal_util_add_layout_noindicator(Evas_Object *win)
+{
+       c_retvm_if(!win, NULL, "win is null");
+
+       Eina_Bool r;
+       Evas_Object *eo = elm_layout_add(win);
+       c_retvm_if(!eo, NULL, "elm_layout_add returned null");
+
+       r = elm_layout_theme_set(eo, "layout", "application", "noindicator");
+       c_warn_if(r == EINA_FALSE, "elm_layout_theme_set is failed");
+
+       if (r == EINA_FALSE) {
+               evas_object_del(eo);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(eo);
+
+       return eo;
+}
+
+Evas_Object* cal_util_add_rectangle(Evas_Object *p)
+{
+       Evas_Object *r;
+
+       r = evas_object_rectangle_add(evas_object_evas_get(p));
+       CAL_ASSERT(r);
+
+       evas_object_show(r);
+       return r;
+}
+
+static void __cal_util_delete_window(void *data, Evas_Object *obj, void *event)
+{
+       elm_exit();
+}
+
+static void profile_changed_cb(void *data, Evas_Object * obj, void *event)
+{
+       const char *profile = elm_config_profile_get();
+
+       if (strcmp(profile, "desktop") == 0)
+               elm_win_indicator_mode_set (obj, ELM_WIN_INDICATOR_HIDE);
+       else
+               elm_win_indicator_mode_set (obj, ELM_WIN_INDICATOR_SHOW);
+}
+
+Evas_Object* cal_util_add_window(const char *name, Evas_Coord* w, Evas_Coord* h)
+{
+       CAL_FN_START;
+
+       Evas_Object *eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+       c_retvm_if(!eo, NULL, "elm_win_add returned null");
+
+       Evas_Coord width, height;
+
+       elm_win_title_set(eo, name);
+
+       /*For calendar ring, window delete callback is not needed.*/
+       if (strcmp(name, CALENDAR_RING))
+               evas_object_smart_callback_add(eo, "delete,request", __cal_util_delete_window, NULL);
+
+       evas_object_smart_callback_add(eo, "profile,changed", profile_changed_cb, NULL);
+
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &width, &height);
+       evas_object_resize(eo, width, height);
+
+       elm_win_conformant_set(eo, EINA_TRUE);
+       elm_win_indicator_mode_set(eo, ELM_WIN_INDICATOR_SHOW);
+
+       if (w && h) {
+               *w = width;
+               *h = height;
+       }
+
+       CAL_FN_END;
+
+       return eo;
+}
+
+char* cal_util_get_part_text(const char *fmt, int pos)
+{
+       snprintf(_partbuf, sizeof(_partbuf), fmt, pos);
+       return _partbuf;
+}
+
+
+void cal_util_set_text(Evas_Object *obj, const char *part, const char *fmt, ...)
+{
+       va_list ap;
+
+       va_start(ap, fmt);
+       vsnprintf(_textbuf, sizeof(_textbuf), fmt, ap);
+       va_end(ap);
+
+       edje_object_part_text_set(obj, part, _textbuf);
+}
+
+int cal_util_connect_pattern_generator()
+{
+       CAL_FN_START;
+
+       pthread_mutex_lock(&mutex_lock);
+       if(pattern_generator_reference_counter == 0)
+       {
+               uloc_setDefault(getenv("LC_TIME"), &status);
+               if(!pattern_generator)
+                       pattern_generator = udatpg_open(uloc_getDefault(), &status);
+               if(!pattern_generator)
+               {
+                       ERR("udatpg_open fail : %s", u_errorName(status));
+                       pthread_mutex_unlock(&mutex_lock);
+                       return -1;
+               }
+       }
+
+       pattern_generator_reference_counter++;
+       pthread_mutex_unlock(&mutex_lock);
+
+       CAL_FN_END;
+
+       return 0;
+}
+
+int cal_util_disconnect_pattern_generator()
+{
+       pthread_mutex_lock(&mutex_lock);
+
+       if(pattern_generator_reference_counter == 1)
+       {
+               if(pattern_generator)
+                       udatpg_close(pattern_generator);
+               pattern_generator = NULL;
+       }
+
+       pattern_generator_reference_counter--;
+
+       pthread_mutex_unlock(&mutex_lock);
+
+       return 0;
+}
+
+void cal_util_set_timezone(const char *timezone)
+{
+       c_ret_if(!timezone);
+
+       snprintf(_timezone, sizeof(_timezone), "%s", timezone);
+}
+
+void cal_util_initialize_timezone()
+{
+       CAL_FN_START;
+
+       int is_lock_timezone = 0;
+
+       int ret = vconf_get_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, &is_lock_timezone);
+       c_ret_if(ret);
+
+       char *text = NULL;
+
+       if (is_lock_timezone)
+               text = vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH);
+       else
+               text = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
+
+       if (CAL_STRLEN(text)) {
+
+               cal_util_set_timezone(text);
+
+               free(text);
+       } else
+               ERR("vconf_get_str is failed.");
+
+       CAL_FN_END;
+}
+
+void cal_util_convert_lli_to_tm(const char *timezone, long long int lli, struct tm *tm)
+{
+       c_ret_if(!tm);
+
+       UErrorCode status = U_ZERO_ERROR;
+       UChar utf16_timezone[64] = {0};
+
+       if (timezone)
+               u_uastrncpy(utf16_timezone, timezone, 64);
+       else
+               u_uastrncpy(utf16_timezone, _timezone, sizeof(_timezone));
+
+       UCalendar *cal = ucal_open(utf16_timezone, u_strlen(utf16_timezone), uloc_getDefault(), UCAL_TRADITIONAL, &status);
+       c_ret_if(!cal);
+
+       ucal_setMillis(cal, (double)(lli* 1000.0), &status);
+
+       tm->tm_year = ucal_get(cal, UCAL_YEAR, &status) - 1900;
+       tm->tm_mon = ucal_get(cal, UCAL_MONTH, &status);
+       tm->tm_mday = ucal_get(cal, UCAL_DATE, &status);
+
+       if (ucal_get(cal, UCAL_AM_PM, &status))
+               tm->tm_hour = ucal_get(cal, UCAL_HOUR, &status) + 12;
+       else
+               tm->tm_hour = ucal_get(cal, UCAL_HOUR, &status);
+
+       tm->tm_min = ucal_get(cal, UCAL_MINUTE, &status);
+       tm->tm_sec = ucal_get(cal, UCAL_SECOND, &status);
+       tm->tm_isdst = ucal_get(cal, UCAL_DST_OFFSET, &status);
+       tm->tm_wday = ucal_get(cal, UCAL_DAY_OF_WEEK, &status) - 1;
+       tm->tm_yday = ucal_get(cal, UCAL_DAY_OF_YEAR, &status) - 1;
+
+       ucal_close(cal);
+}
+
+void cal_util_convert_tm_to_lli(const char *timezone, const struct tm *tm, long long int *lli)
+{
+       c_ret_if(!tm);
+       c_ret_if(!lli);
+
+       UErrorCode status = U_ZERO_ERROR;
+       UChar utf16_timezone[64] = {0};
+
+       if (timezone)
+               u_uastrncpy(utf16_timezone, timezone, 64);
+       else
+               u_uastrncpy(utf16_timezone, _timezone, sizeof(_timezone));
+
+       UCalendar *cal = ucal_open(utf16_timezone, u_strlen(utf16_timezone), uloc_getDefault(), UCAL_TRADITIONAL, &status);
+       c_ret_if(!cal);
+
+       ucal_setAttribute(cal, UCAL_LENIENT, 1);
+       ucal_setDateTime(cal, tm->tm_year + 1900, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, &status);
+
+       UDate millis = ucal_getMillis(cal, &status);
+
+       *lli = (long long int)(millis / 1000);
+
+       ucal_close(cal);
+}
+
+void cal_util_convert_lli_to_time_t(const char *timezone, long long int lli, time_t *time)
+{
+       c_ret_if(!time);
+
+       UErrorCode status = U_ZERO_ERROR;
+       UChar utf16_timezone[64] = {0};
+
+       if (timezone)
+               u_uastrncpy(utf16_timezone, timezone, 64);
+       else
+               u_uastrncpy(utf16_timezone, _timezone, sizeof(_timezone));
+
+       UCalendar *cal = ucal_open(utf16_timezone, u_strlen(utf16_timezone), uloc_getDefault(), UCAL_TRADITIONAL, &status);
+       c_ret_if(!cal);
+
+       ucal_setMillis(cal, (double)(lli* 1000.0), &status);
+
+       struct tm tm;
+
+       tm.tm_year = ucal_get(cal, UCAL_YEAR, &status) - 1900;
+       tm.tm_mon = ucal_get(cal, UCAL_MONTH, &status);
+       tm.tm_mday = ucal_get(cal, UCAL_DATE, &status);
+
+       if (ucal_get(cal, UCAL_AM_PM, &status))
+               tm.tm_hour = ucal_get(cal, UCAL_HOUR, &status) + 12;
+       else
+               tm.tm_hour = ucal_get(cal, UCAL_HOUR, &status);
+
+       tm.tm_min = ucal_get(cal, UCAL_MINUTE, &status);
+       tm.tm_sec = ucal_get(cal, UCAL_SECOND, &status);
+       tm.tm_isdst = ucal_get(cal, UCAL_DST_OFFSET, &status);
+       tm.tm_wday = ucal_get(cal, UCAL_DAY_OF_WEEK, &status) - 1;
+       tm.tm_yday = ucal_get(cal, UCAL_DAY_OF_YEAR, &status) - 1;
+
+       *time = mktime(&tm);
+
+       ucal_close(cal);
+}
+
+void cal_util_convert_time_t_to_lli(const char *timezone, time_t time, long long int *lli)
+{
+       c_ret_if(!lli);
+
+       UErrorCode status = U_ZERO_ERROR;
+       UChar utf16_timezone[64] = {0};
+
+       if (timezone)
+               u_uastrncpy(utf16_timezone, timezone, 64);
+       else
+               u_uastrncpy(utf16_timezone, _timezone, sizeof(_timezone));
+
+       UCalendar *cal = ucal_open(utf16_timezone, u_strlen(utf16_timezone), uloc_getDefault(), UCAL_TRADITIONAL, &status);
+       c_ret_if(!cal);
+
+       ucal_setAttribute(cal, UCAL_LENIENT, 1);
+
+       struct tm tm;
+
+       ucal_setDateTime(cal, tm.tm_year + 1900, tm.tm_mon, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, &status);
+
+       UDate millis = ucal_getMillis(cal, &status);
+
+       *lli = (long long int)(millis / 1000);
+
+       ucal_close(cal);
+}
+
+
+UDate cal_util_get_u_date_from_time_t(time_t time)
+{
+       UDate date;
+       date = (UDate ) time*1000;  /* Equivalent to Date = ucal_getNow() in Milliseconds */
+       return date;
+}
+
+UDate cal_util_get_u_date_from_tm(const struct tm* tm)
+{
+       UDate date;
+       time_t time;
+
+       time = timelocal((struct tm*)tm);
+
+       date = (UDate ) time*1000;  /* Equivalent to Date = ucal_getNow() in Milliseconds */
+       return date;
+}
+
+static void __cal_util_generate_best_pattern(UChar *custom_format, const struct tm* tm, char *buffer, int buffer_size)
+{
+       UErrorCode status = U_ZERO_ERROR;
+       UDateFormat *formatter;
+       UDate date;
+       UChar bestPattern[64] = {0,};
+       UChar formatted[64] = {0,};
+       char bestPatternString[128]={0,};
+       char formattedString[128] = {0,};
+       int32_t bestPatternCapacity, formattedCapacity;
+       int32_t bestPatternLength, formattedLength;
+       uloc_setDefault(getenv("LC_TIME"), &status);
+       const char* locale = uloc_getDefault();
+
+       bestPatternCapacity = (int32_t)(sizeof(bestPattern)/sizeof((bestPattern)[0]));
+       bestPatternLength = udatpg_getBestPattern(pattern_generator, custom_format, u_strlen(custom_format), bestPattern,   bestPatternCapacity, &status);
+
+       u_austrncpy(bestPatternString, bestPattern, 128);
+
+       date = cal_util_get_u_date_from_tm(tm);
+       formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, bestPattern, -1, &status);
+
+       formattedCapacity = (int32_t)(sizeof(formatted)/sizeof((formatted)[0]));
+       formattedLength = udat_format(formatter, date, formatted, formattedCapacity, NULL, &status);
+
+       u_austrncpy(formattedString, formatted, 128);
+
+       udat_close(formatter);
+
+       snprintf(buffer, buffer_size, "%s", formattedString);
+}
+
+static void __cal_util_get_time_text_from_format(const char *date_format, const char *time_format, const struct tm* tm, char *buffer, int buffer_size)
+{
+       char format[128]={0};
+       UChar custom_format[64]={0};
+       int date_format_length = 0;
+       int time_format_length = 0;
+       int format_length = 0;
+
+       if (date_format) {
+               date_format_length = CAL_STRLEN(date_format);
+               CAL_STRNCPY(format,date_format,date_format_length);
+       }
+
+       if (time_format) {
+               time_format_length = CAL_STRLEN(time_format);
+               CAL_STRNCAT(format,time_format,time_format_length);
+       }
+
+       format_length = CAL_STRLEN(format);
+
+       u_uastrncpy(custom_format, format, format_length);
+
+       __cal_util_generate_best_pattern(custom_format, tm, buffer, buffer_size);
+}
+
+void cal_util_set_time_text(Evas_Object *obj, const char *part, const char *date, const char* time, const struct tm *tm)
+{
+       char time_text[128] = {0};
+       __cal_util_get_time_text_from_format(date, time, tm, time_text, sizeof(time_text) - 1);
+
+       edje_object_part_text_set(obj, part, time_text);
+}
+
+void cal_util_set_item_time_text(Elm_Object_Item *item, const char *part, const char *date, const char* time, const struct tm *tm)
+{
+       char time_text[128] = {0};
+       __cal_util_get_time_text_from_format(date, time, tm, time_text, sizeof(time_text) - 1);
+
+       elm_object_item_part_text_set(item, part, time_text);
+}
+
+
+static void __cal_util_generate_best_pattern_toupper(UChar *custom_format, const struct tm* tm, char *buffer, int buffer_size)
+{
+       UErrorCode status = U_ZERO_ERROR;
+       UDateFormat *formatter;
+       UDate date;
+       UChar bestPattern[64] = {0,};
+       UChar formatted[64] = {0,};
+       UChar formatted_upper[64] = {0,};
+       char bestPatternString[128]={0,};
+       char formattedString[128] = {0,};
+       int32_t bestPatternCapacity, formattedCapacity;
+       int32_t bestPatternLength, formattedLength;
+       uloc_setDefault(getenv("LC_TIME"), &status);
+       const char* locale = uloc_getDefault();
+
+       bestPatternCapacity = (int32_t)(sizeof(bestPattern)/sizeof((bestPattern)[0]));
+       bestPatternLength = udatpg_getBestPattern(pattern_generator, custom_format, u_strlen(custom_format), bestPattern,   bestPatternCapacity, &status);
+
+       u_austrncpy(bestPatternString, bestPattern, 128);
+
+       date = cal_util_get_u_date_from_tm(tm);
+       formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, bestPattern, -1, &status);
+
+       formattedCapacity = (int32_t)(sizeof(formatted)/sizeof((formatted)[0]));
+       formattedLength = udat_format(formatter, date, formatted, formattedCapacity, NULL, &status);
+
+       u_strToUpper(formatted_upper, 64, formatted, 64, "", &status);
+
+       u_austrncpy(formattedString, formatted_upper, 128);
+
+       udat_close(formatter);
+
+       snprintf(buffer, buffer_size, "%s", formattedString);
+}
+
+static void __cal_util_get_time_text_from_format_toupper(const char *date_format, const char *time_format, const struct tm* tm, char *buffer, int buffer_size)
+{
+       char format[128]={0};
+       UChar custom_format[64]={0};
+       int date_format_length = 0;
+       int time_format_length = 0;
+       int format_length = 0;
+
+       if (date_format) {
+               date_format_length = CAL_STRLEN(date_format);
+               CAL_STRNCPY(format,date_format,date_format_length);
+       }
+
+       if (time_format) {
+               time_format_length = CAL_STRLEN(time_format);
+               CAL_STRNCAT(format,time_format,time_format_length);
+       }
+
+       format_length = CAL_STRLEN(format);
+
+       u_uastrncpy(custom_format, format, format_length);
+
+       __cal_util_generate_best_pattern_toupper(custom_format, tm, buffer, buffer_size);
+}
+
+void cal_util_set_time_text_toupper(Evas_Object *obj, const char *part, const char *date, const char* time, const struct tm *tm)
+{
+       char time_text[128] = {0};
+       __cal_util_get_time_text_from_format_toupper(date, time, tm, time_text, sizeof(time_text) - 1);
+
+       edje_object_part_text_set(obj, part, time_text);
+}
+
+void cal_util_set_time_week_text(Evas_Object *obj, const char *part, const char *date, const char* time,
+               const struct tm *t, int start)
+{
+       c_retm_if(!obj, "obj is null.");
+       c_retm_if(!part, "part is null.");
+       c_retm_if(!t, "t is null.");
+
+       struct tm tm = *t;
+       char week[8] = {0};
+       char start_date[8] = {0};
+       char end_date[8] = {0};
+       char month_year[32] = {0};
+       char time_text[128] = {0};
+
+       __cal_util_get_time_text_from_format(CAL_UTIL_DATE_FORMAT_16, NULL, &tm, week, sizeof(week) - 1);
+
+       tm.tm_mday -= CAL_UTIL_GET_WDAY(tm.tm_wday - start);
+       __cal_util_get_time_text_from_format(CAL_UTIL_DATE_FORMAT_9, NULL, &tm, start_date, sizeof(start_date) - 1);
+
+       __cal_util_get_time_text_from_format(CAL_UTIL_DATE_FORMAT_6, NULL, &tm, month_year, sizeof(month_year) - 1);
+
+       tm.tm_mday += 6;
+       __cal_util_get_time_text_from_format(CAL_UTIL_DATE_FORMAT_9, NULL, &tm, end_date, sizeof(end_date) - 1);
+
+       snprintf(time_text, sizeof(time_text) - 1,"W%s(%s-%s) %s", week, start_date, end_date, month_year);
+
+       edje_object_part_text_set(obj, part, time_text);
+}
+
+void cal_util_set_item_time_week_text(Elm_Object_Item *item, const char *part, const char *date, const char* time,
+               const struct tm *t, int start)
+{
+       c_retm_if(!item, "item is null.");
+       c_retm_if(!part, "part is null.");
+       c_retm_if(!t, "t is null.");
+
+       struct tm tm = *t;
+       char week[8] = {0};
+       char start_date[8] = {0};
+       char end_date[8] = {0};
+       char month_year[32] = {0};
+       char time_text[128] = {0};
+
+       __cal_util_get_time_text_from_format(CAL_UTIL_DATE_FORMAT_16, NULL, &tm, week, sizeof(week) - 1);
+
+       tm.tm_mday -= CAL_UTIL_GET_WDAY(tm.tm_wday - start);
+       __cal_util_get_time_text_from_format(CAL_UTIL_DATE_FORMAT_9, NULL, &tm, start_date, sizeof(start_date) - 1);
+
+       __cal_util_get_time_text_from_format(CAL_UTIL_DATE_FORMAT_18, NULL, &tm, month_year, sizeof(month_year) - 1);
+
+       tm.tm_mday += 6;
+       __cal_util_get_time_text_from_format(CAL_UTIL_DATE_FORMAT_9, NULL, &tm, end_date, sizeof(end_date) - 1);
+
+       snprintf(time_text, sizeof(time_text) - 1,"W%s %s", week, month_year);
+
+       elm_object_item_part_text_set(item, part, time_text);
+}
+
+int cal_util_get_time_text(char* buf, int buf_size, const char *date, const char* time, const struct tm *tm)
+{
+       char time_text[128] = {0};
+
+       __cal_util_get_time_text_from_format(date, time, tm, time_text, sizeof(time_text) - 1);
+
+       snprintf(buf, buf_size, "%s", time_text);
+
+       return CAL_STRLEN(time_text);
+}
+
+void cal_util_emit_signal(Evas_Object *obj, const char *fmt, ...)
+{
+       va_list ap;
+
+       va_start(ap, fmt);
+       vsnprintf(_sigbuf, sizeof(_sigbuf), fmt, ap);
+       va_end(ap);
+
+       edje_object_signal_emit(obj, _sigbuf, "prog");
+}
+
+Evas_Object* cal_util_add_separator(Evas_Object *box, const char *style)
+{
+       Evas_Object *sp;
+
+       if (!box || CAL_STRCMP(elm_object_widget_type_get(box), "box"))
+               return NULL;
+
+       sp = elm_separator_add(box);
+       if (sp) {
+               elm_separator_horizontal_set(sp, EINA_TRUE);
+               elm_object_style_set(sp, style);
+               evas_object_show(sp);
+               elm_box_pack_end(box, sp);
+       }
+
+       return sp;
+}
+
+Evas_Object* cal_util_add_scroller(Evas_Object *p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *sc = NULL;
+
+       sc = elm_scroller_add(p);
+       c_retv_if(!sc, NULL);
+
+       elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE);
+       elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+
+       evas_object_show(sc);
+
+       return sc;
+}
+
+Evas_Object* cal_util_add_box(Evas_Object *p)
+{
+       Evas_Object *bx;
+
+       bx = elm_box_add(p);
+       if (!bx)
+               return NULL;
+
+       evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0);
+       evas_object_show(bx);
+
+       return bx;
+}
+
+void cal_util_set_controlbar_button(Evas_Object *btn, char *label, char *style, void (*func) (void *data, Evas_Object *obj, void *event_info), void* data)
+{
+       CAL_ASSERT(btn);
+
+       elm_object_style_set(btn, style);
+       evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(btn, EVAS_HINT_FILL, 0.5);
+       elm_object_text_set(btn, label);
+       evas_object_smart_callback_add(btn, "clicked", func, data);
+       evas_object_show(btn);
+}
+
+static void __cal_util_edit_field_changed_callback(void *data, Evas_Object *obj, void *event_info) // This callback is for showing(hiding) X marked button.
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (elm_object_focus_get(data)) {
+               elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+       }
+       else {
+               if (elm_entry_is_empty(obj))
+                       elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+               else
+                       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+       }
+}
+
+static void __cal_util_edit_field_focused_callback(void *data, Evas_Object *obj, void *event_info) // Focused callback will show X marked button and hide guidetext.
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       elm_object_signal_emit(data, "elm,state,eraser,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,guidetext,hide", "elm");
+}
+
+static void __cal_util_edit_field_unfocused_callback(void *data, Evas_Object *obj, void *event_info) // Unfocused callback will show guidetext and hide X marked button.
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       if (elm_entry_is_empty(obj))
+               elm_object_signal_emit(data, "elm,state,guidetext,show", "elm");
+
+       elm_object_signal_emit(data, "elm,state,eraser,hide", "elm");
+}
+
+static void __cal_util_edit_field_eraser_clicked_callback(void *data, Evas_Object *obj, const char *emission, const char *source) // When X marked button is clicked, empty entry's contents.
+{
+       c_retm_if(!data, "data is null");
+
+       elm_entry_entry_set(data, "");
+}
+
+static void __cal_util_edit_field_clicked_callback(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       c_ret_if(!data);
+
+       elm_object_focus_set(data, EINA_TRUE);
+}
+
+Evas_Object * cal_util_add_edit_field(Evas_Object *parent, const char *guide, Eina_Bool single_line, Eina_Bool is_editable)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *layout = elm_layout_add(parent);
+       c_retvm_if(!layout, NULL, "layout is null");
+
+       elm_layout_theme_set(layout, "layout", "editfield", "default");
+
+       Evas_Object *entry = elm_entry_add(parent);
+       c_retvm_if(!entry, layout, "entry is null");
+
+       elm_object_part_content_set(layout, "elm.swallow.content", entry);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (guide && guide[0] != '\0')
+               elm_object_part_text_set(layout, "elm.guidetext", guide);
+
+       elm_entry_single_line_set(entry, single_line);
+       elm_entry_scrollable_set(entry, single_line);
+
+       if (is_editable)
+               elm_object_signal_callback_add(layout, "elm,eraser,clicked", "elm", __cal_util_edit_field_eraser_clicked_callback, entry);
+       else {
+               elm_entry_editable_set(entry, is_editable);
+               elm_object_signal_emit(layout, "elm,state,eraser,hide", "elm");
+       }
+
+       evas_object_smart_callback_add(entry, "changed", __cal_util_edit_field_changed_callback, layout);
+       evas_object_smart_callback_add(entry, "focused", __cal_util_edit_field_focused_callback, layout);
+       evas_object_smart_callback_add(entry, "unfocused", __cal_util_edit_field_unfocused_callback, layout);
+
+       evas_object_show(layout);
+
+       elm_object_signal_callback_add(layout, "mouse,clicked,1", "*", __cal_util_edit_field_clicked_callback, entry);
+
+       return layout;
+}
+
+Evas_Object * cal_util_add_nocontents(Evas_Object *parent, const char *label)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *layout = elm_layout_add(parent);
+       c_retvm_if(!layout, NULL, "layout is null");
+
+       elm_layout_theme_set(layout, "layout", "nocontents", "full");
+
+       if (label && strlen(label))
+               elm_object_part_text_set(layout, "elm.text", label);
+
+       return layout;
+}
+
+Evas_Object * cal_util_add_search_nocontents(Evas_Object *parent, const char *label)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *layout = elm_layout_add(parent);
+       c_retvm_if(!layout, NULL, "layout is null");
+
+       elm_layout_theme_set(layout, "layout", "nocontents", "search");
+
+       if (CAL_STRLEN(label))
+               elm_object_part_text_set(layout, "elm.text", label);
+
+       return layout;
+}
+
+static void __cal_util_popup_response_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       evas_object_del(data);
+}
+
+Evas_Object * cal_util_add_popup(Evas_Object *parent, const char *style, const char *title, const char *desc,
+       void (*callback_func)(void *data, Evas_Object *obj, void *ei), void *data, ...)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *popup = elm_popup_add(parent);
+       c_retvm_if(!popup, NULL, "popup is null");
+
+       if (CAL_STRLEN(style))
+               elm_object_style_set(popup, style);
+
+       if (data)
+               evas_object_data_set(popup, "data", data);
+
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (CAL_STRLEN(title))
+               elm_object_part_text_set(popup, "title,text", title);
+
+       if (CAL_STRLEN(desc))
+               elm_object_text_set(popup, desc);
+
+       va_list arg;
+       int i = 0;
+       Evas_Object *btn = NULL;
+       const char *label = NULL;
+       char part[16] = {0};
+
+       if (!callback_func)
+               callback_func = __cal_util_popup_response_callback;
+
+       va_start(arg, data);
+
+       while ((label = va_arg(arg, char*))) {
+               btn = elm_button_add(popup);
+               if (!btn) {
+                       ERR("btn is null");
+                       continue;
+               }
+
+               elm_object_text_set(btn, label);
+               snprintf(part, sizeof(part), "button%d", ++i);
+               elm_object_part_content_set(popup, part, btn);
+               if (!CAL_STRCMP(label, S_("IDS_COM_BODY_DELETE"))) {
+                       elm_object_style_set(btn, "sweep/delete");
+                       char buffer[128] = {0};
+                       snprintf(buffer, sizeof(buffer), "<font_size=36>%s</font_size>", label);
+                       elm_object_text_set(btn, buffer);
+               } else {
+                       elm_object_style_set(btn, "popup_button/default");
+               }
+               evas_object_smart_callback_add(btn, "clicked", callback_func, popup);
+       }
+
+       va_end(arg);
+
+       if (!i)
+               elm_popup_timeout_set(popup, 3.0);
+
+       evas_object_show(popup);
+       elm_object_focus_set(popup, EINA_TRUE);
+
+       return popup;
+}
+
+Evas_Object * cal_util_add_datetime(Evas_Object *parent, const char *title, const struct tm *tm)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       Evas_Object *datetime = NULL;
+
+       if (CAL_STRLEN(title)) {
+
+               Evas_Object *layout = elm_layout_add(parent);
+               c_retvm_if(!layout, NULL, "layout is null");
+
+               Eina_Bool r = elm_layout_file_set(layout, EDJ_FILE, "dialoguegroup/datetime");
+               c_retvm_if(!r, NULL, "r is null");
+
+               evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+               datetime = elm_datetime_add(layout);
+               c_retvm_if(!datetime, NULL, "datetime is null");
+
+               elm_object_part_text_set(layout, "elm.text", title);
+               elm_object_part_content_set(layout, "elm.icon", datetime);
+
+               elm_datetime_field_limit_set(datetime, ELM_DATETIME_YEAR, 70, 136);
+               if (tm)
+                       elm_datetime_value_set(datetime, tm);
+
+               return layout;
+
+       }
+       else {
+               datetime = elm_datetime_add(parent);
+               c_retvm_if(!datetime, NULL, "datetime is null");
+
+               evas_object_size_hint_weight_set(datetime, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+               elm_datetime_field_limit_set(datetime, ELM_DATETIME_YEAR, 70, 136);
+               if (tm)
+                       elm_datetime_value_set(datetime, tm);
+
+               return datetime;
+       }
+}
+
+void cal_util_get_week_number_text(const struct tm* tm, char *buffer, int buffer_size)
+{
+       c_retm_if(!tm, "tm is null");
+       c_retm_if(!buffer, "buffer is null");
+
+       __cal_util_get_time_text_from_format(CAL_UTIL_DATE_FORMAT_16, NULL ,tm, buffer, buffer_size);
+}
+
+int cal_util_get_distance(Evas_Coord_Point *s, Evas_Coord_Point *e)
+{
+       c_retvm_if(!s, -1, "s is null");
+       c_retvm_if(!e, -1, "e is null");
+
+       return (Evas_Coord)sqrt((s->x - e->x) * (s->x - e->x)
+               + (s->y - e->y) * (s->y - e->y));
+}
+
+static Eina_Bool __cal_util_hide_small_information_by_timer(void *user_data)
+{
+       c_retv_if(!user_data, ECORE_CALLBACK_CANCEL);
+
+       cal_util_hide_small_information((Evas_Object *)user_data);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void cal_util_show_small_information(Evas_Object *layout, const char *message, double timeout)
+{
+       c_ret_if(!layout);
+       c_ret_if(!CAL_STRLEN(message));
+
+       Evas_Object *small_information = elm_object_part_content_get(layout, "sel.swallow.contents");
+
+       if (!small_information) {
+
+               small_information = elm_layout_add(layout);
+               c_ret_if(!small_information);
+
+               elm_object_part_content_set(layout, "sel.swallow.contents", small_information);
+               evas_object_size_hint_weight_set(small_information, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(small_information, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               Eina_Bool ret = elm_layout_theme_set(small_information, "standard", "selectioninfo", "center_text");
+               c_warn_if(!ret, "elm_layout_theme_set() is failed.");
+
+               evas_object_show(small_information);
+       }
+
+       elm_object_part_text_set(small_information, "elm.text", message);
+
+       elm_object_signal_emit(layout, "show,selection,info", "elm");
+
+       if (0 < timeout) {
+               Ecore_Timer *timer = ecore_timer_add(timeout, __cal_util_hide_small_information_by_timer, layout);
+               c_warn_if(!timer, "ecore_timer_add() is failed.");
+       }
+}
+
+void cal_util_hide_small_information(Evas_Object *layout)
+{
+       c_ret_if(!layout);
+
+       elm_object_signal_emit(layout, "hide,selection,info", "elm");
+}
+
+Evas_Object * cal_util_add_toolbar_button(Evas_Object *naviframe, const char *part, const char *text, Evas_Smart_Cb func, void *data)
+{
+       c_retv_if(!naviframe, NULL);
+       c_retv_if(!CAL_STRLEN(part), NULL);
+
+       Evas_Object *button = elm_button_add(naviframe);
+       c_retv_if(!button, NULL);
+
+       elm_object_style_set(button, "naviframe/toolbar/default");
+
+       if (CAL_STRLEN(text))
+               elm_object_text_set(button, text);
+
+       evas_object_smart_callback_add(button, "clicked", func, data);
+
+       Elm_Object_Item *navi_item = elm_naviframe_top_item_get(naviframe);
+       c_retv_if(!navi_item, NULL);
+
+       elm_object_item_part_content_set(navi_item, part, button);
+
+       return button;
+}
+
+Evas_Object * cal_util_add_toolbar_button2(Evas_Object* naviframe, const char* part, const char* filename, Evas_Smart_Cb func, void* data)
+{
+       c_retv_if(!naviframe, NULL);
+       c_retv_if(!CAL_STRLEN(part), NULL);
+
+       Evas_Object* button = elm_button_add(naviframe);
+       c_retv_if(!button, NULL);
+
+       elm_object_style_set(button, "naviframe/title_icon");
+
+       Evas_Object* icon = elm_icon_add(naviframe);
+       elm_icon_file_set(icon, CAL_IMAGES_EDJ, filename);
+
+       evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+       elm_icon_resizable_set(icon, EINA_TRUE, EINA_TRUE);
+
+       elm_object_part_content_set(button, "icon", icon);
+
+       evas_object_smart_callback_add(button, "clicked", func, data);
+
+       Elm_Object_Item *navi_item = elm_naviframe_top_item_get(naviframe);
+       c_retv_if(!navi_item, NULL);
+
+       elm_object_item_part_content_set(navi_item, part, button);
+
+       return button;
+}
+
+int cal_util_get_default_first_day_of_week()
+{
+       UErrorCode status = U_ZERO_ERROR;
+       UChar utf16_timezone[64] = {0};
+
+       char *locale = vconf_get_str(VCONFKEY_REGIONFORMAT);
+
+       if (CAL_STRLEN(locale)) {
+               uloc_setDefault(locale, &status);
+               free(locale);
+       }
+
+       u_uastrncpy(utf16_timezone, _timezone, sizeof(_timezone));
+
+       UCalendar *cal = ucal_open(utf16_timezone, u_strlen(utf16_timezone), uloc_getDefault(), UCAL_TRADITIONAL, &status);
+       c_retvm_if(!cal, -1, "cal is null");
+
+       int first_day_of_week = 0;
+
+       first_day_of_week = ucal_getAttribute(cal, UCAL_FIRST_DAY_OF_WEEK);
+
+       ucal_close(cal);
+
+       return first_day_of_week;
+}
diff --git a/common/util.c b/common/util.c
new file mode 100755 (executable)
index 0000000..cb24420
--- /dev/null
@@ -0,0 +1,661 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#define _GNU_SOURCE
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <vconf.h>
+#include <fcntl.h>
+#include <string.h>
+#include <media_content.h>
+#include <sqlite3.h>
+
+#include "cld.h"
+
+#define LINEMAX 256
+#define LOGFILE "/tmp/calendar.log"
+#define SIN_TBL_S (sizeof(SIN_TBL)/sizeof(SIN_TBL[0]) - 1)
+#define WORLDCLOCK_DB "/opt/dbspace/.worldclock.db"
+
+static time_t cal_max;
+static time_t cal_min;
+
+static const float const SIN_TBL[] = {
+       0.0000f, 0.0174f, 0.0349f, 0.0523f, 0.0698f,
+       0.0872f, 0.1045f, 0.1219f, 0.1392f, 0.1564f,
+       0.1736f, 0.1908f, 0.2079f, 0.2249f, 0.2419f,
+       0.2588f, 0.2756f, 0.2924f, 0.3090f, 0.3256f,
+       0.3420f, 0.3584f, 0.3746f, 0.3907f, 0.4067f,
+       0.4226f, 0.4384f, 0.4540f, 0.4695f, 0.4848f,
+       0.5000f, 0.5150f, 0.5299f, 0.5446f, 0.5592f,
+       0.5736f, 0.5878f, 0.6018f, 0.6157f, 0.6293f,
+       0.6528f, 0.6561f, 0.6691f, 0.6820f, 0.6947f,
+       0.7071f, 0.7193f, 0.7314f, 0.7431f, 0.7547f,
+       0.7660f, 0.7772f, 0.7880f, 0.7986f, 0.8090f,
+       0.8191f, 0.8290f, 0.8387f, 0.8480f, 0.8571f,
+       0.8660f, 0.8746f, 0.8829f, 0.8910f, 0.8988f,
+       0.9063f, 0.9135f, 0.9205f, 0.9272f, 0.9336f,
+       0.9397f, 0.9455f, 0.9511f, 0.9563f, 0.9613f,
+       0.9659f, 0.9703f, 0.9744f, 0.9781f, 0.9816f,
+       0.9848f, 0.9877f, 0.9903f, 0.9926f, 0.9945f,
+       0.9962f, 0.9976f, 0.9986f, 0.9994f, 0.9998f,
+       1.0f
+};
+
+
+static int __cal_util_max_days[2][12] = {
+       { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
+       { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+};
+int cal_util_get_max_days(int tm_year, int tm_mon)
+{
+       while (tm_mon < 0) {
+               tm_year -= 1;
+               tm_mon += 12;
+       }
+
+       while (tm_mon > 11) {
+               tm_year += 1;
+               tm_mon -= 12;
+       }
+
+       tm_year = tm_year + 1900;
+
+       return __cal_util_max_days[(!(tm_year & 0x3) && (!(tm_year % 400)
+                               || (tm_year % 100)))][tm_mon];
+}
+
+static int __cal_util_get_cal_min(void)
+{
+       struct tm tm;
+       time_t t;
+
+       if (cal_min)
+               return cal_min;
+
+       t = time(NULL);
+       localtime_r(&t, &tm);
+
+       // 1970-1-1 00:00:00
+       tm.tm_year = 70;
+       tm.tm_mon = 0;
+       tm.tm_mday = 1;
+       tm.tm_hour = 0;
+       tm.tm_min = 0;
+       tm.tm_sec = 0;
+
+       cal_min = mktime(&tm);
+       if(cal_min == -1)
+               cal_min = 0;
+       c_retv_if(!cal_min, -1);
+
+       return cal_min;
+}
+
+static int __cal_util_get_cal_max(void)
+{
+       struct tm tm;
+       time_t t;
+
+       if (cal_max)
+               return cal_max;
+
+       t = time(NULL);
+       localtime_r(&t, &tm);
+
+       // 2036-12-31 23:59:59
+       tm.tm_year = 136;
+       tm.tm_mon = 11;
+       tm.tm_mday = 31;
+       tm.tm_hour = 23;
+       tm.tm_min = 59;
+       tm.tm_sec = 59;
+
+       cal_max = mktime(&tm);
+       if(cal_max == -1)
+               cal_max = 0;
+       CAL_ASSERT(cal_max);
+
+       return cal_max;
+}
+
+time_t cal_util_get_max_time(void)
+{
+       return __cal_util_get_cal_max();
+}
+
+time_t cal_util_get_min_time(void)
+{
+       return __cal_util_get_cal_min();
+}
+
+time_t cal_util_update_tm_year(struct tm *t, int delta)
+{
+       time_t r;
+       struct tm tmp;
+
+       tmp = *t;
+
+       tmp.tm_year += delta;
+       if (tmp.tm_mon == 1 && tmp.tm_mday == 29)
+               tmp.tm_mday = cal_util_get_max_days(tmp.tm_year, tmp.tm_mon);
+
+       r = mktime(&tmp);
+       if (r == (time_t)-1)
+               return -1;
+
+       if (r < __cal_util_get_cal_min() || r > __cal_util_get_cal_max())
+               return -1;
+
+       *t = tmp;
+       return r;
+}
+
+time_t cal_util_update_tm_month(struct tm *t, int delta)
+{
+       time_t r;
+       int max;
+       struct tm tmp;
+
+       tmp = *t;
+       tmp.tm_mon += delta;
+
+       while (tmp.tm_mon < 0) {
+               tmp.tm_year -= 1;
+               tmp.tm_mon += 12;
+       }
+
+       while (tmp.tm_mon > 11) {
+               tmp.tm_year += 1;
+               tmp.tm_mon -= 12;
+       }
+
+       max = cal_util_get_max_days(tmp.tm_year, tmp.tm_mon);
+       if (max < tmp.tm_mday)
+               tmp.tm_mday = max;
+
+       r = mktime(&tmp);
+       if (r == (time_t)-1)
+               return -1;
+
+       if (r < __cal_util_get_cal_min() || r > __cal_util_get_cal_max())
+               return -1;
+
+       *t = tmp;
+       return r;
+}
+
+time_t cal_util_update_tm_day(struct tm *t, int delta)
+{
+       time_t r;
+       struct tm tmp;
+
+       tmp = *t;
+       tmp.tm_mday += delta;
+
+       r = mktime(&tmp);
+       if (r == (time_t)-1)
+               return -1;
+
+       if (r < __cal_util_get_cal_min() || r > __cal_util_get_cal_max())
+               return -1;
+
+       *t = tmp;
+       return r;
+}
+
+time_t cal_util_update_tm_hour(struct tm* tm, int delta)
+{
+       struct tm t;
+       struct tm* returned_tm = NULL;
+       time_t time = 0;
+
+       time = mktime(tm);
+       time = time + (delta * 60*60);
+
+       returned_tm = localtime_r(&time, &t);
+       if(!returned_tm)
+       {
+               ERR("localtime is failed.");
+               return -1;
+       }
+       CAL_MEMCPY(tm, &t, struct tm);
+
+       return time;
+}
+
+int cal_util_get_day_time_t(struct tm *t, time_t *st, time_t *et)
+{
+       c_retvm_if(!t, -1 , "t is null");
+       c_retvm_if(!st, -1 , "st is null");
+       c_retvm_if(!et, -1 , "et is null");
+
+       time_t _t;
+       struct tm tm = *t;
+
+       tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+
+       _t = mktime(&tm);
+       if (_t == (time_t) -1)
+               return -1;
+
+       *st = _t;
+       *et = _t + (24 * 60 * 60) - 1;
+
+       return 0;
+}
+
+int cal_util_get_week_time_t(struct tm *t, time_t *st, time_t *et, int start)
+{
+       c_retvm_if(!t, -1 , "t is null");
+       c_retvm_if(!st, -1 , "st is null");
+       c_retvm_if(!et, -1 , "et is null");
+
+       time_t _t;
+       struct tm tm = *t;
+
+       tm.tm_mday -= CAL_UTIL_GET_WDAY(tm.tm_wday - start);
+
+       tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+
+       _t = mktime(&tm);
+       if (_t == (time_t) -1)
+               return -1;
+
+       *st = _t;
+       *et = _t + (7 * 24 * 60 * 60) - 1;
+
+       return 0;
+}
+
+int cal_util_get_month_time_t(struct tm *t, time_t *st, time_t *et)
+{
+       c_retvm_if(!t, -1 , "t is null");
+       c_retvm_if(!st, -1 , "st is null");
+       c_retvm_if(!et, -1 , "et is null");
+
+       time_t s, e;
+       struct tm tm = *t;
+
+       tm.tm_mday = 1;
+       tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+
+       s = mktime(&tm);
+       if (s == (time_t) -1)
+               return -1;
+
+       tm.tm_mon++;
+       e = mktime(&tm);
+       if (e == (time_t) -1)
+               return -1;
+
+       *st = s;
+       *et = e - 3600;
+       return 0;
+}
+
+int cal_util_get_year_time_t(struct tm *t, time_t *st, time_t *et)
+{
+       c_retvm_if(!t, -1 , "t is null");
+       c_retvm_if(!st, -1 , "st is null");
+       c_retvm_if(!et, -1 , "et is null");
+
+       time_t s, e;
+       struct tm tm = *t;
+
+       tm.tm_mon = 0;
+       tm.tm_mday = 1;
+       tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+
+       s = mktime(&tm);
+       if (s == (time_t) -1)
+               return -1;
+
+       tm.tm_year++;
+       e = mktime(&tm);
+       if (e == (time_t) -1)
+               return -1;
+
+       *st = s;
+       *et = e - 1;
+
+       return 0;
+}
+
+void cal_svc_get_start_date(calendar_record_h record, struct tm* start_date)
+{
+       calendar_time_s start_time;
+       _calendar_get_start_time(record, &start_time);
+       if (_calendar_is_allday_record(record)) {
+               start_date->tm_year = start_time.time.date.year - 1900;
+               start_date->tm_mon = start_time.time.date.month - 1;
+               start_date->tm_mday = start_time.time.date.mday;
+       } else {
+               cal_util_convert_lli_to_tm(NULL, start_time.time.utime, start_date);
+       }
+}
+
+void cal_svc_get_end_date(calendar_record_h record, struct tm* end_date)
+{
+       calendar_time_s end_time;
+       _calendar_get_end_time(record, &end_time);
+       if (_calendar_is_allday_record(record)) {
+               end_date->tm_year = end_time.time.date.year - 1900;
+               end_date->tm_mon = end_time.time.date.month - 1;
+               end_date->tm_mday = end_time.time.date.mday;
+       } else {
+               cal_util_convert_lli_to_tm(NULL, end_time.time.utime, end_date);
+       }
+}
+
+inline void cal_util_set_time(struct tm* time, int hour, int min, int sec)
+{
+       time->tm_hour = hour;
+       time->tm_min = min;
+       time->tm_sec = sec;
+}
+
+time_t cal_util_get_month_start_time(const struct tm* subject_date, struct tm* month_start_time)
+{
+       *month_start_time = *subject_date;
+       month_start_time->tm_mday = 1;
+       cal_util_set_time(month_start_time, 0, 0, 0);
+       return mktime(month_start_time);        // normalize (fix broken wday and yday) & export time_t conversion
+}
+
+time_t cal_util_get_month_end_time(const struct tm* subject_date, struct tm* month_end_time)
+{
+       *month_end_time = *subject_date;
+       month_end_time->tm_mday = 1;
+       cal_util_set_time(month_end_time, 23, 59, 59);
+       cal_util_update_tm_month(month_end_time, 1);
+       return cal_util_update_tm_day(month_end_time, -1);
+}
+
+static int __cal_util_get_wday_norm(int wday)
+{
+       if (wday > 6)
+               return wday - 7;
+
+       if (wday < 0)
+               return wday + 7;
+
+       return wday;
+}
+
+time_t cal_util_get_week_start_time(const struct tm* subject_date, struct tm* week_start_time,
+                                                                       int start_wday)
+{
+       *week_start_time = *subject_date;
+       cal_util_set_time(week_start_time, 0, 0, 0);
+
+       int diff = week_start_time->tm_wday - start_wday;
+       if (diff < 0)
+               diff += 7;
+
+       return cal_util_update_tm_day(week_start_time, -diff);
+}
+
+time_t cal_util_get_week_end_time(const struct tm* subject_date, struct tm* week_end_time,
+                                                                 int start_wday)
+{
+       *week_end_time = *subject_date;
+       cal_util_set_time(week_end_time, 23, 59, 59);
+
+       int end_wday = __cal_util_get_wday_norm(start_wday + 6);
+
+       int diff = end_wday - week_end_time->tm_wday;
+       if (diff < 0)
+               diff += 7;
+
+       return cal_util_update_tm_day(week_end_time, diff);
+}
+
+int cal_util_get_day_diff(const struct tm* date1, const struct tm* date2)
+{
+       struct tm d1 = *date1;
+       struct tm d2 = *date2;
+       cal_util_set_time(&d1, 0, 0, 0);
+       cal_util_set_time(&d2, 0, 0, 0);
+       time_t time1 = mktime(&d1);
+       time_t time2 = mktime(&d2);
+       return (time1 - time2) / (24 * 60 * 60);        // todo: a day is not always 24 * 60 * 60 seconds!
+}
+
+static inline int __cal_util_get_day_val(const struct tm* day)
+{
+       return (day->tm_year << 9) | (day->tm_mon << 5) | day->tm_mday;
+}
+
+int cal_util_compare_day(const struct tm* date1, const struct tm* date2)
+{
+       int diff = __cal_util_get_day_val(date2) - __cal_util_get_day_val(date1);
+
+       if (diff > 0)
+               return 1;
+       else if (diff < 0)
+               return -1;
+       else
+               return 0;
+}
+
+const char* cal_util_print_day(const struct tm* day)
+{
+       static char buffer[50];
+       sprintf(buffer, "%d/%d/%d", day->tm_year + 1900, day->tm_mon + 1, day->tm_mday);
+       return buffer;
+}
+
+float cal_util_nsin(float f)
+{
+       if(f < 0.0 && f > 1.0)
+               return 0.0;
+
+       return SIN_TBL[(int)(SIN_TBL_S * f)];
+}
+
+int cal_util_get_week_flag(char *week_s)
+{
+       int i;
+       int flag;
+
+       flag = 0;
+       if (6 < CAL_STRLEN(week_s)) {
+               for (i = 0; i < 7; i++) {
+                       if (week_s[i] == '1')
+                               flag |= (1 << i);
+               }
+       }
+
+       return flag;
+}
+
+static void __cal_util_get_timezone_id(char **timezone_id)
+{
+       c_ret_if(!timezone_id);
+
+       int value = 0;
+
+       int ret = vconf_get_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, &value);
+       c_warn_if(ret, "vconf_get_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, &value) is failed");
+
+       char *text = NULL;
+
+       if (value) {
+               text = vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH);
+               c_retm_if(!text, "vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH) is failed");
+       } else {
+               text = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
+               c_retm_if(!text, "vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID) is failed");
+       }
+
+       *timezone_id = text;
+
+       c_warn_if(!CAL_STRLEN(text), "timezone_id is empty str");
+}
+
+void cal_util_get_timezone_id(int timezone_offset, char **timezone_id)
+{
+       CAL_FN_START;
+
+       c_ret_if(!timezone_id);
+
+       sqlite3 *db_handler = NULL;
+       sqlite3_stmt *stmt = NULL;
+       char *error_message = NULL;
+       int ret = 0;
+
+       if (!db_handler) {
+               ret = sqlite3_open( WORLDCLOCK_DB, &db_handler);
+               c_retm_if(ret, "sqlite3_open() is failed(%d) : %s", ret, sqlite3_errmsg(db_handler));
+       }
+
+       char offset_hour[8];
+       int minutes_for_1_hour = 60;
+       int timezone_offset_hour = timezone_offset/minutes_for_1_hour;
+       int timezone_offset_minute = timezone_offset%minutes_for_1_hour;
+
+       if (0 <= timezone_offset_hour)
+               snprintf(offset_hour, 8, "+%d", timezone_offset_hour);
+       else
+               snprintf(offset_hour, 8, "%d", timezone_offset_hour);
+
+       char offset[16];
+       if (timezone_offset_minute)
+               snprintf(offset, 16, "GMT%s:%d", offset_hour, timezone_offset_minute);
+       else
+               snprintf(offset, 16, "GMT%s", offset_hour);
+
+       char query[256];
+       snprintf(query, 256, "SELECT tz_path FROM city_table where timezone=\"%s\" limit 1", offset);
+
+       ret = sqlite3_prepare_v2(db_handler, query, strlen(query), &stmt, NULL);
+       c_retm_if(ret, "sqlite3_prepare_v2(%s) failed(%d) : %s.", query, ret, sqlite3_errmsg(db_handler));
+
+       ret = sqlite3_step(stmt);
+       c_retm_if(ret != SQLITE_ROW
+               && ret != SQLITE_OK
+               && ret != SQLITE_DONE, "sqlite3_step is failed(%d) : %s", ret, sqlite3_errmsg(db_handler));
+
+       *timezone_id = CAL_STRDUP((char *)sqlite3_column_text(stmt, 0));
+
+       ret = sqlite3_finalize(stmt);
+       c_retm_if(ret, "sqlite3_finalize is failed(%d) : %s", ret, sqlite3_errmsg(db_handler));
+
+       sqlite3_free(error_message);
+
+       ret = sqlite3_close(db_handler);
+       c_retm_if(ret, "sqlite3_close is failed(%d) : %s", ret, sqlite3_errmsg(db_handler));
+}
+
+void cal_util_get_timezone(char **timezone_id, char **timezone_city, char **timezone_offset)
+{
+       CAL_FN_START;
+
+       c_ret_if(!timezone_id);
+       c_ret_if(!timezone_city);
+       c_ret_if(!timezone_offset);
+
+       sqlite3 *db_handler = NULL;
+       sqlite3_stmt *stmt = NULL;
+       char *error_message = NULL;
+       int ret = 0;
+
+       if (!db_handler) {
+               ret = sqlite3_open( WORLDCLOCK_DB, &db_handler);
+               c_retm_if(ret, "sqlite3_open() is failed(%d) : %s", ret, sqlite3_errmsg(db_handler));
+       }
+
+       if (!*timezone_id)
+               __cal_util_get_timezone_id(timezone_id);
+
+       char query[256];
+       snprintf(query, 256, "SELECT city, timezone FROM city_table where tz_path=\"%s\"", *timezone_id);
+
+       ret = sqlite3_prepare_v2(db_handler, query, strlen(query), &stmt, NULL);
+       c_retm_if(ret, "sqlite3_prepare_v2(%s) failed(%d) : %s.", query, ret, sqlite3_errmsg(db_handler));
+
+       ret = sqlite3_step(stmt);
+       c_retm_if(ret != SQLITE_ROW
+               && ret != SQLITE_OK
+               && ret != SQLITE_DONE, "sqlite3_step is failed(%d) : %s", ret, sqlite3_errmsg(db_handler));
+
+       *timezone_city = CAL_STRDUP((char *)sqlite3_column_text(stmt, 0));
+       *timezone_offset = CAL_STRDUP((char *)sqlite3_column_text(stmt, 1));
+
+       ret = sqlite3_finalize(stmt);
+       c_retm_if(ret, "sqlite3_finalize is failed(%d) : %s", ret, sqlite3_errmsg(db_handler));
+
+       sqlite3_free(error_message);
+
+       ret = sqlite3_close(db_handler);
+       c_retm_if(ret, "sqlite3_close is failed(%d) : %s", ret, sqlite3_errmsg(db_handler));
+}
+
+char *cal_util_get_search_color_text( const char *search_str, const char *input_str)
+{
+       c_retv_if(!CAL_STRLEN(search_str), NULL);
+       c_retv_if(!CAL_STRLEN(input_str), NULL);
+
+       char *color_str = NULL;
+       const char *color_start_str = "<match>";
+       const char *color_end_str = "</>";
+       char* sub_str = NULL;
+
+       int color_start_str_sz = CAL_STRLEN(color_start_str);
+       int color_end_str_sz = CAL_STRLEN(color_end_str);
+       int input_str_sz = CAL_STRLEN(input_str);
+       int search_str_sz = CAL_STRLEN(search_str);
+
+       sub_str= strcasestr(input_str, search_str);
+       int sub_str_sz = CAL_STRLEN(sub_str);
+
+       c_retv_if(!sub_str_sz, NULL);
+
+       color_str = calloc(1, color_start_str_sz+color_end_str_sz+input_str_sz+1);
+       c_retv_if(!color_str, NULL);
+
+       int head_str_sz = sub_str - input_str;
+
+       CAL_STRNCPY(color_str, input_str, head_str_sz);
+       CAL_STRNCPY(color_str + head_str_sz, color_start_str, color_start_str_sz);
+       CAL_STRNCPY(color_str + head_str_sz + color_start_str_sz, sub_str, search_str_sz);
+       CAL_STRNCPY(color_str + head_str_sz + color_start_str_sz + search_str_sz, color_end_str, color_end_str_sz);
+       CAL_STRNCPY(color_str + head_str_sz + color_start_str_sz + search_str_sz + color_end_str_sz, sub_str + search_str_sz, sub_str_sz - search_str_sz);
+
+       return color_str;
+}
+
+void cal_util_update_media_db(const char *file_path)
+{
+       c_ret_if(!CAL_STRLEN(file_path));
+
+       int error = media_content_connect();
+       c_warn_if(error != MEDIA_CONTENT_ERROR_NONE, "media_content_connect() is failed(%x)", error);
+
+       error = media_content_scan_file(file_path);
+       c_warn_if(error != MEDIA_CONTENT_ERROR_NONE, "media_content_scan_file(%s) is failed(%x)", file_path, error);
+
+       error = media_content_disconnect();
+       c_warn_if(error != MEDIA_CONTENT_ERROR_NONE, "media_content_disconnect() is failed(%x)", error);
+}
+
+int cal_util_get_flick_distance_threshold()
+{
+       return 40;
+}
diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..39c3d32
--- /dev/null
@@ -0,0 +1,3 @@
+SET(IMAGE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/images/${SELECTED_TARGET}")
+
+ADD_SUBDIRECTORY(edc)
diff --git a/data/edc/CMakeLists.txt b/data/edc/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..8c92e18
--- /dev/null
@@ -0,0 +1,101 @@
+SET(INC_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/inc)
+SET(LAYOUT_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/layout)
+SET(THEME_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/theme)
+SET(THEME2_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/theme2)
+SET(THEME3_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/theme3)
+SET(GENLIST_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/genlist)
+
+ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj
+       COMMAND edje_cc -id ${IMAGE_DIR}
+       ${LAYOUT_SRC_DIR}/${PROJECT_NAME}.edc
+       ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj
+       DEPENDS
+       ${INC_SRC_DIR}/${PROJECT_NAME}-inc.edc
+       ${LAYOUT_SRC_DIR}/${PROJECT_NAME}.edc
+       ${LAYOUT_SRC_DIR}/inc.edit.edc
+       ${LAYOUT_SRC_DIR}/inc.layouts.edc
+       ${LAYOUT_SRC_DIR}/inc.main.day.edc
+       ${LAYOUT_SRC_DIR}/inc.main.day.tb.edc
+       ${LAYOUT_SRC_DIR}/inc.main.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.cal.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.cal.weekly.edc
+       ${LAYOUT_SRC_DIR}/inc.main.month.weekly.edc
+       ${LAYOUT_SRC_DIR}/inc.main.week.edc
+       ${LAYOUT_SRC_DIR}/inc.main.year.cal.edc
+       ${LAYOUT_SRC_DIR}/inc.main.year.edc
+)
+ADD_CUSTOM_TARGET(edj_build-hd DEPENDS ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} edj_build-hd)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.edj DESTINATION ${EDJDIR})
+
+ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/theme.edj
+       COMMAND edje_cc -id ${IMAGE_DIR}
+        ${THEME_SRC_DIR}/theme.edc
+        ${CMAKE_BINARY_DIR}/theme.edj
+        DEPENDS
+        ${INC_SRC_DIR}/theme-inc.edc
+        ${THEME_SRC_DIR}/theme.edc
+       ${THEME_SRC_DIR}/genlist.edc
+)
+ADD_CUSTOM_TARGET(theme_edj DEPENDS ${CMAKE_BINARY_DIR}/theme.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} theme_edj)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/theme.edj DESTINATION ${EDJDIR})
+
+ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/theme2.edj
+       COMMAND edje_cc -id ${IMAGE_DIR}
+        ${THEME2_SRC_DIR}/theme2.edc
+        ${CMAKE_BINARY_DIR}/theme2.edj
+        DEPENDS
+        ${INC_SRC_DIR}/theme-inc.edc
+        ${THEME2_SRC_DIR}/theme2.edc
+       ${THEME2_SRC_DIR}/genlist.edc
+
+)
+ADD_CUSTOM_TARGET(theme2_edj DEPENDS ${CMAKE_BINARY_DIR}/theme2.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} theme2_edj)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/theme2.edj DESTINATION ${EDJDIR})
+
+ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/theme3.edj
+       COMMAND edje_cc -id ${IMAGE_DIR}
+        ${THEME3_SRC_DIR}/theme3.edc
+        ${CMAKE_BINARY_DIR}/theme3.edj
+        DEPENDS
+        ${INC_SRC_DIR}/theme-inc.edc
+        ${THEME3_SRC_DIR}/theme3.edc
+       ${THEME3_SRC_DIR}/gengrid.edc
+       ${THEME3_SRC_DIR}/button.edc
+
+)
+ADD_CUSTOM_TARGET(theme3_edj DEPENDS ${CMAKE_BINARY_DIR}/theme3.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} theme3_edj)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/theme3.edj DESTINATION ${EDJDIR})
+
+IF(_TIZEN_PUBLIC_ EQUAL 0)
+
+ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/dialogue.edj
+       COMMAND edje_cc -id ${IMAGE_DIR}
+        ${THEME2_SRC_DIR}/dialogue.edc
+        ${CMAKE_BINARY_DIR}/dialogue.edj
+        DEPENDS
+        ${INC_SRC_DIR}/theme-inc.edc
+        ${THEME2_SRC_DIR}/dialogue.edc
+)
+ADD_CUSTOM_TARGET(dialogue_edj DEPENDS ${CMAKE_BINARY_DIR}/dialogue.edj)
+ADD_DEPENDENCIES(${PROJECT_NAME} dialogue_edj)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/dialogue.edj DESTINATION ${EDJDIR})
+
+ENDIF()
+
+# Image
+ADD_CUSTOM_TARGET(${PROJECT_NAME}-images.edj
+       COMMAND edje_cc -id ${CMAKE_SOURCE_DIR}/data/edc/images
+       ${CMAKE_SOURCE_DIR}/data/edc/images/image_macro.edc ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-images.edj
+       DEPENDS ${CMAKE_SOURCE_DIR}/data/edc/images/image_macro.edc)
+
+ADD_DEPENDENCIES(${PROJECT_NAME} ${PROJECT_NAME}-images.edj)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-images.edj DESTINATION ${EDJDIR})
+
+# Icon
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/data/edc/images/${PKGNAME}.png DESTINATION /usr/share/icons/default/small)
+
diff --git a/data/edc/images/00_title_icon_search.png b/data/edc/images/00_title_icon_search.png
new file mode 100755 (executable)
index 0000000..ff46fa3
Binary files /dev/null and b/data/edc/images/00_title_icon_search.png differ
diff --git a/data/edc/images/P01_Task_event.png b/data/edc/images/P01_Task_event.png
new file mode 100755 (executable)
index 0000000..abdbdff
Binary files /dev/null and b/data/edc/images/P01_Task_event.png differ
diff --git a/data/edc/images/P01_Task_event_completion.png b/data/edc/images/P01_Task_event_completion.png
new file mode 100755 (executable)
index 0000000..97b2c09
Binary files /dev/null and b/data/edc/images/P01_Task_event_completion.png differ
diff --git a/data/edc/images/P01_Task_event_completion_press.png b/data/edc/images/P01_Task_event_completion_press.png
new file mode 100755 (executable)
index 0000000..8067f84
Binary files /dev/null and b/data/edc/images/P01_Task_event_completion_press.png differ
diff --git a/data/edc/images/P01_change_view.png b/data/edc/images/P01_change_view.png
new file mode 100755 (executable)
index 0000000..115aebe
Binary files /dev/null and b/data/edc/images/P01_change_view.png differ
diff --git a/data/edc/images/P01_event_list_icon_alarm.png b/data/edc/images/P01_event_list_icon_alarm.png
new file mode 100755 (executable)
index 0000000..be6a07e
Binary files /dev/null and b/data/edc/images/P01_event_list_icon_alarm.png differ
diff --git a/data/edc/images/P01_event_list_icon_facebook.png b/data/edc/images/P01_event_list_icon_facebook.png
new file mode 100755 (executable)
index 0000000..99a6c81
Binary files /dev/null and b/data/edc/images/P01_event_list_icon_facebook.png differ
diff --git a/data/edc/images/P01_event_list_icon_reapeat.png b/data/edc/images/P01_event_list_icon_reapeat.png
new file mode 100755 (executable)
index 0000000..7690555
Binary files /dev/null and b/data/edc/images/P01_event_list_icon_reapeat.png differ
diff --git a/data/edc/images/P01_event_list_icon_reminder.png b/data/edc/images/P01_event_list_icon_reminder.png
new file mode 100755 (executable)
index 0000000..c6b2f79
Binary files /dev/null and b/data/edc/images/P01_event_list_icon_reminder.png differ
diff --git a/data/edc/images/P01_list_icon_priority.png b/data/edc/images/P01_list_icon_priority.png
new file mode 100644 (file)
index 0000000..60dcbe7
Binary files /dev/null and b/data/edc/images/P01_list_icon_priority.png differ
diff --git a/data/edc/images/P01_list_icon_priority_low.png b/data/edc/images/P01_list_icon_priority_low.png
new file mode 100644 (file)
index 0000000..5cd921e
Binary files /dev/null and b/data/edc/images/P01_list_icon_priority_low.png differ
diff --git a/data/edc/images/P01_today.png b/data/edc/images/P01_today.png
new file mode 100755 (executable)
index 0000000..3b47936
Binary files /dev/null and b/data/edc/images/P01_today.png differ
diff --git a/data/edc/images/all_calendar.png b/data/edc/images/all_calendar.png
new file mode 100644 (file)
index 0000000..a89d387
Binary files /dev/null and b/data/edc/images/all_calendar.png differ
diff --git a/data/edc/images/caller_ID_default.png b/data/edc/images/caller_ID_default.png
new file mode 100644 (file)
index 0000000..271c3bf
Binary files /dev/null and b/data/edc/images/caller_ID_default.png differ
diff --git a/data/edc/images/com.samsung.calendar.png b/data/edc/images/com.samsung.calendar.png
new file mode 100755 (executable)
index 0000000..7202b0c
Binary files /dev/null and b/data/edc/images/com.samsung.calendar.png differ
diff --git a/data/edc/images/detail_view_lock_timezone.png b/data/edc/images/detail_view_lock_timezone.png
new file mode 100755 (executable)
index 0000000..67e4341
Binary files /dev/null and b/data/edc/images/detail_view_lock_timezone.png differ
diff --git a/data/edc/images/image_macro.edc b/data/edc/images/image_macro.edc
new file mode 100755 (executable)
index 0000000..0af5329
--- /dev/null
@@ -0,0 +1,56 @@
+#define RESOURCE_IMAGE( FILE_NAME ) \
+       group { \
+               name: FILE_NAME; \
+               images.image: FILE_NAME COMP; \
+               parts { \
+                       part { name: "image"; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       image.normal: FILE_NAME; \
+                                       aspect: 1 1; \
+                                       aspect_preference: BOTH; \
+                               } \
+                       } \
+               } \
+       }
+
+#define RESOURCE_IMAGE_LOSSY( FILE_NAME ) \
+       group { \
+               name: FILE_NAME; \
+               images.image: FILE_NAME LOSSY 85; \
+               parts { \
+                       part { name: "image"; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       image.normal: FILE_NAME; \
+                                       aspect: 1 1; \
+                                       aspect_preference: BOTH; \
+                               } \
+                       } \
+               } \
+       }
+
+collections {
+
+RESOURCE_IMAGE("all_calendar.png");
+RESOURCE_IMAGE("detail_view_lock_timezone.png");
+
+RESOURCE_IMAGE("P01_change_view.png");
+RESOURCE_IMAGE("P01_today.png");
+
+RESOURCE_IMAGE("00_title_icon_search.png");
+
+RESOURCE_IMAGE("P01_event_list_icon_alarm.png");
+RESOURCE_IMAGE("P01_event_list_icon_reapeat.png");
+RESOURCE_IMAGE("P01_event_list_icon_reminder.png");
+RESOURCE_IMAGE("P01_event_list_icon_facebook.png");
+
+RESOURCE_IMAGE("P01_list_icon_priority.png");
+RESOURCE_IMAGE("P01_list_icon_priority_low.png");
+RESOURCE_IMAGE("P01_Task_event_completion.png");
+RESOURCE_IMAGE("P01_Task_event_completion_press.png");
+
+RESOURCE_IMAGE("org.tizen.calendar.png");
+RESOURCE_IMAGE("caller_ID_default.png");
+
+}
diff --git a/data/edc/images/org.tizen.calendar.png b/data/edc/images/org.tizen.calendar.png
new file mode 100755 (executable)
index 0000000..53fe65b
Binary files /dev/null and b/data/edc/images/org.tizen.calendar.png differ
diff --git a/data/edc/inc/calendar-inc.edc b/data/edc/inc/calendar-inc.edc
new file mode 100755 (executable)
index 0000000..55ef4ea
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//retio defined
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define WIDTH_OF_HD (720.0*R_X)
+#define HEIGHT_OF_HD (1280.0*R_Y)
+//size
+
+#ifndef _RATIO_L_
+#define _RATIO_L_
+#define R_Y_L (480.0/720.0)
+#define R_X_L (800.0/1280.0)
+#endif
+
+#define HEIGHT_OF_HD_L (720.0*R_Y_L)
+#define WIDTH_OF_HD_L (1280.0*R_X_L)
+//color
+#define COLOR_OF_LINE_FOR_ACCT 75 75 75 255
+#define COLOR_OF_BASE_OF_SELECTOR_BUTTON_FOR_ACCT 233 233 233 255
+
+#define COLOR_OF_TOP_LINE_FOR_DAY 195 192 179 255
+
+#define COLOR_OF_BASE_OF_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_HORIZEN_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_MIDDLE_LINE_FOR_TAB 224 219 209 255
+#define COLOR_OF_VERT_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_ON_TIME_LINE_FOR_TAB 51 93 119 255
+
+#define COLOR_OF_LIST_LINE_FOR_MONTH 195 192 179 255
+
+#define COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_TODAY_FOR_MONTH_CAL 208 211 217 255
+#define COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_MORE_TEXT_FOR_MONTH_CAL 7 180 211 255
+#define COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL 195 192 179 255
+#define COLOR_OF_CHECK_BASE_FOR_MONTH_CAL 127 126 126 255
+#define COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_LINE_FOR_MONTH_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_MAIN_TAB 249 249 249 150
+#define COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB 0 0 0 255
+#define COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB 255 255 255 255
+
+#define COLOR_OF_TODAY_FOR_YEAR_CAL 255 255 255 255
+#define COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_LINE_FOR_YEAR_CAL 0 0 0 255
+
+#define COLOR_OF_TEXT_FOR_RING 255 126 0 255
+#define COLOR_OF_DEFAULT_STOP_FOR_RING 255 74 22 255
+#define COLOR_OF_DEFAULT_PRESSED_FOR_RING 255 255 255 255
+
+#define COLOR_OF_YEAR_VIEW_TODAY 183 193 210 255
+#define COLOR_OF_WEEK_ITEM_TITLE 225 227 230 255
+
+#define COLOR_OF_TITLE_BOTTOM_LINE 143 143 143 255
+
+#define COLOR_OF_WEEK_NUMBER_TEXT_FOR_MONTH_CAL 90 90 90 255
+
+#define COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL 90 90 90 255
+
+#define COLOR_OF_TODAY_FOR_WEEK_CAL 146 144 138 255
+
+#define COLOR_OF_BUTTON_PRESS 42 137 194 255
+//image
+#define DIALOG_EDIT_DEFAULT "01_dialoguegroup_edit_default.png"
+#define CALENDAR_EVENT_BG_1 "P01_day_event_bg_01.png"
+#define CALENDAR_EVENT_BG_2 "P01_day_event_bg_02.png"
+#define CALENDAR_EVENT_BG_3 "P01_day_event_bg_03.png"
+#define CALENDAR_EVENT_BG_4 "P01_day_event_bg_04.png"
+#define CALENDAR_MONTH_VIEW_BG_1 "57_calendar_month_view(1)_bg.png"
+#define CALENDAR_TAB "57_calendar_tab.png"
+#define CALENDAR_TAB_FOCUS_BG "57_calendar_tab_focus_bg.png"
+#define CALENDAR_TAB_PRESS "57_calendar_tab_press.png"
+#define CALENDAR_TODAY_ICON "P01_month view_Today.png"
+#define CALENDAR_TODAY_ICON_PRESS "57_calendar_today_icon_press.png"
+#define CALENDAR_TODAY_ICON_2 "57_calendar_today_icon2.png"
+#define CALENDAR_WEEK_ARROW_FOCUS_ICON "57_calendar_week_arrow_focus_icon.png"
+#define CALENDAR_WEEK_ARROW_ICON "57_calendar_week_arrow_icon.png"
+#define CALENDAR_WEEK_VIEW_PRESS "P01_month_view_focus_bg.png"
+#define CALENDAR_YEAR_VIEW_BG "57_calendar_year_view_bg.png"
+#define ALL_CALENDAR "all_calendar.png"
+#define CALENDAR_SELSECTED "P01_month view_day_focus.png"
+#define CONTROL_TOP_BG "P01_control_top_bg.png"
+#define CONTROL_TOP_BG_TEMP "P01_control_top_bg_tmp.png"
+#define DAY_CURRENT_TIME "P01_day_current_time.png"
+#define NOSCHEDULE "P01_noschedule.png"
+#define TAB_BG "P01_tab_bg.png"
+#define TAB_DEFAULT "P01_tab_default.png"
+#define TAB_FOCUS "P01_tab_focus.png"
+#define TAB_PRESS "P01_tab_press.png"
+#define TITLE_BG "P01_title_bg.png"
+#define TITLE_BG_TMP "P01_title_bg_tmp.png"
+#define ALARM_CLOCK_BG_AM "58_alarm_clock_bg_AM.png"
+#define ALARM_CLOCK_BG_PM "58_alarm_clock_bg_PM.png"
+#define CLOCK_BG "58_clock_bg.png"
+#define CLOCK_BUTTON_NORMAL "58_clock_button_normal.png"
+#define CLOCK_BUTTON_PRESS "58_clock_button_press.png"
+#define CAL_IMAGES_CT_DEFAULT "caller_ID_default.png"
+
+#define CALENDAR_YEAR_MONTH_SELSECTED "P01_year_month_focus.png"
+#define CALENDAR_YEAR_DAY_SELSECTED "P01_year_day_focus.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_OPEN "P01_week_view_icon_open.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_CLOSE "P01_week_view_icon_close.png"
+
+#define CALENDAR_CIRCLE_BUTTON "00_circle_button.png"
+#define CALENDAR_CIRCLE_BUTTON_PRESS "00_circle_button_press.png"
+#define CALENDAR_LIST_INDEX_OPEN "00_button_expand_closed.png"
+#define CALENDAR_LIST_INDEX_CLOSE "00_button_expand_opened.png"
+#define CALENDAR_MONTH_VIEW_DIM "P01_month view_day_event_dim.png"
+#define CALENDAR_SELSECTED_TODAY "P01_month view_Today_focus.png"
+#define CALENDAR_LIST_INDEX_BG "P01_event_index_bg.png"
+#define CALENDAR_LIST_INDEX_BG_PRESS "P01_event_index_bg_press.png"
+
+#define CALENDAR_IMAGES_PARTICIPANT_FREE "P01_participant_event_green.png"
+#define CALENDAR_IMAGES_PARTICIPANT_BUSY "P01_participant_event_red.png"
+#define CALENDAR_IMAGES_PARTICIPANT_TENTATIVE "P01_participant_event_purple.png"
+#define CALENDAR_IMAGES_PARTICIPANT_OFFICE "P01_participant_event_yellow.png"
diff --git a/data/edc/inc/hd-black-inc.edc b/data/edc/inc/hd-black-inc.edc
new file mode 100755 (executable)
index 0000000..0699b07
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//retio defined
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define WIDTH_OF_HD (720.0*R_X)
+#define HEIGHT_OF_HD (1280.0*R_Y)
+//size
+
+#ifndef _RATIO_L_
+#define _RATIO_L_
+#define R_Y_L (480.0/720.0)
+#define R_X_L (800.0/1280.0)
+#endif
+
+#define HEIGHT_OF_HD_L (720.0*R_Y_L)
+#define WIDTH_OF_HD_L (1280.0*R_X_L)
+//color
+#define COLOR_OF_LINE_FOR_ACCT 75 75 75 255
+#define COLOR_OF_BASE_OF_SELECTOR_BUTTON_FOR_ACCT 233 233 233 255
+
+#define COLOR_OF_TOP_LINE_FOR_DAY 195 192 179 255
+
+#define COLOR_OF_BASE_OF_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_HORIZEN_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_MIDDLE_LINE_FOR_TAB 224 219 209 255
+#define COLOR_OF_VERT_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_ON_TIME_LINE_FOR_TAB 51 93 119 255
+
+#define COLOR_OF_LIST_LINE_FOR_MONTH 195 192 179 255
+
+#define COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_TODAY_FOR_MONTH_CAL 208 211 217 255
+#define COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_MORE_TEXT_FOR_MONTH_CAL 7 180 211 255
+#define COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL 195 192 179 255
+#define COLOR_OF_CHECK_BASE_FOR_MONTH_CAL 127 126 126 255
+#define COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_LINE_FOR_MONTH_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_MAIN_TAB 249 249 249 150
+#define COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB 0 0 0 255
+#define COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB 255 255 255 255
+
+#define COLOR_OF_TODAY_FOR_YEAR_CAL 212 146 32 40
+#define COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_LINE_FOR_YEAR_CAL 0 0 0 255
+
+#define COLOR_OF_TEXT_FOR_RING 255 126 0 255
+#define COLOR_OF_DEFAULT_STOP_FOR_RING 255 74 22 255
+#define COLOR_OF_DEFAULT_PRESSED_FOR_RING 255 255 255 255
+
+#define COLOR_OF_YEAR_VIEW_TODAY 183 193 210 255
+#define COLOR_OF_WEEK_ITEM_TITLE 225 227 230 255
+
+#define COLOR_OF_TITLE_BOTTOM_LINE 143 143 143 255
+
+#define COLOR_OF_WEEK_NUMBER_TEXT_FOR_MONTH_CAL 186 186 186 255
+
+#define COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL 203 203 203 255
+//image
+#define LIST_PHOTO_DEFAUT "00_list_photo_default.png"
+#define DIALOG_EDIT_DEFAULT "01_dialoguegroup_edit_default.png"
+#define HEADER_ICON_ADD "01_header_icon_add.png"
+#define HEADER_ICON_DONE "01_header_icon_done.png"
+#define HEADER_ICON_OTHERS "01_header_icon_others.png"
+#define NAVI_ICON_DELETE "01_navi_icon_delete.png"
+#define NAVI_ICON_EDIT "01_navi_icon_edit.png"
+#define NAVI_ICON_NEW "01_navi_icon_new.png"
+#define MEMO_NOITEMS "49_memo_noitems.png"
+#define CALENDAR_BG_2 "57_calendar_bg2.png"
+#define CALENDAR_EVENT_BG_1 "P01_day_event_bg_01.png"
+#define CALENDAR_EVENT_PRESSED_BG_1 "P01_day_event_bg_01.png"
+#define CALENDAR_EVENT_BG_2 "P01_day_event_bg_02.png"
+#define CALENDAR_EVENT_PRESSED_BG_2 "P01_day_event_bg_02.png"
+#define CALENDAR_EVENT_BG_3 "P01_day_event_bg_03.png"
+#define CALENDAR_EVENT_PRESSED_BG_3 "P01_day_event_bg_03.png"
+#define CALENDAR_EVENT_BG_4 "P01_day_event_bg_04.png"
+#define CALENDAR_EVENT_PRESSED_BG_4 "P01_day_event_bg_04.png"
+#define CALENDAR_MONTH_VIEW_BG_1 "57_calendar_month_view(1)_bg.png"
+#define CALENDAR_SPIN_ICON_1 "57_calendar_spin_01_icon.png"
+#define CALENDAR_SPIN_ICON_2 "57_calendar_spin_02_icon.png"
+#define CALENDAR_TAB "57_calendar_tab.png"
+#define CALENDAR_TAB_FOCUS_BG "57_calendar_tab_focus_bg.png"
+#define CALENDAR_TAB_PRESS "57_calendar_tab_press.png"
+#define CALENDAR_TODAY_ICON "57_calendar_today_icon.png"
+#define CALENDAR_TODAY_ICON_PRESS "57_calendar_today_icon_press.png"
+#define CALENDAR_TODAY_ICON_2 "57_calendar_today_icon2.png"
+#define CALENDAR_WEEK_ARROW_FOCUS_ICON "57_calendar_week_arrow_focus_icon.png"
+#define CALENDAR_WEEK_ARROW_ICON "57_calendar_week_arrow_icon.png"
+#define CALENDAR_WEEK_VIEW_BG "57_calendar_week_view_bg.png"
+#define CALENDAR_WEEK_VIEW_PRESS "P01_month_view_focus_bg.png"
+#define CALENDAR_YEAR_VIEW_BG "57_calendar_year_view_bg.png"
+#define ALL_CALENDAR "all_calendar.png"
+#define CALENDAR_SELSECTED "P01_month_view_focus_bg.png"
+#define NAVIBAR_ITEM_SEPARATOR "navibar_item_separator.png"
+#define NAVIBAR_ITEM_SEPARATOR_TEMP "navibar_item_separator_tmp.png"
+#define BG "P01_bg.png"
+#define CONTROL_TOP_BG "P01_control_top_bg.png"
+#define CONTROL_TOP_BG_TEMP "P01_control_top_bg_tmp.png"
+#define DAY_CURRENT_TIME "P01_day_current_time.png"
+#define EVENT "P01_event.png"
+#define NOSCHEDULE "P01_noschedule.png"
+#define TAB_BG "P01_tab_bg.png"
+#define TAB_DEFAULT "P01_tab_default.png"
+#define TAB_FOCUS "P01_tab_focus.png"
+#define TAB_PRESS "P01_tab_press.png"
+#define TITLE_BG "P01_title_bg.png"
+#define TITLE_BG_TMP "P01_title_bg_tmp.png"
+#define ALARM_CLOCK_BG_AM "58_alarm_clock_bg_AM.png"
+#define ALARM_CLOCK_BG_PM "58_alarm_clock_bg_PM.png"
+#define CLOCK_BG "58_clock_bg.png"
+#define CLOCK_BUTTON_NORMAL "58_clock_button_normal.png"
+#define CLOCK_BUTTON_PRESS "58_clock_button_press.png"
+
+#define CALENDAR_YEAR_MONTH_SELSECTED "P01_year_month_focus.png"
+#define CALENDAR_YEAR_DAY_SELSECTED "P01_year_day_focus.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_OPEN "P01_week_view_icon_open.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_CLOSE "P01_week_view_icon_close.png"
+
+#define CALENDAR_LIST_INDEX_OPEN "P01_event_index_icon_open.png"
+#define CALENDAR_LIST_INDEX_OPEN_PRESS "P01_event_index_icon_open_press.png"
+#define CALENDAR_LIST_INDEX_CLOSE "P01_event_index_icon_close.png"
+#define CALENDAR_LIST_INDEX_CLOSE_PRESS "P01_event_index_icon_close_press.png"
+#define CALENDAR_LIST_INDEX_BG "P01_event_index_bg.png"
+
+#define CALENDAR_WEATHER_SUNNY "P01_wheather_today_bg_01_02_30_33.png"
+#define CALENDAR_WEATHER_MOSTLY_SUNNY "P01_wheather_today_bg_03_04_05_34_35_36_37_38.png"
+#define CALENDAR_WEATHER_CLOUDY "P01_wheather_today_bg_06_07_08_09_10_11_32.png"
+#define CALENDAR_WEATHER_RAINY "P01_wheather_today_bg_12_13_18_24_25_26_39_40.png"
+#define CALENDAR_WEATHER_MOSTLY_RAINLY "P01_wheather_today_bg_14.png"
+#define CALENDAR_WEATHER_THUNDER "P01_wheather_today_bg_15_41_42.png"
+#define CALENDAR_WEATHER_MOSTLY_THUNDER "P01_wheather_today_bg_16_17.png"
+#define CALENDAR_WEATHER_SNOW "P01_wheather_today_bg_19_22_23_31_44.png"
+#define CALENDAR_WEATHER_MOSTLY_SNOW "P01_wheather_today_bg_20_21.png"
+#define CALENDAR_WEATHER_SLEET "P01_wheather_today_bg_27_28_29.png"
+
+#define CALENDAR_LIST_INDEX_BG "P01_event_index_bg.png"
diff --git a/data/edc/inc/hd-white-inc.edc b/data/edc/inc/hd-white-inc.edc
new file mode 100755 (executable)
index 0000000..15d6ad2
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//retio defined
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define WIDTH_OF_HD (720.0*R_X)
+#define HEIGHT_OF_HD (1280.0*R_Y)
+//size
+
+#ifndef _RATIO_L_
+#define _RATIO_L_
+#define R_Y_L (480.0/720.0)
+#define R_X_L (800.0/1280.0)
+#endif
+
+#define HEIGHT_OF_HD_L (720.0*R_Y_L)
+#define WIDTH_OF_HD_L (1280.0*R_X_L)
+//color
+#define COLOR_OF_LINE_FOR_ACCT 75 75 75 255
+#define COLOR_OF_BASE_OF_SELECTOR_BUTTON_FOR_ACCT 233 233 233 255
+
+#define COLOR_OF_TOP_LINE_FOR_DAY 195 192 179 255
+
+#define COLOR_OF_BASE_OF_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_HORIZEN_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_MIDDLE_LINE_FOR_TAB 224 219 209 255
+#define COLOR_OF_VERT_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_ON_TIME_LINE_FOR_TAB 51 93 119 255
+
+#define COLOR_OF_LIST_LINE_FOR_MONTH 195 192 179 255
+
+#define COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_TODAY_FOR_MONTH_CAL 208 211 217 255
+#define COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_MORE_TEXT_FOR_MONTH_CAL 7 180 211 255
+#define COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL 195 192 179 255
+#define COLOR_OF_CHECK_BASE_FOR_MONTH_CAL 127 126 126 255
+#define COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_LINE_FOR_MONTH_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_MAIN_TAB 249 249 249 150
+#define COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB 0 0 0 255
+#define COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB 255 255 255 255
+
+#define COLOR_OF_TODAY_FOR_YEAR_CAL 212 146 32 40
+#define COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_LINE_FOR_YEAR_CAL 0 0 0 255
+
+#define COLOR_OF_TEXT_FOR_RING 255 126 0 255
+#define COLOR_OF_DEFAULT_STOP_FOR_RING 255 74 22 255
+#define COLOR_OF_DEFAULT_PRESSED_FOR_RING 255 255 255 255
+
+#define COLOR_OF_YEAR_VIEW_TODAY 183 193 210 255
+#define COLOR_OF_WEEK_ITEM_TITLE 225 227 230 255
+
+#define COLOR_OF_TITLE_BOTTOM_LINE 143 143 143 255
+
+#define COLOR_OF_WEEK_NUMBER_TEXT_FOR_MONTH_CAL 186 186 186 255
+
+#define COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL 203 203 203 255
+//image
+#define LIST_PHOTO_DEFAUT "00_list_photo_default.png"
+#define DIALOG_EDIT_DEFAULT "01_dialoguegroup_edit_default.png"
+#define HEADER_ICON_ADD "01_header_icon_add.png"
+#define HEADER_ICON_DONE "01_header_icon_done.png"
+#define HEADER_ICON_OTHERS "01_header_icon_others.png"
+#define NAVI_ICON_DELETE "01_navi_icon_delete.png"
+#define NAVI_ICON_EDIT "01_navi_icon_edit.png"
+#define NAVI_ICON_NEW "01_navi_icon_new.png"
+#define MEMO_NOITEMS "49_memo_noitems.png"
+#define CALENDAR_BG_2 "57_calendar_bg2.png"
+#define CALENDAR_EVENT_BG_1 "P01_day_event_bg_01.png"
+#define CALENDAR_EVENT_PRESSED_BG_1 "P01_day_event_bg_01.png"
+#define CALENDAR_EVENT_BG_2 "P01_day_event_bg_02.png"
+#define CALENDAR_EVENT_PRESSED_BG_2 "P01_day_event_bg_02.png"
+#define CALENDAR_EVENT_BG_3 "P01_day_event_bg_03.png"
+#define CALENDAR_EVENT_PRESSED_BG_3 "P01_day_event_bg_03.png"
+#define CALENDAR_EVENT_BG_4 "P01_day_event_bg_04.png"
+#define CALENDAR_EVENT_PRESSED_BG_4 "P01_day_event_bg_04.png"
+#define CALENDAR_MONTH_VIEW_BG_1 "57_calendar_month_view(1)_bg.png"
+#define CALENDAR_SPIN_ICON_1 "57_calendar_spin_01_icon.png"
+#define CALENDAR_SPIN_ICON_2 "57_calendar_spin_02_icon.png"
+#define CALENDAR_TAB "57_calendar_tab.png"
+#define CALENDAR_TAB_FOCUS_BG "57_calendar_tab_focus_bg.png"
+#define CALENDAR_TAB_PRESS "57_calendar_tab_press.png"
+#define CALENDAR_TODAY_ICON "57_calendar_today_icon.png"
+#define CALENDAR_TODAY_ICON_PRESS "57_calendar_today_icon_press.png"
+#define CALENDAR_TODAY_ICON_2 "57_calendar_today_icon2.png"
+#define CALENDAR_WEEK_ARROW_FOCUS_ICON "57_calendar_week_arrow_focus_icon.png"
+#define CALENDAR_WEEK_ARROW_ICON "57_calendar_week_arrow_icon.png"
+#define CALENDAR_WEEK_VIEW_BG "57_calendar_week_view_bg.png"
+#define CALENDAR_WEEK_VIEW_PRESS "P01_month_view_focus_bg.png"
+#define CALENDAR_YEAR_VIEW_BG "57_calendar_year_view_bg.png"
+#define ALL_CALENDAR "all_calendar.png"
+#define CALENDAR_SELSECTED "P01_month_view_focus_bg.png"
+#define NAVIBAR_ITEM_SEPARATOR "navibar_item_separator.png"
+#define NAVIBAR_ITEM_SEPARATOR_TEMP "navibar_item_separator_tmp.png"
+#define BG "P01_bg.png"
+#define CONTROL_TOP_BG "P01_control_top_bg.png"
+#define CONTROL_TOP_BG_TEMP "P01_control_top_bg_tmp.png"
+#define DAY_CURRENT_TIME "P01_day_current_time.png"
+#define EVENT "P01_event.png"
+#define NOSCHEDULE "P01_noschedule.png"
+#define TAB_BG "P01_tab_bg.png"
+#define TAB_DEFAULT "P01_tab_default.png"
+#define TAB_FOCUS "P01_tab_focus.png"
+#define TAB_PRESS "P01_tab_press.png"
+#define TITLE_BG "P01_title_bg.png"
+#define TITLE_BG_TMP "P01_title_bg_tmp.png"
+#define ALARM_CLOCK_BG_AM "58_alarm_clock_bg_AM.png"
+#define ALARM_CLOCK_BG_PM "58_alarm_clock_bg_PM.png"
+#define CLOCK_BG "58_clock_bg.png"
+#define CLOCK_BUTTON_NORMAL "58_clock_button_normal.png"
+#define CLOCK_BUTTON_PRESS "58_clock_button_press.png"
+
+#define CALENDAR_YEAR_MONTH_SELSECTED "P01_year_month_focus.png"
+#define CALENDAR_YEAR_DAY_SELSECTED "P01_year_day_focus.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_OPEN "P01_week_view_icon_open.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_CLOSE "P01_week_view_icon_close.png"
+
+#define CALENDAR_LIST_INDEX_OPEN "P01_event_index_icon_open.png"
+#define CALENDAR_LIST_INDEX_OPEN_PRESS "P01_event_index_icon_open_press.png"
+#define CALENDAR_LIST_INDEX_CLOSE "P01_event_index_icon_close.png"
+#define CALENDAR_LIST_INDEX_CLOSE_PRESS "P01_event_index_icon_close_press.png"
+#define CALENDAR_LIST_INDEX_BG "P01_event_index_bg.png"
+
+#define CALENDAR_WEATHER_SUNNY "P01_wheather_today_bg_01_02_30_33.png"
+#define CALENDAR_WEATHER_MOSTLY_SUNNY "P01_wheather_today_bg_03_04_05_34_35_36_37_38.png"
+#define CALENDAR_WEATHER_CLOUDY "P01_wheather_today_bg_06_07_08_09_10_11_32.png"
+#define CALENDAR_WEATHER_RAINY "P01_wheather_today_bg_12_13_18_24_25_26_39_40.png"
+#define CALENDAR_WEATHER_MOSTLY_RAINLY "P01_wheather_today_bg_14.png"
+#define CALENDAR_WEATHER_THUNDER "P01_wheather_today_bg_15_41_42.png"
+#define CALENDAR_WEATHER_MOSTLY_THUNDER "P01_wheather_today_bg_16_17.png"
+#define CALENDAR_WEATHER_SNOW "P01_wheather_today_bg_19_22_23_31_44.png"
+#define CALENDAR_WEATHER_MOSTLY_SNOW "P01_wheather_today_bg_20_21.png"
+#define CALENDAR_WEATHER_SLEET "P01_wheather_today_bg_27_28_29.png"
+
+
diff --git a/data/edc/inc/theme-inc.edc b/data/edc/inc/theme-inc.edc
new file mode 100755 (executable)
index 0000000..c0f2f2c
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC 90 108
+#define BUTTON_NAVIFRAME_MORE_BG_PRESSED_MIN_MAX_INC 86 92
+#define BUTTON_NAVIFRAME_MORE_BG_PRESSED_BORDER_INC 4 4 4 4
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC 56 56
+#define BUTTON_NAVIFRAME_MORE_BG_COLOR_INC 41 61 94 255
diff --git a/data/edc/inc/wvga-black-inc.edc b/data/edc/inc/wvga-black-inc.edc
new file mode 100755 (executable)
index 0000000..da36f61
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//retio defined
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define WIDTH_OF_HD (720.0*R_X)
+#define HEIGHT_OF_HD (1280.0*R_Y)
+
+#ifndef _RATIO_L_
+#define _RATIO_L_
+#define R_Y_L (480.0/720.0)
+#define R_X_L (800.0/1280.0)
+#endif
+
+#define HEIGHT_OF_HD_L (720.0*R_Y_L)
+#define WIDTH_OF_HD_L (1280.0*R_X_L)
+//size
+//color
+#define COLOR_OF_LINE_FOR_ACCT 75 75 75 255
+#define COLOR_OF_BASE_OF_SELECTOR_BUTTON_FOR_ACCT 233 233 233 255
+
+#define COLOR_OF_TOP_LINE_FOR_DAY 195 192 179 255
+
+#define COLOR_OF_BASE_OF_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_HORIZEN_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_MIDDLE_LINE_FOR_TAB 224 219 209 255
+#define COLOR_OF_VERT_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_ON_TIME_LINE_FOR_TAB 51 93 119 255
+
+#define COLOR_OF_LIST_LINE_FOR_MONTH 195 192 179 255
+
+#define COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_TODAY_FOR_MONTH_CAL 208 211 217 255
+#define COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_MORE_TEXT_FOR_MONTH_CAL 7 180 211 255
+#define COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL 195 192 179 255
+#define COLOR_OF_CHECK_BASE_FOR_MONTH_CAL 127 126 126 255
+#define COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_LINE_FOR_MONTH_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_MAIN_TAB 249 249 249 150
+#define COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB 0 0 0 255
+#define COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB 255 255 255 255
+
+#define COLOR_OF_TODAY_FOR_YEAR_CAL 212 146 32 40
+#define COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_LINE_FOR_YEAR_CAL 0 0 0 255
+
+#define COLOR_OF_TEXT_FOR_RING 255 126 0 255
+#define COLOR_OF_DEFAULT_STOP_FOR_RING 255 74 22 255
+#define COLOR_OF_DEFAULT_PRESSED_FOR_RING 255 255 255 255
+
+#define COLOR_OF_YEAR_VIEW_TODAY 183 193 210 255
+#define COLOR_OF_WEEK_ITEM_TITLE 225 227 230 255
+
+#define COLOR_OF_TITLE_BOTTOM_LINE 143 143 143 255
+
+#define COLOR_OF_WEEK_NUMBER_TEXT_FOR_MONTH_CAL 186 186 186 255
+
+#define COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL 203 203 203 255
+//image
+#define LIST_PHOTO_DEFAUT "00_list_photo_default.png"
+#define DIALOG_EDIT_DEFAULT "01_dialoguegroup_edit_default.png"
+#define HEADER_ICON_ADD "01_header_icon_add.png"
+#define HEADER_ICON_DONE "01_header_icon_done.png"
+#define HEADER_ICON_OTHERS "01_header_icon_others.png"
+#define NAVI_ICON_DELETE "01_navi_icon_delete.png"
+#define NAVI_ICON_EDIT "01_navi_icon_edit.png"
+#define NAVI_ICON_NEW "01_navi_icon_new.png"
+#define MEMO_NOITEMS "49_memo_noitems.png"
+#define CALENDAR_BG_2 "57_calendar_bg2.png"
+#define CALENDAR_EVENT_BG_1 "P01_day_event_bg_01.png"
+#define CALENDAR_EVENT_PRESSED_BG_1 "P01_day_event_bg_01.png"
+#define CALENDAR_EVENT_BG_2 "P01_day_event_bg_02.png"
+#define CALENDAR_EVENT_PRESSED_BG_2 "P01_day_event_bg_02.png"
+#define CALENDAR_EVENT_BG_3 "P01_day_event_bg_03.png"
+#define CALENDAR_EVENT_PRESSED_BG_3 "P01_day_event_bg_03.png"
+#define CALENDAR_EVENT_BG_4 "P01_day_event_bg_04.png"
+#define CALENDAR_EVENT_PRESSED_BG_4 "P01_day_event_bg_04.png"
+#define CALENDAR_MONTH_VIEW_BG_1 "57_calendar_month_view(1)_bg.png"
+#define CALENDAR_SPIN_ICON_1 "57_calendar_spin_01_icon.png"
+#define CALENDAR_SPIN_ICON_2 "57_calendar_spin_02_icon.png"
+#define CALENDAR_TAB "57_calendar_tab.png"
+#define CALENDAR_TAB_FOCUS_BG "57_calendar_tab_focus_bg.png"
+#define CALENDAR_TAB_PRESS "57_calendar_tab_press.png"
+#define CALENDAR_TODAY_ICON "57_calendar_today_icon.png"
+#define CALENDAR_TODAY_ICON_PRESS "57_calendar_today_icon_press.png"
+#define CALENDAR_TODAY_ICON_2 "57_calendar_today_icon2.png"
+#define CALENDAR_WEEK_ARROW_FOCUS_ICON "57_calendar_week_arrow_focus_icon.png"
+#define CALENDAR_WEEK_ARROW_ICON "57_calendar_week_arrow_icon.png"
+#define CALENDAR_WEEK_VIEW_BG "57_calendar_week_view_bg.png"
+#define CALENDAR_WEEK_VIEW_PRESS "P01_month_view_focus_bg.png"
+#define CALENDAR_YEAR_VIEW_BG "57_calendar_year_view_bg.png"
+#define ALL_CALENDAR "all_calendar.png"
+#define CALENDAR_SELSECTED "P01_month_view_focus_bg.png"
+#define NAVIBAR_ITEM_SEPARATOR "navibar_item_separator.png"
+#define NAVIBAR_ITEM_SEPARATOR_TEMP "navibar_item_separator_tmp.png"
+#define BG "P01_bg.png"
+#define CONTROL_TOP_BG "P01_control_top_bg.png"
+#define CONTROL_TOP_BG_TEMP "P01_control_top_bg_tmp.png"
+#define DAY_CURRENT_TIME "P01_day_current_time.png"
+#define EVENT "P01_event.png"
+#define NOSCHEDULE "P01_noschedule.png"
+#define TAB_BG "P01_tab_bg.png"
+#define TAB_DEFAULT "P01_tab_default.png"
+#define TAB_FOCUS "P01_tab_focus.png"
+#define TAB_PRESS "P01_tab_press.png"
+#define TITLE_BG "P01_title_bg.png"
+#define TITLE_BG_TMP "P01_title_bg_tmp.png"
+#define ALARM_CLOCK_BG_AM "58_alarm_clock_bg_AM.png"
+#define ALARM_CLOCK_BG_PM "58_alarm_clock_bg_PM.png"
+#define CLOCK_BG "58_clock_bg.png"
+#define CLOCK_BUTTON_NORMAL "58_clock_button_normal.png"
+#define CLOCK_BUTTON_PRESS "58_clock_button_press.png"
+
+#define CALENDAR_YEAR_MONTH_SELSECTED "P01_year_month_focus.png"
+#define CALENDAR_YEAR_DAY_SELSECTED "P01_year_day_focus.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_OPEN "P01_week_view_icon_open.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_CLOSE "P01_week_view_icon_close.png"
+
+#define CALENDAR_LIST_INDEX_OPEN "P01_event_index_icon_open.png"
+#define CALENDAR_LIST_INDEX_OPEN_PRESS "P01_event_index_icon_open_press.png"
+#define CALENDAR_LIST_INDEX_CLOSE "P01_event_index_icon_close.png"
+#define CALENDAR_LIST_INDEX_CLOSE_PRESS "P01_event_index_icon_close_press.png"
+#define CALENDAR_LIST_INDEX_BG "P01_event_index_bg.png"
+
+#define CALENDAR_WEATHER_SUNNY "P01_wheather_today_bg_01_02_30_33.png"
+#define CALENDAR_WEATHER_MOSTLY_SUNNY "P01_wheather_today_bg_03_04_05_34_35_36_37_38.png"
+#define CALENDAR_WEATHER_CLOUDY "P01_wheather_today_bg_06_07_08_09_10_11_32.png"
+#define CALENDAR_WEATHER_RAINY "P01_wheather_today_bg_12_13_18_24_25_26_39_40.png"
+#define CALENDAR_WEATHER_MOSTLY_RAINLY "P01_wheather_today_bg_14.png"
+#define CALENDAR_WEATHER_THUNDER "P01_wheather_today_bg_15_41_42.png"
+#define CALENDAR_WEATHER_MOSTLY_THUNDER "P01_wheather_today_bg_16_17.png"
+#define CALENDAR_WEATHER_SNOW "P01_wheather_today_bg_19_22_23_31_44.png"
+#define CALENDAR_WEATHER_MOSTLY_SNOW "P01_wheather_today_bg_20_21.png"
+#define CALENDAR_WEATHER_SLEET "P01_wheather_today_bg_27_28_29.png"
+
diff --git a/data/edc/inc/wvga-white-inc.edc b/data/edc/inc/wvga-white-inc.edc
new file mode 100755 (executable)
index 0000000..655417c
--- /dev/null
@@ -0,0 +1,164 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//retio defined
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define WIDTH_OF_HD (720.0*R_X)
+#define HEIGHT_OF_HD (1280.0*R_Y)
+
+//size
+#ifndef _RATIO_L_
+#define _RATIO_L_
+#define R_Y_L (480.0/720.0)
+#define R_X_L (800.0/1280.0)
+#endif
+
+#define HEIGHT_OF_HD_L (720.0*R_Y_L)
+#define WIDTH_OF_HD_L (1280.0*R_X_L)
+//color
+#define COLOR_OF_LINE_FOR_ACCT 75 75 75 255
+#define COLOR_OF_BASE_OF_SELECTOR_BUTTON_FOR_ACCT 233 233 233 255
+
+#define COLOR_OF_TOP_LINE_FOR_DAY 195 192 179 255
+
+#define COLOR_OF_BASE_OF_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_HORIZEN_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_MIDDLE_LINE_FOR_TAB 224 219 209 255
+#define COLOR_OF_VERT_LINE_FOR_TAB 195 192 179 255
+#define COLOR_OF_ON_TIME_LINE_FOR_TAB 51 93 119 255
+
+#define COLOR_OF_LIST_LINE_FOR_MONTH 195 192 179 255
+
+#define COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL 106 96 84 255
+#define COLOR_OF_TODAY_FOR_MONTH_CAL 208 211 217 255
+#define COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_MORE_TEXT_FOR_MONTH_CAL 7 180 211 255
+#define COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL 200 0 0 255
+#define COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL 0 0 0 255
+#define COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL 195 192 179 255
+#define COLOR_OF_CHECK_BASE_FOR_MONTH_CAL 127 126 126 255
+#define COLOR_OF_TEXT_ON_CHECK_FOR_MONTH_CAL 255 255 255 255
+#define COLOR_OF_LINE_FOR_MONTH_CAL 195 192 179 255
+
+#define COLOR_OF_TEXT_FOR_MAIN_TAB 249 249 249 150
+#define COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB 0 0 0 255
+#define COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB 255 255 255 255
+
+#define COLOR_OF_TODAY_FOR_YEAR_CAL 212 146 32 40
+#define COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL 200 0 0 255
+#define COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL 0 0 0 255
+#define COLOR_OF_LINE_FOR_YEAR_CAL 0 0 0 255
+
+#define COLOR_OF_TEXT_FOR_RING 255 126 0 255
+#define COLOR_OF_DEFAULT_STOP_FOR_RING 255 74 22 255
+#define COLOR_OF_DEFAULT_PRESSED_FOR_RING 255 255 255 255
+
+#define COLOR_OF_YEAR_VIEW_TODAY 183 193 210 255
+#define COLOR_OF_WEEK_ITEM_TITLE 225 227 230 255
+
+#define COLOR_OF_TITLE_BOTTOM_LINE 143 143 143 255
+
+#define COLOR_OF_WEEK_NUMBER_TEXT_FOR_MONTH_CAL 186 186 186 255
+
+#define COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL 203 203 203 255
+//image
+#define LIST_PHOTO_DEFAUT "00_list_photo_default.png"
+#define DIALOG_EDIT_DEFAULT "01_dialoguegroup_edit_default.png"
+#define HEADER_ICON_ADD "01_header_icon_add.png"
+#define HEADER_ICON_DONE "01_header_icon_done.png"
+#define HEADER_ICON_OTHERS "01_header_icon_others.png"
+#define NAVI_ICON_DELETE "01_navi_icon_delete.png"
+#define NAVI_ICON_EDIT "01_navi_icon_edit.png"
+#define NAVI_ICON_NEW "01_navi_icon_new.png"
+#define MEMO_NOITEMS "49_memo_noitems.png"
+#define CALENDAR_BG_2 "57_calendar_bg2.png"
+#define CALENDAR_EVENT_BG_1 "P01_day_event_bg_01.png"
+#define CALENDAR_EVENT_PRESSED_BG_1 "P01_day_event_bg_01.png"
+#define CALENDAR_EVENT_BG_2 "P01_day_event_bg_02.png"
+#define CALENDAR_EVENT_PRESSED_BG_2 "P01_day_event_bg_02.png"
+#define CALENDAR_EVENT_BG_3 "P01_day_event_bg_03.png"
+#define CALENDAR_EVENT_PRESSED_BG_3 "P01_day_event_bg_03.png"
+#define CALENDAR_EVENT_BG_4 "P01_day_event_bg_04.png"
+#define CALENDAR_EVENT_PRESSED_BG_4 "P01_day_event_bg_04.png"
+#define CALENDAR_MONTH_VIEW_BG_1 "57_calendar_month_view(1)_bg.png"
+#define CALENDAR_SPIN_ICON_1 "57_calendar_spin_01_icon.png"
+#define CALENDAR_SPIN_ICON_2 "57_calendar_spin_02_icon.png"
+#define CALENDAR_TAB "57_calendar_tab.png"
+#define CALENDAR_TAB_FOCUS_BG "57_calendar_tab_focus_bg.png"
+#define CALENDAR_TAB_PRESS "57_calendar_tab_press.png"
+#define CALENDAR_TODAY_ICON "57_calendar_today_icon.png"
+#define CALENDAR_TODAY_ICON_PRESS "57_calendar_today_icon_press.png"
+#define CALENDAR_TODAY_ICON_2 "57_calendar_today_icon2.png"
+#define CALENDAR_WEEK_ARROW_FOCUS_ICON "57_calendar_week_arrow_focus_icon.png"
+#define CALENDAR_WEEK_ARROW_ICON "57_calendar_week_arrow_icon.png"
+#define CALENDAR_WEEK_VIEW_BG "57_calendar_week_view_bg.png"
+#define CALENDAR_WEEK_VIEW_PRESS "P01_month_view_focus_bg.png"
+#define CALENDAR_YEAR_VIEW_BG "57_calendar_year_view_bg.png"
+#define ALL_CALENDAR "all_calendar.png"
+#define CALENDAR_SELSECTED "P01_month_view_focus_bg.png"
+#define NAVIBAR_ITEM_SEPARATOR "navibar_item_separator.png"
+#define NAVIBAR_ITEM_SEPARATOR_TEMP "navibar_item_separator_tmp.png"
+#define BG "P01_bg.png"
+#define CONTROL_TOP_BG "P01_control_top_bg.png"
+#define CONTROL_TOP_BG_TEMP "P01_control_top_bg_tmp.png"
+#define DAY_CURRENT_TIME "P01_day_current_time.png"
+#define EVENT "P01_event.png"
+#define NOSCHEDULE "P01_noschedule.png"
+#define TAB_BG "P01_tab_bg.png"
+#define TAB_DEFAULT "P01_tab_default.png"
+#define TAB_FOCUS "P01_tab_focus.png"
+#define TAB_PRESS "P01_tab_press.png"
+#define TITLE_BG "P01_title_bg.png"
+#define TITLE_BG_TMP "P01_title_bg_tmp.png"
+#define ALARM_CLOCK_BG_AM "58_alarm_clock_bg_AM.png"
+#define ALARM_CLOCK_BG_PM "58_alarm_clock_bg_PM.png"
+#define CLOCK_BG "58_clock_bg.png"
+#define CLOCK_BUTTON_NORMAL "58_clock_button_normal.png"
+#define CLOCK_BUTTON_PRESS "58_clock_button_press.png"
+
+#define CALENDAR_YEAR_MONTH_SELSECTED "P01_year_month_focus.png"
+#define CALENDAR_YEAR_DAY_SELSECTED "P01_year_day_focus.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_OPEN "P01_week_view_icon_open.png"
+#define CALENDAR_WEEK_EXPAND_BUTTON_CLOSE "P01_week_view_icon_close.png"
+
+#define CALENDAR_LIST_INDEX_OPEN "P01_event_index_icon_open.png"
+#define CALENDAR_LIST_INDEX_OPEN_PRESS "P01_event_index_icon_open_press.png"
+#define CALENDAR_LIST_INDEX_CLOSE "P01_event_index_icon_close.png"
+#define CALENDAR_LIST_INDEX_CLOSE_PRESS "P01_event_index_icon_close_press.png"
+#define CALENDAR_LIST_INDEX_BG "P01_event_index_bg.png"
+
+#define CALENDAR_WEATHER_SUNNY "P01_wheather_today_bg_01_02_30_33.png"
+#define CALENDAR_WEATHER_MOSTLY_SUNNY "P01_wheather_today_bg_03_04_05_34_35_36_37_38.png"
+#define CALENDAR_WEATHER_CLOUDY "P01_wheather_today_bg_06_07_08_09_10_11_32.png"
+#define CALENDAR_WEATHER_RAINY "P01_wheather_today_bg_12_13_18_24_25_26_39_40.png"
+#define CALENDAR_WEATHER_MOSTLY_RAINLY "P01_wheather_today_bg_14.png"
+#define CALENDAR_WEATHER_THUNDER "P01_wheather_today_bg_15_41_42.png"
+#define CALENDAR_WEATHER_MOSTLY_THUNDER "P01_wheather_today_bg_16_17.png"
+#define CALENDAR_WEATHER_SNOW "P01_wheather_today_bg_19_22_23_31_44.png"
+#define CALENDAR_WEATHER_MOSTLY_SNOW "P01_wheather_today_bg_20_21.png"
+#define CALENDAR_WEATHER_SLEET "P01_wheather_today_bg_27_28_29.png"
+
diff --git a/data/edc/layout/calendar.edc b/data/edc/layout/calendar.edc
new file mode 100755 (executable)
index 0000000..4a43c09
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ *
+ *  Copyright 2012  Samsung Electronics Co., Ltd
+ *
+ *  Licensed under the Flora License, Version 1.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *       http://floralicense.org/license/
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+collections {
+
+#include "../inc/calendar-inc.edc"
+
+#include "inc.main.edc" // main layout: year, month, week, day, list
+
+#include "inc.main.month.edc" // month layout
+#include "inc.main.month.cal.edc" // month in month layout
+
+#include "inc.main.month.weekly.edc" // month layout for focuse weekly
+#include "inc.main.month.cal.weekly.edc" // month in month layout for focuse weekly
+
+#include "inc.main.year.edc" // year layout
+#include "inc.main.year.cal.edc" // month in year layout
+
+#include "inc.main.week.edc" // week layout
+
+#include "inc.main.day.edc" // day layout
+#include "inc.main.day.tb.edc" // timeblock layout
+
+#include "inc.layouts.edc"
+
+#include "inc.acct.colorselector.edc"
+
+#include "inc.edit.edc"
+
+}
diff --git a/data/edc/layout/extended-edc.h b/data/edc/layout/extended-edc.h
new file mode 100755 (executable)
index 0000000..77c1f33
--- /dev/null
@@ -0,0 +1,367 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __CALENDAR_EXTENDED_EDC_H__
+#define __CALENDAR_EXTENDED_EDC_H__
+
+#define PPART PART:
+#define PIMAGE IMAGE:
+
+/***********************************************************************/
+/* size difinition layer */
+#define PART_BG(iName)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_BG_EX(iName, iMinx, iMiny)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        min: iMinx iMiny;\
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_RECT(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: iR1x iR1y; to: iR1t; } \
+        rel2 { relative: iR2x iR2y; to: iR2t; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_V_PIXEL_RECT(iName, size, iTo, iRy, iAy)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        min: 0 size;\
+        align: 0.5 iAy;\
+        fixed: 0 1;\
+        rel1 { relative: 0.0 iRy; to: iTo; } \
+        rel2 { relative: 1.0 iRy; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_H_PIXEL_RECT(iName, size, iTo, iRx, iAx)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        min: size 0;\
+        align: iAx 0.5;\
+        fixed: 1 0;\
+        rel1 { relative: iRx 0.0; to: iTo; } \
+        rel2 { relative: iRx 1.0; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_PIXEL_RECT(iName, iX, iY, iRx, iRy, iTo, iAx, iAy)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        min: iX iY;\
+        align: iAx iAy;\
+        fixed: 1 1;\
+        rel1 { relative: iRx iRy; to: iTo; } \
+        rel2 { relative: iRx iRy; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+
+/* vertical divided rect, index range from 0~N-1
+ * iIndex must be immediate integer and expression like (1+2) is not allowed
+ */
+#define PART_V_DIVID_RECT(iName, iTo, iIndex, iN)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 (iIndex%iN)/iN; to: iTo; } \
+        rel2 { relative: 1.0 (iIndex%iN+1)/iN; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+/* horizontal divided rect, index range from 0~N-1
+ * iIndex must be immediate integer and expression like (1+2) is not allowed
+ */
+#define PART_H_DIVID_RECT(iName, iTo, iIndex, iN)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: (iIndex%iN)/iN 0.0; to: iTo; } \
+        rel2 { relative: (iIndex%iN+1)/iN 1.0; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+#define PART_CLIPPER_RECT(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: iR1x iR1y; to: iR1t; } \
+        rel2 { relative: iR2x iR2y; to: iR2t; } \
+        color: 255 255 255 255;\
+    } \
+} \
+
+/***********************************************************************/
+/* mouse event filter layer */
+#define PART_EVENT_RECT(iName, iTo)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 1;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        color: 0 0 0 0;\
+    } \
+} \
+
+/***********************************************************************/
+/* content layer */
+#define PART_COLOR_RECT(iName, iTo, iCr, iCg, iCb, iCa)\
+part {\
+    name: iName;\
+    type: RECT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        color: iCr iCg iCb iCa;\
+    } \
+} \
+
+#define PART_IMAGE(iName, iTo, iImage)\
+part {\
+    name: iName;\
+    type: IMAGE;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        image.normal : iImage;\
+    } \
+} \
+
+#define PART_IMAGE_REL(iName, iImage, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_RECT("_"iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_IMAGE(iName, "_"iName, iImage)\
+
+#define PART_BORDER_IMAGE(iName, iTo, iImage, iBl, iBr, iBt, iBb)\
+part {\
+    name: iName;\
+    type: IMAGE;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        image.normal : iImage;\
+        image.border : iBl iBr iBt iBb;\
+    } \
+} \
+
+#define PART_SWALLOW(iName, iTo)\
+part {\
+    name: iName;\
+    type: SWALLOW;\
+    mouse_events: 1;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+    } \
+} \
+
+#define PART_SWALLOW_REL(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_RECT("_"iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_SWALLOW(iName, "_"iName)\
+
+#define PART_UNVISIBLE_SWALLOW(iName, iTo)\
+part {\
+    name: iName;\
+    type: SWALLOW;\
+    mouse_events: 1;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        visible: 0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+    } \
+} \
+
+#define PART_UNVISIBLE_SWALLOW_REL(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_RECT("_"iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_UNVISIBLE_SWALLOW(iName, "_"iName)\
+
+#define PART_CLIPPED_SWALLOW(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t,\
+        iAx, iAy, iCliper)\
+part {\
+    name: iName;\
+    type: SWALLOW;\
+    mouse_events: 0;\
+    scale: 1;\
+    clip_to: iCliper;\
+    description {\
+        state: "default" 0.0;\
+        align: iAx iAy;\
+        fixed: 1 1;\
+        rel1 { relative: iR1x iR1y; to: iR1t; } \
+        rel2 { relative: iR2x iR2y; to: iR2t; } \
+    } \
+} \
+
+#define PART_TEXT(iName, iTo, iText, iFont, iSize,\
+        iAx, iAy, iCr, iCg, iCb, iCa)\
+part {\
+    name: iName;\
+    type: TEXT;\
+    mouse_events: 0;\
+    scale: 1;\
+    description {\
+        state: "default" 0.0;\
+        rel1 { relative: 0.0 0.0; to: iTo; } \
+        rel2 { relative: 1.0 1.0; to: iTo; } \
+        color: iCr iCg iCb iCa;\
+        text {\
+            text: iText;\
+            font: iFont;\
+            size: iSize;\
+            align: iAx iAy;\
+        } \
+    } \
+} \
+
+#define PART_TEXT_REL(iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t,\
+        iText, iFont, iSize, iAx, iAy, iCr, iCg, iCb, iCa)\
+PART_RECT("_"iName, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+PART_TEXT(iName, "_"iName, iText, iFont, iSize, iAx, iAy, iCr, iCg, iCb, iCa)\
+
+/***********************************************************************/
+/* script */
+#define SCRIPT_CUSTOM_PART(iPart)\
+custom_state(PPART#iPart, "default", 0.0);\
+set_state(PPART#iPart, "custom", 0.0)
+
+#define SCRIPT_SET_REL(iPart, iR1x, iR1y, iR1t, iR2x, iR2y, iR2t)\
+set_state_val(PPART#iPart, STATE_REL1, iR1x, iR1y);\
+set_state_val(PPART#iPart, STATE_REL1_TO, PPART#iR1t, PPART#iR1t);\
+set_state_val(PPART#iPart, STATE_REL2, iR2x, iR2y);\
+set_state_val(PPART#iPart, STATE_REL2_TO, PPART#iR2t, PPART#iR2t)\
+
+#define SCRIPT_SET_VISIBLE(iPart, iV)\
+set_state_val(PPART#iPart, STATE_VISIBLE, iV)
+
+#define SCRIPT_SET_IMAGE(iPart, iV)\
+set_state_val(PPART#iPart, STATE_IMAGE, PIMAGE#iV)
+
+/***********************************************************************/
+/* program */
+#define PROGRAM_STATE_SET(isignal, isource, itarget, istate)\
+program {\
+    name: #isource#isignal;\
+    source: #isource;\
+    signal: #isignal;\
+    action: STATE_SET #istate 0.0;\
+    target: #itarget;\
+} \
+
+#define PROGRAM_SET_VISIBLE(isignal, isource, iPart, iV)\
+program {\
+    name: #isource#isignal;\
+    source: #isource;\
+    signal: #isignal;\
+    script {\
+        SCRIPT_SET_VISIBLE(iPart, iV);\
+    } \
+} \
+
+#define PROGRAM_SET_IMAGE(iname, isignal, isource, iPart, image)\
+program {\
+    name: iname;\
+    source: isource;\
+    signal: isignal;\
+    script {\
+        set_state_val(PPART#iPart, STATE_IMAGE, PIMAGE#image);\
+    } \
+} \
+
+#define PROGRAM_SET_INT(iname, isignal, isource, var, value)\
+program {\
+    name: iname;\
+    source: isource;\
+    signal: isignal;\
+    script {\
+        set_int(var, value);\
+    } \
+} \
+
+#endif /* __CALENDAR_EXTENDED_EDC_H__ */
diff --git a/data/edc/layout/inc.acct.colorselector.edc b/data/edc/layout/inc.acct.colorselector.edc
new file mode 100755 (executable)
index 0000000..1abad91
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+group{
+    name: "color_selector";
+    parts{
+               part {
+                       name: "bg";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "rect.up";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "bg"; }
+                               rel2 { relative: 1.0 0.36; to: "bg"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "border.bg";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 300 90;
+                               align: 0.5 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 0.5 0.5; to: "rect.up"; }
+                               rel2 { relative: 0.5 0.5; to: "rect.up"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "border";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "border.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "border.bg"; }
+                               color: 0 0 0 255;
+                       }
+               }
+
+               part {
+                       name: "color.bg";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: (300-4) (90-4);
+                               align: 0.5 0.5;
+                               fixed: 1 1;
+                               rel1 { relative: 0.5 0.5; to: "rect.up"; }
+                               rel2 { relative: 0.5 0.5; to: "rect.up"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.color";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "color.bg"; }
+                               rel2 { relative: 1.0 1.0; to: "color.bg"; }
+                       }
+               }
+
+               part {
+                       name: "event";
+                       type: RECT;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "rect.up"; }
+                               rel2 { relative: 1.0 1.0; to: "rect.up"; }
+                               color: 0 0 0 0;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.selector";
+                       type: SWALLOW;
+                       mouse_events: 1;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               rel1 { relative: 4/480 0.36; to: "bg"; }
+                               rel2 { relative: (480-4)/480 1.0; to: "bg"; }
+                               //rel2 { relative: (480-4)/480 0.7; to: "bg"; }
+                       }
+               }
+    }
+}
\ No newline at end of file
diff --git a/data/edc/layout/inc.acct.edc b/data/edc/layout/inc.acct.edc
new file mode 100755 (executable)
index 0000000..19ed366
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+/* Based on [N-Beat_HD]GUI_Calendar_v0.1_110930.ppt */
+#define WIDTH_OF_CALENDAR_VIEW 720
+#define HEIGHT_OF_CALENDAR_VIEW 1280
+
+#define BUTTON_BASE_HEIGHT 138
+#define BUTTON_HEIGHT 74
+#define BUTTON_UP_PADDING 32
+#define BUTTON_DOWN_PADDING 32
+#define BUTTON_LEFT_PADDING 10
+#define BUTTON_RIGHT_PADDING 12
+#define LINE_HIGHT 2
+
+#define HEIGHT_OF_SELECTOR_BASE 765
+#define HEIGHT_OF_SELECTOR_BUTTON_BASE 110
+#define SELECTOR_BUTTON_UP_PADDING 10
+#define SELECTOR_BUTTON_DOWN_PADDING 10
+#define SELECTOR_BUTTON_LEFT_PADDING 550
+#define SELECTOR_BUTTON_RIGHT_PADDING 10
+
+#define HEIGHT_OF_NAVIFRAME 100
+
+group { name, "acct";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               visible, 0;
+                       }
+               }
+
+               part { name, "sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+       }
+}
\ No newline at end of file
diff --git a/data/edc/layout/inc.edit.edc b/data/edc/layout/inc.edit.edc
new file mode 100755 (executable)
index 0000000..69fb265
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+group { name, "edit";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+
+               part {
+                               name: "toolbar";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 0 78;
+                                       fixed: 0 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                               }
+               }
+       }
+}
+group { name, "edit/attendee";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               visible, 0;
+                       }
+               }
+               part { name, "button";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               min: 500 78;
+                               align: 0.5 0.5;
+                               rel1 { relative, 0 0;offset, 0 20;to, "base";}
+                               rel2.to, "base";
+                       }
+               }
+       }
+}
\ No newline at end of file
diff --git a/data/edc/layout/inc.images.edc b/data/edc/layout/inc.images.edc
new file mode 100755 (executable)
index 0000000..99a1a52
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#define IMAGE(_name) \
+group { name, _name; \
+       images { \
+               image, _name COMP; \
+       } \
+       parts { \
+               part { name, "base"; \
+                       description { \
+                               state, "default" 0.0; \
+                               image.normal, _name; \
+                       } \
+               } \
+       } \
+}
+
+IMAGE(NAVI_ICON_NEW)
+IMAGE(NAVI_ICON_EDIT)
+IMAGE(NAVI_ICON_DELETE)
+IMAGE(LIST_PHOTO_DEFAUT)
+IMAGE(HEADER_ICON_ADD)
+IMAGE(HEADER_ICON_OTHERS)
+IMAGE(HEADER_ICON_DONE)
+IMAGE(BG)
+IMAGE(TAB_BG)
+IMAGE(TAB_DEFAULT)
+IMAGE(TAB_PRESS)
+IMAGE(NAVIBAR_ITEM_SEPARATOR_TEMP)
+IMAGE(CONTROL_TOP_BG)
+IMAGE(TITLE_BG)
+
+
+
+
+
diff --git a/data/edc/layout/inc.layouts.edc b/data/edc/layout/inc.layouts.edc
new file mode 100755 (executable)
index 0000000..af981e5
--- /dev/null
@@ -0,0 +1,1496 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#define CONTENT_LEFT_PADDING 25
+
+group { name, "dialoguegroup/alarm/custom";
+
+       images {
+               image, DIALOG_EDIT_DEFAULT COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 169;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 15 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bottom_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 16;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 0.5 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "text_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.5;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Roman";
+                                       size, 32;
+                                       min, 0 0;
+                                       align, 0.0 0.5;
+                               }
+                               color, 0 0 0 255;
+                       }
+               }
+               part { name, "content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                       }
+               }
+               part { name, "base/custom";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to_x, "right_padding"; to_y, "bottom_padding";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "input_bg";
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 80 0;
+                               fixed, 1 0;
+                               rel1.to, "base/custom";
+                               rel2 { relative, 0.0 1.0; to, "base/custom"; }
+                               image {
+                                       normal, "01_dialoguegroup_edit_default.png";
+                                       border, 13 13 9 14;
+                                       border_scale, 1;
+                               }
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "input_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1.to, "input_bg";
+                               rel2 { relative, 0.0 1.0; to, "input_bg"; }
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "input_sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to, "input_left_padding"; }
+                               rel2.to, "input_bg";
+                       }
+               }
+               part { name, "button_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "input_bg"; }
+                               rel2 { relative, 1.0 1.0; to, "input_bg"; }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "button";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 120 0;
+                               fixed, 1 1;
+                               rel1 { relative, 1.0 0.5; to, "button_left_padding"; }
+                               rel2 { relative, 1.0 0.5; to, "button_left_padding"; }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text_left_padding2";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "button"; }
+                               rel2 { relative, 1.0 1.0; to, "button"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text2";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "text_left_padding2"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Roman";
+                                       size, 32;
+                                       min, 0 0;
+                                       align, 0.0 0.5;
+                               }
+                               color, 0 0 0 255;
+                       }
+               }
+       }
+}
+
+group { name, "dialoguegroup/repeat/times";
+
+       images {
+               image, "01_dialoguegroup_edit_default.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 50;
+                               visible, 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               visible, 0;
+                       }
+               }
+               part { name, "radio";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                       }
+               }
+               part { name, "radio_right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, CONTENT_LEFT_PADDING 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "radio"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "radio"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+               }
+               part { name, "input_bg";
+                        scale, 1;
+                        description {
+                                state, "default" 0.0;
+                                min, 0 80;
+                               fixed, 0 1;
+                               align, 0.0 0.5;
+                                rel1 { relative, -0.1 -0.1; to, "input_sw"; }
+                                rel2 { relative, 1.1 1.1; to, "input_sw"; }
+                                image {
+                                        normal, "01_dialoguegroup_edit_default.png";
+                                        border, 13 13 9 14;
+                                        border_scale, 1;
+                                }
+                        }
+                }
+                part { name, "input_sw";
+                        type, SWALLOW;
+                        description {
+                                state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to, "radio_right_padding"; }
+                               rel2 { relative, 1.0 1.0; to, "radio_right_padding"; }
+                               align, 0.0 0.5;
+                        }
+                }
+                part { name, "input_bg_right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, CONTENT_LEFT_PADDING 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "input_bg"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "input_bg"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+               }
+               part { name, "text";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "input_bg_right_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "input_bg_right_padding"; to_y, "base";
+                               }
+                               text {
+                                       font: "arial";
+                    size: 42;
+                    min: 1 1;
+                                       text_class: "label";
+                               }
+                               color, 0 0 0 255;
+                       }
+               }
+
+       }
+}
+
+group { name, "dialoguegroup/location";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "pad/right";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 6 0;
+                               fixed, 1 0;
+                               rel1 { relative , 1.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "button/base";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 130 0;
+                               max, 130 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to_x, "pad/right";
+                                       to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to, "pad/right";
+                               }
+                               align, 1.0 0.5;
+                       }
+               }
+               part { name, "button/sw";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 130 74;
+                               max, 130 74;
+                               fixed, 1 1;
+                               rel1 { relative, 0.0 0.5; to, "button/base"; }
+                               rel2 { relative, 1.0 0.5; to, "button/base"; }
+                               align, 1.0 0.5;
+                       }
+               }
+               part { name, "pad/button/left";
+                       type, RECT;
+                       description {
+                               min, 15 0;
+                               max, 15 0;
+                               fixed, 1 0;
+                               state, "default" 0.0;
+                               align, 1.0 0.5;
+                               rel1 { relative , 0.0 0.0; to, "button/sw"; }
+                               rel2 { relative , 0.0 0.0; to, "button/sw"; }
+                       }
+               }
+               part { name, "editfield/sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               align, 1.0 0.5;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "pad/button/left";
+                                       to_y, "base";
+                               }
+                       }
+               }
+       }
+}
+
+//base 690x850
+//HD size 720x1280
+#define HEIGHT_OF_LIST_VIEW 920
+
+
+group { name, "list/base";
+
+       parts {
+
+               part { name, "base";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               color, 248 246 239 255;
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part {name, "searchbar";
+                       type, SWALLOW;
+                               mouse_events, 1;
+                               scale, 1;
+                       description {
+                                       state: "default" 0.0;
+                                       min: 460 106;
+                                       fixed: 1 1;
+                               align: 0.0 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "base";}
+                                       rel2 { relative: 1.0 0.0; to: "base";}
+                                       visible, 1;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "base";}
+                               rel2 { relative: 0.0 0.0; to: "base";}
+                               visible: 0;
+                       }
+               }
+
+               part { name, "sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative: 0.0 1.0; to: "searchbar"; }
+                               rel2.to, "base";
+                               visible, 1;
+                       }
+                       description {
+                               state, "hide" 0.0;
+                               rel1 { relative: 0.0 0.0; to: "base"; }
+                               rel2.to, "base";
+                               visible, 1;
+                       }
+               }
+               part {
+                       name: "sel.swallow.contents";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to:"sw";
+                               }
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "show,selection,info";
+                       signal: "show,selection,info";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "sel.swallow.contents";
+               }
+               program {
+                       name: "hide,selection,info";
+                       signal: "hide,selection,info";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "sel.swallow.contents";
+               }
+               program {
+                       name: "show";
+                       signal: "searchbar,show";
+                       action: STATE_SET "default" 0.0;
+                       target: "searchbar";
+                       target: "sw";
+                       source: "prog";
+               }
+               program {
+                       name: "hide";
+                       signal: "searchbar,hide";
+                       action: STATE_SET "hide" 0.0;
+                       target: "searchbar";
+                       target: "sw";
+                       source: "prog";
+               }
+       }
+}
+
+group { name, "search/list/base";
+
+       parts {
+
+               part { name, "base";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               align: 0.0 0.0;
+                       }
+               }
+
+               part { name, "search_scope";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               min: 160 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to_x: "base";
+                                       to_y: "base";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "searchbar";
+                                       to_y: "searchbar";
+                               }
+                               color, 248 246 239 255;
+                               align: 0.0 0.0;
+                       }
+                       description {
+                               state, "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "base";}
+                               rel2 { relative: 0.0 0.0; to: "base";}
+                               visible: 0;
+                       }
+               }
+               part { name, "search_scope_button";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               min: 140 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       offset: 15 15;
+                                       to_x: "search_scope";
+                                       to_y: "search_scope";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       offset: 0 -15;
+                                       to_x: "search_scope";
+                                       to_y: "search_scope";
+                               }
+                               visible, 1;
+                       }
+               }
+               part {name, "searchbar";
+                       type, SWALLOW;
+                               mouse_events, 1;
+                               scale, 1;
+                       description {
+                                       state: "default" 0.0;
+                                       min: 340 106;
+                                       fixed: 1 1;
+                                       align: 0.0 0.0;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "search_scope";
+                                               to_y: "base";
+                                       }
+                                       rel2 { relative: 1.0 0.0; to: "base";}
+                                       visible, 1;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               min: 0 0;
+                               align: 0.0 0.0;
+                               rel1 { relative: 0.0 0.0; to: "base";}
+                               rel2 { relative: 0.0 0.0; to: "base";}
+                               visible: 0;
+                       }
+               }
+
+               part { name, "sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               fixed: 0 1;
+                               rel1 {
+                                               relative: 0.0 1.0;
+                                               to_x: "base";
+                                               to_y: "searchbar";
+                                       }
+                               rel2.to, "base";
+                               visible, 1;
+                       }
+               }
+       }
+
+       programs {
+               program {
+                       name: "show";
+                       signal: "searchbar,show";
+                       action: STATE_SET "default" 0.0;
+                       target: "searchbar";
+                       target: "search_scope";
+                       source: "prog";
+               }
+               program {
+                       name: "hide";
+                       signal: "searchbar,hide";
+                       action: STATE_SET "hide" 0.0;
+                       target: "searchbar";
+                       target: "search_scope";
+                       source: "prog";
+               }
+       }
+}
+
+group { name, "list/base/without_searchbar";
+
+       parts {
+
+               part { name, "base";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               align: 0.0 0.0;
+                       }
+               }
+               part { name, "sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to_x: "base";
+                                       to_y: "base";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to_x: "base";
+                                       to_y: "base";
+                               }
+                               visible, 1;
+                       }
+               }
+               part {
+                       name: "sel.swallow.contents";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to:"sw";
+                               }
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "show,selection,info";
+                       signal: "show,selection,info";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "sel.swallow.contents";
+               }
+               program {
+                       name: "hide,selection,info";
+                       signal: "hide,selection,info";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "sel.swallow.contents";
+               }
+       }
+
+
+}
+
+
+group {
+       name: "ug_effect_sample";
+       parts {
+               part {
+                       name: "clip";
+                       type: RECT;
+                       description {
+                       state: "default" 0.0;
+                       rel1 { relative: 1 0; }
+                       rel2 { relative: 2 1; }
+                       color: 255 255 255 0;
+               }
+                       description {
+                               state: "show" 0.0;
+                               rel1 { relative: 0 0; }
+                               rel2 { relative: 1 1; }
+                               color: 255 255 255 255;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       clip_to: "clip";
+                       description {
+                               rel1.to: "clip";
+                               rel2.to: "clip";
+                       }
+               }
+               part {
+                       name: "event_blocker";
+                       description {
+                       state: "default" 0.0;
+                       rel1.to: "clip";
+                       rel2.to: "clip";
+                       visible: 1;
+                       }
+                       description {
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "show";
+                       signal: "elm,state,show";
+                       action: STATE_SET "show" 0.0;
+                       target: "clip";
+                       target: "event_blocker";
+                       transition: "DECELERATE" 1.2;
+                       after: "show_end";
+               }
+
+               program {
+                       name: "hide";
+                       signal: "elm,state,hide";
+                       action: STATE_SET "default" 0.0;
+                       target: "clip";
+                       target: "event_blocker";
+                       transition: "DECELERATE" 1.0;
+                       after: "hide_end";
+               }
+               program {
+                       name: "disable_event_blocker";
+                       signal: "elm,state,blocker,disabled";
+                       action: STATE_SET "disabled" 0.0;
+                       target: "event_blocker";
+               }
+               program {
+                       name: "disable_blocker";
+                       action: SIGNAL_EMIT "elm,state,blocker,disabled" "";
+               }
+               program {
+                       name: "show_end";
+                       action: SIGNAL_EMIT "elm,action,show,finished" "";
+                       after: "disable_blocker";
+               }
+               program {
+                       name: "hide_end";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+                       after: "disable_blocker";
+               }
+       }
+}
+
+group { name: "popup_center_text_progressview";
+       parts{
+               part { name: "pad_t";
+                       scale : 1;
+                       mouse_events: 0;
+                       repeat_events: 1;
+                       description { state: "default" 0.0;
+                               align: 0.5 0.0;
+                               min: 0 14;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to_x: "pad_l";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       to_x: "pad_r";
+                               }
+                       }
+               }
+               part { name: "pad_l";
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min : 10 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                               }
+                               align: 0.0 0.0;
+                       }
+               }
+               part { name: "pad_r";
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               min : 10 0;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                               }
+                               align: 1.0 0.0;
+                       }
+               }
+               part{ name:"elm.swallow.content";
+                       type: SWALLOW;
+                       scale : 1;
+                       description { state: "default" 0.0;
+                               min: 300 0;
+                               align: 0.5 0.5;
+                               fixed: 1 0;
+                               rel1 {
+                                       relative: 0.5 1.0;
+                                       to: "pad_t";
+                               }
+                               rel2 {
+                                       relative: 0.5 0.0;
+                                       to: "pad_b";
+                               }
+                       }
+               }
+               part { name: "pad_b";
+                       scale : 1;
+                       mouse_events: 0;
+                       repeat_events: 1;
+                       description { state: "default" 0.0;
+                               align: 0.5 1.0;
+                               min: 0 90;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "pad_l";
+                               }
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to_x: "pad_r";
+                               }
+                       }
+               }
+               part { name: "elm.swallow.end";
+                       type: SWALLOW;
+                       scale : 1;
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description { state: "default" 0.0;
+                               align: 0.0 0.0;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "pad_b";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "pad_b";
+                               }
+                       }
+               }
+               part { name: "pad_bm";
+                       scale : 1;
+                       mouse_events: 0;
+                       repeat_events: 1;
+                       description { state: "default" 0.0;
+                               align: 0.0 1.0;
+                               min: 0 52;
+                               fixed: 0 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "pad_b";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "pad_b";
+                               }
+                       }
+               }
+               part { name: "elm.text.subtext1";
+                       type: TEXT;
+                       scale : 1;
+                       description { state: "default" 0.0;
+                               text {
+                                       font: "SLP:style=Medium";
+                                       size: 16;
+                                       min: 0 0;
+                                       align: 0.0 1.0;
+                               }
+                               color: 108 108 108 255;
+                               align: 0.0 0.5;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "pad_bm";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "pad_bm";
+                               }
+                       }
+               }
+               part { name: "elm.text.subtext2";
+                       type: TEXT;
+                       scale : 1;
+                       description { state: "default" 0.0;
+                               text {
+                                       font: "SLP:style=Medium";
+                                       size: 16;
+                                       min: 0 0;
+                                       align: 1.0 1.0;
+                               }
+                               color: 108 108 108 255;
+                               align: 1.0 0.5;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to: "pad_bm";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       to: "pad_bm";
+                               }
+                       }
+               }
+       }
+}
+
+group { name, "dialoguegroup/datetime";
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 100;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 30 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative: 0.0 1.0;
+                                       to: "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 30 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to: "base";
+                               }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bottom_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 10;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 0.5 1.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name: "elm.text";
+                       type: TEXT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description { state: "default" 0.0;
+                               min: 50 20;
+                               fixed: 1 1;
+                               visible: 1;
+                               rel1 {
+                                       relative: 0.0 0.1;
+                                       to_x: "left_padding";
+                               }
+                               rel2 {
+                                       relative: 1.0 0.1;
+                                       to_y: "left_padding";
+                               }
+                               align: 0.0 0.2;
+                               color: 124 124 124 255;
+                               text {
+                                       font: "SLP:style=Bold";
+                                       size: 32;
+                                       min: 0 1;
+                                       align: 0.0 0.5;
+                               }
+                       }
+               }
+               part { name: "elm.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               align: 1.0 0.5;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       offset: 0 0;
+                                       to_x: "left_padding";
+                                       to_y: "elm.text";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       offset: 0 0;
+                                       to_x: "right_padding";
+                                       to_y: "bottom_padding";
+                               }
+                       }
+               }
+       }
+}
+
+group { name, "dialoguegroup/participants";
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 100;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "top_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 20;
+                               fixed, 0 1;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative: 1.0 0.0;
+                                       to: "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bottom_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 20;
+                               fixed, 0 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to: "base";
+                               }
+                               rel2.to, "base";
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type: RECT;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               align: 1.0 0.5;
+                               min: 10 0;
+                               max: 10 -1;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       offset: 0 0;
+                                       to: "base";
+                               }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name: "elm.icon.1";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               align: 1.0 0.5;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       offset: 0 0;
+                                       to_x: "base";
+                                       to_y: "top_padding";
+                               }
+                               rel2 {
+                                       relative: 0.0 0.0;
+                                       offset: 0 0;
+                                       to_x: "right_padding";
+                                       to_y: "bottom_padding";
+                               }
+                       }
+               }
+               part { name: "elm.icon.2";
+                       type: SWALLOW;
+                       scale: 1;
+                       description { state: "default" 0.0;
+                               align: 1.0 0.5;
+                               min, 30 30;
+                               fixed: 1 1;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       offset: 0 0;
+                                       to: "base";
+                               }
+                               rel2.to, "base";
+                       }
+               }
+       }
+}
+
+group { name, "dialoguegroup/tm";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 74;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 16 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               align, 1.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text_left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, CONTENT_LEFT_PADDING 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "content"; to_y, "base";
+                               }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "datefield";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text_left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "right_padding"; to_y, "base";
+                               }
+                       }
+               }
+
+               part { name, "content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               align, 0.0 0.5;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "left_padding"; to_y, "base";
+                               }
+                       }
+               }
+
+       }
+}
+
+group { name, "custom/popup/genlist";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 620 426;
+                               max, 620 426;
+                               color, 248 246 239 255;
+                       }
+                       description {
+                               state, "contract" 0.0;
+                               min, 620 202;
+                               max, 620 202;
+                               color, 248 246 239 255;
+                       }
+
+               }
+
+               part { name, "top/bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to_y: "base";
+                                       to_x: "base";
+                       }
+                               rel2 {
+                                       relative: 1.0 0.0;
+                                       offset: 0 86;
+                                       to_x: "base";
+                                       to_y: "base";
+                       }
+                               align: 0.0 0.0;
+                               color, 248 246 239 255;
+                       }
+               }
+
+               part { name, "segment/bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 580 74;
+                               max, 580 74;
+                               fixed:0 1;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       offset: 20 6;
+                                       to_y: "base";
+                                       to_x: "base";
+                       }
+                               rel2 {
+                                       relative: 1.0 0.0;
+                                       to_x: "base";
+                                       to_y: "base";
+                       }
+                               align: 0.0 0.0;
+                               color, 248 246 239 255;
+                       }
+               }
+               part { name, "segment";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               fixed:0 1;
+                               rel1.to, "segment/bg";
+                               rel2.to, "segment/bg";
+                               align: 0.5 0.0;
+                       }
+               }
+               part { name, "sw";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 620 112;
+                               fixed:0 1;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to_x: "base";
+                                       to_y: "top/bg";
+                       }
+                               rel2.to, "base";
+                       }
+               }
+       }
+       programs {
+               program { name, "contract/content";
+                       signal, "contract,content";
+                       source, "prog";
+                       action, STATE_SET "contract" 0.0;
+                       target, "base";
+               }
+               program { name, "normal/content";
+                       signal, "normal,content";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "base";
+               }
+       }
+}
+
+group { name: "selectioninfo";
+       parts {
+               part {
+                       name: "gen.swallow.contents";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.0;
+                       }
+               }
+
+               part {
+                       name: "sel.swallow.contents";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 0 1;
+                               align: 0.5 1.0;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to:"gen.swallow.contents";
+                               }
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "show";
+                       signal: "show,selection,info";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "sel.swallow.contents";
+               }
+               program {
+                       name: "hide";
+                       signal: "hide,selection,info";
+                       source: "elm";
+                       action: STATE_SET "hide" 0.0;
+                       target: "sel.swallow.contents";
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.day.edc b/data/edc/layout/inc.main.day.edc
new file mode 100755 (executable)
index 0000000..32e1c97
--- /dev/null
@@ -0,0 +1,665 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+// 480 x 920
+//origin size 480x800
+//HD size 720x1280
+#define HD_SCALE 800/1280
+#define WIDTH_OF_DAY_VIEW 480
+#define HEIGHT_OF_DAY_VIEW 855*HD_SCALE
+#define HEIGHT_OF_DAY_LIST 914
+#define HEIGHT_OF_ONE_ALL_DAY_ITEM 80
+#define LS_HEIGHT_OF_DAY_LIST 450
+#define LS_HEIGHT_OF_ONE_ALL_DAY_ITEM 80
+
+#define HEIGHT_OF_LIST_TITLE 80
+#define WIDTH_OF_LIST_TITLE 720
+#define HEIGHT_OF_LIST 133
+#define LEFT_PADDING_TITLE_TEXT 22
+#define RIGHT_PADDING_TITLE_TEXT 100
+#define RIGHT_PADDING_EXPAND_BUTTON 16
+#define WIDTH_OF_EXPAND_BUTTON 80
+#define HEIGHT_OF_EXPAND_BUTTON 80
+#define WIDTH_OF_EXPAND_BUTTON_ICON 80
+#define HEIGHT_OF_EXPAND_BUTTON_ICON 80
+
+group { name, "main/day";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 248 246 239 255;
+                       }
+               }
+               part { name, "list/title";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, 0 HEIGHT_OF_LIST_TITLE;
+                               fixed, 0 1;
+                               align, 0 0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 1.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               color, 230 229 222 255;
+                       }
+               }
+
+               part { name, "list/title/bottom/line";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, 0 1;
+                               fixed, 0 1;
+                               align, 0 0;
+                               rel1 {
+                                 relative: 0.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/title";
+                               }
+                               rel2 {
+                                 relative: 1.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/title";
+                               }
+                               color, 169 169 69 255;
+                       }
+               }
+
+               part { name, "list/title/left_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, LEFT_PADDING_TITLE_TEXT 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "list/title";
+                                 to_y: "list/title";
+                               }
+                               rel2 {
+                                 relative: 0.0 1.0;
+                                 to_x: "list/title";
+                                 to_y: "list/title";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "list/title/right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, RIGHT_PADDING_TITLE_TEXT 0;
+                               fixed, 1 0;
+                               align, 1 0;
+                               rel1 {
+                                 relative: 1.0 0.0;
+                                 to_x: "list/title";
+                                 to_y: "list/title";
+                               }
+                               rel2 {
+                                 relative: 1.0 1.0;
+                                 to_x: "list/title";
+                                 to_y: "list/title";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "list/expand/right_padding";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, RIGHT_PADDING_EXPAND_BUTTON 0;
+                               fixed, 1 0;
+                               align, 1 0;
+                               rel1 {
+                                 relative: 1.0 0.0;
+                                 to_x: "list/title";
+                                 to_y: "list/title";
+                               }
+                               rel2 {
+                                 relative: 1.0 1.0;
+                                 to_x: "list/title";
+                                 to_y: "list/title";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "list/title/text";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 34;
+                                       align, 0.0 0.5;
+                               }
+                               color, 0 0 0 255;
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               rel1 {
+                                 relative: 1.0 0.0;
+                                 to_x: "list/title/left_padding";
+                                 to_y: "list/title";
+                               }
+                               rel2 {
+                                 relative: 0.0 1.0;
+                                 to_x: "list/title/right_padding";
+                                 to_y: "list/title";
+                               }
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 34;
+                                       align, 0.0 0.5;
+                               }
+                               color, 0 0 0 255;
+                       }
+               }
+
+               part { name, "list/expand/bg";
+                       scale, 1;
+                       mouse_events, 1;
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min: WIDTH_OF_EXPAND_BUTTON HEIGHT_OF_EXPAND_BUTTON;
+                               max: WIDTH_OF_EXPAND_BUTTON HEIGHT_OF_EXPAND_BUTTON;
+                               fixed: 1 1;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "list/expand/right_padding";
+                                 to_y: "list/title";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "list/expand/right_padding";
+                                 to_y: "list/title";
+                               }
+                               align: 1.0 0.0;
+                               color: 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.2;
+                               min: WIDTH_OF_EXPAND_BUTTON HEIGHT_OF_EXPAND_BUTTON;
+                               max: WIDTH_OF_EXPAND_BUTTON HEIGHT_OF_EXPAND_BUTTON;
+                               fixed: 1 1;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "list/expand/right_padding";
+                                 to_y: "list/title";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "list/expand/right_padding";
+                                 to_y: "list/title";
+                               }
+                               align: 1.0 0.0;
+                               color: COLOR_OF_BUTTON_PRESS;
+                       }
+               }
+
+               part { name, "list/unexpand/bg";
+                       scale, 1;
+                       mouse_events, 1;
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min: WIDTH_OF_EXPAND_BUTTON HEIGHT_OF_EXPAND_BUTTON;
+                               max: WIDTH_OF_EXPAND_BUTTON HEIGHT_OF_EXPAND_BUTTON;
+                               fixed: 1 1;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "list/expand/right_padding";
+                                 to_y: "list/title";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "list/expand/right_padding";
+                                 to_y: "list/title";
+                               }
+                               align: 1.0 0.0;
+                               color: 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.2;
+                               min: WIDTH_OF_EXPAND_BUTTON HEIGHT_OF_EXPAND_BUTTON;
+                               max: WIDTH_OF_EXPAND_BUTTON HEIGHT_OF_EXPAND_BUTTON;
+                               fixed: 1 1;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "list/expand/right_padding";
+                                 to_y: "list/title";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "list/expand/right_padding";
+                                 to_y: "list/title";
+                               }
+                               align: 1.0 0.0;
+                               color: COLOR_OF_BUTTON_PRESS;
+                       }
+               }
+
+               part { name, "list/icon/expand";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min: WIDTH_OF_EXPAND_BUTTON_ICON HEIGHT_OF_EXPAND_BUTTON_ICON;
+                               max: WIDTH_OF_EXPAND_BUTTON_ICON HEIGHT_OF_EXPAND_BUTTON_ICON;
+                               fixed: 1 1;
+                               rel1{ relative, 0.5 0.5; to, "list/expand/bg"; }
+                               rel2{ relative, 0.5 0.5; to, "list/expand/bg"; }
+                               align: 0.5 0.5;
+                               image {
+                                       border_scale, 1;
+                                       normal, CALENDAR_LIST_INDEX_OPEN;
+                               }
+                       }
+               }
+
+               part { name, "list/icon/unexpand";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               rel2 {
+                                 relative: 0.0 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min: WIDTH_OF_EXPAND_BUTTON_ICON HEIGHT_OF_EXPAND_BUTTON_ICON;
+                               max: WIDTH_OF_EXPAND_BUTTON_ICON HEIGHT_OF_EXPAND_BUTTON_ICON;
+                               fixed: 1 1;
+                               rel1{ relative, 0.5 0.5; to, "list/unexpand/bg"; }
+                               rel2{ relative, 0.5 0.5; to, "list/unexpand/bg"; }
+                               align: 0.5 0.5;
+                               image {
+                                       border_scale, 1;
+                                       normal, CALENDAR_LIST_INDEX_CLOSE;
+                               }
+                       }
+               }
+
+               part { name, "list/sw";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/title/bottom/line";
+                               }
+                               rel2 {
+                                 relative: 1.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/title/bottom/line";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, 0 HEIGHT_OF_LIST;
+                               fixed, 0 1;
+                               align, 0 0;
+                               rel1 {
+                                 relative: 0.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/title/bottom/line";
+                               }
+                               rel2 {
+                                 relative: 1.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/title/bottom/line";
+                               }
+                       }
+               }
+
+               part { name, "list/sw/bottom/line";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                 relative: 0.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/sw";
+                               }
+                               rel2 {
+                                 relative: 1.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/sw";
+                               }
+                               align, 0.0 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, 0 1;
+                               fixed, 0 1;
+                               align, 0 0;
+                               rel1 {
+                                 relative: 0.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/sw";
+                               }
+                               rel2 {
+                                 relative: 1.0 1.0;
+                                 to_x: "base";
+                                 to_y: "list/sw";
+                               }
+                               color, 169 169 69 255;
+                       }
+               }
+
+               part { name, "cont/sw";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; to_x, "base"; to_y, "list/sw"; }
+                               rel2.to, "base";
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "line/top";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 2;
+                               fixed, 0 1;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 0.0; to, "base"; }
+                               color, COLOR_OF_TOP_LINE_FOR_DAY;
+                               align, 0.5 0.5;
+                       }
+               }
+       }
+
+       programs {
+               program { name, "list/none";
+                       signal, "list,hide";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "list/title";
+                       target, "list/title/bottom/line";
+                       target, "list/title/left_padding";
+                       target, "list/title/right_padding";
+                       target, "list/expand/right_padding";
+                       target, "list/title/text";
+                       target, "list/expand/bg";
+                       target, "list/unexpand/bg";
+                       target, "list/icon/expand";
+                       target, "list/icon/unexpand";
+                       target, "list/sw";
+                       target, "list/sw/bottom/line";
+               }
+
+               program { name, "list/unexpanded";
+                       signal, "list,unexpanded";
+                       source, "prog";
+                       action, STATE_SET "default" 0.1;
+                       target, "list/title";
+                       target, "list/title/bottom/line";
+                       target, "list/title/left_padding";
+                       target, "list/title/right_padding";
+                       target, "list/expand/right_padding";
+                       target, "list/title/text";
+                       target, "list/expand/bg";
+                       target, "list/icon/expand";
+               }
+
+               program { name, "expand/down";
+                       signal, "mouse,down,1";
+                       source, "list/expand/bg";
+                       action, STATE_SET "default" 0.2;
+                       target, "list/expand/bg";
+               }
+
+               program { name, "expand/up";
+                       signal, "mouse,up,1";
+                       source, "list/expand/bg";
+                       action, STATE_SET "default" 0.1;
+                       target, "list/expand/bg";
+               }
+
+               program { name, "unexpand/down";
+                       signal, "mouse,down,1";
+                       source, "list/unexpand/bg";
+                       action, STATE_SET "default" 0.2;
+                       target, "list/unexpand/bg";
+               }
+
+               program { name, "unexpand/up";
+                       signal, "mouse,up,1";
+                       source, "list/unexpand/bg";
+                       action, STATE_SET "default" 0.1;
+                       target, "list/unexpand/bg";
+               }
+
+               program { name, "expand/clicked";
+                       signal, "mouse,clicked,1";
+                       source, "list/expand/bg";
+                       action, STATE_SET "default" 0.1;
+                       target, "list/title";
+                       target, "list/title/left_padding";
+                       target, "list/title/right_padding";
+                       target, "list/expand/right_padding";
+                       target, "list/title/text";
+                       target, "list/unexpand/bg";
+                       target, "list/icon/unexpand";
+                       target, "list/sw";
+                       target, "list/sw/bottom/line";
+               }
+
+               program { name, "expand/clicked/dump";
+                       signal, "mouse,clicked,1";
+                       source, "list/expand/bg";
+                       action, STATE_SET "default" 0.0;
+                       target, "list/expand/bg";
+                       target, "list/icon/expand";
+               }
+
+               program { name, "unexpand/clicked";
+                       signal, "mouse,clicked,1";
+                       source, "list/unexpand/bg";
+                       action, STATE_SET "default" 0.1;
+                       target, "list/title";
+                       target, "list/title/left_padding";
+                       target, "list/title/right_padding";
+                       target, "list/expand/right_padding";
+                       target, "list/title/text";
+                       target, "list/expand/bg";
+                       target, "list/icon/expand";
+               }
+
+               program { name, "unexpand/clicked/dump";
+                       signal, "mouse,clicked,1";
+                       source, "list/unexpand/bg";
+                       action, STATE_SET "default" 0.0;
+                       target, "list/unexpand/bg";
+                       target, "list/icon/unexpand";
+                       target, "list/sw";
+                       target, "list/sw/bottom/line";
+               }
+
+       }
+}
diff --git a/data/edc/layout/inc.main.day.tb.edc b/data/edc/layout/inc.main.day.tb.edc
new file mode 100755 (executable)
index 0000000..3cd0155
--- /dev/null
@@ -0,0 +1,853 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+group { name, "main/day/time";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "sw";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+               part { name, "clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "sw";
+                               rel2.to, "sw";
+                       }
+               }
+       }
+}
+
+
+group { name, "main/day/time/timeblock";
+
+       images {
+               image, "calendar_selected.png" COMP;
+               image, DAY_CURRENT_TIME COMP;
+               image, NOSCHEDULE COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       repeat_events, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bg/ampm";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "pm" 0.0;
+                               inherit, "default" 0.0;
+                               color, 0 0 0 10;
+                       }
+               }
+               part { name, "bg/sel";
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2.to, "base";
+                               image {
+                                       normal, "calendar_selected.png";
+                                       border, 3 3 3 3;
+                                       border_scale, 1;
+                               }
+                               visible, 0;
+                       }
+                       description {
+                               state, "selected" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "text/base";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 42 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               align, 0.0 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text";
+                       type, TEXT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "text/base"; }
+                               rel2 { relative, 1.0 0.25; to, "text/base"; }
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 24;
+                                       align, 0.5 0.0;
+                               }
+                               color, 171 171 171 255;
+                       }
+                       description {
+                               state, "hide" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 0;
+                       }
+               }
+               part { name, "AM";
+                       type, TEXT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.25; to, "text/base"; }
+                               rel2 { relative, 1.0 0.6; to, "text/base"; }
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               rel1 { relative, 0.0 0.25; to, "text/base"; }
+                               rel2 { relative, 1.0 0.6; to, "text/base"; }
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 20;
+                                       align, 0.5 0.0;
+                               }
+                               color, 171 171 171 255;
+                               visible, 1;
+                       }
+               }
+               part { name, "PM";
+                       type, TEXT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.25; to, "text/base"; }
+                               rel2 { relative, 1.0 0.6; to, "text/base"; }
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               rel1 { relative, 0.0 0.25; to, "text/base"; }
+                               rel2 { relative, 1.0 0.6; to, "text/base"; }
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 20;
+                                       align, 0.5 0.0;
+                               }
+                               color, 171 171 171 255;
+                               visible, 1;
+                       }
+               }
+               part { name, "line/hori";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 1;
+                               fixed, 0 1;
+                               rel1 {
+                                       relative, 1.0 1.0; offset, 0 -1;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2.to, "base";
+                               color, COLOR_OF_HORIZEN_LINE_FOR_TAB;
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "line/hori_mid";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 1;
+                               fixed, 0 1;
+                               rel1 {
+                                       relative, 1.0 0.5; offset, 0 -1;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2{
+                                       relative, 1.0 0.5;
+                                       to, "base";
+                               }
+                               color, COLOR_OF_MIDDLE_LINE_FOR_TAB;
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "line/vert";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 1 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "text/base"; }
+                               rel2 { relative, 1.0 1.0; to, "text/base"; }
+                               color, COLOR_OF_VERT_LINE_FOR_TAB;
+                               align, 1.0 0.5;
+                       }
+               }
+               part { name, "evtbase/top";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2 { relative, 1.0 0.5; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "evtbase/bottom";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bg/contracted";
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 62;
+                               fixed, 0 1;
+                               rel1 {
+                                       relative, 1.0 0.0; offset, 0 10;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;offset, 0 -12;
+                                       to_x, "base"; to_y, "base";
+                               }
+                               image {
+                                       normal, "P01_noschedule.png";
+                                       border, 3 3 3 3;
+                                       border_scale, 1;
+                               }
+                               align, 0.5 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "contracted" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "line/on_time";
+                       type, RECT;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 2;
+                               fixed, 0 1;
+                               rel1 {
+                                       relative, 1.0 0.5; offset, 0 -2;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2{
+                                       relative, 1.0 0.5;
+                                       to, "base";
+                               }
+                               color, COLOR_OF_ON_TIME_LINE_FOR_TAB;
+                               align, 0.5 0.0;
+                               visible, 0;
+                       }
+                       description {
+                               state, "show" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "line/on_time/img";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 9 16;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               rel2{
+                                       relative, 1.0 0.5;
+                                       to_x, "text/base"; to_y, "base";
+                               }
+                               align, 1.0 0.5;
+                               image.normal, "P01_day_current_time.png";
+                               visible, 0;
+                       }
+                       description {
+                               state, "show" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+       }
+       programs {
+               program { name, "tb/down";
+                       signal, "mouse,down,1";
+                       source, "base";
+                       action, SIGNAL_EMIT "dn" "edj";
+               }
+               program { name, "tb/up";
+                       signal, "mouse,up,1";
+                       source, "base";
+                       action, SIGNAL_EMIT "up" "edj";
+               }
+               program { name, "tb/select";
+                       signal, "select";
+                       source, "prog";
+                       action, STATE_SET "selected" 0.0;
+                       target, "bg/sel";
+               }
+               program { name, "tb/unselect";
+                       signal, "unselect";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "bg/sel";
+               }
+               program { name, "tb/am";
+                       signal, "am";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "bg/ampm";
+               }
+               program { name, "tb/pm";
+                       signal, "pm";
+                       source, "prog";
+                       action, STATE_SET "pm" 0.0;
+                       target, "bg/ampm";
+               }
+               program { name, "tb/text/show";
+                       signal, "show,text";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "text";
+               }
+               program { name, "tb/text/hide";
+                       signal, "hide,text";
+                       source, "prog";
+                       action, STATE_SET "hide" 0.0;
+                       target, "text";
+               }
+               program { name, "tb/on_time/show";
+                       signal, "show,line";
+                       source, "prog";
+                       action, STATE_SET "show" 0.0;
+                       target, "line/on_time";
+               }
+               program { name, "tb/on_time/show/img";
+                       signal, "show,img";
+                       source, "prog";
+                       action, STATE_SET "show" 0.0;
+                       target, "line/on_time/img";
+               }
+               program { name, "tb/on_time/hide";
+                       signal, "hide,line";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "line/on_time";
+               }
+               program { name, "tb/on_time/hide/img";
+                       signal, "hide,img";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "line/on_time/img";
+               }
+               program { name, "tb/contracted";
+                       signal, "contracted";
+                       source, "prog";
+                       action, STATE_SET "contracted" 0.0;
+                       target, "bg/contracted";
+               }
+               program { name, "tb/uncontracted";
+                       signal, "uncontracted";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "bg/contracted";
+               }
+               program { name, "show am";
+                       signal, "show,AM";
+                       source, "prog";
+                       action, STATE_SET "default" 0.1;
+                       target, "AM";
+               }
+               program { name, "hide am";
+                       signal, "hide,AM";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "AM";
+               }
+               program { name, "show pm";
+                       signal, "show,PM";
+                       source, "prog";
+                       action, STATE_SET "default" 0.1;
+                       target, "PM";
+               }
+               program { name, "hide pm";
+                       signal, "hide,PM";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "PM";
+               }
+       }
+}
+
+
+
+group { name, "main/day/time/eventblock";
+
+       images {
+               image, CALENDAR_EVENT_BG_1 COMP;
+               image, CALENDAR_EVENT_BG_2 COMP;
+               image, CALENDAR_EVENT_BG_3 COMP;
+               image, CALENDAR_EVENT_BG_4 COMP;
+               image, "P01_day_event_bg_02_strok.png" COMP;
+
+       }
+
+       styles {
+               style { name, "event_textblock";
+                       base, "font=SLP:style=Regular font_size=24 color=#855A1DEF wrap=mixed ellipsis=1";
+                       tag,  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Regular";
+                       tag,  "b" "+ font=SLP:style=Regular";
+                       tag,  "tab" "\t";
+               }
+               style { name, "event_textblock_p";
+                       base, "font=SLP:style=Regular font_size=24 color=#237A99EF wrap=word";
+                       tag,  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Regular";
+                       tag,  "b" "+ font=SLP:style=Regular";
+                       tag,  "tab" "\t";
+               }
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 79;
+                               fixed, 0 1;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "bg/top";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 7;
+                               fixed, 0 1;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "bg/bottom";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 7;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                               align, 0.5 1.0;
+                       }
+               }
+               part { name, "bg/left";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 5 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+                       description {
+                               state, "longpressed" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "bg/right";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 5 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                               align, 1.0 0.5;
+                       }
+                       description {
+                               state, "longpressed" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "bg";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 1.0;
+                                       to_x, "bg/left"; to_y, "bg/top";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to_x, "bg/right"; to_y, "bg/bottom";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "text/top";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 10;
+                               fixed, 0 1;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                               align, 0.5 0.0;
+                       }
+               }
+               part { name, "text/bottom";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 9;
+                               fixed, 0 1;
+                               rel1 { relative, 0.0 1.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                               align, 0.5 1.0;
+                       }
+               }
+               part { name, "text/left";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 { relative, 0.0 1.0; to, "base"; }
+                               color, 0 0 0 0;
+                               align, 0.0 0.5;
+                       }
+               }
+               part { name, "text/right";
+                       type, RECT;
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, "base"; }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                               align, 1.0 0.5;
+                       }
+               }
+
+               part { name, "evt";
+                       type, RECT;
+                       repeat_events, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                               relative, 1.0 1.0;
+                                               to_x, "bg/left"; to_y, "bg/top";
+                                       }
+                               rel2 {
+                                               relative, 0.0 0.0;
+                                               to_x, "bg/right"; to_y, "bg/bottom";
+                                       }
+                       }
+                       description {
+                               state, "longpressed" 0.0;
+                               rel1 {
+                                               relative, 1.0 1.0;
+                                               to_x, "bg/left"; to_y, "bg/top";
+                                       }
+                               rel2 {
+                                               relative, 0.0 0.0;
+                                               to_x, "bg/right"; to_y, "bg/bottom";
+                                       }
+                               visible, 0;
+                       }
+               }
+               part { name, "text";
+                       type, TEXTBLOCK;
+                       scale, 1;
+                       multiline, 0;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 1.0;
+                                       to_x, "text/left"; to_y, "text/top";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to_x, "text/right"; to_y, "text/bottom";
+                               }
+                               text.style, "event_textblock";
+                       }
+                       description {
+                               state, "down" 0.0;
+                               inherit, "default" 0.0;
+                               text.style, "event_textblock_p";
+                       }
+               }
+               part { name, "bg_barder";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                               relative, 0.0 0.0;
+                                               to_x, "bg/left"; to_y, "bg/top";
+                                       }
+                               rel2 {
+                                               relative, 1.0 1.0;
+                                               to_x, "bg/right"; to_y, "bg/bottom";
+                                       }
+                               image {
+                                               border_scale, 1;
+                                               border, 15 15 15 15;
+                                               normal, "P01_day_event_bg_02_strok.png";
+                               }
+                               visible, 0;
+                       }
+                       description {
+                               state, "longpressed" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "bg/magnify/bottom";
+                       type, RECT;
+                       scale, 1;
+                       repeat_events, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 20;
+                               fixed, 0 1;
+                               rel1 {
+                                               relative, 1.0 0.0;
+                                               to_x, "bg/left"; to_y, "bg/bottom";
+                                       }
+                               rel2 {
+                                               relative, 0.0 0.0;
+                                               to_x, "bg/right"; to_y, "bg/bottom";
+                                       }
+                               color, 0 0 0 0;
+                               align, 0.5 1.0;
+                       }
+               }
+               part { name, "bg/magnify/top";
+                       type, RECT;
+                       scale, 1;
+                       repeat_events, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 20;
+                               fixed, 0 1;
+                               rel1 {
+                                               relative, 1.0 1.0;
+                                               to_x, "bg/left"; to_y, "bg/top";
+                                       }
+                               rel2 {
+                                               relative, 0.0 1.0;
+                                               to_x, "bg/right"; to_y, "bg/top";
+                                       }
+                               color, 0 0 0 0;
+                               align, 0.5 0.0;
+                       }
+               }
+       }
+
+
+       programs {
+               program { name, "bg/1";
+                       signal, "bg,color0";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "bg";
+               }
+               program { name, "bg/2";
+                       signal, "bg,color1";
+                       source, "prog";
+                       action, STATE_SET "bg2" 0.0;
+                       target, "bg";
+               }
+               program { name, "bg/3";
+                       signal, "bg,color2";
+                       source, "prog";
+                       action, STATE_SET "bg3" 0.0;
+                       target, "bg";
+               }
+               program { name, "bg/4";
+                       signal, "bg,color3";
+                       source, "prog";
+                       action, STATE_SET "bg4" 0.0;
+                       target, "bg";
+               }
+               program { name, "evt/down";
+                       signal, "mouse,down,1";
+                       source, "evt";
+                       action, SIGNAL_EMIT "dn" "edj";
+               }
+               program { name, "evt/up";
+                       signal, "mouse,up,1";
+                       source, "evt";
+                       action, SIGNAL_EMIT "up" "edj";
+               }
+               program { name, "evt/sel";
+                       signal, "select";
+                       source, "prog";
+                       action, STATE_SET "down" 0.0;
+                       target, "text";
+               }
+               program { name, "evt/unsel";
+                       signal, "unselect";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "text";
+               }
+               program { name, "longpress/on";
+                       signal, "longpress,on";
+                       source, "prog";
+                       action, STATE_SET "longpressed" 0.0;
+                       target, "bg/left";
+                       target, "bg/right";
+                       target, "bg_barder";
+               }
+               program { name, "longpress/border";
+                       signal, "longpress,border";
+                       source, "prog";
+                       action, STATE_SET "longpressed" 0.0;
+                       target, "bg/left";
+                       target, "bg/right";
+                       target, "bg_barder";
+                       target, "evt";
+               }
+               program { name, "longpress/off";
+                       signal, "longpress,off";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "bg/left";
+                       target, "bg/right";
+                       target, "bg_barder";
+               }
+               program { name, "bg/magnify/bottom/down";
+                       signal, "mouse,down,1";
+                       source, "bg/magnify/bottom";
+                       action, SIGNAL_EMIT "mg,bottom,dn" "edj";
+               }
+               program { name, "bg/magnify/bottom/up";
+                       signal, "mouse,up,1";
+                       source, "bg/magnify/bottom";
+                       action, SIGNAL_EMIT "mg,bottom,up" "edj";
+               }
+               program { name, "bg/magnify/top/down";
+                       signal, "mouse,down,1";
+                       source, "bg/magnify/top";
+                       action, SIGNAL_EMIT "mg,top,dn" "edj";
+               }
+               program { name, "bg/magnify/top/up";
+                       signal, "mouse,up,1";
+                       source, "bg/magnify/top";
+                       action, SIGNAL_EMIT "mg,top,up" "edj";
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.edc b/data/edc/layout/inc.main.edc
new file mode 100755 (executable)
index 0000000..d7a734d
--- /dev/null
@@ -0,0 +1,150 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+// Main view layout
+#define HEIGHT_OF_MAIN_VIEW 1280
+#define WIDTH_OF_MAIN_VIEW 720
+#define HEIGHT_OF_TITLE 94
+#define WIDTH_OF_TABLBAR 80
+#define HEIGHT_OF_TABBAR 1008
+#define HEIGHT_OF_TABBAR_ITEM 168
+#define OFFSET_OF_TRANSPARENT 8
+#define HEIGHT_OF_TITLE_BOTTOM_LINE 2
+
+group { name, "main";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "cont/left"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "cont/right"; to_y, "base";
+                               }
+                               color, 246 246 246 255;
+                       }
+               }
+
+               part { name, "cont/left";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1 { relative, 0.0 0.0; to, base; }
+                               rel2 { relative, 0.0 1.0; to, base; }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "cont/right";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1 { relative, 1.0 0.0; to, base; }
+                               rel2 { relative, 1.0 1.0; to, base; }
+                               align, 1.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "cont";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "cont/left"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "cont/right"; to_y, "base";
+                               }
+                       }
+                       description {
+                               state, "no_title" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "cont/left"; to_y, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to_x, "cont/right"; to_y, "base";
+                               }
+                       }
+               }
+
+               part { name, "clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "cont";
+                               rel2 { relative, 1.0 1.0; to, "cont"; }
+                       }
+               }
+
+
+               part { name, "title_bottom_line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 0;
+                               fixed, 1 0;
+                               rel1 { relative, 0.0 0.0; offset, 0 -HEIGHT_OF_TITLE_BOTTOM_LINE; to, cont; }
+                               rel2 { relative, 1.0 0.0; to, cont; }
+                               color, COLOR_OF_TITLE_BOTTOM_LINE;
+                       }
+               }
+       }
+
+       programs {
+               program { name, "main/title/hide";
+                       signal, "hide,title";
+                       source, "prog";
+                       action, STATE_SET "no_title" 0.0;
+                       target, "cont";
+               }
+
+               program { name, "main/title/show";
+                       signal, "show,title";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "cont";
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.month.cal.edc b/data/edc/layout/inc.main.month.cal.edc
new file mode 100755 (executable)
index 0000000..79b9d5d
--- /dev/null
@@ -0,0 +1,809 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//base 690x850
+//HD size 720x1280
+
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define HEIGHT_OF_WDAY (47.0*R_Y)
+#define HEIGHT_OF_WDAY_LINE (3.0*R_Y)
+#define HEIGHT_OF_DAY_BLOCK (107.0*R_Y)
+#define WIDTH_OF_DAY_BLOCK (103.0*R_X)
+#define HEIGHT_OF_DAY_CHECK (32.0*R_Y)
+#define WIDTH_OF_DAY_CHECK (32.0*R_X)
+
+#define WIDTH_OF_DAY (102*R_X)
+#define WDAY_LEFT_OFFSET (8*R_X)
+#define DAY_LEFT_OFFSET (10*R_X)
+
+#define WIDTH_OF_BG (100)
+#define HEIGHT_OF_BG (100)
+
+#define WIDTH_OF_BG_L (58)
+#define HEIGHT_OF_BG_L (58)
+
+#define WIDTH_OF_WNUMBER (48)
+#define WIDTH_OF_WNUMBER_L (38)
+
+#define WD(_pos) \
+       part { name, "wday/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative: (_pos % 7 / 7) 0; \
+                               to, "wday/base"; \
+                       } \
+                       rel2 { \
+                               relative: (_pos % 7 / 7 + 1 / 7) 1; \
+                               to, "wday/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "wday/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wday/"#_pos"/base"; \
+                       rel2.to, "wday/"#_pos"/base"; \
+                       color, COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                               align, 0.5 0.5; \
+                       } \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+       } \
+       programs { \
+               program { name, "wday/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+               program { name, "wday/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+               program { name, "wday/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+       }
+
+
+// day block
+#define DB(_line, _pos, _vert) \
+       part { name, "db/"#_pos"/base"; \
+               type, RECT; \
+               ignore_flags, ON_HOLD; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) \
+                                       (_line / 6); \
+                               to_x, "day/base"; \
+                               to_y, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 0 \
+                                       (_line / 6 + 1 / 6); \
+                               to_x, "vl/"#_vert; \
+                               to_y, "day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/img_bg"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min: WIDTH_OF_BG HEIGHT_OF_BG; \
+                       max: WIDTH_OF_BG HEIGHT_OF_BG; \
+                       fixed: 1 1; \
+                       align: 0.5 0.5; \
+                       rel1 { \
+                               relative, 0.0 0.0;\
+                               to_x, "db/"#_pos"/base"; \
+                               to_y, "db/"#_pos"/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0;\
+                               to_x, "db/"#_pos"/base"; \
+                               to_y, "db/"#_pos"/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/dim_bg"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_MONTH_VIEW_DIM; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "hide" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/today"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_TODAY_ICON; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/sel"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_SELSECTED_TODAY; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/bg"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "db/"#_pos"/base"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       text { \
+                               font, "SLP:style=Regular"; \
+                               size, 52; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL; \
+               } \
+       } \
+       part { name, "db/"#_pos"/block"; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       color, 0 0 0 0; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       programs { \
+               program { name, "db/"#_pos"/go_up"; \
+                       signal, "up,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/bg"; \
+               } \
+               program { name, "db/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "dn,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "up,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+               } \
+               program { name, "db/"#_pos"/select_today"; \
+                       signal, "select,today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/set_today"; \
+                       signal, "today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/unset_today"; \
+                       signal, "notoday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/disable"; \
+                       signal, "disable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "disabled" 0.0; \
+                       target, "db/"#_pos"/text"; \
+                       target, "db/"#_pos"/block"; \
+               } \
+               program { name, "db/"#_pos"/enable"; \
+                       signal, "enable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/block"; \
+               } \
+               program { name, "db/"#_pos"/show_count"; \
+                       signal, "show_count,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/dim_bg"; \
+               } \
+               program { name, "db/"#_pos"/hide_count"; \
+                       signal, "hide_count,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "hide" 0.0; \
+                       target, "db/"#_pos"/dim_bg"; \
+               } \
+       }
+
+// vertical line
+#define VL(_pos) \
+       part { name, "vl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos / 7) 0; \
+                               offset, 0 -1; \
+                               to, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos / 7) 1; \
+                               offset, 0 -1; \
+                               to, "day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       }
+
+#define VL_W(_pos) \
+       part { name, "vl_w/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos / 7) 0; \
+                               offset, 0 -1; \
+                               to, "wday/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos / 7) 1; \
+                               offset, 0 -1; \
+                               to, "wday/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       }
+
+// horizontal line
+#define HL(_pos) \
+       part { name, "hl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0 (_pos / 6); \
+                               to, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 (_pos / 6); \
+                               offset, -1 0; \
+                               to, "day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       }
+
+#define WNHL(_pos) \
+       part { name, "weeknumber/hl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0 (_pos / 6); \
+                               to, "weeknumber/day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 (_pos / 6); \
+                               offset, -1 0; \
+                               to, "weeknumber/day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       }
+
+#define WNUMBER(_line) \
+       part { name, "wn/"#_line"/base"; \
+               type, RECT; \
+               ignore_flags, ON_HOLD; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0 \
+                                       (_line / 6); \
+                               to_x, "weeknumber/day/base"; \
+                               to_y, "weeknumber/day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 \
+                                       (_line / 6 + 1 / 6); \
+                               to_x, "weeknumber/day/base"; \
+                               to_y, "weeknumber/day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "wn/"#_line"/text_rect"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wn/"#_line"/base"; \
+                       rel2 { \
+                               relative, 1 1; \
+                               to, "wn/"#_line"/base"; \
+                       } \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "wn/"#_line"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wn/"#_line"/text_rect"; \
+                       rel2.to, "wn/"#_line"/text_rect"; \
+                       text { \
+                               font, "SLP:style=Regular"; \
+                               size, 32; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_WEEK_NUMBER_TEXT_FOR_MONTH_CAL; \
+               } \
+       }
+
+group { name, "main/month/cal";
+       script {
+             public edge_timer;
+             public timer2(val) {
+                emit("do-hide-vshadow", "");
+                set_int(edge_timer, 0);
+                return 0;
+             }
+       }
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, CALENDAR_MONTH_VIEW_DIM COMP;
+               image, CALENDAR_SELSECTED_TODAY COMP;
+               image: "00_overscrolling_left.png" COMP;
+               image: "00_overscrolling_right.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (0/HEIGHT_OF_CALENDAR_SW); to, "base"; }
+                               rel2 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               rel2 { relative, 0.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "weeknumber/wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "weeknumber/wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               part { name, "wday/weeknumber/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to, "weeknumber/wday/base";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to, "weeknumber/wday/base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wday/weeknumber/text";
+                       type, TEXT;
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "wday/weeknumber/base";
+                               rel2.to, "wday/weeknumber/base";
+                               color, COLOR_OF_WEEK_NUMBER_TEXT_FOR_MONTH_CAL;
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 24;
+                                       align, 0.5 0.5;
+                               }
+                       }
+               }
+
+               WNUMBER(0) WNUMBER(1) WNUMBER(2) WNUMBER(3) WNUMBER(4) WNUMBER(5)
+
+               WNHL(0) WNHL(1) WNHL(2) WNHL(3) WNHL(4) WNHL(5) WNHL(6)
+
+               programs {
+                       program { name, "display_week_number";
+                               signal, "display_week_number";
+                               source, "prog";
+                               action, STATE_SET "default" 0.1;
+                               target, "weeknumber/wday/base";
+                               target, "weeknumber/day/base";
+                       }
+               }
+               part { name, "wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (0/HEIGHT_OF_CALENDAR_SW);  to_x, "weeknumber/wday/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW;  to_x, "weeknumber/day/base"; to_y, "base";}
+                               rel2 { relative, 1.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               WD(0) WD(1) WD(2) WD(3) WD(4) WD(5) WD(6)
+               VL_W( 1) VL_W( 2) VL_W( 3) VL_W( 4) VL_W( 5) VL_W( 6) VL_W(7)
+
+               DB(0,  0, 1) DB(0,  1, 2) DB(0,  2, 3) DB(0,  3, 4) DB(0,  4, 5) DB(0,  5, 6) DB(0,  6, 7)
+               DB(1,  7, 1) DB(1,  8, 2) DB(1,  9, 3) DB(1, 10, 4) DB(1, 11, 5) DB(1, 12, 6) DB(1, 13, 7)
+               DB(2, 14, 1) DB(2, 15, 2) DB(2, 16, 3) DB(2, 17, 4) DB(2, 18, 5) DB(2, 19, 6) DB(2, 20, 7)
+               DB(3, 21, 1) DB(3, 22, 2) DB(3, 23, 3) DB(3, 24, 4) DB(3, 25, 5) DB(3, 26, 6) DB(3, 27, 7)
+               DB(4, 28, 1) DB(4, 29, 2) DB(4, 30, 3) DB(4, 31, 4) DB(4, 32, 5) DB(4, 33, 6) DB(4, 34, 7)
+               DB(5, 35, 1) DB(5, 36, 2) DB(5, 37, 3) DB(5, 38, 4) DB(5, 39, 5) DB(5, 40, 6) DB(5, 41, 7)
+
+               VL( 1) VL( 2) VL( 3) VL( 4) VL( 5) VL( 6) VL(7)
+               HL( 0) HL( 1) HL( 2) HL( 3) HL( 4) HL( 5) HL(6)
+
+               part { name: "vshadow_clip";
+                type: RECT;
+                mouse_events: 0;
+                 repeat_events: 1;
+                scale: 1;
+                description { state: "default" 0.0;
+                }
+                description { state: "hidden" 0.0;
+                   visible: 0;
+                   color: 255 255 255 0;
+                }
+             }
+             part { name: "shadow_right";
+                insert_after: "vshadow_clip";
+                 repeat_events: 1;
+                clip_to: "vshadow_clip";
+                type: IMAGE;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min: 10 0;
+                   fixed: 1 1;
+                   align: 1.0 0.5;
+                   color: 255 255 255 150;
+                   rel1.relative: 1.0 0.0;
+                   rel2.relative: 1.0 1.0;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                   image.normal: "00_overscrolling_right.png";
+                    visible: 1;
+                }
+                description { state: "edge_right" 0.0;
+                   inherit: "default" 0.0;
+                   color: 255 255 255 255;
+                    visible: 1;
+                }
+                description { state: "edge_left" 0.0;
+                   inherit: "default" 0.0;
+                   color: 255 255 255 50;
+                    visible: 1;
+                }
+             }
+             part { name: "shadow_left";
+                insert_after: "shadow_right";
+                 repeat_events: 1;
+                clip_to: "vshadow_clip";
+                type: IMAGE;
+                scale: 1;
+                description { state: "default" 0.0;
+                   min: 10 0;
+                   fixed: 1 1;
+                   align: 0.0 0.5;
+                   color: 255 255 255 150;
+                   rel1.relative: 0.0 0.0;
+                   rel2.relative: 0.0 1.0;
+                   rel1.to: "base";
+                   rel2.to: "base";
+                   image.normal: "00_overscrolling_left.png";
+                    visible: 1;
+                }
+                description { state: "edge_right" 0.0;
+                   inherit: "default" 0.0;
+                   color: 255 255 255 50;
+                     visible: 1;
+                }
+                description { state: "edge_left" 0.0;
+                   inherit: "default" 0.0;
+                   color: 255 255 255 255;
+                    visible: 1;
+                }
+             }
+       }
+       programs {
+               program { name: "load";
+                 signal: "load";
+                script {
+                   set_state(PART:"vshadow_clip", "hidden", 0.0);
+                   set_int(edge_timer, 0);
+                }
+             }
+               program { name: "vshadow_show";
+                signal: "do-show-vshadow";
+                source: "";
+                action:  STATE_SET "default" 0.0;
+                transition: LINEAR 0.5;
+                target: "vshadow_clip";
+             }
+             program { name: "vshadow_hide";
+                signal: "do-hide-vshadow";
+                source: "";
+                action:  STATE_SET "hidden" 0.0;
+                transition: LINEAR 0.5;
+                target: "vshadow_clip";
+             }
+
+               program { name: "edge_right";
+                signal: "elm,edge,right";
+                source: "elm";
+                script {
+                   new v;
+                   set_state(PART:"shadow_right", "edge_right", 0.0);
+                   set_state(PART:"shadow_left", "edge_right", 0.0);
+                   v = get_int(edge_timer);
+                   if (!v) {
+                       emit("do-show-vshadow", "");
+                   }
+                   if (v > 0) cancel_timer(v);
+                   v = timer(0.2, "timer2", 0);
+                   set_int(edge_timer, v);
+                }
+             }
+             program { name: "edge_left";
+                signal: "elm,edge,left";
+                source: "elm";
+                script {
+                   new v;
+                   set_state(PART:"shadow_right", "edge_left", 0.0);
+                   set_state(PART:"shadow_left", "edge_left", 0.0);
+                   v = get_int(edge_timer);
+                   if (!v) {
+                       emit("do-show-vshadow", "");
+                   }
+                   if (v > 0) cancel_timer(v);
+                   v = timer(0.2, "timer2", 0);
+                   set_int(edge_timer, v);
+                }
+             }
+       }
+}
diff --git a/data/edc/layout/inc.main.month.cal.weekly.edc b/data/edc/layout/inc.main.month.cal.weekly.edc
new file mode 100755 (executable)
index 0000000..38fa9c8
--- /dev/null
@@ -0,0 +1,2829 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//HD size 720x1280
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+#define HEIGHT_OF_WEEK_THIS (105.0*R_Y)
+#define HEIGHT_OF_TOP (30.0*R_Y)
+#define HEIGHT_OF_EVENT (35.0*R_Y)
+#define HEIGHT_OF_GAP (2.0*R_Y)
+#define HEIGHT_OF_CHECK (32.0*R_Y)
+#define HEIGHT_OF_HEADER (50.0*R_Y)
+#define HEIGHT_OF_FOCUSE_WEEK (360.0*R_Y)
+#define WIDTH_OF_DAY (720.0/7*R_X)
+#define HEIGHT_OF_LINE_CAL_Y (2.0*R_Y)
+#define HEIGHT_OF_LINE_CAL_X (2.0*R_Y)
+#define HEIGHT_OF_LINE_HEADER_X (3.0*R_Y)
+
+#define WIDTH_OF_DAY (102)
+#define WDAY_LEFT_OFFSET (8)
+#define DAY_LEFT_OFFSET (10)
+#define EVENT_LEFT_OFFSET (12)
+#define EVENT_HEIGHT_LANDSCAPE (50)
+#define DAY_HEIGHT_LANDSCAPE (80)
+
+#define WD(_pos) \
+       part { name, "wday/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative: (_pos % 7 / 7) 0; \
+                               to, "wday/base"; \
+                       } \
+                       rel2 { \
+                               relative: (_pos % 7 / 7 + 1 / 7) 1; \
+                               to, "wday/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "wday/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wday/"#_pos"/base"; \
+                       rel2.to, "wday/"#_pos"/base"; \
+                       color, COLOR_OF_WEEK_DAY_TEXT_FOR_MONTH_CAL; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                               align, 0.5 0.5; \
+                       } \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SUNDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SATDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+       } \
+       programs { \
+               program { name, "wday/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+               program { name, "wday/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+               program { name, "wday/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wday/"#_pos"/text"; \
+               } \
+       }
+
+#define WWDB(_line, _pos, _vert, _nums) \
+       part { name, "db/"#_pos"/base"; \
+               type, RECT; \
+               ignore_flags, ON_HOLD; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) \
+                                       (_line / _nums); \
+                               to_x, "day/base"; \
+                               to_y, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 0 \
+                                       (_line / _nums + 1 / _nums); \
+                               to_x, "vl/"#_vert; \
+                               to_y, "day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/img_bg"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min: WIDTH_OF_BG HEIGHT_OF_BG; \
+                       max: WIDTH_OF_BG HEIGHT_OF_BG; \
+                       fixed: 1 1; \
+                       align: 0.5 0.5; \
+                       rel1 { \
+                               relative, 0.0 0.0;\
+                               to_x, "db/"#_pos"/text_rect"; \
+                               to_y, "db/"#_pos"/text_rect"; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0;\
+                               to_x, "db/"#_pos"/text_rect"; \
+                               to_y, "db/"#_pos"/text_rect"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/today"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_TODAY_ICON; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/sel"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_SELSECTED_TODAY; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/bg"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "db/"#_pos"/base"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text_top_padding"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 28; \
+                       max, 0 28; \
+                       fixed, 1 1; \
+                       align, 0 0; \
+                       rel1 { \
+                         relative: 0.0 0.0; \
+                         to_x: "db/"#_pos"/base"; \
+                         to_y: "db/"#_pos"/base"; \
+                       } \
+                       rel2 { \
+                         relative: 1.0 0.0; \
+                         to_x: "db/"#_pos"/base"; \
+                         to_y: "db/"#_pos"/base"; \
+                       } \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text_rect"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 52; \
+                       max, 0 52; \
+                       fixed, 1 1; \
+                       align, 0.5 0; \
+                       rel1 { \
+                         relative: 0.0 1.0; \
+                         to_x: "db/"#_pos"/base"; \
+                         to_y: "db/"#_pos"/text_top_padding"; \
+                       } \
+                       rel2 { \
+                         relative: 1.0 1.0; \
+                         to_x: "db/"#_pos"/base"; \
+                         to_y:  "db/"#_pos"/text_top_padding"; \
+                       } \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       text { \
+                               font, "SLP:style=Regular"; \
+                               size, 52; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL; \
+               } \
+       } \
+       part { name, "db/"#_pos"/block"; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       color, 0 0 0 0; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       programs { \
+               program { name, "db/"#_pos"/go_up"; \
+                       signal, "up,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/bg"; \
+               } \
+               program { name, "db/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "dn,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "up,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+               } \
+               program { name, "db/"#_pos"/select_today"; \
+                       signal, "select,today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/set_today"; \
+                       signal, "today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/unset_today"; \
+                       signal, "notoday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/set_focus_week"; \
+                       signal, "week,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 1.0; \
+                       target, "db/"#_pos"/base"; \
+               } \
+               program { name, "db/"#_pos"/unset_focus_week"; \
+                       signal, "noweek,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/base"; \
+               } \
+               program { name, "db/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/disable"; \
+                       signal, "disable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "disabled" 0.0; \
+                       target, "db/"#_pos"/text"; \
+                       target, "db/"#_pos"/block"; \
+               } \
+               program { name, "db/"#_pos"/enable"; \
+                       signal, "enable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/block"; \
+               } \
+       }
+
+#define WWDB_L(_line, _pos, _vert, _nums) \
+       part { name, "db/"#_pos"/base"; \
+               type, RECT; \
+               ignore_flags, ON_HOLD; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) \
+                                       (_line / _nums); \
+                               to_x, "day/base"; \
+                               to_y, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 0 \
+                                       (_line / _nums + 1 / _nums); \
+                               to_x, "vl/"#_vert; \
+                               to_y, "day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/img_bg"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min: WIDTH_OF_BG_L HEIGHT_OF_BG_L; \
+                       max: WIDTH_OF_BG_L HEIGHT_OF_BG_L; \
+                       fixed: 1 1; \
+                       align: 0.5 0.5; \
+                       rel1 { \
+                               relative, 0.0 0.0;\
+                               to_x, "db/"#_pos"/text_rect"; \
+                               to_y, "db/"#_pos"/text_rect"; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0;\
+                               to_x, "db/"#_pos"/text_rect"; \
+                               to_y, "db/"#_pos"/text_rect"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/today"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_TODAY_ICON; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/sel"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       image { \
+                               normal, CALENDAR_SELSECTED_TODAY; \
+                               border, 3 3 3 3; \
+                               border_scale,1 ; \
+                       } \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/bg"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "db/"#_pos"/base"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text_top_padding"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 2; \
+                       max, 0 2; \
+                       fixed, 1 1; \
+                       align, 0 0; \
+                       rel1 { \
+                         relative: 0.0 0.0; \
+                         to_x: "db/"#_pos"/base"; \
+                         to_y: "db/"#_pos"/base"; \
+                       } \
+                       rel2 { \
+                         relative: 1.0 0.0; \
+                         to_x: "db/"#_pos"/base"; \
+                         to_y: "db/"#_pos"/base"; \
+                       } \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text_rect"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 58; \
+                       max, 0 58; \
+                       fixed, 1 1; \
+                       align, 0.5 0; \
+                       rel1 { \
+                         relative: 0.0 1.0; \
+                         to_x: "db/"#_pos"/base"; \
+                         to_y: "db/"#_pos"/text_top_padding"; \
+                       } \
+                       rel2 { \
+                         relative: 1.0 1.0; \
+                         to_x: "db/"#_pos"/base"; \
+                         to_y:  "db/"#_pos"/text_top_padding"; \
+                       } \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "db/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/img_bg"; \
+                       rel2.to, "db/"#_pos"/img_bg"; \
+                       text { \
+                               font, "SLP:style=Regular"; \
+                               size, 40; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_BLOCK_DEFAULT_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SUNDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SATDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_DISABLEDAY_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_BLOCK_SELECTED_TEXT_FOR_MONTH_CAL; \
+               } \
+       } \
+       part { name, "db/"#_pos"/block"; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "db/"#_pos"/base"; \
+                       rel2.to, "db/"#_pos"/base"; \
+                       color, 0 0 0 0; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "disabled" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       programs { \
+               program { name, "db/"#_pos"/go_up"; \
+                       signal, "up,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/bg"; \
+               } \
+               program { name, "db/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "dn,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "db/"#_pos"/base"; \
+                       action, SIGNAL_EMIT "up,"_pos "cal"; \
+               } \
+               program { name, "db/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+               } \
+               program { name, "db/"#_pos"/select_today"; \
+                       signal, "select,today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "db/"#_pos"/sel"; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/set_today"; \
+                       signal, "today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/unset_today"; \
+                       signal, "notoday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/today"; \
+               } \
+               program { name, "db/"#_pos"/set_focus_week"; \
+                       signal, "week,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 1.0; \
+                       target, "db/"#_pos"/base"; \
+               } \
+               program { name, "db/"#_pos"/unset_focus_week"; \
+                       signal, "noweek,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/base"; \
+               } \
+               program { name, "db/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "db/"#_pos"/text"; \
+               } \
+               program { name, "db/"#_pos"/disable"; \
+                       signal, "disable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "disabled" 0.0; \
+                       target, "db/"#_pos"/text"; \
+                       target, "db/"#_pos"/block"; \
+               } \
+               program { name, "db/"#_pos"/enable"; \
+                       signal, "enable,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "db/"#_pos"/block"; \
+               } \
+       }
+
+// vertical line
+#undef VL
+#define VL(_pos) \
+       part { name, "vl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos / 7) 0; \
+                               offset, 0 -1; \
+                               to, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos / 7) 1; \
+                               offset, 0 -1; \
+                               to, "day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       }
+
+#define VL_W(_pos) \
+       part { name, "vl_w/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos / 7) 0; \
+                               offset, 0 -1; \
+                               to, "wday/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos / 7) 1; \
+                               offset, 0 -1; \
+                               to, "wday/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       }
+
+// horizontal line
+#define WHL(_pos, _nums) \
+       part { name, "hl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0 (_pos / _nums); \
+                               to, "day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 (_pos / _nums); \
+                               offset, -1 0; \
+                               to, "day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       }
+
+#define LISTL(_pos) \
+               part { name, "list/base/"#_pos; \
+                       type, RECT; \
+                       description { \
+                               state, "default" 0.0; \
+                               min, 0 75; \
+                               fixed, 1 1; \
+                               align, 0.0 1.0; \
+                               rel1 { \
+                                       relative, 0.0 1.0; \
+                                       to_x, "day/base"; \
+                                       to_y, "db/"#_pos"/base"; \
+                               } \
+                               rel2 { \
+                                       relative, 1.0 1.0; \
+                                       to_x, "day/base"; \
+                                       to_y, "db/"#_pos"/base"; \
+                               } \
+                               color, 0 0 0 0; \
+                       } \
+               } \
+               part { name, "list/sw/"#_pos; \
+                       type, SWALLOW; \
+                       description { \
+                               state, "default" 0.0; \
+                               rel1.to, "list/base/"#_pos; \
+                               rel2.to, "list/base/"#_pos; \
+                       }\
+               }
+
+#define LISTL_L(_pos) \
+               part { name, "list/base/"#_pos; \
+                       type, RECT; \
+                       description { \
+                               state, "default" 0.0; \
+                               min, 0 25; \
+                               fixed, 1 1; \
+                               align, 0.0 1.0; \
+                               rel1 { \
+                                       relative, 0.0 1.0; \
+                                       to_x, "day/base"; \
+                                       to_y, "db/"#_pos"/base"; \
+                               } \
+                               rel2 { \
+                                       relative, 1.0 1.0; \
+                                       to_x, "day/base"; \
+                                       to_y, "db/"#_pos"/base"; \
+                               } \
+                               color, 0 0 0 0; \
+                       } \
+               } \
+               part { name, "list/sw/"#_pos; \
+                       type, SWALLOW; \
+                       description { \
+                               state, "default" 0.0; \
+                               rel1.to, "list/base/"#_pos; \
+                               rel2.to, "list/base/"#_pos; \
+                       }\
+               }
+
+#define WNHL(_pos, _nums) \
+       part { name, "weeknumber/hl/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0 (_pos / _nums); \
+                               to, "weeknumber/day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 (_pos / _nums); \
+                               offset, -1 0; \
+                               to, "weeknumber/day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       }
+
+#define WNMUBER(_line, _nums) \
+       part { name, "wn/"#_line"/base"; \
+               type, RECT; \
+               ignore_flags, ON_HOLD; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0 \
+                                       (_line / _nums); \
+                               to_x, "weeknumber/day/base"; \
+                               to_y, "weeknumber/day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 \
+                                       (_line / _nums + 1 / _nums); \
+                               to_x, "weeknumber/day/base"; \
+                               to_y, "weeknumber/day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "wn/"#_line"/text_top_padding"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 28; \
+                       fixed, 0 1; \
+                       align, 0 0; \
+                       rel1 { \
+                         relative: 0.0 0.0; \
+                         to_x: "wn/"#_line"/base"; \
+                         to_y: "wn/"#_line"/base"; \
+                       } \
+                       rel2 { \
+                         relative: 1.0 0.0; \
+                         to_x: "wn/"#_line"/base"; \
+                         to_y: "wn/"#_line"/base"; \
+                       } \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "wn/"#_line"/text_rect"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 52; \
+                       fixed, 0 1; \
+                       align, 0 0; \
+                       rel1 { \
+                         relative: 0.0 1.0; \
+                         to_x: "wn/"#_line"/base"; \
+                         to_y: "wn/"#_line"/text_top_padding"; \
+                       } \
+                       rel2 { \
+                         relative: 1.0 1.0; \
+                         to_x: "wn/"#_line"/base"; \
+                         to_y:  "wn/"#_line"/text_top_padding"; \
+                       } \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "wn/"#_line"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wn/"#_line"/text_rect"; \
+                       rel2.to, "wn/"#_line"/text_rect"; \
+                       text { \
+                               font, "SLP:style=Regular"; \
+                               size, 32; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_WEEK_NUMBER_TEXT_FOR_MONTH_CAL; \
+               } \
+       }
+
+#define WNMUBER_L(_line, _nums) \
+       part { name, "wn/"#_line"/base"; \
+               type, RECT; \
+               ignore_flags, ON_HOLD; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0 \
+                                       (_line / _nums); \
+                               to_x, "weeknumber/day/base"; \
+                               to_y, "weeknumber/day/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 \
+                                       (_line / _nums + 1 / _nums); \
+                               to_x, "weeknumber/day/base"; \
+                               to_y, "weeknumber/day/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "wn/"#_line"/text_top_padding"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 2; \
+                       fixed, 0 1; \
+                       align, 0 0; \
+                       rel1 { \
+                         relative: 0.0 0.0; \
+                         to_x: "wn/"#_line"/base"; \
+                         to_y: "wn/"#_line"/base"; \
+                       } \
+                       rel2 { \
+                         relative: 1.0 0.0; \
+                         to_x: "wn/"#_line"/base"; \
+                         to_y: "wn/"#_line"/base"; \
+                       } \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "wn/"#_line"/text_rect"; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 58; \
+                       fixed, 0 1; \
+                       align, 0 0; \
+                       rel1 { \
+                         relative: 0.0 1.0; \
+                         to_x: "wn/"#_line"/base"; \
+                         to_y: "wn/"#_line"/text_top_padding"; \
+                       } \
+                       rel2 { \
+                         relative: 1.0 1.0; \
+                         to_x: "wn/"#_line"/base"; \
+                         to_y:  "wn/"#_line"/text_top_padding"; \
+                       } \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "wn/"#_line"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wn/"#_line"/text_rect"; \
+                       rel2.to, "wn/"#_line"/text_rect"; \
+                       text { \
+                               font, "SLP:style=Regular"; \
+                               size, 32; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_WEEK_NUMBER_TEXT_FOR_MONTH_CAL; \
+               } \
+       }
+
+#define DATE_EDGE_SHADOW_SCRIPT_HEADER \
+       script { \
+             public edge_timer;\
+             public timer2(val) {\
+                emit("do-hide-vshadow", "");\
+                set_int(edge_timer, 0);\
+                return 0;\
+             }\
+       }
+
+#define DATE_EDGE_SHADOW_IMAGES_FILE \
+       image: "00_overscrolling_left.png" COMP;\
+       image: "00_overscrolling_right.png" COMP;
+
+#define DATE_EDGE_SHADOW_PART \
+               part { name: "vshadow_clip";\
+                type: RECT;\
+                mouse_events: 0;\
+                 repeat_events: 1;\
+                scale: 1;\
+                description { state: "default" 0.0;\
+                }\
+                description { state: "hidden" 0.0;\
+                   visible: 0;\
+                   color: 255 255 255 0;\
+                }\
+             }\
+             part { name: "shadow_right";\
+                insert_after: "vshadow_clip";\
+                 repeat_events: 1;\
+                clip_to: "vshadow_clip";\
+                type: IMAGE;\
+                scale: 1;\
+                description { state: "default" 0.0;\
+                   min: 10 0;\
+                   fixed: 1 1;\
+                   align: 1.0 0.5;\
+                   color: 255 255 255 150;\
+                   rel1.relative: 1.0 0.0;\
+                   rel2.relative: 1.0 1.0;\
+                   rel1.to: "base";\
+                   rel2.to: "base";\
+                   image.normal: "00_overscrolling_right.png";\
+                    visible: 1;\
+                }\
+                description { state: "edge_right" 0.0;\
+                   inherit: "default" 0.0;\
+                   color: 255 255 255 255;\
+                    visible: 1;\
+                }\
+                description { state: "edge_left" 0.0;\
+                   inherit: "default" 0.0;\
+                   color: 255 255 255 50;\
+                    visible: 1;\
+                }\
+             }\
+             part { name: "shadow_left";\
+                insert_after: "shadow_right";\
+                 repeat_events: 1;\
+                clip_to: "vshadow_clip";\
+                type: IMAGE;\
+                scale: 1;\
+                description { state: "default" 0.0;\
+                   min: 10 0;\
+                   fixed: 1 1;\
+                   align: 0.0 0.5;\
+                   color: 255 255 255 150;\
+                   rel1.relative: 0.0 0.0;\
+                   rel2.relative: 0.0 1.0;\
+                   rel1.to: "base";\
+                   rel2.to: "base";\
+                   image.normal: "00_overscrolling_left.png";\
+                    visible: 1;\
+                }\
+                description { state: "edge_right" 0.0;\
+                   inherit: "default" 0.0;\
+                   color: 255 255 255 50;\
+                     visible: 1;\
+                }\
+                description { state: "edge_left" 0.0;\
+                   inherit: "default" 0.0;\
+                   color: 255 255 255 255;\
+                    visible: 1;\
+                }\
+             }\
+
+#define DATE_EDGE_SHADOW_PROGRAMS \
+       programs {\
+               program { name: "load";\
+                 signal: "load";\
+                script {\
+                   set_state(PART:"vshadow_clip", "hidden", 0.0);\
+                   set_int(edge_timer, 0);\
+                }\
+             }\
+               program { name: "vshadow_show";\
+                signal: "do-show-vshadow";\
+                source: "";\
+                action:  STATE_SET "default" 0.0;\
+                transition: LINEAR 0.5;\
+                target: "vshadow_clip";\
+             }\
+             program { name: "vshadow_hide";\
+                signal: "do-hide-vshadow";\
+                source: "";\
+                action:  STATE_SET "hidden" 0.0;\
+                transition: LINEAR 0.5;\
+                target: "vshadow_clip";\
+             }\
+               program { name: "edge_right";\
+                signal: "elm,edge,right";\
+                source: "elm";\
+                script {\
+                   new v;\
+                   set_state(PART:"shadow_right", "edge_right", 0.0);\
+                   set_state(PART:"shadow_left", "edge_right", 0.0);\
+                   v = get_int(edge_timer);\
+                   if (!v) {\
+                       emit("do-show-vshadow", "");\
+                   }\
+                   if (v > 0) cancel_timer(v);\
+                   v = timer(0.2, "timer2", 0);\
+                   set_int(edge_timer, v);\
+                }\
+             }\
+             program { name: "edge_left";\
+                signal: "elm,edge,left";\
+                source: "elm";\
+                script {\
+                   new v;\
+                   set_state(PART:"shadow_right", "edge_left", 0.0);\
+                   set_state(PART:"shadow_left", "edge_left", 0.0);\
+                   v = get_int(edge_timer);\
+                   if (!v) {\
+                       emit("do-show-vshadow", "");\
+                   }\
+                   if (v > 0) cancel_timer(v);\
+                   v = timer(0.2, "timer2", 0);\
+                   set_int(edge_timer, v);\
+                }\
+             }\
+       }\
+
+group { name, "main/month/cal/weekly/6";
+       DATE_EDGE_SHADOW_SCRIPT_HEADER
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, CALENDAR_MONTH_VIEW_DIM COMP;
+               image, CALENDAR_SELSECTED_TODAY COMP;
+               DATE_EDGE_SHADOW_IMAGES_FILE
+       }
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (0/HEIGHT_OF_CALENDAR_SW); to, "base"; }
+                               rel2 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               rel2 { relative, 0.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "weeknumber/wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "weeknumber/wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               part { name, "wday/weeknumber/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to, "weeknumber/wday/base";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to, "weeknumber/wday/base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wday/weeknumber/text";
+                       type, TEXT;
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "wday/weeknumber/base";
+                               rel2.to, "wday/weeknumber/base";
+                               color, COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL;
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 24;
+                                       align, 0.5 0.5;
+                               }
+                       }
+               }
+
+               WNMUBER(0, 6) WNMUBER(1, 6) WNMUBER(2, 6) WNMUBER(3, 6) WNMUBER(4, 6) WNMUBER(5, 6)
+
+               WNHL(1, 6) WNHL(2, 6) WNHL(3, 6) WNHL(4, 6) WNHL(5, 6) WNHL(6, 6)
+
+               programs {
+                       program { name, "display_week_number";
+                               signal, "display_week_number";
+                               source, "prog";
+                               action, STATE_SET "default" 0.1;
+                               target, "weeknumber/wday/base";
+                               target, "weeknumber/day/base";
+                       }
+               }
+
+               part { name, "wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (0/HEIGHT_OF_CALENDAR_SW);  to_x, "weeknumber/wday/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW;  to_x, "weeknumber/day/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               WD(0) WD(1) WD(2) WD(3) WD(4) WD(5) WD(6)
+               VL_W(1) VL_W(2) VL_W(3) VL_W(4) VL_W(5) VL_W(6) VL_W(7)
+
+               WWDB(0,  0, 1, 6) WWDB(0,  1, 2, 6) WWDB(0,  2, 3, 6) WWDB(0,  3, 4, 6) WWDB(0,  4, 5, 6) WWDB(0,  5, 6, 6) WWDB(0,  6, 7, 6)
+               WWDB(1,  7, 1, 6) WWDB(1,  8, 2, 6) WWDB(1,  9, 3, 6) WWDB(1, 10, 4, 6) WWDB(1, 11, 5, 6) WWDB(1, 12, 6, 6) WWDB(1, 13, 7, 6)
+               WWDB(2, 14, 1, 6) WWDB(2, 15, 2, 6) WWDB(2, 16, 3, 6) WWDB(2, 17, 4, 6) WWDB(2, 18, 5, 6) WWDB(2, 19, 6, 6) WWDB(2, 20, 7, 6)
+               WWDB(3, 21, 1, 6) WWDB(3, 22, 2, 6) WWDB(3, 23, 3, 6) WWDB(3, 24, 4, 6) WWDB(3, 25, 5, 6) WWDB(3, 26, 6, 6) WWDB(3, 27, 7, 6)
+               WWDB(4, 28, 1, 6) WWDB(4, 29, 2, 6) WWDB(4, 30, 3, 6) WWDB(4, 31, 4, 6) WWDB(4, 32, 5, 6) WWDB(4, 33, 6, 6) WWDB(4, 34, 7, 6)
+               WWDB(5, 35, 1, 6) WWDB(5, 36, 2, 6) WWDB(5, 37, 3, 6) WWDB(5, 38, 4, 6) WWDB(5, 39, 5, 6) WWDB(5, 40, 6, 6) WWDB(5, 41, 7, 6)
+
+               VL(1) VL(2) VL(3) VL(4) VL(5) VL(6) VL(7)
+
+               WHL(1, 6) WHL(2, 6) WHL(3, 6) WHL(4, 6) WHL(5, 6) WHL(6, 6)
+
+               LISTL(0) LISTL(7) LISTL(14) LISTL(21) LISTL(28) LISTL(35)
+
+               DATE_EDGE_SHADOW_PART
+               DATE_EDGE_SHADOW_PROGRAMS
+       }
+}
+
+group { name, "main/month/cal/weekly/5";
+       DATE_EDGE_SHADOW_SCRIPT_HEADER
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, CALENDAR_MONTH_VIEW_DIM COMP;
+               image, CALENDAR_SELSECTED_TODAY COMP;
+               DATE_EDGE_SHADOW_IMAGES_FILE
+       }
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (0/HEIGHT_OF_CALENDAR_SW); to, "base"; }
+                               rel2 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               rel2 { relative, 0.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "weeknumber/wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "weeknumber/wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               part { name, "wday/weeknumber/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to, "weeknumber/wday/base";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to, "weeknumber/wday/base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wday/weeknumber/text";
+                       type, TEXT;
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "wday/weeknumber/base";
+                               rel2.to, "wday/weeknumber/base";
+                               color, COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL;
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 24;
+                                       align, 0.5 0.5;
+                               }
+                       }
+               }
+
+               WNMUBER(0, 5) WNMUBER(1, 5) WNMUBER(2, 5) WNMUBER(3, 5) WNMUBER(4, 5)
+
+               WNHL(1, 5) WNHL(2, 5) WNHL(3, 5) WNHL(4, 5) WNHL(5, 5)
+
+               programs {
+                       program { name, "display_week_number";
+                               signal, "display_week_number";
+                               source, "prog";
+                               action, STATE_SET "default" 0.1;
+                               target, "weeknumber/wday/base";
+                               target, "weeknumber/day/base";
+                       }
+               }
+
+               part { name, "wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (0/HEIGHT_OF_CALENDAR_SW);  to_x, "weeknumber/wday/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW;  to_x, "weeknumber/day/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               WD(0) WD(1) WD(2) WD(3) WD(4) WD(5) WD(6)
+               VL_W(1) VL_W(2) VL_W(3) VL_W(4) VL_W(5) VL_W(6) VL_W(7)
+
+               WWDB(0,  0, 1, 5) WWDB(0,  1, 2, 5) WWDB(0,  2, 3, 5) WWDB(0,  3, 4, 5) WWDB(0,  4, 5, 5) WWDB(0,  5, 6, 5) WWDB(0,  6, 7, 5)
+               WWDB(1,  7, 1, 5) WWDB(1,  8, 2, 5) WWDB(1,  9, 3, 5) WWDB(1, 10, 4, 5) WWDB(1, 11, 5, 5) WWDB(1, 12, 6, 5) WWDB(1, 13, 7, 5)
+               WWDB(2, 14, 1, 5) WWDB(2, 15, 2, 5) WWDB(2, 16, 3, 5) WWDB(2, 17, 4, 5) WWDB(2, 18, 5, 5) WWDB(2, 19, 6, 5) WWDB(2, 20, 7, 5)
+               WWDB(3, 21, 1, 5) WWDB(3, 22, 2, 5) WWDB(3, 23, 3, 5) WWDB(3, 24, 4, 5) WWDB(3, 25, 5, 5) WWDB(3, 26, 6, 5) WWDB(3, 27, 7, 5)
+               WWDB(4, 28, 1, 5) WWDB(4, 29, 2, 5) WWDB(4, 30, 3, 5) WWDB(4, 31, 4, 5) WWDB(4, 32, 5, 5) WWDB(4, 33, 6, 5) WWDB(4, 34, 7, 5)
+
+               VL(1) VL(2) VL(3) VL(4) VL(5) VL(6) VL(7)
+
+               WHL(1, 5) WHL(2, 5) WHL(3, 5) WHL(4, 5) WHL(5, 5)
+
+               LISTL(0) LISTL(7) LISTL(14) LISTL(21) LISTL(28)
+               DATE_EDGE_SHADOW_PART
+               DATE_EDGE_SHADOW_PROGRAMS
+       }
+}
+
+group { name, "main/month/cal/weekly/4";
+       DATE_EDGE_SHADOW_SCRIPT_HEADER
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, CALENDAR_MONTH_VIEW_DIM COMP;
+               image, CALENDAR_SELSECTED_TODAY COMP;
+               DATE_EDGE_SHADOW_IMAGES_FILE
+       }
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (0/HEIGHT_OF_CALENDAR_SW); to, "base"; }
+                               rel2 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               rel2 { relative, 0.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "weeknumber/wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "weeknumber/wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               part { name, "wday/weeknumber/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to, "weeknumber/wday/base";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to, "weeknumber/wday/base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wday/weeknumber/text";
+                       type, TEXT;
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "wday/weeknumber/base";
+                               rel2.to, "wday/weeknumber/base";
+                               color, COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL;
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 24;
+                                       align, 0.5 0.5;
+                               }
+                       }
+               }
+
+               WNMUBER(0, 4) WNMUBER(1, 4) WNMUBER(2, 4) WNMUBER(3, 4)
+
+               WNHL(1, 4) WNHL(2, 4) WNHL(3, 4) WNHL(4, 4)
+
+               programs {
+                       program { name, "display_week_number";
+                               signal, "display_week_number";
+                               source, "prog";
+                               action, STATE_SET "default" 0.1;
+                               target, "weeknumber/wday/base";
+                               target, "weeknumber/day/base";
+                       }
+               }
+
+               part { name, "wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (0/HEIGHT_OF_CALENDAR_SW);  to_x, "weeknumber/wday/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW;  to_x, "weeknumber/day/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               WD(0) WD(1) WD(2) WD(3) WD(4) WD(5) WD(6)
+               VL_W(1) VL_W(2) VL_W(3) VL_W(4) VL_W(5) VL_W(6) VL_W(7)
+
+               WWDB(0,  0, 1, 4) WWDB(0,  1, 2, 4) WWDB(0,  2, 3, 4) WWDB(0,  3, 4, 4) WWDB(0,  4, 5, 4) WWDB(0,  5, 6, 4) WWDB(0,  6, 7, 4)
+               WWDB(1,  7, 1, 4) WWDB(1,  8, 2, 4) WWDB(1,  9, 3, 4) WWDB(1, 10, 4, 4) WWDB(1, 11, 5, 4) WWDB(1, 12, 6, 4) WWDB(1, 13, 7, 4)
+               WWDB(2, 14, 1, 4) WWDB(2, 15, 2, 4) WWDB(2, 16, 3, 4) WWDB(2, 17, 4, 4) WWDB(2, 18, 5, 4) WWDB(2, 19, 6, 4) WWDB(2, 20, 7, 4)
+               WWDB(3, 21, 1, 4) WWDB(3, 22, 2, 4) WWDB(3, 23, 3, 4) WWDB(3, 24, 4, 4) WWDB(3, 25, 5, 4) WWDB(3, 26, 6, 4) WWDB(3, 27, 7, 4)
+
+               VL(1) VL(2) VL(3) VL(4) VL(5) VL(6) VL(7)
+
+               WHL(1, 4) WHL(2, 4) WHL(3, 4) WHL(4, 4)
+
+               LISTL(0) LISTL(7) LISTL(14) LISTL(21)
+
+               DATE_EDGE_SHADOW_PART
+               DATE_EDGE_SHADOW_PROGRAMS
+       }
+}
+
+group { name, "main/month/cal/weekly/6/l";
+        DATE_EDGE_SHADOW_SCRIPT_HEADER
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, CALENDAR_MONTH_VIEW_DIM COMP;
+               image, CALENDAR_SELSECTED_TODAY COMP;
+               DATE_EDGE_SHADOW_IMAGES_FILE
+       }
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER_L 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (0/HEIGHT_OF_CALENDAR_SW); to, "base"; }
+                               rel2 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER_L 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               rel2 { relative, 0.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "weeknumber/wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "weeknumber/wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               part { name, "wday/weeknumber/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to, "weeknumber/wday/base";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to, "weeknumber/wday/base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wday/weeknumber/text";
+                       type, TEXT;
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "wday/weeknumber/base";
+                               rel2.to, "wday/weeknumber/base";
+                               color, COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL;
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 24;
+                                       align, 0.5 0.5;
+                               }
+                       }
+               }
+
+               WNMUBER_L(0, 6) WNMUBER_L(1, 6) WNMUBER_L(2, 6) WNMUBER_L(3, 6) WNMUBER_L(4, 6) WNMUBER_L(5, 6)
+
+               WNHL(1, 6) WNHL(2, 6) WNHL(3, 6) WNHL(4, 6) WNHL(5, 6) WNHL(6, 6)
+
+               programs {
+                       program { name, "display_week_number";
+                               signal, "display_week_number";
+                               source, "prog";
+                               action, STATE_SET "default" 0.1;
+                               target, "weeknumber/wday/base";
+                               target, "weeknumber/day/base";
+                       }
+               }
+
+               part { name, "wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (0/HEIGHT_OF_CALENDAR_SW);  to_x, "weeknumber/wday/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW;  to_x, "weeknumber/day/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               WD(0) WD(1) WD(2) WD(3) WD(4) WD(5) WD(6)
+               VL_W(1) VL_W(2) VL_W(3) VL_W(4) VL_W(5) VL_W(6) VL_W(7)
+
+               WWDB_L(0,  0, 1, 6) WWDB_L(0,  1, 2, 6) WWDB_L(0,  2, 3, 6) WWDB_L(0,  3, 4, 6) WWDB_L(0,  4, 5, 6) WWDB_L(0,  5, 6, 6) WWDB_L(0,  6, 7, 6)
+               WWDB_L(1,  7, 1, 6) WWDB_L(1,  8, 2, 6) WWDB_L(1,  9, 3, 6) WWDB_L(1, 10, 4, 6) WWDB_L(1, 11, 5, 6) WWDB_L(1, 12, 6, 6) WWDB_L(1, 13, 7, 6)
+               WWDB_L(2, 14, 1, 6) WWDB_L(2, 15, 2, 6) WWDB_L(2, 16, 3, 6) WWDB_L(2, 17, 4, 6) WWDB_L(2, 18, 5, 6) WWDB_L(2, 19, 6, 6) WWDB_L(2, 20, 7, 6)
+               WWDB_L(3, 21, 1, 6) WWDB_L(3, 22, 2, 6) WWDB_L(3, 23, 3, 6) WWDB_L(3, 24, 4, 6) WWDB_L(3, 25, 5, 6) WWDB_L(3, 26, 6, 6) WWDB_L(3, 27, 7, 6)
+               WWDB_L(4, 28, 1, 6) WWDB_L(4, 29, 2, 6) WWDB_L(4, 30, 3, 6) WWDB_L(4, 31, 4, 6) WWDB_L(4, 32, 5, 6) WWDB_L(4, 33, 6, 6) WWDB_L(4, 34, 7, 6)
+               WWDB_L(5, 35, 1, 6) WWDB_L(5, 36, 2, 6) WWDB_L(5, 37, 3, 6) WWDB_L(5, 38, 4, 6) WWDB_L(5, 39, 5, 6) WWDB_L(5, 40, 6, 6) WWDB_L(5, 41, 7, 6)
+
+               VL(1) VL(2) VL(3) VL(4) VL(5) VL(6) VL(7)
+
+               WHL(1, 6) WHL(2, 6) WHL(3, 6) WHL(4, 6) WHL(5, 6) WHL(6, 6)
+
+               LISTL_L(0) LISTL_L(7) LISTL_L(14) LISTL_L(21) LISTL_L(28) LISTL_L(35)
+
+               DATE_EDGE_SHADOW_PART
+               DATE_EDGE_SHADOW_PROGRAMS
+       }
+}
+
+group { name, "main/month/cal/weekly/5/l";
+       DATE_EDGE_SHADOW_SCRIPT_HEADER
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, CALENDAR_MONTH_VIEW_DIM COMP;
+               image, CALENDAR_SELSECTED_TODAY COMP;
+               DATE_EDGE_SHADOW_IMAGES_FILE
+       }
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER_L 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (0/HEIGHT_OF_CALENDAR_SW); to, "base"; }
+                               rel2 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER_L 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               rel2 { relative, 0.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "weeknumber/wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "weeknumber/wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               part { name, "wday/weeknumber/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to, "weeknumber/wday/base";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to, "weeknumber/wday/base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wday/weeknumber/text";
+                       type, TEXT;
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "wday/weeknumber/base";
+                               rel2.to, "wday/weeknumber/base";
+                               color, COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL;
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 24;
+                                       align, 0.5 0.5;
+                               }
+                       }
+               }
+
+               WNMUBER_L(0, 5) WNMUBER_L(1, 5) WNMUBER_L(2, 5) WNMUBER_L(3, 5) WNMUBER_L(4, 5)
+
+               WNHL(1, 5) WNHL(2, 5) WNHL(3, 5) WNHL(4, 5) WNHL(5, 5)
+
+               programs {
+                       program { name, "display_week_number";
+                               signal, "display_week_number";
+                               source, "prog";
+                               action, STATE_SET "default" 0.1;
+                               target, "weeknumber/wday/base";
+                               target, "weeknumber/day/base";
+                       }
+               }
+
+               part { name, "wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (0/HEIGHT_OF_CALENDAR_SW);  to_x, "weeknumber/wday/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW;  to_x, "weeknumber/day/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               WD(0) WD(1) WD(2) WD(3) WD(4) WD(5) WD(6)
+               VL_W(1) VL_W(2) VL_W(3) VL_W(4) VL_W(5) VL_W(6) VL_W(7)
+
+               WWDB_L(0,  0, 1, 5) WWDB_L(0,  1, 2, 5) WWDB_L(0,  2, 3, 5) WWDB_L(0,  3, 4, 5) WWDB_L(0,  4, 5, 5) WWDB_L(0,  5, 6, 5) WWDB_L(0,  6, 7, 5)
+               WWDB_L(1,  7, 1, 5) WWDB_L(1,  8, 2, 5) WWDB_L(1,  9, 3, 5) WWDB_L(1, 10, 4, 5) WWDB_L(1, 11, 5, 5) WWDB_L(1, 12, 6, 5) WWDB_L(1, 13, 7, 5)
+               WWDB_L(2, 14, 1, 5) WWDB_L(2, 15, 2, 5) WWDB_L(2, 16, 3, 5) WWDB_L(2, 17, 4, 5) WWDB_L(2, 18, 5, 5) WWDB_L(2, 19, 6, 5) WWDB_L(2, 20, 7, 5)
+               WWDB_L(3, 21, 1, 5) WWDB_L(3, 22, 2, 5) WWDB_L(3, 23, 3, 5) WWDB_L(3, 24, 4, 5) WWDB_L(3, 25, 5, 5) WWDB_L(3, 26, 6, 5) WWDB_L(3, 27, 7, 5)
+               WWDB_L(4, 28, 1, 5) WWDB_L(4, 29, 2, 5) WWDB_L(4, 30, 3, 5) WWDB_L(4, 31, 4, 5) WWDB_L(4, 32, 5, 5) WWDB_L(4, 33, 6, 5) WWDB_L(4, 34, 7, 5)
+
+               VL(1) VL(2) VL(3) VL(4) VL(5) VL(6) VL(7)
+
+               WHL(1, 5) WHL(2, 5) WHL(3, 5) WHL(4, 5) WHL(5, 5)
+
+               LISTL_L(0) LISTL_L(7) LISTL_L(14) LISTL_L(21) LISTL_L(28)
+
+               DATE_EDGE_SHADOW_PART
+               DATE_EDGE_SHADOW_PROGRAMS
+       }
+}
+
+group { name, "main/month/cal/weekly/4/l";
+       DATE_EDGE_SHADOW_SCRIPT_HEADER
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, CALENDAR_MONTH_VIEW_DIM COMP;
+               image, CALENDAR_SELSECTED_TODAY COMP;
+               DATE_EDGE_SHADOW_IMAGES_FILE
+       }
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER_L 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (0/HEIGHT_OF_CALENDAR_SW); to, "base"; }
+                               rel2 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 0.0 0.0; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               min, WIDTH_OF_WNUMBER_L 0;
+                               fixed, 1 0;
+                               align, 0 0;
+                               rel1 { relative, 0.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               rel2 { relative, 0.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "weeknumber/wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "weeknumber/wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "weeknumber/wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               part { name, "wday/weeknumber/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0 0;
+                                       to, "weeknumber/wday/base";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to, "weeknumber/wday/base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wday/weeknumber/text";
+                       type, TEXT;
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "wday/weeknumber/base";
+                               rel2.to, "wday/weeknumber/base";
+                               color, COLOR_OF_WEEK_NUMBER_WDAY_FOR_MONTH_CAL;
+                               text {
+                                       font, "SLP:style=Regular";
+                                       size, 24;
+                                       align, 0.5 0.5;
+                               }
+                       }
+               }
+
+               WNMUBER_L(0, 4) WNMUBER_L(1, 4) WNMUBER_L(2, 4) WNMUBER_L(3, 4)
+
+               WNHL(1, 4) WNHL(2, 4) WNHL(3, 4) WNHL(4, 4)
+
+               programs {
+                       program { name, "display_week_number";
+                               signal, "display_week_number";
+                               source, "prog";
+                               action, STATE_SET "default" 0.1;
+                               target, "weeknumber/wday/base";
+                               target, "weeknumber/day/base";
+                       }
+               }
+
+               part { name, "wday/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (0/HEIGHT_OF_CALENDAR_SW);  to_x, "weeknumber/wday/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "day/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 (HEIGHT_OF_WDAY+HEIGHT_OF_WDAY_LINE)/HEIGHT_OF_CALENDAR_SW;  to_x, "weeknumber/day/base"; to_y, "base"; }
+                               rel2 { relative, 1.0 HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_CALENDAR_SW; to, "base"; }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "wday/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 1.0; offset, 0 (-1.0*HEIGHT_OF_WDAY_LINE); to, "wday/base"; }
+                               rel2 { relative, 1.0 1.0; to, "wday/base"; }
+                               color, COLOR_OF_LINE_FOR_MONTH_CAL;
+                       }
+               }
+
+               WD(0) WD(1) WD(2) WD(3) WD(4) WD(5) WD(6)
+               VL_W(1) VL_W(2) VL_W(3) VL_W(4) VL_W(5) VL_W(6) VL_W(7)
+
+               WWDB_L(0,  0, 1, 4) WWDB_L(0,  1, 2, 4) WWDB_L(0,  2, 3, 4) WWDB_L(0,  3, 4, 4) WWDB_L(0,  4, 5, 4) WWDB_L(0,  5, 6, 4) WWDB_L(0,  6, 7, 4)
+               WWDB_L(1,  7, 1, 4) WWDB_L(1,  8, 2, 4) WWDB_L(1,  9, 3, 4) WWDB_L(1, 10, 4, 4) WWDB_L(1, 11, 5, 4) WWDB_L(1, 12, 6, 4) WWDB_L(1, 13, 7, 4)
+               WWDB_L(2, 14, 1, 4) WWDB_L(2, 15, 2, 4) WWDB_L(2, 16, 3, 4) WWDB_L(2, 17, 4, 4) WWDB_L(2, 18, 5, 4) WWDB_L(2, 19, 6, 4) WWDB_L(2, 20, 7, 4)
+               WWDB_L(3, 21, 1, 4) WWDB_L(3, 22, 2, 4) WWDB_L(3, 23, 3, 4) WWDB_L(3, 24, 4, 4) WWDB_L(3, 25, 5, 4) WWDB_L(3, 26, 6, 4) WWDB_L(3, 27, 7, 4)
+
+               VL(1) VL(2) VL(3) VL(4) VL(5) VL(6) VL(7)
+
+               WHL(1, 4) WHL(2, 4) WHL(3, 4) WHL(4, 4)
+
+               LISTL_L(0) LISTL_L(7) LISTL_L(14) LISTL_L(21)
+               DATE_EDGE_SHADOW_PART
+               DATE_EDGE_SHADOW_PROGRAMS
+       }
+}
+
+
+//week events
+// events block
+#define EB(_last,_line,_pos) \
+       part { name, #_line"/event/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, _pos/7 (_line/3); \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7 + 1/7) (_line/3); \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 0.2; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+2/7) (_line/3); \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 0.3; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+3/7) (_line/3); \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 0.4; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+4/7) (_line/3); \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 0.5; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+5/7) (_line/3); \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 0.6; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+6/7) (_line/3); \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 0.7; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+7/7) (_line/3); \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, #_line"/bgcolor/"#_pos; \
+               type, SWALLOW; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, _line"/event/"_pos; \
+                               to_y, _line"/line/"_pos; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0; \
+                               to_x, _line"/event/"_pos; \
+                               to_y,  _line"/event/"_pos; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "show" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       }\
+       part { name, #_line"/bg_image/"#_pos; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, _line"/event/"_pos; \
+                               to_y, _line"/line/"_pos; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0; \
+                               to_x, _line"/event/"_pos; \
+                               to_y,  _line"/event/"_pos; \
+                       } \
+                       image { \
+                               normal, "P01_month_view_event_bg.png"; \
+                               border, 15 15 0 0; \
+                               border_scale, 1; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "show" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       }\
+       part { name, #_line"/line/"#_pos; \
+               type, RECT; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min: 0 1; \
+                       fixed: 0 1; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, _line"/event/"_pos; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0; \
+                               to_x, _line"/event/"_pos; \
+                               to_y,  _last"/event/0"; \
+                       } \
+                       align: 0.0 0.0; \
+                       color: 0 0 0 0; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "show" 0.0; \
+                       inherit, "default" 0.0; \
+                       color: 0 0 0 0; \
+                       visible, 1; \
+               } \
+       }\
+       programs { \
+               program { name, #_line"/0/"#_pos; \
+                       signal, _line",0,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/1/"#_pos; \
+                       signal, _line",1,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/2/"#_pos; \
+                       signal, _line",2,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.2; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/3/"#_pos; \
+                       signal, _line",3,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.3; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/4/"#_pos; \
+                       signal, _line",4,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.4; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/5/"#_pos; \
+                       signal, _line",5,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.5; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/6/"#_pos; \
+                       signal, _line",6,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.6; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/7/"#_pos; \
+                       signal, _line",7,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.7; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/nocolor/"#_pos; \
+                       signal, _line",nocolor,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, #_line"/bgcolor/"#_pos; \
+                       target, #_line"/line/"#_pos; \
+                       target, #_line"/bg_image/"#_pos; \
+               } \
+               program { name, #_line"/show/"#_pos; \
+                       signal, _line",show,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "show" 0.0; \
+                       target, #_line"/bgcolor/"#_pos; \
+                       target, #_line"/line/"#_pos; \
+                       target, #_line"/bg_image/"#_pos; \
+               } \
+       }
+
+#define TEXT(_line,_pos) \
+       part { name, #_line"/text/"#_pos; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, 0.0 0.5; \
+                       } \
+                       color, 255 255 255 255; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, (EVENT_LEFT_OFFSET/WIDTH_OF_DAY) 0.5; \
+                       } \
+                       color, 255 255 255 255; \
+               } \
+               description { \
+                       state, "default" 0.2; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, (EVENT_LEFT_OFFSET/(WIDTH_OF_DAY*2)) 0.5; \
+                       } \
+                       color, 255 255 255 255; \
+               } \
+               description { \
+                       state, "default" 0.3; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, (EVENT_LEFT_OFFSET/(WIDTH_OF_DAY*3) 0.5; \
+                       } \
+                       color, 255 255 255 255; \
+               } \
+               description { \
+                       state, "default" 0.4; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, (EVENT_LEFT_OFFSET/(WIDTH_OF_DAY*4) 0.5; \
+                       } \
+                       color, 255 255 255 255; \
+               } \
+               description { \
+                       state, "default" 0.5; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, (EVENT_LEFT_OFFSET/(WIDTH_OF_DAY*5) 0.5; \
+                       } \
+                       color, 255 255 255 255; \
+               } \
+               description { \
+                       state, "default" 0.6; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, (EVENT_LEFT_OFFSET/(WIDTH_OF_DAY*6) 0.5; \
+                       } \
+                       color, 255 255 255 255; \
+               } \
+               description { \
+                       state, "default" 0.7; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2.to, _line"/event/"_pos; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 18; \
+                               align, (EVENT_LEFT_OFFSET/(WIDTH_OF_DAY*7) 0.5; \
+                       } \
+                       color, 255 255 255 255; \
+               } \
+       } \
+       programs { \
+               program { name, #_line"/0_text/"#_pos; \
+                       signal, _line",0,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, #_line"/text/"#_pos; \
+               } \
+               program { name, #_line"/1_text/"#_pos; \
+                       signal, _line",1,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, #_line"/text/"#_pos; \
+               } \
+               program { name, #_line"/2_text/"#_pos; \
+                       signal, _line",2,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.2; \
+                       target, #_line"/text/"#_pos; \
+               } \
+               program { name, #_line"/3_text/"#_pos; \
+                       signal, _line",3,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.3; \
+                       target, #_line"/text/"#_pos; \
+               } \
+               program { name, #_line"/4_text/"#_pos; \
+                       signal, _line",4,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.4; \
+                       target, #_line"/text/"#_pos; \
+               } \
+               program { name, #_line"/5_text/"#_pos; \
+                       signal, _line",5,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.5; \
+                       target, #_line"/text/"#_pos; \
+               } \
+               program { name, #_line"/6_text/"#_pos; \
+                       signal, _line",6,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.6; \
+                       target, #_line"/text/"#_pos; \
+               } \
+               program { name, #_line"/7_text/"#_pos; \
+                       signal, _line",7,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.7; \
+                       target, #_line"/text/"#_pos; \
+               } \
+       }
+
+group { name, "main/month/week/events";
+
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON_2 COMP;
+               image, "P01_month_view_event_bg.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "0/event/0";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               EB(0,1,0) EB(0,1,1) EB(0,1,2) EB(0,1,3) EB(0,1,4) EB(0,1,5) EB(0,1,6) EB(0,1,7)
+               EB(1,2,0) EB(1,2,1) EB(1,2,2) EB(1,2,3) EB(1,2,4) EB(1,2,5) EB(1,2,6) EB(1,2,7)
+               EB(2,3,0) EB(2,3,1) EB(2,3,2) EB(2,3,3) EB(2,3,4) EB(2,3,5) EB(2,3,6) EB(2,3,7)
+
+               TEXT(1,0) TEXT(1,1) TEXT(1,2) TEXT(1,3) TEXT(1,4) TEXT(1,5) TEXT(1,6) TEXT(1,7)
+               TEXT(2,0) TEXT(2,1) TEXT(2,2) TEXT(2,3) TEXT(2,4) TEXT(2,5) TEXT(2,6) TEXT(2,7)
+               TEXT(3,0) TEXT(3,1) TEXT(3,2) TEXT(3,3) TEXT(3,4) TEXT(3,5) TEXT(3,6) TEXT(3,7)
+       }
+}
+
+#define EB_L(_last,_line,_pos) \
+       part { name, #_line"/event/"#_pos; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7 + 1/7) 1.0; \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.2; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+2/7) 1.0; \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.3; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+3/7) 1.0; \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.4; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+4/7) 1.0; \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.5; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+5/7) 1.0; \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.6; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+6/7) 1.0; \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+               } \
+               description { \
+                       state, "default" 0.7; \
+                       rel1 { \
+                               relative, _pos/7 1.0; \
+                               to_x, "base"; \
+                               to_y, _last"/event/0"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos/7+7/7) 1.0; \
+                               to_x, "base"; \
+                               to_y, "base"; \
+                       } \
+               } \
+       } \
+       part { name, #_line"/bgcolor/"#_pos; \
+               type, SWALLOW; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, _line"/event/"_pos; \
+                       rel2 { \
+                               relative, 1.0 1.0; \
+                               to_x, _line"/event/"_pos; \
+                               to_y, _line"/event/"_pos; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "show" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       }\
+       part { name, #_line"/bg_image/"#_pos; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 0.0; \
+                               to_x, _line"/event/"_pos; \
+                               to_y, _line"/event/"_pos; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0; \
+                               to_x, _line"/event/"_pos; \
+                               to_y,  _line"/event/"_pos; \
+                       } \
+                       image { \
+                               normal, "P01_month_view_event_bg.png"; \
+                               border, 15 15 0 0; \
+                               border_scale, 1; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "show" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       }\
+       programs { \
+               program { name, #_line"/0/"#_pos; \
+                       signal, _line",0,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/1/"#_pos; \
+                       signal, _line",1,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/2/"#_pos; \
+                       signal, _line",2,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.2; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/3/"#_pos; \
+                       signal, _line",3,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.3; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/4/"#_pos; \
+                       signal, _line",4,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.4; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/5/"#_pos; \
+                       signal, _line",5,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.5; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/6/"#_pos; \
+                       signal, _line",6,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.6; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/7/"#_pos; \
+                       signal, _line",7,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.7; \
+                       target, #_line"/event/"#_pos; \
+               } \
+               program { name, #_line"/nocolor/"#_pos; \
+                       signal, _line",nocolor,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, #_line"/bgcolor/"#_pos; \
+                       target, #_line"/bg_image/"#_pos; \
+               } \
+               program { name, #_line"/show/"#_pos; \
+                       signal, _line",show,"_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "show" 0.0; \
+                       target, #_line"/bgcolor/"#_pos; \
+                       target, #_line"/bg_image/"#_pos; \
+               } \
+       }
+
+group { name, "main/month/week/events/l";
+
+       images {
+               image, CALENDAR_SELSECTED COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+               image, CALENDAR_MONTH_VIEW_BG_1 COMP;
+               image, CALENDAR_TODAY_ICON_2 COMP;
+               image, "P01_month_view_event_bg.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "0/event/0";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       to, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               EB_L(0,1,0) EB_L(0,1,1) EB_L(0,1,2) EB_L(0,1,3) EB_L(0,1,4) EB_L(0,1,5) EB_L(0,1,6) EB_L(0,1,7)
+
+               TEXT(1,0) TEXT(1,1) TEXT(1,2) TEXT(1,3) TEXT(1,4) TEXT(1,5) TEXT(1,6) TEXT(1,7)
+       }
+}
+
diff --git a/data/edc/layout/inc.main.month.edc b/data/edc/layout/inc.main.month.edc
new file mode 100755 (executable)
index 0000000..f01f73d
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//HD size 720x1280
+#define HEIGHT_OF_MONTH_VIEW (920.0*R_Y)
+#define HEIGHT_OF_CALENDAR_SW (690.0*R_Y)
+#define HEIGHT_OF_WEEK_LINE (2.0*R_Y)
+#define HEIGHT_OF_WEEK (105.0*R_Y)
+#define HEIGHT_OF_WEEK_LITTLE (15.0*R_Y)
+#define HEIGHT_OF_WEEK_5 (125.0*R_Y)
+#define HEIGHT_OF_WEEK_4 (135.0*R_Y)
+#define HEIGHT_OF_VIEW (690.0*R_Y)
+#define HEIGHT_OF_BOTTOM_LINE (3.0*R_Y)
+
+#define HEIGHT_OF_LIST_INDEX (48.0)
+#define WIDTH_OF_LIST_INDEX (720.0)
+#define WIDTH_OF_LIST_ICON (24.0)
+#define HEIGHT_OF_LIST_ICON (24.0)
+#define LIST_ICON_RIGHT_OFFSET (14.0)
+#define WIDTH_OF_LIST_INDEX_AREA (52)
+
+#define HEIGHT_OF_LIST_EXPAND_AREA (60)
+#define WIDTH_OF_LIST_EXPAND_AREA (93)
+#define WIDTH_OF_LIST_EXPAND_ICON (74)
+
+#define EXPAND_BUTTON_BOTTOM_OFFSET -14
+group { name, "main/month";
+       images {
+               image: CALENDAR_CIRCLE_BUTTON COMP;
+               image: CALENDAR_CIRCLE_BUTTON_PRESS COMP;
+               image: CALENDAR_LIST_INDEX_OPEN COMP;
+               image: CALENDAR_LIST_INDEX_CLOSE COMP;
+               image: CALENDAR_LIST_INDEX_BG COMP;
+               image: CALENDAR_LIST_INDEX_BG_PRESS COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 248 246 239 255;
+                               rel1 { relative, 0.0 0.0; }
+                               rel2 { relative, 1.0 1.0; }
+                       }
+               }
+
+               part { name, "cal/sw";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_MONTH_VIEW); to, "base"; }
+                       }
+                       description {
+                               state, "default" 0.1;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 1.0 1.0; to, "base"; }
+                       }
+
+                       description {
+                               state, "default" 0.2;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 ((HEIGHT_OF_VIEW+HEIGHT_OF_WEEK_5+HEIGHT_OF_WEEK_LINE)/HEIGHT_OF_VIEW); to, "base"; }
+                       }
+                       description {
+                               state, "default" 0.3;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 ((HEIGHT_OF_VIEW+2*HEIGHT_OF_WEEK_4+2*HEIGHT_OF_WEEK_LINE)/HEIGHT_OF_VIEW); to, "base"; }
+                       }
+               }
+
+               part { name, "cal/sw/left";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, -1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 0.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/sw/right";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 2.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 1.0; offset, 0 -2.0; to, "cal/sw"; }
+                       }
+                       description {
+                               state, "default" 1.0;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 ((HEIGHT_OF_VIEW-HEIGHT_OF_WEEK)/HEIGHT_OF_VIEW); offset, 0 -3.0; to, "cal/sw"; }
+                       }
+                       description {
+                               state, "default" 0.5;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 ((HEIGHT_OF_VIEW-2*HEIGHT_OF_WEEK-2*HEIGHT_OF_WEEK_LINE)/HEIGHT_OF_CALENDAR_SW); offset, 0 -2.0; to, "cal/sw"; }
+                       }
+               }
+
+               part { name, "list/base";
+                       type, SWALLOW;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.0 1.0; offset, 0 30;
+                                       to_x, "base"; to_y, "cal/clip";
+                               }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               rel1 {
+                                       relative, 0.0 ((HEIGHT_OF_VIEW-4*HEIGHT_OF_WEEK-HEIGHT_OF_WEEK_LITTLE)/HEIGHT_OF_CALENDAR_SW);offset, 0 40;
+                                       to_x, "base"; to_y, "cal/sw";
+                               }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "list/sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1{ relative, 0.0 0.0; to, "list/base";}
+                               rel2.to, "list/base";
+                       }
+               }
+
+               part { name, "list/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { to, "list/base"; }
+                               rel2 { relative, 1.0 0.0; offset, 0 HEIGHT_OF_BOTTOM_LINE; to, "list/base"; }
+                               color, COLOR_OF_LIST_LINE_FOR_MONTH;
+                       }
+               }
+
+       }
+
+       programs {
+               program { name, "cal/line5";
+                       signal, "go,line5";
+                       source, "prog";
+                       action, STATE_SET "default" 1.0;
+                       target, "cal/clip";
+               }
+               program { name, "cal/line6";
+                       signal, "go,line6";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "cal/clip";
+               }
+               program { name, "cal/line4";
+                       signal, "go,line4";
+                       source, "prog";
+                       action, STATE_SET "default" 0.5;
+                       target, "cal/clip";
+               }
+       }
+}
diff --git a/data/edc/layout/inc.main.month.weekly.edc b/data/edc/layout/inc.main.month.weekly.edc
new file mode 100755 (executable)
index 0000000..e793ae7
--- /dev/null
@@ -0,0 +1,236 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+// 720 x 855
+#ifndef _RATIO_
+#define _RATIO_
+#define R_X (480.0/720.0)
+#define R_Y (800.0/1280.0)
+#endif
+
+//for month view
+#define W (720.0*R_X)
+#define H (855.0*R_Y)
+#define H_WEEK (105.0*R_Y)
+#define H_GAP (2.0*R_Y)
+#define H_LINE (3.0*R_Y)
+
+#define HEIGHT_OF_LIST_INDEX (48.0)
+#define WIDTH_OF_LIST_INDEX (720.0)
+#define WIDTH_OF_LIST_ICON (24.0)
+#define HEIGHT_OF_LIST_ICON (24.0)
+#define LIST_ICON_RIGHT_OFFSET (14.0)
+#define HEIGHT_OF_CONTENT (915)
+#define WIDTH_OF_LIST_INDEX_AREA (52)
+
+#define HEIGHT_OF_LIST_EXPAND_AREA (69)
+#define WIDTH_OF_LIST_EXPAND_AREA (93)
+#define WIDTH_OF_LIST_EXPAND_ICON (74)
+
+#define HEIGHT_OF_MONTH_VIEW (920.0*R_Y)
+#define HEIGHT_OF_CALENDAR_SW (690.0*R_Y)
+#define HEIGHT_OF_WEEK (105.0*R_Y)
+
+group { name, "main/month/weekly";
+       images {
+               image: CALENDAR_LIST_INDEX_OPEN COMP;
+               image: CALENDAR_LIST_INDEX_CLOSE COMP;
+               image: CALENDAR_LIST_INDEX_BG COMP;
+               image: CALENDAR_LIST_INDEX_BG_PRESS COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 248 246 239 255;
+                       }
+               }
+               part { name, "cal/sw";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 1.0 1.0; to, "base"; }
+                       }
+                       description {
+                               state, "default" 0.1;
+                               rel1 { relative, 0.0 0.0; to, "base"; }
+                               rel2 { relative, 1.0 (HEIGHT_OF_CALENDAR_SW/HEIGHT_OF_MONTH_VIEW); to, "base"; }
+                       }
+                       description {
+                               state, "default" 0.2;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 ((HEIGHT_OF_CALENDAR_SW-HEIGHT_OF_WEEK-HEIGHT_OF_WEEK_LINE)/HEIGHT_OF_MONTH_VIEW); to, "base"; }
+                       }
+                       description {
+                               state, "default" 0.3;
+                               rel1.to, "base";
+                               rel2 { relative, 1.0 ((HEIGHT_OF_CALENDAR_SW-2*HEIGHT_OF_WEEK-2*HEIGHT_OF_WEEK_LINE)/HEIGHT_OF_MONTH_VIEW); to, "base"; }
+                       }
+               }
+
+               part { name, "cal/sw/left";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, -1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 0.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/sw/right";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 2.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 1.0; offset, 0 0; to, "cal/sw"; }
+                       }
+                       description {
+                               state, "default" 1.0;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 ((H-H_WEEK-H_GAP)/H); offset: 0 0; to, "cal/sw"; }
+                       }
+                       description {
+                               state, "default" 0.5;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 ((H-2*H_WEEK-2*H_GAP)/H); offset: 0 0; to, "cal/sw"; }
+                       }
+               }
+               part { name, "list/base";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.0 1.0;
+                                       to, "cal/sw";
+                               }
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+               part { name, "list/sw";
+                       type, SWALLOW;
+                       description {
+                               state, "default" 0.0;
+                               rel1{ relative, 0.0 0.0; to, "list/base";}
+                               rel2.to, "list/base";
+                       }
+               }
+               part { name, "list/line";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { to, "list/base"; }
+                               rel2 { relative, 1.0 0.0; offset, 0 HEIGHT_OF_BOTTOM_LINE; to, "list/base"; }
+                               color, COLOR_OF_LIST_LINE_FOR_MONTH;
+                       }
+               }
+
+       }
+
+       programs {
+               program { name, "cal/line5";
+                       signal, "go,line5";
+                       source, "prog";
+                       action, STATE_SET "default" 1.0;
+                       target, "cal/clip";
+               }
+               program { name, "cal/line6";
+                       signal, "go,line6";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "cal/clip";
+               }
+               program { name, "cal/line4";
+                       signal, "go,line4";
+                       source, "prog";
+                       action, STATE_SET "default" 0.5;
+                       target, "cal/clip";
+               }
+       }
+}
+
+group { name, "main/month/weekly/l";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 248 246 239 255;
+                       }
+               }
+
+               part { name, "cal/sw";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; offset, 0 0; to, "base"; }
+                               rel2 { relative, 1.0 1.0; offset, 0 0; to, "base"; }
+                       }
+               }
+
+               part { name, "cal/sw/left";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, -1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 0.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/sw/right";
+                       type, SWALLOW;
+                       clip_to, "cal/clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to_x, "base"; to_y, "cal/sw"; }
+                               rel2 { relative, 2.0 1.0; to_x, "base"; to_y, "cal/sw";}
+                       }
+               }
+
+               part { name, "cal/clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "cal/sw";
+                               rel2 { relative, 1.0 1.0; offset, 0 0; to, "cal/sw"; }
+                       }
+               }
+       }
+}
+
diff --git a/data/edc/layout/inc.main.tab.edc b/data/edc/layout/inc.main.tab.edc
new file mode 100755 (executable)
index 0000000..3f752e3
--- /dev/null
@@ -0,0 +1,162 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+// Main view tab layout
+group { name, "main/tab";
+
+       images {
+               image, CALENDAR_TAB COMP;
+               image, CALENDAR_TAB_FOCUS_BG COMP;
+               image, CALENDAR_TAB_PRESS COMP;
+               image, CALENDAR_TODAY_ICON COMP;
+               image, CALENDAR_TODAY_ICON_PRESS COMP;
+               image, TAB_FOCUS COMP;
+               image, TAB_BG COMP;
+               image, TAB_DEFAULT COMP;
+               image, TAB_PRESS COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "tab/bg";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 0.0 0.0; to, base; }
+                               rel2 { relative, 1.0 1.0; offset, 0 0; to, base; }
+                               image.normal, TAB_BG;
+                       }
+               }
+
+#define PART_TAB(_name, x1, x2) \
+               part { name, "tab/"_name"/bg"; \
+                       description { \
+                               state, "default" 0.0; \
+                               rel1 { relative, x1 0.0; to, "tab/bg"; } \
+                               rel2 { relative, x2 1.0; to, "tab/bg"; } \
+                               image.normal, "P01_tab_default.png"; \
+                       } \
+                       description { \
+                               state, "default" 1.0; \
+                               inherit, "default" 0.0; \
+                               image.normal, "P01_tab_press.png"; \
+                       } \
+                       description { \
+                               state, "selected" 0.0; \
+                               inherit, "default" 0.0; \
+                               image.normal, TAB_FOCUS; \
+                       } \
+               } \
+               part { name, "tab/"_name"/text"; \
+                       type, TEXT; \
+                       scale, 1; \
+                       description { \
+                               state, "default" 0.0; \
+                               rel1.to, "tab/"_name"/bg"; \
+                               rel2.to, "tab/"_name"/bg"; \
+                               color, COLOR_OF_TEXT_FOR_MAIN_TAB; \
+                               text { \
+                                       font, "SLP:style=Medium"; \
+                                       size, 30; \
+                                       align, 0.5 0.5; \
+                               } \
+                       } \
+                       description { \
+                               state, "default" 1.0; \
+                               inherit, "default" 0.0; \
+                               color, COLOR_OF_TEXT_DEFAULT_FOR_MAIN_TAB; \
+                       } \
+                       description { \
+                               state, "selected" 0.0; \
+                               inherit, "default" 0.0; \
+                               color, COLOR_OF_TEXT_SELECTED_FOR_MAIN_TAB; \
+                       } \
+               } \
+               part { name, "tab/"_name"/evt"; \
+                       type, RECT; \
+                       description { \
+                               state, "default" 0.0; \
+                               rel1 { to_x, "tab/"_name"/bg"; to_y, "tab/bg"; } \
+                               rel2 { to_x, "tab/"_name"/bg"; to_y, "tab/bg"; } \
+                               color, 0 0 0 0; \
+                       } \
+               }
+
+               PART_TAB("year", (0/4), (1/4))
+               PART_TAB("month", (1/4), (2/4))
+               PART_TAB("day", (2/4), (3/4))
+               PART_TAB("list", (3/4), (4/4))
+       }
+
+       programs {
+               program { name, "tab/reset";
+                       signal, "reset";
+                       source, "prog";
+                       action, STATE_SET "default" 0.0;
+                       target, "tab/year/bg";
+                       target, "tab/year/text";
+                       target, "tab/month/bg";
+                       target, "tab/month/text";
+                       target, "tab/day/bg";
+                       target, "tab/day/text";
+                       target, "tab/list/bg";
+                       target, "tab/list/text";
+               }
+
+#define PROG_TAB(_name) \
+               program { name, "tab/"_name"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "tab/"_name"/evt"; \
+                       filter, "tab/"_name"/bg" "default"; \
+                       action, STATE_SET "default" 1.0; \
+                       target, "tab/"_name"/bg"; \
+                       target, "tab/"_name"/text"; \
+               } \
+               program { name, "tab/"_name"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "tab/"_name"/evt"; \
+                       filter, "tab/"_name"/bg" "default"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "tab/"_name"/bg"; \
+                       target, "tab/"_name"/text"; \
+               } \
+               program { name, "tab/"_name"/clicked"; \
+                       signal, "mouse,clicked,1"; \
+                       filter, "tab/"_name"/bg" "default"; \
+                       source, "tab/"_name"/evt"; \
+                       action, SIGNAL_EMIT _name "tab"; \
+               } \
+               program { name, "tab/"_name"/select"; \
+                       signal, "select,"_name; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "tab/"_name"/bg"; \
+                       target, "tab/"_name"/text"; \
+               }
+
+               PROG_TAB("year")
+               PROG_TAB("month")
+               PROG_TAB("day")
+               PROG_TAB("list")
+       }
+}
diff --git a/data/edc/layout/inc.main.title.edc b/data/edc/layout/inc.main.title.edc
new file mode 100755 (executable)
index 0000000..5863de0
--- /dev/null
@@ -0,0 +1,242 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#define WIDTH_OF_TITLE (1280)
+#define HEIGHT_OF_TITLE (108)
+#define WIDTH_OF_TITLE_INC (90)
+#define WIDTH_OF_TITLE_INC_RECT (100)
+#define HEIGHT_OF_TITLE_INC_RECT (50)
+#define OFFSET_WIDTH_OF_TITLE_INC (20)
+#define OFFSET_HEIGHT_OF_TITLE_INC (10)
+#define OFFSET_OF_TITLE_INC (71)
+#define HEIGHT_OF_TITLE_CALENDAR (48)
+#define HEIGHT_OF_TITLE_ACCOUNT (40)
+#define OFFSET_OF_ICON_RIGHT (5)
+#define HEIGHT_OF_ICON (48)
+// 462 x 632
+group { name, "main/title";
+
+       images {
+               image, "P01_spin_left_press.png" COMP;
+               image, "P01_spin_right_press.png" COMP;
+               image, "P01_spin_right.png" COMP;
+               image, "P01_spin_left.png" COMP;
+       }
+
+       styles {
+               style { name, "main/title";
+                       base, "font=SLP:style=Medium font_size=40 align=center color=#000000ff wrap=none";
+                       tag, "br" "\n";
+                       tag, "hilight" "+ color=#ffff";
+                       tag, "b" "+ color=#ffff";
+                       tag, "g38" "+ color=#879E19 font="FONT_LIG" font_size=38";
+                       tag, "tab" "\t";
+               }
+               style { name, "main/title/selected";
+                       base, "font=SLP:style=Medium font_size=40 align=center color=#ffffffff wrap=none";
+                       tag, "br" "\n";
+                       tag, "hilight" "+ color=#ffff";
+                       tag, "b" "+ color=#ffff";
+                       tag, "g38" "+ color=#879E19 font="FONT_LIG" font_size=38";
+                       tag, "tab" "\t";
+               }
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 248 246 239 255;;
+                       }
+               }
+
+               part { name, "title/text/bg";
+                       mouse_events, 0;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "title/text";
+                               rel2.to, "title/text";
+                               image {
+                                       normal, CALENDAR_SELSECTED;
+                                       border, 3 3 3 3;
+                                       border_scale,1 ;
+                               }
+                               visible, 0;
+                       }
+                       description {
+                               state, "default" 0.1;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+
+               part { name, "title/text";
+                       type, TEXTBLOCK;
+                       scale, 1;
+                       mouse_events, 1;
+                       description {
+                               state, "default" 0.0;
+                               fixed, 0 1;
+                               rel1 { relative, 1.0 0.5; to_x, "title/left"; to_y, "base"; }
+                               rel2 { relative, 0.0 0.5; to_x, "title/right"; to_y, "base"; }
+                               text {
+                                       style, "main/title";
+                                       min, 0 1;
+                               }
+                       }
+                       description {
+                               state, "default" 0.1;
+                               fixed, 0 1;
+                               rel1 { relative, 1.0 0.5; to_x, "title/left"; to_y, "base"; }
+                               rel2 { relative, 0.0 0.5; to_x, "title/right"; to_y, "base"; }
+                               text {
+                                       style, "main/title/selected";
+                                       min, 0 1;
+                               }
+                       }
+               }
+
+               part { name, "title/left";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 58 0;
+                               fixed, 1 0;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to, "base";
+                               }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "title/left/img";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 12 24;
+                               fixed, 1 1;
+                               rel1 { relative, 0.5 0.5; to, "title/left"; }
+                               rel2 { relative, 0.5 0.5; to, "title/left"; }
+                               align, 0.5 0.5;
+                               image.normal, "P01_spin_left.png";
+                       }
+                       description {
+                               state, "default" 0.1;
+                               inherit, "default" 0.0;
+                               image.normal, "P01_spin_left_press.png";
+                       }
+               }
+
+               part { name, "title/right";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 58 0;
+                               fixed, 1 0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to, "base";
+                               }
+                               rel2.to, "base";
+                               align, 1.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "title/right/img";
+                       scale, 1;
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               min, 12 24;
+                               fixed, 1 1;
+                               rel1 { relative, 0.5 0.5; to, "title/right"; }
+                               rel2 { relative, 0.5 0.5; to, "title/right"; }
+                               align, 0.5 0.5;
+                               image.normal, "P01_spin_right.png";
+                       }
+                       description {
+                               state, "default" 0.1;
+                               inherit, "default" 0.0;
+                               image.normal, "P01_spin_right_press.png";
+                       }
+               }
+       }
+
+       programs {
+               program { name, "title/left/down";
+                       signal, "mouse,down,1";
+                       source, "title/left";
+                       action, SIGNAL_EMIT "start,dec" "title";
+               }
+
+               program { name, "title/left/mouse_down";
+                       signal, "mouse,down,1";
+                       source, "title/left";
+                       action, STATE_SET "default" 0.1;
+                       target, "title/left/img";
+               }
+
+               program { name, "title/left/up";
+                       signal, "mouse,up,1";
+                       source, "title/left";
+                       action, SIGNAL_EMIT "stop,dec" "title";
+               }
+
+               program { name, "title/left/mouse_up";
+                       signal, "mouse,up,1";
+                       source, "title/left";
+                       action, STATE_SET "default" 0.0;
+                       target, "title/left/img";
+               }
+
+               program { name, "title/right/down";
+                       signal, "mouse,down,1";
+                       source, "title/right";
+                       action, SIGNAL_EMIT "start,inc" "title";
+               }
+
+               program { name, "title/right/mouse_down";
+                       signal, "mouse,down,1";
+                       source, "title/right";
+                       action, STATE_SET "default" 0.1;
+                       target, "title/right/img";
+               }
+
+               program { name, "title/right/up";
+                       signal, "mouse,up,1";
+                       source, "title/right";
+                       action, SIGNAL_EMIT "stop,inc" "title";
+               }
+
+               program { name, "title/right/mouse_up";
+                       signal, "mouse,up,1";
+                       source, "title/right";
+                       action, STATE_SET "default" 0.0;
+                       target, "title/right/img";
+               }
+       }
+}
+
diff --git a/data/edc/layout/inc.main.week.edc b/data/edc/layout/inc.main.week.edc
new file mode 100755 (executable)
index 0000000..85ba4ae
--- /dev/null
@@ -0,0 +1,2852 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+/*
+
+       There are 9 configurations for each part definition.
+
+       That is, if you search for a part, 9 results will come up.
+
+       The order of the definitions are as follows:
+
+               WDB
+               WDB_S
+               WDB_S           (Public)
+               LS_WDB_S
+               LS_WDB_S        (Public)
+               WDB_S_S
+               WDB_S_S         (Public)
+               LS_WDB_S_S
+               LS_WDB_S_S      (Public)
+
+       "LS_" denotes landscape
+
+*/
+
+// 462 x 580
+// day block in week view
+#define WEEK_DAY_X_LEFT_COORD_RATIO(_pos) (_pos % 2 / 2)
+#define WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) (_pos % 2 / 2 + 1 / 2)
+
+#define LS_WEEK_DAY_X_LEFT_COORD_RATIO(_pos) (_pos % 3 / 3)
+#define LS_WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) (_pos % 3 / 3 + 1 / 3)
+
+#define WEEK_DAY_WDB_Y_TOP_COORD_RATIO(_pos) (_pos / 2 / 4 - _pos % 2 / 2 / 4)
+#define WEEK_DAY_WDB_Y_BOTTOM_COORD_RATIO(_pos) (_pos / 2 / 4 - _pos % 2 / 2 / 4 + 1 / 4)
+
+
+#define WEEK_DAY_WDB_Y_EXPAND_DOWN_BOTTOM_COORD_RATIO(_pos) (_pos / 2 / 4 - _pos % 2 / 2 / 4 + 1 / 4 + 1 / 4)
+#define WEEK_DAY_WDB_Y_EXPAND_UP_TOP_COORD_RATIO(_pos) (_pos / 2 / 4 - _pos % 2 / 2 / 4 - 1 / 4)
+
+#define WEEK_DAY_WDB_S_Y_TOP_COORD_RATIO(_pos) (_pos / 2 / 3 - _pos % 2 / 2 / 3)
+#define WEEK_DAY_WDB_S_Y_BOTTOM_COORD_RATIO(_pos) (_pos / 2 / 3 - _pos % 2 / 2 / 3 + 1 / 3)
+
+#define LS_WEEK_DAY_WDB_S_Y_TOP_COORD_RATIO(_pos) (_pos / 3 / 2 - _pos % 3 / 3 / 2)
+#define LS_WEEK_DAY_WDB_S_Y_BOTTOM_COORD_RATIO(_pos) (_pos / 3 / 2 - _pos % 3 / 3 / 2 + 1 / 2)
+
+#define WEEK_DAY_WDB_S_Y_EXPAND_DOWN_BOTTOM_COORD_RATIO(_pos) (_pos / 2 / 3 - _pos % 2 / 2 / 3 + 1 / 3 + 1 / 3)
+#define WEEK_DAY_WDB_S_Y_EXPAND_UP_TOP_COORD_RATIO(_pos) (_pos / 2 / 3 - _pos % 2 / 2 / 3 - 1 / 3)
+
+#define LS_WEEK_DAY_WDB_S_Y_EXPAND_DOWN_BOTTOM_COORD_RATIO(_pos) (_pos / 3 / 2 - _pos % 3 / 3 / 2 + 1 / 2 + 1 / 2)
+#define LS_WEEK_DAY_WDB_S_Y_EXPAND_UP_TOP_COORD_RATIO(_pos) (_pos / 3 / 2 - _pos % 3 / 3 / 2 - 1 / 2)
+
+#define WEEK_DAY_WDB_S_S_Y_TOP_COORD_RATIO(_pos) (_pos*2 / 2 / 6 - 1/ 6)
+#define WEEK_DAY_WDB_S_S_Y_BOTTOM_COORD_RATIO(_pos)    (_pos*2 / 2 / 6)
+#define WEEK_DAY_WDB_S_S_Y_EXPAND_HIDE_UP_TOP_COORD_RATIO(_pos)        (_pos*2 / 2 / 6 - 1/ 6 - 1 / 3)
+#define WEEK_DAY_WDB_S_S_Y_EXPAND_UP_1_TOP_COORD_RATIO(_pos) (_pos*2 / 2 / 6 + 1 / 6)
+#define WEEK_DAY_WDB_S_S_Y_EXPAND_UP_2_TOP_COORD_RATIO(_pos) (_pos*2 / 2 / 6 - 1/ 6 - 1 / 2)
+
+#define LS_WEEK_DAY_WDB_S_S_Y_TOP_COORD_RATIO(_pos) (_pos / 4 - 3 /4)
+#define LS_WEEK_DAY_WDB_S_S_Y_BOTTOM_COORD_RATIO(_pos) (_pos / 4 - 1 / 2)
+#define LS_WEEK_DAY_WDB_S_S_Y_EXPAND_HIDE_UP_TOP_COORD_RATIO(_pos)     (_pos /4 - 3 / 4 - 1 / 2)
+#define LS_WEEK_DAY_WDB_S_S_Y_EXPAND_UP_1_TOP_COORD_RATIO(_pos) (_pos*2 / 2 / 6 + 1 / 6)
+#define LS_WEEK_DAY_WDB_S_S_Y_EXPAND_UP_2_TOP_COORD_RATIO(_pos) (_pos*2 / 2 / 6 - 1/ 6 - 1 / 2)
+
+#define WEEK_DAY_TITLE_HEIGHT 57
+#define LS_WEEK_DAY_TITLE_HEIGHT 57
+
+#define WEEK_ITEM_WIDTH 359
+#define LS_WEEK_ITEM_WIDTH 359
+
+#define WEEK_ITEM_HEIGHT 57
+#define WEEK_ITEM_RIGHT_OFFSET 8
+#define WEEK_ITEM_EXPAND_BUTTON_WIDTH 24
+#define WEEK_ITEM_TITLE_DAY_HEIGHT 40
+#define WEEK_ITEM_TITLE_DAY_WIDTH 45
+#define WEEK_ITEM_TITLE_MORE_WIDTH 40
+
+#define WEEK_ITEM_TITLE_WDAY_HEIGHT 28
+#define WEEK_ITEM_TITLE_WDAY_OFFSET 6
+
+#define LS_WEEK_ITEM_HEIGHT 57
+#define LS_WEEK_ITEM_RIGHT_OFFSET 8
+#define LS_WEEK_ITEM_EXPAND_BUTTON_WIDTH 24
+#define LS_WEEK_ITEM_TITLE_DAY_HEIGHT 40
+#define LS_WEEK_ITEM_TITLE_DAY_WIDTH 45
+#define LS_WEEK_ITEM_TITLE_MORE_WIDTH 40
+
+#define LS_WEEK_ITEM_TITLE_WDAY_HEIGHT 28
+#define LS_WEEK_ITEM_TITLE_WDAY_OFFSET 6
+
+#define WDB(_pos) \
+       part { name, "wdb/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_TOP_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_BOTTOM_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state: "expand_hide_up" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_TOP_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_TOP_COORD_RATIO(_pos); \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state: "expand_hide_down" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_BOTTOM_COORD_RATIO(_pos); \
+                               offset, 0 -WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_BOTTOM_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state, "expand_down" 0.0; \
+                       rel1 { \
+                               relative, WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_TOP_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_EXPAND_DOWN_BOTTOM_COORD_RATIO(_pos); \
+                               offset, 0 -WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+               description { \
+                       state, "expand_up" 0.0; \
+                       rel1 { \
+                               relative, WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_EXPAND_UP_TOP_COORD_RATIO(_pos); \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_Y_BOTTOM_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sel"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       image { \
+                               normal, CALENDAR_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale, 1; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/bg"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "down" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.5 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/text"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (WEEK_ITEM_RIGHT_OFFSET/WEEK_ITEM_WIDTH) 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, ((WEEK_ITEM_RIGHT_OFFSET+WEEK_ITEM_TITLE_DAY_WIDTH)/WEEK_ITEM_WIDTH) 1.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 40; \
+                               align, 0.5 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/text_wday"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((WEEK_ITEM_RIGHT_OFFSET+WEEK_ITEM_TITLE_DAY_WIDTH+WEEK_ITEM_TITLE_WDAY_OFFSET)/WEEK_ITEM_WIDTH) (((WEEK_ITEM_HEIGHT - WEEK_ITEM_TITLE_DAY_HEIGHT)/2+WEEK_ITEM_TITLE_DAY_HEIGHT-WEEK_ITEM_TITLE_WDAY_HEIGHT)/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.5 ((WEEK_ITEM_HEIGHT-(WEEK_ITEM_HEIGHT - WEEK_ITEM_TITLE_DAY_HEIGHT)/2)/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 19; \
+                               align, 0.5 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/more"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (WEEK_ITEM_WIDTH-WEEK_ITEM_EXPAND_BUTTON_WIDTH-WEEK_ITEM_RIGHT_OFFSET-WEEK_ITEM_RIGHT_OFFSET-WEEK_ITEM_TITLE_MORE_WIDTH)/WEEK_ITEM_WIDTH 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/expand_button"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                               align, 0.0 0.5; \
+                               text, "..."; \
+                       } \
+                       color, 7 180 211 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/expand_button"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((WEEK_ITEM_WIDTH - WEEK_ITEM_RIGHT_OFFSET - WEEK_ITEM_EXPAND_BUTTON_WIDTH)/WEEK_ITEM_WIDTH) ((WEEK_ITEM_HEIGHT - WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative,  ((WEEK_ITEM_WIDTH - WEEK_ITEM_RIGHT_OFFSET)/WEEK_ITEM_WIDTH) ((WEEK_ITEM_HEIGHT-((WEEK_ITEM_HEIGHT - WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2))/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "expand_up" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_down" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_hide_up" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+               description { \
+                       state, "expand_hide_down" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/check"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       rel2 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       min, 44 44; \
+                       fixed, 1 1; \
+                       align, 0.5 0.5; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/disable"; \
+               type, SWALLOW; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sw"; \
+               type, SWALLOW; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2.to, "wdb/"#_pos"/base"; \
+                       fixed, 1 1; \
+               } \
+       } \
+       programs { \
+               program { name, "wdb/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, STATE_SET "down" 0.0; \
+                       target, "wdb/"#_pos"/bg"; \
+               } \
+               program { name, "wdb/"#_pos"/mouse_down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "down"; \
+               } \
+               program { name, "wdb/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/bg"; \
+               } \
+               program { name, "wdb/"#_pos"/click"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "cal"; \
+               } \
+               program { name, "wdb/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "wdb/"#_pos"/sel"; \
+               } \
+               program { name, "wdb/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/sel"; \
+               } \
+               program { name, "wdb/"#_pos"/set_check"; \
+                       signal, "check,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "checked" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/unset_check"; \
+                       signal, "uncheck,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_up"; \
+                       signal, "set_expand_up,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_up" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target,  "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_down"; \
+                       signal, "set_expand_down,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_down" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target,  "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_up"; \
+                       signal, "set_expand_hide_up,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_up" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target,  "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_down"; \
+                       signal, "set_expand_hide_down,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_down" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target,  "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_default"; \
+                       signal, "set_expand_default,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target,  "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/more_clicked"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/title"; \
+                       action, SIGNAL_EMIT #_pos "more"; \
+               } \
+       }
+
+group { name, "main/week";
+
+       images {
+               image, "57_calendar_week_view_press.png" COMP;
+               image, "57_calendar_week_view_bg.png" COMP;
+               image, "calendar_selected.png" COMP;
+               image, "P01_week_view_icon_open.png" COMP;
+               image, "P01_week_view_icon_close.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 248 246 239 255;
+                       }
+               }
+
+               part { name, "wdb/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       offset, 0 1;
+                                       to, "base";
+                               }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+
+               WDB( 0) WDB( 1)
+               WDB( 2) WDB( 3)
+               WDB( 4) WDB( 5)
+               WDB( 6) WDB( 7)
+
+               part { name, "wdb/line/top";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       offset, -1 0;
+                                       to, "base";
+                               }
+                               color, 195 192 179 255;
+                       }
+               }
+
+               part { name, "wdb/line/vertical";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.5 0.0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 0.5 1.0;
+                                       offset, 0 -1;
+                                       to, "base";
+                               }
+                               color, 195 192 179 255;
+                       }
+               }
+       }
+}
+
+#define LEFT_WDB_S_TITLE(_pos) \
+       part { name, "wdb/"#_pos"/top/line"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min: 0 1; \
+                     fixed: 0 1; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.0 0.0; \
+                       color, 143 143 143 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                        rel1 {\
+                          relative: 0.0 1.0;\
+                          to_x: "wdb/"#_pos"/base";\
+                          to_y: "wdb/"#_pos"/top/line";\
+                      } \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, -1 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.0 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_TODAY_FOR_WEEK_CAL; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title_bg"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                        rel1 {\
+                          relative: 0.0 1.0;\
+                          offset, 1 0; \
+                          to_x: "wdb/"#_pos"/base";\
+                          to_y: "wdb/"#_pos"/top/line";\
+                      } \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.0 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, 182 221 241 255; \
+                       visible, 1; \
+               } \
+       }
+
+#define RIGHT_WDB_S_TITLE(_pos) \
+       part { name, "wdb/"#_pos"/top/line"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min: 0 1; \
+                     fixed: 0 1; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.0 0.0; \
+                       color, 143 143 143 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                        rel1 {\
+                          relative: 0.0 1.0;\
+                          offset, 1 0; \
+                          to_x: "wdb/"#_pos"/base";\
+                          to_y: "wdb/"#_pos"/top/line";\
+                      } \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.0 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_TODAY_FOR_WEEK_CAL; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title_bg"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                        rel1 {\
+                          relative: 0.0 1.0;\
+                          offset, 1 0; \
+                          to_x: "wdb/"#_pos"/base";\
+                          to_y: "wdb/"#_pos"/top/line";\
+                      } \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.0 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, 182 221 241 255; \
+                       visible, 1; \
+               } \
+       }
+
+#define WDB_S(_pos) \
+       part { name, "wdb/"#_pos"/text"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (WEEK_ITEM_RIGHT_OFFSET/WEEK_ITEM_WIDTH) 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, ((WEEK_ITEM_RIGHT_OFFSET+WEEK_ITEM_TITLE_DAY_WIDTH)/WEEK_ITEM_WIDTH) 1.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 40; \
+                               align, 0.0 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/text_wday"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((WEEK_ITEM_RIGHT_OFFSET+WEEK_ITEM_TITLE_DAY_WIDTH+WEEK_ITEM_TITLE_WDAY_OFFSET)/WEEK_ITEM_WIDTH) (((WEEK_ITEM_HEIGHT - WEEK_ITEM_TITLE_DAY_HEIGHT)/2+WEEK_ITEM_TITLE_DAY_HEIGHT-WEEK_ITEM_TITLE_WDAY_HEIGHT)/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.5 ((WEEK_ITEM_HEIGHT-(WEEK_ITEM_HEIGHT - WEEK_ITEM_TITLE_DAY_HEIGHT)/2)/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 19; \
+                               align, 0.0 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/more"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (WEEK_ITEM_WIDTH-WEEK_ITEM_EXPAND_BUTTON_WIDTH-WEEK_ITEM_RIGHT_OFFSET-WEEK_ITEM_RIGHT_OFFSET-WEEK_ITEM_TITLE_MORE_WIDTH)/WEEK_ITEM_WIDTH 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/expand_button"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                               align, 0.0 0.5; \
+                               text, "..."; \
+                       } \
+                       color, 7 180 211 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/expand_button"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((WEEK_ITEM_WIDTH - WEEK_ITEM_RIGHT_OFFSET - WEEK_ITEM_EXPAND_BUTTON_WIDTH)/WEEK_ITEM_WIDTH) ((WEEK_ITEM_HEIGHT - WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative,  ((WEEK_ITEM_WIDTH - WEEK_ITEM_RIGHT_OFFSET)/WEEK_ITEM_WIDTH) ((WEEK_ITEM_HEIGHT-((WEEK_ITEM_HEIGHT - WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2))/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "expand_up" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_down" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_hide_up" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+               description { \
+                       state, "expand_hide_down" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/check"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       rel2 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       min, 44 44; \
+                       fixed, 1 1; \
+                       align, 0.5 0.5; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/disable"; \
+               type, SWALLOW; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sw"; \
+               type, SWALLOW; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2.to, "wdb/"#_pos"/base"; \
+                       fixed, 1 1; \
+               } \
+       } \
+
+#define WBS_S_PROGRAMS(_pos) \
+               program { name, "wdb/"#_pos"/mouse_down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "down"; \
+               } \
+               program { name, "wdb/"#_pos"/click"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "cal"; \
+               } \
+               program { name, "wdb/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/set_check"; \
+                       signal, "check,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "checked" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/unset_check"; \
+                       signal, "uncheck,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_up"; \
+                       signal, "set_expand_up,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_up" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_down"; \
+                       signal, "set_expand_down,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_down" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_down"; \
+                       signal, "set_expand_hide_down,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_down" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_up"; \
+                       signal, "set_expand_hide_up,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_up" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_default"; \
+                       signal, "set_expand_default,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/more_clicked"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/title"; \
+                       action, SIGNAL_EMIT #_pos "more"; \
+               } \
+               program { name, "wdb/"#_pos"/today_focus"; \
+                       signal, "focus,"#_pos",today"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/title"; \
+               } \
+               program { name, "wdb/"#_pos"/today_unfocus"; \
+                       signal, "unfocus,"#_pos",today"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/title"; \
+               } \
+               program { name, "wdb/"#_pos"/focus"; \
+                       signal, "focus,"#_pos",wday"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/title_bg"; \
+               } \
+               program { name, "wdb/"#_pos"/unfocus"; \
+                       signal, "unfocus,"#_pos",wday"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/title_bg"; \
+               } \
+               program { name, "wdb/"#_pos"/show_more"; \
+                       signal, "show,"#_pos",more"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/more"; \
+               } \
+               program { name, "wdb/"#_pos"/hide_more"; \
+                       signal, "hide,"#_pos",more"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/more"; \
+               } \
+
+#define LS_WDB_S(_pos) \
+       part { name, "wdb/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, LS_WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_TOP_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, LS_WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_BOTTOM_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       color, 246 246 246 255;\
+               } \
+               description { \
+                       state: "expand_hide_up" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, LS_WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_TOP_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, LS_WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_TOP_COORD_RATIO(_pos); \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state: "expand_hide_down" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, LS_WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_BOTTOM_COORD_RATIO(_pos); \
+                               offset, 0 -WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, LS_WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_BOTTOM_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state: "expand_down" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, LS_WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_TOP_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, LS_WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_EXPAND_DOWN_BOTTOM_COORD_RATIO(_pos); \
+                               offset, 0 -WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       color, 255 255 255 255;\
+               } \
+               description { \
+                       state: "expand_up" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, LS_WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_EXPAND_UP_TOP_COORD_RATIO(_pos); \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, LS_WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       LS_WEEK_DAY_WDB_S_Y_BOTTOM_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       color, 255 255 255 255;\
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sel"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/bg"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "down" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.5 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_TODAY_FOR_WEEK_CAL; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title_bg"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.5 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, 182 221 241 255; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/text"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (LS_WEEK_ITEM_RIGHT_OFFSET/LS_WEEK_ITEM_WIDTH) 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, ((LS_WEEK_ITEM_RIGHT_OFFSET+LS_WEEK_ITEM_TITLE_DAY_WIDTH)/LS_WEEK_ITEM_WIDTH) 1.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 40; \
+                               align, 0.0 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/text_wday"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((LS_WEEK_ITEM_RIGHT_OFFSET+LS_WEEK_ITEM_TITLE_DAY_WIDTH+LS_WEEK_ITEM_TITLE_WDAY_OFFSET)/LS_WEEK_ITEM_WIDTH) (((LS_WEEK_ITEM_HEIGHT - LS_WEEK_ITEM_TITLE_DAY_HEIGHT)/2+LS_WEEK_ITEM_TITLE_DAY_HEIGHT-LS_WEEK_ITEM_TITLE_WDAY_HEIGHT)/LS_WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.5 ((LS_WEEK_ITEM_HEIGHT-(LS_WEEK_ITEM_HEIGHT - LS_WEEK_ITEM_TITLE_DAY_HEIGHT)/2)/LS_WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 19; \
+                               align, 0.0 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/more"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (LS_WEEK_ITEM_WIDTH-LS_WEEK_ITEM_EXPAND_BUTTON_WIDTH-LS_WEEK_ITEM_RIGHT_OFFSET-LS_WEEK_ITEM_RIGHT_OFFSET-LS_WEEK_ITEM_TITLE_MORE_WIDTH)/LS_WEEK_ITEM_WIDTH 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/expand_button"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                               align, 0.0 0.5; \
+                               text, "..."; \
+                       } \
+                       color, 7 180 211 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/expand_button"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((LS_WEEK_ITEM_WIDTH - LS_WEEK_ITEM_RIGHT_OFFSET - LS_WEEK_ITEM_EXPAND_BUTTON_WIDTH)/LS_WEEK_ITEM_WIDTH) ((LS_WEEK_ITEM_HEIGHT - LS_WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2/LS_WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative,  ((LS_WEEK_ITEM_WIDTH - LS_WEEK_ITEM_RIGHT_OFFSET)/LS_WEEK_ITEM_WIDTH) ((LS_WEEK_ITEM_HEIGHT-((LS_WEEK_ITEM_HEIGHT - LS_WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2))/LS_WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "expand_up" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_down" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_hide_up" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+               description { \
+                       state, "expand_hide_down" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/check"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       rel2 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       min, 44 44; \
+                       fixed, 1 1; \
+                       align, 0.5 0.5; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/disable"; \
+               type, SWALLOW; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sw"; \
+               type, SWALLOW; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2.to, "wdb/"#_pos"/base"; \
+                       fixed, 1 1; \
+               } \
+       } \
+       programs { \
+               program { name, "wdb/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, STATE_SET "down" 0.0; \
+                       target, "wdb/"#_pos"/bg"; \
+               } \
+               program { name, "wdb/"#_pos"/mouse_down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "down"; \
+               } \
+               program { name, "wdb/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/bg"; \
+               } \
+               program { name, "wdb/"#_pos"/click"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "cal"; \
+               } \
+               program { name, "wdb/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "wdb/"#_pos"/sel"; \
+               } \
+               program { name, "wdb/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/sel"; \
+               } \
+               program { name, "wdb/"#_pos"/set_check"; \
+                       signal, "check,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "checked" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/unset_check"; \
+                       signal, "uncheck,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_up"; \
+                       signal, "set_expand_up,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_up" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_down"; \
+                       signal, "set_expand_down,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_down" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_down"; \
+                       signal, "set_expand_hide_down,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_down" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_up"; \
+                       signal, "set_expand_hide_up,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_up" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_default"; \
+                       signal, "set_expand_default,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/more_clicked"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/title"; \
+                       action, SIGNAL_EMIT #_pos "more"; \
+               } \
+               program { name, "wdb/"#_pos"/today_focus"; \
+                       signal, "focus,"#_pos",today"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/title"; \
+               } \
+               program { name, "wdb/"#_pos"/today_unfocus"; \
+                       signal, "unfocus,"#_pos",today"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/title"; \
+               } \
+               program { name, "wdb/"#_pos"/focus"; \
+                       signal, "focus,"#_pos",wday"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/title_bg"; \
+               } \
+               program { name, "wdb/"#_pos"/unfocus"; \
+                       signal, "unfocus,"#_pos",wday"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/title_bg"; \
+               } \
+               program { name, "wdb/"#_pos"/show_more"; \
+                       signal, "show,"#_pos",more"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/more"; \
+               } \
+               program { name, "wdb/"#_pos"/hide_more"; \
+                       signal, "hide,"#_pos",more"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/more"; \
+               } \
+       }
+
+#define RIGHT_WDB_S_S_TITLE(_pos) \
+       part { name, "wdb/"#_pos"/top/line"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       min: 0 1; \
+                     fixed: 0 1;\
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.0 0.0; \
+                       color, 143 143 143 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                        rel1 {\
+                         relative: 0.0 1.0;\
+                         offset, 1 0; \
+                         to_x: "wdb/"#_pos"/base";\
+                         to_y: "wdb/"#_pos"/top/line";\
+                      } \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.5 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_TODAY_FOR_WEEK_CAL; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title_bg"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                        rel1 {\
+                          relative: 0.0 1.0;\
+                          offset, 1 0; \
+                          to_x: "wdb/"#_pos"/base";\
+                          to_y: "wdb/"#_pos"/top/line";\
+                      } \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.0 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, 182 221 241 255; \
+                       visible, 1; \
+               } \
+       }
+
+#define WDB_S_S(_pos) \
+       part { name, "wdb/"#_pos"/text"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (WEEK_ITEM_RIGHT_OFFSET/WEEK_ITEM_WIDTH) 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, ((WEEK_ITEM_RIGHT_OFFSET+WEEK_ITEM_TITLE_DAY_WIDTH)/WEEK_ITEM_WIDTH) 1.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 40; \
+                               align, 0.0 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/text_wday"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((WEEK_ITEM_RIGHT_OFFSET+WEEK_ITEM_TITLE_DAY_WIDTH+WEEK_ITEM_TITLE_WDAY_OFFSET)/WEEK_ITEM_WIDTH) (((WEEK_ITEM_HEIGHT - WEEK_ITEM_TITLE_DAY_HEIGHT)/2+WEEK_ITEM_TITLE_DAY_HEIGHT-WEEK_ITEM_TITLE_WDAY_HEIGHT)/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.5 ((WEEK_ITEM_HEIGHT-(WEEK_ITEM_HEIGHT - WEEK_ITEM_TITLE_DAY_HEIGHT)/2)/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 19; \
+                               align, 0.0 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/more"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (WEEK_ITEM_WIDTH-WEEK_ITEM_EXPAND_BUTTON_WIDTH-WEEK_ITEM_RIGHT_OFFSET-WEEK_ITEM_RIGHT_OFFSET-WEEK_ITEM_TITLE_MORE_WIDTH)/WEEK_ITEM_WIDTH 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/expand_button"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                               align, 0.0 0.5; \
+                               text, "..."; \
+                       } \
+                       color, 7 180 211 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/expand_button"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((WEEK_ITEM_WIDTH - WEEK_ITEM_RIGHT_OFFSET - WEEK_ITEM_EXPAND_BUTTON_WIDTH)/WEEK_ITEM_WIDTH) ((WEEK_ITEM_HEIGHT - WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative,  ((WEEK_ITEM_WIDTH - WEEK_ITEM_RIGHT_OFFSET)/WEEK_ITEM_WIDTH) ((WEEK_ITEM_HEIGHT-((WEEK_ITEM_HEIGHT - WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2))/WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "expand_up_1" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_up_2" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_hide_up" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+               description { \
+                       state, "expand_hide_down" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/check"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       rel2 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       min, 44 44; \
+                       fixed, 1 1; \
+                       align, 0.5 0.5; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/disable"; \
+               type, SWALLOW; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sw"; \
+               type, SWALLOW; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2.to, "wdb/"#_pos"/base"; \
+                       fixed, 1 1; \
+               } \
+       } \
+
+#define WBS_S_S_PROGRAMS(_pos) \
+               program { name, "wdb/"#_pos"/mouse_down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "down"; \
+               } \
+               program { name, "wdb/"#_pos"/click"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "cal"; \
+               } \
+               program { name, "wdb/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/set_check"; \
+                       signal, "check,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "checked" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/unset_check"; \
+                       signal, "uncheck,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_up_1"; \
+                       signal, "set_expand_up_1,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_up_1" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_up_2"; \
+                       signal, "set_expand_up_2,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_up_2" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_up"; \
+                       signal, "set_expand_hide_up,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_up" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_down"; \
+                       signal, "set_expand_hide_down,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_down" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_default"; \
+                       signal, "set_expand_default,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/more_clicked"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/title"; \
+                       action, SIGNAL_EMIT #_pos "more"; \
+               } \
+               program { name, "wdb/"#_pos"/today_focus"; \
+                       signal, "focus,"#_pos",today"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/title"; \
+               } \
+               program { name, "wdb/"#_pos"/today_unfocus"; \
+                       signal, "unfocus,"#_pos",today"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/title"; \
+               } \
+               program { name, "wdb/"#_pos"/focus"; \
+                       signal, "focus,"#_pos",wday"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/title_bg"; \
+               } \
+               program { name, "wdb/"#_pos"/unfocus"; \
+                       signal, "unfocus,"#_pos",wday"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/title_bg"; \
+               } \
+               program { name, "wdb/"#_pos"/show_more"; \
+                       signal, "show,"#_pos",more"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/more"; \
+               } \
+               program { name, "wdb/"#_pos"/hide_more"; \
+                       signal, "hide,"#_pos",more"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/more"; \
+               } \
+
+#define LS_WDB_S_S(_pos) \
+       part { name, "wdb/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (2 / 3) \
+                                       LS_WEEK_DAY_WDB_S_S_Y_TOP_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (1) \
+                                       LS_WEEK_DAY_WDB_S_S_Y_BOTTOM_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       color, 246 246 246 255; \
+               } \
+               description { \
+                       state: "expand_hide_up" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, (2 / 3)  0 ;\
+                               offset, 0 (_pos - 4)*LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, 1 0 ;\
+                               offset, 0 LS_WEEK_DAY_TITLE_HEIGHT*2; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state: "expand_hide_down" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, (2 / 3) 1 ;\
+                               offset, 0  (_pos - 7)*LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (1) 1;\
+                               offset, 0 (6 -_pos)*LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state, "expand_up_1" 0.0; \
+                       rel1 { \
+                               relative, (2 / 3) 0 ;\
+                               offset, 0 ((_pos - 4)*LS_WEEK_DAY_TITLE_HEIGHT); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (1) 1 ;\
+                               offset, 0 (_pos - 6)*LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       color, 255 255 255 255;\
+               } \
+               description { \
+                       state, "expand_up_2" 0.0; \
+                       rel1 { \
+                               relative, (2 / 3) 0 ;\
+                               offset, 0 (_pos - 4)*LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (1) 1 ;\
+                               offset, 0 (_pos - 6)*LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       color, 255 255 255 255;\
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sel"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/bg"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "down" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.5 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_TODAY_FOR_WEEK_CAL; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/title_bg"; \
+               type, RECT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.0; \
+                               offset, 0 LS_WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/"#_pos"/base"; \
+                       } \
+                       align, 0.5 0.0; \
+                       color, COLOR_OF_WEEK_ITEM_TITLE; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "default" 0.1; \
+                       inherit, "default" 0.0; \
+                       color, 182 221 241 255; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/text"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (LS_WEEK_ITEM_RIGHT_OFFSET/LS_WEEK_ITEM_WIDTH) 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, ((LS_WEEK_ITEM_RIGHT_OFFSET+LS_WEEK_ITEM_TITLE_DAY_WIDTH)/LS_WEEK_ITEM_WIDTH) 1.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 40; \
+                               align, 0.0 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/text_wday"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((LS_WEEK_ITEM_RIGHT_OFFSET+LS_WEEK_ITEM_TITLE_DAY_WIDTH+LS_WEEK_ITEM_TITLE_WDAY_OFFSET)/LS_WEEK_ITEM_WIDTH) (((LS_WEEK_ITEM_HEIGHT - LS_WEEK_ITEM_TITLE_DAY_HEIGHT)/2+LS_WEEK_ITEM_TITLE_DAY_HEIGHT-LS_WEEK_ITEM_TITLE_WDAY_HEIGHT)/LS_WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.5 ((LS_WEEK_ITEM_HEIGHT-(LS_WEEK_ITEM_HEIGHT - LS_WEEK_ITEM_TITLE_DAY_HEIGHT)/2)/LS_WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 19; \
+                               align, 0.0 1.0; \
+                       } \
+                       color, 56 57 58 255; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 200 0 0 255; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 0 0 200 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/more"; \
+               type, TEXT; \
+               scale, 1; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (LS_WEEK_ITEM_WIDTH-LS_WEEK_ITEM_EXPAND_BUTTON_WIDTH-LS_WEEK_ITEM_RIGHT_OFFSET-LS_WEEK_ITEM_RIGHT_OFFSET-LS_WEEK_ITEM_TITLE_MORE_WIDTH)/LS_WEEK_ITEM_WIDTH 0.0; \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/expand_button"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 26; \
+                               align, 0.0 0.5; \
+                               text, "..."; \
+                       } \
+                       color, 7 180 211 255; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/expand_button"; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, ((LS_WEEK_ITEM_WIDTH - LS_WEEK_ITEM_RIGHT_OFFSET - LS_WEEK_ITEM_EXPAND_BUTTON_WIDTH)/LS_WEEK_ITEM_WIDTH) ((LS_WEEK_ITEM_HEIGHT - LS_WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2/LS_WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2 { \
+                               relative,  ((LS_WEEK_ITEM_WIDTH - LS_WEEK_ITEM_RIGHT_OFFSET)/LS_WEEK_ITEM_WIDTH) ((LS_WEEK_ITEM_HEIGHT-((LS_WEEK_ITEM_HEIGHT - LS_WEEK_ITEM_EXPAND_BUTTON_WIDTH)/2))/LS_WEEK_ITEM_HEIGHT); \
+                               to, "wdb/"#_pos"/title"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "expand_up_1" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_up_2" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_CLOSE; \
+               } \
+               description { \
+                       state, "expand_hide_up" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+               description { \
+                       state, "expand_hide_down" 0.0; \
+                       inherit, "default" 0.0; \
+                       image.normal, CALENDAR_WEEK_EXPAND_BUTTON_OPEN; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/check"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       rel2 { \
+                               relative, 0.1 0.5; \
+                               to, "wdb/"#_pos"/text"; \
+                       } \
+                       min, 44 44; \
+                       fixed, 1 1; \
+                       align, 0.5 0.5; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "checked" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/disable"; \
+               type, SWALLOW; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "wdb/"#_pos"/base"; \
+                       rel2.to, "wdb/"#_pos"/base"; \
+               } \
+       } \
+       part { name, "wdb/"#_pos"/sw"; \
+               type, SWALLOW; \
+               mouse_events, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0; \
+                               to_x, "wdb/"#_pos"/base"; \
+                               to_y, "wdb/"#_pos"/title"; \
+                       } \
+                       rel2.to, "wdb/"#_pos"/base"; \
+                       fixed, 1 1; \
+               } \
+       } \
+       programs { \
+               program { name, "wdb/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, STATE_SET "down" 0.0; \
+                       target, "wdb/"#_pos"/bg"; \
+               } \
+               program { name, "wdb/"#_pos"/mouse_down"; \
+                       signal, "mouse,down,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "down"; \
+               } \
+               program { name, "wdb/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/bg"; \
+               } \
+               program { name, "wdb/"#_pos"/click"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "cal"; \
+               } \
+               program { name, "wdb/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "wdb/"#_pos"/text"; \
+                       target, "wdb/"#_pos"/text_wday"; \
+               } \
+               program { name, "wdb/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "wdb/"#_pos"/sel"; \
+               } \
+               program { name, "wdb/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/sel"; \
+               } \
+               program { name, "wdb/"#_pos"/set_check"; \
+                       signal, "check,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "checked" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/unset_check"; \
+                       signal, "uncheck,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/check"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_up_1"; \
+                       signal, "set_expand_up_1,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_up_1" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_up_2"; \
+                       signal, "set_expand_up_2,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_up_2" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_up"; \
+                       signal, "set_expand_hide_up,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_up" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_hide_down"; \
+                       signal, "set_expand_hide_down,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "expand_hide_down" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/expand_default"; \
+                       signal, "set_expand_default,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/base"; \
+                       target, "wdb/"#_pos"/expand_button"; \
+               } \
+               program { name, "wdb/"#_pos"/more_clicked"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "wdb/"#_pos"/title"; \
+                       action, SIGNAL_EMIT #_pos "more"; \
+               } \
+               program { name, "wdb/"#_pos"/today_focus"; \
+                       signal, "focus,"#_pos",today"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/title"; \
+               } \
+               program { name, "wdb/"#_pos"/today_unfocus"; \
+                       signal, "unfocus,"#_pos",today"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/title"; \
+               } \
+               program { name, "wdb/"#_pos"/focus"; \
+                       signal, "focus,"#_pos",wday"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/title_bg"; \
+               } \
+               program { name, "wdb/"#_pos"/unfocus"; \
+                       signal, "unfocus,"#_pos",wday"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/title_bg"; \
+               } \
+               program { name, "wdb/"#_pos"/show_more"; \
+                       signal, "show,"#_pos",more"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "wdb/"#_pos"/more"; \
+               } \
+               program { name, "wdb/"#_pos"/hide_more"; \
+                       signal, "hide,"#_pos",more"; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.1; \
+                       target, "wdb/"#_pos"/more"; \
+               } \
+       }
+
+#define LEFT_WDB_S_EXPAND_DESC(_pos)\
+               description { \
+                       state: "expand_hide_up" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       0; \
+                               offset, 0 (_pos/2)*WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, 0 \
+                                       0; \
+                               offset, 0 (_pos/2 + 1)*WEEK_DAY_TITLE_HEIGHT; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state: "expand_hide_down" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       1; \
+                               offset, 0 (_pos/2-3)*WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, 0 \
+                                       1; \
+                               offset, 0 ((_pos-4)/2)*WEEK_DAY_TITLE_HEIGHT; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state: "expand_down" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       WEEK_DAY_WDB_S_Y_TOP_COORD_RATIO(_pos); \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, 0 \
+                                       1; \
+                               offset, 0  ((_pos-4)/2)*WEEK_DAY_TITLE_HEIGHT; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       color, 255 255 255 255;\
+               } \
+               description { \
+                       state: "expand_up" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, WEEK_DAY_X_LEFT_COORD_RATIO(_pos) \
+                                       0; \
+                               offset, 0 (_pos/2)*WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, 0 \
+                                       1; \
+                               offset, 0 ((_pos-4)/2)*WEEK_DAY_TITLE_HEIGHT;\
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       color, 255 255 255 255;\
+               }
+
+#define RIGHT_WDB_B_EXPAND_DESC(_pos)\
+               description { \
+                       state: "expand_hide_up" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, 1 \
+                                       0; \
+                               offset, 0 ((_pos-1)/2)*WEEK_DAY_TITLE_HEIGHT; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       0; \
+                               offset, 0 ((_pos+1)/2)*WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state: "expand_hide_down" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, 1 \
+                                       1; \
+                               offset, 0 -WEEK_DAY_TITLE_HEIGHT*_pos; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       1; \
+                               offset, 0 (((_pos-1)/2)-3)*WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state: "expand_down" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, 1 \
+                                       WEEK_DAY_WDB_S_Y_TOP_COORD_RATIO(_pos); \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       1; \
+                               offset, 0 (((_pos-3)/2)-2)*WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       color, 255 255 255 255;\
+               } \
+               description { \
+                       state: "expand_up" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, 1 \
+                                       0; \
+                               offset, 0 (_pos/3)*WEEK_DAY_TITLE_HEIGHT; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, WEEK_DAY_X_RIGHT_COORD_RATIO(_pos) \
+                                       1; \
+                               offset, 0 (_pos/3-3)*WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+                       color, 255 255 255 255;\
+               } \
+
+#define RIGHT_WDB_B_B_EXPAND_DESC(_pos) \
+               description { \
+                       state: "expand_hide_up" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, 1 \
+                                       0; \
+                               offset, 0 (_pos-3)*WEEK_DAY_TITLE_HEIGHT; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (1) \
+                                       0; \
+                               offset, 0 (_pos-2)*WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state: "expand_hide_down" 0.0; \
+                       inherit: "default" 0.0; \
+                       rel1 { \
+                               relative, 1 \
+                                       1; \
+                               offset, 0 (_pos-7)*WEEK_DAY_TITLE_HEIGHT; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (1) \
+                                       1; \
+                               offset, 0 (_pos-6)*WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state, "expand_up_1" 0.0; \
+                       rel1 { \
+                               relative, 1 \
+                                       0; \
+                               offset, 0 2*WEEK_DAY_TITLE_HEIGHT; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (1) \
+                                       1; \
+                               offset, 0 -WEEK_DAY_TITLE_HEIGHT; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+               description { \
+                       state, "expand_up_2" 0.0; \
+                       rel1 { \
+                               relative, 1 \
+                                       0; \
+                               offset, 0 3*WEEK_DAY_TITLE_HEIGHT; \
+                               to_x: "wdb/line/vert";\
+                               to_y: "wdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (1) \
+                                       1; \
+                               to, "wdb/base"; \
+                       } \
+               } \
+
+
+group { name, "main/week/small";
+
+       images {
+               image, "P01_week_view_icon_open.png" COMP;
+               image, "P01_week_view_icon_close.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wdb/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wdb/line/vert";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               min: 2 0;
+                               fixed: 1 0;
+                               rel1 {
+                                 relative: 1/2 0.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                              }
+                               rel2 {
+                                  relative: 1/2 1.0;
+                                 to_x: "base";
+                                 to_y: "base";
+                               }
+                               align: 0.0 0.0;
+                               color, 171 171 171 255;
+                       }
+               }
+
+               part { name, "wdb/0/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0.0 0.0;
+                                       to_x: "base";
+                                       to_y: "base";
+                               }
+                               rel2 {
+                                       relative: 0.0 1/3;
+                                       to_x: "wdb/line/vert";
+                                       to_y: "base";
+                               }
+                               color, 246 246 246 255;
+                       }
+                       LEFT_WDB_S_EXPAND_DESC(0)
+               }
+
+               LEFT_WDB_S_TITLE(0)
+               WDB_S(0)
+
+               part { name, "wdb/1/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 1.0 0.0;
+                                       to_x: "wdb/line/vert";
+                                       to_y: "base";
+                               }
+                               rel2 {
+                                       relative: 1 1/3;
+                                       to, "base";
+                               }
+                               color, 246 246 246 255;
+                       }
+                       RIGHT_WDB_B_EXPAND_DESC(1)
+               }
+
+               RIGHT_WDB_S_TITLE(1)
+               WDB_S(1)
+
+               part { name, "wdb/2/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to, "wdb/0/base";
+                               }
+                               rel2 {
+                                       relative: 0.0 2/3;
+                                       to_x: "wdb/line/vert";
+                                       to_y: "base";
+                               }
+                               color, 246 246 246 255;
+                       }
+                       LEFT_WDB_S_EXPAND_DESC(2)
+               }
+
+               LEFT_WDB_S_TITLE(2)
+               WDB_S(2)
+
+               part { name, "wdb/3/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "wdb/line/vert";
+                                       to_y: "wdb/1/base";
+                               }
+                               rel2 {
+                                       relative: 1 2/3;
+                                       to_x: "base";
+                                       to_y: "base";
+                               }
+                               color, 246 246 246 255;
+                       }
+                       RIGHT_WDB_B_EXPAND_DESC(3)
+               }
+
+               RIGHT_WDB_S_TITLE(3)
+               WDB_S(3)
+
+               part { name, "wdb/4/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                                       to, wdb/2/base;
+                               }
+                               rel2 {
+                                       relative: 0 1;
+                                       to_x: "wdb/line/vert";
+                                       to_y: "base";
+                               }
+                               color, 246 246 246 255;
+                       }
+                       LEFT_WDB_S_EXPAND_DESC(4)
+               }
+
+               LEFT_WDB_S_TITLE(4)
+               WDB_S(4)
+
+               part { name, "wdb/5/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "wdb/line/vert";
+                                       to_y: "wdb/3/base";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       offset, 0 145;
+                                       to_x: "base";
+                                       to_y: "wdb/3/base";
+                               }
+                               align: 0.0 0.0;
+                               color, 246 246 246 255;
+                       }
+                       RIGHT_WDB_B_B_EXPAND_DESC(5)
+               }
+
+               RIGHT_WDB_S_S_TITLE(5)
+
+               WDB_S_S(5)
+
+               part { name, "gap";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "wdb/line/vert";
+                                       to_y: "wdb/5/base";
+                               }
+                               rel2 {
+                                       relative: 1.0 1.0;
+                                       offset, 0 8;
+                                       to_x: "base";
+                                       to_y: "wdb/5/base";
+                               }
+                               color, 246 246 246 255;
+                       }
+               }
+
+               part { name, "wdb/6/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative: 1.0 1.0;
+                                       to_x: "wdb/line/vert";
+                                       to_y: "gap";
+                               }
+                               rel2 {
+                                       relative: 1 1;
+                                       to_x: "base";
+                                       to_y: "base";
+                               }
+                               align: 0.0 0.0;
+                               color, 246 246 246 255;
+                       }
+                       RIGHT_WDB_B_B_EXPAND_DESC(6)
+               }
+
+               RIGHT_WDB_S_S_TITLE(6)
+               WDB_S_S(6)
+       }
+       programs {
+               WBS_S_PROGRAMS(0)
+               WBS_S_PROGRAMS(1)
+               WBS_S_PROGRAMS(2)
+               WBS_S_PROGRAMS(3)
+               WBS_S_PROGRAMS(4)
+               WBS_S_S_PROGRAMS(5)
+               WBS_S_S_PROGRAMS(6)
+       }
+}
+
+group { name, "landscape/main/week/small";
+
+       images {
+               image, "57_calendar_week_view_press.png" COMP;
+               image, "57_calendar_week_view_bg.png" COMP;
+               image, "calendar_selected.png" COMP;
+               image, "P01_week_view_icon_open.png" COMP;
+               image, "P01_week_view_icon_close.png" COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "wdb/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       offset, 0 1;
+                                       to, "base";
+                               }
+                               rel2.to, "base";
+                               color, 0 0 0 0;
+                       }
+               }
+
+               LS_WDB_S( 0) LS_WDB_S( 1) LS_WDB_S( 2)
+               LS_WDB_S( 3) LS_WDB_S( 4) LS_WDB_S_S( 5)
+               LS_WDB_S_S( 6)
+
+               part { name, "wdb/line/top";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2 {
+                                       relative, 1.0 0.0;
+                                       offset, -1 0;
+                                       to, "base";
+                               }
+                               color, 195 192 179 255;
+                       }
+               }
+
+               part { name, "wdb/line/vertical/1";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1/3 0.0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 1/3 1.0;
+                                       offset, 0 -1;
+                                       to, "base";
+                               }
+                               color, 195 192 179 255;
+                       }
+               }
+               part { name, "wdb/line/vertical/2";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 2/3 0.0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 2/3 1.0;
+                                       offset, 0 -1;
+                                       to, "base";
+                               }
+                               color, 195 192 179 255;
+                       }
+               }
+       }
+}
+
diff --git a/data/edc/layout/inc.main.week.item.edc b/data/edc/layout/inc.main.week.item.edc
new file mode 100755 (executable)
index 0000000..0edc29b
--- /dev/null
@@ -0,0 +1,318 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+group { name, "main/week/more";
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "text";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               text {
+                                       font, "SLP:style=Medium";
+                                       size, 40;
+                                       align, 0.5 0.5;
+                                       text, "...";
+                               }
+                       }
+               }
+       }
+}
+
+group { name, "main/week/1line";
+
+       images {
+               image, CALENDAR_WEEK_ARROW_FOCUS_ICON COMP;
+               image, CALENDAR_WEEK_ARROW_ICON COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               min, 240 20;
+                               fixed, 1 1;
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               visible, 1;
+                       }
+               }
+               part { name, "base/bg";
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               image.normal, CALENDAR_WEEK_VIEW_PRESS;
+                               visible, 0;
+                       }
+                       description {
+                               state, "down" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "icon_bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 24;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to, "base";
+                               }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "icon";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 24;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to, "icon_bg";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to, "icon_bg";
+                               }
+                       }
+               }
+
+               part { name, "text_title";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "icon_bg"; to_y, "base";
+                               }
+
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "base"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Medium";
+                                       size, 30;
+                                       align, 0.0 0.5;
+                                       text, "...";
+                               }
+                               color, 255 255 255 255;
+                       }
+               }
+
+               part { name, "text_location";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "icon_bg"; to_y, "base";
+                               }
+
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "base"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Medium";
+                                       size, 22;
+                                       align, 0.0 0.5;
+                                       text, "...";
+                               }
+                               color, 240 240 240 255;
+                       }
+               }
+               programs {
+                       program { name, "base/down";
+                               signal, "mouse,down,1";
+                               source, "base";
+                               action, STATE_SET "down" 0.0;
+                               target, "base/bg";
+                       }
+                       program { name, "base/up";
+                               signal, "mouse,up,1";
+                               source, "base";
+                               action, STATE_SET "default" 0.0;
+                               target, "base/bg";
+                       }
+               }
+       }
+}
+
+group { name, "landscape/main/week/1line";
+
+       images {
+               image, CALENDAR_WEEK_ARROW_FOCUS_ICON COMP;
+               image, CALENDAR_WEEK_ARROW_ICON COMP;
+               image, CALENDAR_WEEK_VIEW_PRESS COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               min, 240 50;
+                               fixed, 1 1;
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               visible, 1;
+                       }
+               }
+               part { name, "base/bg";
+                       mouse_events, 0;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                               image.normal, CALENDAR_WEEK_VIEW_PRESS;
+                               visible, 0;
+                       }
+                       description {
+                               state, "down" 0.0;
+                               inherit, "default" 0.0;
+                               visible, 1;
+                       }
+               }
+               part { name, "icon_bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 24;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 0.0 1.0;
+                                       to, "base";
+                               }
+                               align, 0.0 0.5;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "icon";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 10 24;
+                               fixed, 1 1;
+                               rel1 {
+                                       relative, 0.0 0.0;
+                                       to, "icon_bg";
+                               }
+                               rel2 {
+                                       relative, 0.0 0.0;
+                                       to, "icon_bg";
+                               }
+                       }
+               }
+
+               part { name, "text_title";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.0;
+                                       to_x, "icon_bg"; to_y, "base";
+                               }
+
+                               rel2 {
+                                       relative, 1.0 0.5;
+                                       to_x, "base"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Medium";
+                                       size, 30;
+                                       align, 0.0 0.5;
+                                       text, "...";
+                               }
+                               color, 255 255 255 255;
+                       }
+               }
+
+               part { name, "text_location";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 1.0 0.5;
+                                       to_x, "icon_bg"; to_y, "base";
+                               }
+
+                               rel2 {
+                                       relative, 1.0 1.0;
+                                       to_x, "base"; to_y, "base";
+                               }
+                               text {
+                                       font, "SLP:style=Medium";
+                                       size, 22;
+                                       align, 0.0 0.5;
+                                       text, "...";
+                               }
+                               color, 240 240 240 255;
+                       }
+               }
+               programs {
+                       program { name, "base/down";
+                               signal, "mouse,down,1";
+                               source, "base";
+                               action, STATE_SET "down" 0.0;
+                               target, "base/bg";
+                       }
+                       program { name, "base/up";
+                               signal, "mouse,up,1";
+                               source, "base";
+                               action, STATE_SET "default" 0.0;
+                               target, "base/bg";
+                       }
+               }
+       }
+}
+
diff --git a/data/edc/layout/inc.main.year.cal.edc b/data/edc/layout/inc.main.year.cal.edc
new file mode 100755 (executable)
index 0000000..8df778a
--- /dev/null
@@ -0,0 +1,250 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+// day block in year
+#define SDB(_pos) \
+       part { name, "sdb/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) \
+                                       (_pos / 7 / 6 - _pos % 7 / 7 / 6); \
+                               to, "sdb/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 7 / 7 + 1 / 7) \
+                                       (_pos / 7 / 6 - _pos % 7 / 7 / 6 + 1 / 6); \
+                               to, "sdb/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "sdb/"#_pos"/today"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 26 26; \
+                       max, 26 26; \
+                       fixed, 1 1; \
+                       align, 0.5 0.5; \
+                       rel1 { \
+                         relative: 0.0 0.0; \
+                         to_x: "sdb/"#_pos"/base"; \
+                         to_y: "sdb/"#_pos"/base"; \
+                       } \
+                       rel2 { \
+                         relative: 1.0 1.0; \
+                         to_x: "sdb/"#_pos"/base"; \
+                         to_y: "sdb/"#_pos"/base"; \
+                       } \
+                       image { \
+                               normal, CALENDAR_YEAR_DAY_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale, 1; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "sdb/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "sdb/"#_pos"/base"; \
+                       rel2.to, "sdb/"#_pos"/base"; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 15; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL; \
+               } \
+               description { \
+                       state, "today" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_TODAY_FOR_YEAR_CAL; \
+               } \
+       } \
+       programs { \
+               program { name, "sdb/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "sdb/"#_pos"/text"; \
+               } \
+               program { name, "sdb/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "sdb/"#_pos"/text"; \
+               } \
+               program { name, "sdb/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "sdb/"#_pos"/text"; \
+               } \
+               program { name, "sdb/"#_pos"/set_today"; \
+                       signal, "today,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "today" 0.0; \
+                       target, "sdb/"#_pos"/today"; \
+                       target, "sdb/"#_pos"/text";\
+               } \
+       }
+
+// day block header in year
+#define SDH(_pos) \
+       part { name, "sdh/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 7 / 7) 0.0; \
+                               to, "sdh/base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 7 / 7 + 1 / 7) 1.0; \
+                               to, "sdh/base"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "sdh/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "sdh/"#_pos"/base"; \
+                       rel2.to, "sdh/"#_pos"/base"; \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 12; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, COLOR_OF_DEFAULT_TEXT_FOR_YEAR_CAL; \
+               } \
+               description { \
+                       state, "sunday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SUNDAY_TEXT_FOR_YEAR_CAL; \
+               } \
+               description { \
+                       state, "satday" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, COLOR_OF_SATDAY_TEXT_FOR_YEAR_CAL; \
+               } \
+       } \
+       programs { \
+               program { name, "sdh/"#_pos"/weekday"; \
+                       signal, "weekday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "sdh/"#_pos"/text"; \
+               } \
+               program { name, "sdh/"#_pos"/sunday"; \
+                       signal, "sunday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "sunday" 0.0; \
+                       target, "sdh/"#_pos"/text"; \
+               } \
+               program { name, "sdh/"#_pos"/satday"; \
+                       signal, "satday,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "satday" 0.0; \
+                       target, "sdh/"#_pos"/text"; \
+               } \
+       }
+
+group { name, "main/year/cal";
+
+       images {
+               image, CALENDAR_YEAR_VIEW_BG COMP;
+               image, CALENDAR_YEAR_DAY_SELSECTED COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "sdh/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.02 0.02;
+                                       to, "base";
+                               }
+                               rel2 {
+                                       relative, 0.98 (0.02 + (1 / 7));
+                                       to, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               part { name, "sdb/base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       relative, 0.02 1.0;
+                                       to_x, "base"; to_y, "sdh/base";
+                               }
+                               rel2 {
+                                       relative, 0.98 0.98;
+                                       to, "base";
+                               }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               SDH(0) SDH(1) SDH(2) SDH(3) SDH(4) SDH(5) SDH(6)
+
+               SDB( 0) SDB( 1) SDB( 2) SDB( 3) SDB( 4) SDB( 5) SDB( 6)
+               SDB( 7) SDB( 8) SDB( 9) SDB(10) SDB(11) SDB(12) SDB(13)
+               SDB(14) SDB(15) SDB(16) SDB(17) SDB(18) SDB(19) SDB(20)
+               SDB(21) SDB(22) SDB(23) SDB(24) SDB(25) SDB(26) SDB(27)
+               SDB(28) SDB(29) SDB(30) SDB(31) SDB(32) SDB(33) SDB(34)
+               SDB(35) SDB(36) SDB(37) SDB(38) SDB(39) SDB(40) SDB(41)
+       }
+
+}
diff --git a/data/edc/layout/inc.main.year.edc b/data/edc/layout/inc.main.year.edc
new file mode 100755 (executable)
index 0000000..ce75f8b
--- /dev/null
@@ -0,0 +1,563 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//480 x 620
+//base_real 690x850
+//HD size 720x1280
+#define HD_SCALE 800/1280
+#define WIDTH_OF_YEAR_VIEW (WIDTH_OF_HD-PAD)
+#define PAD 15
+
+#define PAD_L (32*R_X_L)
+#define WIDTH_OF_YEAR_VIEW_L (WIDTH_OF_HD_L-PAD_L)
+
+#define MB(_pos) \
+       part { name, "mb/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 3 / 3) \
+                                       (_pos / 3 / 4 - _pos % 3 / 3 / 4); \
+                               to, "base_real"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 3 / 3 + 1 / 3) \
+                                       (_pos / 3 / 4 - _pos % 3 / 3 / 4 + 1 / 4); \
+                               to, "base_real"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/sel"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "mb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       image { \
+                               normal, CALENDAR_YEAR_MONTH_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale, 1; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/bg"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "mb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "mb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.15; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 22; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, 0 0 0 255; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 255 255 255 255; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/line"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 2; \
+                       fixed: 0 1; \
+                       align: 0.0 0.0; \
+                       rel1 { \
+                               relative, 0.01 1.0;\
+                               to_x, "mb/"#_pos"/base"; \
+                               to_y, "mb/"#_pos"/text"; \
+                       } \
+                       rel2 { \
+                               relative, 0.98 1.0;\
+                               to_x, "mb/"#_pos"/base"; \
+                               to_y, "mb/"#_pos"/text"; \
+                       } \
+                       color, COLOR_OF_LINE_FOR_YEAR_CAL; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/sw"; \
+               type, SWALLOW; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0;\
+                               to_x, "mb/"#_pos"/base"; \
+                               to_y, "mb/"#_pos"/line"; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0;\
+                               to_x, "mb/"#_pos"/base"; \
+                               to_y, "mb/"#_pos"/base"; \
+                       } \
+               } \
+       } \
+       programs { \
+               program { name, "mb/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "mb/"#_pos"/base"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "mb/"#_pos"/bg"; \
+               } \
+               program { name, "mb/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "mb/"#_pos"/base"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "mb/"#_pos"/bg"; \
+               } \
+               program { name, "mb/"#_pos"/click"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "mb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "cal"; \
+               } \
+               program { name, "mb/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "mb/"#_pos"/sel"; \
+                       target, "mb/"#_pos"/text"; \
+                       target, "mb/"#_pos"/line"; \
+               } \
+               program { name, "mb/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "mb/"#_pos"/sel"; \
+                       target, "mb/"#_pos"/text"; \
+                       target, "mb/"#_pos"/line"; \
+               } \
+       }
+
+#define HANDLE(_pos) \
+       part { name, "handle/"#_pos"/sw"; \
+               type, SWALLOW; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 3 / 3) \
+                                       (_pos / 3 / 4 - _pos % 3 / 3 / 4); \
+                               to, "base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 3 / 3 + 1 / 3) \
+                                       (_pos / 3 / 4 - _pos % 3 / 3 / 4 + 1 / 4); \
+                               to, "base"; \
+                       } \
+               } \
+       } \
+
+group { name, "year/layout";
+
+       parts {
+
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               rel1 { relative, 0.0 0.0; }
+                               rel2 { relative, 1.0 1.0; }
+                       }
+               }
+
+               part { name, "content";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+
+               part { name, "edje/handle";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "base";
+                               rel2.to, "base";
+                       }
+               }
+
+               part { name, "content/left";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, -1.0 0.0; to, "content"; }
+                               rel2 { relative, 0.0 1.0; to, "content";}
+                       }
+               }
+
+               part { name, "content/right";
+                       type, SWALLOW;
+                       clip_to, "clip";
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, 1.0 0.0; to, "content"; }
+                               rel2 { relative, 2.0 1.0; to, "content";}
+                       }
+               }
+
+               part { name, "clip";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "content";
+                               rel2.to, "content";
+                       }
+               }
+       }
+
+}
+
+group { name, "year/edje/handle";
+
+       parts {
+
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               rel1 { relative, 0.0 0.0; }
+                               rel2 { relative, 1.0 1.0; }
+                       }
+               }
+
+               HANDLE(0) HANDLE(1) HANDLE(2)
+               HANDLE(3) HANDLE(4) HANDLE(5)
+               HANDLE(6) HANDLE(7) HANDLE(8)
+               HANDLE(9) HANDLE(10) HANDLE(11)
+       }
+}
+
+group { name, "main/year/months";
+
+       images {
+               image, "calendar_selected.png" COMP;
+               image, "57_calendar_week_view_press.png" COMP;
+               image, CALENDAR_YEAR_MONTH_SELSECTED COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 248 246 239 255;
+                       }
+               }
+               part { name, "base_real";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, PAD/WIDTH_OF_HD 0/HEIGHT_OF_HD; }
+                               rel2 { relative, WIDTH_OF_YEAR_VIEW/WIDTH_OF_HD HEIGHT_OF_HD/HEIGHT_OF_HD; }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               MB(0) MB(1) MB(2)
+               MB(3) MB(4) MB(5)
+               MB(6) MB(7) MB(8)
+               MB(9) MB(10) MB(11)
+       }
+}
+
+#define MB_L(_pos) \
+       part { name, "mb/"#_pos"/base"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 4 / 4) \
+                                       (_pos / 4 / 3 - _pos % 4 / 4/ 3); \
+                               to, "base_real"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 4 / 4 + 1 / 4) \
+                                       (_pos / 4 / 3 - _pos % 4 / 4 / 3 + 1 / 3); \
+                               to, "base_real"; \
+                       } \
+                       color, 0 0 0 0; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/sel"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "mb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       image { \
+                               normal, CALENDAR_YEAR_MONTH_SELSECTED; \
+                               border, 3 3 3 3; \
+                               border_scale, 1; \
+                       } \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 1; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/bg"; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "mb/"#_pos"/base"; \
+                       rel2 { \
+                               offset, 0 0; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       image.normal, CALENDAR_WEEK_VIEW_PRESS; \
+                       visible, 0; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/text"; \
+               type, TEXT; \
+               mouse_events, 0; \
+               scale, 1; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1.to, "mb/"#_pos"/base"; \
+                       rel2 { \
+                               relative, 1.0 0.15; \
+                               to, "mb/"#_pos"/base"; \
+                       } \
+                       text { \
+                               font, "SLP:style=Medium"; \
+                               size, 22; \
+                               align, 0.5 0.5; \
+                       } \
+                       color, 0 0 0 255; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       color, 255 255 255 255; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/line"; \
+               type, RECT; \
+               description { \
+                       state, "default" 0.0; \
+                       min, 0 2; \
+                       fixed: 0 1; \
+                       align: 0.0 0.0; \
+                       rel1 { \
+                               relative, 0.02 1.0;\
+                               to_x, "mb/"#_pos"/base"; \
+                               to_y, "mb/"#_pos"/text"; \
+                       } \
+                       rel2 { \
+                               relative, 0.98 1.0;\
+                               to_x, "mb/"#_pos"/base"; \
+                               to_y, "mb/"#_pos"/text"; \
+                       } \
+                       color, COLOR_OF_LINE_FOR_YEAR_CAL; \
+                       visible, 1; \
+               } \
+               description { \
+                       state, "selected" 0.0; \
+                       inherit, "default" 0.0; \
+                       visible, 0; \
+               } \
+       } \
+       part { name, "mb/"#_pos"/sw"; \
+               type, SWALLOW; \
+               mouse_events, 0; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, 0.0 1.0;\
+                               to_x, "mb/"#_pos"/base"; \
+                               to_y, "mb/"#_pos"/line"; \
+                       } \
+                       rel2 { \
+                               relative, 1.0 1.0;\
+                               to_x, "mb/"#_pos"/base"; \
+                               to_y, "mb/"#_pos"/base"; \
+                       } \
+               } \
+       } \
+       programs { \
+               program { name, "mb/"#_pos"/down"; \
+                       signal, "mouse,down,1"; \
+                       source, "mb/"#_pos"/base"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "mb/"#_pos"/bg"; \
+               } \
+               program { name, "mb/"#_pos"/up"; \
+                       signal, "mouse,up,1"; \
+                       source, "mb/"#_pos"/base"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "mb/"#_pos"/bg"; \
+               } \
+               program { name, "mb/"#_pos"/click"; \
+                       signal, "mouse,clicked,1"; \
+                       source, "mb/"#_pos"/base"; \
+                       action, SIGNAL_EMIT #_pos "cal"; \
+               } \
+               program { name, "mb/"#_pos"/select"; \
+                       signal, "select,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "selected" 0.0; \
+                       target, "mb/"#_pos"/sel"; \
+                       target, "mb/"#_pos"/text"; \
+                       target, "mb/"#_pos"/line"; \
+               } \
+               program { name, "mb/"#_pos"/unselect"; \
+                       signal, "unselect,"#_pos; \
+                       source, "prog"; \
+                       action, STATE_SET "default" 0.0; \
+                       target, "mb/"#_pos"/sel"; \
+                       target, "mb/"#_pos"/text"; \
+                       target, "mb/"#_pos"/line"; \
+               } \
+       }
+
+#define HANDLE_L(_pos) \
+       part { name, "handle/"#_pos"/sw"; \
+               type, SWALLOW; \
+               description { \
+                       state, "default" 0.0; \
+                       rel1 { \
+                               relative, (_pos % 4 / 4) \
+                                       (_pos / 4 / 3 - _pos % 4 / 4 / 3); \
+                               to, "base"; \
+                       } \
+                       rel2 { \
+                               relative, (_pos % 4 / 4 + 1 / 4) \
+                                       (_pos / 4 / 3 - _pos % 4 / 4 / 3 + 1 / 3); \
+                               to, "base"; \
+                       } \
+               } \
+       } \
+
+group { name, "year/edje/handle/l";
+
+       parts {
+
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 0;
+                               rel1 { relative, 0.0 0.0; }
+                               rel2 { relative, 1.0 1.0; }
+                       }
+               }
+
+               HANDLE_L(0) HANDLE_L(1) HANDLE_L(2)
+               HANDLE_L(3) HANDLE_L(4) HANDLE_L(5)
+               HANDLE_L(6) HANDLE_L(7) HANDLE_L(8)
+               HANDLE_L(9) HANDLE_L(10) HANDLE_L(11)
+       }
+}
+
+group { name, "main/year/months/l";
+
+       images {
+               image, "calendar_selected.png" COMP;
+               image, "57_calendar_week_view_press.png" COMP;
+               image, CALENDAR_YEAR_MONTH_SELSECTED COMP;
+       }
+
+       parts {
+               part { name, "base";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               color, 248 246 239 255;
+                       }
+               }
+
+               part { name, "base_real";
+                       type, RECT;
+                       description {
+                               state, "default" 0.0;
+                               rel1 { relative, PAD_L/WIDTH_OF_HD_L 0/HEIGHT_OF_HD_L; }
+                               rel2 { relative, WIDTH_OF_YEAR_VIEW_L/WIDTH_OF_HD_L HEIGHT_OF_HD_L/HEIGHT_OF_HD_L; }
+                               color, 0 0 0 0;
+                       }
+               }
+
+               MB_L(0) MB_L(1) MB_L(2)
+               MB_L(3) MB_L(4) MB_L(5)
+               MB_L(6) MB_L(7) MB_L(8)
+               MB_L(9) MB_L(10) MB_L(11)
+       }
+}
diff --git a/data/edc/layout/inc.map.edc b/data/edc/layout/inc.map.edc
new file mode 100755 (executable)
index 0000000..7df65d0
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */\r
+\r
+group { name, "edit/map";\r
+\r
+       parts {\r
+               part { name, "bg";\r
+                       type, SWALLOW;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               align: 0.0 0.0;\r
+                       }\r
+               }\r
+\r
+               part { name, "searchbar";\r
+                       type, SWALLOW;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 0 106;\r
+                               fixed, 0 1;\r
+                               rel1 { relative, 0.0 0.0; to, "bg"; }\r
+                               rel2 { relative, 1.0 0.0; to, "bg"; }\r
+                               align, 0.5 0.0;\r
+                       }\r
+               }\r
+               part { name, "map";\r
+                       type, SWALLOW;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               rel1 { relative, 0.0 1.0; to, "searchbar"; }\r
+                               rel2 { relative, 1.0 1.0; to, "bg"; }\r
+                       }\r
+               }\r
+               part { name, "progress";\r
+                       type, SWALLOW;\r
+                       scale, 1;\r
+                       mouse_events, 0;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 50 50;\r
+                               fixed, 1 1;\r
+                               rel1 { relative, 0.5 0.5; to, "map"; }\r
+                               rel2 { relative, 0.5 0.5; to, "map"; }\r
+                               align, 0.5 0.5;\r
+                       }\r
+               }\r
+       }\r
+}\r
diff --git a/data/edc/layout/inc.part.edc b/data/edc/layout/inc.part.edc
new file mode 100755 (executable)
index 0000000..f54b9a0
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */\r
+\r
+group { name, "edit/participant";\r
+\r
+       parts {\r
+               part { name, "base";\r
+                       type, RECT;\r
+                       scale,1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               visible, 0;\r
+                       }\r
+               }\r
+               part { name, "mbe/bg";\r
+                       type, RECT;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               rel1.to, "base";\r
+                               rel2.to, "mbe/sw";\r
+                               visible, 0;\r
+                       }\r
+               }\r
+               part { name, "mbe/sw";\r
+                       type, SWALLOW;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               rel1.to, "base";\r
+                               rel2 {\r
+                                       relative, 0.85 0.0;\r
+                                       to_x, "base"; to_y, "box/base";\r
+                               }\r
+                               align, 0.0 0.0;\r
+                       }\r
+               }\r
+\r
+               part { name, "box/base";\r
+                       type, RECT;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 0 106;\r
+                               fixed, 0 1;\r
+                               rel1 { relative, 0.0 1.0; to, "base"; }\r
+                               rel2.to, "base";\r
+                               visible, 0;\r
+                               align, 0.5 1.0;\r
+                       }\r
+                       description {\r
+                               state, "list" 0.0;\r
+                               inherit, "default" 0.0;\r
+                               min, 0 106;\r
+                       }\r
+               }\r
+               part { name, "box/top_left";\r
+                       type, RECT;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 10 10;\r
+                               fixed, 1 1;\r
+                               rel1.to, "box/base";\r
+                               rel2 { relative, 0.0 0.0; to, "box/base"; }\r
+                               align, 0.0 0.0;\r
+                               color, 0 0 0 0;\r
+                       }\r
+               }\r
+               part{ name, "box/bottom_right";\r
+                       type, RECT;\r
+                       scale, 1;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 10 10;\r
+                               fixed, 1 1;\r
+                               rel1 { relative, 1.0 1.0; to, "box/base"; }\r
+                               rel2.to, "box/base";\r
+                               color, 0 0 0 0;\r
+                               align, 1.0 1.0;\r
+                       }\r
+               }\r
+               part { name, "box/sw";\r
+                       type, SWALLOW;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               min, 85 85;\r
+                               rel1 { relative, 1.0 0.0; to, "mbe/sw"; }\r
+                               rel2 { relative, 1.0 0.0; to, "mbe/sw"; }\r
+                               visible, 1;\r
+                               align, 0.0 0.0;\r
+                       }\r
+               }\r
+               part { name, "list/sw";\r
+                       type, SWALLOW;\r
+                       description {\r
+                               state, "default" 0.0;\r
+                               rel1.to, "box/base";\r
+                               rel2.to, "box/base";\r
+                               visible, 0;\r
+                       }\r
+                       description {\r
+                               state, "list" 0.0;\r
+                               inherit, "default" 0.0;\r
+                               visible, 1;\r
+                       }\r
+               }\r
+       }\r
+\r
+       programs {\r
+               program { name, "list/show";\r
+                       signal, "show,list";\r
+                       source, "prog";\r
+                       action, STATE_SET "list" 0.0;\r
+                       target, "box/base";\r
+                       target, "list/sw";\r
+               }\r
+               program { name, "list/hide";\r
+                       signal, "hide,list";\r
+                       source, "prog";\r
+                       action, STATE_SET "default" 0.0;\r
+                       target, "box/base";\r
+                       target, "list/sw";\r
+               }\r
+       }\r
+}\r
+\r
diff --git a/data/edc/theme/button.edc b/data/edc/theme/button.edc
new file mode 100755 (executable)
index 0000000..64fbcf0
--- /dev/null
@@ -0,0 +1,262 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+group { name: "elm/button/base/calendar/naviframe/more_left/default";
+      images {
+         image: "P01_title_left.png" COMP;
+         image: "P01_title_left_press.png" COMP;
+         image: "00_title_btn_bg_press.png" COMP;
+      }
+      parts {
+         part { name: "button_image";
+            scale: 1;
+            description { state: "default" 0.0;
+               min: BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC;
+               max: BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC;
+               color: 0 0 0 0;
+            }
+            description { state: "clicked" 0.0;
+               min: BUTTON_NAVIFRAME_MORE_BG_PRESSED_MIN_MAX_INC;
+               max: BUTTON_NAVIFRAME_MORE_BG_PRESSED_MIN_MAX_INC;
+               image {
+                  normal: "00_title_btn_bg_press.png";
+                  border: BUTTON_NAVIFRAME_MORE_BG_PRESSED_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+            }
+         }
+         part { name: "more_image";
+            scale: 1;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               min: BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC;
+               max: BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC;
+               rel1.to: "button_image";
+               rel2.to: "button_image";
+               image.normal: "P01_title_left.png";
+            }
+            description { state: "clicked" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "P01_title_left_press.png";
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 127;
+            }
+         }
+         part { name: "over2";
+            type: RECT;
+            repeat_events: 1;
+            ignore_flags: ON_HOLD;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "over3";
+            type: RECT;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "disabler";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+               visible: 0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+      }
+      programs {
+         program { name: "button_click";
+            signal: "mouse,down,1";
+            source: "over2";
+            action: SIGNAL_EMIT "elm,action,press" "";
+            after: "button_click_anim";
+         }
+         program { name: "button_click_anim";
+            action: STATE_SET "clicked" 0.0;
+            target: "button_image";
+            target: "more_image";
+         }
+         program { name: "button_unclick";
+            signal: "mouse,up,1";
+            source: "over3";
+            action: SIGNAL_EMIT "elm,action,unpress" "";
+            after: "button_unclick_anim";
+         }
+         program { name: "button_unclick_anim";
+            action: STATE_SET "default" 0.0;
+            target: "button_image";
+            target: "more_image";
+         }
+         program { name: "button_unclick3";
+           signal: "mouse,clicked,1";
+            source: "over2";
+            action: SIGNAL_EMIT "elm,action,click" "";
+         }
+         program { name: "disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disabler";
+            target: "button_image";
+            target: "more_image";
+         }
+         program { name: "enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disabler";
+            target: "button_image";
+            target: "more_image";
+         }
+      }
+   }
+
+group { name: "elm/button/base/calendar/naviframe/more_right/default";
+      images {
+         image: "P01_title_right.png" COMP;
+         image: "P01_title_right_press.png" COMP;
+         image: "00_title_btn_bg_press.png" COMP;
+      }
+      parts {
+         part { name: "button_image";
+            scale: 1;
+            description { state: "default" 0.0;
+               min: BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC;
+               max: BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC;
+               color: 0 0 0 0;
+            }
+            description { state: "clicked" 0.0;
+               min: BUTTON_NAVIFRAME_MORE_BG_PRESSED_MIN_MAX_INC;
+               max: BUTTON_NAVIFRAME_MORE_BG_PRESSED_MIN_MAX_INC;
+               image {
+                  normal: "00_title_btn_bg_press.png";
+                  border: BUTTON_NAVIFRAME_MORE_BG_PRESSED_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "focused" 0.0;
+               inherit: "default" 0.0;
+            }
+         }
+         part { name: "more_image";
+            scale: 1;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               min: BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC;
+               max: BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC;
+               rel1.to: "button_image";
+               rel2.to: "button_image";
+               image.normal: "P01_title_right.png";
+            }
+            description { state: "clicked" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "P01_title_right_press.png";
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 127;
+            }
+         }
+         part { name: "over2";
+            type: RECT;
+            repeat_events: 1;
+            ignore_flags: ON_HOLD;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "over3";
+            type: RECT;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "disabler";
+            type: RECT;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+               visible: 0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+      }
+      programs {
+         program { name: "button_click";
+            signal: "mouse,down,1";
+            source: "over2";
+            action: SIGNAL_EMIT "elm,action,press" "";
+            after: "button_click_anim";
+         }
+         program { name: "button_click_anim";
+            action: STATE_SET "clicked" 0.0;
+            target: "button_image";
+            target: "more_image";
+         }
+         program { name: "button_unclick";
+            signal: "mouse,up,1";
+            source: "over3";
+            action: SIGNAL_EMIT "elm,action,unpress" "";
+            after: "button_unclick_anim";
+         }
+         program { name: "button_unclick_anim";
+            action: STATE_SET "default" 0.0;
+            target: "button_image";
+            target: "more_image";
+         }
+         program { name: "button_unclick3";
+           signal: "mouse,clicked,1";
+            source: "over2";
+            action: SIGNAL_EMIT "elm,action,click" "";
+         }
+         program { name: "disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disabler";
+            target: "button_image";
+            target: "more_image";
+         }
+         program { name: "enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disabler";
+            target: "button_image";
+            target: "more_image";
+         }
+      }
+   }
diff --git a/data/edc/theme/genlist.edc b/data/edc/theme/genlist.edc
new file mode 100755 (executable)
index 0000000..e28d7e2
--- /dev/null
@@ -0,0 +1,3178 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "originals/white-hd-inc.edc"
+#include "originals/genlist_macro.edc"
+
+   /*
+    *  Based on "elm/genlist/item/dialogue/2text/default"
+    *   in efl-theme-tizen/themes/widgets/genlist/genlist_normal.edc
+    */
+   group { name: "elm/genlist/item/dialogue/4text.1/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4";
+      data.item: "flips" "elm.flip.content";
+      parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Regular";
+                  size: GENLIST_FONT_40_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.1";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+         }
+         part { name: "elm.text.3";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.1";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Regular";
+                  size: GENLIST_FONT_40_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.4";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.3";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.3";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_2TEXT
+      }
+   }
+
+   group { name: "elm/genlist/item/dialogue/6text/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.5 elm.text.6";
+      data.item: "flips" "elm.flip.content";
+      parts {
+         GENLIST_PART_BASE( 274 )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.4";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.4";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Regular";
+                  size: GENLIST_FONT_44_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               align: 0.5 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+         }
+         part { name: "elm.text.3";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.2";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.2";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.4";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.3";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.3";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.5";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.4";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.4";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.6";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.5";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.5";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.text.4";
+            target: "elm.text.5";
+            target: "elm.text.6";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.text.4";
+            target: "elm.text.5";
+            target: "elm.text.6";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_2TEXT
+      }
+   }
+
+   group { name: "elm/genlist/item/dialogue/5text/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.5";
+      data.item: "flips" "elm.flip.content";
+      parts {
+         GENLIST_PART_BASE( 226 )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.5;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.3";
+               }
+               rel2 {
+                  relative: 0.0 0.5;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.4";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Regular";
+                  size: GENLIST_FONT_44_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               align: 0.5 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+         }
+         part { name: "elm.text.3";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.2";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.2";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.4";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.3";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.3";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.5";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.4";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.4";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.text.4";
+            target: "elm.text.5";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.text.4";
+            target: "elm.text.5";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_2TEXT
+      }
+   }
+
+   group { name: "elm/genlist/item/dialogue/4text/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4";
+      data.item: "flips" "elm.flip.content";
+      parts {
+         GENLIST_PART_BASE( 178 )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.3";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.3";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Regular";
+                  size: GENLIST_FONT_44_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               align: 0.5 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+         }
+         part { name: "elm.text.3";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.2";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.2";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.4";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.3";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.3";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.text.4";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.text.4";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_2TEXT
+      }
+   }
+   group { name: "elm/genlist/item/dialogue/3text/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+      data.item: "flips" "elm.flip.content";
+      parts {
+         GENLIST_PART_BASE( 130 )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.5;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.2";
+               }
+               rel2 {
+                  relative: 0.0 0.5;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.3";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Regular";
+                  size: GENLIST_FONT_44_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               align: 0.5 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+         }
+         part { name: "elm.text.3";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.2";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.2";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_2TEXT
+      }
+   }
+
+   group { name: "elm/genlist/item/dialogue/2text.10/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2";
+      data.item: "flips" "elm.flip.content";
+      parts {
+         GENLIST_PART_BASE( 114 )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Regular";
+                  size: GENLIST_FONT_44_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               align: 0.5 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+         }
+
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_2TEXT
+      }
+   }
+
+   group { name: "elm/genlist/item/dialogue/1icon.12text/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.text.4 elm.text.5 elm.text.6 elm.text.7 elm.text.8 elm.text.9 elm.text.10 elm.text.11 elm.text.12";
+      data.item: "flips" "elm.flip.content";
+      data.item: "contents" "elm.icon";
+      parts {
+         GENLIST_PART_BASE( 336 )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.icon";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE;
+               max: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.icon.right";
+                  to_y: "elm.text.1";
+               }
+            }
+         }
+         part { name: "elm.padding.icon.right";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.icon";
+               }
+               rel2.to_x: "elm.icon";
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.1";
+               }
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.3";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.1";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.4";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.3";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.3";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.5";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.3";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.3";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.6";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.5";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.5";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.middle";
+            type: RECT;
+            scale: 1;
+            description {
+               state: "default" 0.0;
+               min: 0 16;
+               fixed: 0 1;
+               visible: 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.5";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.5";
+               }
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "elm.text.7";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.middle";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.middle";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.8";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.7";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.7";
+               }
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.9";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.7";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.7";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.10";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.9";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.9";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.11";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.9";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.9";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.12";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.11";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.11";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.text.4";
+            target: "elm.text.5";
+            target: "elm.text.6";
+            target: "elm.text.7";
+            target: "elm.text.8";
+            target: "elm.text.9";
+            target: "elm.text.10";
+            target: "elm.text.11";
+            target: "elm.text.12";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.text.4";
+            target: "elm.text.5";
+            target: "elm.text.6";
+            target: "elm.text.7";
+            target: "elm.text.8";
+            target: "elm.text.9";
+            target: "elm.text.10";
+            target: "elm.text.11";
+            target: "elm.text.12";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_2TEXT
+      }
+   }
+
+   group { name: "elm/genlist/item/dialogue/1icon.fill/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1";
+      data.item: "contents" "elm.icon";
+
+      parts {
+         GENLIST_PART_BASE( 0 )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_24_INC )
+         GENLIST_PART_PADDING_RIGHT( 0 )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "padding.text";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               min: 0 28;
+               max: -1 28;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to: "base";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to_x: "base";
+               }
+            }
+         }
+         part { name: "elm.text.1";
+            type: TEXT;
+            scale: 1;
+            description { state: "default" 0.0;
+               color: 255 0 0 255;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "padding.text";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to: "base";
+               }
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.0;
+                  text_class: "slp";
+               }
+            }
+         }
+         part { name: "padding.icon";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 0;
+               min: 0 40;
+               max: -1 40;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to: "base";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to_x: "base";
+               }
+            }
+         }
+         part { name: "elm.icon";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.rect.dialogue";
+                  to_y: "padding.icon";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to: "base";
+               }
+            }
+         }
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         /*program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text";
+            transition: LINEAR 0.1;
+         }*/
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+      }
+   }
+
+    group { name: "elm/genlist/item/dialogue/3text.1icon.3/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+      data.item: "contents" "elm.icon elm.swallow.colorbar";
+      data.item: "flips" "elm.flip.content";
+      parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         part { name: "elm.swallow.colorbar";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_10_INC GENLIST_SIZE_21_INC;
+               fixed: 1 1;
+               rel2.relative: 0.0 0.0;
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "elm.icon";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_ICON_BIG;
+               max: GENLIST_SIZE_ICON_BIG GENLIST_SIZE_ICON_BIG;
+               fixed: 0 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  offset: 0 0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 0.0 0.5;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon.right";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.icon";
+               }
+               rel2.to_x: "elm.icon";
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.text.3";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_192_INC GENLIST_SIZE_61_INC;
+               max: GENLIST_SIZE_192_INC GENLIST_SIZE_61_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.bottom";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 1.0;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Bold";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  max: 1 0;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.text3.left";
+            clip_to: "disclip";
+            type: RECT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_ICON_SMALL_SIZE 0;
+               fixed: 1 0;
+               rel1.to_x: "elm.text.3";
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.text.3";
+               }
+               align: 1.0 0.5;
+               visible: 0;
+            }
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+                min: 0 GENLIST_SIZE_61_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.icon.right";
+                  to_y: "elm.text.3";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.text3.left";
+                  to_y: "elm.padding.bottom";
+               }
+                align: 0.0 0.5;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Bold";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.2";
+               }
+               align: 0.0 0.5;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Regular";
+                  size: GENLIST_FONT_44_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         GENLIST_PROGRAM_FLIP_3TEXT_1ICON
+      }
+   }
+
+   group { name: "elm/genlist/item/2text.4icon.edit/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.textblock.1 elm.textblock.2 elm.textblock.3 elm.text.1 elm.text.2 elm.text.3";
+      data.item: "contents" "elm.edit.icon.1 elm.icon.1 elm.icon.2 elm.swallow.colorbar";
+      data.item: "flips" "elm.flip.content";
+      parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+        GENLIST_PART_PADDING_TOP( GENLIST_PADDING_10_INC )
+        GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_10_INC )
+        GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+        GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         part { name: "elm.swallow.colorbar";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_10_INC GENLIST_SIZE_21_INC;
+               fixed: 1 1;
+               rel2.relative: 0.0 0.0;
+               align: 0.0 0.0;
+            }
+         }
+       part { name: "elm.edit.icon.1.right";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to: "elm.edit.icon.1";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to: "elm.edit.icon.1";
+               }
+               align: 0.0 1.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.edit.icon.1";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 0.0 0.5;
+            }
+         }
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_60_INC;
+               fixed: 0 1;
+               rel1 {
+                   relative: 1.0 1.0;
+                   to_x: "elm.edit.icon.1.right";
+                   to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: (16 + GENLIST_SIZE_576_INC)/720 70/128;to, "base";
+               }
+               align: 0.0 0.5;
+            text {
+                  style: strike_textblock_style_text1;
+                  min: 0 1;
+                    text_class: "slp";
+            }
+            }
+           description { state: "selected" 0.0;
+               min: 0 GENLIST_SIZE_60_INC;
+               fixed: 0 1;
+               rel1 {
+                   relative: 1.0 1.0;
+                   to_x: "elm.edit.icon.1.right";
+                   to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: (16 + GENLIST_SIZE_576_INC)/720 70/128;to, "base";
+               }
+               align: 0.0 0.5;
+            text {
+                  style: strike_textblock_style_text1_selected;
+                  min: 0 1;
+                    text_class: "slp";
+                   }
+            }
+         }
+         part { name: "elm.text.3";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_192_INC GENLIST_SIZE_48_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.5;
+               color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+               text {
+                  font: "SLP:style=Bold";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+         }
+           part { name: "elm.textblock.3";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_192_INC GENLIST_SIZE_48_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.5;
+               text {
+               style: strike_textblock_style3;
+               min: 0 1;
+                 text_class: "slp";
+            }
+            }
+            description { state: "selected" 0.0;
+               min: GENLIST_SIZE_192_INC GENLIST_SIZE_48_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.5;
+               text {
+               style: strike_textblock_style3_selected;
+               min: 0 1;
+                 text_class: "slp";
+            }
+            }
+         }
+         part { name: "elm.textblock.1";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+           clip_to: "disclip";
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_60_INC;
+               fixed: 0 1;
+               rel1 {
+                   relative: 1.0 1.0;
+                   to_x: "elm.edit.icon.1.right";
+                   to_y: "elm.padding.top";
+               }
+               rel2 {
+                   relative: (16 + GENLIST_SIZE_576_INC)/720 70/128;to, "base";
+               }
+               align: 0.0 0.5;
+            text {
+               style: strike_textblock_style;
+               min: 0 1;
+                 text_class: "slp";
+            }
+            }
+            description { state: "selected" 0.0;
+            min: 0 GENLIST_SIZE_60_INC;
+               fixed: 0 1;
+               rel1 {
+                   relative: 1.0 1.0;
+                   to_x: "elm.edit.icon.1.right";
+                   to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: (16 + GENLIST_SIZE_576_INC)/720 70/128;to, "base";
+               }
+               align: 0.0 0.5;
+            text {
+               style: strike_textblock_style_selected;
+               min: 0 1;
+                 text_class: "slp";
+            }
+            }
+
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_390_INC GENLIST_SIZE_48_INC;
+                fixed: 0 1;
+               rel1 {
+                  relative: 0.0 1.0; to, "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.text.3";
+                  to_y: "elm.padding.bottom";
+               }
+               text {
+                  font: "SLP:style=Bold";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+               align: 0.0 0.5;
+                color: GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC;
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+         }
+        part { name: "elm.textblock.2";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_390_INC GENLIST_SIZE_48_INC;
+                fixed: 0 1;
+               rel1 {
+                  relative: 0.0 1.0; to, "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.text.3";
+                  to_y: "elm.padding.bottom";
+               }
+               text {
+               style: strike_textblock_style2;
+               min: 0 1;
+                 text_class: "slp";
+            }
+               align: 0.0 0.5;
+            }
+            description { state: "selected" 0.0;
+               min: GENLIST_SIZE_390_INC GENLIST_SIZE_48_INC;
+                fixed: 0 1;
+               rel1 {
+                  relative: 0.0 1.0; to, "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.text.3";
+                  to_y: "elm.padding.bottom";
+               }
+               text {
+               style: strike_textblock_style2_selected;
+               min: 0 1;
+                 text_class: "slp";
+            }
+               align: 0.0 0.5;
+            }
+         }
+         part { name: "elm.icon.1";
+            clip_to: "disclip";
+            type: SWALLOW;
+           mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE;
+               max: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.1";
+               }
+               align: 1.0 0.5;
+            }
+         }
+        GENLIST_PART_DISCLIP
+      }
+       programs {
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.textblock.1";
+            target: "elm.textblock.2";
+            target: "elm.textblock.3";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.textblock.1";
+            target: "elm.textblock.2";
+            target: "elm.textblock.3";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+      }
+   }
+
+     group { name: "elm/genlist/item/2text.2icon.edit.1/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.textblock.1 elm.textblock.2 elm.text.1";
+      data.item: "contents" "elm.edit.icon.1 elm.icon.1 elm.swallow.colorbar";
+      data.item: "flips" "elm.flip.content";
+         styles{
+               style { name: "week_text1";
+                base: "font=SLP:style=Regular  font_size=28 align=left color=#333333FF wrap=mixed ellipsis=1";
+                tag:  "br" "\n";
+                 tag,  "ps" "ps";
+                tag:  "hilight" "+ color=#F9F9F9FF";
+                tag:  "b" "+ font=SLP:style=Bold";
+                tag:  "tab" "\t";
+                tag:  "strike" "+ strikethrough=on strikethrough_color=#FF0000";
+             }
+               style { name: "week_text1_selected";
+                base: "font=SLP:style=Regular font_size=28 align=left color=#F9F9F9FF wrap=mixed ellipsis=1" ;
+                 tag,  "ps" "ps";
+                tag:  "br" "\n";
+                tag:  "hilight" "+ color=#F9F9F9FF";
+                tag:  "b" "+ font=SLP:style=Bold";
+                tag:  "tab" "\t";
+                tag:  "strike" "+ strikethrough=on strikethrough_color=#FF0000";
+             }
+               style { name: "week_text2";
+                base: "font=SLP:style=Bold  font_size=22 align=left color=#2A89C2FF  wrap=mixed ellipsis=1";
+                tag:  "br" "\n";
+                 tag,  "ps" "ps";
+                tag:  "hilight" "+ color=#F9F9F9FF";
+                tag:  "b" "+ font=SLP:style=Bold";
+                tag:  "tab" "\t";
+             }
+               style { name: "week_text2_selected";
+                base: "font=SLP:style=Bold  font_size=22 align=left color=#F9F9F9FF  wrap=mixed ellipsis=1";
+                tag:  "br" "\n";
+                 tag,  "ps" "ps";
+                tag:  "hilight" "+ font=SLP:style=Regular";
+                tag:  "b" "+ font=SLP:style=Regular";
+                tag:  "tab" "\t";
+             }
+         }
+      parts {
+        part { name: "base";
+            type: RECT;
+            repeat_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 87;
+               color: 0 0 0 0;
+            }
+         }
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+        GENLIST_PART_PADDING_TOP( GENLIST_PADDING_16_INC )
+        GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+        GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+        GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_8_INC )
+         part { name: "elm.swallow.colorbar";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_10_INC GENLIST_SIZE_21_INC;
+               fixed: 1 1;
+               rel2.relative: 0.0 0.0;
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "elm.edit.icon.1";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               max: GENLIST_PADDING_16_INC GENLIST_PADDING_16_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 0.0 0.5;
+               }
+         }
+          part { name: "elm.icon.1";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_24_INC GENLIST_PADDING_24_INC;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 45/87;
+                  to_x: "elm.padding.right";
+                  to_y: "base";
+               }
+               align: 1.0 0.5;
+               }
+         }
+          part { name: "elm.icon.1.left";
+            clip_to: "disclip";
+            type: SWALLOW;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_8_INC 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon.1";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.icon.1";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0;
+                visible: 0;
+               }
+         }
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 30;
+               fixed: 0 1;
+               rel1 {
+                   relative: 1.0 1.0;
+                   to_x: "elm.edit.icon.1";
+                   to_y: "elm.padding.top";
+               }
+               rel2 {
+                   relative: 0.0 1.0;
+                   to_x: "elm.icon.1.left";
+                   to_y: "elm.icon.1";
+               }
+               align: 0.0 0.5;
+            text {
+                  style: week_text1;
+                  min: 0 1;
+                    text_class: "slp";
+            }
+            }
+           description { state: "selected" 0.0;
+               min: 0 30;
+               fixed: 0 1;
+               rel1 {
+                   relative: 1.0 1.0;
+                   to_x: "elm.edit.icon.1";
+                   to_y: "elm.padding.top";
+               }
+               rel2 {
+                   relative: 0.0 1.0;
+                   to_x: "elm.icon.1.left";
+                   to_y: "elm.icon.1";
+               }
+               align: 0.0 0.5;
+            text {
+                  style: week_text1_selected;
+                  min: 0 1;
+                    text_class: "slp";
+                   }
+            }
+         }
+         part { name: "elm.textblock.1";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+           clip_to: "disclip";
+            description { state: "default" 0.0;
+               min: 0 30;
+               fixed: 0 1;
+               rel1 {
+                   relative: 1.0 1.0;
+                   to_x: "elm.edit.icon.1";
+                   to_y: "elm.padding.top";
+               }
+                rel2 {
+                   relative: 0.0 1.0;
+                   to_x: "elm.icon.1.left";
+                   to_y: "elm.icon.1";
+               }
+               align: 0.0 0.5;
+            text {
+               style: week_text1;
+               min: 0 1;
+                 text_class: "slp";
+            }
+            }
+            description { state: "selected" 0.0;
+             min: 0 30;
+               fixed: 0 1;
+               rel1 {
+                   relative: 1.0 1.0;
+                   to_x: "elm.edit.icon.1";
+                   to_y: "elm.padding.top";
+               }
+               rel2 {
+                   relative: 0.0 1.0;
+                   to_x: "elm.icon.1.left";
+                   to_y: "elm.icon.1";
+               }
+               align: 0.0 0.5;
+            text {
+               style: week_text1_selected;
+               min: 0 1;
+                 text_class: "slp";
+            }
+            }
+
+         }
+
+          part { name: "elm.text.middle";
+            clip_to: "disclip";
+            type: RECT;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 3;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.edit.icon.1";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.text.1";
+               }
+               align: 0.0 0.0;
+                visible: 0;
+               }
+         }
+        part { name: "elm.textblock.2";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 30;
+                fixed: 0 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.text.1";
+                  to_y: "elm.text.middle";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               text {
+               style: week_text2;
+               min: 0 1;
+                 text_class: "slp";
+            }
+               align: 0.0 0.5;
+            }
+            description { state: "selected" 0.0;
+               min: 0 30;
+                fixed: 0 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.text.1";
+                  to_y: "elm.text.middle";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               text {
+               style: week_text2_selected;
+               min: 0 1;
+                 text_class: "slp";
+            }
+               align: 0.0 0.5;
+            }
+         }
+        GENLIST_PART_DISCLIP
+      }
+       programs {
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.textblock.1";
+            target: "elm.textblock.2";
+            target: "elm.text.1";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.textblock.1";
+            target: "elm.textblock.2";
+            target: "elm.text.1";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+      }
+   }
+
+   group { name: "elm/genlist/item/dialogue/1icon.custom/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "contents" "elm.icon";
+
+      parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.icon";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+               }
+            }
+         }
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+      }
+   }
+    group { name: "elm/genlist/item/1icon.custom/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "contents" "elm.icon";
+
+      parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         part { name: "elm.icon";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+               }
+            }
+         }
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+      }
+   }
+
+     group { name: "elm/genlist/item/dialogue/2text.6/default";
+      alias: "elm/genlist/item_odd/dialogue/2text.6/default";
+      alias: "elm/genlist/item_compress/dialogue/2text.6/default";
+      alias: "elm/genlist/item_compress_odd/dialogue/2text.6/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2";
+      data.item: "flips" "elm.flip.content";
+      images {
+         image: "00_list_bar_press_1x80.png" COMP;
+      }
+      parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_27_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+                min: GENLIST_SIZE_448_INC 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+               }
+               rel2 {
+                  relative: 0.0  1.0;
+                  to_x: "elm.padding.right";
+                       to_y: "elm.padding.right";
+               }
+               align: 1.0 0.5;
+               color: 149 149 149 255;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 1.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+
+        part { name: "elm.text2.left";
+            clip_to: "disclip";
+            type: RECT;
+           mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+                min: GENLIST_SIZE_16_INC 0;
+               fixed: 1 0;
+               rel1 {
+                 relative: 0.0 0.0;
+                  to_x: "elm.text.2";
+                  to_y: "elm.text.2";
+               }
+               rel2 {
+                   relative: 0.0 1.0;
+                  to_x: "elm.text.2";
+                  to_y: "elm.text.2";
+               }
+               align: 1.0 0.5;
+               visible: 0;
+            }
+         }
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.text2.left";
+               }
+               align: 0.0 0.5;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Regular";
+                  size: GENLIST_FONT_44_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+         program { name: "flip_enabled";
+            signal: "elm,state,flip,enabled";
+            source: "elm";
+            action: STATE_SET "flip_enabled" 0.0;
+            target: "elm.text.2";
+            target: "elm.flip.content";
+         }
+         program { name: "flip_disabled";
+            signal: "elm,state,flip,disabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "elm.text.2";
+            target: "elm.flip.content";
+         }
+      }
+   }
+
+       group { name: "elm/genlist/item/dialogue/2text.1icon.9_saveto/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2";
+      data.item: "contents" "elm.icon.1";
+      data.item: "flips" "elm.flip.content";
+      images {
+         image: "00_list_bar_press_1x80.png" COMP;
+      }
+               parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_129_INC )
+         GENLIST_PART_DIALOGUE_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_32_INC )
+         GENLIST_PART_DIALOGUE_ITEM
+         GENLIST_PART_DIALOGUE_RIGHT_LINE
+         part { name: "elm.icon.1";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_SIZE_ICON_BIG GENLIST_SIZE_ICON_BIG;
+               max: GENLIST_SIZE_ICON_BIG GENLIST_SIZE_ICON_BIG;
+               fixed: 1 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.2";
+               }
+               rel2 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 0.0 0.0;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon1.right";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.icon.1";
+               }
+               rel2.to_x: "elm.icon.1";
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+                       part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_48_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               align: 0.0 0.0;
+               color: GENLIST_TEXT_COLOR_LIST_SUB_TEXT_DEFAULT;
+               text {
+                  font: "SLP:style=Medium";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp_roman";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+                       part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.icon1.right";
+                  to_y: "elm.text.2";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               color: GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_UNREAD;
+               text {
+                  font: "SLP:style=Roman";
+                  size: GENLIST_FONT_44_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "slp";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+      }
+   }
+
diff --git a/data/edc/theme/naviframe.edc b/data/edc/theme/naviframe.edc
new file mode 100755 (executable)
index 0000000..ff70fd2
--- /dev/null
@@ -0,0 +1,1185 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */\r
+\r
+#include "originals/white-hd-inc.edc"\r
+\r
+#define NAVIFRAME_VIEW_TRANS_TIME 0.3\r
+\r
+group { name:"elm/naviframe/base/calendar/default";\r
+  parts {\r
+     part { name: "base";\r
+        description { state: "default" 0.0;\r
+        }\r
+     }\r
+  }\r
+}\r
+\r
+\r
+group { name:"elm/naviframe/item/basic/calendar/default";\r
+  alias:"elm/naviframe/item/1line/calendar/default";\r
+  images {\r
+      image: "00_winset_control_top_bg.png" COMP;\r
+      image: "00_winset_control_top_arrow.png" COMP;\r
+      image: "00_winset_title_line.png" COMP;\r
+      image: "00_winset_control_toolbar_bg.png" COMP;\r
+      image: "00_winset_title_bg.png" COMP;\r
+  }\r
+  script {\r
+     public oh_show = 0;     //optionheader show/hide\r
+     public oh_close = 0;    //optionheader close/open\r
+     public cbar_bg = 0;     //Controlbar BG Show call count\r
+  }\r
+  parts {\r
+     part { name: "base";\r
+        type: RECT;\r
+        mouse_events:  0;\r
+        description { state: "default" 0.0;\r
+           visible: 0;\r
+        }\r
+        description { state: "left" 0.0;\r
+           inherit: "default" 0.0;\r
+           rel1.relative: -1.0 0.0;\r
+           rel2.relative: 0.0 1.0;\r
+        }\r
+        description { state: "right" 0.0;\r
+           inherit: "default" 0.0;\r
+           rel1.relative: 1.0 0.0;\r
+           rel2.relative: 2.0 1.0;\r
+        }\r
+     }\r
+     part { name: "title_bg";\r
+        scale: 1;\r
+        description { state: "default" 0.0;\r
+           min: 1 NAVIFRAME_TITLE_H_INC;\r
+           align: 0.0 0.0;\r
+           fixed: 0 1;\r
+           rel1 { relative: 0.0 0.0; to: "base"; }\r
+           rel2 { relative: 1.0 0.0; to: "base"; }\r
+           image.normal: "00_winset_title_bg.png";\r
+        }\r
+        description { state: "hide" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: 0 0;\r
+           max: 0 0;\r
+           fixed: 1 1;\r
+        }\r
+     }\r
+     part { name: "title_clip";\r
+        type: RECT;\r
+        mouse_events: 0;\r
+        description { state: "default" 0.0;\r
+           rel1 { to: "title_bg"; }\r
+           rel2 { to: "title_bg"; }\r
+        }\r
+     }\r
+     part { name: "click_event_area";\r
+         ignore_flags: ON_HOLD;\r
+         repeat_events: 1;\r
+         description { state: "default" 0.0;\r
+            rel1 { to: "title_bg"; }\r
+            rel2 { to: "title_bg"; }\r
+         }\r
+     }\r
+     part { name: "title_left_icon";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        clip_to: "title_clip";\r
+        description { state: "default" 0.0;\r
+           align: 0.5 0.5;\r
+           rel1 { relative: 0.0 0.0; to: "title_bg"; }\r
+           rel2 { relative: 0.5 1.0; to: "title_bg"; }\r
+        }\r
+     }\r
+     part { name: "elm.content.title";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               align: 0.5 0.5;\r
+                fixed: 1 0;\r
+               rel1 { relative: 0.6 0.0; to: "title_bg"; }\r
+               rel2 { relative: 0.9 1.0; to: "title_bg"; }\r
+            }\r
+         }\r
+\r
+     part { name: "optionheader_bg";\r
+        type: IMAGE;\r
+        scale: 1;\r
+        description { state: "default" 0.0;\r
+           min: 1 0;\r
+           align: 0.5 0;\r
+           fixed: 0 1;\r
+           rel1.to: "title_bg";\r
+           rel1.relative: 0 1;\r
+           rel2.to: "title_bg";\r
+           visible: 0;\r
+           image { normal: "00_winset_control_top_bg.png";\r
+              border: NAVIFRAME_OH_BORDER_INC;\r
+           }\r
+        }\r
+        description { state: "show" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: 1 NAVIFRAME_OH_OPENED_H_INC;\r
+           visible: 1;\r
+        }\r
+        description { state: "hide" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: 0 0;\r
+           max: 0 0;\r
+           fixed: 1 1;\r
+        }\r
+     }\r
+     part { name: "optionheader_clip";\r
+        type: RECT;\r
+        mouse_events: 0;\r
+        description { state: "default" 0.0;\r
+           rel1 { to: "optionheader_bg"; }\r
+           rel2 { to: "optionheader_bg"; }\r
+        }\r
+     }\r
+     part { name: "optionheader_top_padding";\r
+        type: RECT;\r
+        scale: 1;\r
+        clip_to: "optionheader_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 NAVIFRAME_OH_PADDING_INC;\r
+           rel1 { relative: 0.0 0.0; to: "optionheader_bg"; }\r
+           rel2 { relative: 1.0 0.0; to: "optionheader_bg"; }\r
+           fixed: 0 1;\r
+           align: 0.0 0.0;\r
+           visible: 0;\r
+        }\r
+     }\r
+     part { name: "optionheader";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        clip_to: "optionheader_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 NAVIFRAME_OH_CONTENT_H_INC;\r
+           rel1 { relative: 0.0 1.0; to: "optionheader_top_padding"; }\r
+           rel2 { relative: 1.0 1.0; to: "optionheader_top_padding"; }\r
+           fixed: 0 1;\r
+           align: 0.0 0.0;\r
+        }\r
+     }\r
+     part { name: "optionheader_bottom_padding";\r
+        type: RECT;\r
+        scale: 1;\r
+        clip_to: "optionheader_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 NAVIFRAME_OH_PADDING_INC;\r
+           rel1 { relative: 0.0 1.0; to: "optionheader"; }\r
+           rel2 { relative: 1.0 1.0; to: "optionheader"; }\r
+           fixed: 0 1;\r
+           align: 0.0 0.0;\r
+           visible: 0;\r
+        }\r
+     }\r
+     part { name: "optionheader_shadow";\r
+        type: RECT;\r
+        scale: 1;\r
+        clip_to: "optionheader_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 NAVIFRAME_OH_SHADOW_INC;\r
+           rel1 { relative: 0.0 1.0; to: "optionheader_bottom_padding"; }\r
+           rel2 { relative: 1.0 1.0; to: "optionheader_bottom_padding"; }\r
+           fixed: 0 1;\r
+           align: 0.0 0.0;\r
+           visible: 0;\r
+        }\r
+     }\r
+     part { name: "elm.swallow.content";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        repeat_events: 0;\r
+        clip_to: "content_clip";\r
+        description { state: "default" 0.0;\r
+           align: 0.0 0.0;\r
+           rel1.relative: 0.0 1.0;\r
+           rel1.to_x: "base";\r
+           rel1.to_y: "optionheader_bg";\r
+           rel2.relative: 1.0 0.0;\r
+           rel2.to_x: "base";\r
+           rel2.to_y: "controlbar_bg";\r
+        }\r
+     }\r
+     part { name: "content_clip";\r
+        type: RECT;\r
+        mouse_events: 0;\r
+        description { state: "default" 0.0;\r
+           rel1.to: "elm.swallow.content";\r
+           rel2.to: "elm.swallow.content";\r
+        }\r
+     }\r
+     part { name: "controlbar_bg";\r
+        scale: 1;\r
+        description { state: "default" 0.0;\r
+           min: 0 0;\r
+           max: 999999 0;\r
+           fixed: 0 1;\r
+           align: 0.0 1.0;\r
+           visible: 0;\r
+           rel1 { to: "base"; }\r
+           rel2 { to: "base"; }\r
+           image.normal: "00_winset_control_toolbar_bg.png";\r
+        }\r
+        description { state: "show" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: 0 CONTROLBAR_SMALL_HEIGHT_INC;\r
+           max: 999999 CONTROLBAR_SMALL_HEIGHT_INC;\r
+           visible: 1;\r
+        }\r
+     }\r
+     part { name: "controlbar_clip";\r
+        type: RECT;\r
+        mouse_events: 0;\r
+        description { state: "default" 0.0;\r
+           rel1.to: "controlbar_bg";\r
+           rel2.to: "controlbar_bg";\r
+        }\r
+     }\r
+     part { name: "elm.prev_btn_bg";\r
+        type: RECT;\r
+        scale: 1;\r
+        clip_to: "controlbar_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 0;\r
+           fixed: 1 0;\r
+           align: 1.0 0.0;\r
+           rel1 { relative: 1.0 0.0; to: "controlbar_bg"; }\r
+           rel2.to: "controlbar_bg";\r
+           visible: 0;\r
+        }\r
+        description { state: "visible" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 0;\r
+        }\r
+     }\r
+     part { name: "elm.swallow.prev_btn";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        clip_to: "controlbar_clip";\r
+        description { state: "default" 0.0;\r
+           fixed: 1 1;\r
+           align: 0.5 0.5;\r
+           rel1.to: "elm.prev_btn_bg";\r
+           rel2.to: "elm.prev_btn_bg";\r
+        }\r
+     }\r
+     part { name: "controlbar";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        clip_to: "controlbar_clip";\r
+        description { state: "default" 0.0;\r
+           fixed: 1 1;\r
+           rel1.to: "controlbar_bg";\r
+           rel2 { relative: 0.0 1.0; to: "elm.prev_btn_bg"; }\r
+        }\r
+     }\r
+  }\r
+  programs {\r
+     program { name: "content_new_pushed";\r
+        signal: "elm,state,new,pushed,internal";\r
+        source: "";\r
+        action: STATE_SET "default" 0.0;\r
+        target: "base";\r
+        transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+        after: "show_finished";\r
+     }\r
+     program { name: "content_cur_pushed";\r
+        signal: "elm,state,cur,pushed,internal";\r
+        source: "";\r
+        action: STATE_SET "left" 0.0;\r
+        target: "base";\r
+        transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+        after: "pushed_finished";\r
+     }\r
+     program { name: "content_prev_popped";\r
+        signal: "elm,state,prev,popped,internal";\r
+        source: "";\r
+        action: STATE_SET "default" 0.0;\r
+        target: "base";\r
+        transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+        after: "show_finished";\r
+     }\r
+     program { name: "content_cur_popped";\r
+        signal: "elm,state,cur,popped,internal";\r
+        source: "";\r
+        action: STATE_SET "right" 0.0;\r
+        target: "base";\r
+        transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+        after: "popped_finished";\r
+     }\r
+     program { name: "cur_pushed";\r
+        signal: "elm,state,cur,pushed";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"base", "default", 0.0);\r
+           emit("elm,state,cur,pushed,internal", "");\r
+        }\r
+     }\r
+     program { name: "new_pushed";\r
+        signal: "elm,state,new,pushed";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"base", "right", 0.0);\r
+           emit("elm,state,new,pushed,internal", "");\r
+        }\r
+     }\r
+     program { name: "prev_popped";\r
+        signal: "elm,state,prev,popped";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"base", "left", 0.0);\r
+           emit("elm,state,prev,popped,internal", "");\r
+        }\r
+     }\r
+     program { name: "cur_popped";\r
+        signal: "elm,state,cur,popped";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"base", "default", 0.0);\r
+           emit("elm,state,cur,popped,internal", "");\r
+        }\r
+     }\r
+     program { name: "visible";\r
+        signal: "elm,state,visible";\r
+        source: "elm";\r
+        action: STATE_SET "default" 0.0;\r
+        target: "base";\r
+     }\r
+     program { name: "title_show";\r
+        signal: "elm,state,title,show";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"title_bg", "default", 0.0);\r
+        }\r
+     }\r
+     program { name: "title_hide";\r
+        signal: "elm,state,title,hide";\r
+        source: "elm";\r
+        action: STATE_SET "hide" 0.0;\r
+        target: "title_bg";\r
+     }\r
+     program { name: "prev_btn_show";\r
+        signal: "elm,state,prev_btn,show";\r
+        source: "elm";\r
+        script {\r
+           emit("elm,state,controlbar_bg,show", "elm");\r
+           set_state(PART:"elm.prev_btn_bg", "visible", 0.0);\r
+        }\r
+     }\r
+     program { name: "prev_btn_hide";\r
+        signal: "elm,state,prev_btn,hide";\r
+        source: "elm";\r
+        script {\r
+           emit("elm,state,controlbar_bg,hide", "elm");\r
+           set_state(PART:"elm.prev_btn_bg", "default", 0.0);\r
+        }\r
+     }\r
+     program { name: "controlbar_show";\r
+        signal: "elm,state,controlbar,show";\r
+        source: "elm";\r
+        script {\r
+           emit("elm,state,controlbar_bg,show", "elm");\r
+        }\r
+     }\r
+     program { name: "controlbar_hide";\r
+        signal: "elm,state,controlbar,hide";\r
+        source: "elm";\r
+        script {\r
+           emit("elm,state,controlbar_bg,hide", "elm");\r
+        }\r
+     }\r
+     program { name: "controlbar_bg_show";\r
+        signal: "elm,state,controlbar_bg,show";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"controlbar_bg", "show", 0.0);\r
+           set_int(cbar_bg, get_int(cbar_bg) + 1);\r
+        }\r
+     }\r
+     program { name: "controlbar_bg_hide";\r
+        signal: "elm,state,controlbar_bg,hide";\r
+        source: "elm";\r
+        script {\r
+           set_int(cbar_bg, get_int(cbar_bg) - 1);\r
+           if (get_int(cbar_bg) <= 0)\r
+             set_state(PART:"controlbar_bg", "default", 0.0);\r
+        }\r
+     }\r
+     program { name: "controlbar_open";\r
+        signal: "elm,state,controlbar,open";\r
+        source: "";\r
+        action: STATE_SET "show" 0.0;\r
+        target: "controlbar_bg";\r
+        transition: LINEAR 0.2;\r
+     }\r
+     program { name: "controlbar_close";\r
+        signal: "elm,state,controlbar,close";\r
+        source: "";\r
+        action: STATE_SET "default" 0.0;\r
+        target: "controlbar_bg";\r
+        transition: LINEAR 0.2;\r
+     }\r
+     program { name: "controlbar_instant_open";\r
+        signal: "elm,state,controlbar,instant_open";\r
+        source: "";\r
+        script {\r
+           emit("elm,state,prev_btn,show", "elm");\r
+           emit("elm,state,controlbar,show", "elm");\r
+        }\r
+     }\r
+     program { name: "controlbar_instant_close";\r
+        signal: "elm,state,controlbar,instant_close";\r
+        source: "";\r
+        script {\r
+           emit("elm,state,prev_btn,hide", "elm");\r
+           emit("elm,state,controlbar,hide", "elm");\r
+        }\r
+     }\r
+     program { name: "show_finished";\r
+        action: SIGNAL_EMIT "elm,action,show,finished" "";\r
+     }\r
+     program { name: "pushed_finished";\r
+        action: SIGNAL_EMIT "elm,action,pushed,finished" "";\r
+     }\r
+     program { name: "popped_finished";\r
+        action: SIGNAL_EMIT "elm,action,popped,finished" "";\r
+     }\r
+     program {\r
+        name: "title_clicked";\r
+        signal: "mouse,clicked,1";\r
+        source: "click_event_area";\r
+        action: SIGNAL_EMIT "elm,action,title,clicked" "";\r
+     }\r
+  }\r
+}\r
+\r
+group { name:"elm/naviframe/item/basic/base/default";\r
+      alias:"elm/naviframe/item/base/1line/default";\r
+      images {\r
+          image: "00_winset_control_top_bg.png" COMP;\r
+          image: "00_winset_control_top_arrow.png" COMP;\r
+          image: "00_winset_title_line.png" COMP;\r
+          image: "00_winset_control_toolbar_bg.png" COMP;\r
+          image: "00_winset_title_bg.png" COMP;\r
+      }\r
+      script {\r
+         public oh_show = 0;     //optionheader show/hide\r
+         public oh_close = 0;    //optionheader close/open\r
+         public cbar_bg = 0;     //Controlbar BG Show call count\r
+      }\r
+      parts {\r
+         part { name: "base";\r
+            type: RECT;\r
+            mouse_events:  0;\r
+            description { state: "default" 0.0;\r
+               visible: 0;\r
+            }\r
+            description { state: "left" 0.0;\r
+               inherit: "default" 0.0;\r
+               rel1.relative: -1.0 0.0;\r
+               rel2.relative: 0.0 1.0;\r
+            }\r
+            description { state: "right" 0.0;\r
+               inherit: "default" 0.0;\r
+               rel1.relative: 1.0 0.0;\r
+               rel2.relative: 2.0 1.0;\r
+            }\r
+         }\r
+         part { name: "title_bg";\r
+            scale: 1;\r
+            description { state: "default" 0.0;\r
+               min: 1 NAVIFRAME_TITLE_H_INC;\r
+               align: 0.0 0.0;\r
+               fixed: 0 1;\r
+               rel1 { relative: 0.0 0.0; to: "base"; }\r
+               rel2 { relative: 1.0 0.0; to: "base"; }\r
+               image.normal: "00_winset_title_bg.png";\r
+            }\r
+            description { state: "hide" 0.0;\r
+               inherit: "default" 0.0;\r
+               min: 0 0;\r
+               max: 0 0;\r
+               fixed: 1 1;\r
+            }\r
+         }\r
+         part { name: "title_clip";\r
+            type: RECT;\r
+            mouse_events: 0;\r
+            description { state: "default" 0.0;\r
+               rel1 { to: "title_bg"; }\r
+               rel2 { to: "title_bg"; }\r
+            }\r
+         }\r
+         part { name: "optionheader_bg";\r
+            type: IMAGE;\r
+            scale: 1;\r
+            description { state: "default" 0.0;\r
+               min: 1 0;\r
+               align: 0.5 0;\r
+               fixed: 0 1;\r
+               rel1.to: "title_bg";\r
+               rel1.relative: 0 1;\r
+               rel2.to: "title_bg";\r
+               visible: 0;\r
+               image { normal: "00_winset_control_top_bg.png";\r
+                  border: NAVIFRAME_OH_BORDER_INC;\r
+               }\r
+            }\r
+            description { state: "show" 0.0;\r
+               inherit: "default" 0.0;\r
+               min: 1 NAVIFRAME_OH_OPENED_H_INC;\r
+               visible: 1;\r
+            }\r
+            description { state: "hide" 0.0;\r
+               inherit: "default" 0.0;\r
+               min: 0 0;\r
+               max: 0 0;\r
+               fixed: 1 1;\r
+            }\r
+         }\r
+         part { name: "optionheader_clip";\r
+            type: RECT;\r
+            mouse_events: 0;\r
+            description { state: "default" 0.0;\r
+               rel1 { to: "optionheader_bg"; }\r
+               rel2 { to: "optionheader_bg"; }\r
+            }\r
+         }\r
+         part { name: "optionheader_top_padding";\r
+            type: RECT;\r
+            scale: 1;\r
+            clip_to: "optionheader_clip";\r
+            description { state: "default" 0.0;\r
+               min: 0 NAVIFRAME_OH_PADDING_INC;\r
+               rel1 { relative: 0.0 0.0; to: "optionheader_bg"; }\r
+               rel2 { relative: 1.0 0.0; to: "optionheader_bg"; }\r
+               fixed: 0 1;\r
+               align: 0.0 0.0;\r
+               visible: 0;\r
+            }\r
+         }\r
+         part { name: "optionheader";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            clip_to: "optionheader_clip";\r
+            description { state: "default" 0.0;\r
+               min: 0 NAVIFRAME_OH_CONTENT_H_INC;\r
+               rel1 { relative: 0.0 1.0; to: "optionheader_top_padding"; }\r
+               rel2 { relative: 1.0 1.0; to: "optionheader_top_padding"; }\r
+               fixed: 0 1;\r
+               align: 0.0 0.0;\r
+            }\r
+         }\r
+         part { name: "optionheader_bottom_padding";\r
+            type: RECT;\r
+            scale: 1;\r
+            clip_to: "optionheader_clip";\r
+            description { state: "default" 0.0;\r
+               min: 0 NAVIFRAME_OH_PADDING_INC;\r
+               rel1 { relative: 0.0 1.0; to: "optionheader"; }\r
+               rel2 { relative: 1.0 1.0; to: "optionheader"; }\r
+               fixed: 0 1;\r
+               align: 0.0 0.0;\r
+               visible: 0;\r
+            }\r
+         }\r
+         part { name: "optionheader_shadow";\r
+            type: RECT;\r
+            scale: 1;\r
+            clip_to: "optionheader_clip";\r
+            description { state: "default" 0.0;\r
+               min: 0 NAVIFRAME_OH_SHADOW_INC;\r
+               rel1 { relative: 0.0 1.0; to: "optionheader_bottom_padding"; }\r
+               rel2 { relative: 1.0 1.0; to: "optionheader_bottom_padding"; }\r
+               fixed: 0 1;\r
+               align: 0.0 0.0;\r
+               visible: 0;\r
+            }\r
+         }\r
+         part { name: "elm.swallow.content";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            repeat_events: 0;\r
+            clip_to: "content_clip";\r
+            description { state: "default" 0.0;\r
+               align: 0.0 0.0;\r
+               rel1.relative: 0.0 1.0;\r
+               rel1.to_x: "base";\r
+               rel1.to_y: "optionheader_bg";\r
+               rel2.relative: 1.0 0.0;\r
+               rel2.to_x: "base";\r
+               rel2.to_y: "controlbar_bg";\r
+            }\r
+         }\r
+         part { name: "content_clip";\r
+            type: RECT;\r
+            mouse_events: 0;\r
+            description { state: "default" 0.0;\r
+               rel1.to: "elm.swallow.content";\r
+               rel2.to: "elm.swallow.content";\r
+            }\r
+         }\r
+         part { name: "padding_center_text1";\r
+            type: RECT;\r
+            scale: 1;\r
+            mouse_events: 0;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               min: NAVIFRAME_PADDING_INC;\r
+               fixed: 1 0;\r
+               align: 0.0 0.0;\r
+               rel1 { relative: 0.0 0.0; to: "title_bg"; }\r
+               rel2 { relative: 0.0 1.0; to: "title_bg"; }\r
+               visible: 0;\r
+            }\r
+            description { state: "icon" 0.0;\r
+               inherit: "default" 0.0;\r
+               min: NAVIFRAME_ICON_PADDING_INC;\r
+            }\r
+         }\r
+         part { name: "padding_center_text2";\r
+            type: RECT;\r
+            mouse_events: 0;\r
+            scale: 1;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               min: NAVIFRAME_PADDING_INC;\r
+               fixed: 1 0;\r
+               align: 1.0 0.5;\r
+               rel1 { relative: 0.0 0.0; to_x: "title_more_btn"; to_y: "title_bg"; }\r
+               rel2 { relative: 0.0 1.0; to_x: "title_more_btn"; to_y: "title_bg"; }\r
+               visible: 0;\r
+            }\r
+         }\r
+       part { name: "elm.content.title";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               align: 0.0 0.5;\r
+                fixed: 1 0;\r
+                rel1 { relative: 1.0 0.0; to: "padding_center_text1"; }\r
+               rel2 { relative: 0.0 1.0; to: "padding_center_text2"; }\r
+            }\r
+         }\r
+\r
+         part { name: "padding_before_text";\r
+            type: RECT;\r
+            scale: 1;\r
+            mouse_events: 0;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               align: 1.0 0.5;\r
+               rel1 { relative: 0.0 0.0; to: "elm.content.title"; }\r
+               rel2 { relative: 0.0 1.0; to: "elm.content.title"; }\r
+               fixed: 1 0;\r
+               min: NAVIFRAME_PADDING_INC;\r
+               visible: 0;\r
+            }\r
+         }\r
+         part { name: "elm.swallow.icon";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               max: NAVIFRAME_ICON_SIZE_INC;\r
+               fixed: 1 1;\r
+               rel1 { relative: 0.0 0.0; to: "padding_before_text"; }\r
+               rel2 { relative: 0.0 1.0; to: "padding_before_text"; }\r
+               aspect: 1.0 1.0;\r
+               aspect_preference: VERTICAL;\r
+               align: 1.0 0.5;\r
+            }\r
+         }\r
+         part { name: "click_event_area";\r
+             ignore_flags: ON_HOLD;\r
+             repeat_events: 1;\r
+             description { state: "default" 0.0;\r
+                rel1 { to: "title_bg"; }\r
+                rel2 { to: "title_bg"; }\r
+             }\r
+         }\r
+         part { name: "title_left_btn";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;\r
+               fixed: 1 1;\r
+               align: 1 0.5;\r
+               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }\r
+               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }\r
+            }\r
+         }\r
+         part { name: "left_btn_separator";\r
+            type: IMAGE;\r
+            scale: 1;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               min: 2 48;\r
+               max: 2 48;\r
+               fixed: 1 1;\r
+               align: 1.0 0.5;\r
+               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }\r
+               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }\r
+               image.normal: "00_winset_title_line.png";\r
+               visible: 0;\r
+            }\r
+            description { state: "visible" 0.0;\r
+               inherit: "default" 0.0;\r
+               visible: 1;\r
+            }\r
+         }\r
+         part { name: "title_right_btn";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;\r
+               align: 1 0.5;\r
+               fixed: 1 1;\r
+               rel1 { relative: 1.0 0.0; to: "title_bg"; }\r
+               rel2 { relative: 1.0 1.0; to: "title_bg"; }\r
+            }\r
+         }\r
+         part { name: "right_btn_separator";\r
+            type: IMAGE;\r
+            scale: 1;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               min: 2 48;\r
+               max: 2 48;\r
+               fixed: 1 1;\r
+               align: 1.0 0.5;\r
+               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }\r
+               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }\r
+               image.normal: "00_winset_title_line.png";\r
+               visible: 0;\r
+            }\r
+            description { state: "visible" 0.0;\r
+               inherit: "default" 0.0;\r
+               visible: 1;\r
+            }\r
+         }\r
+         part { name: "title_more_btn";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            clip_to: "title_clip";\r
+            description { state: "default" 0.0;\r
+               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;\r
+               fixed: 1 1;\r
+               align: 1 0.5;\r
+               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }\r
+               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }\r
+            }\r
+         }\r
+         part { name: "optionheader_arrow";\r
+            type: IMAGE;\r
+            scale: 1;\r
+            description { state: "default" 0.0;\r
+               min: NAVIFRAME_OH_ARROW_SIZE_INC;\r
+               max: NAVIFRAME_OH_ARROW_SIZE_INC;\r
+               fixed: 1 1;\r
+               align: 0.5 0.0;\r
+               rel1 { relative: 0.0 1.1; to: "title_more_btn"; }\r
+               rel2 { relative: 1.0 1.2; to: "title_more_btn"; }\r
+               image.normal: "00_winset_control_top_arrow.png";\r
+               color: 255 255 255 0;\r
+            }\r
+            description { state: "show" 0.0;\r
+               inherit: "default" 0.0;\r
+               color: 255 255 255 255;\r
+            }\r
+         }\r
+         part { name: "controlbar_bg";\r
+            scale: 1;\r
+            description { state: "default" 0.0;\r
+               min: 0 0;\r
+               max: 999999 0;\r
+               fixed: 0 1;\r
+               align: 0.0 1.0;\r
+               visible: 0;\r
+               rel1 { to: "base"; }\r
+               rel2 { to: "base"; }\r
+               image.normal: "00_winset_control_toolbar_bg.png";\r
+            }\r
+            description { state: "show" 0.0;\r
+               inherit: "default" 0.0;\r
+               min: 0 CONTROLBAR_SMALL_HEIGHT_INC;\r
+               max: 999999 CONTROLBAR_SMALL_HEIGHT_INC;\r
+               visible: 1;\r
+            }\r
+         }\r
+         part { name: "elm.prev_btn_bg";\r
+            type: RECT;\r
+            scale: 1;\r
+            description { state: "default" 0.0;\r
+               min: 0 0;\r
+               fixed: 1 0;\r
+               align: 1.0 0.0;\r
+               rel1 { relative: 1.0 0.0; to: "controlbar_bg"; }\r
+               rel2.to: "controlbar_bg";\r
+               visible: 0;\r
+            }\r
+            description { state: "visible" 0.0;\r
+               inherit: "default" 0.0;\r
+               min: NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 0;\r
+            }\r
+         }\r
+         part { name: "prev_btn_separator";\r
+            type: IMAGE;\r
+            scale: 1;\r
+            description { state: "default" 0.0;\r
+               min: 2 70;\r
+               max: 2 70;\r
+               fixed: 1 1;\r
+               align: 1.0 0.5;\r
+               rel1 { relative: 0.0 0.0; to: "elm.prev_btn_bg"; }\r
+               rel2 { relative: 0.0 1.0; to: "elm.prev_btn_bg"; }\r
+               image.normal: "00_winset_title_line.png";\r
+               visible: 0;\r
+            }\r
+            description { state: "visible" 0.0;\r
+               inherit: "default" 0.0;\r
+               visible: 1;\r
+            }\r
+         }\r
+         part { name: "elm.swallow.prev_btn";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            description { state: "default" 0.0;\r
+               fixed: 1 1;\r
+               align: 0.5 0.5;\r
+               rel1.to: "elm.prev_btn_bg";\r
+               rel2.to: "elm.prev_btn_bg";\r
+            }\r
+         }\r
+         part { name: "controlbar_clip";\r
+            type: RECT;\r
+            mouse_events: 0;\r
+            description { state: "default" 0.0;\r
+               rel1.to: "controlbar_bg";\r
+               rel2 { relative: 0.0 1.0; to_x: "prev_btn_separator"; to_y: "elm.prev_btn_bg"; }\r
+            }\r
+         }\r
+         part { name: "controlbar";\r
+            type: SWALLOW;\r
+            scale: 1;\r
+            clip_to: "controlbar_clip";\r
+            description { state: "default" 0.0;\r
+               fixed: 1 1;\r
+               rel1.to: "controlbar_clip";\r
+               rel2.to: "controlbar_clip";\r
+            }\r
+         }\r
+      }\r
+      programs {\r
+         program { name: "content_new_pushed";\r
+            signal: "elm,state,new,pushed,internal";\r
+            source: "";\r
+            action: STATE_SET "default" 0.0;\r
+            target: "base";\r
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+            after: "show_finished";\r
+         }\r
+         program { name: "content_cur_pushed";\r
+            signal: "elm,state,cur,pushed,internal";\r
+            source: "";\r
+            action: STATE_SET "left" 0.0;\r
+            target: "base";\r
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+            after: "pushed_finished";\r
+         }\r
+         program { name: "content_prev_popped";\r
+            signal: "elm,state,prev,popped,internal";\r
+            source: "";\r
+            action: STATE_SET "default" 0.0;\r
+            target: "base";\r
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+            after: "show_finished";\r
+         }\r
+         program { name: "content_cur_popped";\r
+            signal: "elm,state,cur,popped,internal";\r
+            source: "";\r
+            action: STATE_SET "right" 0.0;\r
+            target: "base";\r
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+            after: "popped_finished";\r
+         }\r
+         program { name: "cur_pushed";\r
+            signal: "elm,state,cur,pushed";\r
+            source: "elm";\r
+            script {\r
+               set_state(PART:"base", "default", 0.0);\r
+               emit("elm,state,cur,pushed,internal", "");\r
+            }\r
+         }\r
+         program { name: "new_pushed";\r
+            signal: "elm,state,new,pushed";\r
+            source: "elm";\r
+            script {\r
+               set_state(PART:"base", "right", 0.0);\r
+               emit("elm,state,new,pushed,internal", "");\r
+            }\r
+         }\r
+         program { name: "prev_popped";\r
+            signal: "elm,state,prev,popped";\r
+            source: "elm";\r
+            script {\r
+               set_state(PART:"base", "left", 0.0);\r
+               emit("elm,state,prev,popped,internal", "");\r
+            }\r
+         }\r
+         program { name: "cur_popped";\r
+            signal: "elm,state,cur,popped";\r
+            source: "elm";\r
+            script {\r
+               set_state(PART:"base", "default", 0.0);\r
+               emit("elm,state,cur,popped,internal", "");\r
+            }\r
+         }\r
+         program { name: "visible";\r
+            signal: "elm,state,visible";\r
+            source: "elm";\r
+            action: STATE_SET "default" 0.0;\r
+            target: "base";\r
+         }\r
+         program { name: "title_show";\r
+            signal: "elm,state,title,show";\r
+            source: "elm";\r
+            script {\r
+               set_state(PART:"title_bg", "default", 0.0);\r
+               if (get_int(oh_show) == 1) {\r
+                  if (get_int(oh_close) == 1) {\r
+                     emit("elm,state,optionheader,instant_close", "");\r
+                  }else {\r
+                     emit("elm,state,optionheader,instant_open", "");\r
+                  }\r
+               }\r
+               else\r
+                 set_state(PART:"optionheader_bg", "default", 0.0);\r
+            }\r
+         }\r
+         program { name: "title_hide";\r
+            signal: "elm,state,title,hide";\r
+            source: "elm";\r
+            action: STATE_SET "hide" 0.0;\r
+            target: "title_bg";\r
+            target: "optionheader_bg";\r
+         }\r
+         program { name: "prev_btn_show";\r
+            signal: "elm,state,prev_btn,show";\r
+            source: "elm";\r
+            script {\r
+               emit("elm,state,controlbar_bg,show", "elm");\r
+               set_state(PART:"elm.prev_btn_bg", "visible", 0.0);\r
+               set_state(PART:"prev_btn_separator", "visible", 0.0);\r
+            }\r
+         }\r
+         program { name: "prev_btn_hide";\r
+            signal: "elm,state,prev_btn,hide";\r
+            source: "elm";\r
+            script {\r
+               emit("elm,state,controlbar_bg,hide", "elm");\r
+               set_state(PART:"elm.prev_btn_bg", "default", 0.0);\r
+               set_state(PART:"prev_btn_separator", "default", 0.0);\r
+            }\r
+         }\r
+         program { name: "icon_show";\r
+            signal: "elm,state,icon,show";\r
+            source: "elm";\r
+            action: STATE_SET "icon" 0.0;\r
+            target: "padding_center_text1";\r
+         }\r
+         program { name: "icon_hide";\r
+            signal: "elm,state,icon,hide";\r
+            source: "elm";\r
+            action: STATE_SET "default" 0.0;\r
+            target: "padding_center_text1";\r
+         }\r
+         program { name: "left_btn_show";\r
+            signal: "elm,state,title_left_btn,show";\r
+            source: "elm";\r
+            action: STATE_SET "visible" 0.0;\r
+            target: "left_btn_separator";\r
+         }\r
+         program { name: "left_btn_hide";\r
+            signal: "elm,state,title_left_btn,hide";\r
+            source: "elm";\r
+            action: STATE_SET "default" 0.0;\r
+            target: "left_btn_separator";\r
+         }\r
+         program { name: "right_btn_show";\r
+            signal: "elm,state,title_right_btn,show";\r
+            source: "elm";\r
+            action: STATE_SET "visible" 0.0;\r
+            target: "right_btn_separator";\r
+         }\r
+         program { name: "right_btn_hide";\r
+            signal: "elm,state,title_right_btn,hide";\r
+            source: "elm";\r
+            action: STATE_SET "default" 0.0;\r
+            target: "right_btn_separator";\r
+         }\r
+         program { name: "controlbar_show";\r
+            signal: "elm,state,controlbar,show";\r
+            source: "elm";\r
+            script {\r
+               emit("elm,state,controlbar_bg,show", "elm");\r
+            }\r
+         }\r
+         program { name: "controlbar_hide";\r
+            signal: "elm,state,controlbar,hide";\r
+            source: "elm";\r
+            script {\r
+               emit("elm,state,controlbar_bg,hide", "elm");\r
+            }\r
+         }\r
+         program { name: "controlbar_bg_show";\r
+            signal: "elm,state,controlbar_bg,show";\r
+            source: "elm";\r
+            script {\r
+               set_state(PART:"controlbar_bg", "show", 0.0);\r
+               set_int(cbar_bg, get_int(cbar_bg) + 1);\r
+            }\r
+         }\r
+         program { name: "controlbar_bg_hide";\r
+            signal: "elm,state,controlbar_bg,hide";\r
+            source: "elm";\r
+            script {\r
+               set_int(cbar_bg, get_int(cbar_bg) - 1);\r
+               if (get_int(cbar_bg) <= 0)\r
+                 set_state(PART:"controlbar_bg", "default", 0.0);\r
+            }\r
+         }\r
+         program { name: "optionheader_show";\r
+            signal: "elm,state,optionheader,show";\r
+            source: "elm";\r
+            script {\r
+               set_state(PART:"optionheader_bg", "show", 0.0);\r
+               set_state(PART:"optionheader_arrow", "show", 0.0);\r
+               set_int(oh_show, 1);\r
+            }\r
+         }\r
+         program { name: "optionheader_hide";\r
+            signal: "elm,state,optionheader,hide";\r
+            source: "elm";\r
+            script {\r
+               set_state(PART:"optionheader_bg", "default", 0.0);\r
+               set_state(PART:"optionheader_arrow", "default", 0.0);\r
+               set_int(oh_show, 0);\r
+            }\r
+         }\r
+         program { name: "optionheader_open";\r
+            signal: "elm,state,optionheader,open";\r
+            source: "";\r
+            action: STATE_SET "show" 0.0;\r
+            target: "optionheader_bg";\r
+            target: "optionheader_arrow";\r
+            transition: LINEAR 0.2;\r
+            after: "optionheader_open_set";\r
+         }\r
+         program { name: "optionheader_close";\r
+            signal: "elm,state,optionheader,close";\r
+            source: "";\r
+            action: STATE_SET "default" 0.0;\r
+            target: "optionheader_bg";\r
+            target: "optionheader_arrow";\r
+            transition: LINEAR 0.2;\r
+            after: "optionheader_close_set";\r
+         }\r
+         program { name: "optionheader_instant_open";\r
+            signal: "elm,state,optionheader,instant_open";\r
+            source: "";\r
+            action: STATE_SET "show" 0.0;\r
+            target: "optionheader_bg";\r
+            target: "optionheader_arrow";\r
+            after: "optionheader_open_set";\r
+         }\r
+         program { name: "optionheader_instant_close";\r
+            signal: "elm,state,optionheader,instant_close";\r
+            source: "";\r
+            action: STATE_SET "default" 0.0;\r
+            target: "optionheader_bg";\r
+            target: "optionheader_arrow";\r
+            after: "optionheader_close_set";\r
+         }\r
+         program { name: "optionheader_close_set";\r
+            signal: "elm,state,optionheader,close_set";\r
+            source: "";\r
+            script {\r
+               set_int(oh_close, 1);\r
+            }\r
+         }\r
+         program { name: "optionheader_open_set";\r
+            signal: "elm,state,optionheader,open_set";\r
+            source: "";\r
+            script {\r
+               set_int(oh_close, 0);\r
+            }\r
+         }\r
+         program { name: "controlbar_open";\r
+            signal: "elm,state,controlbar,open";\r
+            source: "";\r
+            action: STATE_SET "show" 0.0;\r
+            target: "controlbar_bg";\r
+            transition: LINEAR 0.2;\r
+         }\r
+         program { name: "controlbar_close";\r
+            signal: "elm,state,controlbar,close";\r
+            source: "";\r
+            action: STATE_SET "default" 0.0;\r
+            target: "controlbar_bg";\r
+            transition: LINEAR 0.2;\r
+         }\r
+         program { name: "controlbar_instant_open";\r
+            signal: "elm,state,controlbar,instant_open";\r
+            source: "";\r
+            script {\r
+               emit("elm,state,prev_btn,show", "elm");\r
+               emit("elm,state,controlbar,show", "elm");\r
+            }\r
+         }\r
+         program { name: "controlbar_instant_close";\r
+            signal: "elm,state,controlbar,instant_close";\r
+            source: "";\r
+            script {\r
+               emit("elm,state,prev_btn,hide", "elm");\r
+               emit("elm,state,controlbar,hide", "elm");\r
+            }\r
+         }\r
+         program { name: "show_finished";\r
+            action: SIGNAL_EMIT "elm,action,show,finished" "";\r
+         }\r
+         program { name: "pushed_finished";\r
+            action: SIGNAL_EMIT "elm,action,pushed,finished" "";\r
+         }\r
+         program { name: "popped_finished";\r
+            action: SIGNAL_EMIT "elm,action,popped,finished" "";\r
+         }\r
+         program {\r
+            name: "title_clicked";\r
+            signal: "mouse,clicked,1";\r
+            source: "click_event_area";\r
+            action: SIGNAL_EMIT "elm,action,title,clicked" "";\r
+         }\r
+      }\r
+   }\r
+\r
diff --git a/data/edc/theme/naviframe_custom.edc b/data/edc/theme/naviframe_custom.edc
new file mode 100755 (executable)
index 0000000..0d7d8de
--- /dev/null
@@ -0,0 +1,480 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */\r
+\r
+#include "../genlist/originals/white-hd-inc.edc"\r
+#include "../genlist/originals/genlist_macro.edc"\r
+\r
+#define NAVIFRAME_VIEW_TRANS_TIME 0.3\r
+\r
+group { name:"elm/naviframe/base/calendar/default";\r
+  parts {\r
+     part { name: "base";\r
+        description { state: "default" 0.0;\r
+        }\r
+     }\r
+  }\r
+}\r
+\r
+group { name:"elm/naviframe/item/basic/calendar/default";\r
+  alias:"elm/naviframe/item/1line/calendar/default";\r
+  images {\r
+      image: "00_winset_control_top_bg.png" COMP;\r
+      image: "00_winset_control_top_arrow.png" COMP;\r
+      image: "00_winset_title_line.png" COMP;\r
+      image: "00_winset_control_toolbar_bg.png" COMP;\r
+      image: "00_winset_title_bg.png" COMP;\r
+  }\r
+  script {\r
+     public oh_show = 0;     //optionheader show/hide\r
+     public oh_close = 0;    //optionheader close/open\r
+     public cbar_bg = 0;     //Controlbar BG Show call count\r
+  }\r
+  parts {\r
+     part { name: "base";\r
+        type: RECT;\r
+        mouse_events:  0;\r
+        description { state: "default" 0.0;\r
+           visible: 0;\r
+        }\r
+        description { state: "left" 0.0;\r
+           inherit: "default" 0.0;\r
+           rel1.relative: -1.0 0.0;\r
+           rel2.relative: 0.0 1.0;\r
+        }\r
+        description { state: "right" 0.0;\r
+           inherit: "default" 0.0;\r
+           rel1.relative: 1.0 0.0;\r
+           rel2.relative: 2.0 1.0;\r
+        }\r
+     }\r
+     part { name: "title_bg";\r
+        scale: 1;\r
+        description { state: "default" 0.0;\r
+           min: 1 NAVIFRAME_TITLE_H_INC;\r
+           align: 0.0 0.0;\r
+           fixed: 0 1;\r
+           rel1 { relative: 0.0 0.0; to: "base"; }\r
+           rel2 { relative: 1.0 0.0; to: "base"; }\r
+           image.normal: "00_winset_title_bg.png";\r
+        }\r
+        description { state: "hide" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: 0 0;\r
+           max: 0 0;\r
+           fixed: 1 1;\r
+        }\r
+     }\r
+     part { name: "title_clip";\r
+        type: RECT;\r
+        mouse_events: 0;\r
+        description { state: "default" 0.0;\r
+           rel1 { to: "title_bg"; }\r
+           rel2 { to: "title_bg"; }\r
+        }\r
+     }\r
+     part { name: "click_event_area";\r
+         ignore_flags: ON_HOLD;\r
+         repeat_events: 1;\r
+         description { state: "default" 0.0;\r
+            rel1 { to: "title_bg"; }\r
+            rel2 { to: "title_bg"; }\r
+         }\r
+     }\r
+     part { name: "title_left_icon";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        clip_to: "title_clip";\r
+        description { state: "default" 0.0;\r
+           align: 0.5 0.5;\r
+           rel1 { relative: 0.0 0.0; to: "title_bg"; }\r
+           rel2 { relative: 0.5 1.0; to: "title_bg"; }\r
+        }\r
+     }\r
+     part { name: "elm.text.title";\r
+        type: TEXT;\r
+        scale: 1;\r
+        clip_to: "title_clip";\r
+        description { state: "default" 0.0;\r
+           text { font: "SLP:style=Medium";\r
+              size: NAVIFRAME_TITLE_FONT_SIZE_INC;\r
+              min: 0 0;\r
+              max: 1 0;\r
+              align: 0.5 0.5;\r
+              text_class: "slp_medium";\r
+           }\r
+           color: NAVIFRAME_TITLE_TEXT_COLOR_INC;\r
+           align: 0.5 0.5;\r
+           fixed: 1 0;\r
+           rel1 { relative: 0.5 0.0; to: "title_bg"; }\r
+           rel2 { relative: 1.0 1.0; to: "title_bg"; }\r
+        }\r
+     }\r
+     part { name: "optionheader_bg";\r
+        type: IMAGE;\r
+        scale: 1;\r
+        description { state: "default" 0.0;\r
+           min: 1 0;\r
+           align: 0.5 0;\r
+           fixed: 0 1;\r
+           rel1.to: "title_bg";\r
+           rel1.relative: 0 1;\r
+           rel2.to: "title_bg";\r
+           visible: 0;\r
+           image { normal: "00_winset_control_top_bg.png";\r
+              border: NAVIFRAME_OH_BORDER_INC;\r
+           }\r
+        }\r
+        description { state: "show" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: 1 NAVIFRAME_OH_OPENED_H_INC;\r
+           visible: 1;\r
+        }\r
+        description { state: "hide" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: 0 0;\r
+           max: 0 0;\r
+           fixed: 1 1;\r
+        }\r
+     }\r
+     part { name: "optionheader_clip";\r
+        type: RECT;\r
+        mouse_events: 0;\r
+        description { state: "default" 0.0;\r
+           rel1 { to: "optionheader_bg"; }\r
+           rel2 { to: "optionheader_bg"; }\r
+        }\r
+     }\r
+     part { name: "optionheader_top_padding";\r
+        type: RECT;\r
+        scale: 1;\r
+        clip_to: "optionheader_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 NAVIFRAME_OH_PADDING_INC;\r
+           rel1 { relative: 0.0 0.0; to: "optionheader_bg"; }\r
+           rel2 { relative: 1.0 0.0; to: "optionheader_bg"; }\r
+           fixed: 0 1;\r
+           align: 0.0 0.0;\r
+           visible: 0;\r
+        }\r
+     }\r
+     part { name: "optionheader";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        clip_to: "optionheader_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 NAVIFRAME_OH_CONTENT_H_INC;\r
+           rel1 { relative: 0.0 1.0; to: "optionheader_top_padding"; }\r
+           rel2 { relative: 1.0 1.0; to: "optionheader_top_padding"; }\r
+           fixed: 0 1;\r
+           align: 0.0 0.0;\r
+        }\r
+     }\r
+     part { name: "optionheader_bottom_padding";\r
+        type: RECT;\r
+        scale: 1;\r
+        clip_to: "optionheader_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 NAVIFRAME_OH_PADDING_INC;\r
+           rel1 { relative: 0.0 1.0; to: "optionheader"; }\r
+           rel2 { relative: 1.0 1.0; to: "optionheader"; }\r
+           fixed: 0 1;\r
+           align: 0.0 0.0;\r
+           visible: 0;\r
+        }\r
+     }\r
+     part { name: "optionheader_shadow";\r
+        type: RECT;\r
+        scale: 1;\r
+        clip_to: "optionheader_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 NAVIFRAME_OH_SHADOW_INC;\r
+           rel1 { relative: 0.0 1.0; to: "optionheader_bottom_padding"; }\r
+           rel2 { relative: 1.0 1.0; to: "optionheader_bottom_padding"; }\r
+           fixed: 0 1;\r
+           align: 0.0 0.0;\r
+           visible: 0;\r
+        }\r
+     }\r
+     part { name: "elm.swallow.content";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        repeat_events: 0;\r
+        clip_to: "content_clip";\r
+        description { state: "default" 0.0;\r
+           align: 0.0 0.0;\r
+           rel1.relative: 0.0 1.0;\r
+           rel1.to_x: "base";\r
+           rel1.to_y: "optionheader_bg";\r
+           rel2.relative: 1.0 0.0;\r
+           rel2.to_x: "base";\r
+           rel2.to_y: "controlbar_bg";\r
+        }\r
+     }\r
+     part { name: "content_clip";\r
+        type: RECT;\r
+        mouse_events: 0;\r
+        description { state: "default" 0.0;\r
+           rel1.to: "elm.swallow.content";\r
+           rel2.to: "elm.swallow.content";\r
+        }\r
+     }\r
+     part { name: "controlbar_bg";\r
+        scale: 1;\r
+        description { state: "default" 0.0;\r
+           min: 0 0;\r
+           max: 999999 0;\r
+           fixed: 0 1;\r
+           align: 0.0 1.0;\r
+           visible: 0;\r
+           rel1 { to: "base"; }\r
+           rel2 { to: "base"; }\r
+           image.normal: "00_winset_control_toolbar_bg.png";\r
+        }\r
+        description { state: "show" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: 0 CONTROLBAR_SMALL_HEIGHT_INC;\r
+           max: 999999 CONTROLBAR_SMALL_HEIGHT_INC;\r
+           visible: 1;\r
+        }\r
+     }\r
+     part { name: "controlbar_clip";\r
+        type: RECT;\r
+        mouse_events: 0;\r
+        description { state: "default" 0.0;\r
+           rel1.to: "controlbar_bg";\r
+           rel2.to: "controlbar_bg";\r
+        }\r
+     }\r
+     part { name: "elm.prev_btn_bg";\r
+        type: RECT;\r
+        scale: 1;\r
+        clip_to: "controlbar_clip";\r
+        description { state: "default" 0.0;\r
+           min: 0 0;\r
+           fixed: 1 0;\r
+           align: 1.0 0.0;\r
+           rel1 { relative: 1.0 0.0; to: "controlbar_bg"; }\r
+           rel2.to: "controlbar_bg";\r
+           visible: 0;\r
+        }\r
+        description { state: "visible" 0.0;\r
+           inherit: "default" 0.0;\r
+           min: NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 0;\r
+        }\r
+     }\r
+     part { name: "elm.swallow.prev_btn";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        clip_to: "controlbar_clip";\r
+        description { state: "default" 0.0;\r
+           fixed: 1 1;\r
+           align: 0.5 0.5;\r
+           rel1.to: "elm.prev_btn_bg";\r
+           rel2.to: "elm.prev_btn_bg";\r
+        }\r
+     }\r
+     part { name: "controlbar";\r
+        type: SWALLOW;\r
+        scale: 1;\r
+        clip_to: "controlbar_clip";\r
+        description { state: "default" 0.0;\r
+           fixed: 1 1;\r
+           rel1.to: "controlbar_bg";\r
+           rel2 { relative: 0.0 1.0; to: "elm.prev_btn_bg"; }\r
+        }\r
+     }\r
+  }\r
+  programs {\r
+     program { name: "content_new_pushed";\r
+        signal: "elm,state,new,pushed,internal";\r
+        source: "";\r
+        action: STATE_SET "default" 0.0;\r
+        target: "base";\r
+        transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+        after: "show_finished";\r
+     }\r
+     program { name: "content_cur_pushed";\r
+        signal: "elm,state,cur,pushed,internal";\r
+        source: "";\r
+        action: STATE_SET "left" 0.0;\r
+        target: "base";\r
+        transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+        after: "pushed_finished";\r
+     }\r
+     program { name: "content_prev_popped";\r
+        signal: "elm,state,prev,popped,internal";\r
+        source: "";\r
+        action: STATE_SET "default" 0.0;\r
+        target: "base";\r
+        transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+        after: "show_finished";\r
+     }\r
+     program { name: "content_cur_popped";\r
+        signal: "elm,state,cur,popped,internal";\r
+        source: "";\r
+        action: STATE_SET "right" 0.0;\r
+        target: "base";\r
+        transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;\r
+        after: "popped_finished";\r
+     }\r
+     program { name: "cur_pushed";\r
+        signal: "elm,state,cur,pushed";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"base", "default", 0.0);\r
+           emit("elm,state,cur,pushed,internal", "");\r
+        }\r
+     }\r
+     program { name: "new_pushed";\r
+        signal: "elm,state,new,pushed";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"base", "right", 0.0);\r
+           emit("elm,state,new,pushed,internal", "");\r
+        }\r
+     }\r
+     program { name: "prev_popped";\r
+        signal: "elm,state,prev,popped";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"base", "left", 0.0);\r
+           emit("elm,state,prev,popped,internal", "");\r
+        }\r
+     }\r
+     program { name: "cur_popped";\r
+        signal: "elm,state,cur,popped";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"base", "default", 0.0);\r
+           emit("elm,state,cur,popped,internal", "");\r
+        }\r
+     }\r
+     program { name: "visible";\r
+        signal: "elm,state,visible";\r
+        source: "elm";\r
+        action: STATE_SET "default" 0.0;\r
+        target: "base";\r
+     }\r
+     program { name: "title_show";\r
+        signal: "elm,state,title,show";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"title_bg", "default", 0.0);\r
+        }\r
+     }\r
+     program { name: "title_hide";\r
+        signal: "elm,state,title,hide";\r
+        source: "elm";\r
+        action: STATE_SET "hide" 0.0;\r
+        target: "title_bg";\r
+     }\r
+     program { name: "prev_btn_show";\r
+        signal: "elm,state,prev_btn,show";\r
+        source: "elm";\r
+        script {\r
+           emit("elm,state,controlbar_bg,show", "elm");\r
+           set_state(PART:"elm.prev_btn_bg", "visible", 0.0);\r
+        }\r
+     }\r
+     program { name: "prev_btn_hide";\r
+        signal: "elm,state,prev_btn,hide";\r
+        source: "elm";\r
+        script {\r
+           emit("elm,state,controlbar_bg,hide", "elm");\r
+           set_state(PART:"elm.prev_btn_bg", "default", 0.0);\r
+        }\r
+     }\r
+     program { name: "controlbar_show";\r
+        signal: "elm,state,controlbar,show";\r
+        source: "elm";\r
+        script {\r
+           emit("elm,state,controlbar_bg,show", "elm");\r
+        }\r
+     }\r
+     program { name: "controlbar_hide";\r
+        signal: "elm,state,controlbar,hide";\r
+        source: "elm";\r
+        script {\r
+           emit("elm,state,controlbar_bg,hide", "elm");\r
+        }\r
+     }\r
+     program { name: "controlbar_bg_show";\r
+        signal: "elm,state,controlbar_bg,show";\r
+        source: "elm";\r
+        script {\r
+           set_state(PART:"controlbar_bg", "show", 0.0);\r
+           set_int(cbar_bg, get_int(cbar_bg) + 1);\r
+        }\r
+     }\r
+     program { name: "controlbar_bg_hide";\r
+        signal: "elm,state,controlbar_bg,hide";\r
+        source: "elm";\r
+        script {\r
+           set_int(cbar_bg, get_int(cbar_bg) - 1);\r
+           if (get_int(cbar_bg) <= 0)\r
+             set_state(PART:"controlbar_bg", "default", 0.0);\r
+        }\r
+     }\r
+     program { name: "controlbar_open";\r
+        signal: "elm,state,controlbar,open";\r
+        source: "";\r
+        action: STATE_SET "show" 0.0;\r
+        target: "controlbar_bg";\r
+        transition: LINEAR 0.2;\r
+     }\r
+     program { name: "controlbar_close";\r
+        signal: "elm,state,controlbar,close";\r
+        source: "";\r
+        action: STATE_SET "default" 0.0;\r
+        target: "controlbar_bg";\r
+        transition: LINEAR 0.2;\r
+     }\r
+     program { name: "controlbar_instant_open";\r
+        signal: "elm,state,controlbar,instant_open";\r
+        source: "";\r
+        script {\r
+           emit("elm,state,prev_btn,show", "elm");\r
+           emit("elm,state,controlbar,show", "elm");\r
+        }\r
+     }\r
+     program { name: "controlbar_instant_close";\r
+        signal: "elm,state,controlbar,instant_close";\r
+        source: "";\r
+        script {\r
+           emit("elm,state,prev_btn,hide", "elm");\r
+           emit("elm,state,controlbar,hide", "elm");\r
+        }\r
+     }\r
+     program { name: "show_finished";\r
+        action: SIGNAL_EMIT "elm,action,show,finished" "";\r
+     }\r
+     program { name: "pushed_finished";\r
+        action: SIGNAL_EMIT "elm,action,pushed,finished" "";\r
+     }\r
+     program { name: "popped_finished";\r
+        action: SIGNAL_EMIT "elm,action,popped,finished" "";\r
+     }\r
+     program {\r
+        name: "title_clicked";\r
+        signal: "mouse,clicked,1";\r
+        source: "click_event_area";\r
+        action: SIGNAL_EMIT "elm,action,title,clicked" "";\r
+     }\r
+  }\r
+}\r
+\r
+\r
diff --git a/data/edc/theme/originals/genlist_macro.edc b/data/edc/theme/originals/genlist_macro.edc
new file mode 100755 (executable)
index 0000000..8ccd512
--- /dev/null
@@ -0,0 +1,947 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#define GENLIST_PART_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BG \
+         part { name: "bg"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+            description { state: "hide" 0.0; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.025 0.0; } \
+               rel2 { relative: 1.025 1.0; } \
+            } \
+            description { state: "hide" 0.1;  \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.13 0.0; } \
+               rel2 { relative: 1.13 1.0; } \
+            } \
+            description { state: "hide" 0.2; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.5 0.0; } \
+               rel2 { relative: 1.5 1.0; } \
+            } \
+            description { state: "hide" 0.3; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 1.0 0.0; } \
+               rel2 { relative: 2.0 1.0; } \
+            } \
+         }
+
+#define GENLIST_PART_BG_IMAGE \
+         part { name: "bg_image"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_LIST_BG_COLOR_INC; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BOTTOM_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 1; \
+               fixed: 0 1; \
+               visible: 1; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+               rel1 { \
+                  relative: 0.0 1.0; \
+                  offset: 0 -1; \
+               } \
+            } \
+         }
+
+#define GENLIST_PART_BOTTOM_EFFECT_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 1; \
+               fixed: 0 1; \
+               visible: 1; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+               rel1 { \
+                  relative: 0.0 1.0; \
+                  offset: 0 -1; \
+               } \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_PADDING_TOP( param_padding_size ) \
+       part { name: "elm.padding.top"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_TEXT_TOP( param_padding_size ) \
+       part { name: "elm.padding.text.top"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \
+       part { name: "elm.padding.bottom"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.0 1.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_LEFT( param_padding_size ) \
+         part { name: "elm.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_RIGHT( param_padding_size ) \
+       part { name: "elm.padding.right"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel1.relative: 1.0  0.0; \
+               align: 1.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: LAYOUT_GROUP_LIST_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_BG_IMAGE \
+         part { name: "bg_image"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_DIALOGUE_BG_IMAGE_COLOR_INC; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_LIST_BG_IMAGE \
+         part { name: "bg_image"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_DIALOGUE_LIST_BG_IMAGE_COLOR_INC; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+
+#define GENLIST_PART_DIALOGUE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_12_INC 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_RIGHT_LINE \
+         part { name: "elm.rect.dialogue.right.line"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 1 0; \
+               fixed: 1 0; \
+               visible: 1; \
+               rel1 { \
+                 relative: 1.0  0.0; \
+                 offset: -1 0; \
+               } \
+               align: 1.0 0.0; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_EXPANDABLE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_12_INC 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_SWALLOW_END( param_padding_size ) \
+         part { name: "elm.padding.left.swallow.end";\
+            clip_to: "disclip"; \
+            type: RECT;\
+            scale: 1;\
+            description { state: "default" 0.0;\
+               min: param_padding_size 0;\
+               fixed: 1 0;\
+               visible: 0; \
+               rel1.to_x: "elm.swallow.end";\
+               rel2 {\
+                  relative: 0.0  1.0;\
+                  to_x: "elm.swallow.end";\
+               }\
+               align: 1.0 0.5;\
+            }\
+         }\
+         part { name: "elm.swallow.end";\
+            clip_to: "disclip"; \
+            type: SWALLOW;\
+            scale: 1;\
+            description { state: "default" 0.0;\
+               fixed: 1 0;\
+               align: 1.0 0.5;\
+               rel1.to_x: "elm.padding.right";\
+               rel2 {\
+                  relative: 0.0  1.0;\
+                  to_x: "elm.padding.right";\
+               }\
+            }\
+         }
+
+// When rotating, sometimes item size is expaned.
+#define GENLIST_PART_DISCLIP \
+        part { name: "disclip"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_DISCLIP_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_EXPANDABLE_PART_PERSPECTIVE_POINT() \
+               part { name: "point"; \
+                       type: RECT; \
+                       scale: 1; \
+                        description { \
+                                state: "default" 0.0; \
+                                color: 0 0 0 0; \
+                                rel1 { relative: 0.0 0.0; } \
+                                rel2 { relative: 1.0 0.0; } \
+                        } \
+                }
+
+#define GENLIST_PART_MAP_START( param_x, param_y, param_z ) \
+               description { state: "map_transition" 0.0; \
+                   inherit: "default" 0.0; \
+                   color: 50 50 50 100; \
+                   map { \
+                      perspective: "point"; \
+                      on: 1; \
+                      smooth: 1; \
+                      perspective_on: 1; \
+                      backface_cull: 1; \
+                      rotation { \
+                         center: "point"; \
+                         x: param_x; \
+                         y: param_y; \
+                         z: param_z; \
+                      } \
+                  } \
+                } \
+                description { \
+                        state: "hide" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                }
+
+#define GENLIST_PART_MAP_FINISH( param_x, param_y, param_z ) \
+                description { \
+                        state: "map_rotate" 0.0; \
+                        inherit: "default" 0.0; \
+                        map { \
+                                perspective: "point"; \
+                                on: 1; \
+                                smooth: 1; \
+                                perspective_on: 1; \
+                                backface_cull: 1; \
+                                rotation { \
+                                        center: "point"; \
+                                        x: param_x; \
+                                        y: param_y; \
+                                        z: param_z; \
+                                } \
+                       } \
+               } \
+
+#define GENLIST_PART_MAP_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_EXPANDABLE_PART_BASE( GE_HEIGHT , GE_COLOR ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 GE_HEIGHT; \
+               color: GE_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+/* XXX: refactor expandable edc first.
+        and use GENLIST_EXPANDABLE_PART_BASE_NEW as GENLIST_EXPANDABLE_PART_BASE.
+*/
+#define GENLIST_EXPANDABLE_PART_BASE_NEW( GE_HEIGHT , GE_COLOR ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 GE_HEIGHT; \
+               color: GE_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PROGRAM_MAP_ROTATE_EXPAND_START() \
+                name: "rotaion_transition"; \
+                signal: "flip_item"; \
+                action: STATE_SET "map_transition" 0.0; \
+                after: "rotation";
+
+#define GENLIST_PROGRAM_MAP_ROTATE_EXPAND_FINISH( second ) \
+                name: "rotation"; \
+                action: STATE_SET "map_rotate" 0.0; \
+                transition: LINEAR second; \
+                after: "rotation_end";
+
+#define GENLIST_PROGRAM_MAP_EXPAND_END() \
+                name: "rotation_end"; \
+                action: STATE_SET "default" 0.0;
+
+#define GENLIST_PROGRAM_MAP_ROTATE_CONTRACT_START() \
+                name: "rotation_transition2"; \
+                signal: "elm,state,contract_flip"; \
+                action: STATE_SET "map_rotate" 0.0; \
+                after: "rotation2";
+
+#define GENLIST_PROGRAM_MAP_ROTATE_CONTRACT_FINISH( second ) \
+                name: "rotation2"; \
+                action: STATE_SET "map_transition" 0.0; \
+                transition: LINEAR second; \
+                after: "rotation3";
+
+#define GENLIST_PROGRAM_MAP_CONTRACT_END() \
+                name: "rotation3"; \
+                action: STATE_SET "hide" 0.0;
+
+#define GENLIST_PART_EXPANDABLE2_NOSHADOW_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_EXPANDABLE_2ND_DEPTH_BG_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_EXPANDABLE_SWALLOW_PADDING \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1 { \
+                  relative: 1.0 0.0;\
+                  to_x: "elm.padding.left"; \
+               } \
+               rel2.to_x: "elm.padding.left"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         } \
+
+#define GENLIST_PART_PADDING_LEFT_SLIDE( param_padding_size ) \
+         part { name: "elm.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel1 { relative: 0.0 0.0; to: "bg"; } \
+               rel2 { relative: 0.0 1.0; to: "bg"; } \
+               align: 0.0 0.0; \
+            } \
+         }
+
+/* only for demo */
+#define GENLIST_PART_BUTTON( param_name, param_text_name, param_text, param_left, param_right, param_top, param_bottom ) \
+       part { name: param_name; \
+         mouse_events: 1; \
+         description { state: "default" 0.0; \
+            visible: 1; \
+            rel1 { relative: param_left param_top; offset: 0 0; } \
+            rel2 { relative: param_right param_bottom; offset: -1 -1; } \
+            image { \
+               normal: "btn_normal.png"; \
+               border: 10 10 10 10; \
+               border_scale: 1; \
+            } \
+            image.middle: SOLID; \
+            fill.smooth: 0; \
+         } \
+         description { state: "selected" 0.0;  \
+            inherit: "default" 0.0;  \
+            image { \
+               normal: "btn_selected.png"; \
+            } \
+         } \
+      } \
+      part { name: param_text_name;  \
+         type: TEXT;  \
+         mouse_events: 0; \
+         scale: 1; \
+         description {  \
+            align: 0.0 0.0; \
+            state: "default" 0.0;  \
+            color: 0 0 0 255;  \
+            rel1 { relative: 0.0 0.0; to: param_name; } \
+            rel2 { relative: 1.0 1.0; to: param_name; } \
+            text {  \
+               text: param_text; \
+               font: "SLP:style=Roman"; \
+               size: 24;  \
+               min: 1 1;  \
+               align: 0.5 0.5;  \
+               text_class: "slp"; \
+            }  \
+         }  \
+      }
+
+/* only for demo */
+#define GENLIST_PROGRAM_BUTTON( param_name_focused, param_name_normal, param_part_name ) \
+      program { name: param_name_focused; \
+         source: param_part_name; \
+         signal: "mouse,down,1"; \
+         action:  STATE_SET "selected" 0.0;  \
+         target: param_part_name; \
+      } \
+      program { name: param_name_normal; \
+         source: param_part_name; \
+         signal: "mouse,up,1"; \
+         action:  STATE_SET "default" 0.0;  \
+         target: param_part_name; \
+      }
+
+#define GENLIST_PROGRAM_SLIDE_WITH_AFTER( param_name, param_state, param_next ) \
+      program { name: param_name; \
+         action:  STATE_SET "hide" param_state; \
+         target: "bg"; \
+         transition: LINEAR 0.3; \
+         after: param_next; \
+      }
+
+#define GENLIST_PROGRAM_SLIDE( param_name, param_state_name, param_state_value ) \
+      program { name: param_name; \
+         action:  STATE_SET param_state_name param_state_value; \
+         target: "bg"; \
+         transition: LINEAR 0.3; \
+      }
+
+#define DESC_FLIP_IMAGE( param_state_value, param_image_file_name ) \
+      description { state: "flipping" param_state_value; \
+         inherit: "default" 0.0; \
+         image { normal: param_image_file_name; } \
+      }
+
+#define DESC_TEXT_HIDE( param_state_value ) \
+   description { state: "hide" param_state_value; \
+      inherit: "default" 0.0; \
+      color: 0 0 0 (255*(1-param_state_value/0.20)); \
+   }
+
+#define GENLIST_EDIT_PART_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: 0 0 0 0; \
+            } \
+         }
+
+#define GENLIST_PART_FLIP \
+         part { name: "elm.flip.icon"; \
+            clip_to: "disclip"; \
+            type: SWALLOW; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               fixed: 1 1; \
+               align: 1 0; \
+               min: 80 0; \
+               rel1 { \
+                  relative: 0.0  0.0; \
+                  to_x: "elm.padding.right"; \
+               } \
+               rel2 { \
+                  relative: 0.0  1.0; \
+                  to_x: "elm.padding.right"; \
+               } \
+            } \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+         part { name: "elm.flip.content"; \
+            clip_to: "disclip"; \
+            type: SWALLOW; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               fixed: 1 1; \
+               rel1 { \
+                  relative: 1.0  0.5; \
+                  to_x: "elm.padding.left"; \
+               } \
+               rel2 { \
+                  relative: 0.0  0.5; \
+                  to_x: "elm.flip.icon"; \
+               } \
+            } \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         }
+
+#define GENLIST_DESCRIPTION_INVISIBLE_SELECTED \
+            description { state: "selected" 1.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_DESCRIPTION_FLIP_ENABLED \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) \
+                  set_state(PART:"elm.text", "selected", 1.0); \
+               else \
+                  set_state(PART:"elm.text", "selected", 0.0); \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_2TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text.1", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) { \
+                  set_state(PART:"elm.text.1", "selected", 1.0); \
+                  set_state(PART:"elm.text.2", "selected", 1.0); \
+               } \
+               else { \
+                  set_state(PART:"elm.text.1", "selected", 0.0); \
+                  set_state(PART:"elm.text.2", "selected", 0.0); \
+               } \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_3TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text.1", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) { \
+                  set_state(PART:"elm.text.1", "selected", 1.0); \
+                  set_state(PART:"elm.text.2", "selected", 1.0); \
+                  set_state(PART:"elm.text.3", "selected", 1.0); \
+               } \
+               else { \
+                  set_state(PART:"elm.text.1", "selected", 0.0); \
+                  set_state(PART:"elm.text.2", "selected", 0.0); \
+                  set_state(PART:"elm.text.3", "selected", 0.0); \
+               } \
+            }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+             target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+/* genlist multisense macro - start */
+#define GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS \
+            after: "play_button_press";
+
+#define GENLIST_PROGRAM_PLAY_BUTTON_PRESS \
+         program { name: "play_button_press"; \
+            action: PLAY_SAMPLE "button-pressed" 1.0; \
+         }
+
+
+
+/* genlist multisense macro - end */
diff --git a/data/edc/theme/originals/readme b/data/edc/theme/originals/readme
new file mode 100644 (file)
index 0000000..50712d2
--- /dev/null
@@ -0,0 +1,7 @@
+This folder contains exact copies from platform code.
+
+Do not modify edc files in this folder.
+
+genlist_macro.edc      efl-theme-tizen/themes/widgets/genlist/genlist_macro.edc
+tizen-hd-inc.edc       efl-theme-tizen/themes/inc/tizen-hd-inc.edc
+white-hd-inc.edc       efl-theme-white/themes/inc/white-hd-inc.edc
diff --git a/data/edc/theme/originals/tizen-hd-inc.edc b/data/edc/theme/originals/tizen-hd-inc.edc
new file mode 100755 (executable)
index 0000000..4361c57
--- /dev/null
@@ -0,0 +1,1287 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#define BG_DEFAULT_COLOR_INC 0 0 0 255
+#define BG_EDIT_MODE_COLOR_INC 36 36 36 255
+#define BG_GROUP_LIST_COLOR_INC 36 36 36 255
+#define BG_TRANSPARENT_COLOR_INC 0 0 0 0
+
+#define LAYOUT_BG_COLOR_INC 0 0 0 255
+#define LAYOUT_EDIT_MODE_BG_COLOR_INC 36 36 36 255
+#define LAYOUT_GROUP_LIST_BG_COLOR_INC 36 36 36 255
+#define LAYOUT_INDICATOR_HEIGHT_INC 50
+#define LAYOUT_INDICATOR_COLOR_INC 0 0 0 255
+
+#define NAVIFRAME_TITLE_H_INC 108
+#define NAVIFRAME_SEGMENT_TITLE_H_INC 124
+#define NAVIFRAME_OH_OPENED_H_INC 114
+#define NAVIFRAME_OH_CONTENT_H_INC 72
+#define NAVIFRAME_OH_PADDING_INC 16
+#define NAVIFRAME_OH_SHADOW_INC 10
+#define NAVIFRAME_OH_ARROW_SIZE_INC 28 24
+#define NAVIFRAME_OH_OPENED_DOUBLE_H_INC 202
+#define NAVIFRAME_PREV_BTN_W_INC 124
+#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 120 72
+#define NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 144
+#define NAVIFRAME_TEXT_PADDING_INC 142
+#define NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 48
+#define NAVIFRAME_TEXT_PADDING_ICON_VISIBLE_INC 48
+#define NAVIFRAME_TITLE_SEGMENT_H_INC 64
+#define NAVIFRAME_TITLE_SEGMENT_FONT_SIZE_INC 38
+#define NAVIFRAME_TITLE_SEGMENT_TEXT_H_INC 54
+#define NAVIFRAME_TITLE_FONT_SIZE_INC 52
+#define NAVIFRAME_SUBTITLE_FONT_SIZE_INC 32
+#define NAVIFRAME_ICON_SIZE_INC 32 32
+#define NAVIFRAME_ICON_PADDING_INC 16 0
+#define NAVIFRAME_TITLE_TEXT_COLOR_INC 249 249 249 255
+#define NAVIFRAME_SUBTITLE_TEXT_COLOR_INC 249 249 249 255
+#define NAVIFRAME_OH_BORDER_INC 1 1 5 1
+
+#define PROGRESSBAR_TITLE_FONT_SIZE_INC 28
+#define PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC 20
+
+#define POPUP_DEFAULT_TITLE_TEXT_COLOR_INC 249 249 249 255
+#define POPUP_DEFAULT_DESCRIPTION_TEXT_COLOR_INC "#F9F9F9"
+#define POPUP_DIM_BG_COLOR_INC 0 0 0 125
+#define POPUP_DIM_BG_CLICKED_COLOR_INC 0 0 0 175
+#define POPUP_DIM_BG_TRANS_COLOR_INC 0 0 0 0
+#define POPUP_DIM_BG_CLICKED_TRANS_COLOR_INC 0 0 0 50
+#define POPUP_CUSTOMSTYLE_TITLE_BOTTOM_LINE_COLOR_INC 70 82 102 255
+#define POPUP_CUSTOMSTYLE_TITLE_TEXT_COLOR_INC 249 249 249 255
+
+#define CTXPOPUP_BUBBLE_BG_IMAGE "00_popup_bubble_bg.png"
+#define CTXPOPUP_BG_IMAGE "00_popup_bg.png"
+#define CTXPOPUP_BUBBLE_BG_IMAGE_BORDER 13 13 13 13
+#define CTXPOPUP_BG_IMAGE_BORDER 3 3 3 3
+#define CTXPOPUP_BG_COLOR_INC 0 0 0 255
+#define CTXPOPUP_BG_PRESS_COLOR_INC 0 140 210 255
+#define CTXPOPUP_MAIN_TEXT_UNREAD_COLOR_INC 249 249 249 255
+#define CTXPOPUP_MAIN_TEXT_PRESS_COLOR_INC 249 249 249 255
+#define CTXPOPUP_SEPARATOR_COLOR_INC 70 70 70 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_COLOR_INC 70 70 70 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MIN_SIZE_INC 1 0
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MAX_SIZE_INC 1 999999
+#define CTXPOPUP_VERTICAL_SEPARATOR_MIN_SIZE_INC 0 1
+#define CTXPOPUP_VERTICAL_SEPARATOR_MAX_SIZE_INC 999999 1
+#define CTXPOPUP_TP_BG_COLOR_INC 0 140 210 255
+#define CTXPOPUP_ITEM_TEXT_SIZE_INC 44
+#define CTXPOPUP_ITEM_MAIN_TEXT_SIZE_INC 44
+#define CTXPOPUP_ITEM_HEIGHT_INC 110
+#define CTXPOPUP_ITEM_ICON_INC 160 110
+#define CTXPOPUP_ICON_WIDTH_INC 80
+#define CTXPOPUP_ICON_HEIGHT_INC 80
+#define CTXPOPUP_ARROW_SIZE_INC 48 48
+#define CTXPOPUP_CONTENT_WIDTH_MAX_INC 630
+#define CTXPOPUP_ITEM_PADDING_INC 25
+#define CTXPOPUP_IE_ARROW_SIZE_INC 52
+#define CTXPOPUP_IE_FONT_SIZE_INC 40
+#define CTXPOPUP_IE_ITEM_PADDING_INC 22
+#define CTXPOPUP_IE_ITEM_HEIGHT_INC 75
+#define CTXPOPUP_IE_CONTENT_WIDTH_MAX_INC 720
+#define CTXPOPUP_IE_ICON_WIDTH_INC 60
+#define CTXPOPUP_IE_ICON_HEIGHT_INC 60
+#define CTXPOPUP_TP_ARROW_SIZE_INC 30
+#define CTXPOPUP_TP_HEIGHT_INC 106
+
+#define DISKSELECTOR_DF_FONT_COLOR_INC 105 151 173 255
+#define DISKSELECTOR_DF_FONT_MOUSE_DOWN_COLOR_INC 249 249 249 255
+#define DISKSELECTOR_DF_ITEM_MIN_SIZE_INC 70 106;
+#define DISKSELECTOR_DF_FONT_SIZE_INC 44
+#define DISKSELECTOR_DF_DATA_MIN_HEIGHT_INC "106"
+
+#define LABEL_TEXT_BLOCK_STYLE_COLOR_INC "#FFFFFF"
+#define LABEL_FONT_SIZE_INC 36
+#define LABEL_MIN_FONT_SIZE_INC 27
+#define LABEL_MAX_FONT_SIZE_INC 90
+
+#define GENGRID_FONT_STYLE_18_INC "26"
+#define GENGRID_PART_BG_COLOR_INC 0 0 0 0
+#define GENGRID_PART_ITEM_BG_COLOR_INC 239 239 239 255
+#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 128
+#define GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC "#F9F9F9"
+
+#define GENLIST_HEIGHT_1_INC 1
+#define GENLIST_HEIGHT_16_INC 16
+#define GENLIST_HEIGHT_33_INC 33
+#define GENLIST_HEIGHT_49_INC 49
+#define GENLIST_HEIGHT_62_INC 62
+#define GENLIST_HEIGHT_65_INC 65
+#define GENLIST_HEIGHT_73_INC 73
+#define GENLIST_HEIGHT_77_INC 77
+#define GENLIST_HEIGHT_89_INC 89
+#define GENLIST_HEIGHT_93_INC 93
+#define GENLIST_HEIGHT_97_INC 97
+#define GENLIST_HEIGHT_113_INC 113
+#define GENLIST_HEIGHT_129_INC 129
+#define GENLIST_HEIGHT_161_INC 161
+#define GENLIST_HEIGHT_163_INC 163
+#define GENLIST_HEIGHT_164_INC 164
+#define GENLIST_HEIGHT_165_INC 165
+#define GENLIST_HEIGHT_177_INC 177
+#define GENLIST_HEIGHT_182_INC 182
+#define GENLIST_HEIGHT_190_INC 190
+#define GENLIST_HEIGHT_207_INC 207
+#define GENLIST_HEIGHT_260_INC 260
+#define GENLIST_HEIGHT_291_INC 291
+#define GENLIST_HEIGHT_454_INC 454
+#define GENLIST_HEIGHT_566_INC 566
+
+#define GENLIST_PADDING_4_INC 4
+#define GENLIST_PADDING_5_INC 5
+#define GENLIST_PADDING_6_INC 6
+#define GENLIST_PADDING_8_INC 8
+#define GENLIST_PADDING_10_INC 10
+#define GENLIST_PADDING_11_INC 11
+#define GENLIST_PADDING_12_INC 12
+#define GENLIST_PADDING_13_INC 13
+#define GENLIST_PADDING_14_INC 14
+#define GENLIST_PADDING_16_INC 16
+#define GENLIST_PADDING_18_INC 18
+#define GENLIST_PADDING_21_INC 21
+#define GENLIST_PADDING_22_INC 22
+#define GENLIST_PADDING_24_INC 24
+#define GENLIST_PADDING_27_INC 27
+#define GENLIST_PADDING_32_INC 32
+#define GENLIST_PADDING_34_INC 34
+#define GENLIST_PADDING_46_INC 46
+#define GENLIST_PADDING_48_INC 48
+#define GENLIST_PADDING_64_INC 64
+#define GENLIST_PADDING_74_INC 74
+#define GENLIST_PADDING_88_INC 88
+#define GENLIST_PADDING_124_INC 124
+
+#define GENLIST_FONT_27_INC 27
+#define GENLIST_FONT_28_INC 28
+#define GENLIST_FONT_30_INC 30
+#define GENLIST_FONT_32_INC 32
+#define GENLIST_FONT_STYLE_32_INC "32"
+#define GENLIST_FONT_36_INC 36
+#define GENLIST_FONT_STYLE_36_INC "36"
+#define GENLIST_FONT_40_INC 40
+#define GENLIST_FONT_STYLE_40_INC "40"
+#define GENLIST_FONT_42_INC 42
+#define GENLIST_FONT_STYLE_42_INC "42"
+#define GENLIST_FONT_44_INC 44
+#define GENLIST_FONT_STYLE_44_INC "44"
+#define GENLIST_FONT_48_INC 48
+#define GENLIST_FONT_STYLE_48_INC "48"
+
+#define GENLIST_SIZE_4_INC 4
+#define GENLIST_SIZE_6_INC 6
+#define GENLIST_SIZE_8_INC 8
+#define GENLIST_SIZE_10_INC 10
+#define GENLIST_SIZE_13_INC 13
+#define GENLIST_SIZE_16_INC 16
+#define GENLIST_SIZE_18_INC 18
+#define GENLIST_SIZE_21_INC 21
+#define GENLIST_SIZE_28_INC 28
+#define GENLIST_SIZE_ICON_SMALL 32
+#define GENLIST_SIZE_35_INC 35
+#define GENLIST_SIZE_38_INC 38
+#define GENLIST_SIZE_40_INC 40
+#define GENLIST_SIZE_42_INC 42
+#define GENLIST_SIZE_44_INC 44
+#define GENLIST_SIZE_45_INC 45
+#define GENLIST_SIZE_46_INC 46
+#define GENLIST_SIZE_48_INC 48
+#define GENLIST_SIZE_54_INC 54
+#define GENLIST_SIZE_56_INC 56
+#define GENLIST_SIZE_57_INC 57
+#define GENLIST_SIZE_60_INC 60
+#define GENLIST_SIZE_61_INC 61
+#define GENLIST_SIZE_SLIDE_60_INC 60
+#define GENLIST_SIZE_ICON_BIG 64
+#define GENLIST_SIZE_66_INC 66
+#define GENLIST_SIZE_74_INC 74
+#define GENLIST_SIZE_SLIDE_74_INC 74
+#define GENLIST_SIZE_80_INC 80
+#define GENLIST_SIZE_88_INC 88
+#define GENLIST_SIZE_90_INC 90
+#define GENLIST_SIZE_96_INC 96
+#define GENLIST_SIZE_112_INC 112
+#define GENLIST_SIZE_116_INC 116
+#define GENLIST_SIZE_128_INC 128
+#define GENLIST_SIZE_133_INC 133
+#define GENLIST_SIZE_141_INC 141
+#define GENLIST_SIZE_144_INC 144
+#define GENLIST_SIZE_154_INC 154
+#define GENLIST_SIZE_160_INC 160
+#define GENLIST_SIZE_163_INC 163
+#define GENLIST_SIZE_168_INC 168
+#define GENLIST_SIZE_174_INC 174
+#define GENLIST_SIZE_SLIDE_165_INC 165
+#define GENLIST_SIZE_176_INC 176
+#define GENLIST_SIZE_177_INC 177
+#define GENLIST_SIZE_192_INC 192
+#define GENLIST_SIZE_195_INC 195
+#define GENLIST_SIZE_197_INC 197
+#define GENLIST_SIZE_206_INC 206
+#define GENLIST_SIZE_234_INC 234
+#define GENLIST_SIZE_235_INC 235
+#define GENLIST_SIZE_SLIDE_220_INC 220
+#define GENLIST_SIZE_304_INC 304
+#define GENLIST_SIZE_390_INC 390
+#define GENLIST_SIZE_448_INC 448
+#define GENLIST_SIZE_560_INC 560
+#define GENLIST_SIZE_576_INC 576
+#define GENLIST_SIZE_672_INC 672
+
+#define GENLIST_TREESIZE_16_INC 16
+#define GENLIST_TREESIZE_20_INC 20
+#define GENLIST_TREESIZE_32_INC 32
+
+//new
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_READ_COLOR_INC 158 158 158 255
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_LIST_BUBBLE_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC 100 100 100 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_SETTINGS_COLOR_INC 0 140 210 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_COLOR_INC 149 149 149 255
+#define GENLIST_PART_FONT_INDEX_LIST_COLOR_INC 164 164 164 255
+#define GENLIST_PART_FONT_EDITFIELD_TEXT_COLOR_INC 70 70 70 255
+#define GENLIST_PART_FONT_EDITFIELD_TEXT_CURSOR_COLOR_INC 0 140 210 255
+#define GENLIST_PART_FONT_MULTILINE_TEXT_COLOR_INC 149 149 149 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_COLOR_INC 104 137 152 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_3_COLOR_INC 104 137 152 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_3_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONVERTOR_STYLE_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONVERTOR_STYLE_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_UNREAD_EMAIL_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONTENTS_TEXT_COLOR_INC 210 210 210 255
+#define GENLIST_PART_FONT_NAME_TEXT_COLOR_INC 129 129 129 255
+#define GENLIST_PART_FONT_NAME_TEXT_DIM_COLOR_INC 0 140 210 255
+#define GENLIST_PART_FONT_BUBBLE_READ_MESSAGE_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_TIME_COLOR_INC 96 96 96 255
+#define GENLIST_PART_FONT_BUBBLE_SENT_MESSAGE_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_SOS_MESSAGE_COLOR_INC 211 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_DATE_COLOR_INC 164 164 164 255
+#define GENLIST_PART_FONT_BUBBLE_LINK_MESSAGE_COLOR_INC 34 129 157 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_FAILED_COLOR_INC 211 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_READ_MESSAGE_NAME_COLOR_INC 57 166 215 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_HELP_COLOR_INC 146 146 146 255
+#define GENLIST_PART_FONT_LIST_BUBBLE_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC 118 118 118 255
+
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_STYLE_COLOR_INC "#646464FF"
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_STYLE_COLOR_INC "#688998FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC "#929292FF"
+
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 110 // alpha was 64
+#define GENLIST_PART_BG_COLOR_INC 0 0 0 255
+#define GENLIST_PART_LIST_BG_COLOR_INC 0 0 0 255
+#define GENLIST_PART_LIST_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_PART_LIST_PRESS_COLOR_INC 0 140 210 255
+#define GENLIST_PART_TEXT_PRESS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_EXPANDABLE_2ND_DEPTH_BG_COLOR_INC 31 31 31 255
+#define GENLIST_PART_EXPANDABLE_3ND_DEPTH_BG_COLOR_INC 46 46 46 255
+#define GENLIST_PART_EDIT_SELECT_ALL_BG_COLOR_INC 36 36 36 255
+#define GENLIST_PART_EDIT_REORDER_BG_COLOR_INC 36 36 36 255
+#define GENLIST_PART_EDIT_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_PART_BUBBLE_DATE_BG_COLOR_INC 66 66 66 255
+#define GENLIST_PART_BUBBLE_1PIXEL_LINE_COLOR_INC 153 153 153 255
+#define GENLIST_PART_INDEX_LIST_BASE_EVENT_INC \
+         part { name: "base_event";\
+            type: RECT;\
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            }\
+         }
+#define GENLIST_PART_INDEX_LIST_BASE_IMAGE_INC \
+         part { name: "base_image";\
+            repeat_events: 1;\
+            description { state: "default" 0.0;\
+               rel1.to: "rect";\
+               rel2.to: "rect";\
+               image {\
+                  normal: "00_index list_bg.png";\
+               }\
+            }\
+         }
+
+#define GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#3F8DAD"
+
+#define GENLIST_DIALOGUE_FONT_SUB_TITLE_COLOR_INC 102 102 102 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_COLOR_INC 153 153 153 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_COLOR_INC 63 141 173 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_DIM_COLOR_INC 63 141 173 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_MAIN_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_SUB_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_APPS_NAME_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_APPS_INC_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_APPS_RATING_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_ORIGINAL_COLOR_INC 0 140 210 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_SALE_COLOR_INC 221 134 21 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_FREE_COLOR_INC 0 140 210 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_TITLE_COLOR_INC 153 153 153 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_INPUT_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_WORD_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_PRONUNCIATION_COLOR_INC 152 89 0 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_NATION_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_01_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_02_COLOR_INC 146 146 146 255
+
+#define GENLIST_DIALOGUE_GROUP_BG_COLOR_INC 36 36 36 255
+#define GENLIST_DIALOGUE_GROUP_LIST_BG_COLOR_INC 36 36 36 255
+#define GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_ICON_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_PHOTO_ID_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_BG_IMAGE_COLOR_INC 236 240 242 255
+#define GENLIST_DIALOGUE_LIST_BG_IMAGE_COLOR_INC 232 232 223 255
+
+
+#define GENLIST_SWEEP_BG_COLOR_INC 45 45 45 255
+
+#define GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_UNREAD 0 0 0 255
+#define GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_READ 158 158 158 255
+#define GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_FOCUS 249 249 249 255
+
+#define GENLIST_TEXT_COLOR_LIST_SUB_TEXT_DEFAULT 100 100 100 255
+#define GENLIST_TEXT_COLOR_LIST_SUB_TEXT_SETTINGS 0 140 210 255
+#define GENLIST_TEXT_COLOR_LIST_SUB_TEXT_FOCUS 249 249 249 255
+
+//old
+#if 0
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 110 // alpha was 64
+#define GENLIST_PART_BG_COLOR_INC 0 0 0 255
+#define GENLIST_PART_BG_SELECTED_COLOR_INC 50 65 74 255
+#define GENLIST_PART_BG_UNSELECTED_COLOR_INC 0 0 0 0
+#define GENLIST_PART_DIALOGUE_BG_COLOR_INC 15 15 15 255
+#define GENLIST_PART_SELECT_ALL_BG_COLOR_INC 239 237 230 255
+#define GENLIST_PART_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_PART_TEXT_SELECTED_COLOR_INC 249 249 249 255
+#define GENLIST_PART_SUB_TEXT_COLOR_INC 168 168 168 255
+#define GENLIST_PART_SUB_TEXT_SETTINGS_COLOR_INC 85 177 220 255
+#define GENLIST_PART_MULTILINE_TEXT_COLOR_INC GENLIST_PART_TEXT_COLOR_INC
+#define GENLIST_PART_MULTILINE_TITLE_COLOR_INC 149 149 149 255
+#define GENLIST_PART_MULTILINE_TITLE_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_MULTILINE_TITLE_STYLE_SELECTED_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_MULTILINE_TEXT_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_MULTILINE_SUB_TEXT_STYLE_COLOR_INC "#a8a8a8"
+#define GENLIST_PART_MULTILINE_TEXT_STYLE_SELECTED_COLOR_INC "#959595FF"
+#define GENLIST_PART_MULTILINE_HELP_STYLE_COLOR_INC "#b4b4b4"
+#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#3F8DAD"
+#define GENLIST_PART_SLIDE_TEXT_COLOR_INC 255 255 255 255
+#define GENLIST_PART_BOTTOM_LINE_INC 87 87 87 255
+#define GENLIST_PART_DIALOGUE_SUBTITLE_TEXT_COLOR_INC 168 168 168 255
+#define GENLIST_PART_DIALOGUE_INDICATOR_BG_COLOR_INC 87 87 87 255
+#define GENLIST_PART_EMAIL_READ_TEXT_COLOR_INC 108 108 108 255
+#define GENLIST_PART_EMAIL_UNREAD_TEXT_COLOR_INC 0 0 0 255
+#define GENLIST_PART_EMAIL_URGENCY_UNREAD_TEXT_COLOR_INC 207 37 37 255
+#define GENLIST_PART_EMAIL_URGENCY_READ_TEXT_COLOR_INC 171 82 82 255
+#endif
+#define GENLIST_PART_EMAIL_MSGCOUNT_TEXT_COLOR_INC 255 255 255 255
+#define GENLIST_PART_TEXTBLOCK_STYLE_COLOR_INC "#a8a8a8FF"
+#define GENLIST_PART_TEXTBLOCK_STYLE_SELECTED_COLOR_INC "#959595"
+#define GENLIST_PART_TEXTBLOCK_READ_STYLE_COLOR_INC "#969696FF"
+#define GENLIST_PART_TEXTBLOCK_UNREAD_STYLE_COLOR_INC "#d2d2d2FF"
+#define GENLIST_PART_TEXTBLOCK_SUB_STYLE_COLOR_INC "#a8a8a8"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_READ_STYLE_COLOR_INC "#AB5252"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_UNREAD_STYLE_COLOR_INC "#CF2525"
+#if 0
+#define GENLIST_GROUP_PART_TEXT_COLOR_INC 164 164 164 255
+#define GENLIST_GROUP_PART_BASE_EVENT_INC \
+         part { name: "base_event";\
+            type: RECT;\
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            }\
+         }
+#define GENLIST_GROUP_PART_BASE_IMAGE_INC
+         part { name: "base_image";\
+            repeat_events: 1;\
+            description { state: "default" 0.0;\
+               rel1.to: "rect";\
+               rel2.to: "rect";\
+               image {\
+                  normal: "00_index list_bg.png";\
+               }\
+            }\
+         }
+#define GENLIST_GROUP_BG_COLOR_DEFAULT_INC 66 66 66 255
+#define GENLIST_GROUP_BG_COLOR_ALPHA_OFF_INC 66 66 66 255
+#define GENLIST_GROUP_LEFT_BG_COLOR_INC 15 15 15 255
+#define GENLIST_EDIT_PART_LINE_INC 41 40 36 150
+#define GENLIST_EDIT_PART_BOTTOM_LINE_INC 82 82 82 255
+#define GENLIST_EDIT_BG_COLOR_INC 0 0 0 255
+#define GENLIST_EDIT_SELECT_ALL_BG_COLOR_INC 36 36 36 255
+#define GENLIST_EXPANDABLE_PART_BG_COLOR_INC GENLIST_PART_BG_COLOR_INC
+#define GENLIST_EXPANDABLE2_PART_BG_COLOR_INC 15 15 15 255
+#define GENLIST_EXPANDABLE2_NOSHADOW_BG_COLOR_INC 15 15 15 255
+#define GENLIST_EXPANDABLE3_PART_BG_COLOR_INC 30 30 30 255
+#define GENLIST_EXPANDABLE_PART_BG_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_bg.png"; \
+                  border: 0 0 12 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+          }
+#define GENLIST_PART_BG_EXPANDABLE3_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_2_bg.png"; \
+                  border: 0 0 12 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+#define GENLIST_EXPANDABLE3_PART_BG_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_2_bg.png"; \
+                  border: 0 0 12 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+#define GENLIST_EXPANDABLE3_NOSHADOW_PART_BG_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_2_noshadow_bg.png"; \
+                  border: 0 0 0 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+#define GENLIST_DIALOGUE_EXPANDABLE2_PART_BG_COLOR_INC 31 31 31 255
+#define GENLIST_DIALOGUE_EXPANDABLE3_PART_BG_COLOR_INC 46 46 46 255
+#define GENLIST_GROUP_PART_BUBBLE_TEXT_COLOR_INC 57 166 215 255
+#define GENLIST_GROUP_PART_BUBBLE_BG_COLOR_INC 36 43 44 255
+#define GENLIST_BUBBLE_BG_COLOR_INC 153 153 153 255
+#endif
+
+#define CONTACT_DISPLAY_NAME_FONT_COLOR_INC  255 255 255 255
+#define CONTACT_DISPLAY_NAME_FONT_GRAY_COLOR_INC 230 230 230 255
+
+#define BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_STYLE1_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC 106 106 106 255
+#define BUTTON_TEXT_STYLE1_TEXT_DISABLED_COLOR_INC 180 180 1 255
+
+#define BUTTON_NAVIFRAME_TITLE1_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE1_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE1_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE1_DISABLED_COLOR_INC 106 106 106 255
+
+#define BUTTON_POPUP_BUTTON_TEXT_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_POPUP_BUTTON_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_POPUP_BUTTON_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_POPUP_BUTTON_TEXT_DISABLED_COLOR_INC 106 106 106 255
+
+#define BUTTON_EXPAND_BUTTON_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_DISABLED_COLOR_INC 106 106 106 255
+
+#define BUTTON_SWEEP_BUTTON_TEXT_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_SWEEP_BUTTON_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_SWEEP_BUTTON_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_SWEEP_BUTTON_TEXT_DISABLED_COLOR_INC 106 106 106 255
+
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_DISABLED_COLOR_INC 106 106 106 255
+
+#define BUTTON_CONTACT_BUTTON_BG_NORMAL_COLOR_INC 42 109 140 255
+#define BUTTON_CONTACT_BUTTON_BG_PRESSED_COLOR_INC 0 140 210 255
+
+#define BUTTON_CONTACT_BUTTON_TEXT_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_CONTACT_BUTTON_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_CONTACT_BUTTON_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_CONTACT_BUTTON_TEXT_DISABLED_COLOR_INC 106 106 106 255
+
+#define BUTTON_HIDDEN_BUTTON_TEXT_NORMAL_COLOR_INC 118 118 118 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_DISABLED_COLOR_INC 106 106 106 255
+
+#define BUTTON_TEXT_CONTACTS_DELETE_NORMAL_COLOR_INC 207 41 41 255
+#define BUTTON_TEXT_CONTACTS_DELETE_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_CONTACTS_DELETE_DISABLED_COLOR_INC 0 0 0 128
+
+#define BUTTON_NAVIFRAME_TITLE_TEXT_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_DISABLED_COLOR_INC 249 249 249 127
+
+#define BUTTON_NAVIFRAME_BG_COLOR_PRESSED_INC 71 183 244 255
+
+#define BUTTON_NUMBERED_TEXT_NORMAL_COLOR_INC 249 249 249 255
+
+#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXT_SIZE_INC 28
+#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXTBLOCK_COLOR_INC "#f9f9f9"
+#define BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC 56 56
+
+#define BUTTON_TEXT_STYLE1_BG_MIN_INC 100 74
+#define BUTTON_TEXT_STYLE1_VISIBLE_BG_MIN_INC 148 74
+#define BUTTON_TEXT_STYLE1_ICONONLY_BG_MIN_INC 74 74
+#define BUTTON_TEXT_STYLE1_BG_BORDER_INC 5 5 5 5
+#define BUTTON_TEXT_STYLE1_PADDING_MIN_INC 16 3
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE1_FONT_SIZE_INC 32
+#define BUTTON_TEXT_STYLE1_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_TEXT_STYLE2_BG_MIN_INC 100 74
+#define BUTTON_TEXT_STYLE2_VISIBLE_BG_MIN_INC 148 74
+#define BUTTON_TEXT_STYLE2_ICONONLY_BG_MIN_INC 74 74
+#define BUTTON_TEXT_STYLE2_BG_BORDER_INC 5 5 5 5
+#define BUTTON_TEXT_STYLE2_PADDING_MIN_INC 5 3
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE2_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE2_ICONONLY_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE2_FONT_SIZE_INC 32
+#define BUTTON_TEXT_STYLE2_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_CONTACT_STYLE_BG_MIN_MAX_INC 64 64
+#define BUTTON_CONTACT_STYLE_IMAGE_MIN_MAX_INC 64 64
+
+#define BUTTON_CIRCLE_STYLE_BG_MIN_MAX_INC 64 64
+#define BUTTON_CIRCLE_STYLE_IMAGE_MIN_MAX_INC 64 64
+#define BUTTON_CIRCLE_STYLE_CONTENT_MIN_MAX_INC 35 35
+
+#define BUTTON_POPUP_BG_NORMAL_MIN_INC 30 74
+#define BUTTON_POPUP_BG_BORDER_INC 5 5 5 5
+#define BUTTON_POPUP_PADDING_MIN_INC 16 3
+#define BUTTON_POPUP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_POPUP_ICON_ICONONLY_MIN_INC 38 38
+#define BUTTON_POPUP_TEXT_MIN_INC 64 20
+#define BUTTON_POPUP_TEXT_FONT_SIZE_INC 32
+#define BUTTON_POPUP_MULTILINE_TEXT_FONT_SIZE_INC 28
+
+#define BUTTON_EDIT_STYLE_BG_NORMAL_MIN_MAX_INC 74 74
+#define BUTTON_EDIT_STYLE_IMAGE_NORMAL_MIN_MAX_INC 74 74
+#define BUTTON_EDIT_STYLE_BORDER_INC 8 0 5 5
+
+#define BUTTON_EDIT_NORMAL_MIN_WIDTH_INC 54
+#define BUTTON_EDIT_NORMAL_MIN_HEIGHT_INC 54
+#define BUTTON_EDIT_EXTENDED_MIN_WIDTH_INC 64
+#define BUTTON_EDIT_EXTENDED_MIN_HEIGHT_INC 80
+
+#define BUTTON_SWEEP_BG_NORMAL_MIN_INC 12 74
+#define BUTTON_SWEEP_BG_BORDER_INC 5 5 5 5
+#define BUTTON_SWEEP_PADDING_MIN_INC 16 3
+#define BUTTON_SWEEP_ICON_RECT_MIN_INC 0 38
+#define BUTTON_SWEEP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_SWEEP_ICONONLY_ICON_MIN_INC 38 38
+#define BUTTON_SWEEP_TEXT_MIN_INC 90 32
+#define BUTTON_SWEEP_FONT_SIZE_INC 32
+#define BUTTON_SWEEP_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_SEARCHBAR_BG_NORMAL_MIN_INC 12 74
+#define BUTTON_SEARCHBAR_BG_BORDER_INC 6 6 6 6
+#define BUTTON_SEARCHBAR_PADDING_MIN_INC 5 5
+#define BUTTON_SEARCHBAR_ICON_RECT_MIN_INC 0 28
+#define BUTTON_SEARCHBAR_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_SEARCHBAR_ICONONLY_ICON_MIN_INC 28 28
+#define BUTTON_SEARCHBAR_TEXT_MIN_INC 90 28
+#define BUTTON_SEARCHBAR_FONT_SIZE_INC 32
+
+#define BUTTON_HIDDEN_BG_NORMAL_MIN_INC 12 60
+#define BUTTON_HIDDEN_BG_BORDER_INC 5 5 5 5
+#define BUTTON_HIDDEN_PADDING_MIN_INC 16 5
+#define BUTTON_HIDDEN_ICON_RECT_MIN_INC 0 28
+#define BUTTON_HIDDEN_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_HIDDEN_ICON_ICONONLY_MIN_INC 28 28
+#define BUTTON_HIDDEN_TEXT_MIN_INC 90 28
+#define BUTTON_HIDDEN_FONT_SIZE_INC 38
+
+#define BUTTON_EXPAND_BUTTON_TEXT_SIZE_INC 30
+
+#define BUTTON_EXPANDABLE_NUMBER_BG_NORMAL_MIN_MAX_INC 108 44
+#define BUTTON_EXPANDABLE_NUMBER_BG_BORDER_INC 5 5 5 5
+#define BUTTON_EXPANDABLE_NUMBER_PADDING_MIN_INC 16 1
+#define BUTTON_EXPANDABLE_NUMBER_ICON_RECT_EXPAND__MIN_MAX_INC 16 22
+#define BUTTON_EXPANDABLE_NUMBER_TEXT_MIN_MAX_INC 44 44
+#define BUTTON_EXPANDABLE_NUMBER_FONT_SIZE_INC 32
+
+#define BUTTON_CONTACT_DELETE_BG_NORMAL_MIN_INC 50 74
+#define BUTTON_CONTACT_DELETE_BG_BORDER_INC 8 0 5 5
+#define BUTTON_CONTACT_DELETE_PADDING_LEFT_TOP_MIN_INC 36 2
+#define BUTTON_CONTACT_DELETE_PADDING_RIGHT_BOTTOM_MIN_INC 14 2
+#define BUTTON_CONTACT_DELETE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_CONTACT_DELETE_ICON_ICONONLY_MIN_INC 42 42
+#define BUTTON_CONTACT_DELETE_FONT_SIZE_INC 32
+
+#define BUTTON_CONTACT_BG_MIN_INC 58 56
+#define BUTTON_CONTACT_BG_BORDER_INC 28 28 2 2
+#define BUTTON_CONTACT_PADDING_MIN_INC 20 1
+#define BUTTON_CONTACT_FONT_SIZE_INC 36
+
+#define BUTTON_NAVIFRAME_BACK_BUTTON_BG_MIN_MAX_INC 144 114
+#define BUTTON_NAVIFRAME_BACK_BUTTON_BG_BORDER_INC 5 5 5 5
+#define BUTTON_NAVIFRAME_BACK_BUTTON_MIN_MAX_INC 56 56
+
+#define BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC 249 249 249 255
+
+#define BUTTON_NAVIFRAME_TITLE_ICON_BG_NORMAL_MIN_INC 120 72
+#define BUTTON_NAVIFRAME_TITLE_ICON_BG_PRESSED_MIN_INC 120 72
+#define BUTTON_NAVIFRAME_TITLE_ICON_BG_PRESSED_BORDER_INC 4 4 4 4
+#define BUTTON_NAVIFRAME_TITLE_ICON_PADDING_MIN_INC 10 3
+#define BUTTON_NAVIFRAME_TITLE_ICON_MORE_MIN_WIDTH_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_MORE_MIN_HEIGHT_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_PLUS_MIN_WIDTH_INC 64
+#define BUTTON_NAVIFRAME_TITLE_ICON_PLUS_MIN_HEIGHT_INC 64
+#define BUTTON_NAVIFRAME_TITLE_ICON_CANCEL_MIN_WIDTH_INC 64
+#define BUTTON_NAVIFRAME_TITLE_ICON_CANCEL_MIN_HEIGHT_INC 64
+#define BUTTON_NAVIFRAME_TITLE_ICON_SEARCH_MIN_WIDTH_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_SEARCH_MIN_HEIGHT_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_PREV_MIN_WIDTH_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_PREV_MIN_HEIGHT_INC 56
+
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_NORMAL_MIN_INC 120 72
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_PRESSED_MIN_INC 120 72
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_PRESSED_BORDER_INC 4 4 4 4
+#define BUTTON_NAVIFRAME_TITLE_TEXT_PADDING_MIN_INC 10 3
+#define BUTTON_NAVIFRAME_TITLE_TEXT_FONT_SIZE_INC 30
+#define BUTTON_NAVIFRAME_TITLE_VISIBLE_ICON_RECT_MIN_MAX_INC 56 56
+#define BUTTON_NAVIFRAME_TITLE_ICONONLY_ICON_MIN_MAX_INC 56 56
+#define BUTTON_NAVIFRAME_TITLE_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_NORMAL_COLOR_INC 249 249 249 255
+
+#define BUTTON_NAVIFRAME_TITLE1_BG_BORDER_INC 5 5 5 5
+#define BUTTON_NAVIFRAME_TITLE1_BG_MIN_INC 106 68
+#define BUTTON_NAVIFRAME_TITLE1_PADDING_MIN_INC 16 3
+#define BUTTON_NAVIFRAME_TITLE1_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_TITLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_NAVIFRAME_TITLE1_VISIBLE_ICON_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_TITLE1_ICONONLY_ICON_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_TITLE1_FONT_SIZE_INC 32
+
+#define BUTTON_NAVIFRAME_CENTER_BG_NORMAL_MIN_INC 12 74
+#define BUTTON_NAVIFRAME_CENTER_BG_NORMAL_BORDER_INC 5 5 5 5
+#define BUTTON_NAVIFRAME_CENTER_PADDING_MIN_MAX_INC 16 2
+#define BUTTON_NAVIFRAME_CENTER_ICON_RECT_VISIBLE_MIN_SIZE 36 36
+#define BUTTON_NAVIFRAME_CENTER_PADDING_AFTER_ICON_VISIBLE_MIN_INC 6 0
+#define BUTTON_NAVIFRAME_CENTER_PADDING_BEFORE_TEXT_DEFAULT_MIN_INC 6 0
+#define BUTTON_NAVIFRAME_CENTER_SWALLOW_VISIBLE_MIN_MAX_INC 36 36
+#define BUTTON_NAVIFRAME_CENTER_SWALLOW_ICONONLY_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_CENTER_TEXT_FONT_SIZE_INC 32
+#define BUTTON_NAVIFRAME_MULTILINE_TEXT_FONT_SIZE_INC 24
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC 120 72
+#define BUTTON_NAVIFRAME_MORE_BG_PRESSED_MIN_MAX_INC 120 72
+#define BUTTON_NAVIFRAME_MORE_BG_PRESSED_BORDER_INC 4 4 4 4
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC 56 56
+#define BUTTON_NAVIFRAME_MORE_BG_COLOR_INC 108 108 108 255
+
+#define BUTTON_TICKERNOTI_BG_MIN_INC 54 54
+#define BUTTON_TICKERNOTI_VISIBLE_BG_MIN_INC 62 34
+#define BUTTON_TICKERNOTI_ICONONLY_BG_MIN_INC 54 54
+#define BUTTON_TICKERNOTI_BG_BORDER_INC 5 5 5 5
+#define BUTTON_TICKERNOTI_PADDING_MIN_INC 5 5
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_VISIBLE_PADDING_ICON_TEXT_MIN_INC 8 0
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_FONT_SIZE_INC 28
+
+#define BUTTON_PICKER_TEXT_DEFAULT_COLOR_INC 249 249 249 255
+#define BUTTON_PICKER_TEXT_CLICKED_COLOR_INC 249 249 249 255
+#define BUTTON_PICKER_TEXT_DISABLED_COLOR_INC 106 106 106 255
+#define BUTTON_PICKER_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_BG_DEFAULT_MIN_INC 74 66
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_BG_DEFAULT_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_PADDING_MIN_INC 16 5
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_ICON_RECT_MIN_INC 0 56
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_PADDING_ICON_RECT_TEXT_MIN_INC 5 0
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_CONTENT_ICON_ONLY_MIN_INC 56 56
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_TEXT_VISIBLE_MIN_INC 96 56
+
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_BG_DEFAULT_MIN_MAX_INC 74 66
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_BG_DEFAULT_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_PADDING_MIN_INC 5 5
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_IMAGE_MIN_MAX_INC 32 32
+
+#define BUTTON_PICKER_BAR_DEFAULT_BG_DEFAULT_MIN_INC 74 66
+#define BUTTON_PICKER_BAR_DEFAULT_BG_DEFAULT_IMAGE_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_BAR_DEFAULT_PADDING_MIN_INC 5 5
+#define BUTTON_PICKER_BAR_DEFAULT_ICON_RECT_DEFAULT_MIN_INC 0 56
+#define BUTTON_PICKER_BAR_DEFAULT_PADDING_ICON_RECT_TEXT_MIN_INC 5 0
+#define BUTTON_PICKER_BAR_DEFAULT_CONTENT_ICONONLY_MIN_INC 56 56
+#define BUTTON_PICKER_BAR_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define BUTTON_PICKER_BAR_DEFAULT_TEXT_VISIBLE_MIN_INC 128 56
+
+#define BUTTON_COLORSELECTOR_BG_DEFAULT_MIN_INC 74 74
+#define BUTTON_COLORSELECTOR_BG_BORDER_INC 5 5 5 5
+#define BUTTON_COLORSELECTOR_IMAGE_MIN_MAX_INC 74 74
+
+#define BUTTON_DEFAULT_STYLE_BG_MIN_INC 28 74
+#define BUTTON_DEFAULT_STYLE_BG_BORDER_INC 5 5 5 5
+#define BUTTON_DEFAULT_STYLE_PADDING_MIN_INC 5 5
+#define BUTTON_DEFAULT_STYLE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_DEFAULT_STYLE_ICONONLY_ICON_MIN_INC 38 38
+#define BUTTON_DEFAULT_STYLE_TEXT_MIN_INC 144 38
+#define BUTTON_DEFAULT_STYLE_FONT_SIZE_INC 32
+
+#define CHECK_DELETE_TEXT_DELETE_NORMAL_COLOR_INC 205 2 5 255
+#define CHECK_DELETE_TEXT_DELETE_PRESS_COLOR_INC 255 255 255 255
+
+#define CHECK_DEFAULT_TEXT_FONT_SIZE_INC 32
+
+#define CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC 60 80
+#define CHECK_ONOFF_CHECK_IMAGE_BORDER_INC 5 5 5 5
+#define CHECK_ONOFF_ON_FONT_SIZE_INC 24
+#define CHECK_ONOFF_OFF_FONT_SIZE_INC 24
+
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 64
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 64
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 64
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 75
+#define CHECK_STYLE_FAVORITE_BG_NORMAL_MIN_MAX_INC 64 64
+
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 60
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 60
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 70
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 85
+#define CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC 60 60
+
+#define CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC 74 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC 124 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_BORDER_INC 8 0 5 5
+#define CHECK_STYLE_DELETE_BUTTON_TEXT_FONT_SIZE_INC 32
+
+#define INDEX_BG_NINEPATCH_INC 4 4 4 4
+#define INDEX_ITEM_WIDTH_INC 46
+#define INDEX_ITEM_HEIGHT_INC 33
+#define INDEX_LEVEL_PADDING_INC 70
+#define INDEX_1ST_LEVEL_POPUP_WIDTH_INC 202
+#define INDEX_2ND_LEVEL_POPUP_WIDTH_INC 202
+#define INDEX_POPUP_HEIGHT_INC 182
+#define INDEX_ROLLOVER_TEXT_SIZE_INC 26
+#define INDEX_POPUP_BG_NINEPATCH_INC 12 12 12 12
+#define INDEX_POPUP_TEXT_SIZE_INC 138
+#define INDEX_ROLLOVER_TEXT_COLOR_INC 147 183 201 255
+#define INDEX_ROLLOVER_ACTIVE_TEXT_COLOR_INC 0 175 207 255
+#define INDEX_POPUP_TEXT_COLOR_INC 0 175 207 255
+#define INDEX_SCROLL_BG_COLOR_INC 25 25 25 255
+#define INDEX_BOTTOM_LINE_COLOR_INC 45 48 48 255
+#define INDEX_LEFT_LINE_COLOR_INC 105 105 105 255
+
+#define INDEX_PAGECONTROL_IND_INC 52 52
+#define INDEX_PAGECONTROL_IND_MIN_INC 24 24
+#define INDEX_PAGECONTROL_FONT_SIZE_INC 28
+#define INDEX_PAGECONTROL_FONT_COLOR_INC 120 120 120
+
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 60
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 60
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 70
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 70
+#define RADIO_STYLE_DEFAULT_BG_MIN_MAX_INC 60 60
+#define RADIO_STYLE_DEFAULT_FONT_SIZE_INC 32
+
+#define PANES_STYLE_DEFAULT_MOVABLE_SIZE_INC 15
+#define PANES_STYLE_DEFAULT_MIDDLE_SIZE_INC 44
+#define PANES_STYLE_DEFAULT_FIXED_SIZE_INC 6
+
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_NORMAL_INC    144 144 144 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC   0 0 0 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC  0 0 0 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC  144 144 144 255
+#define SEGMENT_CONTROL_ITEM_1PX_LEFT_PADDING_COLOR_INC     81 81 81 255
+#define SEGMENT_CONTROL_ITEM_1PX_RIGHT_PADDING_COLOR_INC    46 46 46 255
+
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_NORMAL_INC    144 144 144 255
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_PRESSED_INC   0 0 0 255
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_SELECTED_INC  0 0 0 255
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_DISABLED_INC  144 144 144 255
+#define SEGMENT_CONTROL_BODY_ITEM_1PX_LEFT_PADDING_COLOR_INC           81 81 81 255
+#define SEGMENT_CONTROL_BODY_ITEM_1PX_RIGHT_PADDING_COLOR_INC          46 46 46 255
+
+#define SEGMENT_CONTROL_MULTILINE_TEXT_SIZE_INC 26
+#define SEGMENT_CONTROL_TEXT_SIZE_INC 28
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MIN_INC 12
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MAX_INC 28
+
+#define EDITFIELD_TITLE_SIZE_INC 32
+#define EDITFIELD_TITLE_COLOR_INC 168 168 168 255
+#define EDITFIELD_GUIDE_TEXT_COLOR_INC 70 70 70 255
+#define EDITFIELD_DEFAULT_ERASER_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_MINH_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINH_INC 70
+#define EDITFIELD_SEARCHBAR_ERASER_MINW_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_MINH_INC 38
+#define EDITFIELD_DEFAULT_MINH_INC 112
+#define EDITFIELD_TITLE_MINH_INC 128
+#define EDITFIELD_SEARCHBAR_MINH_INC 50
+#define EDITFIELD_DEFAULT_TOP1_SINGLE_INC 20
+#define EDITFIELD_DEFAULT_TOP1_MULTI_INC 56
+#define EDITFIELD_DEFAULT_TOP2_INC 8
+#define EDITFIELD_DEFAULT_LEFT1_INC 0
+#define EDITFIELD_DEFAULT_LEFT2_INC 0
+#define EDITFIELD_DEFAULT_LEFT3_INC 1
+#define EDITFIELD_DEFAULT_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_DEFAULT_RIGHT2_INC 0
+#define EDITFIELD_DEFAULT_BOTTOM1_SINGLE_INC 20
+#define EDITFIELD_DEFAULT_BOTTOM1_MULTI_INC 8
+#define EDITFIELD_DEFAULT_BOTTOM2_SINGLE_INC 32
+#define EDITFIELD_DEFAULT_BOTTOM2_MULTI_INC 12
+#define EDITFIELD_DEFAULT_BOTTOM3_SINGLE_INC 85
+#define EDITFIELD_DEFAULT_BOTTOM3_MULTI_INC 60
+#define EDITFIELD_SEARCHBAR_TOP1_SINGLE_INC 6
+#define EDITFIELD_SEARCHBAR_TOP1_MULTI_INC 10
+#define EDITFIELD_SEARCHBAR_TOP2_INC 10
+#define EDITFIELD_SEARCHBAR_LEFT1_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT2_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT3_INC 1
+#define EDITFIELD_SEARCHBAR_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_SEARCHBAR_RIGHT2_INC 5
+#define EDITFIELD_SEARCHBAR_BOTTOM1_SINGLE_INC 8
+#define EDITFIELD_SEARCHBAR_BOTTOM1_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM2_SINGLE_INC 16
+#define EDITFIELD_SEARCHBAR_BOTTOM2_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM3_SINGLE_INC 50
+#define EDITFIELD_SEARCHBAR_BOTTOM3_MULTI_INC 50
+
+#define BUTTON_TICKERNOTI_NORMAL_COLOR_INC        249 249 249 255
+#define BUTTON_TICKERNOTI_PRESSED_COLOR_INC       249 249 249 255
+#define BUTTON_TICKERNOTI_DISABLED_COLOR_INC      106 106 106 255
+
+#define CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC        249 249 249 255
+#define CHECK_DEFAULT_TEXT_PRESSED_COLOR_INC      249 249 249 255
+#define CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC          106 106 106 255
+
+#define RADIO_DEFAULT_TEXT_NORMAL_COLOR_INC        249 249 249 255
+#define RADIO_DEFAULT_TEXT_PRESSED_COLOR_INC      249 249 249 255
+#define RADIO_DEFAULT_TEXT_DISABLED_COLOR_INC          106 106 106 255
+
+#define CONTROLBAR_LARGE_HEIGHT_INC 122
+#define CONTROLBAR_SMALL_HEIGHT_INC 114
+#define CONTROLBAR_WIDTH_INC 122
+#define CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC 23 34 38 255
+#define CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC 58 68 74 255
+
+#define MULTIBUTTONENTRY_NORMAL_BUTTON_COLOR_INC 42 109 140 255
+#define MULTIBUTTONENTRY_PRESSED_BUTTON_COLOR_INC 0 140 210 255
+#define MULTIBUTTONENTRY_LABEL_TEXT_COLOR_INC 249 249 249 255
+#define MULTIBUTTONENTRY_TEXT_COLOR_INC "#FFFFFF"
+#define MULTIBUTTONENTRY_GUIDETEXT_COLOR_INC 70 70 70 255
+#define MULTIBUTTONENTRY_BUTTON_TEXT_COLOR_INC "#FFFFFF"
+#define MULTIBUTTONENTRY_WIDTH_PAD_INC     15
+#define MULTIBUTTONENTRY_HEIGHT_PAD_INC 20
+#define MULTIBUTTONENTRY_BUTTON_MAX_SIZE_INC 300
+#define MULTIBUTTONENTRY_BUTTON_BASE_SIZE_INC 76
+#define MULTIBUTTONENTRY_BUTTON_NINEPATCH_INC 28 28 0 0
+#define MULTIBUTTONENTRY_BUTTON_TOP_BUTTOM_PAD_INC 12
+#define MULTIBUTTONENTRY_BUTTON_LEFT_INNER_PAD_INC 15
+#define MULTIBUTTONENTRY_BUTTON_RIGHT_INNER_PAD_INC 15
+#define MULTIBUTTONENTRY_BUTTON_RIGHT_PAD_INC 15
+#define MULTIBUTTONENTRY_BUTTON_TEXT_SIZE_INC 38
+#define MULTIBUTTONENTRY_GUIDETEXT_SIZE_INC 44
+#define MULTIBUTTONENTRY_CLOSEDBUTTON_SIZE_INC 1
+#define MULTIBUTTONENTRY_CLOSEDBUTTON_AREA_HEIGHT_INC 60
+#define MULTIBUTTONENTRY_LABEL_RIGHT_PAD_INC 27
+#define MULTIBUTTONENTRY_LABEL_TEXT_SIZE_INC 42
+#define MULTIBUTTONENTRY_LABEL_MIN_HEIGHT_INC 75
+
+#define SEARCHBAR_BACKGROUND_COLOR_INC          36 36 36 255
+#define SEARCHBAR_CANCEL_BUTTON_W_INC 134
+#define SEARCHBAR_CANCEL_BUTTON_WITH_PADDING_W_INC 150
+#define SEARCHBAR_CANCEL_BUTTON_WITH_DOUBLE_PADDING_W_INC 166
+#define SEARCHBAR_TOP_PADDING_INC 18
+#define SEARCHBAR_BOTTOM_PADDING_INC 18
+#define SEARCHBAR_HEIGHT_INC 74
+#define SEARCHBAR_LEFT_PADDING_INC 16
+#define SEARCHBAR_RIGHT_PADDING_INC 16
+#define SEARCHBAR_INPUTFIELD_BORDER_INC 6 6 6 6
+#define SEARCHBAR_LEFT_ICON_PADDING_INC 16
+#define SEARCHBAR_ICON_MIN_W_INC 42
+#define SEARCHBAR_ICON_MIN_H_INC 42
+#define SEARCHBAR_LEFT_PADDING_SEARCHFIELD_INC 16
+#define SEARCHBAR_RIGHT_PADDING_SEARCHFIELD_INC 8
+#define SEARCHBAR_SEARCH_TEXTFIELD_H_INC 60
+#define SEARCHBAR_H_INC 107
+
+#define SELECTION_INFO_BACKGROUND_COLOR_INC          52 74 85 255
+#define SELECTION_INFO_TEXT_COLOR_INC                249 249 249 255
+#define SELECTION_INFO_MIN_VER_W_INC                 720
+#define SELECTION_INFO_MIN_HORZ_W_INC                1280
+#define SELECTION_INFO_VER_PADDING_INC               48
+#define SELECTION_INFO_LEFT_PADDING_INC              16
+#define SELECTION_INFO_TEXT_FONT_SIZE_INC            32
+#define SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC       150
+#define SELECTION_INFO_MIN_VER_BOTTOM_86_H_INC       186
+
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_MIN_INC 588 0
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_FONT_SIZE_INC 42
+
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MAX_INC 620 1120
+#define POPUP_BASE_DEFAULT_BG_DEFAULT_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_MIN_INC 620 64
+#define POPUP_BASE_DEFAULT_TITLE_VOLUMEBAR_MIN_INC 620 64
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_DEFAULT_PADDING_MIN_MAX_INC 14 0
+#define POPUP_BASE_DEFAULT_TITLE_ICON_DEFAULT_MIN_MAX_INC 62 62
+#define POPUP_BASE_DEFAULT_CONTENT_DEFAULT_MIN_MAX_INC 620 0
+#define POPUP_BASE_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 620 96
+#define POPUP_BASE_DEFAULT_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC 38
+
+#define POPUP_CONTENT_DEFAULT_PADDING_TOP_MIN_INC 0 22
+#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 16 0
+#define POPUP_CONTENT_DEFAULT_PADDING_RIGHT_MIN_INC 16 0
+#define POPUP_CONTENT_DEFAULT_PADDING_BOTTOM_MIN_INC 0 22
+#define POPUP_CONTENT_DEFAULT_CONTENT_DEFAULT_MIN_INC 588 0
+
+#define POPUP_BASE_VERTICAL_BUTTON_BASE_MIN_INC 620 0
+#define POPUP_BASE_VERTICAL_BUTTON_BASE_MAX_INC 620 1120
+#define POPUP_BASE_VERTICAL_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_DEFAULT_MIN_INC 620 64
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_IMAGE_BORDER_MIN_INC 3 3 3 3
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_ICON_MIN_MAX_INC 62 62
+#define POPUP_BASE_VERTICAL_BUTTON_CONTENT_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_VERTICAL_BUTTON_BUTTONAREA_DEFAULT_MIN_INC 620 286
+
+#define POPUP_BUTTON3_VERTICAL_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_TOP_MIN_INC 0 16
+#define POPUP_BUTTON_VERTICAL_ACTION_AREA_HEIGHT "286"
+#define POPUP_BUTTON3_VERTICAL_BUTTON_BUTTON_MIN_MAX_INC 356 74
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MIN_INC 0 16
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MAX_INC 9999 16
+
+#define POPUP_CONTENT_LISTSTYLE_PADDING_TOP_MIN_MAX_INC 3 3
+#define POPUP_CONTENT_LISTSTYLE_CONTENT_DEFAULT_MIN_INC 614 408
+#define POPUP_CONTENT_LISTSTYLE_PADDING_RIGHT_MIN_INC 3 0
+
+#define POPUP_CONTENT_MINSTYLE_CONTENT_DEFAULT_MIN_INC 614 0
+
+#define POPUP_BASE_CUSTOMSTYLE_BASE_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_CUSTOMSTYLE_BASE_DEFAULT_MAX_INC 620 1120
+#define POPUP_BASE_CUSTOMSTYLE_BG_DEFAULT_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_DEFAULT_MIN_INC 620 64
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_BOTTOM_LINE_MIN_INC 0 1
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_ICON_DEFAULT_MIN_MAX_INC 62 62
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_CUSTOMSTYLE_BUTTONAREA_BG_DEFAULT_MIN_INC 620 96
+#define POPUP_BASE_CUSTOMSTYLE_BUTTONAREA_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_CUSTOMSTYLE_TEXT_FONT_SIZE_INC 38
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_WIDTH_INC 620
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_HEIGHT_INC 146
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_SIDE_PADDING_INC 70
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_ENTRY_MIN_INC 90 90
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_CENTER_PADDING_MIN_INC 40
+
+#define POPUP_CONTENT_CUSTOMSTYLE_DEFAULT_MIN_INC 620 0
+#define POPUP_BUTTON_DEFAULT_ACTION_AREA_HEIGHT "96"
+#define POPUP_BUTTON1_DEFAULT_BUTTON1_DEFAULT_MIN_MAX_INC 402 74
+#define POPUP_BUTTON2_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 274 74
+#define POPUP_BUTTON2_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 10 74
+#define POPUP_BUTTON3_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 186 74
+#define POPUP_BUTTON3_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 10 74
+
+#define POPUP_BASE_VOLUMEBAR_STYLE_BASE_DEFAULT_MIN_INC 624 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_BASE_DEFAULT_MAX_INC 624 1120
+#define POPUP_BASE_VOLUMEBAR_STYLE_TITLE_DEFAULT_IMAGE_BORDER_INC 3 3 6 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_CONTENT_DEFAULT_MIN_INC 624 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_BUTTONAREA_BG_DEFAULT_MIN_INC 624 96
+
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_TOP_MIN_INC 0 31
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_LEFT_MIN_INC 40 0
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_RIGHT_MIN_INC 40 0
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_CONTENT_DEFAULT_MIN_INC 544 64
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_BOTTOM_MIN_INC 0 31
+
+#define PROGRESSBAR_DEFAULT_STYLE_TEXT_COLOR_INC          249 249 249 255
+#define PROGRESSBAR_DEFAULT_STYLE_STATUS_TEXT_COLOR_INC          249 249 249 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC          249 249 249 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC          224 224 224 255
+#define PROGRESSBAR_LIST_TITLE_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC      108 108 108 255
+#define PROGRESSBAR_LIST_PROCESS_WIDTH_INC 66
+#define PROGRESSBAR_LIST_PROCESS_HEIGHT_INC 66
+#define PROGRESSBAR_LIST_PROCESS_SMALL_INC 35
+#define PROGRESSBAR_LIST_PROCESS_SMALL_IMAGE "32x32"
+#define PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC 16
+#define PROGRESSBAR_LIST_PENDING_HEIGHT_INC 16
+
+#define NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC 81 78 76 255
+#define NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC   42
+#define NOCONTENT_MIDDLE_PADDING_INC         54
+#define NOCONTENT_BASE_SEARCH_PADDING_INC    40
+#define NOCONTENT_IMAGE_REL1_WIDTH_HEIGHT_INC 0.282 0.294
+#define NOCONTENT_IMAGE_REL2_WIDTH_HEIGHT_INC 0.718 0.54
+#define NOCONTENT_BG_COLOR_INC               0 0 0 255
+#define NOCONTENT_TEXT_STYLE_BG_MIN_INC       0 120
+
+#define ENTRY_TEXT_SIZE_INC 44
+#define ENTRY_TEXT_COLOR_INC "#FFFFFF"
+#define ENTRY_CURSOR_COLOR_INC 42 109 140 255
+#define ENTRY_PREEDIT_BACKGROUND_COLOR_INC "#FFFFFF"
+#define ENTRY_PREEDIT_TEXT_COLOR_INC "#000000"
+#define ENTRY_SELECTION_BG_COLOR 90 123 138 127
+#define ENTRY_SELECTION_BLOCK_HANDLE_MIN_SIZE 48 67
+#define MAGNIFIER_HEIGHT_FILL 182
+#define MAGNIFIER_HEIGHT_FIXED 108
+#define MAGNIFIER_WIDTH_FIXED 358
+
+#define ENTRY_BUBBLE_EX_PAD 15
+#define ENTRY_BUBBLE_EX_CALLERID_PAD 15
+#define ENTRY_BUBBLE_IX_PAD 22
+#define ENTRY_BUBBLE_Y_PAD 15
+#define ENTRY_BUBBLE_BOTTOM_PAD 22
+#define ENTRY_BUBBLE_CALLERID_PAD 16
+#define ENTRY_BUBBLE_CALLERID_WIDTH 60
+#define ENTRY_BUBBLE_CALLERID_HEIGHT 60
+#define ENTRY_BUBBLE_DATE_AREA_TEXT_SIZE_INC 26
+
+#define ENTRY_BUBBLE_RECEV_BG_BORDER_INC 1 20 13 20
+#define ENTRY_BUBBLE_SENT_BG_BORDER_INC 20 1 13 20
+#define ENTRY_BUBBLE_CALLERID_RELATIVE_INC 0.0 1.0
+#define ENTRY_BUBBLE_RECEV_CALLERID_REL1_INC 1.0 1.0
+#define ENTRY_BUBBLE_RECEV_CALLERID_REL2_INC 1.0 0.0
+#define ENTRY_BUBBLE_BOTTOMRIGHT_PAD 0
+#define ENTRY_BUBBLE_READ_TEXT_CALLID_REL1_X_INC "elm.rect.callerid.pad"
+#define ENTRY_BUBBLE_TEXT_CALLID_REL2_X_INC "elm.rect.callerid.pad"
+#define ENTRY_BUBBLE_TEXT_CALLID_REL2_Y_INC "elm.rect.subject.line"
+#define ENTRY_BUBBLE_STATUS_TIME_PAD_MIN_H_INC 6
+#define ENTRY_BUBBLE_STATUS_TIME_PAD_REL_INC -0.8 1.0
+#define ENTRY_BUBBLE_READ_STATUS_TIME_PAD_REL_INC 1.5 1.0
+#define ENTRY_BUBBLE_STATUS_TIME_SIZE_INC 28
+#define ENTRY_BUBBLE_SENT_STATUS_TIME_COLOR_INC 100 100 100 255
+#define ENTRY_BUBBLE_READ_STATUS_TIME_COLOR_INC 100 100 100 255
+#define ENTRY_BUBBLE_GROUPCHAT_SIZE_INC 36
+#define ENTRY_BUBBLE_GROUPCHAT_COLOR_INC 0 0 0 0
+#define ENTRY_BUBBLE_GROUPCHART_ENABLE_INC 0
+#define ENTRY_BUBBLE_READ_STATUS_REL_INC 0.0 0.0
+#define ENTRY_BUBBLE_READ_TIME_REL_INC 0.0 1.0
+
+#define PANES_DEFAULT_FIXED_SEPERATOR_NORMAL_COLOR_INC 118 118 118 255
+
+#define DAYSELECTOR_BACKGROUND_COLOR_INC       100 100 100 255
+#define DAYSELECTOR_WEEKDAY_COLOR_INC          249 249 249 255
+#define DAYSELECTOR_SATURDAY_COLOR_INC         0 168 231 255
+#define DAYSELECTOR_SUNDAY_COLOR_INC           240 20 2 255
+#define DAYSELECTOR_DAY_PRESSED_COLOR_INC      249 249 249 255
+#define DAYSELECTOR_DAY_FONT_SIZE_INC 32
+#define DAYSELECTOR_CHECK_WIDTH_INC 94
+#define DAYSELECTOR_CHECK_HEIGHT_INC 90
+
+#define SLIDER_INDICATOR_TEXT_COLOR_INC      42 109 140 255
+#define SLIDER_UNITS_TEXT_COLOR_INC          100 100 100 255
+#define SLIDER_UNITS_TEXT_SIZE_INC  30
+#define SLIDER_INDICATOR_TEXT_SIZE_INC  40
+#define SLIDER_BASE_HEIGHT_INC  16
+#define SLIDER_BASE_MIN_WIDTH_INC 375
+#define SLIDER_BASE_HEIGHT_INC  16
+#define SLIDER_SWALLOW_BAR_MIN_WIDTH_INC  58
+#define SLIDER_SWALLOW_BAR_HEIGHT_INC  58
+#define SLIDER_INDICATOR_MAX_WIDTH_INC 90
+#define SLIDER_INDICATOR_WIDTH_INC 58
+#define SLIDER_INDICATOR_HEIGHT_INC 58
+#define SLIDER_EBOOK_HEIGHT_INC  23
+#define SLIDER_EBOOK_UNITS_TEXT_COLOR_INC            100 100 100 255
+#define SLIDER_EBOOK_UNITS_TEXT_SIZE_INC  48
+#define SLIDER_EBOOK_INDICATOR_TEXT_COLOR_INC        42 109 140 255
+#define SLIDER_EBOOK_INDICATOR_DEFAULT_TEXT_SIZE_INC 36
+#define SLIDER_EBOOK_INDICATOR_DRAG_TEXT_SIZE_INC 48
+#define SLIDER_EBOOK_INDICATOR_WIDTH_INC 54
+#define SLIDER_EBOOK_INDICATOR_HEIGHT_INC 54
+#define SLIDER_DISABLER_PART_COLOR_INC   185 185 185 100
+
+#define TICKER_NOTI_DEFAULT_TEXT_COLOR_INC "#f4f4f4"
+#define TICKER_NOTI_DEFAULT_TEXT2_COLOR_INC "#c5c5c5"
+
+#define DATETIME_FIELD_MIN_SIZE_INC                60 60
+#define DATETIME_SEPARATOR_MIN_SIZE_INC            40 60
+#define DATETIME_TEXT_FONT_SIZE_INC                36
+#define DATETIME_TEXT_NORMAL_COLOR_INC             249 249 249 255
+#define DATETIME_SEPARATOR_TEXT_COLOR_INC          220 220 220 255
+#define DATETIME_TEXT_SELECTED_COLOR_INC           105 151 173 255
+
+#define COLORSELECTOR_MIN_W_INC 624
+#define COLORSELECTOR_MIN_H_INC 336
+#define COLORSELECTOR_MAX_W_INC 1014
+#define COLORSELECTOR_COLORBAR_IMAGE0_BORDER 13 13 10 3
+#define COLORSELECTOR_COLORBAR_IMAGE1_BORDER 4 4 3 3
+#define COLORSELECTOR_COLORBAR_IMAGE2_BORDER 13 13 3 15
+#define COLORSELECTOR_COLORBAR_HEIGHT 112
+#define COLORSELECTOR_COLORBAR_LEFT_PADDING 136
+#define COLORSELECTOR_COLORBAR_RIGHT_PADDING 136
+#define COLORSELECTOR_BUTTON_TOP_PADDING 19
+#define COLORSELECTOR_ARROW_BG_LEFT_PADDING 133
+#define COLORSELECTOR_ARROW_BG_RIGHT_PADDING 133
+#define COLORSELECTOR_ARROW_MIN_WIDTH 16
+#define COLORSELECTOR_ARROW_MIN_HEIGHT 80
+#define COLORSELECTOR_ARROW_REL1_OFFSET 0 0
+#define COLORSELECTOR_ARROW_REL2_OFFSET 0 0
+#define COLORSELECTOR_DRAGGABLE_EVENT_AREA 80 80
+#define COLORSELECTOR_BUTTON_LEFT_PADDING 42
+#define COLORSELECTOR_BUTTON_RIGHT_PADDING 42
+#define COLORSELECTOR_BUTTON_WIDTH 74
+#define COLORSELECTOR_BUTTON_HEIGHT 74
+#define COLORSELECTOR_BUTTON_BORDER 6 6 6 6
+#define COLORSELECTOR_PADDING_COLOR_INC 68 68 68 255
+
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_WIDTH_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_HEIGHT_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_WIDTH_INC 84
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_HEIGHT_INC 84
+#define COLORSELECTOR_PORTRAIT_HOR_PAD_INC "50"
+#define COLORSELECTOR_PORTRAIT_VER_PAD_INC "26"
+#define COLORSELECTOR_LANDSCAPE_HOR_PAD_INC "36"
+#define COLORSELECTOR_LANDSCAPE_VER_PAD_INC "0"
+#define COLORSELECTOR_PALETTE_BORDER_INC 14 14 14 14
+
+#define CALENDAR_DAY_FONT_SIZE_INC 24
+#define CALENDAR_DATE_FONT_SIZE_INC 32
+#define CALENDAR_MONTH_FONT_SIZE_INC 38
+#define CALENDAR_MONTH_FONT_COLOR_INC 249 249 249 255
+#define CALENDAR_SATURDAY_FONT_COLOR_INC 47 120 220 255
+#define CALENDAR_SUNDAY_FONT_COLOR_INC 226 20 20 255
+#define CALENDAR_WEEKDAY_FONT_COLOR_INC 249 249 249 255
+#define CALENDAR_SELECTED_DATE_FONT_COLOR_INC 255 255 255 255
+#define CALENDAR_SEPERATOR_FONT_COLOR_INC 108 108 108 255
+#define CALENDAR_BACKGROUND_COLOR_INC 89 89 89 255
+#define CALENDAR_BUTTON_HEIGHT_INC 66
+#define CALENDAR_BUTTON_WIDTH_INC 74
+#define CALENDAR_ARROW_WIDTH_INC 30
+#define CALENDAR_ARROW_HEIGHT_INC 36
+#define CALENDAR_BASE_MIN_WIDTH_INC 692
+#define CALENDAR_BASE_MIN_HEIGHT_INC 420
+#define CALENDAR_HEADER_MIN_WIDTH_INC 98
+#define CALENDAR_HEADER_MIN_HEIGHT_INC 90
+
+#define CTXPOPUP_ENTRY_CENTER_IMAGE_BORDER 12 12 9 9
+#define CTXPOPUP_ENTRY_IMAGE_BORDER_WIDTH 12
+#define CTXPOPUP_ENTRY_ITEM_TEXT_COLOR   249 249 249 255
+#define CTXPOPUP_ENTRY_ITEM_LEFT_SEPARATOR_COLOR 68 68 68 255
+#define CTXPOPUP_ENTRY_ITEM_RIGHT_SEPARATOR_COLOR 0 0 0 255
+#define CTXPOPUP_ENTRY_SEPARATOR_WIDTH 1
+#define CTXPOPUP_ENTRY_SEPARATOR_HEIGHT 50
+#define CTXPOPUP_ENTRY_ITEM_HEIGHT 74
+#define CTXPOPUP_ENTRY_ITEM_PADDING_WIDTH 14
+#define CTXPOPUP_ENTRY_ITEM_FONT_SIZE 28
+#define CTXPOPUP_ENTRY_ICON_SIZE 58
+#define CTXPOPUP_ENTRY_ITEM_WIDTH_MAX 240
+#define CTXPOPUP_ENTRY_LIST_SHADOW_PADDING 3
+#define CTXPOPUP_ENTRY_ITEM_DISABLED_COLOR 200 200 200 127
+#define CTXPOPUP_ENTRY_ARROW_SIZE_HEIGHT 18
+#define CTXPOPUP_ENTRY_ARROW_SIZE_WIDTH 29
+
+#define TICKERNOTI_DEFAULT_BG_MIN_HEIGHT_INC 100
+#define TICKERNOTI_DEFAULT_BG_BOTTOM_MIN_HEIGHT_INC 8
+#define TICKERNOTI_DEFAULT_BG_BORDER_INC 0 0 0 0
+#define TICKERNOTI_DEFAULT_BG_PADDING_LEFT_TOP_INC 16 18
+#define TICKERNOTI_DEFAULT_BG_PADDING_RIGHT_BOTTOM_INC 16 18
+#define TICKERNOTI_DEFAULT_PADDING_AFTER_ICON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_MIN_INC 0 60
+#define TICKERNOTI_DEFAULT_BUTTON_MIN_INC 90 54
+#define TICKERNOTI_DEFAULT_BUTTON_MAX_INC 90 54
+#define TICKERNOTI_DEFAULT_ICON_MIN_INC 64 64
+#define TICKERNOTI_DEFAULT_PADDING_BEFORE_BUTTON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define TICKERNOTI_DEFAULT_TEXT2_FONT_SIZE_INC 28
+#define TICKERNOTI_INFO_BG_MIN_HEIGHT_INC 50
+#define TICKERNOTI_INFO_BG_PADDING_LEFT_TOP_INC 8 5
+#define TICKERNOTI_INFO_BG_PADDING_RIGHT_BOTTOM_INC 8 5
+#define TICKERNOTI_BG_PADDING_AFTER_ICON_INC 15 0
+#define TICKERNOTI_INFO_TEXT_FONT_SIZE_INC 28
+
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER 2 2 2 2
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE_BORDER 2 2 2 2
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC 10 80
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC 10 99999
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC 80 10
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 10
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIN_SIZE_INC 48 214
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIN_SIZE_INC 214 48
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIDDLE_MIN_SIZE_INC 48 26
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIDDLE_MIN_SIZE_INC 26 48
+#define SCROLLER_HANDLER_SCROLLBAR_PADDING_INC 10
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_BOTTOM_BORDER 5 5 0 5
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_RIGHT_BORDER 0 5 5 5
+
+#define TOOLBAR_ITEM_SEPARATOR_LEFT_COLOR_INC 53 53 53 255
+#define TOOLBAR_ITEM_SEPARATOR_MIDDLE_COLOR_INC 0 0 0 255
+#define TOOLBAR_ITEM_SEPARATOR_RIGHT_COLOR_INC 25 25 25 255
+#define TOOLBAR_ITEM_BG_REL1_OFFSET_INC 4 4
+#define TOOLBAR_ITEM_BG_REL2_OFFSET_INC -5 -5
+#define TOOLBAR_ITEM_BG_SELECTED_BORDER_INC 3 3 3 3
+#define TABBAR_ITEM_BG_DEFAULT_BORDER_INC 9 9 9 9
+#define TABBAR_ITEM_BG_DEFAULT_VISIBLE_INC 0
+#define TABBAR_ITEM_BG_DEFAULT_COLOR_INC 255 255 255 0
+
+#define GENLIST_SIZE_150_INC 150
diff --git a/data/edc/theme/originals/white-hd-inc.edc b/data/edc/theme/originals/white-hd-inc.edc
new file mode 100755 (executable)
index 0000000..474ff6a
--- /dev/null
@@ -0,0 +1,1294 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#define BG_DEFAULT_COLOR_INC 249 249 249 255
+#define BG_EDIT_MODE_COLOR_INC 249 249 249 255
+#define BG_GROUP_LIST_COLOR_INC 249 249 249 255
+#define BG_TRANSPARENT_COLOR_INC 0 0 0 0
+
+#define LAYOUT_BG_COLOR_INC 249 249 249 255
+#define LAYOUT_EDIT_MODE_BG_COLOR_INC 249 249 249 255
+#define LAYOUT_GROUP_LIST_BG_COLOR_INC 249 249 249 255
+#define LAYOUT_INDICATOR_HEIGHT_INC 50
+#define LAYOUT_INDICATOR_COLOR_INC 0 0 0 255
+
+#define NAVIFRAME_TITLE_H_INC 108
+#define NAVIFRAME_SEGMENT_TITLE_H_INC 126
+#define NAVIFRAME_OH_OPENED_H_INC 114
+#define NAVIFRAME_OH_CONTENT_H_INC 72
+#define NAVIFRAME_OH_PADDING_INC 16
+#define NAVIFRAME_OH_SHADOW_INC 10
+#define NAVIFRAME_OH_ARROW_SIZE_INC 28 24
+#define NAVIFRAME_OH_OPENED_DOUBLE_H_INC 202
+#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 120 72
+#define NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 144
+#define NAVIFRAME_TITLE_SEGMENT_H_INC 62
+#define NAVIFRAME_TITLE_SEGMENT_FONT_SIZE_INC 38
+#define NAVIFRAME_TITLE_SEGMENT_TEXT_H_INC 54
+#define NAVIFRAME_TITLE_FONT_SIZE_INC 52
+#define NAVIFRAME_ICON_SIZE_INC 32 32
+#define NAVIFRAME_PADDING_INC 16 0
+#define NAVIFRAME_ICON_PADDING_INC 64 0
+#define NAVIFRAME_TITLE_TEXT_COLOR_INC 249 249 249 255
+#define NAVIFRAME_SUBTITLE_TEXT_COLOR_INC 249 249 249 255
+#define NAVIFRAME_OH_BORDER_INC 1 1 2 12
+
+#define PROGRESSBAR_TITLE_FONT_SIZE_INC 28
+#define PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC 20
+
+#define POPUP_DEFAULT_TITLE_TEXT_COLOR_INC 249 249 249 255
+#define POPUP_DEFAULT_DESCRIPTION_TEXT_COLOR_INC "#000000"
+#define POPUP_DIM_BG_COLOR_INC 0 0 0 175
+#define POPUP_DIM_BG_CLICKED_COLOR_INC 0 0 0 175
+#define POPUP_DIM_BG_TRANS_COLOR_INC 0 0 0 0
+#define POPUP_DIM_BG_CLICKED_TRANS_COLOR_INC 0 0 0 50
+#define POPUP_CUSTOMSTYLE_TITLE_BOTTOM_LINE_COLOR_INC 70 82 102 255
+#define POPUP_CUSTOMSTYLE_TITLE_TEXT_COLOR_INC 249 249 249 255
+
+#define CTXPOPUP_BUBBLE_BG_IMAGE "00_popup_bubble_bg_shadow.png"
+#define CTXPOPUP_BG_IMAGE "00_popup_bubble_bg_ctx.png"
+#define CTXPOPUP_BUBBLE_BG_IMAGE_BORDER 13 13 13 13
+#define CTXPOPUP_BG_IMAGE_BORDER 9 9 9 9
+#define CTXPOPUP_BG_COLOR_INC 224 224 224 255
+#define CTXPOPUP_BG_PRESS_COLOR_INC 42 137 194 255
+#define CTXPOPUP_MAIN_TEXT_UNREAD_COLOR_INC 19 58 83 255
+#define CTXPOPUP_MAIN_TEXT_PRESS_COLOR_INC 249 249 249 255
+#define CTXPOPUP_SEPARATOR_COLOR_INC 153 176 195 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_COLOR_INC 179 179 179 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MIN_SIZE_INC 1 74
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MAX_SIZE_INC 1 74
+#define CTXPOPUP_VERTICAL_SEPARATOR_MIN_SIZE_INC 388 1
+#define CTXPOPUP_VERTICAL_SEPARATOR_MAX_SIZE_INC 388 1
+#define CTXPOPUP_TP_BG_COLOR_INC 7 180 211 255
+#define CTXPOPUP_ITEM_TEXT_SIZE_INC 44
+#define CTXPOPUP_ITEM_MAIN_TEXT_SIZE_INC 32
+#define CTXPOPUP_ITEM_HEIGHT_INC 110
+#define CTXPOPUP_ITEM_ICON_INC 160 110
+#define CTXPOPUP_ICON_WIDTH_INC 80
+#define CTXPOPUP_ICON_HEIGHT_INC 80
+#define CTXPOPUP_ARROW_SIZE_INC 48 48
+#define CTXPOPUP_CONTENT_WIDTH_MAX_INC 630
+#define CTXPOPUP_ITEM_PADDING_INC 25
+#define CTXPOPUP_IE_ARROW_SIZE_INC 52
+#define CTXPOPUP_IE_FONT_SIZE_INC 40
+#define CTXPOPUP_IE_ITEM_PADDING_INC 22
+#define CTXPOPUP_IE_ITEM_HEIGHT_INC 75
+#define CTXPOPUP_IE_CONTENT_WIDTH_MAX_INC 720
+#define CTXPOPUP_IE_ICON_WIDTH_INC 60
+#define CTXPOPUP_IE_ICON_HEIGHT_INC 60
+#define CTXPOPUP_TP_ARROW_SIZE_INC 30
+#define CTXPOPUP_TP_HEIGHT_INC 106
+
+#define DISKSELECTOR_DF_FONT_COLOR_INC 82 203 224 255
+#define DISKSELECTOR_DF_FONT_MOUSE_DOWN_COLOR_INC 249 249 249 255
+#define DISKSELECTOR_DF_ITEM_MIN_SIZE_INC 70 106;
+#define DISKSELECTOR_DF_FONT_SIZE_INC 44
+#define DISKSELECTOR_DF_DATA_MIN_HEIGHT_INC "106"
+
+#define LABEL_TEXT_BLOCK_STYLE_COLOR_INC "#FFFFFF"
+#define LABEL_FONT_SIZE_INC 36
+#define LABEL_MIN_FONT_SIZE_INC 27
+#define LABEL_MAX_FONT_SIZE_INC 90
+
+#define GENGRID_FONT_STYLE_18_INC "26"
+#define GENGRID_PART_BG_COLOR_INC 0 0 0 0
+#define GENGRID_PART_ITEM_BG_COLOR_INC 239 239 239 255
+#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 128
+#define GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC "#F9F9F9"
+
+#define GENLIST_DIALOGUE_SEPARATOR_DEFAULT_HEIGHT 40
+
+// Group Title
+#define GENLIST_GT_PAD_T_H 36
+#define GENLIST_GT_PAD_B_H 10
+#define GENLIST_GT_PAD_M_H 36
+#define GENLIST_GT_TEXT_H  36
+#define GENLIST_GT_PAD_L_W 16
+#define GENLIST_GT_PAD_R_W 36
+#define GENLIST_GT_PAD_M_W 16
+#define GENLIST_GT_H       GENLIST_GT_PAD_T_H + GENLIST_GT_PAD_B_H + GENLIST_GT_TEXT_H
+
+#define GENLIST_HEIGHT_1_INC 1
+#define GENLIST_HEIGHT_16_INC 16
+#define GENLIST_HEIGHT_33_INC 33
+#define GENLIST_HEIGHT_49_INC 49
+#define GENLIST_HEIGHT_62_INC 62
+#define GENLIST_HEIGHT_65_INC 65
+#define GENLIST_HEIGHT_73_INC 73
+#define GENLIST_HEIGHT_77_INC 77
+#define GENLIST_HEIGHT_89_INC 89
+#define GENLIST_HEIGHT_93_INC 93
+#define GENLIST_HEIGHT_97_INC 97
+#define GENLIST_HEIGHT_113_INC 113
+#define GENLIST_HEIGHT_129_INC 129
+#define GENLIST_HEIGHT_161_INC 161
+#define GENLIST_HEIGHT_163_INC 163
+#define GENLIST_HEIGHT_164_INC 164
+#define GENLIST_HEIGHT_165_INC 165
+#define GENLIST_HEIGHT_177_INC 177
+#define GENLIST_HEIGHT_182_INC 182
+#define GENLIST_HEIGHT_190_INC 190
+#define GENLIST_HEIGHT_207_INC 207
+#define GENLIST_HEIGHT_260_INC 260
+#define GENLIST_HEIGHT_291_INC 291
+#define GENLIST_HEIGHT_454_INC 454
+#define GENLIST_HEIGHT_566_INC 566
+
+#define GENLIST_PADDING_4_INC 4
+#define GENLIST_PADDING_5_INC 5
+#define GENLIST_PADDING_6_INC 6
+#define GENLIST_PADDING_8_INC 8
+#define GENLIST_PADDING_10_INC 10
+#define GENLIST_PADDING_11_INC 11
+#define GENLIST_PADDING_12_INC 12
+#define GENLIST_PADDING_13_INC 13
+#define GENLIST_PADDING_14_INC 14
+#define GENLIST_PADDING_16_INC 16
+#define GENLIST_PADDING_18_INC 18
+#define GENLIST_PADDING_21_INC 21
+#define GENLIST_PADDING_22_INC 22
+#define GENLIST_PADDING_24_INC 24
+#define GENLIST_PADDING_27_INC 27
+#define GENLIST_PADDING_32_INC 32
+#define GENLIST_PADDING_34_INC 34
+#define GENLIST_PADDING_46_INC 46
+#define GENLIST_PADDING_48_INC 48
+#define GENLIST_PADDING_64_INC 64
+#define GENLIST_PADDING_74_INC 74
+#define GENLIST_PADDING_88_INC 88
+#define GENLIST_PADDING_124_INC 124
+
+#define GENLIST_FONT_27_INC 27
+#define GENLIST_FONT_28_INC 28
+#define GENLIST_FONT_30_INC 30
+#define GENLIST_FONT_32_INC 32
+#define GENLIST_FONT_STYLE_32_INC "32"
+#define GENLIST_FONT_36_INC 36
+#define GENLIST_FONT_STYLE_36_INC "36"
+#define GENLIST_FONT_40_INC 40
+#define GENLIST_FONT_STYLE_40_INC "40"
+#define GENLIST_FONT_42_INC 42
+#define GENLIST_FONT_STYLE_42_INC "42"
+#define GENLIST_FONT_44_INC 44
+#define GENLIST_FONT_STYLE_44_INC "44"
+#define GENLIST_FONT_48_INC 48
+#define GENLIST_FONT_STYLE_48_INC "48"
+
+#define GENLIST_SIZE_4_INC 4
+#define GENLIST_SIZE_6_INC 6
+#define GENLIST_SIZE_8_INC 8
+#define GENLIST_SIZE_10_INC 10
+#define GENLIST_SIZE_13_INC 13
+#define GENLIST_SIZE_16_INC 16
+#define GENLIST_SIZE_18_INC 18
+#define GENLIST_SIZE_21_INC 21
+#define GENLIST_SIZE_28_INC 28
+#define GENLIST_ICON_SMALL_SIZE 32
+#define GENLIST_SIZE_35_INC 35
+#define GENLIST_SIZE_38_INC 38
+#define GENLIST_SIZE_40_INC 40
+#define GENLIST_SIZE_42_INC 42
+#define GENLIST_SIZE_44_INC 44
+#define GENLIST_SIZE_45_INC 45
+#define GENLIST_SIZE_46_INC 46
+#define GENLIST_SIZE_48_INC 48
+#define GENLIST_SIZE_54_INC 54
+#define GENLIST_SIZE_56_INC 56
+#define GENLIST_SIZE_57_INC 57
+#define GENLIST_SIZE_60_INC 60
+#define GENLIST_SIZE_61_INC 61
+#define GENLIST_SIZE_SLIDE_60_INC 60
+#define GENLIST_SIZE_ICON_BIG 64
+#define GENLIST_SIZE_66_INC 66
+#define GENLIST_SIZE_74_INC 74
+#define GENLIST_SIZE_SLIDE_74_INC 74
+#define GENLIST_SIZE_80_INC 80
+#define GENLIST_SIZE_88_INC 88
+#define GENLIST_SIZE_90_INC 90
+#define GENLIST_SIZE_96_INC 96
+#define GENLIST_SIZE_112_INC 112
+#define GENLIST_SIZE_116_INC 116
+#define GENLIST_SIZE_128_INC 128
+#define GENLIST_SIZE_133_INC 133
+#define GENLIST_SIZE_141_INC 141
+#define GENLIST_SIZE_144_INC 144
+#define GENLIST_SIZE_154_INC 154
+#define GENLIST_SIZE_160_INC 160
+#define GENLIST_SIZE_163_INC 163
+#define GENLIST_SIZE_168_INC 168
+#define GENLIST_SIZE_174_INC 174
+#define GENLIST_SIZE_SLIDE_165_INC 165
+#define GENLIST_SIZE_176_INC 176
+#define GENLIST_SIZE_177_INC 177
+#define GENLIST_SIZE_192_INC 192
+#define GENLIST_SIZE_195_INC 195
+#define GENLIST_SIZE_197_INC 197
+#define GENLIST_SIZE_206_INC 206
+#define GENLIST_SIZE_234_INC 234
+#define GENLIST_SIZE_235_INC 235
+#define GENLIST_SIZE_SLIDE_220_INC 220
+#define GENLIST_SIZE_304_INC 304
+#define GENLIST_SIZE_390_INC 390
+#define GENLIST_SIZE_448_INC 448
+#define GENLIST_SIZE_560_INC 560
+#define GENLIST_SIZE_576_INC 576
+#define GENLIST_SIZE_672_INC 672
+
+#define GENLIST_TREESIZE_16_INC 16
+#define GENLIST_TREESIZE_20_INC 20
+#define GENLIST_TREESIZE_DEFAULT 32
+
+// new
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_READ_COLOR_INC 124 124 124 255
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC 149 149 149 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_SETTINGS_COLOR_INC 42 137 194 204
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_COLOR_INC 149 149 149 255
+#define GENLIST_PART_FONT_INDEX_LIST_COLOR_INC 0 94 160 255
+#define GENLIST_PART_FONT_EDITFIELD_TEXT_COLOR_INC 158 187 205 255
+#define GENLIST_PART_FONT_EDITFIELD_TEXT_CURSOR_COLOR_INC 42 137 194 255
+#define GENLIST_PART_FONT_MULTILINE_TEXT_COLOR_INC 149 149 149 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_COLOR_INC 124 124 124 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_COLOR_INC 124 124 124 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_3_COLOR_INC 124 124 124 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_3_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONVERTOR_STYLE_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONVERTOR_STYLE_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_UNREAD_EMAIL_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_CONTENTS_TEXT_COLOR_INC 210 210 210 255
+#define GENLIST_PART_FONT_NAME_TEXT_COLOR_INC 128 128 128 255
+#define GENLIST_PART_FONT_NAME_TEXT_DIM_COLOR_INC 42 137 194 255
+#define GENLIST_PART_FONT_BUBBLE_READ_MESSAGE_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_TIME_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_SENT_MESSAGE_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_SOS_MESSAGE_COLOR_INC 192 23 23 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_DATE_COLOR_INC 128 128 128 255
+#define GENLIST_PART_FONT_BUBBLE_LINK_MESSAGE_COLOR_INC 34 129 157 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_FAILED_COLOR_INC 211 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_READ_MESSAGE_NAME_COLOR_INC 57 166 215 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_HELP_COLOR_INC 146 146 146 255
+#define GENLIST_PART_FONT_LIST_BUBBLE_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_LIST_MESSAGE_TEXT_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC 118 118 118 255
+
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#000000FF"
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_STYLE_COLOR_INC "#000000FF"
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC "#959595FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_STYLE_COLOR_INC "#7C7C7CFF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#000000FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_STYLE_COLOR_INC "#7C7C7CFF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC "#7C7C7CFF"
+
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 110 // alpha was 64 [???]
+#define GENLIST_PART_BG_COLOR_INC 236 240 242 255
+#define GENLIST_PART_LIST_BG_COLOR_INC 249 249 249 255
+#define GENLIST_PART_LIST_LINE_COLOR_INC 169 169 169 255
+#define GENLIST_PART_LIST_PRESS_COLOR_INC 42 137 194 255
+#define GENLIST_PART_TEXT_PRESS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_EXPANDABLE_2ND_DEPTH_BG_COLOR_INC 215 225 232 255
+#define GENLIST_PART_EXPANDABLE_3ND_DEPTH_BG_COLOR_INC 215 225 232 255
+#define GENLIST_PART_EDIT_SELECT_ALL_BG_COLOR_INC 215 225 232 255
+#define GENLIST_PART_EDIT_REORDER_BG_COLOR_INC 215 225 232 255
+#define GENLIST_PART_EDIT_1PIXEL_LINE_COLOR_INC 169 169 169 255
+#define GENLIST_PART_BUBBLE_DATE_BG_COLOR_INC 56 69 90 255
+#define GENLIST_PART_BUBBLE_1PIXEL_LINE_COLOR_INC 153 153 153 255
+//
+// Remove this, use GENLIST_PART_BASE_EVENT_OFF instead
+#define GENLIST_PART_INDEX_LIST_BASE_EVENT_INC \
+         part { name: "base_event";\
+            type: RECT;\
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            }\
+         }
+#define GENLIST_PART_INDEX_LIST_BASE_IMAGE_INC \
+         part { name: "base_image";\
+            repeat_events: 1;\
+            description { state: "default" 0.0;\
+               rel1.to: "rect";\
+               rel2.to: "rect";\
+               image {\
+                  normal: "00_index list_bg.png";\
+               }\
+            }\
+         }
+
+#define GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#3F8DAD"
+
+#define GENLIST_DIALOGUE_GT_TEXT_COLOR 102 102 102 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_COLOR_INC 100 100 100 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_DIM_COLOR_INC 7 180 211 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_MAIN_COLOR_INC 0 0 0 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_SUB_COLOR_INC 124 124 124 255
+#define GENLIST_DIALOGUE_FONT_APPS_NAME_COLOR_INC 0 0 0 255
+#define GENLIST_DIALOGUE_FONT_APPS_INC_COLOR_INC 124 124 124 255
+#define GENLIST_DIALOGUE_FONT_APPS_RATING_COLOR_INC 124 124 124 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_ORIGINAL_COLOR_INC 7 180 211 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_SALE_COLOR_INC 221 134 21 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_FREE_COLOR_INC 7 180 211 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_TITLE_COLOR_INC 124 124 124 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_INPUT_TEXT_COLOR_INC 0 0 0 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_WORD_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_PRONUNCIATION_COLOR_INC 7 180 211 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_NATION_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_01_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_02_COLOR_INC 146 146 146 255
+
+#define GENLIST_DIALOGUE_GROUP_BG_COLOR_INC 236 240 242 255
+#define GENLIST_DIALOGUE_GROUP_LIST_BG_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC 108 168 199 255
+#define GENLIST_DIALOGUE_1PIXEL_LINE_COLOR_INC 142 154 163 255
+#define GENLIST_DIALOGUE_ICON_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_PHOTO_ID_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_BG_IMAGE_COLOR_INC 236 240 242 255
+#define GENLIST_DIALOGUE_LIST_BG_IMAGE_COLOR_INC 232 232 223 255
+
+#define GENLIST_SWEEP_BG_COLOR_INC 236 240 242 255
+
+#define GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_UNREAD 0 0 0 255
+#define GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_READ 158 158 158 255
+#define GENLIST_TEXT_COLOR_LIST_MAIN_TEXT_FOCUS 249 249 249 255
+
+#define GENLIST_TEXT_COLOR_LIST_SUB_TEXT_DEFAULT 100 100 100 255
+#define GENLIST_TEXT_COLOR_LIST_SUB_TEXT_SETTINGS 0 140 210 255
+#define GENLIST_TEXT_COLOR_LIST_SUB_TEXT_FOCUS 249 249 249 255
+
+//old
+#if 0
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 110 // alpha was 64 [???]
+#define GENLIST_PART_BG_COLOR_INC 0 0 0 255
+#define GENLIST_PART_BG_SELECTED_COLOR_INC 60 100 155 255
+#define GENLIST_PART_BG_UNSELECTED_COLOR_INC 60 100 155 0
+#define GENLIST_PART_DIALOGUE_BG_COLOR_INC 15 15 15 255
+#define GENLIST_PART_SELECT_ALL_BG_COLOR_INC 239 237 230 255
+#define GENLIST_PART_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_PART_TEXT_SELECTED_COLOR_INC 249 249 249 255
+#define GENLIST_PART_SUB_TEXT_COLOR_INC 100 100 100 255
+#define GENLIST_PART_SUB_TEXT_SETTINGS_COLOR_INC 7 180 211 255
+#define GENLIST_PART_MULTILINE_TEXT_COLOR_INC 100 100 100 255
+#define GENLIST_PART_MULTILINE_TITLE_COLOR_INC 249 249 249 255
+#define GENLIST_PART_MULTILINE_TITLE_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_MULTILINE_TITLE_STYLE_SELECTED_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_MULTILINE_TEXT_STYLE_COLOR_INC "#646464FF"
+#define GENLIST_PART_MULTILINE_SUB_TEXT_STYLE_COLOR_INC "#a8a8a8"
+#define GENLIST_PART_MULTILINE_TEXT_STYLE_SELECTED_COLOR_INC "#646464FF"
+#define GENLIST_PART_MULTILINE_HELP_STYLE_COLOR_INC "#b4b4b4"
+#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#3F8DAD"
+#define GENLIST_PART_SLIDE_TEXT_COLOR_INC 255 255 255 255
+#define GENLIST_PART_BOTTOM_LINE_INC 87 87 87 255
+#define GENLIST_PART_DIALOGUE_SUBTITLE_TEXT_COLOR_INC 168 168 168 255
+#define GENLIST_PART_DIALOGUE_INDICATOR_BG_COLOR_INC 87 87 87 255
+#define GENLIST_PART_EMAIL_READ_TEXT_COLOR_INC 108 108 108 255
+#define GENLIST_PART_EMAIL_UNREAD_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_PART_EMAIL_URGENCY_UNREAD_TEXT_COLOR_INC 207 37 37 255
+#define GENLIST_PART_EMAIL_URGENCY_READ_TEXT_COLOR_INC 171 82 82 255
+#endif
+#define GENLIST_PART_EMAIL_MSGCOUNT_TEXT_COLOR_INC 255 255 255 255
+#define GENLIST_PART_TEXTBLOCK_STYLE_COLOR_INC "#a8a8a8FF"
+#define GENLIST_PART_TEXTBLOCK_STYLE_SELECTED_COLOR_INC "#646464"
+#define GENLIST_PART_TEXTBLOCK_READ_STYLE_COLOR_INC "#9E9E9EFF"
+#define GENLIST_PART_TEXTBLOCK_UNREAD_STYLE_COLOR_INC "#d2d2d2FF"
+#define GENLIST_PART_TEXTBLOCK_SUB_STYLE_COLOR_INC "#a8a8a8"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_READ_STYLE_COLOR_INC "#AB5252"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_UNREAD_STYLE_COLOR_INC "#CF2525"
+#if 0
+#define GENLIST_GROUP_PART_TEXT_COLOR_INC 131 154 192 255
+#define GENLIST_GROUP_PART_BASE_EVENT_INC \
+         part { name: "base_event";\
+            type: RECT;\
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            }\
+         }
+#define GENLIST_GROUP_PART_BASE_IMAGE_INC
+#define GENLIST_GROUP_BG_COLOR_DEFAULT_INC 17 23 27 255
+#define GENLIST_GROUP_BG_COLOR_ALPHA_OFF_INC 17 23 27 255  // [???]
+#define GENLIST_GROUP_LEFT_BG_COLOR_INC 15 15 15 255
+#define GENLIST_EDIT_PART_LINE_INC 41 40 36 150
+#define GENLIST_EDIT_PART_BOTTOM_LINE_INC 82 82 82 255
+#define GENLIST_EDIT_BG_COLOR_INC 0 0 0 255
+#define GENLIST_EDIT_SELECT_ALL_BG_COLOR_INC 17 23 27 255
+#define GENLIST_EXPANDABLE_PART_BG_COLOR_INC GENLIST_PART_BG_COLOR_INC
+#define GENLIST_EXPANDABLE2_PART_BG_COLOR_INC 15 15 15 255
+#define GENLIST_EXPANDABLE2_NOSHADOW_BG_COLOR_INC 15 15 15 255 // [???]
+#define GENLIST_EXPANDABLE3_PART_BG_COLOR_INC 30 30 30 255
+#define GENLIST_EXPANDABLE_PART_BG_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_bg.png"; \
+                  border: 0 0 12 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+          }
+#define GENLIST_PART_BG_EXPANDABLE3_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_2_bg.png"; \
+                  border: 0 0 12 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+#define GENLIST_EXPANDABLE3_PART_BG_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_2_bg.png"; \
+                  border: 0 0 12 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+#define GENLIST_EXPANDABLE3_NOSHADOW_PART_BG_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_2_noshadow_bg.png"; \
+                  border: 0 0 0 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+#define GENLIST_DIALOGUE_EXPANDABLE2_PART_BG_COLOR_INC 31 31 31 255
+#define GENLIST_DIALOGUE_EXPANDABLE3_PART_BG_COLOR_INC 34 37 40 255
+#define GENLIST_GROUP_PART_BUBBLE_TEXT_COLOR_INC 57 166 215 255
+#define GENLIST_GROUP_PART_BUBBLE_BG_COLOR_INC 56 69 90 255
+#define GENLIST_BUBBLE_BG_COLOR_INC 153 153 153 255
+#endif
+
+#define CONTACT_DISPLAY_NAME_FONT_COLOR_INC  255 255 255 255
+#define CONTACT_DISPLAY_NAME_FONT_GRAY_COLOR_INC 230 230 230 255
+
+#define BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_STYLE1_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC 249 249 249 102
+#define BUTTON_TEXT_STYLE1_TEXT_DISABLED_COLOR_INC 180 180 1 255
+
+#define BUTTON_NAVIFRAME_TITLE1_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE1_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE1_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE1_DISABLED_COLOR_INC 48 49 50 255
+
+#define BUTTON_POPUP_BUTTON_TEXT_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_POPUP_BUTTON_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_POPUP_BUTTON_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_POPUP_BUTTON_TEXT_DISABLED_COLOR_INC 48 49 50 255
+
+#define BUTTON_EXPAND_BUTTON_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_DISABLED_COLOR_INC 48 49 50 255
+
+#define BUTTON_SWEEP_BUTTON_TEXT_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_SWEEP_BUTTON_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_SWEEP_BUTTON_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_SWEEP_BUTTON_TEXT_DISABLED_COLOR_INC 128 128 128 255
+
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_DISABLED_COLOR_INC 48 49 50 255
+
+#define BUTTON_CONTACT_BUTTON_BG_NORMAL_COLOR_INC 8 158 185 255
+#define BUTTON_CONTACT_BUTTON_BG_PRESSED_COLOR_INC 2 85 100 255
+
+#define BUTTON_CONTACT_BUTTON_TEXT_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_CONTACT_BUTTON_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_CONTACT_BUTTON_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_CONTACT_BUTTON_TEXT_DISABLED_COLOR_INC 48 49 50 255
+
+#define BUTTON_HIDDEN_BUTTON_TEXT_NORMAL_COLOR_INC 118 118 118 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_DISABLED_COLOR_INC 48 49 50 255
+
+#define BUTTON_TEXT_CONTACTS_DELETE_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_CONTACTS_DELETE_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_CONTACTS_DELETE_DISABLED_COLOR_INC 0 0 0 128
+
+#define BUTTON_NAVIFRAME_TITLE_TEXT_NORMAL_COLOR_INC 211 211 211 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_DISABLED_COLOR_INC 211 211 211 127
+
+#define BUTTON_NAVIFRAME_BG_COLOR_PRESSED_INC 109 159 238 255
+
+#define BUTTON_NUMBERED_TEXT_NORMAL_COLOR_INC 249 249 249 255
+
+#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXT_SIZE_INC 28
+#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXTBLOCK_COLOR_INC "#f9f9f9"
+#define BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC 56 56
+
+#define BUTTON_TEXT_STYLE1_BG_MIN_INC 100 72
+#define BUTTON_TEXT_STYLE1_VISIBLE_BG_MIN_INC 148 74
+#define BUTTON_TEXT_STYLE1_ICONONLY_BG_MIN_INC 74 74
+#define BUTTON_TEXT_STYLE1_BG_BORDER_INC 5 5 5 5
+#define BUTTON_TEXT_STYLE1_PADDING_MIN_INC 16 3
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE1_FONT_SIZE_INC 36
+#define BUTTON_TEXT_STYLE1_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_TEXT_STYLE2_BG_MIN_INC 100 72
+#define BUTTON_TEXT_STYLE2_VISIBLE_BG_MIN_INC 148 74
+#define BUTTON_TEXT_STYLE2_ICONONLY_BG_MIN_INC 74 74
+#define BUTTON_TEXT_STYLE2_BG_BORDER_INC 5 5 5 5
+#define BUTTON_TEXT_STYLE2_PADDING_MIN_INC 5 3
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE2_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE2_ICONONLY_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE2_FONT_SIZE_INC 32
+#define BUTTON_TEXT_STYLE2_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_CONTACT_STYLE_BG_MIN_MAX_INC 64 64
+#define BUTTON_CONTACT_STYLE_IMAGE_MIN_MAX_INC 64 64
+
+#define BUTTON_CIRCLE_STYLE_BG_MIN_MAX_INC 64 64
+#define BUTTON_CIRCLE_STYLE_IMAGE_MIN_MAX_INC 64 64
+#define BUTTON_CIRCLE_STYLE_CONTENT_MIN_MAX_INC 35 35
+
+#define BUTTON_CIRCLE_NORMAL_MIN_WIDTH_INC 64
+#define BUTTON_CIRCLE_NORMAL_MIN_HEIGHT_INC 64
+#define BUTTON_CIRCLE_EXTENEDED_MIN_WIDTH_INC 120
+#define BUTTON_CIRCLE_EXTENEDED_MIN_HEIGHT_INC 120
+
+#define BUTTON_POPUP_BG_NORMAL_MIN_INC 30 74
+#define BUTTON_POPUP_BG_BORDER_INC 5 5 5 5
+#define BUTTON_POPUP_PADDING_MIN_INC 16 3
+#define BUTTON_POPUP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_POPUP_ICON_ICONONLY_MIN_INC 38 38
+#define BUTTON_POPUP_TEXT_MIN_INC 64 20
+#define BUTTON_POPUP_TEXT_FONT_SIZE_INC 32
+#define BUTTON_POPUP_MULTILINE_TEXT_FONT_SIZE_INC 28
+
+#define BUTTON_EDIT_STYLE_BG_NORMAL_MIN_MAX_INC 74 74
+#define BUTTON_EDIT_STYLE_IMAGE_NORMAL_MIN_MAX_INC 74 74
+#define BUTTON_EDIT_STYLE_BORDER_INC 8 0 5 5
+
+#define BUTTON_EDIT_NORMAL_MIN_WIDTH_INC 72
+#define BUTTON_EDIT_NORMAL_MIN_HEIGHT_INC 72
+#define BUTTON_EDIT_EXTENDED_MIN_WIDTH_INC 80
+#define BUTTON_EDIT_EXTENDED_MIN_HEIGHT_INC 80
+
+#define BUTTON_SWEEP_BG_NORMAL_MIN_INC 12 74
+#define BUTTON_SWEEP_BG_BORDER_INC 5 5 5 5
+#define BUTTON_SWEEP_PADDING_MIN_INC 16 3
+#define BUTTON_SWEEP_ICON_RECT_MIN_INC 0 38
+#define BUTTON_SWEEP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_SWEEP_ICONONLY_ICON_MIN_INC 38 38
+#define BUTTON_SWEEP_TEXT_MIN_INC 90 32
+#define BUTTON_SWEEP_FONT_SIZE_INC 32
+#define BUTTON_SWEEP_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_SEARCHBAR_BG_NORMAL_MIN_INC 12 74
+#define BUTTON_SEARCHBAR_BG_BORDER_INC 6 6 6 6
+#define BUTTON_SEARCHBAR_PADDING_MIN_INC 5 5
+#define BUTTON_SEARCHBAR_ICON_RECT_MIN_INC 0 28
+#define BUTTON_SEARCHBAR_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_SEARCHBAR_ICONONLY_ICON_MIN_INC 28 28
+#define BUTTON_SEARCHBAR_TEXT_MIN_INC 90 28
+#define BUTTON_SEARCHBAR_FONT_SIZE_INC 32
+
+#define BUTTON_HIDDEN_BG_NORMAL_MIN_INC 12 60
+#define BUTTON_HIDDEN_BG_BORDER_INC 5 5 5 5
+#define BUTTON_HIDDEN_PADDING_MIN_INC 16 5
+#define BUTTON_HIDDEN_ICON_RECT_MIN_INC 0 28
+#define BUTTON_HIDDEN_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_HIDDEN_ICON_ICONONLY_MIN_INC 28 28
+#define BUTTON_HIDDEN_TEXT_MIN_INC 90 28
+#define BUTTON_HIDDEN_FONT_SIZE_INC 38
+
+#define BUTTON_EXPAND_BUTTON_TEXT_SIZE_INC 30
+
+#define BUTTON_EXPANDABLE_NUMBER_BG_NORMAL_MIN_MAX_INC 108 44
+#define BUTTON_EXPANDABLE_NUMBER_BG_BORDER_INC 5 5 5 5
+#define BUTTON_EXPANDABLE_NUMBER_PADDING_MIN_INC 16 1
+#define BUTTON_EXPANDABLE_NUMBER_ICON_RECT_EXPAND__MIN_MAX_INC 16 22
+#define BUTTON_EXPANDABLE_NUMBER_TEXT_MIN_MAX_INC 44 44
+#define BUTTON_EXPANDABLE_NUMBER_FONT_SIZE_INC 32
+
+#define BUTTON_CONTACT_DELETE_BG_NORMAL_MIN_INC 50 74
+#define BUTTON_CONTACT_DELETE_BG_BORDER_INC 8 0 5 5
+#define BUTTON_CONTACT_DELETE_PADDING_LEFT_TOP_MIN_INC 36 2
+#define BUTTON_CONTACT_DELETE_PADDING_RIGHT_BOTTOM_MIN_INC 14 2
+#define BUTTON_CONTACT_DELETE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_CONTACT_DELETE_ICON_ICONONLY_MIN_INC 42 42
+#define BUTTON_CONTACT_DELETE_FONT_SIZE_INC 32
+
+#define BUTTON_CONTACT_BG_MIN_INC 58 56
+#define BUTTON_CONTACT_BG_BORDER_INC 28 28 2 2
+#define BUTTON_CONTACT_PADDING_MIN_INC 20 1
+#define BUTTON_CONTACT_FONT_SIZE_INC 36
+
+#define BUTTON_NAVIFRAME_BACK_BUTTON_BG_MIN_MAX_INC 106 74
+#define BUTTON_NAVIFRAME_BACK_BUTTON_BG_BORDER_INC 5 5 5 5
+#define BUTTON_NAVIFRAME_BACK_BUTTON_MIN_MAX_INC 56 56
+
+#define BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC 249 249 249 255
+
+#define BUTTON_NAVIFRAME_TITLE_ICON_BG_NORMAL_MIN_INC 120 72
+#define BUTTON_NAVIFRAME_TITLE_ICON_BG_PRESSED_MIN_INC 120 72
+#define BUTTON_NAVIFRAME_TITLE_ICON_BG_PRESSED_BORDER_INC 4 4 4 4
+#define BUTTON_NAVIFRAME_TITLE_ICON_PADDING_MIN_INC 10 3
+#define BUTTON_NAVIFRAME_TITLE_ICON_MORE_MIN_WIDTH_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_MORE_MIN_HEIGHT_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_PLUS_MIN_WIDTH_INC 64
+#define BUTTON_NAVIFRAME_TITLE_ICON_PLUS_MIN_HEIGHT_INC 64
+#define BUTTON_NAVIFRAME_TITLE_ICON_CANCEL_MIN_WIDTH_INC 64
+#define BUTTON_NAVIFRAME_TITLE_ICON_CANCEL_MIN_HEIGHT_INC 64
+#define BUTTON_NAVIFRAME_TITLE_ICON_SEARCH_MIN_WIDTH_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_SEARCH_MIN_HEIGHT_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_PREV_MIN_WIDTH_INC 56
+#define BUTTON_NAVIFRAME_TITLE_ICON_PREV_MIN_HEIGHT_INC 56
+
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_NORMAL_MIN_INC 120 72
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_PRESSED_MIN_INC 120 72
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_PRESSED_BORDER_INC 4 4 4 4
+#define BUTTON_NAVIFRAME_TITLE_TEXT_PADDING_MIN_INC 10 3
+#define BUTTON_NAVIFRAME_TITLE_TEXT_FONT_SIZE_INC 30
+#define BUTTON_NAVIFRAME_TITLE_VISIBLE_ICON_RECT_MIN_MAX_INC 56 56
+#define BUTTON_NAVIFRAME_TITLE_ICONONLY_ICON_MIN_MAX_INC 56 56
+#define BUTTON_NAVIFRAME_TITLE_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_NORMAL_COLOR_INC 249 249 249 255
+
+#define BUTTON_NAVIFRAME_TITLE1_BG_BORDER_INC 5 5 5 5
+#define BUTTON_NAVIFRAME_TITLE1_BG_MIN_INC 106 68
+#define BUTTON_NAVIFRAME_TITLE1_PADDING_MIN_INC 16 3
+#define BUTTON_NAVIFRAME_TITLE1_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_TITLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_NAVIFRAME_TITLE1_VISIBLE_ICON_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_TITLE1_ICONONLY_ICON_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_TITLE1_FONT_SIZE_INC 32
+
+#define BUTTON_NAVIFRAME_CENTER_BG_NORMAL_MIN_INC 14 72
+#define BUTTON_NAVIFRAME_CENTER_BG_NORMAL_BORDER_INC 6 6 6 6
+#define BUTTON_NAVIFRAME_CENTER_PADDING_MIN_MAX_INC 16 2
+#define BUTTON_NAVIFRAME_CENTER_ICON_RECT_VISIBLE_MIN_SIZE 36 36
+#define BUTTON_NAVIFRAME_CENTER_PADDING_AFTER_ICON_VISIBLE_MIN_INC 6 0
+#define BUTTON_NAVIFRAME_CENTER_PADDING_BEFORE_TEXT_DEFAULT_MIN_INC 6 0
+#define BUTTON_NAVIFRAME_CENTER_SWALLOW_VISIBLE_MIN_MAX_INC 36 36
+#define BUTTON_NAVIFRAME_CENTER_SWALLOW_ICONONLY_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_CENTER_TEXT_FONT_SIZE_INC 32
+#define BUTTON_NAVIFRAME_MULTILINE_TEXT_FONT_SIZE_INC 24
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC 120 72
+#define BUTTON_NAVIFRAME_MORE_BG_PRESSED_MIN_MAX_INC 120 72
+#define BUTTON_NAVIFRAME_MORE_BG_PRESSED_BORDER_INC 4 4 4 4
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC 56 56
+#define BUTTON_NAVIFRAME_MORE_BG_COLOR_INC 41 61 94 255
+
+#define BUTTON_TICKERNOTI_BG_MIN_INC 54 54
+#define BUTTON_TICKERNOTI_VISIBLE_BG_MIN_INC 62 34
+#define BUTTON_TICKERNOTI_ICONONLY_BG_MIN_INC 54 54
+#define BUTTON_TICKERNOTI_BG_BORDER_INC 5 5 5 5
+#define BUTTON_TICKERNOTI_PADDING_MIN_INC 5 5
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_VISIBLE_PADDING_ICON_TEXT_MIN_INC 8 0
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_FONT_SIZE_INC 28
+
+#define BUTTON_PICKER_TEXT_DEFAULT_COLOR_INC 249 249 249 255
+#define BUTTON_PICKER_TEXT_CLICKED_COLOR_INC 249 249 249 255
+#define BUTTON_PICKER_TEXT_DISABLED_COLOR_INC 48 49 50 255
+#define BUTTON_PICKER_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_BG_DEFAULT_MIN_INC 74 66
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_BG_DEFAULT_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_PADDING_MIN_INC 16 5
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_ICON_RECT_MIN_INC 0 56
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_PADDING_ICON_RECT_TEXT_MIN_INC 5 0
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_CONTENT_ICON_ONLY_MIN_INC 56 56
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_TEXT_VISIBLE_MIN_INC 96 56
+
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_BG_DEFAULT_MIN_MAX_INC 74 66
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_BG_DEFAULT_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_PADDING_MIN_INC 5 5
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_IMAGE_MIN_MAX_INC 32 32
+
+#define BUTTON_PICKER_BAR_DEFAULT_BG_DEFAULT_MIN_INC 74 66
+#define BUTTON_PICKER_BAR_DEFAULT_BG_DEFAULT_IMAGE_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_BAR_DEFAULT_PADDING_MIN_INC 5 5
+#define BUTTON_PICKER_BAR_DEFAULT_ICON_RECT_DEFAULT_MIN_INC 0 56
+#define BUTTON_PICKER_BAR_DEFAULT_PADDING_ICON_RECT_TEXT_MIN_INC 5 0
+#define BUTTON_PICKER_BAR_DEFAULT_CONTENT_ICONONLY_MIN_INC 56 56
+#define BUTTON_PICKER_BAR_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define BUTTON_PICKER_BAR_DEFAULT_TEXT_VISIBLE_MIN_INC 128 56
+
+#define BUTTON_COLORSELECTOR_BG_DEFAULT_MIN_INC 74 74
+#define BUTTON_COLORSELECTOR_BG_BORDER_INC 5 5 5 5
+#define BUTTON_COLORSELECTOR_IMAGE_MIN_MAX_INC 74 74
+
+#define BUTTON_DEFAULT_STYLE_BG_MIN_INC 28 74
+#define BUTTON_DEFAULT_STYLE_BG_BORDER_INC 5 5 5 5
+#define BUTTON_DEFAULT_STYLE_PADDING_MIN_INC 5 5
+#define BUTTON_DEFAULT_STYLE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_DEFAULT_STYLE_ICONONLY_ICON_MIN_INC 38 38
+#define BUTTON_DEFAULT_STYLE_TEXT_MIN_INC 144 38
+#define BUTTON_DEFAULT_STYLE_FONT_SIZE_INC 32
+
+#define CHECK_DELETE_TEXT_DELETE_NORMAL_COLOR_INC 205 2 5 255
+#define CHECK_DELETE_TEXT_DELETE_PRESS_COLOR_INC 255 255 255 255
+
+#define CHECK_DEFAULT_TEXT_FONT_SIZE_INC 32
+
+#define CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC 60 80
+#define CHECK_ONOFF_CHECK_IMAGE_BORDER_INC 5 5 5 5
+#define CHECK_ONOFF_ON_FONT_SIZE_INC 24
+#define CHECK_ONOFF_OFF_FONT_SIZE_INC 24
+
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 64
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 64
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 64
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 75
+#define CHECK_STYLE_FAVORITE_BG_NORMAL_MIN_MAX_INC 64 64
+
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 60
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 60
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 60
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 75
+#define CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC 60 60
+
+#define CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC 74 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC 124 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_BORDER_INC 8 0 5 5
+#define CHECK_STYLE_DELETE_BUTTON_TEXT_FONT_SIZE_INC 32
+
+#define INDEX_BG_NINEPATCH_INC 4 4 4 4
+#define INDEX_ITEM_WIDTH_INC 46
+#define INDEX_ITEM_HEIGHT_INC 33
+#define INDEX_LEVEL_PADDING_INC 70
+#define INDEX_1ST_LEVEL_POPUP_WIDTH_INC 202
+#define INDEX_2ND_LEVEL_POPUP_WIDTH_INC 202
+#define INDEX_POPUP_HEIGHT_INC 182
+#define INDEX_ROLLOVER_TEXT_SIZE_INC 26
+#define INDEX_POPUP_BG_NINEPATCH_INC 12 12 12 12
+#define INDEX_POPUP_TEXT_SIZE_INC 138
+#define INDEX_ROLLOVER_TEXT_COLOR_INC 160 172 179 255
+#define INDEX_ROLLOVER_ACTIVE_TEXT_COLOR_INC 42 137 194 255
+#define INDEX_POPUP_TEXT_COLOR_INC 42 137 194 255
+#define INDEX_SCROLL_BG_COLOR_INC 230 230 230 255
+#define INDEX_BOTTOM_LINE_COLOR_INC 230 230 230 255
+#define INDEX_LEFT_LINE_COLOR_INC 42 137 194 255
+
+#define INDEX_PAGECONTROL_IND_INC 52 52
+#define INDEX_PAGECONTROL_IND_MIN_INC 24 24
+#define INDEX_PAGECONTROL_FONT_SIZE_INC 28
+#define INDEX_PAGECONTROL_FONT_COLOR_INC 120 120 120
+
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 60
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 60
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 50
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 50
+#define RADIO_STYLE_DEFAULT_BG_MIN_MAX_INC 60 60
+#define RADIO_STYLE_DEFAULT_FONT_SIZE_INC 32
+
+#define PANES_STYLE_DEFAULT_MOVABLE_SIZE_INC 15
+#define PANES_STYLE_DEFAULT_MIDDLE_SIZE_INC 48
+#define PANES_STYLE_DEFAULT_FIXED_SIZE_INC 6
+#define PANES_STYLE_DEFAULT_ARROW_SIZE_INC 55
+#define PANES_STYLE_DEFAULT_ARROW_FROM_INC 15
+#define PANES_STYLE_DEFAULT_ARROW_TO_INC 30
+
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_NORMAL_INC 132 154 190 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC 249 249 249 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC 249 249 249 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC 132 154 190 255
+#define SEGMENT_CONTROL_ITEM_1PX_LEFT_PADDING_COLOR_INC 0 0 0 51
+#define SEGMENT_CONTROL_ITEM_1PX_RIGHT_PADDING_COLOR_INC 255 255 255 51
+
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_NORMAL_INC 132 154 190 255
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_PRESSED_INC 249 249 249 255
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_SELECTED_INC 249 249 249 255
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_DISABLED_INC 132 154 190 255
+#define SEGMENT_CONTROL_BODY_ITEM_1PX_LEFT_PADDING_COLOR_INC 76 76 76 255
+#define SEGMENT_CONTROL_BODY_ITEM_1PX_RIGHT_PADDING_COLOR_INC 43 43 43 255
+
+#define SEGMENT_CONTROL_MULTILINE_TEXT_SIZE_INC 26
+#define SEGMENT_CONTROL_TEXT_SIZE_INC 28
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MIN_INC 12
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MAX_INC 28
+
+#define EDITFIELD_TITLE_SIZE_INC 32
+#define EDITFIELD_TITLE_COLOR_INC 168 168 168 255
+#define EDITFIELD_GUIDE_TEXT_COLOR_INC 158 187 205 255
+#define EDITFIELD_DEFAULT_ERASER_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_MINH_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINH_INC 70
+#define EDITFIELD_SEARCHBAR_ERASER_MINW_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_MINH_INC 38
+#define EDITFIELD_DEFAULT_MINH_INC 112
+#define EDITFIELD_TITLE_MINH_INC 128
+#define EDITFIELD_SEARCHBAR_MINH_INC 50
+#define EDITFIELD_DEFAULT_TOP1_SINGLE_INC 20
+#define EDITFIELD_DEFAULT_TOP1_MULTI_INC 56
+#define EDITFIELD_DEFAULT_TOP2_INC 8
+#define EDITFIELD_DEFAULT_LEFT1_INC 0
+#define EDITFIELD_DEFAULT_LEFT2_INC 0
+#define EDITFIELD_DEFAULT_LEFT3_INC 1
+#define EDITFIELD_DEFAULT_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_DEFAULT_RIGHT2_INC 0
+#define EDITFIELD_DEFAULT_BOTTOM1_SINGLE_INC 20
+#define EDITFIELD_DEFAULT_BOTTOM1_MULTI_INC 8
+#define EDITFIELD_DEFAULT_BOTTOM2_SINGLE_INC 32
+#define EDITFIELD_DEFAULT_BOTTOM2_MULTI_INC 12
+#define EDITFIELD_DEFAULT_BOTTOM3_SINGLE_INC 85
+#define EDITFIELD_DEFAULT_BOTTOM3_MULTI_INC 60
+#define EDITFIELD_SEARCHBAR_TOP1_SINGLE_INC 6
+#define EDITFIELD_SEARCHBAR_TOP1_MULTI_INC 10
+#define EDITFIELD_SEARCHBAR_TOP2_INC 10
+#define EDITFIELD_SEARCHBAR_LEFT1_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT2_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT3_INC 1
+#define EDITFIELD_SEARCHBAR_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_SEARCHBAR_RIGHT2_INC 5
+#define EDITFIELD_SEARCHBAR_BOTTOM1_SINGLE_INC 8
+#define EDITFIELD_SEARCHBAR_BOTTOM1_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM2_SINGLE_INC 16
+#define EDITFIELD_SEARCHBAR_BOTTOM2_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM3_SINGLE_INC 50
+#define EDITFIELD_SEARCHBAR_BOTTOM3_MULTI_INC 50
+
+#define BUTTON_TICKERNOTI_NORMAL_COLOR_INC        249 249 249 255
+#define BUTTON_TICKERNOTI_PRESSED_COLOR_INC       249 249 249 255
+#define BUTTON_TICKERNOTI_DISABLED_COLOR_INC      249 249 249 155
+
+#define CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC        249 249 249 255
+#define CHECK_DEFAULT_TEXT_PRESSED_COLOR_INC      249 249 249 255
+#define CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC          48 49 50 255
+
+#define RADIO_DEFAULT_TEXT_NORMAL_COLOR_INC        249 249 249 255
+#define RADIO_DEFAULT_TEXT_PRESSED_COLOR_INC      249 249 249 255
+#define RADIO_DEFAULT_TEXT_DISABLED_COLOR_INC          48 49 50 255
+
+#define CONTROLBAR_LARGE_HEIGHT_INC 122
+#define CONTROLBAR_SMALL_HEIGHT_INC 114
+#define CONTROLBAR_WIDTH_INC 122
+#define CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC 23 34 38 255
+#define CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC 58 68 74 255
+
+#define MULTIBUTTONENTRY_NORMAL_BUTTON_COLOR_INC 8 158 185 255
+#define MULTIBUTTONENTRY_PRESSED_BUTTON_COLOR_INC 2 85 100 255
+#define MULTIBUTTONENTRY_LABEL_TEXT_COLOR_INC 249 249 249 255
+#define MULTIBUTTONENTRY_TEXT_COLOR_INC "#000000"
+#define MULTIBUTTONENTRY_GUIDETEXT_COLOR_INC 70 70 70 255
+#define MULTIBUTTONENTRY_BUTTON_TEXT_COLOR_INC "#F9F9F9"
+#define MULTIBUTTONENTRY_WIDTH_PAD_INC 15
+#define MULTIBUTTONENTRY_HEIGHT_PAD_INC 20
+#define MULTIBUTTONENTRY_BUTTON_MAX_SIZE_INC 300
+#define MULTIBUTTONENTRY_BUTTON_BASE_SIZE_INC 76
+#define MULTIBUTTONENTRY_BUTTON_NINEPATCH_INC 28 28 0 0
+#define MULTIBUTTONENTRY_BUTTON_TOP_BUTTOM_PAD_INC 12
+#define MULTIBUTTONENTRY_BUTTON_LEFT_INNER_PAD_INC 15
+#define MULTIBUTTONENTRY_BUTTON_RIGHT_INNER_PAD_INC 15
+#define MULTIBUTTONENTRY_BUTTON_RIGHT_PAD_INC 15
+#define MULTIBUTTONENTRY_BUTTON_TEXT_SIZE_INC 38
+#define MULTIBUTTONENTRY_GUIDETEXT_SIZE_INC 44
+#define MULTIBUTTONENTRY_CLOSEDBUTTON_SIZE_INC 1
+#define MULTIBUTTONENTRY_CLOSEDBUTTON_AREA_HEIGHT_INC 60
+#define MULTIBUTTONENTRY_LABEL_RIGHT_PAD_INC 27
+#define MULTIBUTTONENTRY_LABEL_TEXT_SIZE_INC 42
+#define MULTIBUTTONENTRY_LABEL_MIN_HEIGHT_INC 75
+
+#define SEARCHBAR_BACKGROUND_COLOR_INC          215 225 232 255
+#define SEARCHBAR_CANCEL_BUTTON_W_INC 134
+#define SEARCHBAR_CANCEL_BUTTON_WITH_PADDING_W_INC 150
+#define SEARCHBAR_CANCEL_BUTTON_WITH_DOUBLE_PADDING_W_INC 166
+#define SEARCHBAR_TOP_PADDING_INC 18
+#define SEARCHBAR_BOTTOM_PADDING_INC 18
+#define SEARCHBAR_HEIGHT_INC 74
+#define SEARCHBAR_LEFT_PADDING_INC 16
+#define SEARCHBAR_RIGHT_PADDING_INC 16
+#define SEARCHBAR_INPUTFIELD_BORDER_INC 6 6 6 6
+#define SEARCHBAR_LEFT_ICON_PADDING_INC 16
+#define SEARCHBAR_ICON_MIN_W_INC 42
+#define SEARCHBAR_ICON_MIN_H_INC 42
+#define SEARCHBAR_LEFT_PADDING_SEARCHFIELD_INC 16
+#define SEARCHBAR_RIGHT_PADDING_SEARCHFIELD_INC 8
+#define SEARCHBAR_SEARCH_TEXTFIELD_H_INC 60
+#define SEARCHBAR_H_INC 107
+
+#define SELECTION_INFO_BACKGROUND_COLOR_INC          215 225 232 255
+#define SELECTION_INFO_TEXT_COLOR_INC                77 77 77 255
+#define SELECTION_INFO_MIN_VER_W_INC                 720
+#define SELECTION_INFO_MIN_HORZ_W_INC                1280
+#define SELECTION_INFO_VER_PADDING_INC               48
+#define SELECTION_INFO_LEFT_PADDING_INC              16
+#define SELECTION_INFO_TEXT_FONT_SIZE_INC            32
+#define SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC       150
+#define SELECTION_INFO_MIN_VER_BOTTOM_86_H_INC       186
+
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_MIN_INC 588 0
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_FONT_SIZE_INC 40
+
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MAX_INC 620 1120
+#define POPUP_BASE_DEFAULT_BG_DEFAULT_IMAGE_BORDER_INC 5 5 5 5
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_MIN_INC 620 68
+#define POPUP_BASE_DEFAULT_TITLE_VOLUMEBAR_MIN_INC 624 68
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_IMAGE_BORDER_INC 4 4 3 3
+#define POPUP_BASE_DEFAULT_PADDING_MIN_MAX_INC 14 0
+#define POPUP_BASE_DEFAULT_TITLE_ICON_DEFAULT_MIN_MAX_INC 62 62
+#define POPUP_BASE_DEFAULT_CONTENT_DEFAULT_MIN_MAX_INC 620 0
+#define POPUP_BASE_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 620 96
+#define POPUP_BASE_DEFAULT_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC 40
+
+#define POPUP_CONTENT_DEFAULT_PADDING_TOP_MIN_INC 0 25
+#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 16 0
+#define POPUP_CONTENT_DEFAULT_PADDING_RIGHT_MIN_INC 16 0
+#define POPUP_CONTENT_DEFAULT_PADDING_BOTTOM_MIN_INC 0 25
+#define POPUP_CONTENT_DEFAULT_CONTENT_DEFAULT_MIN_INC 588 0
+
+#define POPUP_BASE_VERTICAL_BUTTON_BASE_MIN_INC 620 0
+#define POPUP_BASE_VERTICAL_BUTTON_BASE_MAX_INC 620 1120
+#define POPUP_BASE_VERTICAL_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_DEFAULT_MIN_INC 620 64
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_IMAGE_BORDER_MIN_INC 3 3 3 3
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_ICON_MIN_MAX_INC 62 62
+#define POPUP_BASE_VERTICAL_BUTTON_CONTENT_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_VERTICAL_BUTTON_BUTTONAREA_DEFAULT_MIN_INC 620 286
+
+#define POPUP_BUTTON3_VERTICAL_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_TOP_MIN_INC 0 16
+#define POPUP_BUTTON_VERTICAL_ACTION_AREA_HEIGHT "286"
+#define POPUP_BUTTON3_VERTICAL_BUTTON_BUTTON_MIN_MAX_INC 356 74
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MIN_INC 0 16
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MAX_INC 9999 16
+
+#define POPUP_CONTENT_LISTSTYLE_PADDING_TOP_MIN_MAX_INC 3 3
+#define POPUP_CONTENT_LISTSTYLE_CONTENT_DEFAULT_MIN_INC 614 408
+#define POPUP_CONTENT_LISTSTYLE_PADDING_RIGHT_MIN_INC 3 0
+
+#define POPUP_CONTENT_MINSTYLE_CONTENT_DEFAULT_MIN_INC 614 0
+
+#define POPUP_BASE_CUSTOMSTYLE_BASE_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_CUSTOMSTYLE_BASE_DEFAULT_MAX_INC 620 1120
+#define POPUP_BASE_CUSTOMSTYLE_BG_DEFAULT_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_DEFAULT_MIN_INC 620 64
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_BOTTOM_LINE_MIN_INC 0 1
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_ICON_DEFAULT_MIN_MAX_INC 62 62
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_CUSTOMSTYLE_BUTTONAREA_BG_DEFAULT_MIN_INC 620 96
+#define POPUP_BASE_CUSTOMSTYLE_BUTTONAREA_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_CUSTOMSTYLE_TEXT_FONT_SIZE_INC 38
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_WIDTH_INC 620
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_HEIGHT_INC 146
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_SIDE_PADDING_INC 70
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_ENTRY_MIN_INC 90 90
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_CENTER_PADDING_MIN_INC 40
+
+#define POPUP_CONTENT_CUSTOMSTYLE_DEFAULT_MIN_INC 620 0
+#define POPUP_BUTTON_DEFAULT_ACTION_AREA_HEIGHT "96"
+#define POPUP_BUTTON1_DEFAULT_BUTTON1_DEFAULT_MIN_MAX_INC 400 72
+#define POPUP_BUTTON2_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 285 72
+#define POPUP_BUTTON2_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 10 72
+#define POPUP_BUTTON3_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 186 72
+#define POPUP_BUTTON3_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 10 72
+
+#define POPUP_BASE_VOLUMEBAR_STYLE_BASE_DEFAULT_MIN_INC 624 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_BASE_DEFAULT_MAX_INC 624 1120
+#define POPUP_BASE_VOLUMEBAR_STYLE_TITLE_DEFAULT_IMAGE_BORDER_INC 3 3 6 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_CONTENT_DEFAULT_MIN_INC 624 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_BUTTONAREA_BG_DEFAULT_MIN_INC 624 96
+
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_TOP_MIN_INC 0 31
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_LEFT_MIN_INC 40 0
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_RIGHT_MIN_INC 40 0
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_CONTENT_DEFAULT_MIN_INC 544 64
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_BOTTOM_MIN_INC 0 31
+
+#define PROGRESSBAR_DEFAULT_STYLE_TEXT_COLOR_INC          249 249 249 255
+#define PROGRESSBAR_DEFAULT_STYLE_STATUS_TEXT_COLOR_INC          249 249 249 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC          249 249 249 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC          224 224 224 255
+#define PROGRESSBAR_LIST_TITLE_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC      108 108 108 255
+#define PROGRESSBAR_LIST_PROCESS_WIDTH_INC 66
+#define PROGRESSBAR_LIST_PROCESS_HEIGHT_INC 66
+#define PROGRESSBAR_LIST_PROCESS_SMALL_INC 35
+#define PROGRESSBAR_LIST_PROCESS_SMALL_IMAGE "32x32"
+#define PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC 16
+#define PROGRESSBAR_LIST_PENDING_HEIGHT_INC 16
+
+#define NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC 81 78 76 255
+#define NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC   42
+#define NOCONTENT_MIDDLE_PADDING_INC         54
+#define NOCONTENT_BASE_SEARCH_PADDING_INC    40
+#define NOCONTENT_IMAGE_REL1_WIDTH_HEIGHT_INC 0.282 0.294
+#define NOCONTENT_IMAGE_REL2_WIDTH_HEIGHT_INC 0.718 0.54
+#define NOCONTENT_BG_COLOR_INC               249 249 249 255
+#define NOCONTENT_TEXT_STYLE_BG_MIN_INC       0 120
+
+#define ENTRY_TEXT_SIZE_INC 44
+#define ENTRY_TEXT_COLOR_INC "#000000"
+#define ENTRY_CURSOR_COLOR_INC 42 137 194 255
+#define ENTRY_PREEDIT_BACKGROUND_COLOR_INC "#000000"
+#define ENTRY_PREEDIT_TEXT_COLOR_INC "#FFFFFF"
+#define ENTRY_SELECTION_BG_COLOR 90 123 138 127
+#define ENTRY_SELECTION_BLOCK_HANDLE_MIN_SIZE 48 67
+#define MAGNIFIER_HEIGHT_FILL 182
+#define MAGNIFIER_HEIGHT_FIXED 108
+#define MAGNIFIER_WIDTH_FIXED 358
+
+#define ENTRY_BUBBLE_EX_PAD 46
+#define ENTRY_BUBBLE_EX_CALLERID_PAD 140
+#define ENTRY_BUBBLE_IX_PAD 20
+#define ENTRY_BUBBLE_Y_PAD 15
+#define ENTRY_BUBBLE_BOTTOM_PAD 22
+#define ENTRY_BUBBLE_CALLERID_PAD 10
+#define ENTRY_BUBBLE_CALLERID_WIDTH 84
+#define ENTRY_BUBBLE_CALLERID_HEIGHT 84
+#define ENTRY_BUBBLE_DATE_AREA_TEXT_SIZE_INC 26
+
+#define ENTRY_BUBBLE_RECEV_BG_BORDER_INC 46 28 50 16
+#define ENTRY_BUBBLE_SENT_BG_BORDER_INC 20 46 50 16
+#define ENTRY_BUBBLE_CALLERID_RELATIVE_INC 0.0 0.0
+#define ENTRY_BUBBLE_RECEV_CALLERID_REL1_INC 0.0 0.0
+#define ENTRY_BUBBLE_RECEV_CALLERID_REL2_INC 0.0 0.0
+#define ENTRY_BUBBLE_BOTTOMRIGHT_PAD 94
+#define ENTRY_BUBBLE_TEXT_CALLID_REL2_X_INC "elm.rect.right.pad"
+#define ENTRY_BUBBLE_READ_TEXT_CALLID_REL1_X_INC "elm.rect.left.pad"
+#define ENTRY_BUBBLE_TEXT_CALLID_REL2_Y_INC "elm.rect.groupchat.text.pad"
+#define ENTRY_BUBBLE_STATUS_TIME_PAD_MIN_H_INC 16
+#define ENTRY_BUBBLE_STATUS_TIME_PAD_REL_INC 0.0 1.0
+#define ENTRY_BUBBLE_READ_STATUS_TIME_PAD_REL_INC 1.0 1.0
+#define ENTRY_BUBBLE_STATUS_TIME_SIZE_INC 26
+#define ENTRY_BUBBLE_SENT_STATUS_TIME_COLOR_INC 92 151 187 255
+#define ENTRY_BUBBLE_READ_STATUS_TIME_COLOR_INC 139 139 139 255
+#define ENTRY_BUBBLE_GROUPCHAT_SIZE_INC 36
+#define ENTRY_BUBBLE_GROUPCHAT_COLOR_INC 57 166 215 255
+#define ENTRY_BUBBLE_GROUPCHART_ENABLE_INC 1
+#define ENTRY_BUBBLE_READ_STATUS_REL_INC 1.0 0.0
+#define ENTRY_BUBBLE_READ_TIME_REL_INC 1.0 1.0
+
+#define PANES_DEFAULT_FIXED_SEPERATOR_NORMAL_COLOR_INC 118 118 118 255
+
+#define DAYSELECTOR_BACKGROUND_COLOR_INC       82 84 87 255
+#define DAYSELECTOR_WEEKDAY_COLOR_INC          249 249 249 255
+#define DAYSELECTOR_SATURDAY_COLOR_INC         0 168 231 255
+#define DAYSELECTOR_SUNDAY_COLOR_INC           7 180 211 255
+#define DAYSELECTOR_DAY_PRESSED_COLOR_INC      249 249 249 255
+#define DAYSELECTOR_DAY_FONT_SIZE_INC 32
+#define DAYSELECTOR_CHECK_WIDTH_INC 94
+#define DAYSELECTOR_CHECK_HEIGHT_INC 90
+
+#define SLIDER_INDICATOR_TEXT_COLOR_INC      42 137 194 255
+#define SLIDER_UNITS_TEXT_COLOR_INC      0 0 0 255
+#define SLIDER_UNITS_TEXT_SIZE_INC  30
+#define SLIDER_INDICATOR_TEXT_SIZE_INC  40
+#define SLIDER_BASE_HEIGHT_INC  16
+#define SLIDER_BASE_MIN_WIDTH_INC 375
+#define SLIDER_BASE_HEIGHT_INC  16
+#define SLIDER_SWALLOW_BAR_MIN_WIDTH_INC  58
+#define SLIDER_SWALLOW_BAR_HEIGHT_INC  58
+#define SLIDER_INDICATOR_MAX_WIDTH_INC 90
+#define SLIDER_INDICATOR_WIDTH_INC 58
+#define SLIDER_INDICATOR_HEIGHT_INC 58
+#define SLIDER_EBOOK_HEIGHT_INC  23
+#define SLIDER_EBOOK_UNITS_TEXT_COLOR_INC   164 160 149 255
+#define SLIDER_EBOOK_UNITS_TEXT_SIZE_INC  48
+#define SLIDER_EBOOK_INDICATOR_TEXT_COLOR_INC   7 180 211 255
+#define SLIDER_EBOOK_INDICATOR_DEFAULT_TEXT_SIZE_INC 36
+#define SLIDER_EBOOK_INDICATOR_DRAG_TEXT_SIZE_INC 48
+#define SLIDER_EBOOK_INDICATOR_WIDTH_INC 54
+#define SLIDER_EBOOK_INDICATOR_HEIGHT_INC 54
+#define SLIDER_DISABLER_PART_COLOR_INC   185 185 185 100
+
+#define TICKER_NOTI_DEFAULT_TEXT_COLOR_INC "#f9f9f9"
+#define TICKER_NOTI_DEFAULT_TEXT2_COLOR_INC "#8eaaba"
+
+#define DATETIME_FIELD_MIN_SIZE_INC                60 60
+#define DATETIME_SEPARATOR_MIN_SIZE_INC            40 60
+#define DATETIME_TEXT_FONT_SIZE_INC                36
+#define DATETIME_TEXT_NORMAL_COLOR_INC             255 255 255 255
+#define DATETIME_SEPARATOR_TEXT_COLOR_INC          150 150 150 255
+#define DATETIME_TEXT_SELECTED_COLOR_INC           7 180 211 255
+
+#define COLORSELECTOR_MIN_W_INC 624
+#define COLORSELECTOR_MIN_H_INC 336
+#define COLORSELECTOR_MAX_W_INC 1014
+#define COLORSELECTOR_COLORBAR_IMAGE0_BORDER 13 13 10 3
+#define COLORSELECTOR_COLORBAR_IMAGE1_BORDER 4 4 3 3
+#define COLORSELECTOR_COLORBAR_IMAGE2_BORDER 13 13 3 15
+#define COLORSELECTOR_COLORBAR_HEIGHT 112
+#define COLORSELECTOR_COLORBAR_LEFT_PADDING 136
+#define COLORSELECTOR_COLORBAR_RIGHT_PADDING 136
+#define COLORSELECTOR_BUTTON_TOP_PADDING 19
+#define COLORSELECTOR_ARROW_BG_LEFT_PADDING 133
+#define COLORSELECTOR_ARROW_BG_RIGHT_PADDING 133
+#define COLORSELECTOR_ARROW_MIN_WIDTH 22
+#define COLORSELECTOR_ARROW_MIN_HEIGHT 70
+#define COLORSELECTOR_ARROW_REL1_OFFSET 0 5
+#define COLORSELECTOR_ARROW_REL2_OFFSET 0 5
+#define COLORSELECTOR_DRAGGABLE_EVENT_AREA 80 80
+#define COLORSELECTOR_BUTTON_LEFT_PADDING 42
+#define COLORSELECTOR_BUTTON_RIGHT_PADDING 42
+#define COLORSELECTOR_BUTTON_WIDTH 74
+#define COLORSELECTOR_BUTTON_HEIGHT 74
+#define COLORSELECTOR_BUTTON_BORDER 6 6 6 6
+#define COLORSELECTOR_PADDING_COLOR_INC 68 68 68 255
+
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_WIDTH_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_HEIGHT_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_WIDTH_INC 84
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_HEIGHT_INC 84
+#define COLORSELECTOR_PORTRAIT_HOR_PAD_INC "50"
+#define COLORSELECTOR_PORTRAIT_VER_PAD_INC "26"
+#define COLORSELECTOR_LANDSCAPE_HOR_PAD_INC "36"
+#define COLORSELECTOR_LANDSCAPE_VER_PAD_INC "0"
+#define COLORSELECTOR_PALETTE_BORDER_INC 14 14 14 14
+
+#define CALENDAR_DAY_FONT_SIZE_INC 24
+#define CALENDAR_DATE_FONT_SIZE_INC 32
+#define CALENDAR_MONTH_FONT_SIZE_INC 38
+#define CALENDAR_MONTH_FONT_COLOR_INC 249 249 249 255
+#define CALENDAR_SATURDAY_FONT_COLOR_INC 47 120 220 255
+#define CALENDAR_SUNDAY_FONT_COLOR_INC 226 20 20 255
+#define CALENDAR_WEEKDAY_FONT_COLOR_INC 249 249 249 255
+#define CALENDAR_SELECTED_DATE_FONT_COLOR_INC 255 255 255 255
+#define CALENDAR_SEPERATOR_FONT_COLOR_INC 68 68 68 255
+#define CALENDAR_BACKGROUND_COLOR_INC 89 89 89 255
+#define CALENDAR_BUTTON_HEIGHT_INC 66
+#define CALENDAR_BUTTON_WIDTH_INC 74
+#define CALENDAR_ARROW_WIDTH_INC 30
+#define CALENDAR_ARROW_HEIGHT_INC 36
+#define CALENDAR_BASE_MIN_WIDTH_INC 692
+#define CALENDAR_BASE_MIN_HEIGHT_INC 420
+#define CALENDAR_HEADER_MIN_WIDTH_INC 98
+#define CALENDAR_HEADER_MIN_HEIGHT_INC 90
+
+#define CTXPOPUP_ENTRY_CENTER_IMAGE_BORDER 12 12 9 9
+#define CTXPOPUP_ENTRY_IMAGE_BORDER_WIDTH 12
+#define CTXPOPUP_ENTRY_ITEM_TEXT_COLOR   249 249 249 255
+#define CTXPOPUP_ENTRY_ITEM_LEFT_SEPARATOR_COLOR 68 68 68 255
+#define CTXPOPUP_ENTRY_ITEM_RIGHT_SEPARATOR_COLOR 0 0 0 255
+#define CTXPOPUP_ENTRY_SEPARATOR_WIDTH 1
+#define CTXPOPUP_ENTRY_SEPARATOR_HEIGHT 50
+#define CTXPOPUP_ENTRY_ITEM_HEIGHT 74
+#define CTXPOPUP_ENTRY_ITEM_PADDING_WIDTH 14
+#define CTXPOPUP_ENTRY_ITEM_FONT_SIZE 28
+#define CTXPOPUP_ENTRY_ICON_SIZE 58
+#define CTXPOPUP_ENTRY_ITEM_WIDTH_MAX 240
+#define CTXPOPUP_ENTRY_LIST_SHADOW_PADDING 3
+#define CTXPOPUP_ENTRY_ITEM_DISABLED_COLOR 200 200 200 127
+#define CTXPOPUP_ENTRY_ARROW_SIZE_HEIGHT 18
+#define CTXPOPUP_ENTRY_ARROW_SIZE_WIDTH 29
+
+#define TICKERNOTI_DEFAULT_BG_MIN_HEIGHT_INC 100
+#define TICKERNOTI_DEFAULT_BG_BOTTOM_MIN_HEIGHT_INC 8
+#define TICKERNOTI_DEFAULT_BG_BORDER_INC 0 0 0 0
+#define TICKERNOTI_DEFAULT_BG_PADDING_LEFT_TOP_INC 16 18
+#define TICKERNOTI_DEFAULT_BG_PADDING_RIGHT_BOTTOM_INC 16 18
+#define TICKERNOTI_DEFAULT_PADDING_AFTER_ICON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_MIN_INC 0 60
+#define TICKERNOTI_DEFAULT_BUTTON_MIN_INC 90 54
+#define TICKERNOTI_DEFAULT_BUTTON_MAX_INC 90 54
+#define TICKERNOTI_DEFAULT_ICON_MIN_INC 64 64
+#define TICKERNOTI_DEFAULT_PADDING_BEFORE_BUTTON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define TICKERNOTI_DEFAULT_TEXT2_FONT_SIZE_INC 28
+#define TICKERNOTI_INFO_BG_MIN_HEIGHT_INC 50
+#define TICKERNOTI_INFO_BG_PADDING_LEFT_TOP_INC 8 5
+#define TICKERNOTI_INFO_BG_PADDING_RIGHT_BOTTOM_INC 8 5
+#define TICKERNOTI_BG_PADDING_AFTER_ICON_INC 15 0
+#define TICKERNOTI_INFO_TEXT_FONT_SIZE_INC 28
+
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE "00_scroll_bar_v.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE "00_scroll_bar_h.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER 18 18 8 8
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE_BORDER 8 8 18 18
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC 18 80
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC 18 99999
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC 80 18
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 18
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIN_SIZE_INC 54 220
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIN_SIZE_INC 220 54
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIDDLE_MIN_SIZE_INC 54 26
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIDDLE_MIN_SIZE_INC 26 54
+#define SCROLLER_HANDLER_SCROLLBAR_PADDING_INC 10
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_BOTTOM_BORDER 10 10 0 10
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_RIGHT_BORDER 0 10 10 10
+
+#define TOOLBAR_ITEM_SEPARATOR_LEFT_COLOR_INC 49 67 97 255
+#define TOOLBAR_ITEM_SEPARATOR_MIDDLE_COLOR_INC 0 0 0 255
+#define TOOLBAR_ITEM_SEPARATOR_RIGHT_COLOR_INC 21 31 49 255
+#define TOOLBAR_ITEM_BG_REL1_OFFSET_INC 0 0
+#define TOOLBAR_ITEM_BG_REL2_OFFSET_INC -1 -1
+#define TOOLBAR_ITEM_BG_SELECTED_BORDER_INC 8 8 8 8
+#define TABBAR_ITEM_BG_DEFAULT_BORDER_INC 9 9 9 9
+#define TABBAR_ITEM_BG_DEFAULT_VISIBLE_INC 1
+#define TABBAR_ITEM_BG_DEFAULT_COLOR_INC 255 255 255 255
+
+#define GENLIST_SIZE_150_INC 150
diff --git a/data/edc/theme/theme.edc b/data/edc/theme/theme.edc
new file mode 100755 (executable)
index 0000000..b3adc35
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "../inc/theme-inc.edc"
+
+collections {
+
+#include "genlist.edc"
+
+}
diff --git a/data/edc/theme2/dialogue.edc b/data/edc/theme2/dialogue.edc
new file mode 100755 (executable)
index 0000000..ccacc19
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "originals/tizen-hd-inc.edc"
+#include "originals/genlist_macro.edc"
+
+/*
+ * vim:ts=3
+*/
+
+collections {
+
+   group { name: "1text.1icon.5.grid";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text";
+      data.item: "contents" "elm.icon elm.icon.edit";
+
+      GENLIST_IMAGES_DIALOGUE_BG_IMAGE
+      parts {
+         GENLIST_PART_BG_IMAGE_DIALOGUE
+         GENLIST_PART_BASE
+         GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT )
+         GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( DIALOGUE_PADDING_SIZE_RIGHT )
+         GENLIST_PART_PADDING_TOP_SIZE(0)
+         GENLIST_PART_PADDING_BOTTOM_SIZE(22)
+
+        GENLIST_PART_LISTITEM_("elm.text", GENLIST_HEIGHT_1LINE, "elm.padding.left", "elm.padding.right", "elm.padding.top", "elm.icon",)
+
+        GENLIST_PART_ICON("elm.icon",
+            GENLIST_DESCRIPTION_LRB("elm.padding.left", "elm.padding.right", "elm.padding.bottom", min: 0 205; fixed: 0 1;)
+         )
+         GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_DIALOGUE( target: "elm.text"; target: "elm.icon"; )
+   }
+
+   group { name: "1text.3icon.attach_button";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text";
+      data.item: "contents" "elm.icon.1 elm.icon.2 elm.icon.3 elm.icon.edit";
+
+      GENLIST_IMAGES_DIALOGUE_BG_IMAGE
+      parts {
+         GENLIST_PART_BG_IMAGE_DIALOGUE
+         GENLIST_PART_BASE
+         GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT )
+         GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( DIALOGUE_PADDING_SIZE_RIGHT )
+         GENLIST_PART_PADDING_TOP_SIZE(0)
+         GENLIST_PART_PADDING_BOTTOM_SIZE(10)
+
+       GENLIST_PART_SUBITEM_("elm.text", GENLIST_HEIGHT_2LINE_SUB,
+            "elm.padding.left", "elm.padding.right", "elm.padding.top", "elm.icon.1",
+         )
+
+        GENLIST_PART_ICON("elm.icon.1",
+            GENLIST_DESCRIPTION_LRB("elm.padding.left", "elm.padding.icon1.right", "elm.padding.bottom", min: 200 74; max: 200 74; fixed: 1 1;)
+         )
+         GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.icon.1")
+         GENLIST_PART_ICON("elm.icon.2",
+            GENLIST_DESCRIPTION_LRB("elm.padding.icon1.right", "elm.padding.icon2.right", "elm.padding.bottom", min: 200 74; max: 200 74; fixed: 1 1;)
+         )
+         GENLIST_PART_PADDING_L("elm.padding.icon2.right", "elm.icon.2")
+         GENLIST_PART_ICON("elm.icon.3",
+            GENLIST_DESCRIPTION_LRB("elm.padding.icon2.right", "elm.padding.right", "elm.padding.bottom", min: 200 74; max: 200 74; fixed: 1 1;)
+         )
+         GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_DIALOGUE( target: "elm.text"; target: "elm.icon.1"; target: "elm.icon.2"; target: "elm.icon.3";)
+   }
+
+
+ group { name: "2icon.attendee_button";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "contents" "elm.icon.1 elm.icon.2 elm.icon.edit";
+
+      GENLIST_IMAGES_DIALOGUE_BG_IMAGE
+      parts {
+         GENLIST_PART_BG_IMAGE_DIALOGUE
+         GENLIST_PART_BASE
+         GENLIST_PART_PADDING_LEFT_SIZE(10)
+         GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( DIALOGUE_PADDING_SIZE_RIGHT )
+         GENLIST_PART_PADDING_TOP_SIZE(10)
+         GENLIST_PART_PADDING_BOTTOM_SIZE(10)
+
+         GENLIST_PART_ICON("elm.icon.1",
+            GENLIST_DESCRIPTION_L("elm.padding.left", min: 600 105;)
+         )
+         GENLIST_PART_ICON("elm.icon.2",
+            GENLIST_DESCRIPTION_L("elm.icon.1", min: 80 105; max: 80 105;)
+         )
+
+         GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_DIALOGUE( target: "elm.icon.1"; target: "elm.icon.2";)
+   }
+}
+
diff --git a/data/edc/theme2/genlist.edc b/data/edc/theme2/genlist.edc
new file mode 100755 (executable)
index 0000000..ada6f70
--- /dev/null
@@ -0,0 +1,500 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "originals/tizen-hd-inc.edc"
+#include "originals/genlist_macro.edc"
+#include "originals/genlist_textblock_style.edc"
+
+/*
+ * vim:ts=3
+*/
+
+#define GENLIST_PART_INPUT_BG(NAME, INPUT_NAME)\
+               part { name, NAME;\
+                        scale, 1;\
+                       description {\
+                                state, "default" 0.0;\
+                                min, 0 80;\
+                               fixed, 0 1;\
+                               align, 0.0 0.5;\
+                                rel1 { relative, -0.1 -0.1; to, INPUT_NAME; }\
+                                rel2 { relative, 1.1 1.1; to, INPUT_NAME; }\
+                                image {\
+                                        normal, "01_dialoguegroup_edit_default.png";\
+                                        border, 13 13 9 14;\
+                                        border_scale, 1;\
+                                }\
+                        }\
+                }
+
+#define GENLIST_PART_ICON_FIXED_WIDTH_L(NAME, WIDTH, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         fixed: 1 1; \
+         min: WIDTH 0; \
+         max: WIDTH 0; \
+      ) \
+   )
+
+   group { name: "elm/genlist/item/2icon.1text.custom/default";
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "text";
+      data.item: "contents" "radio input_sw";
+
+      images {
+         image, "01_dialoguegroup_edit_default.png" COMP;
+      }
+
+      parts {
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BASE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+
+         GENLIST_PART_ICON_BIG_L("radio", "elm.padding.left")
+         GENLIST_PART_PADDING_L("radio.right.padding", "radio")
+
+        part { name, "input_area";
+               type: TEXT;
+               description {
+                       state: "default" 0.0;
+                       fixed: 1 0;
+                       rel1 { relative, 1.0 0.0; to, "radio.right.padding"; }
+                       rel2 { relative, 1.0 1.0; to, "radio.right.padding"; }
+                       align, 0.0 0.5;
+                       text {
+                               font: "SLP:style=Medium";
+                               size: 64;
+                               min: 1 1;
+                               text: "00";
+                               text_class: "entry";
+                       }
+               }
+        }
+
+        part { name, "input_bg";
+                scale, 1;
+                description {
+                        state, "default" 0.0;
+                        min, 0 80;
+                        fixed, 0 1;
+                        align, 0.0 0.5;
+                        rel1 { relative, -0.1 -0.1; to, "input_sw"; }
+                        rel2 { relative, 1.1 1.1; to, "input_sw"; }
+                        image {
+                                normal, "01_dialoguegroup_edit_default.png";
+                                border, 13 13 9 14;
+                                border_scale, 1;
+                        }
+                }
+        }
+
+        part { name, "input_sw";
+                type, SWALLOW;
+                description {
+                        state, "default" 0.0;
+                        rel1 { relative, 0.0 0.0; to, "input_area"; }
+                        rel2 { relative, 1.0 1.0; to, "input_area"; }
+                        align, 0.0 0.5;
+                }
+        }
+
+         GENLIST_PART_PADDING_L("input_sw.padding.right", "input_sw")
+
+         GENLIST_PART_LISTITEM_LR("text", GENLIST_HEIGHT_1LINE,
+            "input_sw.padding.right", "elm.padding.right", )
+
+         GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "text"; target: "radio"; target: "input_sw"; )
+   }
+
+   group { name: "elm/genlist/item/dialogue/2icon.1text.custom/default";
+      inherit: "elm/genlist/item/2icon.1text.custom/default";
+      GENLIST_DIALOGUE_INHERIT_BODY( ; )
+      GENLIST_PROGRAMS_DIALOGUE( target: "text"; target: "radio"; )
+   }
+
+   group { name: "elm/genlist/item/3icon.1text.custom/default";
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "text";
+      data.item: "contents" "radio input_sw button";
+
+      images {
+         image, "01_dialoguegroup_edit_default.png" COMP;
+      }
+
+      parts {
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BASE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+
+         GENLIST_PART_ICON_BIG_L("radio", "elm.padding.left")
+         GENLIST_PART_PADDING_L("radio.right.padding", "radio")
+
+         part { name, "input_area";
+               type: TEXT;
+               description {
+                       state: "default" 0.0;
+                       fixed: 1 0;
+                       rel1 { relative, 1.0 0.0; to, "radio.right.padding"; }
+                       rel2 { relative, 1.0 1.0; to, "radio.right.padding"; }
+                       align, 0.0 0.5;
+                       text {
+                               font: "SLP:style=Medium";
+                               size: 64;
+                               min: 1 1;
+                               text: "00";
+                               text_class: "entry";
+                       }
+               }
+        }
+
+        part { name, "input_bg";
+                scale, 1;
+                description {
+                        state, "default" 0.0;
+                        min, 0 80;
+                        fixed, 0 1;
+                        align, 0.0 0.5;
+                        rel1 { relative, -0.1 -0.1; to, "input_sw"; }
+                        rel2 { relative, 1.1 1.1; to, "input_sw"; }
+                        image {
+                                normal, "01_dialoguegroup_edit_default.png";
+                                border, 13 13 9 14;
+                                border_scale, 1;
+                        }
+                }
+        }
+
+        part { name, "input_sw";
+                type, SWALLOW;
+                description {
+                        state, "default" 0.0;
+                        rel1 { relative, 0.0 0.0; to, "input_area"; }
+                        rel2 { relative, 1.0 1.0; to, "input_area"; }
+                        align, 0.0 0.5;
+                }
+        }
+
+         GENLIST_PART_PADDING_L("input_sw.padding.right", "input_sw")
+
+         GENLIST_PART_ICON_FIXED_WIDTH_L("button", 150, "input_sw.padding.right")
+         GENLIST_PART_PADDING_L("button.padding.right", "button")
+
+         GENLIST_PART_LISTITEM_LR("text", GENLIST_HEIGHT_1LINE,
+            "button.padding.right", "elm.padding.right", )
+
+         GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "text"; target: "radio"; )
+   }
+
+   group { name: "elm/genlist/item/dialogue/3icon.1text.custom/default";
+      inherit: "elm/genlist/item/3icon.1text.custom/default";
+      GENLIST_DIALOGUE_INHERIT_BODY( ; )
+      GENLIST_PROGRAMS_DIALOGUE( target: "text"; target: "radio"; target: "input_sw";
+         target: "button"; )
+   }
+
+   group { name: "elm/genlist/item/dialogue/1text.1icon.5.grid/default";
+      alias: "elm/genlist/item_odd/dialogue/1text.1icon.5.grid/default";
+      alias: "elm/genlist/item_compress/dialogue/1text.1icon.5.grid/default";
+      alias: "elm/genlist/item_compress_odd/dialogue/1text.1icon.5.grid/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text";
+      data.item: "contents" "elm.icon elm.icon.edit";
+
+      GENLIST_IMAGES_DIALOGUE_BG_IMAGE
+      parts {
+         GENLIST_PART_BG_IMAGE_DIALOGUE
+         GENLIST_PART_BASE
+         GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT )
+         GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( DIALOGUE_PADDING_SIZE_RIGHT )
+         GENLIST_PART_PADDING_TOP_SIZE(0)
+         GENLIST_PART_PADDING_BOTTOM_SIZE(0)
+
+         GENLIST_PART_SUBITEM_("elm.text", 86,
+            "elm.padding.left", "elm.padding.right", "elm.padding.top", "elm.icon",
+         )
+         GENLIST_PART_ICON("elm.icon",
+            GENLIST_DESCRIPTION_LRB("elm.padding.left", "elm.padding.right", "elm.padding.bottom", min: 0 205; fixed: 0 1;)
+         )
+         GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_DIALOGUE( target: "elm.text"; target: "elm.icon"; )
+   }
+
+#define OVERLAY(PART)\
+               fixed: 0 1;\
+               rel1 {\
+                   relative: 0.0 0.0; to, PART;\
+               }\
+               rel2 {\
+                   relative: 1.0 1.0; to, PART;\
+               }\
+               align: 0.0 0.5;\
+
+#define TEXTBLOCK_OVERLAY(PART_NAME, TARGET_PART, STYLE_DEFAULT, STYLE_SELECTED)\
+        part { name: PART_NAME;\
+            type: TEXTBLOCK;\
+            mouse_events: 0;\
+            scale: 1;\
+            description { state: "default" 0.0;\
+               min: GENLIST_SIZE_390_INC GENLIST_SIZE_48_INC;\
+               OVERLAY(TARGET_PART);\
+               text {\
+               style: STYLE_DEFAULT;\
+               min: 0 1;\
+                 text_class: "slp";\
+            }\
+               align: 0.0 0.5;\
+            }\
+            description { state: "selected" 0.0;\
+               min: GENLIST_SIZE_390_INC GENLIST_SIZE_48_INC;\
+               OVERLAY(TARGET_PART);\
+               text {\
+               style: STYLE_SELECTED;\
+               min: 0 1;\
+                 text_class: "slp";\
+            }\
+               align: 0.0 0.5;\
+            }\
+         }
+
+       group { name: "elm/genlist/item/dialogue/2icon.calendar/default";
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "contents" "elm.icon.1 elm.icon.2";
+
+      GENLIST_IMAGES_DIALOGUE_BG_IMAGE
+      parts {
+         GENLIST_PART_BG_IMAGE_DIALOGUE
+         GENLIST_PART_BASE
+         GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT )
+         GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( DIALOGUE_PADDING_SIZE_RIGHT )
+         GENLIST_PART_PADDING_TOP_SIZE(10)
+         GENLIST_PART_PADDING_BOTTOM_SIZE(10)
+
+        GENLIST_PART_ICON("elm.icon.1",
+            GENLIST_DESCRIPTION_LTB("elm.padding.left", "elm.padding.top", "elm.padding.bottom", min: 80 80; max: 80 80; fixed: 1 1;)
+         )
+         GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.icon.1")
+         GENLIST_PART_ICON("elm.icon.2",
+            GENLIST_DESCRIPTION("elm.padding.icon1.right", "elm.padding.right","elm.padding.top", "elm.padding.bottom", min:100 80;)
+         )
+         GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_DIALOGUE(target: "elm.icon.1"; target: "elm.icon.2";)
+   }
+
+#define GENLIST_GROUPINDEX_LIST_COLOR_TODAY 255 108 0 255
+#define GENLIST_GROUPINDEX_LINE_COLOR_TODAY 255 108 0 255
+
+// Group Title
+#define GENLIST_PARAM_INDEX_LIST_TODAY \
+   color: GENLIST_GROUPINDEX_LIST_COLOR_TODAY; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Bold"; \
+      size: GENLIST_GROUPINDEX_LIST_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PART_INDEX_LINE_TODAY(LEFT, RIGHT, TOP, BOTTOM) \
+         GENLIST_PART_RECT("index_line", \
+            GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+               color: GENLIST_GROUPINDEX_LINE_COLOR_TODAY; \
+               min: 0 4; \
+               max: -1 4;) \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \
+            } \
+         )
+
+   group { name: "elm/genlist/item/today_grouptitle/default";
+      alias: "elm/genlist/item_odd/groupindex/default";
+      alias: "elm/genlist/item_compress/groupindex/default";
+      alias: "elm/genlist/item_compress_odd/groupindex/default";
+          alias: "elm/genlist/item/grouptitle/default";
+      alias: "elm/genlist/item_odd/grouptitle/default";
+      alias: "elm/genlist/item_compress/grouptitle/default";
+      alias: "elm/genlist/item_compress_odd/grouptitle/default";
+
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text";
+      data.item: "treesize" "GENLIST_TREESIZE_DEFAULT";
+
+      GENLIST_IMAGE_GROUPINDEX
+      parts {
+         GENLIST_PART_BASE
+         GENLIST_PART_INDEX_BG_IMAGE
+         GENLIST_PART_PADDING_LEFT_SIZE(24)
+         GENLIST_PART_PADDING_RIGHT_SIZE(24)
+         GENLIST_PART_PADDING_TOP_SIZE(20)
+         GENLIST_PART_PADDING_BOTTOM_SIZE(14)
+         GENLIST_PART_TEXT("elm.text",
+            GENLIST_DESCRIPTION_LRT("elm.padding.left", "elm.padding.right", "elm.padding.top",
+               GENLIST_PARAM_INDEX_LIST_TODAY
+               min: 0 38; fixed: 1 1;)
+            GENLIST_DESCRIPTION_INDEX_LIST
+         )
+         GENLIST_PART_INDEX_LINE_TODAY("elm.padding.left", "elm.padding.right", "elm.text", "elm.padding.bottom")
+      }
+      programs {
+         GENLIST_PROGRAM_DISABLED( target: "elm.text"; target: "index_line"; )
+         GENLIST_PROGRAM_SELECT( target: "elm.text"; target: "index_line"; )
+      }
+   }
+
+  group { name: "elm/genlist/item/1text.1icon.9.allday/default";
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.textblock";
+      data.item: "contents" "elm.swallow.colorbar";
+
+      images {
+         image: "00_list_bubble_bg.png" COMP;
+      }
+       styles{
+               style { name: "day_allday_text";
+                       base: "font=SLP:style=Regular  font_size=34 align=left color=#000000FF wrap=mixed ellipsis=1";
+                       tag:  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag:  "hilight" "+ color=#000000";
+                       tag:  "b" "+ font=SLP:style=Bold";
+                       tag:  "tab" "\t";
+                       tag:  "strike" "+ strikethrough=on strikethrough_color=#FF0000";
+               }
+               style { name: "day_allday_text_selected";
+                       base: "font=SLP:style=Regular  font_size=34 align=left color=#F9F9F9FF wrap=mixed ellipsis=1";
+                       tag:  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag:  "hilight" "+ color=#000000";
+                       tag:  "b" "+ font=SLP:style=Bold";
+                       tag:  "tab" "\t";
+                       tag:  "strike" "+ strikethrough=on strikethrough_color=#FF0000";
+               }
+       }
+       parts {
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BASE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP_2LINE
+         GENLIST_PART_PADDING_BOTTOM_2LINE
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_COLORBAR
+
+         GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.swallow.colorbar")
+
+         GENLIST_PART_LISTITEM_LR("elm.text", GENLIST_HEIGHT_2LINE_MAIN,
+            "elm.padding.icon1.right", "elm.padding.right",
+         )
+         GENLIST_PART_FLIP
+         TEXTBLOCK_OVERLAY("elm.textblock", "elm.text", day_allday_text, day_allday_text_selected)
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.textblock";
+         target: "elm.swallow.colorbar"; )
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.textblock";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.textblock";
+            transition: LINEAR 0.1;
+         }
+   }
+
+  group { name: "elm/genlist/item/1text.1icon.9.task/default";
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.textblock";
+      data.item: "contents" "elm.swallow.colorbar elm.icon";
+
+      images {
+         image: "00_list_bubble_bg.png" COMP;
+      }
+       styles{
+               style { name: "day_task_text";
+                       base: "font=SLP:style=Regular  font_size=34 align=left color=#000000FF wrap=mixed ellipsis=1";
+                       tag:  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag:  "hilight" "+ color=#000000";
+                       tag:  "b" "+ font=SLP:style=Bold";
+                       tag:  "tab" "\t";
+                       tag:  "strike" "+ strikethrough=on strikethrough_color=#FF0000";
+               }
+               style { name: "day_task_text_selected";
+                       base: "font=SLP:style=Regular  font_size=34 align=left color=#F9F9F9FF wrap=mixed ellipsis=1";
+                       tag:  "br" "\n";
+                       tag,  "ps" "ps";
+                       tag:  "hilight" "+ color=#000000";
+                       tag:  "b" "+ font=SLP:style=Bold";
+                       tag:  "tab" "\t";
+                       tag:  "strike" "+ strikethrough=on strikethrough_color=#FF0000";
+               }
+       }
+       parts {
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BASE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP_2LINE
+         GENLIST_PART_PADDING_BOTTOM_2LINE
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_COLORBAR
+
+         GENLIST_PART_ICON_BIG_L("elm.icon", "elm.padding.left")
+         GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.icon")
+
+         GENLIST_PART_LISTITEM_LR_TB("elm.text", GENLIST_HEIGHT_2LINE_MAIN,
+            "elm.padding.icon1.right", "elm.padding.right",
+         )
+         GENLIST_PART_FLIP
+
+                TEXTBLOCK_OVERLAY("elm.textblock", "elm.text", day_task_text, day_task_text_selected)
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.textblock";
+         target: "elm.swallow.colorbar"; target: "elm.icon"; )
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.textblock";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.textblock";
+            transition: LINEAR 0.1;
+         }
+   }
diff --git a/data/edc/theme2/originals/genlist_macro.edc b/data/edc/theme2/originals/genlist_macro.edc
new file mode 100755 (executable)
index 0000000..a094889
--- /dev/null
@@ -0,0 +1,2853 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+//****************************************************************************//
+// *******************************  Default size macro **********************//
+//**************************************************************************//
+// if size is different for each theme, split it into each theme inc.
+
+#define GENLIST_HEIGHT_1LINE              112
+#define GENLIST_HEIGHT_2LINE_MAIN         54
+#define GENLIST_HEIGHT_2LINE_SUB          42
+#define GENLIST_HEIGHT_3LINE_MAIN         54
+#define GENLIST_HEIGHT_3LINE_SUB1         42
+#define GENLIST_HEIGHT_3LINE_SUB2         38
+#define GENLIST_HEIGHT_MULTILINE_SUB      38
+#define GENLIST_PART_LIST_LINE_HEIGHT     1
+#define GENLIST_HEIGHT_GROUPTITLE         46
+
+#define GENLIST_PADDING_SIZE_DEFAULT            16
+#define GENLIST_PADDING_SIZE_LEFT               26
+#define GENLIST_PADDING_SIZE_RIGHT              26
+#define GENLIST_PADDING_SIZE_TOP_2LINE          22
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE       22
+#define GENLIST_PADDING_SIZE_TOP_3LINE          17
+#define GENLIST_PADDING_SIZE_BOTTOM_3LINE       17
+#define GENLIST_PADDING_SIZE_NDEPTH             26
+
+#define DIALOGUE_PADDING_SCROLLER         16
+#define DIALOGUE_PADDING_SIZE_LEFT        16+20
+#define DIALOGUE_PADDING_SIZE_RIGHT       16+20
+
+#define GENLIST_ICON_BIG_SIZE             74
+#define GENLIST_ICON_SMALL_SIZE           38
+#define GENLIST_ICON_STAR_SIZE            38
+#define GENLIST_ICON_THUMBNAIL1_SIZE      104
+#define GENLIST_BTN_01_HEIGHT             74
+#define GENLIST_BTN_02_SIZE               74
+#define GENLIST_ICON_ONOFF_WIDTH          132
+#define GENLIST_ICON_ONOFF_HEIGHT         70
+#define GENLIST_ICON_CHECK_RADIO_SIZE     64
+#define GENLIST_ICON_COLORBAR_SIZE        7
+#define GENLIST_ICON_PASSWORD_SIZE        82
+
+#define GENLIST_TREESIZE_DEFAULT          26
+
+//#define GENLIST_DIALOGUE_SEPARATOR_DEFAULT_HEIGHT 40
+
+//****************************************************************************//
+// *****************  EDJE description have 24 patterns **********************//
+ //**************************************************************************//
+// ------------------
+// |  PART == HERE  |
+// ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 0 0; \
+            to: PART; \
+         }\
+         rel2 {\
+            relative: 1 1;\
+            to: PART; \
+         }\
+         PARAM\
+      }
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 { \
+            relative: 1 1;\
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// ---------------------
+//   HERE  <--| right
+// ---------------------
+#define GENLIST_DESCRIPTION_R( right, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// --------------------------
+// left |--> HERE  <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//   |  top     |
+// -----------------
+//  |  HERE  <--| right
+// -----------------
+//  | bottom   |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION_LRB( left, right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+//      |       top  |
+// ---------------------
+// left | -->  HERE  |
+#define GENLIST_DESCRIPTION_LT( left, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 1;\
+            to_x: left;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+// left |  --> HERE  |
+// ---------------------
+//      |     bottom |
+#define GENLIST_DESCRIPTION_LB( left, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |     top  |
+// ---------------------
+// left |--> HERE  |
+// ---------------------
+//      |   bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |   top  |
+// ---------------------
+//     |  HERE <--| right
+#define GENLIST_DESCRIPTION_RT( right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+//  | HERE <-- | right
+// ---------------------
+//  |  bottom  |
+#define GENLIST_DESCRIPTION_RB( right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 1;\
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// |   top  |
+// ----------
+// |  HERE  |
+// ----------
+// | bottom |
+#define GENLIST_DESCRIPTION_TB( top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+#define GENLIST_DATA_ITEM_NORMAL \
+      data.item: "stacking" "above"; \
+      data.item: "selectraise" "on"; \
+      data.item: "flips" "elm.flip.icon elm.flip.content"; \
+      data.item: "treesize" GENLIST_TREESIZE_DEFAULT;
+
+/*****************************************************************************/
+/******************************* Dialogue group ******************************/
+/*****************************************************************************/
+#define GENLIST_DIALOGUE_INHERIT_BODY( _PARTS ) \
+      data.item: "treesize" 0; \
+      GENLIST_IMAGES_DIALOGUE_BG_IMAGE \
+      parts { \
+         GENLIST_PART_BG_IMAGE_DIALOGUE \
+         GENLIST_PART_BOTTOM_LINE_OFF \
+         GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT ) \
+         GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( DIALOGUE_PADDING_SIZE_RIGHT ) \
+         _PARTS \
+         GENLIST_PART_FLIP \
+      }
+
+//****************************************************************************//
+// ****************************** BG Image **********************************//
+//****************************************************************************//
+#define GENLIST_IMAGE_GROUPINDEX \
+      images { \
+         image: "00_index list_bg.png" COMP; \
+      }
+#define GENLIST_PART_INDEX_BG_IMAGE \
+         part { name: "bg_image"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADEOUT \
+         }
+
+#define GENLIST_PART_BG_IMAGE \
+         part { name: "bg_image_clip"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "2depth" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "bg_image"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_LIST_BG_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               color: GENLIST_LIST_PRESS_COLOR; \
+            } \
+            description { state: "disabled" 0.0; \
+               color: GENLIST_LIST_DIM_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADEOUT \
+         }
+
+#define GENLIST_IMAGES_DIALOGUE_BG_IMAGE \
+         images { \
+            image : "00_list_group_bg.png" COMP; \
+            image : "00_list_group_bg_top.png" COMP; \
+            image : "00_list_group_bg_center.png" COMP; \
+            image : "00_list_group_bg_bottom.png" COMP; \
+            image : "00_list_group_bg_press.png" COMP; \
+            image : "00_list_group_bg_top_press.png" COMP; \
+            image : "00_list_group_bg_center_press.png" COMP; \
+            image : "00_list_group_bg_bottom_press.png" COMP; \
+         }
+
+#define GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+         rel1 { \
+            to_x: "bg_image_left"; \
+            relative: 1 0; \
+         } \
+         rel2 { \
+            to_x: "bg_image_right"; \
+            relative: 0 1; \
+         }
+
+#define GENLIST_PART_BG_IMAGE_DIALOGUE \
+         part { name: "bg_image_clip"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: 255 255 255 255; \
+            } \
+            description { state: "2depth" 0.0; \
+               color: 220 218 211 255; \
+            } \
+         } \
+         part { name: "bg_image_left"; \
+            type: SPACER; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 16 0; \
+               max: 16 -1; \
+               fixed: 1 0; \
+               align: 0 0.5; \
+               rel2.relative: 0 1; \
+            } \
+         } \
+         part { name: "bg_image_right"; \
+            type: SPACER; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 16 0; \
+               max: 16 -1; \
+               fixed: 1 0; \
+               align: 1 0.5; \
+               rel1.relative: 1 0; \
+            } \
+            description { state: "editmode" 0.0; \
+               inherit: "default" 0.0; \
+               min: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_BIG_SIZE) 0; \
+               max: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_BIG_SIZE) 0; \
+            } \
+         } \
+         part { name: "bg_image"; \
+            clip_to: "bg_image_clip"; \
+            type: IMAGE; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: 255 255 255 255; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg.png"; \
+                  border: 14 14 10 10; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               color: 255 255 255 255; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_press.png"; \
+                  border: 14 14 10 10; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "top" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_top.png"; \
+                  border: 14 14 10 2; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "top_selected" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_top_press.png"; \
+                  border: 14 14 10 2; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "center" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_center.png"; \
+                  border: 14 14 2 2; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "center_selected" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_center_press.png"; \
+                  border: 14 14 2 2; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "bottom" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_bottom.png"; \
+                  border: 14 14 2 10; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "bottom_selected" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_bottom_press.png"; \
+                  border: 14 14 2 10; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default"; \
+               color: 255 255 255 255; \
+            } \
+            GENLIST_DESCRIPTION_FADEOUT \
+         }
+
+//****************************************************************************//
+// ****************************** BASE  ********************************//
+//****************************************************************************//
+#define GENLIST_PART_BASE \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               align: 0.5 0.5; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         GENLIST_PART_PERSPECTIVE_POINT
+
+#define GENLIST_PART_BASE_REORDER \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               align: 0.5 0.5; \
+               color: 0 0 0 0; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: "reorder.padding.left"; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: "reorder.padding.right"; \
+               } \
+            } \
+         } \
+         part { name: "reorder.padding.left"; \
+            type: SPACER; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               rel2.relative: 0 1; \
+               align: 0 0.5; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 16 0; \
+               max: 16 -1; \
+            } \
+         } \
+         part { name: "reorder.padding.right"; \
+            type: SPACER; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               rel1.relative: 1 0; \
+               align: 1 0.5; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 16 0; \
+               max: 16 -1; \
+            } \
+         } \
+         GENLIST_PART_PERSPECTIVE_POINT
+
+//****************************************************************************//
+// ****************************** LINE ********************************//
+//****************************************************************************//
+#define GENLIST_PART_BOTTOM_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color: GENLIST_LIST_LINE1_COLOR; \
+               rel1.to: "bottom_line2"; \
+               rel2.to: "bottom_line2"; \
+               rel2.relative: 1 0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_PRESS_COLOR; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_DIM_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADEOUT \
+         } \
+         part { name: "bottom_line2"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color: GENLIST_LIST_LINE2_COLOR; \
+               rel1.to_x: "elm.padding.left"; \
+               rel1.relative: 1 0; \
+               rel2.to_x: "elm.padding.right"; \
+               rel2.relative: 0 1; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_PRESS_COLOR; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_DIM_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADEOUT \
+         }
+
+#define GENLIST_PART_BOTTOM_LINE_OFF \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            GENLIST_DESCRIPTION_FADEOUT_RECT \
+         } \
+         part { name: "bottom_line2"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            GENLIST_DESCRIPTION_FADEOUT_RECT \
+         }
+
+#define GENLIST_PART_DIVIDER_MARGIN \
+         GENLIST_PART_SPACER("elm.padding.divider.top", \
+            GENLIST_DESCRIPTION_ENVELOP("base", \
+               align: 0.5 0; \
+               min: 0 30; \
+               max: -1 30; \
+               fixed: 0 1; \
+               rel2.relative: 1 0; \
+            ) \
+         ) \
+         GENLIST_PART_SPACER("elm.padding.divider.bottom", \
+            GENLIST_DESCRIPTION_ENVELOP("base", \
+               align: 0.5 1; \
+               min: 0 30; \
+               max: -1 30; \
+               fixed: 0 1; \
+               rel1.relative: 0 1; \
+            ) \
+         ) \
+
+#define GENLIST_PART_DIVIDER_L(LEFT) \
+         GENLIST_PART_DIVIDER_MARGIN \
+         GENLIST_PART_RECT("elm.divider1", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.divider.top", "elm.padding.divider.bottom", \
+               min: 1 0; \
+               max: 1 -1; \
+               fixed: 1 0; \
+               color: GENLIST_LIST_DIVIDER1_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADEOUT_RECT \
+         ) \
+         GENLIST_PART_RECT("elm.divider2", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_LTB("elm.divider1", "elm.padding.divider.top", "elm.padding.divider.bottom", \
+               min: 1 0; \
+               max: 1 -1; \
+               fixed: 1 0; \
+               color: GENLIST_LIST_DIVIDER2_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADEOUT_RECT \
+         )
+
+#define GENLIST_PART_DIVIDER_R(RIGHT) \
+         GENLIST_PART_DIVIDER_MARGIN \
+         GENLIST_PART_RECT("elm.divider1", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_RTB("elm.divider2", "elm.padding.divider.top", "elm.padding.divider.bottom", \
+               min: 1 0; \
+               max: 1 -1; \
+               fixed: 1 0; \
+               color: GENLIST_LIST_DIVIDER1_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADEOUT_RECT \
+         ) \
+         GENLIST_PART_RECT("elm.divider2", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.divider.top", "elm.padding.divider.bottom", \
+               min: 1 0; \
+               max: 1 -1; \
+               fixed: 1 0; \
+               color: GENLIST_LIST_DIVIDER2_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADEOUT_RECT \
+         )
+
+#define GENLIST_PART_CENTER_LINE_LT(LEFT, TOP) \
+         GENLIST_PART_SPACER("elm.padding.divider.left", \
+            GENLIST_DESCRIPTION_L(LEFT, \
+               min: 16 0; \
+               max: 16 -1; \
+               fixed: 1 0; \
+            ) \
+         ) \
+         GENLIST_PART_SPACER("elm.padding.divider.right", \
+            GENLIST_DESCRIPTION_ENVELOP("base", \
+               min: 16 0; \
+               max: 16 -1; \
+               fixed: 1 0; \
+               align: 1 0.5; \
+               rel1.relative: 1 0; \
+            ) \
+         ) \
+         GENLIST_PART_RECT("center_line", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_LRT("elm.padding.divider.left", "elm.padding.divider.right", TOP, \
+               min: 0 1; \
+               max: -1 1; \
+               fixed: 0 1; \
+               color: GENLIST_LIST_DIVIDER1_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADEOUT_RECT \
+         ) \
+         GENLIST_PART_RECT("center_line2", \
+            GENLIST_DESCRIPTION_LRT("elm.padding.divider.left", "elm.padding.divider.right", "center_line", \
+               min: 0 1; \
+               max: -1 1; \
+               fixed: 0 1; \
+               color: GENLIST_LIST_DIVIDER2_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADEOUT_RECT \
+         )
+
+#define GENLIST_PART_COLORBAR \
+         GENLIST_PART_SPACER("elm.padding.colorbar.top", \
+             GENLIST_DESCRIPTION_ENVELOP("base", \
+               align: 0.5 0; \
+               fixed: 0 1; \
+               min: 0 4; \
+               max: -1 4; \
+               rel2.relative: 1 0; \
+             ) \
+         ) \
+         GENLIST_PART_SPACER("elm.padding.colorbar.bottom", \
+             GENLIST_DESCRIPTION_ENVELOP("base", \
+               align: 0.5 1; \
+               fixed: 0 1; \
+               min: 0 4; \
+               max: -1 4; \
+               rel1.relative: 0 1; \
+             ) \
+         ) \
+         GENLIST_PART_ICON("elm.swallow.colorbar", \
+            GENLIST_DESCRIPTION_LTB("bg_image", "elm.padding.colorbar.top", "elm.padding.colorbar.bottom", \
+               min: GENLIST_ICON_COLORBAR_SIZE 0; \
+               max: GENLIST_ICON_COLORBAR_SIZE -1; \
+               fixed: 1 0; \
+               rel1.relative: 0 1; \
+               rel2.relative: 0 0; \
+            ) \
+            GENLIST_DESCRIPTION_FADEOUT \
+         )
+
+//****************************************************************************//
+//********************************* PADDING **********************************//
+//****************************************************************************//
+#define GENLIST_PART_EXPANDED_PAD \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               min: 0 0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 0.0 1.0; \
+            } \
+         } \
+
+#define GENLIST_PART_PADDING( NAME, SIZE, REL1, REL2 ) \
+      GENLIST_PART_SPACER(NAME, \
+         description { state: "default" 0.0; \
+            min: SIZE 0; \
+            max: SIZE -1; \
+            fixed: 1 0; \
+            align: 0.5 0.5; \
+            rel1 { \
+               relative: REL1; \
+               to: "base"; \
+            } \
+            rel2 { \
+               relative: REL2; \
+               to: "base"; \
+            } \
+         } \
+      )
+
+#define GENLIST_PART_PADDING_LEFT \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: GENLIST_PADDING_SIZE_LEFT 0; \
+               max: GENLIST_PADDING_SIZE_LEFT -1; \
+               fixed: 1 0; \
+            ) \
+         )
+
+#define GENLIST_PART_PADDING_LEFT_SIZE( SIZE ) \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               fixed: 1 0; \
+            ) \
+         )
+
+#define GENLIST_PART_EDITBTN \
+         part { name: "elm.icon.edit"; \
+            type: SWALLOW; \
+            scale: 1; \
+            GENLIST_DESCRIPTION_R("elm.padding.edit.right", \
+               fixed: 1 1; \
+               visible: 0; \
+               min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
+               max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
+            ) \
+            description { state: "editmode" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+         GENLIST_PART_SPACER("elm.padding.edit.right", \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+               min: GENLIST_PADDING_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT -1; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_RIGHT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_RIGHT_SIZE( SIZE ) \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_RIGHT_EDIT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+            description { state: "editmode" 0.0; \
+               inherit: "default" 0.0; \
+               min: (DIALOGUE_PADDING_SIZE_RIGHT+GENLIST_ICON_BIG_SIZE+GENLIST_PADDING_SIZE_RIGHT) 0; \
+               max: (DIALOGUE_PADDING_SIZE_RIGHT+GENLIST_ICON_BIG_SIZE+GENLIST_PADDING_SIZE_RIGHT) -1; \
+            } \
+         ) \
+         GENLIST_PART_EDITBTN
+
+#define GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( SIZE ) \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+            description { state: "editmode" 0.0; \
+               inherit: "default" 0.0; \
+               min: (DIALOGUE_PADDING_SIZE_RIGHT+SIZE+GENLIST_ICON_BIG_SIZE) 0; \
+               max: (DIALOGUE_PADDING_SIZE_RIGHT+SIZE+GENLIST_ICON_BIG_SIZE) -1; \
+            } \
+         ) \
+         GENLIST_PART_EDITBTN
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+               max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_TOP_SIZE( SIZE ) \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 SIZE; \
+               max: -1 SIZE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+         )
+
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+         GENLIST_PART_SPACER("elm.padding.bottom", \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+               max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.5 1.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM_SIZE( SIZE ) \
+         GENLIST_PART_SPACER("elm.padding.bottom", \
+            description { state: "default" 0.0; \
+               min: 0 SIZE; \
+               max: -1 SIZE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.5 1.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to_x: RIGHT; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: RIGHT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_R_SIZE( NAME, RIGHT, SIZE ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to_x: RIGHT; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: RIGHT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: LEFT; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to_x: LEFT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_L_SIZE( NAME, LEFT, SIZE ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: LEFT; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to_x: LEFT; \
+               } \
+            } \
+         )
+
+
+#define GENLIST_PART_PADDING_T_SIZE( NAME, TOP, SIZE ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               min: 0 SIZE; \
+               max: -1 SIZE; \
+               fixed: 0 1; \
+               align: 0.5 0; \
+               rel1 { \
+                  relative: 0 1; \
+                  to: TOP; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to: TOP; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_B_SIZE( NAME, BOTTOM, SIZE ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               min: 0 SIZE; \
+               max: -1 SIZE; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               rel1 { \
+                  relative: 0.5 0; \
+                  to: BOTTOM; \
+               } \
+               rel2 { \
+                  relative: 0.5 0; \
+                  to: BOTTOM; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PERSPECTIVE_POINT \
+         GENLIST_PART_RECT("point", \
+            description { \
+               state: "default" 0.0; \
+               color: 0 0 0 0; \
+               rel1 { relative: 0.0 0.0; } \
+               rel2 { relative: 1.0 0.0; } \
+            } \
+         )
+
+#define GENLIST_DESCRIPTION_ROTATE( param_x, param_y, param_z ) \
+   description { state: "map_contracted" 0.0; \
+      inherit: "default" 0.0; \
+      map { \
+         perspective: "point"; \
+         on: 1; \
+         smooth: 1; \
+         perspective_on: 1; \
+         backface_cull: 1; \
+         rotation { \
+            center: "point"; \
+            x: param_x; \
+            y: param_y; \
+            z: param_z; \
+         } \
+      } \
+   } \
+   description { state: "map_expanded" 0.0; \
+      inherit: "default" 0.0; \
+      map { \
+         perspective: "point"; \
+         on: 1; \
+         smooth: 1; \
+         perspective_on: 1; \
+         backface_cull: 1; \
+         rotation { \
+            center: "point"; \
+            x: 0; \
+            y: 0; \
+            z: 0; \
+         } \
+      } \
+   } \
+   description { \
+      state: "hide" 0.0; \
+      inherit: "default" 0.0; \
+      visible: 0; \
+   }
+
+#define GENLIST_PROGRAM_ROTATE( TARGET ) \
+   program { name: "map_expand_start"; \
+      signal: "flip_item"; \
+      action: STATE_SET "map_contracted" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+      after: "map_expanding"; \
+   } \
+   program { name: "map_expanding"; \
+      action: STATE_SET "hide" 0.0; \
+      transition: LINEAR 0.2; \
+      target: "bg_image"; \
+      TARGET \
+      after: "map_expand_end"; \
+   } \
+   program { name: "map_expand_end"; \
+      action: STATE_SET "default" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+   } \
+   program { name: "map_contract_start"; \
+      signal: "elm,state,contract_flip"; \
+      action: STATE_SET "map_expanded" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+      after: "map_contracting"; \
+   } \
+   program { name: "map_contracting"; \
+      action: STATE_SET "map_contracted" 0.0; \
+      transition: LINEAR 0.3; \
+      target: "bg_image"; \
+      TARGET \
+      after: "map_contract_end"; \
+   } \
+   program { name: "map_contract_end"; \
+      action: STATE_SET "hide" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+   }
+
+// FIXME: swallow part cannot be fade out ???
+#define GENLIST_DESCRIPTION_FADEOUT_ICON \
+   description { state: "fadeout" 0.0; \
+      inherit: "default" 0.0; \
+      visible: 0; \
+   } \
+   description { state: "fadeout2" 0.0; \
+      inherit: "fadeout" 0.0; \
+   } \
+   description { state: "fadein" 0.0; \
+      inherit: "default" 0.0; \
+      visible: 0; \
+   } \
+
+#define GENLIST_DESCRIPTION_FADEOUT_RECT \
+   description { state: "fadeout" 0.0; \
+      inherit: "default" 0.0; \
+      color: 255 255 255 50; \
+      visible: 0; \
+   } \
+   description { state: "fadeout2" 0.0; \
+      inherit: "fadeout" 0.0; \
+   } \
+   description { state: "fadein" 0.0; \
+      inherit: "default" 0.0; \
+   } \
+
+#define GENLIST_DESCRIPTION_FADEOUT \
+   description { state: "fadeout" 0.0; \
+      inherit: "default" 0.0; \
+      visible: 0; \
+   } \
+   description { state: "fadeout2" 0.0; \
+      inherit: "fadeout" 0.0; \
+   } \
+   description { state: "fadein" 0.0; \
+      inherit: "default" 0.0; \
+   } \
+
+// FIXME: fadein effect is removed.. because blinking happens.
+// text has some timing issue??
+#define GENLIST_DESCRIPTION_FADEOUT_TEXT \
+   description { state: "fadeout" 0.0; \
+      inherit: "default" 0.0; \
+      color: 255 255 255 50; \
+      visible: 0; \
+   } \
+   description { state: "fadeout2" 0.0; \
+      inherit: "default" 0.0; \
+   } \
+   description { state: "fadein" 0.0; \
+      inherit: "default" 0.0; \
+   } \
+
+#define GENLIST_PROGRAM_EXPAND_FADE( TARGET ) \
+   program { name: "bg_color_change"; \
+      signal: "bg_color_change"; \
+      action: STATE_SET "2depth" 0.0; \
+      target: "bg_image_clip"; \
+   } \
+   program { name: "expand_start_fade"; \
+      signal: "flip_item"; \
+      action: STATE_SET "fadeout2" 0.0; \
+      after: "expand_end_fade"; \
+      target: "bg_image"; \
+      TARGET \
+   } \
+   program { name: "expand_end_fade"; \
+      action: STATE_SET "default" 0.0; \
+      transition: DECELERATE 0.3; \
+      target: "bg_image"; \
+      TARGET \
+   } \
+   program { name: "contract_fade"; \
+      signal: "elm,state,contract_flip"; \
+      action: STATE_SET "fadein" 0.0; \
+      after: "contract_end_fade"; \
+      target: "bg_image"; \
+      TARGET \
+   } \
+   program { name: "contract_end_fade"; \
+      action: STATE_SET "fadeout" 0.0; \
+      transition: ACCELERATE 0.3; \
+      target: "bg_image"; \
+      TARGET \
+   }
+
+#define GENLIST_PROGRAM_EXPAND_ROOT( TARGET ) \
+         program { \
+            name: "go_expanded"; \
+            signal: "elm,state,expanded"; \
+            source: "elm"; \
+            action: STATE_SET "active" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+         } \
+         program { \
+            name: "go_contracted"; \
+            signal: "elm,state,contracted"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+         } \
+         program { \
+            name: "show"; \
+            signal: "elm,state,show"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+         } \
+         program { \
+            name: "hide"; \
+            signal: "elm,state,hide"; \
+            action: STATE_SET "hide" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_EXPANDABLE( SRC ) \
+        program { \
+            name: "expand"; \
+            signal: "mouse,up,1"; \
+            SRC \
+            action: SIGNAL_EMIT "elm,action,expand,toggle" "elm"; \
+         } \
+
+// 2.2.7 Genlist_Edit mode (Rename)
+// FIXME: padding is not needed when swallow content is NULL.
+// But how can edje kwno existence of swallow content?
+#define GENLIST_PART_FLIP \
+         part { name: "elm.flip.event_block";\
+            type: RECT;\
+            mouse_events: 0; \
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               visible: 0; \
+            } \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+               color: GENLIST_LIST_BG_COLOR;\
+            }\
+         }\
+         part { name: "elm.flip.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 26 0; \
+               max: 26 -1; \
+               fixed: 1 0; \
+               visible: 0; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to: "base"; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to: "base"; \
+               } \
+            } \
+         } \
+         part { name: "elm.flip.padding.right"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 26 0; \
+               max: 26 -1; \
+               fixed: 1 0; \
+               visible: 0; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to: "base"; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to: "base"; \
+               } \
+            } \
+         } \
+         part { name: "elm.flip.content"; \
+            type: SWALLOW; \
+            scale: 1; \
+            GENLIST_DESCRIPTION_LR("elm.flip.padding.left", "elm.flip.padding.icon.left", \
+               aspect: 1 1; visible: 0; ) \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+         GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+         GENLIST_PART_ICON( "elm.flip.icon", \
+            GENLIST_DESCRIPTION_R("elm.flip.padding.right", \
+               visible: 0; \
+               aspect: 1 1; \
+               align: 1 0.5; \
+               max: 154 74;) \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         )
+
+//****************************************************************************//
+// *******************************  Programs ********************************//
+//**************************************************************************//
+// signal: elm,state,%s,active
+//   a "check" item named %s went active
+// signal: elm,state,%s,passive
+//   a "check" item named %s went passive
+// default is passive
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+            after: "play_button_press"; \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+            transition: LINEAR 0.1; \
+         } \
+         program { name: "play_button_press"; \
+         }
+
+#define GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+            after: "play_button_press"; \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+            transition: LINEAR 0.1; \
+         } \
+         program { name: "play_button_press"; \
+         }
+
+#define GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_image", st, 30, vl); \
+               if (!strcmp(st, "top")) \
+                  set_state(PART:"bg_image", "top_selected", 0.0); \
+               else if (!strcmp(st, "center")) \
+                  set_state(PART:"bg_image", "center_selected", 0.0); \
+               else if (!strcmp(st, "bottom")) \
+                  set_state(PART:"bg_image", "bottom_selected", 0.0); \
+               else \
+                  set_state(PART:"bg_image", "selected", 0.0); \
+            } \
+            after: "target_selected"; \
+            after: "play_button_press"; \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_image", st, 30, vl); \
+               if (!strcmp(st, "top_selected")) \
+                  set_state(PART:"bg_image", "top", 0.0); \
+               else if (!strcmp(st, "center_selected"))  \
+                  set_state(PART:"bg_image", "center", 0.0); \
+               else if (!strcmp(st, "bottom_selected"))  \
+                  set_state(PART:"bg_image", "bottom", 0.0); \
+               else \
+                  set_state(PART:"bg_image", "default", 0.0); \
+            } \
+            transition: LINEAR 0.1; \
+            after: "target_unselected"; \
+         } \
+         program { name: "target_selected"; \
+            action: STATE_SET "selected" 0.0; \
+            TARGET \
+         }\
+         program { name: "target_unselected"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         }\
+         program { name: "bg_top"; \
+            signal: "elm,state,top"; \
+            source: "*"; \
+            action: STATE_SET "top" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "bg_center"; \
+            signal: "elm,state,center"; \
+            source: "*"; \
+            action: STATE_SET "center" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "bg_bottom"; \
+            signal: "elm,state,bottom"; \
+            source: "*"; \
+            action: STATE_SET "bottom" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "bg_default"; \
+            signal: "elm,state,default"; \
+            source: "*"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "play_button_press"; \
+         }
+
+         #if 0
+         program { name: "flip_enabled"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flip_enabled" 0.0; \
+            after:   "flip_enabled_next"; \
+         } \
+         after:   "flip_disabled_next";
+         program { name:    "flip_disabled_next"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            target: "disclip"; \
+         }
+         #endif
+
+#define GENLIST_PROGRAM_FLIP \
+         program { name: "flip_enabled"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flip_enabled" 0.0; \
+            target: "elm.flip.event_block"; \
+            after: "flip_enabled_next"; \
+         } \
+         program { name: "flip_enabled_next"; \
+            action:  STATE_SET "flip_enabled" 0.0; \
+            transition: DECELERATE 0.5; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            transition: DECELERATE 0.5; \
+            target: "elm.flip.event_block"; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_TARGET( TARGET ) \
+         program { name: "flip_enabled"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flip_enabled" 0.0; \
+            transition: DECELERATE 0.5; \
+            TARGET; \
+         } \
+         program { name: "flip_disabled"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            transition: DECELERATE 0.5; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_EDITMODE \
+         program { name: "edit_enabled"; \
+            signal:  "elm,state,edit,enabled"; \
+            source:  "*"; \
+            action:  STATE_SET "editmode" 0.0; \
+            target: "elm.padding.right"; \
+            target: "elm.icon.edit"; \
+            target: "bg_image_right"; \
+         } \
+         program { name: "edit_disabled"; \
+            signal:  "elm,state,edit,disabled"; \
+            source:  "*"; \
+            action:  STATE_SET "editmode" 0.0; \
+            target: "elm.padding.right"; \
+            target: "elm.icon.edit"; \
+            target: "bg_image_right"; \
+         }
+
+#define GENLIST_PROGRAMS_INDEX( TARGET ) \
+         programs { \
+            GENLIST_PROGRAM_DISABLED( TARGET ) \
+         }
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+         programs { \
+            GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+            GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+            GENLIST_PROGRAM_EXPAND_FADE( target: "bottom_line"; target: "bottom_line2"; TARGET ) \
+            GENLIST_PROGRAM_FLIP \
+         }
+
+// FIXME: inheritance !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
+// if GENLIST_PROGRAM_EXPAND is here, expanda effect is something wrong.
+// because after can be duplicated when program inheriting.
+#define GENLIST_PROGRAMS_DIALOGUE( TARGET ) \
+         programs { \
+            GENLIST_PROGRAM_DISABLED( TARGET ) \
+            GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+            GENLIST_PROGRAM_FLIP \
+            GENLIST_PROGRAM_EDITMODE \
+         }
+
+#define GENLIST_PROGRAMS_MULTILINE( TARGET ) \
+         programs { \
+            GENLIST_PROGRAM_DISABLED( TARGET ) \
+            GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+            GENLIST_PROGRAM_FLIP \
+         }
+
+#define GENLIST_PROGRAMS_READ_TEXT1( TARGET ) \
+      script { \
+         public readed = 0; \
+      } \
+      programs { \
+         GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+         GENLIST_PROGRAM_FLIP \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+            after: "play_button_press"; \
+         } \
+         program { name: "go_passive_target"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+            after: "go_passive_text1"; \
+         } \
+         program { name: "go_passive_text1"; \
+            transition: LINEAR 0.1; \
+            script { \
+               set_state(PART:"bg_image", "default", 0.0); \
+               set_state(PART:"bottom_line", "default", 0.0); \
+               set_state(PART:"bottom_line2", "default", 0.0); \
+               if (get_int(readed) == 1) \
+                 set_state(PART:"elm.text.1", "read", 0.0); \
+               else \
+                 set_state(PART:"elm.text.1", "default", 0.0); \
+            } \
+         } \
+         program { name: "play_button_press"; \
+         } \
+         program { name: "go_read"; \
+            signal: "elm,state,read"; \
+            source: "*"; \
+            script { \
+              set_int(readed, 1); \
+              set_state(PART:"elm.text.1", "read", 0.0); \
+            } \
+         } \
+         program { name: "go_unread"; \
+            signal: "elm,state,unread"; \
+            source: "*"; \
+            script { \
+              set_int(readed, 0); \
+              set_state(PART:"elm.text.1", "default", 0.0); \
+            } \
+         } \
+      }
+
+//****************************************************************************//
+// *******************************  Icon Part ******************************//
+//***************************************************************************//
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: SWALLOW; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADEOUT_ICON \
+   }
+
+#define GENLIST_PARAM_ICON_BIG \
+         min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
+         max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE;
+
+#define GENLIST_PARAM_ICON_SMALL \
+         min: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE; \
+         max: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_01 \
+         min: 0 GENLIST_BTN_01_HEIGHT; \
+         max: 0 GENLIST_BTN_01_HEIGHT;
+
+#define GENLIST_PARAM_ICON_BTN_02 \
+         min: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \
+         max: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE;
+
+#define GENLIST_PARAM_ICON_ONOFF_WIDTH \
+         min: GENLIST_ICON_ONOFF_WIDTH GENLIST_ICON_ONOFF_HEIGHT; \
+         max: GENLIST_ICON_ONOFF_WIDTH GENLIST_ICON_ONOFF_HEIGHT;
+
+#define GENLIST_PARAM_ICON_THUMBNAIL1\
+         min: GENLIST_ICON_THUMBNAIL1_SIZE GENLIST_ICON_THUMBNAIL1_SIZE; \
+         max: GENLIST_ICON_THUMBNAIL1_SIZE GENLIST_ICON_THUMBNAIL1_SIZE;
+
+#define GENLIST_PARAM_ICON_CHECK_RADIO \
+         min: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE; \
+         max: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE;
+
+#define GENLIST_PARAM_ICON_STAR \
+         min: GENLIST_ICON_STAR_SIZE GENLIST_ICON_STAR_SIZE; \
+         max: GENLIST_ICON_STAR_SIZE GENLIST_ICON_STAR_SIZE; \
+
+#define GENLIST_PART_ICON_BIG_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         fixed: 1 1; \
+         GENLIST_PARAM_ICON_BIG \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BIG_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         fixed: 1 1; \
+         GENLIST_PARAM_ICON_BIG \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         GENLIST_PARAM_ICON_SMALL \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_LB(NAME, LEFT, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LB(LEFT, BOTTOM, \
+         fixed: 1 1; \
+        GENLIST_PARAM_ICON_SMALL \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_LTB(NAME, LEFT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM, \
+         GENLIST_PARAM_ICON_SMALL \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_RTB(NAME, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         fixed: 1 1; \
+         GENLIST_PARAM_ICON_SMALL \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_01_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         GENLIST_PARAM_ICON_BTN_01 \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_02_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         GENLIST_PARAM_ICON_BTN_02 \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_ONOFF_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         GENLIST_PARAM_ICON_ONOFF_WIDTH \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_ONOFF_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         GENLIST_PARAM_ICON_ONOFF_WIDTH \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_THUMBNAIL1_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         GENLIST_PARAM_ICON_THUMBNAIL1 \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_CHECK_RADIO_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         GENLIST_PARAM_ICON_CHECK_RADIO \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_STAR_RTB(NAME, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         GENLIST_PARAM_ICON_STAR \
+         fixed: 1 1; \
+      ) \
+   )
+
+/*****************************************************************************/
+/******************************* Genlist IMAGE ********************************/
+/*****************************************************************************/
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: IMAGE; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADEOUT \
+   }
+
+#define GENLIST_PARAM_PASSWORD_IMAGE \
+            min: GENLIST_ICON_PASSWORD_SIZE GENLIST_ICON_PASSWORD_SIZE; \
+            max: GENLIST_ICON_PASSWORD_SIZE GENLIST_ICON_PASSWORD_SIZE; \
+            image.normal: "00_search_edit_field_bg_02.png"; \
+            image.border: 4 4 4 4; \
+            image.border_scale: 1;
+
+/*****************************************************************************/
+/******************************* Genlist Bubble ********************************/
+/*****************************************************************************/
+#define GENLIST_PARAM_BUBBLE \
+   image { \
+      normal: "00_list_bubble_bg.png"; \
+      border: 8 8 0 0; \
+   } \
+   rel1.offset: -10 0; \
+   rel2.offset: 10 0;
+
+#define GENLIST_PART_BUBBLE(TEXT_NAME) \
+         GENLIST_PART_IMAGE("elm.bubble", \
+            GENLIST_DESCRIPTION_ENVELOP(TEXT_NAME, \
+               GENLIST_PARAM_BUBBLE \
+               min: 48 38; \
+               max: -1 38; \
+               fixed: 0 1;) \
+            GENLIST_DESCRIPTION_FADEOUT \
+         )
+
+#define GENLIST_IMAGES_EXPANDABLE_BTN \
+         images { \
+            image: "00_button_expand_closed.png" COMP; \
+            image: "00_button_expand_opened.png" COMP; \
+         }
+
+#define GENLIST_PART_EXPANDABLE_ARROW \
+         GENLIST_PART_ICON("touch_arrow", \
+            ignore_flags: ON_HOLD; \
+            GENLIST_DESCRIPTION_ENVELOP("arrow", ) \
+            GENLIST_DESCRIPTION_FADEOUT \
+         ) \
+         GENLIST_PART_IMAGE("arrow", \
+            ignore_flags: ON_HOLD; \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_R("elm.padding.right", \
+               fixed: 1 1; \
+               min: 74 74; \
+               max: 74 74; \
+               image.normal: "00_button_expand_closed.png"; \
+            ) \
+            description { state: "active" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_button_expand_opened.png"; \
+            } \
+            GENLIST_DESCRIPTION_FADEOUT \
+         )
+/*****************************************************************************/
+/******************************* Genlist RECT ********************************/
+/*****************************************************************************/
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: SPACER; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: RECT; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADEOUT_RECT \
+   }
+
+#define GENLIST_PART_INDEX_LINE(LEFT, RIGHT, TOP, BOTTOM) \
+         GENLIST_PART_RECT("index_line", \
+            GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+               color: GENLIST_GROUPINDEX_LINE_COLOR; \
+               min: 0 4; \
+               max: -1 4;) \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \
+            } \
+         )
+
+/*****************************************************************************/
+/******************************* Genlist TEXT ********************************/
+/*****************************************************************************/
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: TEXT; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADEOUT_TEXT \
+   }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: TEXTBLOCK; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADEOUT_TEXT \
+   }
+
+/*************************** parameters **********************************/
+#define GENLIST_PARAM_TEXT_LIMIT_RB \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: 0.5 0; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+#define GENLIST_PARAM_TEXT_LIMIT_RT \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: 0.5 1; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+// Group Index
+#define GENLIST_PARAM_INDEX_LIST \
+   color: GENLIST_GROUPINDEX_LIST_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Bold"; \
+      size: GENLIST_GROUPINDEX_LIST_SIZE; \
+      text_class: "list_item"; \
+   }
+
+// Group Title
+#define GENLIST_PARAM_DIALOGUE_GROUP_TITLE \
+   color: GENLIST_DIALOGUE_GROUP_TITLE_COLOR; \
+   text { \
+      align: 0.0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Bold"; \
+      size: GENLIST_DIALOGUE_GROUP_TITLE_SIZE; \
+      text_class: "list_item"; \
+   }
+
+// Password style
+#define GENLIST_PARAM_PASSWORD_TITLE \
+   color: DIALOGUE_PASSWORD_TITLE_COLOR; \
+   text { \
+      font: "SLP:style=Bold"; \
+      size: DIALOGUE_PASSWORD_TITLE_SIZE; \
+      min: 0 1; \
+      align: 0 0.5; \
+      text_class: "list_item"; \
+   }
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+   color: GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Regular"; \
+      size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_main_text_unread"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TB_WRAP \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_main_text_unread_wrap"; \
+   }
+
+// list subtext
+#define GENLIST_PARAM_SUBITEM_DEFAULT \
+   color: GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Medium"; \
+      size: GENLIST_LIST_SUB_TEXT_SIZE; \
+      text_class: "slp"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_SETTINGS \
+   color: GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Medium"; \
+      size: GENLIST_LIST_SUB_TEXT_SIZE; \
+      text_class: "slp"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_default"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_default_wrap"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_SETTINGS_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_settings"; \
+   }
+
+#define GENLIST_PARAM_APPS_NAME\
+   color: GENLIST_APPS_NAME_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Bold"; \
+      size: GENLIST_APPS_NAME_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_APPS_INC\
+   color: GENLIST_APPS_INC_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Bold"; \
+      size: GENLIST_APPS_INC_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_APPS_RATING\
+   color: GENLIST_APPS_RATING_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Bold"; \
+      size: GENLIST_APPS_RATING_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_APPS_PRICE\
+   color: GENLIST_APPS_PRICE_ORIGINAL_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Bold"; \
+      size: GENLIST_APPS_PRICE_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_APPS_PRICE_SALE\
+   color: GENLIST_APPS_PRICE_SALE_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Bold"; \
+      size: GENLIST_APPS_PRICE_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_CONTENTS_TEXT \
+   color: GENLIST_CONTENTS_TEXT_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Regular"; \
+      size: GENLIST_CONTENTS_TEXT_SIZE; \
+      text_class: "slp"; \
+   }
+
+/*************************** Descriptions **********************************/
+// group index
+#define GENLIST_DESCRIPTION_INDEX_LIST \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_GROUPINDEX_LIST_FOCUS_COLOR; \
+   }
+
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_unread_dim"; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_read"; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_read_dim"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_focus"; \
+   }
+
+// list sub text
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_dim"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_focus"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_focus_wrap"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_settings_dim"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_focus"; \
+   }
+
+// list main text multiline
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB_WRAP \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_unread_dim_wrap"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_focus_wrap"; \
+   }
+
+/*************************** Parts **********************************/
+#define GENLIST_PART_DIALOGUE_GROUP_HELP_TEXT(NAME, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         text { \
+            min: 0 1; \
+            style: "genlist_style_dialogue_group_help_text"; \
+         } \
+         PARAM) \
+   )
+
+#define GENLIST_PART_LISTITEM(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXT(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_TB(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_LRT_TB(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_LR_TB(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXT(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_DEFAULT_TB(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_R(NAME, HEIGHT, RIGHT) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RB \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RB(NAME, HEIGHT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RB(RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; \
+         GENLIST_PARAM_TEXT_LIMIT_RB \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RB_TB(NAME, HEIGHT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_RB(RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RB \
+         fixed: 1 1; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_R_FIXED(NAME, WIDTH, HEIGHT, RIGHT) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         min: WIDTH HEIGHT; \
+         fixed: 1 1; \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_R_FIXED_TB(NAME, WIDTH, HEIGHT, RIGHT) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+       GENLIST_DESCRIPTION_R(RIGHT, \
+         min: WIDTH HEIGHT; \
+         fixed: 1 0; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_L_FIXED(NAME, WIDTH, HEIGHT, LEFT) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         min: WIDTH HEIGHT; \
+         fixed: 1 1; \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LR_TB(NAME, HEIGHT, LEFT, RIGHT) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_LB(NAME, HEIGHT, LEFT, RIGHT) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LB(LEFT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB_LIMIT(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+         fixed: 1 1; align: 0 1; text.max: 1 0;  // This limits text growing. \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_SETTINGS_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_SETTINGS\
+         PARAM; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB_TB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_SETTINGS_LRB_TB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_SETTINGS_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LTB(NAME, HEIGHT, LEFT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RTB_TB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PARAM_LIST_BUBBLE_TEXT \
+   color: GENLIST_LIST_BUBBLE_TEXT_COLOR; \
+   text { \
+      align: 1 0.5; \
+      min: 0 1; \
+      font: "SLP:style=Bold"; \
+      size: GENLIST_LIST_BUBBLE_TEXT_SIZE; \
+      text_class: "slp"; \
+   }
+
+#define GENLIST_PART_LIST_BUBBLE_TEXT_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_LIST_BUBBLE_TEXT \
+      ) \
+   )
+
+#if 0
+#define GENLIST_PART_BASE__( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: LAYOUT_GROUP_LIST_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BG \
+         part { name: "bg"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_DIALOGUE_GROUP_BG_COLOR; \
+            } \
+            description { state: "hide" 0.0; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.025 0.0; } \
+               rel2 { relative: 1.025 1.0; } \
+            } \
+            description { state: "hide" 0.1;  \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.13 0.0; } \
+               rel2 { relative: 1.13 1.0; } \
+            } \
+            description { state: "hide" 0.2; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.5 0.0; } \
+               rel2 { relative: 1.5 1.0; } \
+            } \
+            description { state: "hide" 0.3; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 1.0 0.0; } \
+               rel2 { relative: 2.0 1.0; } \
+            } \
+         }
+
+/******************************************************************************/
+/** ETC
+/******************************************************************************/
+// FIXME: UX do not define selected state. But I thinkt that it is neededs :(
+
+#define GENLIST_PROOGRAM_EXPAND(SRC, TARGET) \
+   program { \
+      name: "expand"; \
+      signal: "mouse,clicked,1"; \
+      source: SRC; \
+      action: SIGNAL_EMIT "elm,action,expand,toggle" "elm"; \
+   } \
+   program { \
+      name: "go_expanded"; \
+      signal: "elm,state,expanded"; \
+      source: "elm"; \
+      action: STATE_SET "active" 0.0; \
+      TARGET \
+   } \
+   program { \
+      name: "go_contracted"; \
+      signal: "elm,state,contracted"; \
+      source: "elm"; \
+      action: STATE_SET "default" 0.0; \
+      TARGET \
+   }
+
+#define GENLIST_PART_BASE_LIST_H( HEIGHT) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               align: 0.5 0.5; \
+               color: 0 0 0 0; \
+               rel2.relative: 1 0; \
+               rel2.to: "bottom_line"; \
+               min: 0 HEIGHT; \
+            } \
+         } \
+         GENLIST_PART_BOTTOM_LINE
+
+#define GENLIST_PART_DIALOGUE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 10 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_RIGHT_LINE \
+         part { name: "elm.rect.dialogue.right.line"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 1 0; \
+               fixed: 1 0; \
+               rel1 { \
+                  relative: 1.0  0.0; \
+                  offset: -1 0; \
+               } \
+               align: 1.0 0.0; \
+               color: GENLIST_LIST_LINE1_COLOR; \
+            } \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+             target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+
+#define GENLIST_DESCRIPTION_INVISIBLE_SELECTED \
+            description { state: "selected" 1.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_DESCRIPTION_FLIP_ENABLED \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) \
+                  set_state(PART:"elm.text", "selected", 1.0); \
+               else \
+                  set_state(PART:"elm.text", "selected", 0.0); \
+            }
+
+
+/* genlist multisense macro - start */
+#define GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS \
+            after: "play_button_press";
+
+#define GENLIST_PROGRAM_PLAY_BUTTON_PRESS \
+         program { name: "play_button_press"; \
+         }
+#endif
diff --git a/data/edc/theme2/originals/genlist_textblock_style.edc b/data/edc/theme2/originals/genlist_textblock_style.edc
new file mode 100644 (file)
index 0000000..6c5807f
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+/*
+ * vim:ts=3
+*/
+
+#define STYLE_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font=Tizen:style=Bold";\
+
+#define STYLE_TAG_MATCH \
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR; \
+
+// FIXME: Why this is needed? just don't use match color, right? damn textblock bug...
+#define STYLE_TAG_MATCH_FOCUS \
+      tag:  "match" GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE; \
+
+
+styles {
+   // ********************** dialgoue group help text
+   style { name: "genlist_style_dialogue_group_help_text";
+      base: "font=Tizen:style=Medium font_size="GENLIST_DIALOGUE_GROUP_HELP_TEXT_SIZE" color="GENLIST_DIALOGUE_GROUP_HELP_TEXT_COLOR_STYLE" text_class=list_item wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   // ********************** list main text
+   style { name: "genlist_style_list_main_text_unread";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_unread_dim";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_read";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_read_dim";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_focus";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+  // **********************  list main text (multiline)
+   style { name: "genlist_style_list_main_text_unread_wrap";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_unread_dim_wrap";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_focus_wrap";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+   // ********************** list sub text
+   style { name: "genlist_style_list_sub_text_default";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_dim";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+   style { name: "genlist_style_list_sub_text_settings";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_settings_dim";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_focus";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+   // ********************** list sub text (multiline)
+   style { name: "genlist_style_list_sub_text_default_wrap";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_dim_wrap";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_focus_wrap";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+}
diff --git a/data/edc/theme2/originals/readme b/data/edc/theme2/originals/readme
new file mode 100644 (file)
index 0000000..9afaf81
--- /dev/null
@@ -0,0 +1,12 @@
+This folder contains (almost) exact copies from platform code.
+
+DO NOT freely modify edc files in this folder.
+
+genlist_macro.edc      efl-theme-tizen/themes/widgets/genlist/genlist_macro.edc
+tizen-hd-inc.edc       efl-theme-tizen/themes/inc/tizen-hd-inc.edc
+
+
+Modifications from originals
+============================
+1. Added the following line to GENLIST_PART_ICON_SMALL_RTB definition:
+         fixed: 1 1; \
diff --git a/data/edc/theme2/originals/tizen-hd-inc.edc b/data/edc/theme2/originals/tizen-hd-inc.edc
new file mode 100755 (executable)
index 0000000..6b63719
--- /dev/null
@@ -0,0 +1,1186 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#define BG_DEFAULT_COLOR_INC 248 246 239 255
+#define BG_EDIT_MODE_COLOR_INC 248 246 239 255
+#define BG_GROUP_LIST_COLOR_INC 248 246 239 255
+#define BG_TRANSPARENT_COLOR_INC 0 0 0 0
+
+#define LAYOUT_BG_COLOR_INC 248 246 239 255
+#define LAYOUT_EDIT_MODE_BG_COLOR_INC 248 246 239 255
+#define LAYOUT_GROUP_LIST_BG_COLOR_INC 248 246 239 255
+#define LAYOUT_INDICATOR_HEIGHT_INC 60
+#define LAYOUT_INDICATOR_COLOR_INC 0 0 0 255
+
+#define NAVIFRAME_TITLE_BG_COLOR_INC 248 246 239 255
+#define NAVIFRAME_TOOLBAR_BG_COLOR_INC 248 246 239 255
+#define NAVIFRAME_TITLE_TOP_PADDING_INC 0 32
+#define NAVIFRAME_TITLE_TOOLBAR_TOP_PADDING_INC 0 33
+#define NAVIFRAME_TITLE_TOOLBAR_BOTTOM_PADDING_INC 0 8
+#define NAVIFRAME_TITLE_H_INC 111
+#define NAVIFRAME_TAB_TITLE_H_INC 165
+#define NAVIFRAME_TOOLBAR_HEIGHT_INC 98
+#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 68 68
+#define NAVIFRAME_PREV_FUNC_BTN_SIZE_INC 60 60
+#define NAVIFRAME_TITLE_TAB_H_INC 68
+#define NAVIFRAME_TITLE_TAB_LARGE_H_INC 111
+#define NAVIFRAME_TITLE_TAB_FONT_SIZE_INC 44
+#define NAVIFRAME_TITLE_TAB_TEXT_H_INC 87
+#define NAVIFRAME_TITLE_FONT_SIZE_INC 56
+#define NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC 44
+#define NAVIFRAME_ICON_SIZE_INC 38 38
+#define NAVIFRAME_PADDING_INC 16 0
+#define NAVIFRAME_PADDING2_INC 18 0
+#define NAVIFRAME_PADDING3_INC 8 0
+#define NAVIFRAME_BOTTOM_TEXT_PADDING_INC 0 11
+#define NAVIFRAME_BOTTOM_RIGHT_PADDING_INC 26 11
+#define NAVIFRAME_BOTTOM_PADDING_INC 0 10
+#define NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC 115 0
+#define NAVIFRAME_TOOLBAR_BUTTONS_PADDING_INC 15
+#define NAVIFRAME_ICON_PADDING_INC 70 0
+#define NAVIFRAME_TITLE_TEXT_COLOR_INC 59 115 182 255
+#define NAVIFRAME_SUBTITLE_TEXT_COLOR_INC 59 115 182 255
+#define NAVIFRAME_SUBTITLE_FONT_SIZE_INC 32
+
+#define PROGRESSBAR_TITLE_FONT_SIZE_INC 28
+#define PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC 20
+
+#define POPUP_ITEM_BG_DEFAULT_MIN_INC 0 112
+#define POPUP_ITEM_LEFT_MIN_PADDING_INC 26 0
+#define POPUP_ITEM_RIGHT_MIN_PADDING_INC 26 0
+#define POPUP_ITEM_ICON_TEXT_PADDING_INC 16 0
+#define POPUP_ITEM_TEXT_DISABLED_COLOR_INC 128 128 128 255
+#define POPUP_ITEM_TEXT_DISABLED_VISIBLE_COLOR_INC 128 128 128 255
+
+#define POPUP_DEFAULT_TITLE_TEXT_COLOR_INC "#3b73b6"
+#define POPUP_DEFAULT_DESCRIPTION_TEXT_COLOR_INC "#000000"
+#define POPUP_DIM_BG_DEFAULT_COLOR_INC 0 0 0 0
+#define POPUP_DIM_BG_COLOR_INC 0 0 0 127
+#define POPUP_DIM_BG_CLICKED_COLOR_INC 0 0 0 127
+#define POPUP_DIM_BG_TRANS_COLOR_INC 0 0 0 0
+#define POPUP_DIM_BG_CLICKED_TRANS_COLOR_INC 0 0 0 50
+#define POPUP_CUSTOMSTYLE_TITLE_BOTTOM_LINE_COLOR_INC 70 82 102 255
+#define POPUP_CUSTOMSTYLE_TITLE_TEXT_COLOR_INC 80 147 182 255
+
+#define CTXPOPUP_WIDTH_MIN_INC 386
+#define CTXPOPUP_BUBBLE_BG_IMAGE_BORDER 22 22 20 28
+#define CTXPOPUP_SHADOW_LEFT_PADDING 10
+#define CTXPOPUP_SHADOW_RIGHT_PADDING 10
+#define CTXPOPUP_SHADOW_TOP_PADDING 8
+#define CTXPOPUP_SHADOW_BOTTOM_PADDING 16
+#define CTXPOPUP_CONTENT_PADDING 4
+#define CTXPOPUP_FRAME_CORNER_ARROW_PADDING 20
+#define CTXPOPUP_BG_COLOR_INC 0 0 0 0
+#define CTXPOPUP_BG_PRESS_COLOR_INC 42 137 194 255
+#define CTXPOPUP_MAIN_TEXT_UNREAD_COLOR_INC 255 255 255 255
+#define CTXPOPUP_MAIN_TEXT_PRESS_COLOR_INC 255 255 255 255
+#define CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC 1
+#define CTXPOPUP_SEPARATOR_PADDING_INC 20
+#define CTXPOPUP_SEPARATOR_COLOR_INC 45 45 45 255
+#define CTXPOPUP_SEPARATOR2_COLOR_INC 91 91 91 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_1_COLOR_INC 45 45 45 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_2_COLOR_INC 91 91 91 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MIN_SIZE_INC 1 74
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MAX_SIZE_INC 1 74
+#define CTXPOPUP_TP_BG_COLOR_INC 7 180 211 255
+#define CTXPOPUP_ITEM_TEXT_SIZE_INC 40
+#define CTXPOPUP_ITEM_MAIN_TEXT_SIZE_INC 32
+#define CTXPOPUP_ITEM_HEIGHT_INC 110
+#define CTXPOPUP_ITEM_HORIZONTAL_WIDTH_INC 128
+#define CTXPOPUP_ITEM_HORIZONTAL_HEIGHT_INC 96
+#define CTXPOPUP_ICON_WIDTH_INC 64
+#define CTXPOPUP_ICON_HEIGHT_INC 64
+#define CTXPOPUP_ICON_HORIZONTAL_WIDTH_INC 48
+#define CTXPOPUP_ICON_HORIZONTAL_HEIGHT_INC 48
+#define CTXPOPUP_ARROW_SIZE_INC 48 48
+#define CTXPOPUP_VERTICAL_ARROW_SIZE_INC 40 30
+#define CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC 30 40
+#define CTXPOPUP_ITEM_TEXT_PADDING_INC 20
+#define CTXPOPUP_ITEM_ICON_PADDING_INC 16
+#define CTXPOPUP_IE_ARROW_SIZE_INC 52
+#define CTXPOPUP_IE_FONT_SIZE_INC 40
+#define CTXPOPUP_IE_ITEM_PADDING_INC 22
+#define CTXPOPUP_IE_ITEM_HEIGHT_INC 75
+#define CTXPOPUP_IE_CONTENT_WIDTH_MAX_INC 720
+#define CTXPOPUP_IE_ICON_WIDTH_INC 60
+#define CTXPOPUP_IE_ICON_HEIGHT_INC 60
+#define CTXPOPUP_TP_ARROW_SIZE_INC 30
+#define CTXPOPUP_TP_HEIGHT_INC 106
+#define CTXPOPUP_MORE_ITEM_PADDING_INC 24
+#define CTXPOPUP_MORE_ITEM_HEIGHT_INC 102
+#define CTXPOPUP_MORE_ICON_WIDTH_INC 72
+#define CTXPOPUP_MORE_ICON_HEIGHT_INC 72
+#define CTXPOPUP_MORE_ITEM_TEXT_SIZE_INC 40
+#define CTXPOPUP_MORE_SEPARATOR_PADDING_INC 20
+
+#define DISKSELECTOR_DF_FONT_COLOR_INC 255 255 255 178
+#define DISKSELECTOR_DF_FONT_MOUSE_DOWN_COLOR_INC 255 255 255 255
+#define DISKSELECTOR_DF_ITEM_MIN_SIZE_INC 70 106;
+#define DISKSELECTOR_DF_FONT_SIZE_INC 48
+#define DISKSELECTOR_DF_DATA_MIN_HEIGHT_INC "106"
+
+#define LABEL_TEXT_BLOCK_STYLE_COLOR_INC "#000000"
+#define LABEL_FONT_SIZE_INC 36
+#define LABEL_MIN_FONT_SIZE_INC 27
+#define LABEL_MAX_FONT_SIZE_INC 90
+
+#define GENGRID_FONT_STYLE_18_INC "26"
+#define GENGRID_PART_BG_COLOR_INC 0 0 0 0
+#define GENGRID_PART_REORDER_DEFAULT_BG_COLOR_INC 0 0 0 77
+#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 77
+#define GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC "#000000"
+#define GENGRID_PART_BACKGROUND_COLOR_INC 0 0 0 0
+#define GENGRID_EDIT_MODE_CHECK_TOP_RIGHT_INC 6 6
+#define GENGRID_EDIT_MODE_CHECK_SIZE_INC 54 54
+#define GENGRID_EDIT_MODE_CHECK_BG_COLOR_INC 0 0 0 154
+#define GENGRID_ITEM_CHECK_TOP_RIGHT_PADDING_INC 6 6
+
+#define GENGRID_DEFAULT_LEFT_TOP_PADDING_INC 2 2
+#define GENGRID_DEFAULT_RIGHT_BOTTOM_PADDING_INC 2 2
+#define GENGRID_DEFAULT_ITEM_BG_LEFT_TOP_PADDING_INC 1 1
+#define GENGRID_DEFAULT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC 1 1
+#define GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC 0 0
+#define GENGRID_DEFAULT_LEFT_TOP_FOCUS_PADDING_INC 2 2
+#define GENGRID_DEFAULT_RIGHT_BOTTOM_FOCUS_PADDING_INC 2 2
+
+#define GENGRID_LANDSCAPE_LEFT_TOP_PADDING_INC 5 5
+#define GENGRID_LANDSCAPE_RIGHT_BOTTOM_PADDING_INC 5 5
+#define GENGRID_LANDSCAPE_LEFT_TOP_FOCUS_PADDING_INC 4 4
+#define GENGRID_LANDSCAPE_RIGHT_BOTTOM_FOCUS_PADDING_INC 4 4
+#define GENGRID_LANDSCAPE_GRID_TEXT_LEFT_TOP_PADDING_INC 5 5
+#define GENGRID_LANDSCAPE_GRID_TEXT_RIGHT_BOTTOM_PADDING_INC 5 59
+#define GENGRID_LANDSCAPE_GRID_TEXT_LEFT_TOP_FOCUS_PADDING_INC 4 4
+#define GENGRID_LANDSCAPE_GRID_TEXT_RIGHT_BOTTOM_FOCUS_PADDING_INC 4 60
+
+#define GENGRID_GRID_TEXT_LEFT_TOP_PADDING_INC 2 2
+#define GENGRID_GRID_TEXT_RIGHT_BOTTOM_PADDING_INC 2 62
+#define GENGRID_GRID_TEXT_ITEM_BG_LEFT_TOP_PADDING_INC 1 1
+#define GENGRID_GRID_TEXT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC 1 1
+#define GENGRID_GRID_TEXT_ITEM_REAL_BG_RIGHT_PADDING_INC 0 0
+#define GENGRID_GRID_TEXT_LEFT_TOP_FOCUS_PADDING_INC 2 2
+#define GENGRID_GRID_TEXT_RIGHT_BOTTOM_FOCUS_PADDING_INC 2 62
+
+#define GENGRID_GRID_TEXT2_LEFT_TOP_PADDING_INC 2 62
+#define GENGRID_GRID_TEXT2_RIGHT_BOTTOM_PADDING_INC 2 2
+#define GENGRID_GRID_TEXT2_ITEM_BG_LEFT_TOP_PADDING_INC 1 1
+#define GENGRID_GRID_TEXT2_ITEM_BG_RIGHT_BOTTOM_PADDING_INC 1 1
+#define GENGRID_GRID_TEXT2_ITEM_REAL_BG_RIGHT_PADDING_INC 0 0
+#define GENGRID_GRID_TEXT2_LEFT_TOP_FOCUS_PADDING_INC 2 62
+#define GENGRID_GRID_TEXT2_RIGHT_BOTTOM_FOCUS_PADDING_INC 2 2
+
+// Please do not use these !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+#define GENLIST_PADDING_5_INC 5
+#define GENLIST_PADDING_24_INC 24
+#define GENLIST_PADDING_64_INC 64
+#define GENLIST_PADDING_88_INC 88
+#define GENLIST_PADDING_34_INC 34
+#define GENLIST_PADDING_32_INC 32
+#define GENLIST_PADDING_16_INC 16
+#define GENLIST_SIZE_80_INC 80
+
+#define BUBBLE_DISCLIP_COLOR                        255 255 255 102 // opacity 40%
+
+// List bg color
+#define GENLIST_LIST_BG_COLOR                       248 246 239 255
+#define GENLIST_DIALOGUE_BG_COLOR                   248 246 239 255
+#define GENLIST_LIST_PRESS_COLOR                    87 135 194 255
+#define GENLIST_LIST_DIM_COLOR                      219 217 212 255
+#define GENLIST_LIST_LINE1_COLOR                    211 209 203 255
+#define GENLIST_LIST_LINE2_COLOR                    255 255 255 255
+#define GENLIST_LIST_DIVIDER1_COLOR                 185 184 178 255
+#define GENLIST_LIST_DIVIDER2_COLOR                 255 255 255 255
+#define GENLIST_LIST_CENTERLINE1_COLOR              206 205 202 255
+#define GENLIST_SELECT_ALL_BG_COLOR                 220 218 211 255
+
+// Group Index
+#define GENLIST_GROUPINDEX_LIST_SIZE                     32
+#define GENLIST_GROUPINDEX_LIST_COLOR                    59 115 182 255
+#define GENLIST_GROUPINDEX_LIST_FOCUS_COLOR              255 255 255 255
+
+#define GENLIST_GROUPINDEX_LIST_BG_COLOR                 248 246 239 255
+#define GENLIST_GROUPINDEX_LIST_PRESS_COLOR              132 162 198 255
+#define GENLIST_GROUPINDEX_LINE_COLOR                    59 115 182 255
+#define GENLIST_GROUPINDEX_LINE_FOCUS_COLOR              255 255 255 255
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_SIZE                         44
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR                 0 0 0 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE           "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR             0 0 0 102
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE       "#00000066"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR                   128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR               128 128 128 204
+#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR                  255 255 255 255
+#define GENLIST_LIST_MAIN_TEXT_FOCUS_COLOR_STYLE            "#FFFFFFFF"
+
+#define GENLIST_LIST_SUB_TEXT_SIZE                          32
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR                 128 128 128 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE           "#808080FF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR             128 128 128 204
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE       "#808080CC"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR                59 115 182 255
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE          "#3B73B6FF"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR            59 115 182 76
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE      "#3B73B64C"
+#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR                   255 255 255 255
+#define GENLIST_LIST_SUB_TEXT_FOCUS_COLOR_STYLE             "#FFFFFFFF"
+
+#define GENLIST_CONTENTS_TEXT_SIZE                          28
+#define GENLIST_CONTENTS_TEXT_COLOR                         128 128 128 255
+#define GENLIST_CONTENTS_TEXT_COLOR_STYLE                   "#808080FF"
+
+#define GENLIST_LIST_BUBBLE_TEXT_SIZE                       32
+#define GENLIST_LIST_BUBBLE_TEXT_COLOR                      249 249 249 255
+
+// Dialogue group
+#define GENLIST_DIALOGUE_GROUP_TITLE_SIZE           32
+#define GENLIST_DIALOGUE_GROUP_TITLE_COLOR          59 115 182 255
+
+#define GENLIST_APPS_NAME_SIZE                          30
+#define GENLIST_APPS_NAME_COLOR                         128 128 128 255
+#define GENLIST_APPS_INC_SIZE                           30
+#define GENLIST_APPS_INC_COLOR                          0 0 0 255
+#define GENLIST_APPS_RATING_SIZE                        24
+#define GENLIST_APPS_RATING_COLOR                       128 128 128 255
+#define GENLIST_APPS_PRICE_SIZE                         24
+#define GENLIST_APPS_PRICE_ORIGINAL_COLOR               59 115 182 255
+#define GENLIST_APPS_PRICE_SALE_COLOR                   229 33 52 255
+#define GENLIST_APPS_PRICE_FREE_COLOR                   59 115 182 255
+
+#define DIALOGUE_PASSWORD_TITLE_SIZE                    32
+#define DIALOGUE_PASSWORD_TITLE_COLOR                   128 128 128 255
+
+#define GENLIST_DIALOGUE_GROUP_HELP_TEXT_SIZE           32
+#define GENLIST_DIALOGUE_GROUP_HELP_TEXT_COLOR_STYLE    "#808080FF"
+#define GENLIST_PART_MATCH_TAG_COLOR                    "+ color=#3F8DAD"
+
+#define BUTTON_TEXT_SHADOW_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_TEXT_SHADOW_DIM_COLOR_INC 255 255 255 255
+#define BUTTON_TEXT_SHADOW_PRESSED_COLOR_INC 0 0 0 255
+
+#define BUTTON_NAVIFRAME_TEXT_SHADOW_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TEXT_SHADOW_DIM_COLOR_INC 0 0 0 163
+
+#define BUTTON_TICKER_TEXT_SHADOW_NORMAL_COLOR_INC 0 0 0 127
+#define BUTTON_TICKER_TEXT_SHADOW_NORMAL_COLOR_INC 0 0 0 127
+
+#define BUTTON_NUMBER_TEXT_NORMAL_COLOR_INC 50 50 50 255
+#define BUTTON_NUMBER_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_NUMBER_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_NUMBER_TEXT_DISABLE_VISIBLE_COLOR_INC 50 50 50 76
+
+#define BUTTON_SEARCH_BUTTON_TEXT_NORMAL_COLOR_INC 58 58 58 255
+#define BUTTON_SEARCH_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_TEXT_DISABLED_COLOR_INC 58 58 58 76
+#define BUTTON_SEARCH_BUTTON_TEXT_SHADOW_PRESSED_COLOR_INC 0 0 0 153
+
+#define BUTTON_SEARCH_BUTTON_SEND_NORMAL_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_SEND_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_SEND_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_SEND_DISABLED_COLOR_INC 248 246 239 76
+#define BUTTON_SEARCH_BUTTON_SEND_SHADOW_NORMAL_COLOR_INC 0 0 0 153
+
+#define BUTTON_SEARCH_BUTTON_CANCEL_NORMAL_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_CANCEL_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_CANCEL_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_CANCEL_DISABLED_COLOR_INC 248 246 239 76
+#define BUTTON_SEARCH_BUTTON_CANCEL_SHADOW_NORMAL_COLOR_INC 0 0 0 153
+
+#define BUTTON_SEND_BUBBLE_TEXT_NORMAL_COLOR_INC 50 50 50 255
+#define BUTTON_SEND_BUBBLE_TEXT_PRESSED_COLOR_INC 50 50 50 255
+#define BUTTON_SEND_BUBBLE_TEXT_FOCUSED_COLOR_INC 50 50 50 255
+#define BUTTON_SEND_BUBBLE_TEXT_DISABLED_COLOR_INC 50 50 50 255
+#define BUTTON_SEND_BUBBLE_TEXT_SHADOW_NORMAL_COLOR_INC 255 255 255 153
+
+#define BUTTON_RECEIVE_BUBBLE_TEXT_NORMAL_COLOR_INC 248 246 239 255
+#define BUTTON_RECEIVE_BUBBLE_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_RECEIVE_BUBBLE_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_RECEIVE_BUBBLE_TEXT_DISABLED_COLOR_INC 248 246 239 255
+#define BUTTON_RECEIVE_BUBBLE_TEXT_SHADOW_NORMAL_COLOR_INC 0 0 0 153
+
+#define BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC 50 50 50 255
+#define BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_TEXT_STYLE1_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC 50 50 50 76
+
+#define BUTTON_NAVIFRAME_TITLE1_NORMAL_COLOR_INC 77 77 77 255
+#define BUTTON_NAVIFRAME_TITLE1_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_NAVIFRAME_TITLE1_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_NAVIFRAME_TITLE1_DISABLED_COLOR_INC 58 58 58 76
+
+#define BUTTON_POPUP_BUTTON_TEXT_NORMAL_COLOR_INC 50 50 50 255
+#define BUTTON_POPUP_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_POPUP_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_POPUP_BUTTON_TEXT_DISABLED_COLOR_INC 50 50 50 76
+
+#define BUTTON_EXPAND_BUTTON_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_DISABLED_COLOR_INC 48 49 50 255
+
+#define BUTTON_DELETE_BUTTON_TEXT_NORMAL_COLOR_INC 248 246 239 255
+#define BUTTON_DELETE_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_DELETE_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_DELETE_BUTTON_TEXT_DISABLED_COLOR_INC 248 246 239 76
+
+#define BUTTON_SWEEP_BUTTON_TEXT_NORMAL_COLOR_INC 50 50 50 255
+#define BUTTON_SWEEP_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_SWEEP_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_SWEEP_BUTTON_TEXT_DISABLED_COLOR_INC 50 50 50 76
+
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_NORMAL_COLOR_INC 50 50 50 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_DISABLED_COLOR_INC 50 50 50 255
+
+#define BUTTON_CONTACT_BUTTON_BG_NORMAL_COLOR_INC 8 158 185 255
+#define BUTTON_CONTACT_BUTTON_BG_PRESSED_COLOR_INC 2 85 100 255
+
+#define BUTTON_CONTACT_BUTTON_TEXT_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_CONTACT_BUTTON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_CONTACT_BUTTON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_CONTACT_BUTTON_TEXT_DISABLED_COLOR_INC 255 255 255 76
+
+#if 0
+#define BUTTON_HIDDEN_BUTTON_TEXT_NORMAL_COLOR_INC 50 50 50 76
+#define BUTTON_HIDDEN_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_DISABLED_COLOR_INC 106 106 106 255
+
+#define BUTTON_HIDDEN_BG_NORMAL_MIN_INC 12 74
+#define BUTTON_HIDDEN_BG_BORDER_INC 12 12 12 12
+#define BUTTON_HIDDEN_PADDING_MIN_INC 12 5
+#define BUTTON_HIDDEN_ICON_RECT_MIN_INC 0 38
+#define BUTTON_HIDDEN_PADDING_ICON_TEXT_VISIBLE_MIN_INC 16 0
+#define BUTTON_HIDDEN_ICON_ICONONLY_MIN_INC 38 38
+#define BUTTON_HIDDEN_TEXT_MIN_INC 90 36
+#define BUTTON_HIDDEN_FONT_SIZE_INC 36
+
+#define BUTTON_PICKER_TEXT_DEFAULT_COLOR_INC 249 249 249 255
+#define BUTTON_PICKER_TEXT_CLICKED_COLOR_INC 249 249 249 255
+#define BUTTON_PICKER_TEXT_DISABLED_COLOR_INC 48 49 50 255
+#define BUTTON_PICKER_TEXT_FOCUSED_COLOR_INC 249 249 249 255
+
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_BG_DEFAULT_MIN_INC 74 66
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_BG_DEFAULT_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_PADDING_MIN_INC 16 5
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_ICON_RECT_MIN_INC 0 56
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_PADDING_ICON_RECT_TEXT_MIN_INC 5 0
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_CONTENT_ICON_ONLY_MIN_INC 56 56
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_TEXT_VISIBLE_MIN_INC 96 56
+
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_BG_DEFAULT_MIN_MAX_INC 74 66
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_BG_DEFAULT_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_PADDING_MIN_INC 5 5
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_IMAGE_MIN_MAX_INC 32 32
+
+#define BUTTON_PICKER_BAR_DEFAULT_BG_DEFAULT_MIN_INC 74 66
+#define BUTTON_PICKER_BAR_DEFAULT_BG_DEFAULT_IMAGE_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_BAR_DEFAULT_PADDING_MIN_INC 5 5
+#define BUTTON_PICKER_BAR_DEFAULT_ICON_RECT_DEFAULT_MIN_INC 0 56
+#define BUTTON_PICKER_BAR_DEFAULT_PADDING_ICON_RECT_TEXT_MIN_INC 5 0
+#define BUTTON_PICKER_BAR_DEFAULT_CONTENT_ICONONLY_MIN_INC 56 56
+#define BUTTON_PICKER_BAR_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define BUTTON_PICKER_BAR_DEFAULT_TEXT_VISIBLE_MIN_INC 128 56
+
+#define BUTTON_NAVIFRAME_TITLE1_BG_BORDER_INC 5 5 5 5
+#define BUTTON_NAVIFRAME_TITLE1_BG_MIN_INC 74 70
+#define BUTTON_NAVIFRAME_TITLE1_PADDING_MIN_INC 28 0
+#define BUTTON_NAVIFRAME_TITLE1_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_TITLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC 8 0
+#define BUTTON_NAVIFRAME_TITLE1_VISIBLE_ICON_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_TITLE1_ICONONLY_ICON_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_TITLE1_FONT_SIZE_INC 32
+
+#define BUTTON_NAVIFRAME_CENTER_BG_NORMAL_MIN_INC 14 72
+#define BUTTON_NAVIFRAME_CENTER_BG_NORMAL_BORDER_INC 6 6 6 6
+#define BUTTON_NAVIFRAME_CENTER_PADDING_MIN_MAX_INC 16 2
+#define BUTTON_NAVIFRAME_CENTER_ICON_RECT_VISIBLE_MIN_SIZE 36 36
+#define BUTTON_NAVIFRAME_CENTER_PADDING_AFTER_ICON_VISIBLE_MIN_INC 6 0
+#define BUTTON_NAVIFRAME_CENTER_PADDING_BEFORE_TEXT_DEFAULT_MIN_INC 6 0
+#define BUTTON_NAVIFRAME_CENTER_SWALLOW_VISIBLE_MIN_MAX_INC 36 36
+#define BUTTON_NAVIFRAME_CENTER_SWALLOW_ICONONLY_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_CENTER_TEXT_FONT_SIZE_INC 32
+#define BUTTON_NAVIFRAME_MULTILINE_TEXT_FONT_SIZE_INC 24
+#endif
+
+#define BUTTON_TEXT_CONTACTS_DELETE_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_CONTACTS_DELETE_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_CONTACTS_DELETE_DISABLED_COLOR_INC 0 0 0 128
+
+#define BUTTON_NAVIFRAME_TITLE_TEXT_NORMAL_COLOR_INC 77 77 77 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_DISABLED_COLOR_INC 58 58 58 76
+
+#define BUTTON_NAVIFRAME_BG_COLOR_PRESSED_INC 109 159 238 255
+
+#define BUTTON_NUMBERED_TEXT_NORMAL_COLOR_INC 249 249 249 255
+
+#define BUTTON_DATETIME_AMPM_BG_MIN_INC 106 56
+
+#define BUTTON_SEARCH_BUTTON_BG_BORDER_INC 12 12 12 12
+#define BUTTON_SEARCH_BUTTON_BG_MIN_INC 100 66
+#define BUTTON_SEARCH_BUTTON_VISIBLE_BG_MIN_INC 148 66
+#define BUTTON_SEARCH_BUTTON_ICONONLY_BG_MIN_INC 66 66
+#define BUTTON_SEARCH_BUTTON_TEXT_FONT_SIZE_INC 30
+
+#define BUTTON_BUBBLE_CIRCLE_BG_MIN_MAX_INC 74 74
+#define BUTTON_BUBBLE_CIRCLE_IMAGE_MIN_MAX_INC 74 74
+#define BUTTON_BUBBLE_CIRCLE_MIN_WIDTH_INC 74
+#define BUTTON_BUBBLE_CIRCLE_MIN_HEIGHT_INC 74
+
+#define BUTTON_SENT_BUBBLE_BG_BORDER_INC 12 12 12 12
+#define BUTTON_SENT_BUBBLE_TEXT_FONT_SIZE_INC 36
+#define BUTTON_SENT_BUBBLE_TEXT_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_RECEIVE_BUBBLE_BG_BORDER_INC 12 12 12 12
+#define BUTTON_RECEIVE_BUBBLE_TEXT_FONT_SIZE_INC 36
+#define BUTTON_RECEIVE_BUBBLE_TEXT_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_TEXT_STYLE1_BG_MIN_INC 100 74
+#define BUTTON_TEXT_STYLE1_VISIBLE_BG_MIN_INC 148 74
+#define BUTTON_TEXT_STYLE1_ICONONLY_BG_MIN_INC 74 74
+#define BUTTON_TEXT_STYLE1_BG_BORDER_INC 12 12 12 12
+#define BUTTON_TEXT_STYLE1_PADDING_MIN_INC 12 0
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC 4 0
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE1_FONT_SIZE_INC 36
+
+#define BUTTON_TEXT_STYLE1_MULTILINE_BG_MIN_INC 100 80
+#define BUTTON_TEXT_STYLE1_MULTILINE_VISIBLE_BG_MIN_INC 148 80
+#define BUTTON_TEXT_STYLE1_MULTILINE_ICONONLY_BG_MIN_INC 74 80
+#define BUTTON_TEXT_STYLE1_MULTILINE_PADDING_MIN_INC 12 0
+#define BUTTON_TEXT_STYLE1_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_TEXT_STYLE2_BG_MIN_INC 100 74
+#define BUTTON_TEXT_STYLE2_VISIBLE_BG_MIN_INC 148 74
+#define BUTTON_TEXT_STYLE2_ICONONLY_BG_MIN_INC 74 74
+#define BUTTON_TEXT_STYLE2_BG_BORDER_INC 12 12 12 12
+#define BUTTON_TEXT_STYLE2_PADDING_MIN_INC 12 0
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE2_VISIBLE_PADDING_ICON_TEXT_MIN_INC 4 0
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE2_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE2_FONT_SIZE_INC 36
+
+#define BUTTON_TEXT_STYLE2_MULTILINE_BG_MIN_INC 100 80
+#define BUTTON_TEXT_STYLE2_MULTILINE_VISIBLE_BG_MIN_INC 148 80
+#define BUTTON_TEXT_STYLE2_MULTILINE_ICONONLY_BG_MIN_INC 74 80
+#define BUTTON_TEXT_STYLE2_MULTILINE_PADDING_MIN_INC 12 8
+#define BUTTON_TEXT_STYLE2_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_CONTACT_STYLE_BG_MIN_MAX_INC 74 74
+#define BUTTON_CONTACT_STYLE_IMAGE_MIN_MAX_INC 74 74
+
+#define BUTTON_CIRCLE_STYLE_BG_MIN_MAX_INC 74 74
+#define BUTTON_CIRCLE_STYLE_IMAGE_MIN_MAX_INC 74 74
+#define BUTTON_CIRCLE_STYLE_CONTENT_MIN_MAX_INC 44 44
+
+#define BUTTON_CIRCLE_NORMAL_MIN_WIDTH_INC 74
+#define BUTTON_CIRCLE_NORMAL_MIN_HEIGHT_INC 74
+#define BUTTON_CIRCLE_EXTENEDED_MIN_WIDTH_INC 110
+#define BUTTON_CIRCLE_EXTENEDED_MIN_HEIGHT_INC 110
+
+#define BUTTON_POPUP_BG_NORMAL_MIN_INC 30 74
+#define BUTTON_POPUP_BG_BORDER_INC 12 12 12 12
+#define BUTTON_POPUP_PADDING_MIN_INC 12 3
+#define BUTTON_POPUP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_POPUP_ICON_ICONONLY_MIN_INC 44 44
+#define BUTTON_POPUP_TEXT_MIN_INC 64 20
+#define BUTTON_POPUP_TEXT_FONT_SIZE_INC 36
+
+#define BUTTON_POPUP_MULTILINE_BG_NORMAL_MIN_INC 30 80
+#define BUTTON_POPUP_MULTILINE_TEXT_FONT_SIZE_INC 28
+#define BUTTON_POPUP_MULTILINE_PADDING_MIN_INC 12 0
+
+#define BUTTON_EDIT_STYLE_BG_NORMAL_MIN_MAX_INC 74 74
+#define BUTTON_EDIT_STYLE_IMAGE_NORMAL_MIN_MAX_INC 74 74
+
+#define BUTTON_EDIT_NORMAL_MIN_WIDTH_INC 74
+#define BUTTON_EDIT_NORMAL_MIN_HEIGHT_INC 74
+#define BUTTON_EDIT_EXTENDED_MIN_WIDTH_INC 90
+#define BUTTON_EDIT_EXTENDED_MIN_HEIGHT_INC 90
+
+#define BUTTON_SWEEP_BG_NORMAL_MIN_INC 26 74
+#define BUTTON_SWEEP_BG_BORDER_INC 12 12 12 12
+#define BUTTON_SWEEP_PADDING_MIN_INC 12 0
+#define BUTTON_SWEEP_ICON_RECT_MIN_INC 0 44
+#define BUTTON_SWEEP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_SWEEP_ICONONLY_ICON_MIN_INC 44 44
+#define BUTTON_SWEEP_TEXT_MIN_INC 90 26
+#define BUTTON_SWEEP_FONT_SIZE_INC 26
+
+#define BUTTON_EXPAND_BUTTON_TEXT_SIZE_INC 30
+
+#define BUTTON_EXPANDABLE_NUMBER_BG_NORMAL_MIN_MAX_INC 98 46
+#define BUTTON_EXPANDABLE_NUMBER_BG_BORDER_INC 12 12 12 12
+#define BUTTON_EXPANDABLE_NUMBER_PADDING_MIN_INC 12 1
+#define BUTTON_EXPANDABLE_NUMBER_ICON_RECT_EXPAND_MIN_MAX_INC 24 46
+#define BUTTON_EXPANDABLE_NUMBER_TEXT_MIN_MAX_INC 50 46
+#define BUTTON_EXPANDABLE_NUMBER_FONT_SIZE_INC 28
+
+#define BUTTON_CONTACT_DELETE_BG_NORMAL_MIN_INC 50 74
+#define BUTTON_CONTACT_DELETE_BG_BORDER_INC 8 0 5 5
+#define BUTTON_CONTACT_DELETE_PADDING_LEFT_TOP_MIN_INC 36 2
+#define BUTTON_CONTACT_DELETE_PADDING_RIGHT_BOTTOM_MIN_INC 14 2
+#define BUTTON_CONTACT_DELETE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_CONTACT_DELETE_ICON_ICONONLY_MIN_INC 42 42
+#define BUTTON_CONTACT_DELETE_FONT_SIZE_INC 32
+
+#define BUTTON_CONTACT_BG_MIN_INC 30 48
+#define BUTTON_CONTACT_BG_BORDER_INC 12 16 0 0
+#define BUTTON_CONTACT_LEFT_PADDING_MIN_INC 28 0
+#define BUTTON_CONTACT_RIGHT_PADDING_MIN_INC 16 0
+#define BUTTON_CONTACT_FONT_SIZE_INC 36
+
+#define BUTTON_NAVIFRAME_BACK_BUTTON_BG_MIN_MAX_INC 60 60
+#define BUTTON_NAVIFRAME_BACK_BUTTON_MIN_MAX_INC 60 60
+
+#define BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC 249 249 249 255
+
+#define BUTTON_NAVITFRAME_TITLE_ICON_BG_MIN_MAX_INC 68 68
+#define BUTTON_NAVIFRAME_TITLE_ICON_IMAGE_MIN_MAX_INC 68 68
+
+#define BUTTON_NAVIFRAME_TITLE_ICON_BG_NORMAL_MIN_INC 60 60
+#define BUTTON_NAVIFRAME_TITLE_ICON_MORE_MIN_WIDTH_INC 60
+#define BUTTON_NAVIFRAME_TITLE_ICON_MORE_MIN_HEIGHT_INC 60
+#define BUTTON_NAVIFRAME_TITLE_ICON_PLUS_MIN_WIDTH_INC 68
+#define BUTTON_NAVIFRAME_TITLE_ICON_PLUS_MIN_HEIGHT_INC 68
+#define BUTTON_NAVIFRAME_TITLE_ICON_CANCEL_MIN_WIDTH_INC 60
+#define BUTTON_NAVIFRAME_TITLE_ICON_CANCEL_MIN_HEIGHT_INC 60
+#define BUTTON_NAVIFRAME_TITLE_ICON_EDIT_MIN_WIDTH_INC 68
+#define BUTTON_NAVIFRAME_TITLE_ICON_EDIT_MIN_HEIGHT_INC 68
+#define BUTTON_NAVIFRAME_TITLE_ICON_PREV_MIN_WIDTH_INC 60
+#define BUTTON_NAVIFRAME_TITLE_ICON_PREV_MIN_HEIGHT_INC 60
+
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_NORMAL_MIN_INC 182 70
+#define BUTTON_NAVIFRAME_TITLE_TEXTBLOCK_MIN_INC 126 70
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_PRESSED_BORDER_INC 36 36 0 0
+#define BUTTON_NAVIFRAME_TITLE_TEXT_PADDING_MIN_INC 28 5
+#define BUTTON_NAVIFRAME_TITLE_TEXT_FONT_SIZE_INC 32
+#define BUTTON_NAVIFRAME_TITLE_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_NAVIFRAME_TITLE_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_NAVIFRAME_TITLE_VISIBLE_PADDING_ICON_TEXT_MIN_INC 8 0
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_NORMAL_COLOR_INC 249 249 249 255
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC 60 60
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC 60 60
+
+#define BUTTON_TICKERNOTI_BG_MIN_MAX_INC 154 74
+#define BUTTON_TICKERNOTI_BG_BORDER_INC 12 12 12 12
+#define BUTTON_TICKERNOTI_PADDING_MIN_INC 12 0
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_VISIBLE_PADDING_ICON_TEXT_MIN_INC 4 0
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_FONT_SIZE_INC 36
+
+#define BUTTON_COLORSELECTOR_BG_DEFAULT_MIN_INC 74 74
+#define BUTTON_COLORSELECTOR_BG_BORDER_INC 12 12 12 12
+#define BUTTON_COLORSELECTOR_IMAGE_MIN_MAX_INC 74 74
+
+#define BUTTON_DEFAULT_STYLE_BG_MIN_INC 100 74
+#define BUTTON_DEFAULT_STYLE_BG_BORDER_INC 12 12 12 12
+#define BUTTON_DEFAULT_STYLE_PADDING_MIN_INC 12 5
+#define BUTTON_DEFAULT_STYLE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_DEFAULT_STYLE_ICONONLY_ICON_MIN_INC 44 44
+#define BUTTON_DEFAULT_STYLE_TEXT_MIN_INC 144 36
+#define BUTTON_DEFAULT_STYLE_FONT_SIZE_INC 36
+
+#define BUTTON_DEFAULT_STYLE_MULTILINE_BG_MIN_INC 100 80
+#define BUTTON_DEFAULT_STYLE_MULTILINE_PADDING_MIN_INC 12 0
+
+#define CHECK_DELETE_TEXT_DELETE_NORMAL_COLOR_INC 249 249 249 255
+#define CHECK_DELETE_TEXT_DELETE_PRESS_COLOR_INC 249 249 249 255
+
+#define CHECK_DEFAULT_TEXT_FONT_SIZE_INC 36
+
+#define CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC 132 70
+#define CHECK_ONOFF_ON_FONT_SIZE_INC 24
+#define CHECK_ONOFF_OFF_FONT_SIZE_INC 24
+
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 74
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 74
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 100
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 100
+#define CHECK_STYLE_FAVORITE_BG_NORMAL_MIN_MAX_INC 74 74
+
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 64
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 64
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 75
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 91
+#define CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC 64 64
+
+#define CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC 74 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC 124 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_BORDER_INC 8 0 5 5
+#define CHECK_STYLE_DELETE_BUTTON_TEXT_FONT_SIZE_INC 32
+
+#define INDEX_BG_NINEPATCH_INC 8 8 8 8
+#define INDEX_ITEM_WIDTH_INC 49
+#define INDEX_ITEM_HEIGHT_INC 33
+#define INDEX_LEVEL_PADDING_INC 70
+#define INDEX_1ST_LEVEL_POPUP_WIDTH_INC 188
+#define INDEX_2ND_LEVEL_POPUP_WIDTH_INC 188
+#define INDEX_POPUP_HEIGHT_INC 180
+#define INDEX_ROLLOVER_TEXT_SIZE_INC 26
+#define INDEX_POPUP_BG_NINEPATCH_INC 20 20 20 20
+#define INDEX_POPUP_TEXT_SIZE_INC 136
+#define INDEX_ROLLOVER_TEXT_COLOR_INC 160 159 154 255
+#define INDEX_ROLLOVER_ACTIVE_TEXT_COLOR_INC 59 115 182 255
+#define INDEX_POPUP_TEXT_COLOR_INC 255 255 255 255
+#define INDEX_SCROLL_BG_COLOR_INC 230 227 216 255
+#define INDEX_BOTTOM_LINE_COLOR_INC 197 194 183 255
+#define INDEX_LEFT_LINE_COLOR_INC 65 119 184 255
+
+#define INDEX_PAGECONTROL_IND_INC 10 9
+#define INDEX_PAGECONTROL_IND_MIN_INC 10 9
+#define INDEX_PAGECONTROL_FONT_SIZE_INC 28
+#define INDEX_PAGECONTROL_FONT_COLOR_INC 120 120 120
+
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 64
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 64
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 76
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 76
+#define RADIO_STYLE_DEFAULT_BG_MIN_MAX_INC 64 64
+#define RADIO_STYLE_DEFAULT_FONT_SIZE_INC 36
+
+#define PANES_STYLE_DEFAULT_MOVABLE_SIZE_INC 60
+#define PANES_STYLE_DEFAULT_PADDING_LEFT_SIZE_INC 25
+#define PANES_STYLE_DEFAULT_PADDING_RIGHT_SIZE_INC 22
+#define PANES_STYLE_DEFAULT_MIDDLE_SIZE_INC 26
+#define PANES_STYLE_DEFAULT_FIXED_SIZE_INC 52
+
+#define SEGMENT_CONTROL_DEFAULT_ITEM_TEXT_COLOR_NORMAL_INC 153 153 153 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC 59 115 182 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC 59 115 182 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC 153 153 153 255
+
+#define SEGMENT_CONTROL_MULTILINE_TEXT_SIZE_INC 30
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MIN_INC 12
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MAX_INC 28
+#define SEGMENT_CONTROL_DIVIDER_LINE_MIN_SIZE_INC 2 32
+#define SEGMENT_CONTROL_TEXT_PADDING_MIN_SIZE_INC 18 0
+#define SEGMENT_CONTROL_VISIBLE_ICON_RECT_MIN_MAX_INC 40 40
+#define SEGMENT_CONTROL_BADGE_TEXT_LEFT_PADDING_MIN_INC 22 45
+#define SEGMENT_CONTROL_BADGE_TEXT_RIGHT_PADDING_MIN_INC 18 47
+#define SEGMENT_CONTROL_BADGE_TEXT_COLOR_INC 10 100 208 255;
+#define SEGMENT_CONTROL_BADGE_TEXT_FONT_SIZE_INC 26;
+
+#define EDITFIELD_TITLE_SIZE_INC 32
+#define EDITFIELD_TITLE_COLOR_INC 42 137 194 255
+#define EDITFIELD_GUIDE_TEXT_COLOR_INC 121 131 138 255
+#define EDITFIELD_DEFAULT_ERASER_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_MINH_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINH_INC 70
+#define EDITFIELD_SEARCHBAR_ERASER_MINW_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_MINH_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_EVENT_MINW_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_EVENT_MINH_INC 50
+#define EDITFIELD_DEFAULT_MINH_INC 112
+#define EDITFIELD_TITLE_MINH_INC 128
+#define EDITFIELD_SEARCHBAR_MINH_INC 50
+#define EDITFIELD_DEFAULT_TOP1_SINGLE_INC 27
+#define EDITFIELD_DEFAULT_TOP1_MULTI_INC 56
+#define EDITFIELD_DEFAULT_TOP2_INC 8
+#define EDITFIELD_DEFAULT_LEFT1_INC 0
+#define EDITFIELD_DEFAULT_LEFT2_INC 0
+#define EDITFIELD_DEFAULT_LEFT3_INC 1
+#define EDITFIELD_DEFAULT_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_DEFAULT_RIGHT2_INC 0
+#define EDITFIELD_DEFAULT_BOTTOM1_SINGLE_INC 25
+#define EDITFIELD_DEFAULT_BOTTOM1_MULTI_INC 8
+#define EDITFIELD_DEFAULT_BOTTOM2_SINGLE_INC 32
+#define EDITFIELD_DEFAULT_BOTTOM2_MULTI_INC 12
+#define EDITFIELD_DEFAULT_BOTTOM3_SINGLE_INC 85
+#define EDITFIELD_DEFAULT_BOTTOM3_MULTI_INC 60
+#define EDITFIELD_SEARCHBAR_TOP1_SINGLE_INC 6
+#define EDITFIELD_SEARCHBAR_TOP1_MULTI_INC 10
+#define EDITFIELD_SEARCHBAR_TOP2_INC 10
+#define EDITFIELD_SEARCHBAR_LEFT1_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT2_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT3_INC 1
+#define EDITFIELD_SEARCHBAR_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_SEARCHBAR_RIGHT2_INC 5
+#define EDITFIELD_SEARCHBAR_BOTTOM1_SINGLE_INC 8
+#define EDITFIELD_SEARCHBAR_BOTTOM1_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM2_SINGLE_INC 16
+#define EDITFIELD_SEARCHBAR_BOTTOM2_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM3_SINGLE_INC 50
+#define EDITFIELD_SEARCHBAR_BOTTOM3_MULTI_INC 50
+
+#define BUTTON_TICKERNOTI_NORMAL_COLOR_INC        225 215 215 255
+#define BUTTON_TICKERNOTI_PRESSED_COLOR_INC       248 246 239 255
+#define BUTTON_TICKERNOTI_DISABLED_COLOR_INC      225 215 215 76
+
+#define BUTTON_DISCLIP_NORMAL_COLOR_INC           255 255 255 255
+#define BUTTON_DISCLIP_DISABLED_COLOR_INC         255 255 255 76
+
+#define CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC        50 50 50 255
+#define CHECK_DEFAULT_TEXT_PRESSED_COLOR_INC      248 246 239 255
+#define CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC          50 50 50 76
+#define CHECK_DISCLIP_NORMAL_COLOR_INC             255 255 255 255
+#define CHECK_DISCLIP_DISABLED_COLOR_INC           255 255 255 76
+
+#define RADIO_DEFAULT_TEXT_NORMAL_COLOR_INC        50 50 50 255
+#define RADIO_DEFAULT_TEXT_PRESSED_COLOR_INC       248 246 239 255
+#define RADIO_DEFAULT_TEXT_DISABLED_COLOR_INC      50 50 50 76
+#define RADIO_DISCLIP_NORMAL_COLOR_INC             255 255 255 255
+#define RADIO_DISCLIP_DISABLED_COLOR_INC           255 255 255 76
+
+#define CONTROLBAR_LARGE_HEIGHT_INC 122
+#define CONTROLBAR_SMALL_HEIGHT_INC 114
+#define CONTROLBAR_WIDTH_INC 122
+#define CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC 23 34 38 255
+#define CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC 58 68 74 255
+
+#define MULTIBUTTONENTRY_NORMAL_BUTTON_COLOR_INC 8 158 185 255
+#define MULTIBUTTONENTRY_PRESSED_BUTTON_COLOR_INC 2 85 100 255
+#define MULTIBUTTONENTRY_LABEL_TEXT_COLOR_INC 102 102 102 255
+#define MULTIBUTTONENTRY_TEXT_COLOR_INC "#666666"
+#define MULTIBUTTONENTRY_GUIDETEXT_COLOR_INC 70 70 70 255
+#define MULTIBUTTONENTRY_BUTTON_TEXT_COLOR_INC "#FFFFFF"
+#define MULTIBUTTONENTRY_WIDTH_PAD_INC 26
+#define MULTIBUTTONENTRY_HEIGHT_PAD_INC 13
+#define MULTIBUTTONENTRY_BUTTON_MAX_SIZE_INC 330
+#define MULTIBUTTONENTRY_BUTTON_BASE_SIZE_INC 64
+#define MULTIBUTTONENTRY_BUTTON_NINEPATCH_INC 12 16 0 0
+#define MULTIBUTTONENTRY_BUTTON_TOP_BUTTOM_PAD_INC 8
+#define MULTIBUTTONENTRY_BUTTON_LEFT_INNER_PAD_INC 24
+#define MULTIBUTTONENTRY_BUTTON_RIGHT_INNER_PAD_INC 16
+#define MULTIBUTTONENTRY_BUTTON_RIGHT_PAD_INC 27
+#define MULTIBUTTONENTRY_BUTTON_TEXT_SIZE_INC 32
+#define MULTIBUTTONENTRY_GUIDETEXT_SIZE_INC 36
+#define MULTIBUTTONENTRY_CLOSEDBUTTON_SIZE_INC 1
+#define MULTIBUTTONENTRY_CLOSEDBUTTON_AREA_HEIGHT_INC 60
+#define MULTIBUTTONENTRY_LABEL_RIGHT_PAD_INC 26
+#define MULTIBUTTONENTRY_LABEL_TEXT_SIZE_INC 36
+#define MULTIBUTTONENTRY_LABEL_MIN_HEIGHT_INC 64
+
+#define SEARCHBAR_CANCEL_BUTTON_W_INC 136
+#define SEARCHBAR_CANCEL_BUTTON_WITH_PADDING_W_INC 150
+#define SEARCHBAR_CANCEL_BUTTON_WITH_DOUBLE_PADDING_W_INC 166
+#define SEARCHBAR_TOP_PADDING_INC 10
+#define SEARCHBAR_BOTTOM_PADDING_INC 10
+#define SEARCHBAR_HEIGHT_INC 66
+#define SEARCHBAR_LEFT_PADDING_INC 26
+#define SEARCHBAR_RIGHT_PADDING_INC 26
+#define SEARCHBAR_INPUTFIELD_BORDER_INC 9 9 9 9
+#define SEARCHBAR_LEFT_ICON_PADDING_INC 16
+#define SEARCHBAR_ICON_MIN_W_INC 44
+#define SEARCHBAR_ICON_MIN_H_INC 44
+#define SEARCHBAR_LEFT_PADDING_SEARCHFIELD_INC 16
+#define SEARCHBAR_RIGHT_PADDING_SEARCHFIELD_INC 8
+#define SEARCHBAR_SEARCH_TEXTFIELD_H_INC 60
+#define SEARCHBAR_H_INC 86
+
+#define SELECTION_INFO_BACKGROUND_COLOR_INC          68 68 68 255
+#define SELECTION_INFO_TEXT_COLOR_INC                255 255 255 255
+#define SELECTION_INFO_MIN_VER_W_INC                 720
+#define SELECTION_INFO_MIN_HORZ_W_INC                1280
+#define SELECTION_INFO_VER_PADDING_INC               48
+#define SELECTION_INFO_LEFT_PADDING_INC              16
+#define SELECTION_INFO_TEXT_FONT_SIZE_INC            32
+#define SELECTION_INFO_SHADOW_VER_W_INC              720
+#define SELECTION_INFO_SHADOW_VER_H_INC              10
+#define SELECTION_INFO_SHADOW_HORZ_W_INC             1280
+#define SELECTION_INFO_SHADOW_HORZ_H_INC             10
+#define SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC       150
+#define SELECTION_INFO_MIN_VER_BOTTOM_86_H_INC       186
+
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_MIN_INC 648 0
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_FONT_SIZE_INC 42
+
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MIN_INC 720 0
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MAX_INC 720 1120
+#define POPUP_BASE_DEFAULT_BG_DEFAULT_IMAGE_BORDER_INC 18 18 32 52
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_MIN_INC 648 80
+#define POPUP_BASE_DEFAULT_TITLE_VOLUMEBAR_MIN_INC 720 68
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_IMAGE_BORDER_INC 4 4 3 3
+#define POPUP_BASE_DEFAULT_PADDING_MIN_MAX_INC 16 0
+#define POPUP_BASE_DEFAULT_TITLE_ICON_DEFAULT_MIN_MAX_INC 64 64
+#define POPUP_BASE_DEFAULT_CONTENT_DEFAULT_MIN_MAX_INC 648 0
+#define POPUP_BASE_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 648 114
+#define POPUP_BASE_DEFAULT_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC 50
+
+#define POPUP_DESC_LEFT_PADDING 0
+#define POPUP_DESC_RIGHT_PADDING 0
+#define POPUP_DESC_TOP_PADDING 14
+#define POPUP_DESC_BOTTOM_PADDING 34
+#define POPUP_LABEL_DESC_TOP_PADDING 39
+#define POPUP_LABEL_DESC_BOTTOM_PADDING 39
+#define POPUP_TITLE_TOP_PADDING 18
+#define POPUP_TITLE_BOTTOM_PADDING 0
+#define POPUP_TITLE_ICON_TEXT_PADDING_INC 16 0
+
+#define POPUP_CONTENT_DEFAULT_PADDING_TOP_MIN_INC 20
+#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 36
+#define POPUP_CONTENT_DEFAULT_PADDING_RIGHT_MIN_INC 36
+#define POPUP_CONTENT_DEFAULT_PADDING_BOTTOM_MIN_INC 20
+#define POPUP_CONTENT_DEFAULT_CONTENT_DEFAULT_MIN_INC 648 0
+
+#define POPUP_BASE_CONTENT_EXPAND_BG_DEFAULT_MIN_INC 0 114
+#define POPUP_BASE_CONTENT_EXPAND_TITLE_DEFAULT_MIN_INC 0 80
+
+#define POPUP_BASE_VERTICAL_BUTTON_BASE_MIN_INC 648 0
+#define POPUP_BASE_VERTICAL_BUTTON_BASE_MAX_INC 648 1120
+#define POPUP_BASE_VERTICAL_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_DEFAULT_MIN_INC 648 80
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_IMAGE_BORDER_MIN_INC 3 3 3 3
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_ICON_MIN_MAX_INC 64 64
+#define POPUP_BASE_VERTICAL_BUTTON_CONTENT_DEFAULT_MIN_INC 648 0
+#define POPUP_BASE_VERTICAL_BUTTON_BUTTONAREA_DEFAULT_MIN_INC 648 294
+
+#define POPUP_BUTTON3_VERTICAL_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_TOP_MIN_INC 0 20
+#define POPUP_BUTTON_VERTICAL_ACTION_AREA_HEIGHT "294"
+#define POPUP_BUTTON3_VERTICAL_BUTTON_BUTTON_MIN_MAX_INC 394 74
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MIN_INC 0 16
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MAX_INC 9999 16
+
+#define POPUP_CONTENT_LISTSTYLE_PADDING_TOP_MIN_MAX_INC 3 3
+#define POPUP_CONTENT_LISTSTYLE_CONTENT_DEFAULT_MIN_INC 614 408
+#define POPUP_CONTENT_LISTSTYLE_PADDING_RIGHT_MIN_INC 3 0
+
+#define POPUP_CONTENT_MINSTYLE_CONTENT_DEFAULT_MIN_INC 614 0
+
+#define POPUP_BASE_CUSTOMSTYLE_BASE_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_CUSTOMSTYLE_BASE_DEFAULT_MAX_INC 620 1120
+#define POPUP_BASE_CUSTOMSTYLE_BG_DEFAULT_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_DEFAULT_MIN_INC 620 64
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_BOTTOM_LINE_MIN_INC 0 1
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_ICON_DEFAULT_MIN_MAX_INC 62 62
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_CUSTOMSTYLE_BUTTONAREA_BG_DEFAULT_MIN_INC 620 96
+#define POPUP_BASE_CUSTOMSTYLE_BUTTONAREA_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_CUSTOMSTYLE_TEXT_FONT_SIZE_INC 38
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_WIDTH_INC 620
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_HEIGHT_INC 146
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_SIDE_PADDING_INC 127
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_ENTRY_MIN_INC 82 82
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_CENTER_PADDING_MIN_INC 22
+#define POPUP_ENTRYPASSWORD_VIEW_BG_BORDER_INC 9 9 9 9
+
+#define POPUP_CONTENT_CUSTOMSTYLE_DEFAULT_MIN_INC 648 0
+#define POPUP_BUTTON_DEFAULT_ACTION_AREA_HEIGHT "114"
+#define POPUP_BUTTON1_DEFAULT_BUTTON1_DEFAULT_MIN_INC 394 74
+#define POPUP_BUTTON1_DEFAULT_BUTTON1_DEFAULT_MAX_INC 648 74
+#define POPUP_BUTTON2_DEFAULT_HEIGHT_INC 74
+#define POPUP_BUTTON2_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 270 74
+#define POPUP_BUTTON2_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 20 74
+#define POPUP_BUTTON2_DEFAULT_PADDING_LEFT_RIGHT_WIDTH_INC 36
+#define POPUP_BUTTON3_DEFAULT_HEIGHT_INC 74
+#define POPUP_BUTTON3_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 202 74
+#define POPUP_BUTTON3_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 20 74
+#define POPUP_BUTTON3_DEFAULT_PADDING_LEFT_RIGHT_WIDTH_INC 36
+
+#define POPUP_BASE_VOLUMEBAR_STYLE_BASE_DEFAULT_MIN_INC 720 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_BASE_DEFAULT_MAX_INC 720 1120
+#define POPUP_BASE_VOLUMEBAR_STYLE_TITLE_DEFAULT_IMAGE_BORDER_INC 3 3 6 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_CONTENT_DEFAULT_MIN_INC 668 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_BUTTONAREA_BG_DEFAULT_MIN_INC 668 134
+#define POPUP_BASE_VOLUMEBAR_STYLE_PADDING_MIN_MAX_INC 26
+
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_TOP_MIN_INC 0 35
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_LEFT_MIN_INC 26 0
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_RIGHT_MIN_INC 26 0
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_CONTENT_DEFAULT_MIN_INC 668 134
+#define POPUP_CONTENT_VOLUMEBAR_TEXT_STYLE_CONTENT_DEFAULT_MIN_INC 668 250
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_BOTTOM_MIN_INC 0 35
+
+#define PROGRESSBAR_DEFAULT_STYLE_TEXT_COLOR_INC          128 128 128 255
+#define PROGRESSBAR_DEFAULT_STYLE_STATUS_TEXT_COLOR_INC          128 128 128 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC          128 128 128 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC          128 128 128 255
+#define PROGRESSBAR_LIST_TITLE_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC      128 128 128 255
+#define PROGRESSBAR_LIST_PROCESS_WIDTH_INC 66
+#define PROGRESSBAR_LIST_PROCESS_HEIGHT_INC 66
+#define PROGRESSBAR_LIST_PROCESS_SMALL_INC 35
+#define PROGRESSBAR_LIST_PROCESS_SMALL_IMAGE "32x32"
+#define PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC 36
+#define PROGRESSBAR_LIST_PENDING_HEIGHT_INC 34
+#define PROGRESSBAR_PROGRESS_CIRCLE_BG_SIZE_INC 128 128
+
+#define NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC 128 128 128 255
+#define NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC   32
+#define NOCONTENT_MIDDLE_PADDING_INC         38
+#define NOCONTENT_BASE_SEARCH_PADDING_INC    40
+#define NOCONTENT_IMAGE_WIDTH_HEIGHT_INC     280 280
+#define NOCONTENT_BG_COLOR_INC               0 0 0 0
+#define NOCONTENT_TEXT_STYLE_BG_MIN_INC       0 76
+
+#define ENTRY_TEXT_SIZE_INC 44
+#define ENTRY_TEXT_COLOR_INC "#000000"
+#define ENTRY_CURSOR_COLOR_INC 59 115 182 255
+#define ENTRY_PREEDIT_BACKGROUND_COLOR_INC "#000000"
+#define ENTRY_PREEDIT_TEXT_COLOR_INC "#FFFFFF"
+#define ENTRY_PREEDIT_UNDERLINE_COLOR_INC "#000000"
+#define ENTRY_PREEDIT_SUB1_COLOR_INC "#2EA8E1"
+#define ENTRY_PREEDIT_SUB2_COLOR_INC "#9962C3"
+#define ENTRY_PREEDIT_SUB3_COLOR_INC "#76DE37"
+#define ENTRY_PREEDIT_SUB4_COLOR_INC "#999999"
+#define ENTRY_SELECTION_BG_COLOR 90 123 138 127
+#define ENTRY_SELECTION_BLOCK_HANDLE_MIN_SIZE 48 67
+#define MAGNIFIER_HEIGHT_FILL 182
+#define MAGNIFIER_HEIGHT_FIXED 108
+#define MAGNIFIER_WIDTH_FIXED 358
+
+#define ENTRY_BUBBLE_EX_PAD 58
+#define ENTRY_BUBBLE_EX_CALLERID_PAD 178
+#define ENTRY_BUBBLE_IX_PAD 20
+#define ENTRY_BUBBLE_Y_PAD 15
+#define ENTRY_BUBBLE_BOTTOM_PAD 24
+#define ENTRY_BUBBLE_CALLERID_PAD 16
+#define ENTRY_BUBBLE_CALLERID_WIDTH 104
+#define ENTRY_BUBBLE_CALLERID_HEIGHT 104
+#define ENTRY_BUBBLE_DATE_AREA_TEXT_SIZE_INC 26
+#define ENTRY_BUBBLE_TEXT_SIZE 38
+
+#define ENTRY_BUBBLE_SENT_TEXT_COLOR "#000000"
+#define ENTRY_BUBBLE_SENT_TEXT_SHADOW_STYLE "far_shadow,bottom"
+#define ENTRY_BUBBLE_SENT_TEXT_SHADOW_COLOR "#ffffff7f"
+#define ENTRY_BUBBLE_RECEV_TEXT_COLOR "#FFFFFF"
+#define ENTRY_BUBBLE_RECEV_TEXT_SHADOW_STYLE "far_shadow,top"
+#define ENTRY_BUBBLE_RECEV_TEXT_SHADOW_COLOR "#0000009f"
+#define ENTRY_BUBBLE_RECEV_BG_BORDER_INC 58 24 62 20
+#define ENTRY_BUBBLE_SENT_BG_BORDER_INC 24 58 62 20
+#define ENTRY_BUBBLE_CALLERID_RELATIVE_INC 0.0 0.0
+#define ENTRY_BUBBLE_RECEV_CALLERID_REL_INC 1.0 0.0
+#define ENTRY_BUBBLE_BOTTOMRIGHT_PAD 120
+#define ENTRY_BUBBLE_TEXT_CALLID_REL2_X_INC "elm.rect.right.pad"
+#define ENTRY_BUBBLE_READ_TEXT_CALLID_REL1_X_INC "elm.rect.left.pad"
+#define ENTRY_BUBBLE_TEXT_CALLID_REL2_Y_INC "elm.rect.groupchat.text.pad"
+#define ENTRY_BUBBLE_STATUS_TIME_PAD_MIN_H_INC 14
+#define ENTRY_BUBBLE_STATUS_TIME_PAD_REL_INC 0.0 1.0
+#define ENTRY_BUBBLE_READ_STATUS_TIME_PAD_REL_INC 1.0 1.0
+#define ENTRY_BUBBLE_STATUS_TIME_SIZE_INC 22
+#define ENTRY_BUBBLE_SENT_STATUS_TIME_COLOR_INC 139 139 139 255
+#define ENTRY_BUBBLE_READ_STATUS_TIME_COLOR_INC 139 139 139 255
+#define ENTRY_BUBBLE_GROUPCHAT_SIZE_INC 24
+#define ENTRY_BUBBLE_GROUPCHAT_COLOR_INC 139 139 139 255
+#define ENTRY_BUBBLE_GROUPCHART_ENABLE_INC 1
+#define ENTRY_BUBBLE_GROUPCHART_PAD 36 30
+#define ENTRY_BUBBLE_GROUPCHART_WITH_CALLERID_PAD 158 30
+#define ENTRY_BUBBLE_READ_STATUS_REL_INC 1.0 0.0
+#define ENTRY_BUBBLE_READ_TIME_REL_INC 1.0 1.0
+
+#define PANES_DEFAULT_FIXED_SEPERATOR_NORMAL_COLOR_INC 118 118 118 255
+
+#define DAYSELECTOR_BACKGROUND_COLOR_INC       82 84 87 255
+#define DAYSELECTOR_WEEKDAY_COLOR_INC          249 249 249 255
+#define DAYSELECTOR_SATURDAY_COLOR_INC         0 168 231 255
+#define DAYSELECTOR_SUNDAY_COLOR_INC           7 180 211 255
+#define DAYSELECTOR_DAY_PRESSED_COLOR_INC      249 249 249 255
+#define DAYSELECTOR_DAY_FONT_SIZE_INC 32
+#define DAYSELECTOR_CHECK_WIDTH_INC 94
+#define DAYSELECTOR_CHECK_HEIGHT_INC 90
+
+#define SLIDER_INDICATOR_TEXT_COLOR_INC      42 137 194 255
+#define SLIDER_UNITS_TEXT_COLOR_INC      0 0 0 255
+#define SLIDER_UNITS_TEXT_SIZE_INC  30
+#define SLIDER_INDICATOR_TEXT_SIZE_INC  40
+#define SLIDER_BASE_HEIGHT_INC  34
+#define SLIDER_BASE_MIN_WIDTH_INC 375
+#define SLIDER_SWALLOW_BAR_MIN_WIDTH_INC  72
+#define SLIDER_SWALLOW_BAR_HEIGHT_INC  74
+#define SLIDER_INDICATOR_MAX_WIDTH_INC 90
+#define SLIDER_INDICATOR_WIDTH_INC 72
+#define SLIDER_INDICATOR_HEIGHT_INC 72
+#define SLIDER_EBOOK_HEIGHT_INC  23
+#define SLIDER_EBOOK_UNITS_TEXT_COLOR_INC   164 160 149 255
+#define SLIDER_EBOOK_UNITS_TEXT_SIZE_INC  48
+#define SLIDER_EBOOK_INDICATOR_TEXT_COLOR_INC   7 180 211 255
+#define SLIDER_EBOOK_INDICATOR_DEFAULT_TEXT_SIZE_INC 36
+#define SLIDER_EBOOK_INDICATOR_DRAG_TEXT_SIZE_INC 48
+#define SLIDER_EBOOK_INDICATOR_WIDTH_INC 54
+#define SLIDER_EBOOK_INDICATOR_HEIGHT_INC 54
+
+#define TICKER_NOTI_DEFAULT_TEXT_COLOR_INC "#ffffff"
+#define TICKER_NOTI_DEFAULT_TEXT2_COLOR_INC "#ffffff"
+
+#define DATETIME_FIELD_MIN_SIZE_INC                40 60
+#define DATETIME_SEPARATOR_MIN_SIZE_INC            40 60
+#define DATETIME_TEXT_FONT_SIZE_INC                36
+#define DATETIME_TEXT_NORMAL_COLOR_INC             0 0 0 255
+#define DATETIME_SEPARATOR_TEXT_COLOR_INC          150 150 150 255
+#define DATETIME_TEXT_SELECTED_COLOR_INC           255 255 255 255
+#define DATETIME_LABEL_TEXT_BLOCK_STYLE_COLOR_INC  0 0 0 255
+#define DATETIME_LABEL_TEXT_BLOCK_STYLE_SELECTED_COLOR_INC  59 115 182 255
+
+#define COLORSELECTOR_MIN_W_INC 688
+#define COLORSELECTOR_MIN_H_INC 336
+#define COLORSELECTOR_MAX_W_INC 1014
+#define COLORSELECTOR_COLORBAR_HEIGHT 112
+#define COLORSELECTOR_COLORBAR_LEFT_PADDING 122
+#define COLORSELECTOR_COLORBAR_RIGHT_PADDING 122
+#define COLORSELECTOR_BUTTON_TOP_PADDING 19
+#define COLORSELECTOR_ARROW_BG_LEFT_PADDING 120
+#define COLORSELECTOR_ARROW_BG_RIGHT_PADDING 120
+#define COLORSELECTOR_ARROW_MIN_WIDTH 22
+#define COLORSELECTOR_ARROW_MIN_HEIGHT 70
+#define COLORSELECTOR_ARROW_REL1_OFFSET 0 5
+#define COLORSELECTOR_ARROW_REL2_OFFSET 0 5
+#define COLORSELECTOR_DRAGGABLE_EVENT_AREA 80 80
+#define COLORSELECTOR_BUTTON_LEFT_PADDING 32
+#define COLORSELECTOR_BUTTON_RIGHT_PADDING 32
+#define COLORSELECTOR_BUTTON_WIDTH 74
+#define COLORSELECTOR_BUTTON_HEIGHT 74
+#define COLORSELECTOR_BUTTON_BORDER 6 6 6 6
+#define COLORSELECTOR_PADDING_COLOR_INC 225 223 218 255
+
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_WIDTH_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_HEIGHT_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_WIDTH_INC 84
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_HEIGHT_INC 84
+#define COLORSELECTOR_PORTRAIT_HOR_PAD_INC "60"
+#define COLORSELECTOR_PORTRAIT_VER_PAD_INC "20"
+#define COLORSELECTOR_LANDSCAPE_HOR_PAD_INC "36"
+#define COLORSELECTOR_LANDSCAPE_VER_PAD_INC "0"
+#define COLORSELECTOR_PALETTE_BORDER_INC 11 11 11 11
+
+#define CALENDAR_DAY_FONT_SIZE_INC 24
+#define CALENDAR_DATE_FONT_SIZE_INC 32
+#define CALENDAR_MONTH_FONT_SIZE_INC 38
+#define CALENDAR_MONTH_FONT_COLOR_INC 249 249 249 255
+#define CALENDAR_SATURDAY_FONT_COLOR_INC 47 120 220 255
+#define CALENDAR_SUNDAY_FONT_COLOR_INC 226 20 20 255
+#define CALENDAR_WEEKDAY_FONT_COLOR_INC 249 249 249 255
+#define CALENDAR_SELECTED_DATE_FONT_COLOR_INC 255 255 255 255
+#define CALENDAR_SEPERATOR_FONT_COLOR_INC 68 68 68 255
+#define CALENDAR_BACKGROUND_COLOR_INC 89 89 89 255
+#define CALENDAR_BUTTON_HEIGHT_INC 66
+#define CALENDAR_BUTTON_WIDTH_INC 74
+#define CALENDAR_ARROW_WIDTH_INC 30
+#define CALENDAR_ARROW_HEIGHT_INC 36
+#define CALENDAR_BASE_MIN_WIDTH_INC 692
+#define CALENDAR_BASE_MIN_HEIGHT_INC 420
+#define CALENDAR_HEADER_MIN_WIDTH_INC 98
+#define CALENDAR_HEADER_MIN_HEIGHT_INC 90
+
+#define CTXPOPUP_ENTRY_CENTER_IMAGE_BORDER 12 12 9 9
+#define CTXPOPUP_ENTRY_IMAGE_BORDER_WIDTH 12
+#define CTXPOPUP_ENTRY_ITEM_TEXT_COLOR   249 249 249 255
+#define CTXPOPUP_ENTRY_ITEM_LEFT_SEPARATOR_COLOR 68 68 68 255
+#define CTXPOPUP_ENTRY_ITEM_RIGHT_SEPARATOR_COLOR 0 0 0 255
+#define CTXPOPUP_ENTRY_SEPARATOR_WIDTH 1
+#define CTXPOPUP_ENTRY_SEPARATOR_HEIGHT 50
+#define CTXPOPUP_ENTRY_ITEM_HEIGHT 74
+#define CTXPOPUP_ENTRY_ITEM_PADDING_WIDTH 14
+#define CTXPOPUP_ENTRY_ITEM_FONT_SIZE 28
+#define CTXPOPUP_ENTRY_ICON_SIZE 58
+#define CTXPOPUP_ENTRY_ITEM_WIDTH_MAX 240
+#define CTXPOPUP_ENTRY_LIST_SHADOW_PADDING 3
+#define CTXPOPUP_ENTRY_ITEM_DISABLED_COLOR 200 200 200 127
+#define CTXPOPUP_ENTRY_ARROW_SIZE_HEIGHT 18
+#define CTXPOPUP_ENTRY_ARROW_SIZE_WIDTH 29
+
+#define TICKERNOTI_DEFAULT_BG_MIN_HEIGHT_INC 100
+#define TICKERNOTI_DEFAULT_BG_BOTTOM_MIN_HEIGHT_INC 12
+#define TICKERNOTI_DEFAULT_BG_BORDER_INC 2 2 2 14
+#define TICKERNOTI_DEFAULT_BG_PADDING_LEFT_TOP_INC 16 18
+#define TICKERNOTI_DEFAULT_BG_PADDING_RIGHT_BOTTOM_INC 16 18
+#define TICKERNOTI_DEFAULT_PADDING_AFTER_ICON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_MIN_INC 0 60
+#define TICKERNOTI_DEFAULT_BUTTON_MIN_INC 154 74
+#define TICKERNOTI_DEFAULT_BUTTON_MAX_INC 154 74
+#define TICKERNOTI_DEFAULT_ICON_MIN_INC 64 64
+#define TICKERNOTI_DEFAULT_PADDING_BEFORE_BUTTON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_FONT_SIZE_INC 30
+#define TICKERNOTI_DEFAULT_TEXT2_FONT_SIZE_INC 24
+#define TICKERNOTI_INFO_BG_MIN_HEIGHT_INC 50
+#define TICKERNOTI_INFO_BG_PADDING_LEFT_TOP_INC 8 5
+#define TICKERNOTI_INFO_BG_PADDING_RIGHT_BOTTOM_INC 8 5
+#define TICKERNOTI_BG_PADDING_AFTER_ICON_INC 15 0
+#define TICKERNOTI_INFO_TEXT_FONT_SIZE_INC 28
+#define TICKERNOTI_TEXT_ONLY_TEXT_MIN_INC 0 64
+
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC 180 16
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE 6
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_MATCHLIST_SCROLLBAR_BG_IMAGE_BORDER 13 13 10 15
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_PADDING_SIZE 6
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_PADDING_SIZE 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_MIN_SIZE_INC 180 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_RUNNER_BORDER 0 0 4 4
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_RUNNER_BORDER 4 4 0 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_OVER1 6 6 6 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_OVER2 6 6 6 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_OVER1 6 6 6 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_OVER2 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_PADDING_SIZE 6
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_PADDING_SIZE 16
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_MIN_SIZE_INC 180 16
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_RUNNER_BORDER 0 0 4 4
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_RUNNER_BORDER 4 4 0 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_OVER1 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_OVER2 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_OVER1 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_OVER2 6 6 6 0
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIN_SIZE_INC 54 220
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIN_SIZE_INC 220 54
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIDDLE_MIN_SIZE_INC 54 26
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIDDLE_MIN_SIZE_INC 26 54
+#define SCROLLER_HANDLER_SCROLLBAR_PADDING_INC 4
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_BOTTOM_BORDER 10 10 0 10
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_RIGHT_BORDER 0 10 10 10
+
+#define TOOLBAR_ITEM_SEPARATOR_LEFT_COLOR_INC 53 53 53 255
+#define TOOLBAR_ITEM_SEPARATOR_MIDDLE_COLOR_INC 0 0 0 255
+#define TOOLBAR_ITEM_SEPARATOR_RIGHT_COLOR_INC 25 25 25 255
+#define TOOLBAR_ITEM_BG_REL1_OFFSET_INC 4 4
+#define TOOLBAR_ITEM_BG_REL2_OFFSET_INC -5 -5
+#define TOOLBAR_ITEM_BG_SELECTED_BORDER_INC 3 3 3 3
+#define TABBAR_ITEM_TEXTBLOCK_COLOR_INC "#999999"
+#define TABBAR_ITEM_SELECTED_TEXTBLOCK_COLOR_INC "#3b73b6"
+#define TABBAR_ITEM_BG_DEFAULT_BORDER_INC 9 9 9 9
+#define TABBAR_ITEM_BG_DEFAULT_VISIBLE_INC 0
+#define TABBAR_ITEM_BG_DEFAULT_COLOR_INC 255 255 255 0
+#define TABBAR_DEFAULT_HEIGHT_INC 111
+#define TABBAR_ICON_TEXT_HEIGHT_INC 149
+#define TABBAR_HORIZONTAL_HEIGHT_INC 91
+#define TABBAR_HORIZONTAL_ICON_TEXT_HEIGHT_INC 142
+#define TABBAR_ITEM_ICON_SIZE_INC 68 68
+
diff --git a/data/edc/theme2/theme2.edc b/data/edc/theme2/theme2.edc
new file mode 100755 (executable)
index 0000000..3276bbb
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+collections {
+
+#include "genlist.edc"
+
+}
diff --git a/data/edc/theme3/button.edc b/data/edc/theme3/button.edc
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/data/edc/theme3/dialogue.edc b/data/edc/theme3/dialogue.edc
new file mode 100755 (executable)
index 0000000..f33b8f8
--- /dev/null
@@ -0,0 +1,2 @@
+#include "originals/tizen-hd-inc.edc"
+#include "originals/genlist_macro.edc"
diff --git a/data/edc/theme3/gengrid.edc b/data/edc/theme3/gengrid.edc
new file mode 100644 (file)
index 0000000..f33b8f8
--- /dev/null
@@ -0,0 +1,2 @@
+#include "originals/tizen-hd-inc.edc"
+#include "originals/genlist_macro.edc"
diff --git a/data/edc/theme3/list-base.edc b/data/edc/theme3/list-base.edc
new file mode 100755 (executable)
index 0000000..e180c8f
--- /dev/null
@@ -0,0 +1,244 @@
+#include "originals/tizen-hd-inc.edc"
+#include "originals/genlist_macro.edc"
+#include "originals/genlist_textblock_style.edc"
+
+   group { name: "elm/genlist/item/4text.1icon.3.calendar.search/default";
+      alias: "elm/genlist/item_odd/4text.1icon.3.calendar.search/default";
+      alias: "elm/genlist/item_compress/4text.1icon.3.calendar.search/default";
+      alias: "elm/genlist/item_compress_odd/4text.1icon.3.calendar.search/default";
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3";
+      data.item: "contents" "elm.swallow.colorbar elm.icon.1 elm.icon.2 elm.icon.3";
+
+      images {
+         image: "00_list_bubble_bg.png" COMP;
+      }
+      parts {
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BASE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP_2LINE
+         GENLIST_PART_PADDING_BOTTOM_2LINE
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_COLORBAR
+
+         GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+            "elm.padding.left", "elm.padding.bubble.left",
+            "elm.padding.top", "elm.text.3",
+         )
+         GENLIST_PART_PADDING_R("elm.padding.bubble.left", "elm.icon.1")
+         GENLIST_PART_ICON_SMALL_RTB("elm.icon.1", "elm.padding.right", "elm.padding.top", "elm.text.3")
+         GENLIST_PART_ICON_SMALL_RTB("elm.icon.2", "elm.icon.1", "elm.padding.top", "elm.text.3")
+         GENLIST_PART_ICON_SMALL_RTB("elm.icon.3", "elm.icon.2", "elm.padding.top", "elm.text.3")
+
+         GENLIST_PART_SUBITEM_LRB_TB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+            "elm.padding.left", "elm.padding.text2.left", "elm.padding.bottom")
+         GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.2")
+         GENLIST_PART_SUBITEM_RTB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+            "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+         GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+         target: "elm.swallow.colorbar"; target: "elm.icon.1";)
+   }
+
+#define TASK_DIM_STRIKEOUT_L \
+   text { \
+      min: 0 1; \
+      style: "strike_textblock_style"; \
+   }
+
+#define TASK_DIM_L \
+   text { \
+      min: 0 1; \
+      style: "strike_textblock_style2"; \
+   }
+
+#define TASK_DIM_R \
+   text { \
+      min: 0 1; \
+      style: "strike_textblock_style3"; \
+   }
+
+#define GENLIST_PART_LISTITEM_TB_CAL_TASK_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         PARAM \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+   
+#define GENLIST_PART_SUBITEM_LRB_TB_CAL_TASK(NAME, HEIGHT, LEFT, RIGHT, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         PARAM \
+         fixed: 0 1; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_RTB_TB_CAL_TASK(NAME, HEIGHT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         PARAM \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+   group { name: "elm/genlist/item/3text.4icon.calendar.check/default"; // elm/genlist/item/4text.1icon.3/default
+
+      GENLIST_DATA_ITEM_NORMAL
+      data.item: "texts" "elm.text.1 elm.text.2 elm.text.3 elm.textblock.1 elm.textblock.2 elm.textblock.3";
+      data.item: "contents" "elm.swallow.colorbar elm.edit.icon elm.icon.1 elm.icon.2 elm.icon.3";
+
+       styles{
+               style { name: "strike_textblock_style";
+                base: "font=SLP:style=Regular  font_size=44 align=left color=#D1D1D1FF wrap=mixed ellipsis=1";
+                       tag, "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Roman";
+                       tag,  "b" "+ font=SLP:style=Roman";
+                       tag, "tab" "\t";
+                       tag: "match" "+ color=#2A89C2";
+                tag:  "strike" "+ strikethrough=on strikethrough_color=#FF0000";
+             }
+               style { name: "strike_textblock_style_selected";
+                base: "font=SLP:style=Regular font_size=44 align=left color=#F9F9F9FF wrap=mixed ellipsis=1" ;
+                       tag, "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Roman";
+                       tag,  "b" "+ font=SLP:style=Roman";
+                       tag, "tab" "\t";
+                       tag: "match" "+ color=#FFFFFF";
+                tag:  "strike" "+ strikethrough=on strikethrough_color=#FF0000";
+             }
+               style { name: "strike_textblock_style_text1";
+                       base, "font=SLP:style=Roman font_size="GENLIST_FONT_44_INC" align=left color=#000000ff wrap=mixed ellipsis=1";
+                       tag, "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Roman";
+                       tag,  "b" "+ font=SLP:style=Roman";
+                       tag, "tab" "\t";
+                       tag: "match" "+ color=#2A89C2";
+
+             }
+               style { name: "strike_textblock_style_text1_selected";
+                       base, "font=SLP:style=Roman font_size="GENLIST_FONT_44_INC" align=left color=#ffffffff wrap=mixed ellipsis=1";
+                       tag, "br" "\n";
+                       tag,  "ps" "ps";
+                       tag,  "hilight" "+ font=SLP:style=Roman";
+                       tag,  "b" "+ font=SLP:style=Roman";
+                       tag, "tab" "\t";
+                       tag: "match" "+ color=#FFFFFF";
+             }
+               style { name: "strike_textblock_style2";
+                base: "font=SLP:style=Bold  font_size=32 align=left color=#D1D1D1FF wrap=mixed ellipsis=1";
+                 tag,  "ps" "ps";
+                tag:  "br" "\n";
+                tag:  "hilight" "+ font=SLP:style=Bold";
+                tag:  "b" "+ font=SLP:style=Bold";
+                tag:  "tab" "\t";
+             }
+               style { name: "strike_textblock_style2_selected";
+                base: "font=SLP:style=Bold font_size=32 align=left color=#F9F9F9FF wrap=mixed ellipsis=1" ;
+                 tag,  "ps" "ps";
+                tag:  "br" "\n";
+                tag:  "hilight" "+ font=SLP:style=Bold";
+                tag:  "b" "+ font=SLP:style=Bold";
+                tag:  "tab" "\t";
+             }
+               style { name: "strike_textblock_style3";
+                base: "font=SLP:style=Bold  font_size=32 align=right color=#D1D1D1FF wrap=mixed ellipsis=1";
+                 tag,  "ps" "ps";
+                tag:  "br" "\n";
+                tag:  "hilight" "+ font=SLP:style=Bold";
+                tag:  "b" "+ font=SLP:style=Bold";
+                tag:  "tab" "\t";
+             }
+               style { name: "strike_textblock_style3_selected";
+                base: "font=SLP:style=Bold font_size=32 align=right color=#F9F9F9FF wrap=mixed ellipsis=1" ;
+                 tag,  "ps" "ps";
+                tag:  "br" "\n";
+                tag:  "hilight" "+ font=SLP:style=Bold";
+                tag:  "b" "+ font=SLP:style=Bold";
+                tag:  "tab" "\t";
+             }
+       }
+      images {
+         image: "00_list_bubble_bg.png" COMP;
+      }
+      
+       parts {
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BASE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP_2LINE
+         GENLIST_PART_PADDING_BOTTOM_2LINE
+         GENLIST_PART_PADDING_LEFT
+         GENLIST_PART_PADDING_RIGHT
+         GENLIST_PART_COLORBAR
+
+         GENLIST_PART_ICON_BIG_L("elm.edit.icon", "elm.padding.left")
+         GENLIST_PART_PADDING_L("elm.padding.icon1.right", "elm.edit.icon")
+
+         GENLIST_PART_LISTITEM_TB_("elm.text.1", GENLIST_HEIGHT_2LINE_MAIN,
+            "elm.padding.icon1.right", "elm.padding.bubble.left",
+            "elm.padding.top", "elm.text.3",
+         )
+         GENLIST_PART_LISTITEM_TB_CAL_TASK_("elm.textblock.1", GENLIST_HEIGHT_2LINE_MAIN,
+            "elm.padding.icon1.right", "elm.padding.bubble.left",
+            "elm.padding.top", "elm.text.3", TASK_DIM_STRIKEOUT_L
+         )
+         GENLIST_PART_PADDING_R("elm.padding.bubble.left", "elm.icon.1")
+         GENLIST_PART_ICON_SMALL_RTB("elm.icon.1", "elm.padding.right", "elm.padding.top", "elm.text.3")
+         GENLIST_PART_ICON_SMALL_RTB("elm.icon.2", "elm.icon.1", "elm.padding.top", "elm.text.3")
+         GENLIST_PART_ICON_SMALL_RTB("elm.icon.3", "elm.icon.2", "elm.padding.top", "elm.text.3")
+
+         GENLIST_PART_SUBITEM_LRB_TB("elm.text.3", GENLIST_HEIGHT_2LINE_SUB,
+            "elm.padding.icon1.right", "elm.padding.text2.left", "elm.padding.bottom")
+         GENLIST_PART_SUBITEM_LRB_TB_CAL_TASK("elm.textblock.3", GENLIST_HEIGHT_2LINE_SUB,
+            "elm.padding.icon1.right", "elm.padding.text2.left", "elm.padding.bottom", TASK_DIM_L)
+         GENLIST_PART_PADDING_R("elm.padding.text2.left", "elm.text.2")
+         GENLIST_PART_SUBITEM_RTB_TB("elm.text.2", GENLIST_HEIGHT_2LINE_SUB,
+            "elm.padding.right", "elm.text.1", "elm.padding.bottom")
+         GENLIST_PART_SUBITEM_RTB_TB_CAL_TASK("elm.textblock.2", GENLIST_HEIGHT_2LINE_SUB,
+            "elm.padding.right", "elm.text.1", "elm.padding.bottom", TASK_DIM_R)
+            
+         GENLIST_PART_FLIP
+      }
+      GENLIST_PROGRAMS_NORMAL( target: "elm.text.1"; target: "elm.text.2"; target: "elm.text.3";
+         target: "elm.swallow.colorbar"; target: "elm.icon.1"; target: "elm.edit.icon"; )
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.textblock.1";
+            target: "elm.textblock.2";
+            target: "elm.textblock.3";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            target: "elm.text.3";
+            target: "elm.textblock.1";
+            target: "elm.textblock.2";
+            target: "elm.textblock.3";
+            transition: LINEAR 0.1;
+         }
+   }
diff --git a/data/edc/theme3/originals/genlist_macro.edc b/data/edc/theme3/originals/genlist_macro.edc
new file mode 100644 (file)
index 0000000..1495ef1
--- /dev/null
@@ -0,0 +1,3060 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG
+ * ELECTRONICS ("Confidential Information"). You agree and acknowledge that this
+ * software is owned by Samsung and you shall not disclose such Confidential
+ * Information and shall use it only in accordance with the terms of the license
+ * agreement you entered into with SAMSUNG ELECTRONICS. SAMSUNG make no
+ * representations or warranties about the suitability of the software, either
+ * express or implied, including but not limited to the implied warranties of
+ * merchantability, fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee arising out
+ * of or releated to this software.
+ *
+ */
+
+//****************************************************************************//
+// *******************************  Default size macro **********************//
+//**************************************************************************//
+// if size is different for each theme, split it into each theme inc.
+
+#define GENLIST_HEIGHT_1LINE              112
+#define GENLIST_HEIGHT_2LINE_MAIN         54
+#define GENLIST_HEIGHT_2LINE_SUB          42
+#define GENLIST_HEIGHT_MULTILINE_SUB      38
+#define GENLIST_PART_LIST_LINE_HEIGHT     1
+#define GENLIST_HEIGHT_GROUPTITLE         46
+
+#define GENLIST_PADDING_SIZE_DEFAULT            16
+#define GENLIST_PADDING_SIZE_LEFT               26
+#define GENLIST_PADDING_SIZE_RIGHT              26
+// Dialogue group image has bottom padding (2piexl), Giant font can overlapped bottom line of image.
+#define GENLIST_PADDING_SIZE_TOP                2
+#define GENLIST_PADDING_SIZE_BOTTOM             2
+// -----------------------------------------------------
+#define GENLIST_PADDING_SIZE_TOP_2LINE          22
+#define GENLIST_PADDING_SIZE_BOTTOM_2LINE       22
+#define GENLIST_PADDING_SIZE_TOP_3LINE          17
+#define GENLIST_PADDING_SIZE_BOTTOM_3LINE       17
+#define GENLIST_PADDING_SIZE_NDEPTH             26
+
+#define DIALOGUE_PADDING_SCROLLER         16
+#define DIALOGUE_PADDING_SIZE_LEFT        16+20
+#define DIALOGUE_PADDING_SIZE_RIGHT       16+20
+
+#define GENLIST_ICON_BIG_SIZE             74
+#define GENLIST_ICON_SMALL_SIZE           38
+#define GENLIST_ICON_STAR_SIZE            38
+#define GENLIST_ICON_THUMBNAIL1_SIZE      104
+#define GENLIST_BTN_01_HEIGHT             74
+#define GENLIST_BTN_02_SIZE               74
+#define GENLIST_ICON_ONOFF_WIDTH          132
+#define GENLIST_ICON_ONOFF_HEIGHT         70
+#define GENLIST_ICON_CHECK_RADIO_SIZE     64
+#define GENLIST_ICON_COLORBAR_SIZE        7
+#define GENLIST_ICON_PASSWORD_SIZE        82
+
+#define GENLIST_TREESIZE_DEFAULT          26
+
+//#define GENLIST_DIALOGUE_SEPARATOR_DEFAULT_HEIGHT 40
+
+//****************************************************************************//
+// *****************  EDJE description have 24 patterns **********************//
+ //**************************************************************************//
+// ------------------
+// |  PART == HERE  |
+// ------------------
+ #define GENLIST_DESCRIPTION_ENVELOP( PART, PARAM ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 0 0; \
+            to: PART; \
+         }\
+         rel2 {\
+            relative: 1 1;\
+            to: PART; \
+         }\
+         PARAM\
+      }
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION( left, right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// ---------------------
+// left |--> HERE
+// ---------------------
+#define GENLIST_DESCRIPTION_L( left, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 { \
+            relative: 1 1;\
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// ---------------------
+//   HERE  <--| right
+// ---------------------
+#define GENLIST_DESCRIPTION_R( right, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5; \
+         fixed: 1 0; \
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right; \
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+// --------------------------
+// left |--> HERE  <--| right
+// --------------------------
+#define GENLIST_DESCRIPTION_LR( left, right, param ) \
+      description { state: "default" 0.0;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: "base"; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: "base"; \
+         }\
+         param\
+      }
+
+//   |  top     |
+// -----------------
+//  |  HERE  <--| right
+// -----------------
+//  | bottom   |
+#define GENLIST_DESCRIPTION_RTB( right, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// left |  HERE  | right
+// ---------------------
+//      | bottom |
+#define GENLIST_DESCRIPTION_LRB( left, right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |   top  |
+// ---------------------
+// left |  HERE  | right
+#define GENLIST_DESCRIPTION_LRT( left, right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+//      |       top  |
+// ---------------------
+// left | -->  HERE  |
+#define GENLIST_DESCRIPTION_LT( left, top, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 1;\
+            to_x: left;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+// left |  --> HERE  |
+// ---------------------
+//      |     bottom |
+#define GENLIST_DESCRIPTION_LB( left, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 1;\
+         rel1 { \
+            relative: 1 0; \
+            to_x: left; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |     top  |
+// ---------------------
+// left |--> HERE  |
+// ---------------------
+//      |   bottom |
+#define GENLIST_DESCRIPTION_LTB( left, top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0 0.5;\
+         rel1 { \
+            relative: 1 1; \
+            to_x: left; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_x: left;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+//      |   top  |
+// ---------------------
+//     |  HERE <--| right
+#define GENLIST_DESCRIPTION_RT( right, top, param ) \
+      description { state: "default" 0.0;\
+         align: 1 0;\
+         rel1 { \
+            relative: 0 1; \
+            to_x: right; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 0 1;\
+            to_x: right;\
+            to_y: top;\
+         }\
+         param\
+      }
+
+//  | HERE <-- | right
+// ---------------------
+//  |  bottom  |
+#define GENLIST_DESCRIPTION_RB( right, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 1 1;\
+         rel1 { \
+            relative: 0 0; \
+            to_x: right; \
+            to_y: bottom; \
+         }\
+         rel2 {\
+            relative: 0 0;\
+            to_x: right;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+// |   top  |
+// ----------
+// |  HERE  |
+// ----------
+// | bottom |
+#define GENLIST_DESCRIPTION_TB( top, bottom, param ) \
+      description { state: "default" 0.0;\
+         align: 0.5 0.5;\
+         rel1 { \
+            relative: 0 1; \
+            to_y: top; \
+         }\
+         rel2 {\
+            relative: 1 0;\
+            to_y: bottom;\
+         }\
+         param\
+      }
+
+#define GENLIST_DATA_ITEM_NORMAL \
+      data.item: "stacking" "above"; \
+      data.item: "selectraise" "on"; \
+      data.item: "flips" "elm.flip.icon elm.flip.content"; \
+      data.item: "treesize" GENLIST_TREESIZE_DEFAULT;
+
+/*****************************************************************************/
+/******************************* Dialogue group ******************************/
+/*****************************************************************************/
+#define GENLIST_DIALOGUE_INHERIT_BODY( _PARTS ) \
+      data.item: "treesize" 0; \
+      GENLIST_IMAGES_DIALOGUE_BG_IMAGE \
+      parts { \
+         GENLIST_PART_BG_IMAGE_DIALOGUE \
+         GENLIST_PART_BOTTOM_LINE_OFF \
+         GENLIST_PART_PADDING_LEFT_SIZE( DIALOGUE_PADDING_SIZE_LEFT ) \
+         GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( DIALOGUE_PADDING_SIZE_RIGHT ) \
+         _PARTS \
+         GENLIST_PART_FLIP \
+      }
+
+//****************************************************************************//
+// ****************************** BG Image **********************************//
+//****************************************************************************//
+#define GENLIST_IMAGE_GROUPINDEX \
+      images { \
+         image: "00_index list_bg.png" COMP; \
+      }
+#define GENLIST_PART_INDEX_BG_IMAGE \
+         part { name: "bg_image"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_GROUPINDEX_LIST_BG_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_GROUPINDEX_LIST_PRESS_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         }
+
+#define GENLIST_PART_BG_IMAGE \
+         part { name: "bg_image_depth_clip"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: 0 0 0 0; \
+            } \
+            description { state: "2depth" 0.0; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         part { name: "bg_image"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_LIST_BG_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               color: GENLIST_LIST_PRESS_COLOR; \
+            } \
+            description { state: "disabled" 0.0; \
+               color: GENLIST_LIST_DIM_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         }
+
+#define GENLIST_IMAGES_DIALOGUE_BG_IMAGE \
+         images { \
+            image : "00_list_group_bg.png" COMP; \
+            image : "00_list_group_bg_top.png" COMP; \
+            image : "00_list_group_bg_center.png" COMP; \
+            image : "00_list_group_bg_bottom.png" COMP; \
+            image : "00_list_group_bg_press.png" COMP; \
+            image : "00_list_group_bg_top_press.png" COMP; \
+            image : "00_list_group_bg_center_press.png" COMP; \
+            image : "00_list_group_bg_bottom_press.png" COMP; \
+         }
+
+#define GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+         rel1 { \
+            to_x: "bg_image_left"; \
+            relative: 1 0; \
+         } \
+         rel2 { \
+            to_x: "bg_image_right"; \
+            relative: 0 1; \
+         }
+
+#define GENLIST_PART_BG_IMAGE_DIALOGUE \
+         part { name: "bg_image_depth_clip"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: 255 255 255 255; \
+            } \
+            description { state: "2depth" 0.0; \
+               color: 220 218 211 255; \
+            } \
+         } \
+         part { name: "bg_image_left"; \
+            type: SPACER; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 16 0; \
+               max: 16 -1; \
+               fixed: 1 0; \
+               align: 0 0.5; \
+               rel2.relative: 0 1; \
+            } \
+         } \
+         part { name: "bg_image_right"; \
+            type: SPACER; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 16 0; \
+               max: 16 -1; \
+               fixed: 1 0; \
+               align: 1 0.5; \
+               rel1.relative: 1 0; \
+            } \
+            description { state: "editmode" 0.0; \
+               inherit: "default" 0.0; \
+               min: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_BIG_SIZE) 0; \
+               max: (GENLIST_PADDING_SIZE_DEFAULT*2+GENLIST_ICON_BIG_SIZE) 0; \
+            } \
+         } \
+         part { name: "bg_image"; \
+            clip_to: "bg_image_depth_clip"; \
+            type: IMAGE; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: 255 255 255 255; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg.png"; \
+                  border: 15 15 55 55; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               color: 255 255 255 255; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_press.png"; \
+                  border: 15 15 55 55; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default"; \
+               color: 255 255 255 255; \
+            } \
+            description { state: "top" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_top.png"; \
+                  border: 15 15 55 2; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "top_selected" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_top_press.png"; \
+                  border: 15 15 55 2; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "top_disabled" 0.0; \
+               inherit: "top"; \
+            } \
+            description { state: "center" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_center.png"; \
+                  border: 15 15 2 2; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "center_selected" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_center_press.png"; \
+                  border: 15 15 2 2; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "center_disabled" 0.0; \
+               inherit: "center"; \
+            } \
+            description { state: "bottom" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_bottom.png"; \
+                  border: 15 15 2 55; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "bottom_selected" 0.0; \
+               GENLIST_PARAM_BG_IMAGE_DIALOGUE \
+               image { \
+                  normal: "00_list_group_bg_bottom_press.png"; \
+                  border: 15 15 2 10; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "bottom_disabled" 0.0; \
+               inherit: "bottom"; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         }
+
+//****************************************************************************//
+// ****************************** BASE  ********************************//
+//****************************************************************************//
+#define GENLIST_PART_BASE \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               align: 0.5 0.5; \
+               color: 0 0 0 0; \
+            } \
+         } \
+         GENLIST_PART_PERSPECTIVE_POINT
+
+#define GENLIST_PART_BASE_REORDER \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               align: 0.5 0.5; \
+               color: 0 0 0 0; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: "reorder.padding.left"; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: "reorder.padding.right"; \
+               } \
+            } \
+         } \
+         part { name: "reorder.padding.left"; \
+            type: SPACER; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               rel2.relative: 0 1; \
+               align: 0 0.5; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 16 0; \
+               max: 16 -1; \
+            } \
+         } \
+         part { name: "reorder.padding.right"; \
+            type: SPACER; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               rel1.relative: 1 0; \
+               align: 1 0.5; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               min: 16 0; \
+               max: 16 -1; \
+            } \
+         } \
+         GENLIST_PART_PERSPECTIVE_POINT
+
+//****************************************************************************//
+// ****************************** LINE ********************************//
+//****************************************************************************//
+#define GENLIST_PART_BOTTOM_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color: GENLIST_LIST_LINE1_COLOR; \
+               rel1.to: "bottom_line2"; \
+               rel2.to: "bottom_line2"; \
+               rel2.relative: 1 0; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_PRESS_COLOR; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_DIM_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         } \
+         part { name: "bottom_line2"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               color: GENLIST_LIST_LINE2_COLOR; \
+               rel1.to_x: "elm.padding.left"; \
+               rel1.relative: 1 0; \
+               rel2.to_x: "elm.padding.right"; \
+               rel2.relative: 0 1; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_PRESS_COLOR; \
+            } \
+            description { state: "reorder" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_LIST_DIM_COLOR; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         }
+
+#define GENLIST_PART_BOTTOM_LINE_OFF \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               rel1.to: "bottom_line2"; \
+               rel2.to: "bottom_line2"; \
+               rel2.relative: 1 0; \
+               visible: 0; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         } \
+         part { name: "bottom_line2"; \
+            type: RECT; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PART_LIST_LINE_HEIGHT; \
+               max: -1 GENLIST_PART_LIST_LINE_HEIGHT; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               rel1.to_x: "elm.padding.left"; \
+               rel1.relative: 1 0; \
+               rel2.to_x: "elm.padding.right"; \
+               rel2.relative: 0 1; \
+               visible: 0; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         }
+
+#define GENLIST_PART_DIVIDER_MARGIN \
+         GENLIST_PART_SPACER("elm.padding.divider.top", \
+            GENLIST_DESCRIPTION_ENVELOP("base", \
+               align: 0.5 0; \
+               min: 0 30; \
+               max: -1 30; \
+               fixed: 0 1; \
+               rel2.relative: 1 0; \
+            ) \
+         ) \
+         GENLIST_PART_SPACER("elm.padding.divider.bottom", \
+            GENLIST_DESCRIPTION_ENVELOP("base", \
+               align: 0.5 1; \
+               min: 0 30; \
+               max: -1 30; \
+               fixed: 0 1; \
+               rel1.relative: 0 1; \
+            ) \
+         ) \
+
+#define GENLIST_PART_DIVIDER_L(LEFT) \
+         GENLIST_PART_DIVIDER_MARGIN \
+         GENLIST_PART_RECT("elm.divider1", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_LTB(LEFT, "elm.padding.divider.top", "elm.padding.divider.bottom", \
+               min: 1 0; \
+               max: 1 -1; \
+               fixed: 1 0; \
+               color: GENLIST_LIST_DIVIDER1_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADE \
+         ) \
+         GENLIST_PART_RECT("elm.divider2", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_LTB("elm.divider1", "elm.padding.divider.top", "elm.padding.divider.bottom", \
+               min: 1 0; \
+               max: 1 -1; \
+               fixed: 1 0; \
+               color: GENLIST_LIST_DIVIDER2_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADE \
+         )
+
+#define GENLIST_PART_DIVIDER_R(RIGHT) \
+         GENLIST_PART_DIVIDER_MARGIN \
+         GENLIST_PART_RECT("elm.divider1", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_RTB("elm.divider2", "elm.padding.divider.top", "elm.padding.divider.bottom", \
+               min: 1 0; \
+               max: 1 -1; \
+               fixed: 1 0; \
+               color: GENLIST_LIST_DIVIDER1_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADE \
+         ) \
+         GENLIST_PART_RECT("elm.divider2", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.divider.top", "elm.padding.divider.bottom", \
+               min: 1 0; \
+               max: 1 -1; \
+               fixed: 1 0; \
+               color: GENLIST_LIST_DIVIDER2_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADE \
+         )
+
+#define GENLIST_PART_CENTER_LINE_LT(LEFT, TOP) \
+         GENLIST_PART_SPACER("elm.padding.divider.left", \
+            GENLIST_DESCRIPTION_L(LEFT, \
+               min: 16 0; \
+               max: 16 -1; \
+               fixed: 1 0; \
+            ) \
+         ) \
+         GENLIST_PART_SPACER("elm.padding.divider.right", \
+            GENLIST_DESCRIPTION_ENVELOP("base", \
+               min: 16 0; \
+               max: 16 -1; \
+               fixed: 1 0; \
+               align: 1 0.5; \
+               rel1.relative: 1 0; \
+            ) \
+         ) \
+         GENLIST_PART_RECT("center_line", \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_LRT("elm.padding.divider.left", "elm.padding.divider.right", TOP, \
+               min: 0 1; \
+               max: -1 1; \
+               fixed: 0 1; \
+               color: GENLIST_LIST_DIVIDER1_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADE \
+         ) \
+         GENLIST_PART_RECT("center_line2", \
+            GENLIST_DESCRIPTION_LRT("elm.padding.divider.left", "elm.padding.divider.right", "center_line", \
+               min: 0 1; \
+               max: -1 1; \
+               fixed: 0 1; \
+               color: GENLIST_LIST_DIVIDER2_COLOR; \
+            ) \
+            GENLIST_DESCRIPTION_FADE \
+         )
+
+#define GENLIST_PART_COLORBAR \
+         GENLIST_PART_SPACER("elm.padding.colorbar.top", \
+             GENLIST_DESCRIPTION_ENVELOP("base", \
+               align: 0.5 0; \
+               fixed: 0 1; \
+               min: 0 4; \
+               max: -1 4; \
+               rel2.relative: 1 0; \
+             ) \
+         ) \
+         GENLIST_PART_SPACER("elm.padding.colorbar.bottom", \
+             GENLIST_DESCRIPTION_ENVELOP("base", \
+               align: 0.5 1; \
+               fixed: 0 1; \
+               min: 0 4; \
+               max: -1 4; \
+               rel1.relative: 0 1; \
+             ) \
+         ) \
+         GENLIST_PART_ICON("elm.swallow.colorbar", \
+            GENLIST_DESCRIPTION_LTB("bg_image", "elm.padding.colorbar.top", "elm.padding.colorbar.bottom", \
+               min: GENLIST_ICON_COLORBAR_SIZE 0; \
+               max: GENLIST_ICON_COLORBAR_SIZE -1; \
+               fixed: 1 0; \
+               rel1.relative: 0 1; \
+               rel2.relative: 0 0; \
+            ) \
+            GENLIST_DESCRIPTION_FADE \
+         )
+
+//****************************************************************************//
+//********************************* PADDING **********************************//
+//****************************************************************************//
+#define GENLIST_PART_EXPANDED_PAD \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            scale: 1; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               min: 0 0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 0.0 1.0; \
+            } \
+         } \
+
+#define GENLIST_PART_PADDING( NAME, SIZE, REL1, REL2 ) \
+      GENLIST_PART_SPACER(NAME, \
+         description { state: "default" 0.0; \
+            min: SIZE 0; \
+            max: SIZE -1; \
+            fixed: 1 0; \
+            align: 0.5 0.5; \
+            rel1 { \
+               relative: REL1; \
+               to: "base"; \
+            } \
+            rel2 { \
+               relative: REL2; \
+               to: "base"; \
+            } \
+         } \
+      )
+
+#define GENLIST_PART_PADDING_LEFT \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: GENLIST_PADDING_SIZE_LEFT 0; \
+               max: GENLIST_PADDING_SIZE_LEFT -1; \
+               fixed: 1 0; \
+            ) \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_LEFT_SIZE( SIZE ) \
+         GENLIST_PART_EXPANDED_PAD \
+         GENLIST_PART_SPACER("elm.padding.left", \
+            GENLIST_DESCRIPTION_L("elm.swallow.pad",  \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               fixed: 1 0; \
+            ) \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+            } \
+         )
+
+#define GENLIST_PART_EDITBTN \
+         part { name: "elm.icon.edit"; \
+            type: SWALLOW; \
+            scale: 1; \
+            GENLIST_DESCRIPTION_R("elm.padding.edit.right", \
+               fixed: 1 1; \
+               visible: 0; \
+               min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
+               max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
+            ) \
+            description { state: "editmode" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+         GENLIST_PART_SPACER("elm.padding.edit.right", \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+               min: GENLIST_PADDING_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT -1; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_RIGHT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_RIGHT_SIZE( SIZE ) \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_RIGHT_EDIT \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_SIZE_RIGHT 0; \
+               max: GENLIST_PADDING_SIZE_RIGHT -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+            description { state: "editmode" 0.0; \
+               inherit: "default" 0.0; \
+               min: (DIALOGUE_PADDING_SIZE_RIGHT+GENLIST_ICON_BIG_SIZE+GENLIST_PADDING_SIZE_RIGHT) 0; \
+               max: (DIALOGUE_PADDING_SIZE_RIGHT+GENLIST_ICON_BIG_SIZE+GENLIST_PADDING_SIZE_RIGHT) -1; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+            } \
+         ) \
+         GENLIST_PART_EDITBTN
+
+#define GENLIST_PART_PADDING_RIGHT_SIZE_EDIT( SIZE ) \
+         GENLIST_PART_SPACER("elm.padding.right", \
+            description { state: "default" 0.0; \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               fixed: 1 0; \
+               align: 1.0 0.5; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 1 0; \
+            } \
+            description { state: "editmode" 0.0; \
+               inherit: "default" 0.0; \
+               min: (DIALOGUE_PADDING_SIZE_RIGHT+SIZE+GENLIST_ICON_BIG_SIZE) 0; \
+               max: (DIALOGUE_PADDING_SIZE_RIGHT+SIZE+GENLIST_ICON_BIG_SIZE) -1; \
+            } \
+            description { state: "decorate" 0.0; \
+               inherit: "default" 0.0; \
+               min: 0 0; \
+               max: 0 0; \
+            } \
+         ) \
+         GENLIST_PART_EDITBTN
+
+#define GENLIST_PART_PADDING_TOP \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_TOP; \
+               max: -1 GENLIST_PADDING_SIZE_TOP; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_TOP_2LINE \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_TOP_2LINE; \
+               max: -1 GENLIST_PADDING_SIZE_TOP_2LINE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_TOP_SIZE( SIZE ) \
+         GENLIST_PART_SPACER("elm.padding.top", \
+            description { \
+               state: "default" 0.0; \
+               min: 0 SIZE; \
+               max: -1 SIZE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.5 0.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM \
+         GENLIST_PART_SPACER("elm.padding.bottom", \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_BOTTOM; \
+               max: -1 GENLIST_PADDING_SIZE_BOTTOM; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.5 1.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM_2LINE \
+         GENLIST_PART_SPACER("elm.padding.bottom", \
+            description { state: "default" 0.0; \
+               min: 0 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+               max: -1 GENLIST_PADDING_SIZE_BOTTOM_2LINE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.5 1.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_BOTTOM_SIZE( SIZE ) \
+         GENLIST_PART_SPACER("elm.padding.bottom", \
+            description { state: "default" 0.0; \
+               min: 0 SIZE; \
+               max: -1 SIZE; \
+               fixed: 0 1; \
+               rel1.to: "base"; \
+               rel2.to: "base"; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.5 1.0; \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_R( NAME, RIGHT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to_x: RIGHT; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: RIGHT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_R_SIZE( NAME, RIGHT, SIZE ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to_x: RIGHT; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to_x: RIGHT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_L( NAME, LEFT ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: GENLIST_PADDING_SIZE_DEFAULT 0; \
+               max: GENLIST_PADDING_SIZE_DEFAULT -1; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: LEFT; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to_x: LEFT; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_L_SIZE( NAME, LEFT, SIZE ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               min: SIZE 0; \
+               max: SIZE -1; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to_x: LEFT; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to_x: LEFT; \
+               } \
+            } \
+         )
+
+
+#define GENLIST_PART_PADDING_T_SIZE( NAME, TOP, SIZE ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               min: 0 SIZE; \
+               max: -1 SIZE; \
+               fixed: 0 1; \
+               align: 0.5 0; \
+               rel1 { \
+                  relative: 0 1; \
+                  to: TOP; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to: TOP; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PADDING_B_SIZE( NAME, BOTTOM, SIZE ) \
+         GENLIST_PART_SPACER(NAME, \
+            description { state: "default" 0.0; \
+               min: 0 SIZE; \
+               max: -1 SIZE; \
+               fixed: 0 1; \
+               align: 0.5 1; \
+               rel1 { \
+                  relative: 0.5 0; \
+                  to: BOTTOM; \
+               } \
+               rel2 { \
+                  relative: 0.5 0; \
+                  to: BOTTOM; \
+               } \
+            } \
+         )
+
+#define GENLIST_PART_PERSPECTIVE_POINT \
+         GENLIST_PART_RECT("point", \
+            description { \
+               state: "default" 0.0; \
+               color: 0 0 0 0; \
+               rel1 { relative: 0.0 0.0; } \
+               rel2 { relative: 1.0 0.0; } \
+            } \
+         )
+
+#define GENLIST_DESCRIPTION_ROTATE( param_x, param_y, param_z ) \
+   description { state: "map_contracted" 0.0; \
+      inherit: "default" 0.0; \
+      map { \
+         perspective: "point"; \
+         on: 1; \
+         smooth: 1; \
+         perspective_on: 1; \
+         backface_cull: 1; \
+         rotation { \
+            center: "point"; \
+            x: param_x; \
+            y: param_y; \
+            z: param_z; \
+         } \
+      } \
+   } \
+   description { state: "map_expanded" 0.0; \
+      inherit: "default" 0.0; \
+      map { \
+         perspective: "point"; \
+         on: 1; \
+         smooth: 1; \
+         perspective_on: 1; \
+         backface_cull: 1; \
+         rotation { \
+            center: "point"; \
+            x: 0; \
+            y: 0; \
+            z: 0; \
+         } \
+      } \
+   } \
+   description { \
+      state: "hide" 0.0; \
+      inherit: "default" 0.0; \
+      visible: 0; \
+   }
+
+#define GENLIST_PROGRAM_ROTATE( TARGET ) \
+   program { name: "map_expand_start"; \
+      signal: "flip_item"; \
+      action: STATE_SET "map_contracted" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+      after: "map_expanding"; \
+   } \
+   program { name: "map_expanding"; \
+      action: STATE_SET "hide" 0.0; \
+      transition: LINEAR 0.2; \
+      target: "bg_image"; \
+      TARGET \
+      after: "map_expand_end"; \
+   } \
+   program { name: "map_expand_end"; \
+      action: STATE_SET "default" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+   } \
+   program { name: "map_contract_start"; \
+      signal: "elm,state,contract_flip"; \
+      action: STATE_SET "map_expanded" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+      after: "map_contracting"; \
+   } \
+   program { name: "map_contracting"; \
+      action: STATE_SET "map_contracted" 0.0; \
+      transition: LINEAR 0.3; \
+      target: "bg_image"; \
+      TARGET \
+      after: "map_contract_end"; \
+   } \
+   program { name: "map_contract_end"; \
+      action: STATE_SET "hide" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+   }
+
+// FIXME: swallow part cannot be fade out ???
+#define GENLIST_DESCRIPTION_FADE_ICON \
+   description { state: "fadeout" 0.0; \
+      inherit: "default" 0.0; \
+      color: 0 0 0 10; \
+      visible: 0; \
+   } \
+   description { state: "fadein" 0.0; \
+      inherit: "default" 0.0; \
+   } \
+
+#define GENLIST_DESCRIPTION_FADE \
+   description { state: "fadeout" 0.0; \
+      inherit: "default" 0.0; \
+      color: 255 255 255 10; \
+   } \
+   description { state: "fadein" 0.0; \
+      inherit: "default" 0.0; \
+   } \
+
+// FIXME: bg_color_change is used temporary
+#define GENLIST_PROGRAM_EXPAND_FADE( TARGET ) \
+   program { name: "bg_color_change"; \
+      signal: "bg_color_change"; \
+      action: STATE_SET "2depth" 0.0; \
+      target: "bg_image_depth_clip"; \
+      after: "expand_start_fade"; \
+   } \
+   program { name: "expand_start_fade"; \
+      signal: "flip_item"; \
+      action: STATE_SET "fadeout" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+      after: "expand_end_fade"; \
+   } \
+   program { name: "expand_end_fade"; \
+      action: STATE_SET "default" 0.0; \
+      transition: DECELERATE 0.3; \
+      target: "bg_image"; \
+      TARGET \
+   } \
+   program { name: "contract_fade"; \
+      signal: "elm,state,contract_flip"; \
+      action: STATE_SET "fadein" 0.0; \
+      target: "bg_image"; \
+      TARGET \
+      after: "contract_end_fade"; \
+   } \
+   program { name: "contract_end_fade"; \
+      action: STATE_SET "fadeout" 0.0; \
+      transition: ACCELERATE 0.3; \
+      target: "bg_image"; \
+      TARGET \
+   }
+
+// FIXME: This do need now. I should find why this is used in genlist
+#if 0
+         program { \
+            name: "show"; \
+            signal: "elm,state,show"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+         program { \
+            name: "hide"; \
+            signal: "elm,state,hide"; \
+            action: STATE_SET "hide" 0.0; \
+            TARGET \
+         }
+#endif
+
+#define GENLIST_PROGRAM_EXPAND_ROOT( TARGET ) \
+         program { \
+            name: "go_expanded"; \
+            signal: "elm,state,expanded"; \
+            source: "elm"; \
+            action: STATE_SET "expand_opened" 0.0; \
+            TARGET \
+         } \
+         program { \
+            name: "go_contracted"; \
+            signal: "elm,state,contracted"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         } \
+
+
+
+#define GENLIST_PROGRAM_EXPANDABLE( SRC ) \
+        program { \
+            name: "expand"; \
+            signal: "mouse,up,1"; \
+            SRC \
+            action: SIGNAL_EMIT "elm,action,expand,toggle" "elm"; \
+         } \
+
+// 2.2.7 Genlist_Edit mode (Rename)
+// FIXME: padding is not needed when swallow content is NULL.
+// But how can edje kwno existence of swallow content?
+#define GENLIST_PART_FLIP \
+         part { name: "elm.flip.event_block";\
+            type: RECT;\
+            mouse_events: 0; \
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               visible: 0; \
+            } \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+               color: GENLIST_LIST_BG_COLOR;\
+            }\
+         }\
+         part { name: "elm.flip.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 26 0; \
+               max: 26 -1; \
+               fixed: 1 0; \
+               visible: 0; \
+               align: 0 0.5; \
+               rel1 { \
+                  relative: 0 0; \
+                  to: "base"; \
+               } \
+               rel2 { \
+                  relative: 0 1; \
+                  to: "base"; \
+               } \
+            } \
+         } \
+         part { name: "elm.flip.padding.right"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 26 0; \
+               max: 26 -1; \
+               fixed: 1 0; \
+               visible: 0; \
+               align: 1 0.5; \
+               rel1 { \
+                  relative: 1 0; \
+                  to: "base"; \
+               } \
+               rel2 { \
+                  relative: 1 1; \
+                  to: "base"; \
+               } \
+            } \
+         } \
+         part { name: "elm.flip.content"; \
+            type: SWALLOW; \
+            scale: 1; \
+            GENLIST_DESCRIPTION_LR("elm.flip.padding.left", "elm.flip.padding.icon.left", \
+               aspect: 1 1; visible: 0; ) \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         } \
+         GENLIST_PART_PADDING_R("elm.flip.padding.icon.left", "elm.flip.icon") \
+         GENLIST_PART_ICON( "elm.flip.icon", \
+            GENLIST_DESCRIPTION_R("elm.flip.padding.right", \
+               visible: 0; \
+               aspect: 1 1; \
+               align: 1 0.5; \
+               max: 154 74;) \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         )
+
+//****************************************************************************//
+// *******************************  Programs ********************************//
+//**************************************************************************//
+// signal: elm,state,%s,active
+//   a "check" item named %s went active
+// signal: elm,state,%s,passive
+//   a "check" item named %s went passive
+// default is passive
+#define GENLIST_PROGRAM_DISABLED( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+         } \
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "disabled" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_SELECT( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+            after: "play_button_press"; \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            TARGET \
+            transition: LINEAR 0.1; \
+         } \
+         program { name: "play_button_press"; \
+         }
+
+#define GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+            after: "play_button_press"; \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+            transition: LINEAR 0.1; \
+         } \
+         program { name: "play_button_press"; \
+         }
+
+#define GENLIST_PROGRAM_DISABLED_DIALOGUE( TARGET ) \
+         program { name: "enabled"; \
+            signal: "elm,state,enabled"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_image", st, 30, vl); \
+               if (!strcmp(st, "top_disabled")) \
+                  set_state(PART:"bg_image", "top", 0.0); \
+               else if (!strcmp(st, "center_disabled")) \
+                  set_state(PART:"bg_image", "center", 0.0); \
+               else if (!strcmp(st, "bottom_disabled")) \
+                  set_state(PART:"bg_image", "bottom", 0.0); \
+               else \
+                  set_state(PART:"bg_image", "default", 0.0); \
+            } \
+            after: "target_enabled"; \
+         } \
+         program { name: "target_enabled"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         }\
+         program { name: "disabled"; \
+            signal: "elm,state,disabled"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_image", st, 30, vl); \
+               if (!strcmp(st, "top")) \
+                  set_state(PART:"bg_image", "top_disabled", 0.0); \
+               else if (!strcmp(st, "center"))  \
+                  set_state(PART:"bg_image", "center_disabled", 0.0); \
+               else if (!strcmp(st, "bottom"))  \
+                  set_state(PART:"bg_image", "bottom_disabled", 0.0); \
+               else \
+                  set_state(PART:"bg_image", "disabled", 0.0); \
+            } \
+            after: "target_disabled"; \
+         } \
+         program { name: "target_disabled"; \
+            action: STATE_SET "disabled" 0.0; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_image", st, 30, vl); \
+               if (!strcmp(st, "top")) \
+                  set_state(PART:"bg_image", "top_selected", 0.0); \
+               else if (!strcmp(st, "center")) \
+                  set_state(PART:"bg_image", "center_selected", 0.0); \
+               else if (!strcmp(st, "bottom")) \
+                  set_state(PART:"bg_image", "bottom_selected", 0.0); \
+               else \
+                  set_state(PART:"bg_image", "selected", 0.0); \
+            } \
+            after: "target_selected"; \
+            after: "play_button_press"; \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_image", st, 30, vl); \
+               if (!strcmp(st, "top_selected")) \
+                  set_state(PART:"bg_image", "top", 0.0); \
+               else if (!strcmp(st, "center_selected"))  \
+                  set_state(PART:"bg_image", "center", 0.0); \
+               else if (!strcmp(st, "bottom_selected"))  \
+                  set_state(PART:"bg_image", "bottom", 0.0); \
+               else \
+                  set_state(PART:"bg_image", "default", 0.0); \
+            } \
+            transition: LINEAR 0.1; \
+            after: "target_unselected"; \
+         } \
+         program { name: "target_selected"; \
+            action: STATE_SET "selected" 0.0; \
+            TARGET \
+         }\
+         program { name: "target_unselected"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         }\
+         program { name: "bg_top"; \
+            signal: "elm,state,top"; \
+            source: "*"; \
+            action: STATE_SET "top" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "bg_center"; \
+            signal: "elm,state,center"; \
+            source: "*"; \
+            action: STATE_SET "center" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "bg_bottom"; \
+            signal: "elm,state,bottom"; \
+            source: "*"; \
+            action: STATE_SET "bottom" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "bg_default"; \
+            signal: "elm,state,default"; \
+            source: "*"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "play_button_press"; \
+         }
+
+#define GENLIST_PROGRAM_SELECT_DIALOGUE_ARROW( TARGET ) \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_image", st, 30, vl); \
+               if (!strcmp(st, "top")) \
+                  set_state(PART:"bg_image", "top_selected", 0.0); \
+               else if (!strcmp(st, "center")) \
+                  set_state(PART:"bg_image", "center_selected", 0.0); \
+               else if (!strcmp(st, "bottom")) \
+                  set_state(PART:"bg_image", "bottom_selected", 0.0); \
+               else \
+                  set_state(PART:"bg_image", "selected", 0.0); \
+               get_state(PART:"arrow", st, 30, vl); \
+               if (!strcmp(st, "default")) { \
+                  set_state(PART:"arrow", "default_press", 0.0); \
+                  set_state(PART:"arrow_clip", "default_press", 0.0); \
+               } \
+               else if (!strcmp(st, "expand_opened")) { \
+                  set_state(PART:"arrow", "expand_opened_press", 0.0); \
+                  set_state(PART:"arrow_clip", "expand_opened_press", 0.0); \
+               } \
+            } \
+            after: "target_selected"; \
+            after: "play_button_press"; \
+         } \
+         program { name: "unselected"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"bg_image", st, 30, vl); \
+               if (!strcmp(st, "top_selected")) \
+                  set_state(PART:"bg_image", "top", 0.0); \
+               else if (!strcmp(st, "center_selected"))  \
+                  set_state(PART:"bg_image", "center", 0.0); \
+               else if (!strcmp(st, "bottom_selected"))  \
+                  set_state(PART:"bg_image", "bottom", 0.0); \
+               else \
+                  set_state(PART:"bg_image", "default", 0.0); \
+               get_state(PART:"arrow", st, 30, vl); \
+               if (!strcmp(st, "default_press")) { \
+                  set_state(PART:"arrow", "default", 0.0); \
+                  set_state(PART:"arrow_clip", "default", 0.0); \
+               } \
+               else if (!strcmp(st, "expand_opened_press")) { \
+                  set_state(PART:"arrow", "expand_opened", 0.0); \
+                  set_state(PART:"arrow_clip", "expand_opened", 0.0); \
+               } \
+            } \
+            transition: LINEAR 0.1; \
+            after: "target_unselected"; \
+         } \
+         program { name: "target_selected"; \
+            action: STATE_SET "selected" 0.0; \
+            TARGET \
+         }\
+         program { name: "target_unselected"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+         }\
+         program { name: "bg_top"; \
+            signal: "elm,state,top"; \
+            source: "*"; \
+            action: STATE_SET "top" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "bg_center"; \
+            signal: "elm,state,center"; \
+            source: "*"; \
+            action: STATE_SET "center" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "bg_bottom"; \
+            signal: "elm,state,bottom"; \
+            source: "*"; \
+            action: STATE_SET "bottom" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "bg_default"; \
+            signal: "elm,state,default"; \
+            source: "*"; \
+            action: STATE_SET "default" 0.0; \
+            target: "bg_image"; \
+         } \
+         program { name: "play_button_press"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP \
+         program { name: "flip_enabled"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flip_enabled" 0.0; \
+            target: "elm.flip.event_block"; \
+            after: "flip_enabled_next"; \
+         } \
+         program { name: "flip_enabled_next"; \
+            action:  STATE_SET "flip_enabled" 0.0; \
+            transition: DECELERATE 0.5; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            transition: DECELERATE 0.5; \
+            target: "elm.flip.event_block"; \
+            target: "elm.flip.content"; \
+            target: "elm.flip.icon"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_TARGET( TARGET ) \
+         program { name: "flip_enabled"; \
+            signal:  "elm,state,flip,enabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "flip_enabled" 0.0; \
+            transition: DECELERATE 0.5; \
+            TARGET; \
+         } \
+         program { name: "flip_disabled"; \
+            signal:  "elm,state,flip,disabled"; \
+            source:  "elm"; \
+            action:  STATE_SET "default" 0.0; \
+            transition: DECELERATE 0.5; \
+            TARGET \
+         }
+
+#define GENLIST_PROGRAM_EDITMODE \
+         program { name: "edit_enabled"; \
+            signal:  "elm,state,edit,enabled"; \
+            source:  "*"; \
+            action:  STATE_SET "editmode" 0.0; \
+            target: "elm.padding.right"; \
+            target: "elm.icon.edit"; \
+            target: "bg_image_right"; \
+         } \
+         program { name: "edit_disabled"; \
+            signal:  "elm,state,edit,disabled"; \
+            source:  "*"; \
+            action:  STATE_SET "editmode" 0.0; \
+            target: "elm.padding.right"; \
+            target: "elm.icon.edit"; \
+            target: "bg_image_right"; \
+         }
+
+#define GENLIST_PROGRAMS_INDEX( TARGET ) \
+         programs { \
+            GENLIST_PROGRAM_DISABLED( TARGET ) \
+         }
+
+#define GENLIST_PROGRAMS_NORMAL( TARGET ) \
+         programs { \
+            GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+            GENLIST_PROGRAM_SELECT_BOTTOMLINE( TARGET ) \
+            GENLIST_PROGRAM_EXPAND_FADE( target: "bottom_line"; target: "bottom_line2"; TARGET ) \
+            GENLIST_PROGRAMS_DECORATE \
+            GENLIST_PROGRAM_FLIP \
+         }
+
+// FIXME: inheritance !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
+// if GENLIST_PROGRAM_EXPAND is here, expanda effect is something wrong.
+// because after can be duplicated when program inheriting.
+#define GENLIST_PROGRAMS_DIALOGUE( TARGET ) \
+         programs { \
+            GENLIST_PROGRAM_DISABLED_DIALOGUE( TARGET ) \
+            GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+            GENLIST_PROGRAM_FLIP \
+            GENLIST_PROGRAM_EDITMODE \
+         }
+
+#define GENLIST_PROGRAMS_MULTILINE( TARGET ) \
+         programs { \
+            GENLIST_PROGRAM_DISABLED_DIALOGUE( TARGET ) \
+            GENLIST_PROGRAM_SELECT_DIALOGUE( TARGET ) \
+            GENLIST_PROGRAM_FLIP \
+         }
+
+#define GENLIST_PROGRAMS_READ_TEXT
+#define GENLIST_PROGRAMS_READ_TEXT1( TARGET ) \
+      script { \
+         public readed = 0; \
+      } \
+      programs { \
+         GENLIST_PROGRAM_DISABLED_BOTTOMLINE( TARGET ) \
+         GENLIST_PROGRAM_FLIP \
+         program { name: "selected"; \
+            signal: "elm,state,selected"; \
+            source: "elm"; \
+            action: STATE_SET "selected" 0.0; \
+            target: "bg_image"; \
+            target: "bottom_line"; \
+            target: "bottom_line2"; \
+            TARGET \
+            after: "play_button_press"; \
+         } \
+         program { name: "play_button_press"; \
+         } \
+         program { name: "go_passive_target"; \
+            signal: "elm,state,unselected"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            TARGET \
+            after: "go_passive_text1"; \
+         } \
+         program { name: "go_passive_text1"; \
+            transition: LINEAR 0.1; \
+            script { \
+               set_state(PART:"bg_image", "default", 0.0); \
+               set_state(PART:"bottom_line", "default", 0.0); \
+               set_state(PART:"bottom_line2", "default", 0.0); \
+               if (get_int(readed) == 1) \
+                 set_state(PART:"elm.text.1", "read", 0.0); \
+               else \
+                 set_state(PART:"elm.text.1", "default", 0.0); \
+            } \
+         } \
+         program { name: "go_read"; \
+            signal: "elm,state,read"; \
+            source: "*"; \
+            script { \
+              set_int(readed, 1); \
+              set_state(PART:"elm.text.1", "read", 0.0); \
+            } \
+         } \
+         program { name: "go_unread"; \
+            signal: "elm,state,unread"; \
+            source: "*"; \
+            script { \
+              set_int(readed, 0); \
+              set_state(PART:"elm.text.1", "default", 0.0); \
+            } \
+         } \
+      }
+
+#define GENLIST_PROGRAMS_DECORATE \
+      program { name: "decorate_enabled_effect"; \
+            signal: "elm,state,decorate,enabled,effect";\
+            source: "elm";\
+            transition: DECELERATE 0.7;\
+            action:  STATE_SET "decorate" 0.0;\
+            target: "elm.padding.left"; \
+            target: "elm.padding.right"; \
+         }\
+         program { name: "decorate_disabled_effect";\
+            signal: "elm,state,decorate,disabled,effect";\
+            source: "elm";\
+            transition: ACCELERATE 0.7;\
+            action:  STATE_SET "default" 0.0;\
+            target: "elm.padding.left"; \
+            target: "elm.padding.right"; \
+         }\
+         program { name: "decorate_enabled";\
+            signal: "elm,state,decorate,enabled";\
+            source: "elm";\
+            action:  STATE_SET "decorate" 0.0;\
+            target: "elm.padding.left"; \
+            target: "elm.padding.right"; \
+         }\
+         program { name: "decorate_disabled";\
+            signal: "elm,state,decorate,disabled";\
+            source: "elm";\
+            action:  STATE_SET "default" 0.0;\
+            target: "elm.padding.left"; \
+            target: "elm.padding.right"; \
+         }
+
+//****************************************************************************//
+// *******************************  Icon Part ******************************//
+//***************************************************************************//
+#define GENLIST_PART_ICON(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: SWALLOW; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE_ICON \
+   }
+
+#define GENLIST_PARAM_ICON_BIG \
+         min: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE; \
+         max: GENLIST_ICON_BIG_SIZE GENLIST_ICON_BIG_SIZE;
+
+#define GENLIST_PARAM_ICON_SMALL \
+         min: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE; \
+         max: GENLIST_ICON_SMALL_SIZE GENLIST_ICON_SMALL_SIZE;
+
+#define GENLIST_PARAM_ICON_BTN_01 \
+         min: 0 GENLIST_BTN_01_HEIGHT; \
+         max: -1 GENLIST_BTN_01_HEIGHT;
+
+#define GENLIST_PARAM_ICON_BTN_02 \
+         min: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE; \
+         max: GENLIST_BTN_02_SIZE GENLIST_BTN_02_SIZE;
+
+#define GENLIST_PARAM_ICON_ONOFF_WIDTH \
+         min: GENLIST_ICON_ONOFF_WIDTH GENLIST_ICON_ONOFF_HEIGHT; \
+         max: GENLIST_ICON_ONOFF_WIDTH GENLIST_ICON_ONOFF_HEIGHT;
+
+#define GENLIST_PARAM_ICON_THUMBNAIL1\
+         min: GENLIST_ICON_THUMBNAIL1_SIZE GENLIST_ICON_THUMBNAIL1_SIZE; \
+         max: GENLIST_ICON_THUMBNAIL1_SIZE GENLIST_ICON_THUMBNAIL1_SIZE;
+
+#define GENLIST_PARAM_ICON_CHECK_RADIO \
+         min: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE; \
+         max: GENLIST_ICON_CHECK_RADIO_SIZE GENLIST_ICON_CHECK_RADIO_SIZE;
+
+#define GENLIST_PARAM_ICON_STAR \
+         min: GENLIST_ICON_STAR_SIZE GENLIST_ICON_STAR_SIZE; \
+         max: GENLIST_ICON_STAR_SIZE GENLIST_ICON_STAR_SIZE; \
+
+#define GENLIST_PART_ICON_BIG_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         fixed: 1 1; \
+         GENLIST_PARAM_ICON_BIG \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BIG_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         fixed: 1 1; \
+         GENLIST_PARAM_ICON_BIG \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         GENLIST_PARAM_ICON_SMALL \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_LB(NAME, LEFT, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LB(LEFT, BOTTOM, \
+         fixed: 1 1; \
+        GENLIST_PARAM_ICON_SMALL \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_LTB(NAME, LEFT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM, \
+         GENLIST_PARAM_ICON_SMALL \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_SMALL_RTB(NAME, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         GENLIST_PARAM_ICON_SMALL \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_01_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, "elm.padding.top", "elm.padding.bottom",\
+         GENLIST_PARAM_ICON_BTN_01 \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_02_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         GENLIST_PARAM_ICON_BTN_02 \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_ONOFF_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         GENLIST_PARAM_ICON_ONOFF_WIDTH \
+         fixed: 1 1; \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_BTN_ONOFF_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         GENLIST_PARAM_ICON_ONOFF_WIDTH \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_THUMBNAIL1_R(NAME, RIGHT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         GENLIST_PARAM_ICON_THUMBNAIL1 \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_CHECK_RADIO_L(NAME, LEFT) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         GENLIST_PARAM_ICON_CHECK_RADIO \
+      ) \
+   )
+
+#define GENLIST_PART_ICON_STAR_RTB(NAME, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_ICON(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         GENLIST_PARAM_ICON_STAR \
+         fixed: 1 1; \
+      ) \
+   )
+
+/*****************************************************************************/
+/******************************* Genlist IMAGE ********************************/
+/*****************************************************************************/
+#define GENLIST_PART_IMAGE(NAME, DESCRIPION) \
+   part { name: NAME; \
+      scale: 1; \
+      type: IMAGE; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE \
+   }
+
+#define GENLIST_PARAM_PASSWORD_IMAGE \
+            min: GENLIST_ICON_PASSWORD_SIZE GENLIST_ICON_PASSWORD_SIZE; \
+            max: GENLIST_ICON_PASSWORD_SIZE GENLIST_ICON_PASSWORD_SIZE; \
+            image.normal: "00_search_edit_field_bg_02.png"; \
+            image.border: 4 4 4 4; \
+            image.border_scale: 1;
+
+/*****************************************************************************/
+/******************************* Genlist Bubble ********************************/
+/*****************************************************************************/
+#define GENLIST_IMAGES_EXPANDABLE_BTN \
+         images { \
+            image: "00_button_expand_closed.png" COMP; \
+            image: "00_button_expand_opened.png" COMP; \
+         }
+
+#define GENLIST_PART_EXPANDABLE_ARROW \
+         GENLIST_PART_ICON("touch_arrow", \
+            ignore_flags: ON_HOLD; \
+            GENLIST_DESCRIPTION_ENVELOP("arrow", ) \
+            GENLIST_DESCRIPTION_FADE \
+         ) \
+         GENLIST_PART_RECT("arrow_clip", \
+            GENLIST_DESCRIPTION_ENVELOP("arrow", \
+               color: 101 101 101 255; \
+            ) \
+            description { state: "disabled" 0.0; \
+               color: 101 101 101 76; \
+            } \
+            description { state: "expand_opened_press" 0.0; \
+               color: 248 246 230 255; \
+            } \
+            description { state: "default_press" 0.0; \
+               color: 248 246 230 255; \
+            } \
+         ) \
+         GENLIST_PART_IMAGE("arrow", \
+            clip_to: "arrow_clip"; \
+            ignore_flags: ON_HOLD; \
+            mouse_events: 0; \
+            GENLIST_DESCRIPTION_R("elm.padding.right", \
+               fixed: 1 1; \
+               min: 74 74; \
+               max: 74 74; \
+               image.normal: "00_button_expand_closed.png"; \
+            ) \
+            description { state: "default_press" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_button_expand_closed_press.png"; \
+            } \
+            description { state: "expand_opened" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_button_expand_opened.png"; \
+            } \
+            description { state: "expand_opened_press" 0.0; \
+               inherit: "expand_opened" 0.0; \
+               image.normal: "00_button_expand_opened_press.png"; \
+            } \
+            GENLIST_DESCRIPTION_FADE \
+         )
+/*****************************************************************************/
+/******************************* Genlist RECT ********************************/
+/*****************************************************************************/
+#define GENLIST_PART_SPACER(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: SPACER; \
+      DESCRIPION \
+   }
+
+#define GENLIST_PART_RECT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      type: RECT; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE \
+   }
+
+#define GENLIST_PART_INDEX_LINE(LEFT, RIGHT, TOP, BOTTOM) \
+         GENLIST_PART_RECT("index_line", \
+            GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+               color: GENLIST_GROUPINDEX_LINE_COLOR; \
+               min: 0 4; \
+               max: -1 4;) \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_GROUPINDEX_LINE_FOCUS_COLOR; \
+            } \
+         )
+
+/*****************************************************************************/
+/******************************* Genlist TEXT ********************************/
+/*****************************************************************************/
+#define GENLIST_PART_TEXT(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: TEXT; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE \
+   }
+
+#define GENLIST_PART_TEXTBLOCK(NAME, DESCRIPION) \
+    part { name: NAME; \
+      scale: 1; \
+      mouse_events: 0; \
+      type: TEXTBLOCK; \
+      DESCRIPION \
+      GENLIST_DESCRIPTION_FADE \
+   }
+
+/*************************** parameters **********************************/
+#define GENLIST_PARAM_TEXT_LIMIT_RB \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: 0.35 0; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+#define GENLIST_PARAM_TEXT_LIMIT_RT \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: 0.35 1; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+#define GENLIST_PARAM_TEXT_LIMIT_RTB \
+   rel1.to_x: "base"; /* This limits text growing. */\
+   rel1.relative: 0.35 1; /* This limits text growing. */\
+   text.max: 1 0; /* This limits text growing. */
+
+// Group Index
+#define GENLIST_PARAM_INDEX_LIST \
+   color: GENLIST_GROUPINDEX_LIST_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_GROUPINDEX_LIST_SIZE; \
+      text_class: "list_item"; \
+   }
+
+// Group Title
+#define GENLIST_PARAM_DIALOGUE_GROUP_TITLE \
+   color: GENLIST_DIALOGUE_GROUP_TITLE_COLOR; \
+   text { \
+      align: 0.0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_DIALOGUE_GROUP_TITLE_SIZE; \
+      text_class: "list_item"; \
+   }
+
+// Password style
+#define GENLIST_PARAM_PASSWORD_TITLE \
+   color: DIALOGUE_PASSWORD_TITLE_COLOR; \
+   text { \
+      font: "Tizen:style=Bold"; \
+      size: DIALOGUE_PASSWORD_TITLE_SIZE; \
+      min: 0 1; \
+      align: 0 0.5; \
+      text_class: "list_item"; \
+   }
+
+// list main text
+#define GENLIST_PARAM_LISTITEM \
+   color: GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Regular"; \
+      size: GENLIST_LIST_MAIN_TEXT_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_main_text_unread"; \
+   }
+
+#define GENLIST_PARAM_LISTITEM_TB_WRAP \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_main_text_unread_wrap"; \
+   }
+
+// list subtext
+#define GENLIST_PARAM_SUBITEM_DEFAULT \
+   color: GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Medium"; \
+      size: GENLIST_LIST_SUB_TEXT_SIZE; \
+      text_class: "tizen"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_SETTINGS \
+   color: GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Medium"; \
+      size: GENLIST_LIST_SUB_TEXT_SIZE; \
+      text_class: "tizen"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_default"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_DEFAULT_TB_WRAP \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_default_wrap"; \
+   }
+
+#define GENLIST_PARAM_SUBITEM_SETTINGS_TB \
+   text { \
+      min: 0 1; \
+      style: "genlist_style_list_sub_text_settings"; \
+   }
+
+#define GENLIST_PARAM_APPS_NAME\
+   color: GENLIST_APPS_NAME_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_APPS_NAME_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_APPS_INC\
+   color: GENLIST_APPS_INC_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_APPS_INC_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_APPS_RATING\
+   color: GENLIST_APPS_RATING_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_APPS_RATING_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_APPS_PRICE\
+   color: GENLIST_APPS_PRICE_ORIGINAL_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_APPS_PRICE_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_APPS_PRICE_SALE\
+   color: GENLIST_APPS_PRICE_SALE_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_APPS_PRICE_SIZE; \
+      text_class: "list_item"; \
+   }
+
+#define GENLIST_PARAM_CONTENTS_TEXT \
+   color: GENLIST_CONTENTS_TEXT_COLOR; \
+   text { \
+      align: 0 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Regular"; \
+      size: GENLIST_CONTENTS_TEXT_SIZE; \
+      text_class: "tizen"; \
+   }
+
+/*************************** Descriptions **********************************/
+// group index
+#define GENLIST_DESCRIPTION_INDEX_LIST \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_GROUPINDEX_LIST_FOCUS_COLOR; \
+   }
+
+// list main text
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_COLOR; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_unread_dim"; \
+   } \
+   description { state: "read" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_read"; \
+   } \
+   description { state: "read,disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_read_dim"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_focus"; \
+   }
+
+// list sub text
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_dim"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_focus"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB_WRAP \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_default_dim_wrap"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_focus_wrap"; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      color: GENLIST_LIST_TEXT_FOCUS_COLOR; \
+   }
+
+#define GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS_TB \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_settings_dim"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_sub_text_focus"; \
+   }
+
+// list main text multiline
+#define GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB_WRAP \
+   description { state: "disabled" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_unread_dim_wrap"; \
+   } \
+   description { state: "selected" 0.0; \
+      inherit: "default" 0.0; \
+      text.style: "genlist_style_list_main_text_focus_wrap"; \
+   }
+
+/*************************** Parts **********************************/
+#define GENLIST_PART_DIALOGUE_GROUP_HELP_TEXT(NAME, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         text { \
+            min: 0 1; \
+            style: "genlist_style_dialogue_group_help_text"; \
+         } \
+         PARAM) \
+   )
+
+#define GENLIST_PART_LISTITEM(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXT(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_TB(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS \
+   )
+
+#define GENLIST_PART_LISTITEM_LRT_TB(NAME, HEIGHT, LEFT, RIGHT, TOP, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM_TB \
+         fixed: 0 1; \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_LISTITEM_LR_TB(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_LISTITEM_TB \
+         PARAM \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_LISTITEM_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXT(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_DEFAULT_TB(NAME, DESCRIPTION) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      DESCRIPTION \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_R(NAME, HEIGHT, RIGHT) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RB \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RB(NAME, HEIGHT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RB(RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; \
+         GENLIST_PARAM_TEXT_LIMIT_RB \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RB_TB(NAME, HEIGHT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_RB(RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RB \
+         fixed: 1 1; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_TB_(NAME, HEIGHT, LEFT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION(LEFT, RIGHT, TOP, BOTTOM, \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_R_FIXED(NAME, WIDTH, HEIGHT, RIGHT) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_R(RIGHT, \
+         min: WIDTH HEIGHT; \
+         fixed: 1 1; \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_R_FIXED_TB(NAME, WIDTH, HEIGHT, RIGHT) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+       GENLIST_DESCRIPTION_R(RIGHT, \
+         min: WIDTH HEIGHT; \
+         fixed: 1 0; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_L_FIXED(NAME, WIDTH, HEIGHT, LEFT) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_L(LEFT, \
+         min: WIDTH HEIGHT; \
+         fixed: 1 1; \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LR(NAME, HEIGHT, LEFT, RIGHT, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+         PARAM \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LR_TB(NAME, HEIGHT, LEFT, RIGHT) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LR(LEFT, RIGHT, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_LB(NAME, HEIGHT, LEFT, RIGHT) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LB(LEFT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_SETTINGS_LRB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM, PARAM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_SETTINGS\
+         PARAM; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LRB_TB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+         fixed: 0 1; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_SETTINGS_LRB_TB(NAME, HEIGHT, LEFT, RIGHT, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_LRB(LEFT, RIGHT, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_SUBITEM_SETTINGS_TB \
+         fixed: 0 1; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_SETTINGS_OTHERS_TB \
+   )
+
+#define GENLIST_PART_SUBITEM_LRT(NAME, HEIGHT, LEFT, RIGHT, TOP) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LRT(LEFT, RIGHT, TOP, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_LTB(NAME, HEIGHT, LEFT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_LTB(LEFT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         fixed: 1 1; /*FIXME: why text need this, but textblock doesn't */ \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXT(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_DEFAULT \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS \
+   )
+
+#define GENLIST_PART_SUBITEM_RTB_TB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+   GENLIST_PART_TEXTBLOCK(NAME, \
+      GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+         min: 0 HEIGHT; \
+         GENLIST_PARAM_TEXT_LIMIT_RT \
+         GENLIST_PARAM_SUBITEM_DEFAULT_TB \
+         fixed: 1 0; \
+      ) \
+      GENLIST_DESCRIPTION_SUBITEM_DEFAULT_OTHERS_TB \
+   )
+
+#define GENLIST_PARAM_LIST_BUBBLE_TEXT \
+   color: GENLIST_LIST_BUBBLE_TEXT_COLOR; \
+   text { \
+      align: 1 0.5; \
+      min: 0 1; \
+      font: "Tizen:style=Bold"; \
+      size: GENLIST_LIST_BUBBLE_TEXT_SIZE; \
+      text_class: "tizen"; \
+   }
+// FIXME: Need to find why rel2.offset: 9 -1 will not fix the alignment of bubble text ?
+#define GENLIST_PART_LIST_BUBBLE_TEXT_RTB(NAME, HEIGHT, RIGHT, TOP, BOTTOM) \
+         GENLIST_PART_IMAGE("elm.bubble", \
+            GENLIST_DESCRIPTION_ENVELOP(NAME, \
+               image { \
+                  normal: "00_list_bubble_bg.png"; \
+                  border: 8 8 0 0; \
+               } \
+               rel1.offset: -10 0; \
+               rel2.offset: 8 -1; \
+               min: 48 38; \
+               max: -1 38; \
+               fixed: 0 1; \
+            ) \
+            GENLIST_DESCRIPTION_FADE \
+         ) \
+         GENLIST_PART_TEXT(NAME, \
+            GENLIST_DESCRIPTION_RTB(RIGHT, TOP, BOTTOM, \
+               min: 0 HEIGHT; \
+               GENLIST_PARAM_TEXT_LIMIT_RT \
+               rel2.offset: -10 -1; /* This maintain the text alignment with bubble text. */\
+               GENLIST_PARAM_LIST_BUBBLE_TEXT \
+            ) \
+         )
+
+#if 0
+#define GENLIST_PART_BASE__( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: LAYOUT_GROUP_LIST_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BG \
+         part { name: "bg"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_DIALOGUE_GROUP_BG_COLOR; \
+            } \
+            description { state: "hide" 0.0; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.025 0.0; } \
+               rel2 { relative: 1.025 1.0; } \
+            } \
+            description { state: "hide" 0.1;  \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.13 0.0; } \
+               rel2 { relative: 1.13 1.0; } \
+            } \
+            description { state: "hide" 0.2; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.5 0.0; } \
+               rel2 { relative: 1.5 1.0; } \
+            } \
+            description { state: "hide" 0.3; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 1.0 0.0; } \
+               rel2 { relative: 2.0 1.0; } \
+            } \
+         }
+
+/******************************************************************************/
+/** ETC
+/******************************************************************************/
+// FIXME: UX do not define selected state. But I thinkt that it is neededs :(
+
+#define GENLIST_PROOGRAM_EXPAND(SRC, TARGET) \
+   program { \
+      name: "expand"; \
+      signal: "mouse,clicked,1"; \
+      source: SRC; \
+      action: SIGNAL_EMIT "elm,action,expand,toggle" "elm"; \
+   } \
+   program { \
+      name: "go_expanded"; \
+      signal: "elm,state,expanded"; \
+      source: "elm"; \
+      action: STATE_SET "active" 0.0; \
+      TARGET \
+   } \
+   program { \
+      name: "go_contracted"; \
+      signal: "elm,state,contracted"; \
+      source: "elm"; \
+      action: STATE_SET "default" 0.0; \
+      TARGET \
+   }
+
+#define GENLIST_PART_BASE_LIST_H( HEIGHT) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               align: 0.5 0.5; \
+               color: 0 0 0 0; \
+               rel2.relative: 1 0; \
+               rel2.to: "bottom_line"; \
+               min: 0 HEIGHT; \
+            } \
+         } \
+         GENLIST_PART_BOTTOM_LINE
+
+#define GENLIST_PART_DIALOGUE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 10 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_RIGHT_LINE \
+         part { name: "elm.rect.dialogue.right.line"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 1 0; \
+               fixed: 1 0; \
+               rel1 { \
+                  relative: 1.0  0.0; \
+                  offset: -1 0; \
+               } \
+               align: 1.0 0.0; \
+               color: GENLIST_LIST_LINE1_COLOR; \
+            } \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+             target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+
+#define GENLIST_DESCRIPTION_INVISIBLE_SELECTED \
+            description { state: "selected" 1.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_DESCRIPTION_FLIP_ENABLED \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) \
+                  set_state(PART:"elm.text", "selected", 1.0); \
+               else \
+                  set_state(PART:"elm.text", "selected", 0.0); \
+            }
+
+
+/* genlist multisense macro - start */
+#define GENLIST_PROGRAM_AFTER_PLAY_BUTTON_PRESS \
+            after: "play_button_press";
+
+#define GENLIST_PROGRAM_PLAY_BUTTON_PRESS \
+         program { name: "play_button_press"; \
+         }
+#endif
\ No newline at end of file
diff --git a/data/edc/theme3/originals/genlist_textblock_style.edc b/data/edc/theme3/originals/genlist_textblock_style.edc
new file mode 100644 (file)
index 0000000..9aae8ca
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG
+ * ELECTRONICS ("Confidential Information"). You agree and acknowledge that this
+ * software is owned by Samsung and you shall not disclose such Confidential
+ * Information and shall use it only in accordance with the terms of the license
+ * agreement you entered into with SAMSUNG ELECTRONICS. SAMSUNG make no
+ * representations or warranties about the suitability of the software, either
+ * express or implied, including but not limited to the implied warranties of
+ * merchantability, fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee arising out
+ * of or releated to this software.
+ *
+ */
+
+/*
+ * vim:ts=3
+*/
+
+#define STYLE_TAG \
+      tag:  "br" "\n";\
+      tag:  "ps" "ps";\
+      tag:  "tab" "\t";\
+      tag:  "b" "+ font=Tizen:style=Bold";\
+
+#define STYLE_TAG_MATCH \
+      tag:  "match" GENLIST_PART_MATCH_TAG_COLOR; \
+
+// FIXME: Why this is needed? just don't use match color, right? damn textblock bug...
+#define STYLE_TAG_MATCH_FOCUS \
+      tag:  "match" GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE; \
+
+
+styles {
+   // ********************** dialgoue group help text
+   style { name: "genlist_style_dialogue_group_help_text";
+      base: "font=Tizen:style=Medium font_size="GENLIST_DIALOGUE_GROUP_HELP_TEXT_SIZE" color="GENLIST_DIALOGUE_GROUP_HELP_TEXT_COLOR_STYLE" text_class=list_item wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   // ********************** list main text
+   style { name: "genlist_style_list_main_text_unread";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_unread_dim";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_read";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_read_dim";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_focus";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=list_item ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+  // **********************  list main text (multiline)
+   style { name: "genlist_style_list_main_text_unread_wrap";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_unread_dim_wrap";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_main_text_focus_wrap";
+      base: "font=Tizen:style=Regular font_size="GENLIST_LIST_MAIN_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+   // ********************** list sub text
+   style { name: "genlist_style_list_sub_text_default";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_dim";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+   style { name: "genlist_style_list_sub_text_settings";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_settings_dim";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_focus";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=tizen ellipsis=1.0";
+      STYLE_TAG
+      STYLE_TAG_MATCH_FOCUS
+   }
+   // ********************** list sub text (multiline)
+   style { name: "genlist_style_list_sub_text_default_wrap";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_default_dim_wrap";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+   style { name: "genlist_style_list_sub_text_focus_wrap";
+      base: "font=Tizen:style=Bold font_size="GENLIST_LIST_SUB_TEXT_SIZE" color="GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE" text_class=tizen wrap=mixed";
+      STYLE_TAG
+      STYLE_TAG_MATCH
+   }
+}
diff --git a/data/edc/theme3/originals/readme b/data/edc/theme3/originals/readme
new file mode 100644 (file)
index 0000000..c4b9faa
--- /dev/null
@@ -0,0 +1,15 @@
+This folder contains (almost) exact copies from platform code.
+
+DO NOT freely modify edc files in this folder.
+
+genlist_macro.edc      efl-theme-tizen/themes/widgets/genlist/genlist_macro.edc
+tizen-hd-inc.edc       efl-theme-tizen/themes/inc/tizen-hd-inc.edc
+
+
+Modifications from originals
+============================
+1. Erased all following lines:
+            action: PLAY_SAMPLE "button-pressed" 1.0; \
+
+2. Added the following line to GENLIST_PART_ICON_SMALL_RTB definition:
+         fixed: 1 1; \
diff --git a/data/edc/theme3/originals/tizen-hd-inc.edc b/data/edc/theme3/originals/tizen-hd-inc.edc
new file mode 100644 (file)
index 0000000..33aaead
--- /dev/null
@@ -0,0 +1,1077 @@
+/*
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of SAMSUNG
+ * ELECTRONICS ("Confidential Information"). You agree and acknowledge that this
+ * software is owned by Samsung and you shall not disclose such Confidential
+ * Information and shall use it only in accordance with the terms of the license
+ * agreement you entered into with SAMSUNG ELECTRONICS. SAMSUNG make no
+ * representations or warranties about the suitability of the software, either
+ * express or implied, including but not limited to the implied warranties of
+ * merchantability, fitness for a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee arising out
+ * of or releated to this software.
+ *
+ */
+
+#define BG_DEFAULT_COLOR_INC 248 246 239 255
+#define BG_EDIT_MODE_COLOR_INC 248 246 239 255
+#define BG_GROUP_LIST_COLOR_INC 248 246 239 255
+#define BG_TRANSPARENT_COLOR_INC 0 0 0 0
+
+#define LAYOUT_BG_COLOR_INC 248 246 239 255
+#define LAYOUT_EDIT_MODE_BG_COLOR_INC 248 246 239 255
+#define LAYOUT_GROUP_LIST_BG_COLOR_INC 248 246 239 255
+#define LAYOUT_INDICATOR_HEIGHT_INC 60
+#define LAYOUT_INDICATOR_COLOR_INC 0 0 0 255
+
+#define NAVIFRAME_TITLE_BG_COLOR_INC 248 246 239 255
+#define NAVIFRAME_TOOLBAR_BG_COLOR_INC 248 246 239 255
+#define NAVIFRAME_TITLE_TOP_PADDING_INC 0 32
+#define NAVIFRAME_TITLE_RIGHT_PADDING_INC 17 0
+#define NAVIFRAME_TITLE_TOOLBAR_TOP_PADDING_INC 0 33
+#define NAVIFRAME_TITLE_TOOLBAR_BOTTOM_PADDING_INC 0 8
+#define NAVIFRAME_TITLE_H_INC 111
+#define NAVIFRAME_TAB_TITLE_H_INC 165
+#define NAVIFRAME_TOOLBAR_HEIGHT_INC 98
+#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 86 111
+#define NAVIFRAME_PREV_FUNC_BTN_SIZE_INC 86 98
+#define NAVIFRAME_TITLE_TAB_H_INC 68
+#define NAVIFRAME_TITLE_TAB_LARGE_H_INC 111
+#define NAVIFRAME_TITLE_TAB_FONT_SIZE_INC 44
+#define NAVIFRAME_TITLE_TAB_TEXT_H_INC 87
+#define NAVIFRAME_TITLE_FONT_SIZE_INC 56
+#define NAVIFRAME_TITLE_SMALL_FONT_SIZE_INC 44
+#define NAVIFRAME_ICON_SIZE_INC 38 38
+#define NAVIFRAME_PADDING_INC 16 0
+#define NAVIFRAME_PADDING2_INC 2 0
+#define NAVIFRAME_PADDING3_INC 8 0
+#define NAVIFRAME_BOTTOM_TEXT_PADDING_INC 0 11
+#define NAVIFRAME_BOTTOM_PADDING_INC 0 10
+#define NAVIFRAME_BADGE_PADDING_INC 85 0
+#define NAVIFRAME_BADGE_TOP_PADDING_INC 0 6
+#define NAVIFRAME_BADGE_LEFT_TEXT_PADDING_INC 10 0
+#define NAVIFRAME_BADGE_TEXT_H_INC 26
+#define NAVIFRAME_BADGE_TEXT_W_INC 42
+#define NAVIFRAME_BADGE_BG_IMAGE_SIZE_INC 54 48
+#define NAVIFRAME_BADGE_BG_IMAGE_BORDER_INC 29 24 0 0
+#define NAVIFRAME_TOOLBAR_BUTTON_BG_PADDING_INC 115 0
+#define NAVIFRAME_TOOLBAR_BUTTONS_PADDING_INC 15
+#define NAVIFRAME_ICON_PADDING_INC 70 0
+#define NAVIFRAME_TITLE_TEXT_COLOR_INC 59 115 182 255
+#define NAVIFRAME_TITLE_STYLE_COLOR_INC "#3B73B6"
+#define NAVIFRAME_SUBTITLE_TEXT_COLOR_INC 59 115 182 255
+#define NAVIFRAME_SUBTITLE_FONT_SIZE_INC 32
+#define NAVIFRAME_BADGE_TEXT_COLOR_INC 10 100 208 255;
+
+#define PROGRESSBAR_TITLE_FONT_SIZE_INC 28
+#define PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC 20
+
+#define POPUP_ITEM_BG_DEFAULT_MIN_INC 648 112
+#define POPUP_ITEM_LEFT_MIN_PADDING_INC 26 0
+#define POPUP_ITEM_RIGHT_MIN_PADDING_INC 26 0
+#define POPUP_ITEM_ICON_TEXT_PADDING_INC 16 0
+#define POPUP_ITEM_TEXT_DISABLED_COLOR_INC 128 128 128 255
+#define POPUP_ITEM_TEXT_DISABLED_VISIBLE_COLOR_INC 128 128 128 255
+
+#define POPUP_DEFAULT_TITLE_TEXT_COLOR_INC "#3b73b6"
+#define POPUP_DEFAULT_TITLE_TEXT_SHADOW_COLOR "#ffffff"
+#define POPUP_DEFAULT_TITLE_TEXT_SHADOW_STYLE "far_shadow,bottom"
+#define POPUP_DEFAULT_DESCRIPTION_TEXT_COLOR_INC "#000000"
+#define POPUP_DIM_BG_DEFAULT_COLOR_INC 0 0 0 0
+#define POPUP_DIM_BG_COLOR_INC 0 0 0 127
+#define POPUP_DIM_BG_CLICKED_COLOR_INC 0 0 0 127
+#define POPUP_DIM_BG_TRANS_COLOR_INC 0 0 0 0
+#define POPUP_DIM_BG_CLICKED_TRANS_COLOR_INC 0 0 0 50
+
+#define CTXPOPUP_WIDTH_MIN_INC 386
+#define CTXPOPUP_WIDTH_MAX_INC 620
+#define CTXPOPUP_BUBBLE_BG_IMAGE_BORDER 24 24 22 30
+#define CTXPOPUP_BUBBLE_MASK_IMAGE_BORDER 10 10 10 10
+#define CTXPOPUP_SHADOW_LEFT_PADDING 10
+#define CTXPOPUP_SHADOW_RIGHT_PADDING 10
+#define CTXPOPUP_SHADOW_TOP_PADDING 8
+#define CTXPOPUP_SHADOW_BOTTOM_PADDING 16
+#define CTXPOPUP_CONTENT_PADDING 4
+#define CTXPOPUP_SCROLLER_PADDING 8
+#define CTXPOPUP_SCROLLER_MIN_SIZE_INC 9 12
+#define CTXPOPUP_FRAME_CORNER_ARROW_PADDING 20
+#define CTXPOPUP_BG_COLOR_INC 0 0 0 0
+#define CTXPOPUP_BG_PRESS_COLOR_INC 42 137 194 255
+#define CTXPOPUP_MAIN_TEXT_COLOR_INC 255 255 255 255
+#define CTXPOPUP_MAIN_TEXT_DIM_COLOR_INC 255 255 255 178
+#define CTXPOPUP_MAIN_TEXT_PRESS_COLOR_INC 255 255 255 255
+#define CTXPOPUP_LIST_MAIN_TEXT_COLOR_INC 255 255 255 255
+#define CTXPOPUP_LIST_MAIN_TEXT_DIM_COLOR_INC 255 255 255 178
+#define CTXPOPUP_LIST_MAIN_TEXT_PRESS_COLOR_INC 255 255 255 255
+#define CTXPOPUP_SEPARATOR_PXLINE_SIZE_INC 1
+#define CTXPOPUP_SEPARATOR_PADDING_INC 20
+#define CTXPOPUP_SEPARATOR_COLOR_INC 45 45 45 255
+#define CTXPOPUP_SEPARATOR2_COLOR_INC 91 91 91 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_1_COLOR_INC 45 45 45 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_2_COLOR_INC 91 91 91 255
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MIN_SIZE_INC 1 74
+#define CTXPOPUP_HORIZONTAL_SEPARATOR_MAX_SIZE_INC 1 74
+#define CTXPOPUP_TP_BG_COLOR_INC 7 180 211 255
+#define CTXPOPUP_ITEM_DISABLED_COLOR 0 0 0 0
+#define CTXPOPUP_LIST_MAIN_TEXT_SIZE_INC 40
+#define CTXPOPUP_MAIN_TEXT_SIZE_INC 32
+#define CTXPOPUP_ITEM_HEIGHT_MIN_INC 110
+#define CTXPOPUP_ITEM_HEIGHT_MAX_INC 130
+#define CTXPOPUP_TEXT_ITEM_HORIZONTAL_WIDTH_INC 128
+#define CTXPOPUP_ICON_ITEM_HORIZONTAL_WIDTH_INC 112
+#define CTXPOPUP_ITEM_HORIZONTAL_HEIGHT_INC 96
+#define CTXPOPUP_ICON_WIDTH_INC 64
+#define CTXPOPUP_ICON_HEIGHT_INC 64
+#define CTXPOPUP_ICON_HORIZONTAL_WIDTH_INC 48
+#define CTXPOPUP_ICON_HORIZONTAL_HEIGHT_INC 48
+#define CTXPOPUP_ARROW_SIZE_INC 48 48
+#define CTXPOPUP_VERTICAL_ARROW_SIZE_INC 40 30
+#define CTXPOPUP_HORIZONTAL_ARROW_SIZE_INC 30 40
+#define CTXPOPUP_ITEM_TEXT_PADDING_INC 20
+#define CTXPOPUP_ITEM_ICON_PADDING_INC 16
+#define CTXPOPUP_IE_ARROW_SIZE_INC 52
+#define CTXPOPUP_IE_FONT_SIZE_INC 40
+#define CTXPOPUP_IE_ITEM_PADDING_INC 22
+#define CTXPOPUP_IE_ITEM_HEIGHT_INC 75
+#define CTXPOPUP_IE_CONTENT_WIDTH_MAX_INC 720
+#define CTXPOPUP_IE_ICON_WIDTH_INC 60
+#define CTXPOPUP_IE_ICON_HEIGHT_INC 60
+#define CTXPOPUP_TP_ARROW_SIZE_INC 30
+#define CTXPOPUP_TP_HEIGHT_INC 106
+#define CTXPOPUP_MORE_WIDTH_INC 502
+#define CTXPOPUP_MORE_ITEM_PADDING_INC 16
+#define CTXPOPUP_MORE_ITEM_HEIGHT_MIN_INC 110
+#define CTXPOPUP_MORE_ITEM_HEIGHT_MAX_INC 130
+#define CTXPOPUP_MORE_ICON_WIDTH_INC 64
+#define CTXPOPUP_MORE_ICON_HEIGHT_INC 64
+#define CTXPOPUP_MORE_ITEM_TEXT_SIZE_INC 40
+#define CTXPOPUP_MORE_SEPARATOR_PADDING_INC 20
+#define CTXPOPUP_TOOLBAR_SEGMENTEDCONTROL_WIDTH_INC 336
+#define CTXPOPUP_TOOLBAR_SEGMENTEDCONTROL_HEIGHT_MIN_INC 90
+#define CTXPOPUP_TOOLBAR_SEGMENTEDCONTROL_HEIGHT_MAX_INC 130
+
+#define DISKSELECTOR_DF_FONT_COLOR_INC 255 255 255 178
+#define DISKSELECTOR_DF_FONT_MOUSE_DOWN_COLOR_INC 255 255 255 255
+#define DISKSELECTOR_DF_ITEM_MIN_SIZE_INC 70 106;
+#define DISKSELECTOR_DF_FONT_SIZE_INC 48
+#define DISKSELECTOR_DF_DATA_MIN_HEIGHT_INC "106"
+
+#define LABEL_TEXT_BLOCK_STYLE_COLOR_INC "#000000"
+#define LABEL_FONT_SIZE_INC 36
+
+#define GENGRID_FONT_STYLE_18_INC "26"
+#define GENGRID_PART_BG_COLOR_INC 0 0 0 0
+#define GENGRID_PART_REORDER_DEFAULT_BG_COLOR_INC 0 0 0 77
+#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 77
+#define GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC "#000000"
+#define GENGRID_PART_BACKGROUND_COLOR_INC 0 0 0 0
+#define GENGRID_EDIT_MODE_CHECK_TOP_RIGHT_INC 6 6
+#define GENGRID_EDIT_MODE_CHECK_SIZE_INC 54 54
+#define GENGRID_EDIT_MODE_CHECK_BG_COLOR_INC 0 0 0 154
+#define GENGRID_ITEM_CHECK_TOP_RIGHT_PADDING_INC 6 6
+
+#define GENGRID_DEFAULT_LEFT_TOP_PADDING_INC 2 2
+#define GENGRID_DEFAULT_RIGHT_BOTTOM_PADDING_INC 2 2
+#define GENGRID_DEFAULT_ITEM_BG_LEFT_TOP_PADDING_INC 1 1
+#define GENGRID_DEFAULT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC 1 1
+#define GENGRID_DEFAULT_ITEM_REAL_BG_RIGHT_PADDING_INC 0 0
+#define GENGRID_DEFAULT_LEFT_TOP_FOCUS_PADDING_INC 2 2
+#define GENGRID_DEFAULT_RIGHT_BOTTOM_FOCUS_PADDING_INC 2 2
+
+#define GENGRID_LANDSCAPE_LEFT_TOP_PADDING_INC 5 5
+#define GENGRID_LANDSCAPE_RIGHT_BOTTOM_PADDING_INC 5 5
+#define GENGRID_LANDSCAPE_LEFT_TOP_FOCUS_PADDING_INC 4 4
+#define GENGRID_LANDSCAPE_RIGHT_BOTTOM_FOCUS_PADDING_INC 4 4
+#define GENGRID_LANDSCAPE_GRID_TEXT_LEFT_TOP_PADDING_INC 5 5
+#define GENGRID_LANDSCAPE_GRID_TEXT_RIGHT_BOTTOM_PADDING_INC 5 59
+#define GENGRID_LANDSCAPE_GRID_TEXT_LEFT_TOP_FOCUS_PADDING_INC 4 4
+#define GENGRID_LANDSCAPE_GRID_TEXT_RIGHT_BOTTOM_FOCUS_PADDING_INC 4 60
+
+#define GENGRID_GRID_TEXT_LEFT_TOP_PADDING_INC 2 2
+#define GENGRID_GRID_TEXT_RIGHT_BOTTOM_PADDING_INC 2 62
+#define GENGRID_GRID_TEXT_ITEM_BG_LEFT_TOP_PADDING_INC 1 1
+#define GENGRID_GRID_TEXT_ITEM_BG_RIGHT_BOTTOM_PADDING_INC 1 1
+#define GENGRID_GRID_TEXT_ITEM_REAL_BG_RIGHT_PADDING_INC 0 0
+#define GENGRID_GRID_TEXT_LEFT_TOP_FOCUS_PADDING_INC 2 2
+#define GENGRID_GRID_TEXT_RIGHT_BOTTOM_FOCUS_PADDING_INC 2 62
+
+#define GENGRID_GRID_TEXT2_LEFT_TOP_PADDING_INC 2 62
+#define GENGRID_GRID_TEXT2_RIGHT_BOTTOM_PADDING_INC 2 2
+#define GENGRID_GRID_TEXT2_ITEM_BG_LEFT_TOP_PADDING_INC 1 1
+#define GENGRID_GRID_TEXT2_ITEM_BG_RIGHT_BOTTOM_PADDING_INC 1 1
+#define GENGRID_GRID_TEXT2_ITEM_REAL_BG_RIGHT_PADDING_INC 0 0
+#define GENGRID_GRID_TEXT2_LEFT_TOP_FOCUS_PADDING_INC 2 62
+#define GENGRID_GRID_TEXT2_RIGHT_BOTTOM_FOCUS_PADDING_INC 2 2
+
+// Please do not use these !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+#define GENLIST_PADDING_5_INC 5
+#define GENLIST_PADDING_24_INC 24
+#define GENLIST_PADDING_64_INC 64
+#define GENLIST_PADDING_88_INC 88
+#define GENLIST_PADDING_34_INC 34
+#define GENLIST_PADDING_32_INC 32
+#define GENLIST_PADDING_16_INC 16
+#define GENLIST_SIZE_80_INC 80
+
+#define BUBBLE_DISCLIP_COLOR                        255 255 255 102 // opacity 40%
+
+// List bg color
+#define GENLIST_LIST_BG_COLOR                       248 246 239 255
+#define GENLIST_DIALOGUE_BG_COLOR                   248 246 239 255
+#define GENLIST_LIST_PRESS_COLOR                    87 135 194 255
+#define GENLIST_LIST_DIM_COLOR                      219 217 212 255
+#define GENLIST_LIST_LINE1_COLOR                    211 209 203 255
+#define GENLIST_LIST_LINE2_COLOR                    255 255 255 255
+#define GENLIST_LIST_DIVIDER1_COLOR                 185 184 178 255
+#define GENLIST_LIST_DIVIDER2_COLOR                 255 255 255 255
+#define GENLIST_LIST_CENTERLINE1_COLOR              206 205 202 255
+#define GENLIST_SELECT_ALL_BG_COLOR                 220 218 211 255
+
+// Group Index
+#define GENLIST_GROUPINDEX_LIST_SIZE                     32
+#define GENLIST_GROUPINDEX_LIST_COLOR                    59 115 182 255
+#define GENLIST_GROUPINDEX_LIST_FOCUS_COLOR              255 255 255 255
+
+#define GENLIST_GROUPINDEX_LIST_BG_COLOR                 248 246 239 255
+#define GENLIST_GROUPINDEX_LIST_PRESS_COLOR              132 162 198 255
+#define GENLIST_GROUPINDEX_LINE_COLOR                    59 115 182 255
+#define GENLIST_GROUPINDEX_LINE_FOCUS_COLOR              255 255 255 255
+
+// Genlist Text
+#define GENLIST_LIST_MAIN_TEXT_SIZE                         44
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR                 0 0 0 255
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_COLOR_STYLE           "#000000FF"
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR             0 0 0 102
+#define GENLIST_LIST_MAIN_TEXT_UNREAD_DIM_COLOR_STYLE       "#00000066"
+#define GENLIST_LIST_MAIN_TEXT_READ_COLOR                   128 128 128 255
+#define GENLIST_LIST_MAIN_TEXT_READ_DIM_COLOR               128 128 128 204
+#define GENLIST_LIST_TEXT_FOCUS_COLOR                       255 255 255 255
+#define GENLIST_LIST_TEXT_FOCUS_COLOR_STYLE                 "#FFFFFFFF"
+
+#define GENLIST_LIST_SUB_TEXT_SIZE                          32
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR                 128 128 128 255
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_COLOR_STYLE           "#808080FF"
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR             128 128 128 204
+#define GENLIST_LIST_SUB_TEXT_DEFAULT_DIM_COLOR_STYLE       "#808080CC"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR                59 115 182 255
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_COLOR_STYLE          "#3B73B6FF"
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR            59 115 182 76
+#define GENLIST_LIST_SUB_TEXT_SETTINGS_DIM_COLOR_STYLE      "#3B73B64C"
+
+#define GENLIST_CONTENTS_TEXT_SIZE                          28
+#define GENLIST_CONTENTS_TEXT_COLOR                         128 128 128 255
+#define GENLIST_CONTENTS_TEXT_COLOR_STYLE                   "#808080FF"
+
+#define GENLIST_LIST_BUBBLE_TEXT_SIZE                       32
+#define GENLIST_LIST_BUBBLE_TEXT_COLOR                      249 249 249 255
+
+// Dialogue group
+#define GENLIST_DIALOGUE_GROUP_TITLE_SIZE           32
+#define GENLIST_DIALOGUE_GROUP_TITLE_COLOR          59 115 182 255
+
+#define GENLIST_APPS_NAME_SIZE                          30
+#define GENLIST_APPS_NAME_COLOR                         128 128 128 255
+#define GENLIST_APPS_INC_SIZE                           30
+#define GENLIST_APPS_INC_COLOR                          0 0 0 255
+#define GENLIST_APPS_RATING_SIZE                        24
+#define GENLIST_APPS_RATING_COLOR                       128 128 128 255
+#define GENLIST_APPS_PRICE_SIZE                         24
+#define GENLIST_APPS_PRICE_ORIGINAL_COLOR               59 115 182 255
+#define GENLIST_APPS_PRICE_SALE_COLOR                   229 33 52 255
+#define GENLIST_APPS_PRICE_FREE_COLOR                   59 115 182 255
+
+#define DIALOGUE_PASSWORD_TITLE_SIZE                    32
+#define DIALOGUE_PASSWORD_TITLE_COLOR                   128 128 128 255
+
+#define GENLIST_DIALOGUE_GROUP_HELP_TEXT_SIZE           32
+#define GENLIST_DIALOGUE_GROUP_HELP_TEXT_COLOR_STYLE    "#808080FF"
+#define GENLIST_PART_MATCH_TAG_COLOR                    "+ color=#3F8DAD"
+
+#define BUTTON_TEXT_SHADOW_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_TEXT_SHADOW_DIM_COLOR_INC 255 255 255 255
+#define BUTTON_TEXT_SHADOW_PRESSED_COLOR_INC 0 0 0 255
+
+#define BUTTON_NAVIFRAME_TEXT_SHADOW_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TEXT_SHADOW_DIM_COLOR_INC 0 0 0 163
+
+#define BUTTON_TICKER_TEXT_SHADOW_NORMAL_COLOR_INC 0 0 0 127
+#define BUTTON_TICKER_TEXT_SHADOW_NORMAL_COLOR_INC 0 0 0 127
+
+#define BUTTON_NUMBER_TEXT_NORMAL_COLOR_INC 50 50 50 255
+#define BUTTON_NUMBER_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_NUMBER_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_NUMBER_TEXT_DISABLE_VISIBLE_COLOR_INC 50 50 50 76
+
+#define BUTTON_SEARCH_BUTTON_TEXT_NORMAL_COLOR_INC 58 58 58 255
+#define BUTTON_SEARCH_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_TEXT_DISABLED_COLOR_INC 58 58 58 76
+#define BUTTON_SEARCH_BUTTON_TEXT_SHADOW_PRESSED_COLOR_INC 0 0 0 163
+
+#define BUTTON_SEARCH_BUTTON_SEND_NORMAL_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_SEND_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_SEND_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_SEND_DISABLED_COLOR_INC 248 246 239 76
+#define BUTTON_SEARCH_BUTTON_SEND_SHADOW_NORMAL_COLOR_INC 0 0 0 163
+
+#define BUTTON_SEARCH_BUTTON_CANCEL_NORMAL_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_CANCEL_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_CANCEL_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_SEARCH_BUTTON_CANCEL_DISABLED_COLOR_INC 248 246 239 76
+#define BUTTON_SEARCH_BUTTON_CANCEL_SHADOW_NORMAL_COLOR_INC 0 0 0 163
+
+#define BUTTON_SEND_BUBBLE_TEXT_NORMAL_COLOR_INC 58 58 58 255
+#define BUTTON_SEND_BUBBLE_TEXT_PRESSED_COLOR_INC 58 58 58 255
+#define BUTTON_SEND_BUBBLE_TEXT_FOCUSED_COLOR_INC 58 58 58 255
+#define BUTTON_SEND_BUBBLE_TEXT_DISABLED_COLOR_INC 58 58 58 76
+#define BUTTON_SEND_BUBBLE_TEXT_SHADOW_NORMAL_COLOR_INC 255 255 255 153
+
+#define BUTTON_RECEIVE_BUBBLE_TEXT_NORMAL_COLOR_INC 248 246 239 255
+#define BUTTON_RECEIVE_BUBBLE_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_RECEIVE_BUBBLE_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_RECEIVE_BUBBLE_TEXT_DISABLED_COLOR_INC 248 246 239 76
+#define BUTTON_RECEIVE_BUBBLE_TEXT_SHADOW_NORMAL_COLOR_INC 0 0 0 153
+
+#define BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC 58 58 58 255
+#define BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_TEXT_STYLE1_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC 58 58 58 76
+
+#define BUTTON_POPUP_BUTTON_TEXT_NORMAL_COLOR_INC 58 58 58 255
+#define BUTTON_POPUP_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_POPUP_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_POPUP_BUTTON_TEXT_DISABLED_COLOR_INC 58 58 58 76
+
+#define BUTTON_EXPAND_BUTTON_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_FOCUSED_COLOR_INC 249 249 249 255
+#define BUTTON_EXPAND_BUTTON_DISABLED_COLOR_INC 48 49 50 255
+
+#define BUTTON_DELETE_BUTTON_TEXT_NORMAL_COLOR_INC 248 246 239 255
+#define BUTTON_DELETE_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_DELETE_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_DELETE_BUTTON_TEXT_DISABLED_COLOR_INC 248 246 239 76
+
+#define BUTTON_SWEEP_BUTTON_TEXT_NORMAL_COLOR_INC 58 58 58 255
+#define BUTTON_SWEEP_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_SWEEP_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_SWEEP_BUTTON_TEXT_DISABLED_COLOR_INC 58 58 58 76
+
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_NORMAL_COLOR_INC 50 50 50 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_DISABLED_COLOR_INC 50 50 50 255
+
+#define BUTTON_CONTACT_BUTTON_TEXT_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_CONTACT_BUTTON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_CONTACT_BUTTON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_CONTACT_BUTTON_TEXT_DISABLED_COLOR_INC 255 255 255 76
+
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DEFAULT_COLOR_INC 101 101 101 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_PRESSED_COLOR_INC 64 147 247 255
+#define BUTTON_NAVIFRAME_TITLE_ICON_CLIPPER_DISABLED_COLOR_INC 101 101 101 76
+
+#define BUTTON_NAVIFRAME_TITLE_TEXT_NORMAL_COLOR_INC 77 77 77 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_PRESSED_COLOR_INC 248 246 239 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_FOCUSED_COLOR_INC 248 246 239 255
+#define BUTTON_NAVIFRAME_TITLE_TEXT_DISABLED_COLOR_INC 58 58 58 76
+
+#define BUTTON_DATETIME_AMPM_BG_MIN_INC 106 56
+
+#define BUTTON_SEARCH_BUTTON_BG_BORDER_INC 12 12 12 12
+#define BUTTON_SEARCH_BUTTON_BG_MIN_INC 100 66
+#define BUTTON_SEARCH_BUTTON_VISIBLE_BG_MIN_INC 148 66
+#define BUTTON_SEARCH_BUTTON_ICONONLY_BG_MIN_INC 66 66
+#define BUTTON_SEARCH_BUTTON_TEXT_FONT_SIZE_INC 30
+
+#define BUTTON_BUBBLE_CIRCLE_BG_MIN_MAX_INC 74 74
+#define BUTTON_BUBBLE_CIRCLE_IMAGE_MIN_MAX_INC 74 74
+#define BUTTON_BUBBLE_CIRCLE_MIN_WIDTH_INC 74
+#define BUTTON_BUBBLE_CIRCLE_MIN_HEIGHT_INC 74
+
+#define BUTTON_SENT_BUBBLE_BG_BORDER_INC 12 12 12 12
+#define BUTTON_SENT_BUBBLE_TEXT_FONT_SIZE_INC 36
+#define BUTTON_SENT_BUBBLE_TEXT_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_RECEIVE_BUBBLE_BG_BORDER_INC 12 12 12 12
+#define BUTTON_RECEIVE_BUBBLE_TEXT_FONT_SIZE_INC 36
+#define BUTTON_RECEIVE_BUBBLE_TEXT_MULTILINE_FONT_SIZE_INC 28
+
+#define BUTTON_TEXT_STYLE1_BG_MIN_INC 100 74
+#define BUTTON_TEXT_STYLE1_VISIBLE_BG_MIN_INC 148 74
+#define BUTTON_TEXT_STYLE1_ICONONLY_BG_MIN_INC 74 74
+#define BUTTON_TEXT_STYLE1_BG_BORDER_INC 12 12 12 12
+#define BUTTON_TEXT_STYLE1_PADDING_MIN_INC 12 0
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC 4 0
+#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE1_FONT_SIZE_INC 36
+
+#define BUTTON_TEXT_STYLE2_BG_MIN_INC 100 66
+#define BUTTON_TEXT_STYLE2_VISIBLE_BG_MIN_INC 148 66
+#define BUTTON_TEXT_STYLE2_ICONONLY_BG_MIN_INC 74 66
+#define BUTTON_TEXT_STYLE2_BG_BORDER_INC 12 12 12 12
+#define BUTTON_TEXT_STYLE2_PADDING_MIN_INC 12 0
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE2_VISIBLE_PADDING_ICON_TEXT_MIN_INC 4 0
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE2_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TEXT_STYLE2_FONT_SIZE_INC 36
+
+#define BUTTON_CIRCLE_STYLE_BG_MIN_MAX_INC 74 74
+#define BUTTON_CIRCLE_STYLE_IMAGE_MIN_MAX_INC 74 74
+#define BUTTON_CIRCLE_STYLE_CONTENT_MIN_MAX_INC 44 44
+
+#define BUTTON_CIRCLE_NORMAL_MIN_WIDTH_INC 74
+#define BUTTON_CIRCLE_NORMAL_MIN_HEIGHT_INC 74
+#define BUTTON_CIRCLE_EXTENEDED_MIN_WIDTH_INC 110
+#define BUTTON_CIRCLE_EXTENEDED_MIN_HEIGHT_INC 110
+
+#define BUTTON_POPUP_BG_NORMAL_MIN_INC 30 74
+#define BUTTON_POPUP_BG_BORDER_INC 12 12 12 12
+#define BUTTON_POPUP_PADDING_MIN_INC 12 3
+#define BUTTON_POPUP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_POPUP_ICON_ICONONLY_MIN_INC 44 44
+#define BUTTON_POPUP_TEXT_MIN_INC 64 20
+#define BUTTON_POPUP_TEXT_FONT_SIZE_INC 36
+
+#define BUTTON_EDIT_STYLE_BG_NORMAL_MIN_MAX_INC 74 74
+#define BUTTON_EDIT_STYLE_IMAGE_NORMAL_MIN_MAX_INC 74 74
+
+#define BUTTON_EDIT_NORMAL_MIN_WIDTH_INC 74
+#define BUTTON_EDIT_NORMAL_MIN_HEIGHT_INC 74
+#define BUTTON_EDIT_EXTENDED_MIN_WIDTH_INC 90
+#define BUTTON_EDIT_EXTENDED_MIN_HEIGHT_INC 90
+
+#define BUTTON_SWEEP_BG_NORMAL_MIN_INC 74 74
+#define BUTTON_SWEEP_BG_BORDER_INC 12 12 12 12
+#define BUTTON_SWEEP_PADDING_MIN_INC 12 0
+#define BUTTON_SWEEP_ICON_RECT_MIN_INC 0 44
+#define BUTTON_SWEEP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_SWEEP_ICONONLY_ICON_MIN_INC 44 44
+#define BUTTON_SWEEP_TEXT_MIN_INC 50 26
+#define BUTTON_SWEEP_FONT_SIZE_INC 26
+
+#define BUTTON_EXPAND_BUTTON_TEXT_SIZE_INC 30
+
+#define BUTTON_EXPANDABLE_NUMBER_BG_NORMAL_MIN_MAX_INC 98 46
+#define BUTTON_EXPANDABLE_NUMBER_BG_BORDER_INC 12 12 12 12
+#define BUTTON_EXPANDABLE_NUMBER_PADDING_MIN_INC 12 1
+#define BUTTON_EXPANDABLE_NUMBER_ICON_RECT_EXPAND_MIN_MAX_INC 24 46
+#define BUTTON_EXPANDABLE_NUMBER_TEXT_MIN_MAX_INC 50 46
+#define BUTTON_EXPANDABLE_NUMBER_FONT_SIZE_INC 28
+
+#if 0
+#define BUTTON_CONTACT_DELETE_BG_NORMAL_MIN_INC 50 74
+#define BUTTON_CONTACT_DELETE_BG_BORDER_INC 8 0 5 5
+#define BUTTON_CONTACT_DELETE_PADDING_LEFT_TOP_MIN_INC 36 2
+#define BUTTON_CONTACT_DELETE_PADDING_RIGHT_BOTTOM_MIN_INC 14 2
+#define BUTTON_CONTACT_DELETE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_CONTACT_DELETE_ICON_ICONONLY_MIN_INC 42 42
+#define BUTTON_CONTACT_DELETE_FONT_SIZE_INC 32
+
+#define BUTTON_CONTACT_STYLE_BG_MIN_MAX_INC 74 74
+#define BUTTON_CONTACT_STYLE_IMAGE_MIN_MAX_INC 74 74
+
+#define BUTTON_TEXT_CONTACTS_DELETE_NORMAL_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_CONTACTS_DELETE_PRESSED_COLOR_INC 249 249 249 255
+#define BUTTON_TEXT_CONTACTS_DELETE_DISABLED_COLOR_INC 0 0 0 128
+#endif
+
+#define BUTTON_CONTACT_BG_MIN_INC 12 66
+#define BUTTON_CONTACT_BG_BORDER_INC 6 6 6 6
+#define BUTTON_CONTACT_LEFT_PADDING_MIN_INC 12 0
+#define BUTTON_CONTACT_RIGHT_PADDING_MIN_INC 12 0
+#define BUTTON_CONTACT_FONT_SIZE_INC 32
+
+#define BUTTON_NAVIFRAME_BACK_BUTTON_BG_MIN_MAX_INC 86 98
+#define BUTTON_NAVIFRAME_BACK_BUTTON_MIN_MAX_INC 60 60
+
+#define BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC 249 249 249 255
+#define BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC 249 249 249 255
+
+#define BUTTON_NAVIFRAME_TITLE_ICON_BG_MIN_MAX_INC 86 111
+#define BUTTON_NAVIFRAME_TITLE_ICON_IMAGE_MIN_MAX_INC 68 68
+#define BUTTON_NAVIFRAME_TITLE_ICON_TOP_PADDING_INC 0 32
+
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_NORMAL_MIN_INC 182 70
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_NORMAL_MAX_INC 9999 70
+#define BUTTON_NAVIFRAME_TITLE_TEXTBLOCK_MIN_INC 126 70
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_PRESSED_BORDER_INC 36 36 0 0
+#define BUTTON_NAVIFRAME_TITLE_TEXT_PADDING_MIN_INC 28 5
+#define BUTTON_NAVIFRAME_TITLE_TEXT_FONT_SIZE_INC 32
+#define BUTTON_NAVIFRAME_TITLE_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_NAVIFRAME_TITLE_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_NAVIFRAME_TITLE_VISIBLE_PADDING_ICON_TEXT_MIN_INC 8 0
+#define BUTTON_NAVIFRAME_TITLE_TEXT_BG_NORMAL_COLOR_INC 249 249 249 255
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC 82 82
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC 60 60
+
+#define BUTTON_TICKERNOTI_BG_MIN_MAX_INC 154 74
+#define BUTTON_TICKERNOTI_BG_BORDER_INC 12 12 12 12
+#define BUTTON_TICKERNOTI_PADDING_MIN_INC 12 0
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_VISIBLE_PADDING_ICON_TEXT_MIN_INC 4 0
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_FONT_SIZE_INC 36
+
+#define BUTTON_COLORSELECTOR_BG_DEFAULT_MIN_INC 74 74
+#define BUTTON_COLORSELECTOR_BG_BORDER_INC 12 12 12 12
+#define BUTTON_COLORSELECTOR_IMAGE_MIN_MAX_INC 74 74
+
+#define BUTTON_DEFAULT_STYLE_BG_MIN_INC 100 74
+#define BUTTON_DEFAULT_STYLE_BG_BORDER_INC 12 12 12 12
+#define BUTTON_DEFAULT_STYLE_PADDING_MIN_INC 12 5
+#define BUTTON_DEFAULT_STYLE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_DEFAULT_STYLE_ICONONLY_ICON_MIN_INC 44 44
+#define BUTTON_DEFAULT_STYLE_TEXT_MIN_INC 144 36
+#define BUTTON_DEFAULT_STYLE_FONT_SIZE_INC 36
+
+#define BUTTON_DEFAULT_STYLE_MULTILINE_BG_MIN_INC 100 80
+#define BUTTON_DEFAULT_STYLE_MULTILINE_PADDING_MIN_INC 12 0
+
+#define CHECK_DELETE_TEXT_DELETE_NORMAL_COLOR_INC 249 249 249 255
+#define CHECK_DELETE_TEXT_DELETE_PRESS_COLOR_INC 249 249 249 255
+
+#define CHECK_DEFAULT_TEXT_FONT_SIZE_INC 36
+
+#define CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC 132 70
+#define CHECK_ONOFF_ON_FONT_SIZE_INC 24
+#define CHECK_ONOFF_OFF_FONT_SIZE_INC 24
+#define CHECK_ONOFF_HANDLER_MIN_MAX_INC 64 64
+
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 74
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 74
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 100
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 100
+#define CHECK_STYLE_FAVORITE_BG_NORMAL_MIN_MAX_INC 74 74
+
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 64
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 64
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 75
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 91
+#define CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC 64 64
+
+#define CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC 74 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC 124 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_BORDER_INC 8 0 5 5
+#define CHECK_STYLE_DELETE_BUTTON_TEXT_FONT_SIZE_INC 32
+
+#define INDEX_BG_NINEPATCH_INC 8 8 8 8
+#define INDEX_ITEM_WIDTH_INC 49
+#define INDEX_ITEM_HEIGHT_INC 33
+#define INDEX_LEVEL_PADDING_INC 70
+#define INDEX_1ST_LEVEL_POPUP_WIDTH_INC 188
+#define INDEX_2ND_LEVEL_POPUP_WIDTH_INC 188
+#define INDEX_POPUP_HEIGHT_INC 180
+#define INDEX_ROLLOVER_TEXT_SIZE_INC 26
+#define INDEX_POPUP_BG_NINEPATCH_INC 20 20 20 20
+#define INDEX_POPUP_TEXT_SIZE_INC 136
+#define INDEX_ROLLOVER_TEXT_COLOR_INC 160 159 154 255
+#define INDEX_ROLLOVER_ACTIVE_TEXT_COLOR_INC 59 115 182 255
+#define INDEX_POPUP_TEXT_COLOR_INC 255 255 255 255
+#define INDEX_SCROLL_BG_COLOR_INC 230 227 216 255
+#define INDEX_BOTTOM_LINE_COLOR_INC 197 194 183 255
+#define INDEX_LEFT_LINE_COLOR_INC 65 119 184 255
+
+#define INDEX_PAGECONTROL_IND_INC 10 9
+#define INDEX_PAGECONTROL_IND_MIN_INC 10 9
+#define INDEX_PAGECONTROL_FONT_SIZE_INC 28
+#define INDEX_PAGECONTROL_FONT_COLOR_INC 120 120 120
+
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 64
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 64
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 76
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 76
+#define RADIO_STYLE_DEFAULT_BG_MIN_MAX_INC 64 64
+#define RADIO_STYLE_DEFAULT_FONT_SIZE_INC 36
+
+#define PANES_STYLE_DEFAULT_MOVABLE_SIZE_INC 60
+#define PANES_STYLE_DEFAULT_PADDING_LEFT_SIZE_INC 25
+#define PANES_STYLE_DEFAULT_PADDING_RIGHT_SIZE_INC 22
+#define PANES_STYLE_DEFAULT_MIDDLE_SIZE_INC 26
+#define PANES_STYLE_DEFAULT_FIXED_SIZE_INC 52
+
+#define SEGMENT_CONTROL_DEFAULT_ITEM_TEXT_COLOR_NORMAL_INC 153 153 153 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC 59 115 182 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC 59 115 182 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC 153 153 153 255
+
+#define SEGMENT_CONTROL_MULTILINE_TEXT_SIZE_INC 30
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MIN_INC 12
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MAX_INC 28
+#define SEGMENT_CONTROL_DIVIDER_LINE_MIN_SIZE_INC 2 32
+#define SEGMENT_CONTROL_TEXT_PADDING_MIN_SIZE_INC 18 0
+#define SEGMENT_CONTROL_VISIBLE_ICON_RECT_MIN_MAX_INC 40 40
+#define SEGMENT_CONTROL_BADGE_TEXT_LEFT_PADDING_MIN_INC 22 45
+#define SEGMENT_CONTROL_BADGE_TEXT_RIGHT_PADDING_MIN_INC 18 47
+#define SEGMENT_CONTROL_BADGE_TEXT_COLOR_INC 10 100 208 255;
+#define SEGMENT_CONTROL_BADGE_TEXT_FONT_SIZE_INC 26;
+
+#define EDITFIELD_TITLE_SIZE_INC 32
+#define EDITFIELD_TITLE_COLOR_INC 59 115 182 255
+#define EDITFIELD_GUIDE_TEXT_COLOR_INC 121 131 138 255
+#define EDITFIELD_DEFAULT_ERASER_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_MINH_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_EVENT_MINH_INC 70
+#define EDITFIELD_SEARCHBAR_ERASER_MINW_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_MINH_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_EVENT_MINW_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_EVENT_MINH_INC 50
+#define EDITFIELD_DEFAULT_MINH_INC 112
+#define EDITFIELD_TITLE_MINH_INC 128
+#define EDITFIELD_SEARCHBAR_MINH_INC 50
+#define EDITFIELD_DEFAULT_TOP1_SINGLE_INC 27
+#define EDITFIELD_DEFAULT_TOP1_MULTI_INC 56
+#define EDITFIELD_DEFAULT_TOP2_INC 8
+#define EDITFIELD_DEFAULT_LEFT1_INC 0
+#define EDITFIELD_DEFAULT_LEFT2_INC 0
+#define EDITFIELD_DEFAULT_LEFT3_INC 1
+#define EDITFIELD_DEFAULT_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_DEFAULT_RIGHT2_INC 0
+#define EDITFIELD_DEFAULT_BOTTOM1_SINGLE_INC 25
+#define EDITFIELD_DEFAULT_BOTTOM1_MULTI_INC 8
+#define EDITFIELD_DEFAULT_BOTTOM2_SINGLE_INC 32
+#define EDITFIELD_DEFAULT_BOTTOM2_MULTI_INC 12
+#define EDITFIELD_DEFAULT_BOTTOM3_SINGLE_INC 85
+#define EDITFIELD_DEFAULT_BOTTOM3_MULTI_INC 60
+#define EDITFIELD_SEARCHBAR_TOP1_SINGLE_INC 6
+#define EDITFIELD_SEARCHBAR_TOP1_MULTI_INC 10
+#define EDITFIELD_SEARCHBAR_TOP2_INC 10
+#define EDITFIELD_SEARCHBAR_LEFT1_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT2_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT3_INC 1
+#define EDITFIELD_SEARCHBAR_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_SEARCHBAR_RIGHT2_INC 5
+#define EDITFIELD_SEARCHBAR_BOTTOM1_SINGLE_INC 8
+#define EDITFIELD_SEARCHBAR_BOTTOM1_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM2_SINGLE_INC 16
+#define EDITFIELD_SEARCHBAR_BOTTOM2_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM3_SINGLE_INC 50
+#define EDITFIELD_SEARCHBAR_BOTTOM3_MULTI_INC 50
+
+#define BUTTON_TICKERNOTI_NORMAL_COLOR_INC        225 215 215 255
+#define BUTTON_TICKERNOTI_PRESSED_COLOR_INC       248 246 239 255
+#define BUTTON_TICKERNOTI_DISABLED_COLOR_INC      225 215 215 76
+
+#define BUTTON_DISCLIP_NORMAL_COLOR_INC           255 255 255 255
+#define BUTTON_DISCLIP_DISABLED_COLOR_INC         255 255 255 76
+
+#define CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC        50 50 50 255
+#define CHECK_DEFAULT_TEXT_PRESSED_COLOR_INC      248 246 239 255
+#define CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC          50 50 50 76
+#define CHECK_DISCLIP_NORMAL_COLOR_INC             255 255 255 255
+#define CHECK_DISCLIP_DISABLED_COLOR_INC           255 255 255 76
+
+#define RADIO_DEFAULT_TEXT_NORMAL_COLOR_INC        50 50 50 255
+#define RADIO_DEFAULT_TEXT_PRESSED_COLOR_INC       248 246 239 255
+#define RADIO_DEFAULT_TEXT_DISABLED_COLOR_INC      50 50 50 76
+#define RADIO_DISCLIP_NORMAL_COLOR_INC             255 255 255 255
+#define RADIO_DISCLIP_DISABLED_COLOR_INC           255 255 255 76
+
+#define CONTROLBAR_LARGE_HEIGHT_INC 122
+#define CONTROLBAR_SMALL_HEIGHT_INC 114
+#define CONTROLBAR_WIDTH_INC 122
+#define CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC 23 34 38 255
+#define CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC 58 68 74 255
+
+#define MULTIBUTTONENTRY_WIDTH_PAD_INC 26
+#define MULTIBUTTONENTRY_HEIGHT_PAD_INC 16
+#define MULTIBUTTONENTRY_BOX_HORIZONTAL_PAD_INC 8
+#define MULTIBUTTONENTRY_BOX_VERTICAL_PAD_INC 16
+#define MULTIBUTTONENTRY_LABEL_HEIGHT_INC 66 // same as button 
+#define MULTIBUTTONENTRY_LABEL_PAD_INC 8
+#define MULTIBUTTONENTRY_LABEL_TEXT_SIZE_INC 36
+#define MULTIBUTTONENTRY_LABEL_TEXT_COLOR_INC "#808080"
+#define MULTIBUTTONENTRY_GUIDE_HEIGHT_INC 66 // same as button
+#define MULTIBUTTONENTRY_GUIDE_TEXT_SIZE_INC 36
+#define MULTIBUTTONENTRY_GUIDE_TEXT_COLOR_INC "#79838A" //same as editfield
+#define MULTIBUTTONENTRY_BUTTON_HEIGHT_INC 66
+#define MULTIBUTTONENTRY_BUTTON_PAD_INC 12
+#define MULTIBUTTONENTRY_BUTTON_MAX_INC 324
+#define MULTIBUTTONENTRY_BUTTON_NINEPATCH_INC 5 5 0 0
+#define MULTIBUTTONENTRY_BUTTON_TEXT_SIZE_INC 32
+#define MULTIBUTTONENTRY_BUTTON_TEXT_COLOR_INC 255 255 255 255
+#define MULTIBUTTONENTRY_BUTTON_TEXT_MAX_INC 300
+#define MULTIBUTTONENTRY_NUMBER_TEXT_COLOR_INC 128 128 128 255 // same as multibuttonentry label
+
+#define SEARCHBAR_CANCEL_BUTTON_W_INC 136
+#define SEARCHBAR_CANCEL_BUTTON_WITH_DOUBLE_PADDING_W_INC 166
+#define SEARCHBAR_CANCEL_BUTTON_LEFT_PADDING_INC 10
+#define SEARCHBAR_TOP_PADDING_INC 10
+#define SEARCHBAR_BOTTOM_PADDING_INC 10
+#define SEARCHBAR_HEIGHT_INC 66
+#define SEARCHBAR_LEFT_PADDING_INC 26
+#define SEARCHBAR_RIGHT_PADDING_INC 26
+#define SEARCHBAR_INPUTFIELD_BORDER_INC 9 9 9 9
+#define SEARCHBAR_LEFT_ICON_PADDING_INC 16
+#define SEARCHBAR_ICON_MIN_W_INC 44
+#define SEARCHBAR_ICON_MIN_H_INC 44
+#define SEARCHBAR_LEFT_PADDING_SEARCHFIELD_INC 16
+#define SEARCHBAR_RIGHT_PADDING_SEARCHFIELD_INC 8
+#define SEARCHBAR_SEARCH_TEXTFIELD_H_INC 60
+#define SEARCHBAR_H_INC 86
+
+#define SELECTION_INFO_BACKGROUND_COLOR_INC          68 68 68 255
+#define SELECTION_INFO_TEXT_COLOR_INC                255 255 255 255
+#define SELECTION_INFO_MIN_VER_W_INC                 720
+#define SELECTION_INFO_MIN_HORZ_W_INC                1280
+#define SELECTION_INFO_VER_PADDING_INC               48
+#define SELECTION_INFO_LEFT_PADDING_INC              16
+#define SELECTION_INFO_TEXT_FONT_SIZE_INC            32
+#define SELECTION_INFO_SHADOW_VER_W_INC              720
+#define SELECTION_INFO_SHADOW_VER_H_INC              10
+#define SELECTION_INFO_SHADOW_HORZ_W_INC             1280
+#define SELECTION_INFO_SHADOW_HORZ_H_INC             10
+#define SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC       150
+#define SELECTION_INFO_MIN_VER_BOTTOM_86_H_INC       186
+
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_FONT_SIZE_INC 42
+
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MIN_INC 720 0
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MAX_INC 720 1120
+#define POPUP_BASE_DEFAULT_BG_DEFAULT_IMAGE_BORDER_INC 18 18 32 52
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_MIN_INC 648 80
+#define POPUP_BASE_DEFAULT_TITLE_VOLUMEBAR_MIN_INC 720 68
+#define POPUP_BASE_DEFAULT_PADDING_MIN_MAX_INC 16 0
+#define POPUP_BASE_DEFAULT_TITLE_ICON_DEFAULT_MIN_MAX_INC 64 64
+#define POPUP_BASE_DEFAULT_CONTENT_DEFAULT_MIN_MAX_INC 648 0
+#define POPUP_BASE_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 648 114
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC 50
+
+#define POPUP_DESC_LEFT_PADDING 0
+#define POPUP_DESC_RIGHT_PADDING 0
+#define POPUP_DESC_TOP_PADDING 14
+#define POPUP_DESC_BOTTOM_PADDING 34
+#define POPUP_LABEL_DESC_TOP_PADDING 39
+#define POPUP_LABEL_DESC_BOTTOM_PADDING 39
+#define POPUP_TITLE_TOP_PADDING 18
+#define POPUP_TITLE_BOTTOM_PADDING 0
+#define POPUP_TITLE_ICON_TEXT_PADDING_INC 16 0
+
+#define POPUP_CONTENT_DEFAULT_PADDING_TOP_MIN_INC 20
+#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 36
+#define POPUP_CONTENT_DEFAULT_PADDING_RIGHT_MIN_INC 36
+#define POPUP_CONTENT_DEFAULT_PADDING_BOTTOM_MIN_INC 20
+#define POPUP_CONTENT_DEFAULT_CONTENT_DEFAULT_MIN_INC 648 0
+
+#define POPUP_BASE_CONTENT_EXPAND_BG_DEFAULT_MIN_INC 0 114
+#define POPUP_BASE_CONTENT_EXPAND_TITLE_DEFAULT_MIN_INC 0 80
+
+#define POPUP_BASE_VERTICAL_BUTTON_BUTTONAREA_DEFAULT_MIN_INC 648 294
+
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_TOP_MIN_INC 0 20
+#define POPUP_BUTTON_VERTICAL_ACTION_AREA_HEIGHT "294"
+#define POPUP_BUTTON3_VERTICAL_BUTTON_BUTTON_MIN_MAX_INC 394 74
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MIN_INC 0 16
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MAX_INC 9999 16
+
+#define POPUP_CONTENT_LISTSTYLE_PADDING_TOP_MIN_MAX_INC 3 3
+#define POPUP_CONTENT_LISTSTYLE_CONTENT_DEFAULT_MIN_INC 614 408
+#define POPUP_CONTENT_LISTSTYLE_PADDING_RIGHT_MIN_INC 0 0
+
+#define POPUP_CONTENT_MINSTYLE_CONTENT_DEFAULT_MIN_INC 720 0
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_CONTENT_DEFAULT_MIN_INC 668 134
+#define POPUP_CONTENT_VOLUMEBAR_TEXT_STYLE_CONTENT_DEFAULT_MIN_INC 668 250
+#define POPUP_BASE_VOLUMEBAR_STYLE_BUTTONAREA_BG_DEFAULT_MIN_INC 668 134
+
+#define POPUP_BUTTON_DEFAULT_ACTION_AREA_HEIGHT "114"
+#define POPUP_BUTTON1_DEFAULT_BUTTON1_DEFAULT_MIN_INC 394 74
+#define POPUP_BUTTON1_DEFAULT_BUTTON1_DEFAULT_MAX_INC 648 74
+#define POPUP_BUTTON2_DEFAULT_HEIGHT_INC 74
+#define POPUP_BUTTON2_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 270 74
+#define POPUP_BUTTON2_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 20 74
+#define POPUP_BUTTON2_DEFAULT_PADDING_LEFT_RIGHT_WIDTH_INC 36
+#define POPUP_BUTTON3_DEFAULT_HEIGHT_INC 74
+#define POPUP_BUTTON3_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 202 74
+#define POPUP_BUTTON3_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 20 74
+#define POPUP_BUTTON3_DEFAULT_PADDING_LEFT_RIGHT_WIDTH_INC 36
+
+#define PROGRESSBAR_DEFAULT_STYLE_TEXT_COLOR_INC          128 128 128 255
+#define PROGRESSBAR_DEFAULT_STYLE_STATUS_TEXT_COLOR_INC          128 128 128 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC          128 128 128 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC          128 128 128 255
+#define PROGRESSBAR_LIST_TITLE_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC      128 128 128 255
+#define PROGRESSBAR_LIST_PROCESS_WIDTH_INC 66
+#define PROGRESSBAR_LIST_PROCESS_HEIGHT_INC 66
+#define PROGRESSBAR_LIST_PROCESS_SMALL_INC 35
+#define PROGRESSBAR_LIST_PROCESS_SMALL_IMAGE "32x32"
+#define PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC 36
+#define PROGRESSBAR_LIST_PENDING_HEIGHT_INC 34
+#define PROGRESSBAR_PROGRESS_CIRCLE_BG_SIZE_INC 128 128
+
+#define NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC 128 128 128 255
+#define NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC   32
+#define NOCONTENT_MIDDLE_PADDING_INC         38
+#define NOCONTENT_BASE_SEARCH_PADDING_INC    40
+#define NOCONTENT_IMAGE_WIDTH_HEIGHT_INC     280 280
+#define NOCONTENT_BG_COLOR_INC               0 0 0 0
+#define NOCONTENT_TEXT_STYLE_BG_MIN_INC       0 76
+#define NOCONTENT_IMAGE_BG_COLOR_INC         128 128 128 255
+
+#define ENTRY_TEXT_SIZE_INC 44
+#define ENTRY_TEXT_COLOR_INC "#000000"
+#define ENTRY_CURSOR_COLOR_INC 59 115 182 255
+#define ENTRY_PREEDIT_BACKGROUND_COLOR_INC "#000000"
+#define ENTRY_PREEDIT_TEXT_COLOR_INC "#FFFFFF"
+#define ENTRY_PREEDIT_UNDERLINE_COLOR_INC "#000000"
+#define ENTRY_PREEDIT_SUB1_COLOR_INC "#2EA8E1"
+#define ENTRY_PREEDIT_SUB2_COLOR_INC "#9962C3"
+#define ENTRY_PREEDIT_SUB3_COLOR_INC "#76DE37"
+#define ENTRY_PREEDIT_SUB4_COLOR_INC "#999999"
+#define ENTRY_SELECTION_BG_COLOR 90 123 138 127
+#define ENTRY_SELECTION_BLOCK_HANDLE_MIN_SIZE 48 67
+#define MAGNIFIER_HEIGHT_FILL 182
+#define MAGNIFIER_HEIGHT_FIXED 108
+#define MAGNIFIER_WIDTH_FIXED 358
+
+#define ENTRY_BUBBLE_EX_PAD 58
+#define ENTRY_BUBBLE_EX_CALLERID_PAD 178
+#define ENTRY_BUBBLE_IX_PAD 20
+#define ENTRY_BUBBLE_Y_PAD 15
+#define ENTRY_BUBBLE_BOTTOM_PAD 24
+#define ENTRY_BUBBLE_CALLERID_PAD 16
+#define ENTRY_BUBBLE_CALLERID_WIDTH 104
+#define ENTRY_BUBBLE_CALLERID_HEIGHT 104
+#define ENTRY_BUBBLE_DATE_AREA_TEXT_SIZE_INC 26
+#define ENTRY_BUBBLE_TEXT_SIZE 38
+
+#define ENTRY_BUBBLE_SENT_TEXT_COLOR "#000000"
+#define ENTRY_BUBBLE_SENT_TEXT_SHADOW_STYLE "far_shadow,bottom"
+#define ENTRY_BUBBLE_SENT_TEXT_SHADOW_COLOR "#ffffff7f"
+#define ENTRY_BUBBLE_RECEV_TEXT_COLOR "#FFFFFF"
+#define ENTRY_BUBBLE_RECEV_TEXT_SHADOW_STYLE "far_shadow,top"
+#define ENTRY_BUBBLE_RECEV_TEXT_SHADOW_COLOR "#0000009f"
+#define ENTRY_BUBBLE_RECEV_BG_BORDER_INC 58 24 62 20
+#define ENTRY_BUBBLE_SENT_BG_BORDER_INC 24 58 62 20
+#define ENTRY_BUBBLE_CALLERID_RELATIVE_INC 0.0 0.0
+#define ENTRY_BUBBLE_RECEV_CALLERID_REL_INC 1.0 0.0
+#define ENTRY_BUBBLE_BOTTOMRIGHT_PAD 120
+#define ENTRY_BUBBLE_TEXT_CALLID_REL2_X_INC "elm.rect.right.pad"
+#define ENTRY_BUBBLE_READ_TEXT_CALLID_REL1_X_INC "elm.rect.left.pad"
+#define ENTRY_BUBBLE_TEXT_CALLID_REL2_Y_INC "elm.rect.groupchat.text.pad"
+#define ENTRY_BUBBLE_STATUS_TIME_PAD_MIN_H_INC 14
+#define ENTRY_BUBBLE_STATUS_TIME_PAD_REL_INC 0.0 1.0
+#define ENTRY_BUBBLE_READ_STATUS_TIME_PAD_REL_INC 1.0 1.0
+#define ENTRY_BUBBLE_STATUS_TIME_SIZE_INC 22
+#define ENTRY_BUBBLE_SENT_STATUS_TIME_COLOR_INC 139 139 139 255
+#define ENTRY_BUBBLE_READ_STATUS_TIME_COLOR_INC 139 139 139 255
+#define ENTRY_BUBBLE_GROUPCHAT_SIZE_INC 24
+#define ENTRY_BUBBLE_GROUPCHAT_COLOR_INC 139 139 139 255
+#define ENTRY_BUBBLE_GROUPCHART_ENABLE_INC 1
+#define ENTRY_BUBBLE_GROUPCHART_PAD 36 30
+#define ENTRY_BUBBLE_GROUPCHART_WITH_CALLERID_PAD 158 30
+#define ENTRY_BUBBLE_READ_STATUS_REL_INC 1.0 0.0
+#define ENTRY_BUBBLE_READ_TIME_REL_INC 1.0 1.0
+
+#define PANES_DEFAULT_FIXED_SEPERATOR_NORMAL_COLOR_INC 118 118 118 255
+
+#define DAYSELECTOR_BACKGROUND_COLOR_INC       82 84 87 255
+#define DAYSELECTOR_WEEKDAY_COLOR_INC          249 249 249 255
+#define DAYSELECTOR_SATURDAY_COLOR_INC         0 168 231 255
+#define DAYSELECTOR_SUNDAY_COLOR_INC           7 180 211 255
+#define DAYSELECTOR_DAY_PRESSED_COLOR_INC      249 249 249 255
+#define DAYSELECTOR_DAY_FONT_SIZE_INC 32
+#define DAYSELECTOR_CHECK_WIDTH_INC 94
+#define DAYSELECTOR_CHECK_HEIGHT_INC 90
+
+#define SLIDER_INDICATOR_TEXT_COLOR_INC      59 115 182 255
+#define SLIDER_INDICATOR_TEXT_PRESSED_COLOR_INC      255 255 255 255
+#define SLIDER_UNITS_TEXT_COLOR_INC      0 0 0 255
+#define SLIDER_UNITS_TEXT_SIZE_INC  30
+#define SLIDER_INDICATOR_TEXT_SIZE_INC  40
+#define SLIDER_BASE_HEIGHT_INC  34
+#define SLIDER_BASE_MIN_WIDTH_INC 375
+#define SLIDER_SWALLOW_BAR_MIN_WIDTH_INC  72
+#define SLIDER_SWALLOW_BAR_HEIGHT_INC  74
+#define SLIDER_INDICATOR_MAX_WIDTH_INC 90
+#define SLIDER_INDICATOR_WIDTH_INC 72
+#define SLIDER_INDICATOR_HEIGHT_INC 72
+#define SLIDER_EBOOK_HEIGHT_INC  23
+#define SLIDER_EBOOK_UNITS_TEXT_COLOR_INC   164 160 149 255
+#define SLIDER_EBOOK_UNITS_TEXT_SIZE_INC  48
+#define SLIDER_EBOOK_INDICATOR_TEXT_COLOR_INC   7 180 211 255
+#define SLIDER_EBOOK_INDICATOR_DEFAULT_TEXT_SIZE_INC 36
+#define SLIDER_EBOOK_INDICATOR_DRAG_TEXT_SIZE_INC 48
+#define SLIDER_EBOOK_INDICATOR_WIDTH_INC 54
+#define SLIDER_EBOOK_INDICATOR_HEIGHT_INC 54
+
+#define TICKER_NOTI_DEFAULT_TEXT_COLOR_INC "#ffffff"
+#define TICKER_NOTI_DEFAULT_TEXT2_COLOR_INC "#ffffff"
+
+#define DATETIME_FIELD_MIN_SIZE_INC                48 112
+#define DATETIME_SEPARATOR_MIN_SIZE_INC            18 112
+#define DATETIME_TEXT_FONT_SIZE_INC                36
+#define DATETIME_TEXT_NORMAL_COLOR_INC             0 0 0 255
+#define DATETIME_SEPARATOR_TEXT_COLOR_INC          150 150 150 255
+#define DATETIME_TEXT_SELECTED_COLOR_INC           255 255 255 255
+#define DATETIME_LABEL_TEXT_BLOCK_STYLE_COLOR_INC  0 0 0 255
+#define DATETIME_LABEL_TEXT_BLOCK_STYLE_SELECTED_COLOR_INC  59 115 182 255
+
+#define COLORSELECTOR_MIN_W_INC 688
+#define COLORSELECTOR_MIN_H_INC 336
+#define COLORSELECTOR_MAX_W_INC 1014
+#define COLORSELECTOR_COLORBAR_HEIGHT 112
+#define COLORSELECTOR_COLORBAR_LEFT_PADDING 122
+#define COLORSELECTOR_COLORBAR_RIGHT_PADDING 122
+#define COLORSELECTOR_BUTTON_TOP_PADDING 19
+#define COLORSELECTOR_ARROW_BG_LEFT_PADDING 120
+#define COLORSELECTOR_ARROW_BG_RIGHT_PADDING 120
+#define COLORSELECTOR_ARROW_MIN_WIDTH 22
+#define COLORSELECTOR_ARROW_MIN_HEIGHT 70
+#define COLORSELECTOR_ARROW_REL1_OFFSET 0 5
+#define COLORSELECTOR_ARROW_REL2_OFFSET 0 5
+#define COLORSELECTOR_DRAGGABLE_EVENT_AREA 80 80
+#define COLORSELECTOR_BUTTON_LEFT_PADDING 32
+#define COLORSELECTOR_BUTTON_RIGHT_PADDING 32
+#define COLORSELECTOR_BUTTON_WIDTH 74
+#define COLORSELECTOR_BUTTON_HEIGHT 74
+#define COLORSELECTOR_BUTTON_BORDER 6 6 6 6
+#define COLORSELECTOR_PADDING_COLOR_INC 225 223 218 255
+
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_WIDTH_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_HEIGHT_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_WIDTH_INC 84
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_HEIGHT_INC 84
+#define COLORSELECTOR_PORTRAIT_HOR_PAD_INC "50"
+#define COLORSELECTOR_PORTRAIT_VER_PAD_INC "20"
+#define COLORSELECTOR_LANDSCAPE_HOR_PAD_INC "36"
+#define COLORSELECTOR_LANDSCAPE_VER_PAD_INC "0"
+#define COLORSELECTOR_PALETTE_BORDER_INC 11 11 11 11
+
+#define CALENDAR_DAY_FONT_SIZE_INC 24
+#define CALENDAR_DATE_FONT_SIZE_INC 32
+#define CALENDAR_MONTH_FONT_SIZE_INC 38
+#define CALENDAR_MONTH_FONT_COLOR_INC 249 249 249 255
+#define CALENDAR_SATURDAY_FONT_COLOR_INC 47 120 220 255
+#define CALENDAR_SUNDAY_FONT_COLOR_INC 226 20 20 255
+#define CALENDAR_WEEKDAY_FONT_COLOR_INC 249 249 249 255
+#define CALENDAR_SELECTED_DATE_FONT_COLOR_INC 255 255 255 255
+#define CALENDAR_SEPERATOR_FONT_COLOR_INC 68 68 68 255
+#define CALENDAR_BACKGROUND_COLOR_INC 89 89 89 255
+#define CALENDAR_BUTTON_HEIGHT_INC 66
+#define CALENDAR_BUTTON_WIDTH_INC 74
+#define CALENDAR_ARROW_WIDTH_INC 30
+#define CALENDAR_ARROW_HEIGHT_INC 36
+#define CALENDAR_BASE_MIN_WIDTH_INC 692
+#define CALENDAR_BASE_MIN_HEIGHT_INC 420
+#define CALENDAR_HEADER_MIN_WIDTH_INC 98
+#define CALENDAR_HEADER_MIN_HEIGHT_INC 90
+
+#define CTXPOPUP_ENTRY_CENTER_IMAGE_BORDER 12 12 9 9
+#define CTXPOPUP_ENTRY_IMAGE_BORDER_WIDTH 12
+#define CTXPOPUP_ENTRY_ITEM_TEXT_COLOR   249 249 249 255
+#define CTXPOPUP_ENTRY_ITEM_LEFT_SEPARATOR_COLOR 68 68 68 255
+#define CTXPOPUP_ENTRY_ITEM_RIGHT_SEPARATOR_COLOR 0 0 0 255
+#define CTXPOPUP_ENTRY_SEPARATOR_WIDTH 1
+#define CTXPOPUP_ENTRY_SEPARATOR_HEIGHT 50
+#define CTXPOPUP_ENTRY_ITEM_HEIGHT 74
+#define CTXPOPUP_ENTRY_ITEM_PADDING_WIDTH 14
+#define CTXPOPUP_ENTRY_ITEM_FONT_SIZE 28
+#define CTXPOPUP_ENTRY_ICON_SIZE 58
+#define CTXPOPUP_ENTRY_ITEM_WIDTH_MAX 240
+#define CTXPOPUP_ENTRY_LIST_SHADOW_PADDING 3
+#define CTXPOPUP_ENTRY_ITEM_DISABLED_COLOR 200 200 200 127
+#define CTXPOPUP_ENTRY_ARROW_SIZE_HEIGHT 18
+#define CTXPOPUP_ENTRY_ARROW_SIZE_WIDTH 29
+
+#define TICKERNOTI_DEFAULT_BG_MIN_HEIGHT_INC 100
+#define TICKERNOTI_DEFAULT_BG_TOTAL_MIN_HEIGHT_INC 112
+#define TICKERNOTI_DEFAULT_BG_BORDER_INC 2 2 2 14
+#define TICKERNOTI_DEFAULT_BG_PADDING_LEFT_TOP_INC 16 18
+#define TICKERNOTI_DEFAULT_BG_PADDING_RIGHT_BOTTOM_INC 16 18
+#define TICKERNOTI_DEFAULT_PADDING_AFTER_ICON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_MIN_INC 0 60
+#define TICKERNOTI_DEFAULT_BUTTON_MIN_INC 154 74
+#define TICKERNOTI_DEFAULT_BUTTON_MAX_INC 154 74
+#define TICKERNOTI_DEFAULT_ICON_MIN_INC 64 64
+#define TICKERNOTI_DEFAULT_PADDING_BEFORE_BUTTON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_FONT_SIZE_INC 30
+#define TICKERNOTI_DEFAULT_TEXT2_FONT_SIZE_INC 24
+#define TICKERNOTI_INFO_BG_MIN_HEIGHT_INC 60
+#define TICKERNOTI_INFO_BG_PADDING_LEFT_TOP_INC 8 5
+#define TICKERNOTI_INFO_BG_PADDING_RIGHT_BOTTOM_INC 8 5
+#define TICKERNOTI_BG_PADDING_AFTER_ICON_INC 15 0
+#define TICKERNOTI_INFO_TEXT_FONT_SIZE_INC 28
+#define TICKERNOTI_TEXT_ONLY_TEXT_MIN_INC 0 64
+
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC 180 16
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_PADDING_SIZE 6
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_PADDING_SIZE 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_MATCHLIST_SCROLLBAR_BG_IMAGE_BORDER 13 13 10 15
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_PADDING_SIZE 6
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_PADDING_SIZE 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_MIN_SIZE_INC 180 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_RUNNER_BORDER 0 0 4 4
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_RUNNER_BORDER 4 4 0 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_OVER1 6 6 6 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_VBAR_OVER2 6 6 6 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_OVER1 6 6 6 0
+#define SCROLLER_MATCHLIST_SCROLLBAR_HBAR_OVER2 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_IMAGE "00_scroll_bar.png"
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_PADDING_SIZE 6
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_PADDING_SIZE 16
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_MIN_SIZE_INC 16 238
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_MAX_SIZE_INC 16 99999
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_MIN_SIZE_INC 180 16
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_MAX_SIZE_INC 99999 16
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_RUNNER_BORDER 0 0 4 4
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_RUNNER_BORDER 4 4 0 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_IMAGE_BORDER 5 10 5 10
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_OVER1 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_VBAR_OVER2 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_OVER1 6 6 6 0
+#define SCROLLER_PHOTOCAM_SCROLLBAR_HBAR_OVER2 6 6 6 0
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIN_SIZE_INC 54 220
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIN_SIZE_INC 220 54
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIDDLE_MIN_SIZE_INC 54 26
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIDDLE_MIN_SIZE_INC 26 54
+#define SCROLLER_HANDLER_SCROLLBAR_PADDING_INC 4
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_BOTTOM_BORDER 10 10 0 10
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_RIGHT_BORDER 0 10 10 10
+
+#define TOOLBAR_ITEM_SEPARATOR_LEFT_COLOR_INC 53 53 53 255
+#define TOOLBAR_ITEM_SEPARATOR_MIDDLE_COLOR_INC 0 0 0 255
+#define TOOLBAR_ITEM_SEPARATOR_RIGHT_COLOR_INC 25 25 25 255
+#define TOOLBAR_ITEM_BG_REL1_OFFSET_INC 4 4
+#define TOOLBAR_ITEM_BG_REL2_OFFSET_INC -5 -5
+#define TOOLBAR_ITEM_BG_SELECTED_BORDER_INC 3 3 3 3
+#define TABBAR_ITEM_TEXTBLOCK_COLOR_INC "#999999"
+#define TABBAR_ITEM_SELECTED_TEXTBLOCK_COLOR_INC "#3b73b6"
+#define TABBAR_ITEM_BG_DEFAULT_BORDER_INC 9 9 9 9
+#define TABBAR_ITEM_BG_DEFAULT_VISIBLE_INC 0
+#define TABBAR_ITEM_BG_DEFAULT_COLOR_INC 255 255 255 0
+#define TABBAR_DEFAULT_HEIGHT_INC 111
+#define TABBAR_ICON_TEXT_HEIGHT_INC 111
+#define TABBAR_HORIZONTAL_HEIGHT_INC 91
+#define TABBAR_HORIZONTAL_ICON_TEXT_HEIGHT_INC 91
+#define TABBAR_ITEM_ICON_SIZE_INC 68 68
+#define TABBAR_ITEM_SMALL_ICON_SIZE_INC 44 44
+
+#define CONFORMANT_INDICATOR_BG_DEFAULT_COLOR_INC 52 52 50 255
+#define CONFORMANT_INDICATOR_BG_TRANSLUCENT_COLOR_INC 0 0 0 125
+#define CONFORMANT_INDICATOR_BG_TRANSPARENT_COLOR_INC 0 0 0 0
diff --git a/data/edc/theme3/theme3.edc b/data/edc/theme3/theme3.edc
new file mode 100755 (executable)
index 0000000..37765e4
--- /dev/null
@@ -0,0 +1,8 @@
+collections {
+
+#include "list-base.edc"
+
+#include "gengrid.edc"
+
+#include "button.edc"
+}
diff --git a/data/images/hd/00_button_expand_closed.png b/data/images/hd/00_button_expand_closed.png
new file mode 100755 (executable)
index 0000000..01e9686
Binary files /dev/null and b/data/images/hd/00_button_expand_closed.png differ
diff --git a/data/images/hd/00_button_expand_opened.png b/data/images/hd/00_button_expand_opened.png
new file mode 100755 (executable)
index 0000000..22412c2
Binary files /dev/null and b/data/images/hd/00_button_expand_opened.png differ
diff --git a/data/images/hd/00_index list_bg.png b/data/images/hd/00_index list_bg.png
new file mode 100644 (file)
index 0000000..f41ec7c
Binary files /dev/null and b/data/images/hd/00_index list_bg.png differ
diff --git a/data/images/hd/00_list_bubble_bg.png b/data/images/hd/00_list_bubble_bg.png
new file mode 100644 (file)
index 0000000..84e1386
Binary files /dev/null and b/data/images/hd/00_list_bubble_bg.png differ
diff --git a/data/images/hd/00_list_group_bg.png b/data/images/hd/00_list_group_bg.png
new file mode 100644 (file)
index 0000000..1260007
Binary files /dev/null and b/data/images/hd/00_list_group_bg.png differ
diff --git a/data/images/hd/00_list_group_bg_bottom.png b/data/images/hd/00_list_group_bg_bottom.png
new file mode 100644 (file)
index 0000000..8e77e65
Binary files /dev/null and b/data/images/hd/00_list_group_bg_bottom.png differ
diff --git a/data/images/hd/00_list_group_bg_bottom_press.png b/data/images/hd/00_list_group_bg_bottom_press.png
new file mode 100644 (file)
index 0000000..0b676c0
Binary files /dev/null and b/data/images/hd/00_list_group_bg_bottom_press.png differ
diff --git a/data/images/hd/00_list_group_bg_center.png b/data/images/hd/00_list_group_bg_center.png
new file mode 100644 (file)
index 0000000..b8811e3
Binary files /dev/null and b/data/images/hd/00_list_group_bg_center.png differ
diff --git a/data/images/hd/00_list_group_bg_center_press.png b/data/images/hd/00_list_group_bg_center_press.png
new file mode 100644 (file)
index 0000000..ea8ddd9
Binary files /dev/null and b/data/images/hd/00_list_group_bg_center_press.png differ
diff --git a/data/images/hd/00_list_group_bg_press.png b/data/images/hd/00_list_group_bg_press.png
new file mode 100644 (file)
index 0000000..8da1a99
Binary files /dev/null and b/data/images/hd/00_list_group_bg_press.png differ
diff --git a/data/images/hd/00_list_group_bg_top.png b/data/images/hd/00_list_group_bg_top.png
new file mode 100644 (file)
index 0000000..5df3c01
Binary files /dev/null and b/data/images/hd/00_list_group_bg_top.png differ
diff --git a/data/images/hd/00_list_group_bg_top_press.png b/data/images/hd/00_list_group_bg_top_press.png
new file mode 100644 (file)
index 0000000..871c8ac
Binary files /dev/null and b/data/images/hd/00_list_group_bg_top_press.png differ
diff --git a/data/images/hd/00_list_img_check.png b/data/images/hd/00_list_img_check.png
new file mode 100644 (file)
index 0000000..a4cc8be
Binary files /dev/null and b/data/images/hd/00_list_img_check.png differ
diff --git a/data/images/hd/00_list_photo_default.png b/data/images/hd/00_list_photo_default.png
new file mode 100644 (file)
index 0000000..2d15281
Binary files /dev/null and b/data/images/hd/00_list_photo_default.png differ
diff --git a/data/images/hd/00_list_thumbnail_bg.png b/data/images/hd/00_list_thumbnail_bg.png
new file mode 100644 (file)
index 0000000..88522c5
Binary files /dev/null and b/data/images/hd/00_list_thumbnail_bg.png differ
diff --git a/data/images/hd/00_overscrolling_left.png b/data/images/hd/00_overscrolling_left.png
new file mode 100755 (executable)
index 0000000..7e0b28f
Binary files /dev/null and b/data/images/hd/00_overscrolling_left.png differ
diff --git a/data/images/hd/00_overscrolling_right.png b/data/images/hd/00_overscrolling_right.png
new file mode 100755 (executable)
index 0000000..1b30880
Binary files /dev/null and b/data/images/hd/00_overscrolling_right.png differ
diff --git a/data/images/hd/00_search_edit_field_bg_02.png b/data/images/hd/00_search_edit_field_bg_02.png
new file mode 100644 (file)
index 0000000..f53a8b5
Binary files /dev/null and b/data/images/hd/00_search_edit_field_bg_02.png differ
diff --git a/data/images/hd/00_title_btn_bg_press.png b/data/images/hd/00_title_btn_bg_press.png
new file mode 100755 (executable)
index 0000000..90a71c7
Binary files /dev/null and b/data/images/hd/00_title_btn_bg_press.png differ
diff --git a/data/images/hd/00_winset_control_tabbar_bg.png b/data/images/hd/00_winset_control_tabbar_bg.png
new file mode 100755 (executable)
index 0000000..4d9e32f
Binary files /dev/null and b/data/images/hd/00_winset_control_tabbar_bg.png differ
diff --git a/data/images/hd/00_winset_control_toolbar_bg.png b/data/images/hd/00_winset_control_toolbar_bg.png
new file mode 100755 (executable)
index 0000000..c46882d
Binary files /dev/null and b/data/images/hd/00_winset_control_toolbar_bg.png differ
diff --git a/data/images/hd/00_winset_control_top_arrow.png b/data/images/hd/00_winset_control_top_arrow.png
new file mode 100755 (executable)
index 0000000..508c2c8
Binary files /dev/null and b/data/images/hd/00_winset_control_top_arrow.png differ
diff --git a/data/images/hd/00_winset_control_top_bg.png b/data/images/hd/00_winset_control_top_bg.png
new file mode 100755 (executable)
index 0000000..d92230a
Binary files /dev/null and b/data/images/hd/00_winset_control_top_bg.png differ
diff --git a/data/images/hd/00_winset_title_bg.png b/data/images/hd/00_winset_title_bg.png
new file mode 100755 (executable)
index 0000000..2e7fc72
Binary files /dev/null and b/data/images/hd/00_winset_title_bg.png differ
diff --git a/data/images/hd/00_winset_title_line.png b/data/images/hd/00_winset_title_line.png
new file mode 100755 (executable)
index 0000000..e287978
Binary files /dev/null and b/data/images/hd/00_winset_title_line.png differ
diff --git a/data/images/hd/01_controlbar_icon_View.png b/data/images/hd/01_controlbar_icon_View.png
new file mode 100755 (executable)
index 0000000..a8c0fee
Binary files /dev/null and b/data/images/hd/01_controlbar_icon_View.png differ
diff --git a/data/images/hd/01_controlbar_icon_calendars.png b/data/images/hd/01_controlbar_icon_calendars.png
new file mode 100755 (executable)
index 0000000..0c4bd1f
Binary files /dev/null and b/data/images/hd/01_controlbar_icon_calendars.png differ
diff --git a/data/images/hd/01_controlbar_icon_create.png b/data/images/hd/01_controlbar_icon_create.png
new file mode 100755 (executable)
index 0000000..0dc1144
Binary files /dev/null and b/data/images/hd/01_controlbar_icon_create.png differ
diff --git a/data/images/hd/01_controlbar_icon_today.png b/data/images/hd/01_controlbar_icon_today.png
new file mode 100755 (executable)
index 0000000..0e9013f
Binary files /dev/null and b/data/images/hd/01_controlbar_icon_today.png differ
diff --git a/data/images/hd/01_dialoguegroup_edit_default.png b/data/images/hd/01_dialoguegroup_edit_default.png
new file mode 100644 (file)
index 0000000..1de7666
Binary files /dev/null and b/data/images/hd/01_dialoguegroup_edit_default.png differ
diff --git a/data/images/hd/01_header_icon_add.png b/data/images/hd/01_header_icon_add.png
new file mode 100644 (file)
index 0000000..43c4984
Binary files /dev/null and b/data/images/hd/01_header_icon_add.png differ
diff --git a/data/images/hd/01_header_icon_done.png b/data/images/hd/01_header_icon_done.png
new file mode 100644 (file)
index 0000000..d771640
Binary files /dev/null and b/data/images/hd/01_header_icon_done.png differ
diff --git a/data/images/hd/01_header_icon_others.png b/data/images/hd/01_header_icon_others.png
new file mode 100644 (file)
index 0000000..4fc9dfa
Binary files /dev/null and b/data/images/hd/01_header_icon_others.png differ
diff --git a/data/images/hd/01_navi_icon_delete.png b/data/images/hd/01_navi_icon_delete.png
new file mode 100644 (file)
index 0000000..4f0f16e
Binary files /dev/null and b/data/images/hd/01_navi_icon_delete.png differ
diff --git a/data/images/hd/01_navi_icon_edit.png b/data/images/hd/01_navi_icon_edit.png
new file mode 100644 (file)
index 0000000..19e577a
Binary files /dev/null and b/data/images/hd/01_navi_icon_edit.png differ
diff --git a/data/images/hd/01_navi_icon_new.png b/data/images/hd/01_navi_icon_new.png
new file mode 100644 (file)
index 0000000..290e2a5
Binary files /dev/null and b/data/images/hd/01_navi_icon_new.png differ
diff --git a/data/images/hd/49_memo_noitems.png b/data/images/hd/49_memo_noitems.png
new file mode 100644 (file)
index 0000000..5ce0a82
Binary files /dev/null and b/data/images/hd/49_memo_noitems.png differ
diff --git a/data/images/hd/57_calendar_bg2.png b/data/images/hd/57_calendar_bg2.png
new file mode 100644 (file)
index 0000000..3d3d899
Binary files /dev/null and b/data/images/hd/57_calendar_bg2.png differ
diff --git a/data/images/hd/57_calendar_event(1)_bg.png b/data/images/hd/57_calendar_event(1)_bg.png
new file mode 100644 (file)
index 0000000..2494550
Binary files /dev/null and b/data/images/hd/57_calendar_event(1)_bg.png differ
diff --git a/data/images/hd/57_calendar_event(2)_bg.png b/data/images/hd/57_calendar_event(2)_bg.png
new file mode 100644 (file)
index 0000000..66015cf
Binary files /dev/null and b/data/images/hd/57_calendar_event(2)_bg.png differ
diff --git a/data/images/hd/57_calendar_event(3)_bg.png b/data/images/hd/57_calendar_event(3)_bg.png
new file mode 100644 (file)
index 0000000..b2a8c74
Binary files /dev/null and b/data/images/hd/57_calendar_event(3)_bg.png differ
diff --git a/data/images/hd/57_calendar_event(4)_bg.png b/data/images/hd/57_calendar_event(4)_bg.png
new file mode 100644 (file)
index 0000000..85e658d
Binary files /dev/null and b/data/images/hd/57_calendar_event(4)_bg.png differ
diff --git a/data/images/hd/57_calendar_month_view(1)_bg.png b/data/images/hd/57_calendar_month_view(1)_bg.png
new file mode 100644 (file)
index 0000000..f6a766b
Binary files /dev/null and b/data/images/hd/57_calendar_month_view(1)_bg.png differ
diff --git a/data/images/hd/57_calendar_spin_01_icon.png b/data/images/hd/57_calendar_spin_01_icon.png
new file mode 100644 (file)
index 0000000..baa0c2c
Binary files /dev/null and b/data/images/hd/57_calendar_spin_01_icon.png differ
diff --git a/data/images/hd/57_calendar_spin_02_icon.png b/data/images/hd/57_calendar_spin_02_icon.png
new file mode 100644 (file)
index 0000000..7aa0439
Binary files /dev/null and b/data/images/hd/57_calendar_spin_02_icon.png differ
diff --git a/data/images/hd/57_calendar_tab.png b/data/images/hd/57_calendar_tab.png
new file mode 100644 (file)
index 0000000..bc99de5
Binary files /dev/null and b/data/images/hd/57_calendar_tab.png differ
diff --git a/data/images/hd/57_calendar_tab_focus_bg.png b/data/images/hd/57_calendar_tab_focus_bg.png
new file mode 100644 (file)
index 0000000..1396f00
Binary files /dev/null and b/data/images/hd/57_calendar_tab_focus_bg.png differ
diff --git a/data/images/hd/57_calendar_tab_press.png b/data/images/hd/57_calendar_tab_press.png
new file mode 100644 (file)
index 0000000..71f0019
Binary files /dev/null and b/data/images/hd/57_calendar_tab_press.png differ
diff --git a/data/images/hd/57_calendar_today_icon.png b/data/images/hd/57_calendar_today_icon.png
new file mode 100644 (file)
index 0000000..6c37aed
Binary files /dev/null and b/data/images/hd/57_calendar_today_icon.png differ
diff --git a/data/images/hd/57_calendar_today_icon2.png b/data/images/hd/57_calendar_today_icon2.png
new file mode 100644 (file)
index 0000000..32121d9
Binary files /dev/null and b/data/images/hd/57_calendar_today_icon2.png differ
diff --git a/data/images/hd/57_calendar_today_icon_press.png b/data/images/hd/57_calendar_today_icon_press.png
new file mode 100644 (file)
index 0000000..fc81fc5
Binary files /dev/null and b/data/images/hd/57_calendar_today_icon_press.png differ
diff --git a/data/images/hd/57_calendar_week_arrow_focus_icon.png b/data/images/hd/57_calendar_week_arrow_focus_icon.png
new file mode 100644 (file)
index 0000000..273436c
Binary files /dev/null and b/data/images/hd/57_calendar_week_arrow_focus_icon.png differ
diff --git a/data/images/hd/57_calendar_week_arrow_icon.png b/data/images/hd/57_calendar_week_arrow_icon.png
new file mode 100644 (file)
index 0000000..c9299d2
Binary files /dev/null and b/data/images/hd/57_calendar_week_arrow_icon.png differ
diff --git a/data/images/hd/57_calendar_week_view_bg.png b/data/images/hd/57_calendar_week_view_bg.png
new file mode 100644 (file)
index 0000000..85e56d8
Binary files /dev/null and b/data/images/hd/57_calendar_week_view_bg.png differ
diff --git a/data/images/hd/57_calendar_week_view_press.png b/data/images/hd/57_calendar_week_view_press.png
new file mode 100644 (file)
index 0000000..a400965
Binary files /dev/null and b/data/images/hd/57_calendar_week_view_press.png differ
diff --git a/data/images/hd/57_calendar_year_view_bg.png b/data/images/hd/57_calendar_year_view_bg.png
new file mode 100644 (file)
index 0000000..5fce79a
Binary files /dev/null and b/data/images/hd/57_calendar_year_view_bg.png differ
diff --git a/data/images/hd/P01_Tap_normal.png b/data/images/hd/P01_Tap_normal.png
new file mode 100755 (executable)
index 0000000..99c30dd
Binary files /dev/null and b/data/images/hd/P01_Tap_normal.png differ
diff --git a/data/images/hd/P01_Tap_press.png b/data/images/hd/P01_Tap_press.png
new file mode 100755 (executable)
index 0000000..8cdba75
Binary files /dev/null and b/data/images/hd/P01_Tap_press.png differ
diff --git a/data/images/hd/P01_Task_event.png b/data/images/hd/P01_Task_event.png
new file mode 100755 (executable)
index 0000000..abdbdff
Binary files /dev/null and b/data/images/hd/P01_Task_event.png differ
diff --git a/data/images/hd/P01_Task_event_completion.png b/data/images/hd/P01_Task_event_completion.png
new file mode 100755 (executable)
index 0000000..97b2c09
Binary files /dev/null and b/data/images/hd/P01_Task_event_completion.png differ
diff --git a/data/images/hd/P01_Task_event_completion_press.png b/data/images/hd/P01_Task_event_completion_press.png
new file mode 100755 (executable)
index 0000000..8067f84
Binary files /dev/null and b/data/images/hd/P01_Task_event_completion_press.png differ
diff --git a/data/images/hd/P01_bg.png b/data/images/hd/P01_bg.png
new file mode 100644 (file)
index 0000000..2157db9
Binary files /dev/null and b/data/images/hd/P01_bg.png differ
diff --git a/data/images/hd/P01_control_top_bg.png b/data/images/hd/P01_control_top_bg.png
new file mode 100644 (file)
index 0000000..5c99fbc
Binary files /dev/null and b/data/images/hd/P01_control_top_bg.png differ
diff --git a/data/images/hd/P01_control_top_bg_tmp.png b/data/images/hd/P01_control_top_bg_tmp.png
new file mode 100644 (file)
index 0000000..c66b5b8
Binary files /dev/null and b/data/images/hd/P01_control_top_bg_tmp.png differ
diff --git a/data/images/hd/P01_day_current_time.png b/data/images/hd/P01_day_current_time.png
new file mode 100755 (executable)
index 0000000..c9b1089
Binary files /dev/null and b/data/images/hd/P01_day_current_time.png differ
diff --git a/data/images/hd/P01_day_event_bg_01.png b/data/images/hd/P01_day_event_bg_01.png
new file mode 100755 (executable)
index 0000000..514f00e
Binary files /dev/null and b/data/images/hd/P01_day_event_bg_01.png differ
diff --git a/data/images/hd/P01_day_event_bg_01_press.png b/data/images/hd/P01_day_event_bg_01_press.png
new file mode 100755 (executable)
index 0000000..9934416
Binary files /dev/null and b/data/images/hd/P01_day_event_bg_01_press.png differ
diff --git a/data/images/hd/P01_day_event_bg_02.png b/data/images/hd/P01_day_event_bg_02.png
new file mode 100755 (executable)
index 0000000..2cc0a60
Binary files /dev/null and b/data/images/hd/P01_day_event_bg_02.png differ
diff --git a/data/images/hd/P01_day_event_bg_02_press.png b/data/images/hd/P01_day_event_bg_02_press.png
new file mode 100755 (executable)
index 0000000..cfc86f5
Binary files /dev/null and b/data/images/hd/P01_day_event_bg_02_press.png differ
diff --git a/data/images/hd/P01_day_event_bg_02_strok.png b/data/images/hd/P01_day_event_bg_02_strok.png
new file mode 100755 (executable)
index 0000000..cae4aed
Binary files /dev/null and b/data/images/hd/P01_day_event_bg_02_strok.png differ
diff --git a/data/images/hd/P01_day_event_bg_03.png b/data/images/hd/P01_day_event_bg_03.png
new file mode 100755 (executable)
index 0000000..5d707b7
Binary files /dev/null and b/data/images/hd/P01_day_event_bg_03.png differ
diff --git a/data/images/hd/P01_day_event_bg_03_press.png b/data/images/hd/P01_day_event_bg_03_press.png
new file mode 100755 (executable)
index 0000000..a2f3825
Binary files /dev/null and b/data/images/hd/P01_day_event_bg_03_press.png differ
diff --git a/data/images/hd/P01_day_event_bg_04.png b/data/images/hd/P01_day_event_bg_04.png
new file mode 100755 (executable)
index 0000000..dcbcf3e
Binary files /dev/null and b/data/images/hd/P01_day_event_bg_04.png differ
diff --git a/data/images/hd/P01_day_event_bg_04_press.png b/data/images/hd/P01_day_event_bg_04_press.png
new file mode 100755 (executable)
index 0000000..e177c88
Binary files /dev/null and b/data/images/hd/P01_day_event_bg_04_press.png differ
diff --git a/data/images/hd/P01_day_expand_all_event.png b/data/images/hd/P01_day_expand_all_event.png
new file mode 100755 (executable)
index 0000000..6565d49
Binary files /dev/null and b/data/images/hd/P01_day_expand_all_event.png differ
diff --git a/data/images/hd/P01_day_expand_all_event_1.png b/data/images/hd/P01_day_expand_all_event_1.png
new file mode 100755 (executable)
index 0000000..c00b34b
Binary files /dev/null and b/data/images/hd/P01_day_expand_all_event_1.png differ
diff --git a/data/images/hd/P01_event.png b/data/images/hd/P01_event.png
new file mode 100644 (file)
index 0000000..9beb806
Binary files /dev/null and b/data/images/hd/P01_event.png differ
diff --git a/data/images/hd/P01_event_index_bg.png b/data/images/hd/P01_event_index_bg.png
new file mode 100755 (executable)
index 0000000..318103e
Binary files /dev/null and b/data/images/hd/P01_event_index_bg.png differ
diff --git a/data/images/hd/P01_event_index_icon_close.png b/data/images/hd/P01_event_index_icon_close.png
new file mode 100755 (executable)
index 0000000..dc1114e
Binary files /dev/null and b/data/images/hd/P01_event_index_icon_close.png differ
diff --git a/data/images/hd/P01_event_index_icon_close_press.png b/data/images/hd/P01_event_index_icon_close_press.png
new file mode 100755 (executable)
index 0000000..6a6dfe1
Binary files /dev/null and b/data/images/hd/P01_event_index_icon_close_press.png differ
diff --git a/data/images/hd/P01_event_index_icon_open.png b/data/images/hd/P01_event_index_icon_open.png
new file mode 100755 (executable)
index 0000000..a2b76fd
Binary files /dev/null and b/data/images/hd/P01_event_index_icon_open.png differ
diff --git a/data/images/hd/P01_event_index_icon_open_press.png b/data/images/hd/P01_event_index_icon_open_press.png
new file mode 100755 (executable)
index 0000000..ba1a100
Binary files /dev/null and b/data/images/hd/P01_event_index_icon_open_press.png differ
diff --git a/data/images/hd/P01_event_list_icon_alarm.png b/data/images/hd/P01_event_list_icon_alarm.png
new file mode 100755 (executable)
index 0000000..be6a07e
Binary files /dev/null and b/data/images/hd/P01_event_list_icon_alarm.png differ
diff --git a/data/images/hd/P01_event_list_icon_facebook.png b/data/images/hd/P01_event_list_icon_facebook.png
new file mode 100755 (executable)
index 0000000..99a6c81
Binary files /dev/null and b/data/images/hd/P01_event_list_icon_facebook.png differ
diff --git a/data/images/hd/P01_event_list_icon_priority.png b/data/images/hd/P01_event_list_icon_priority.png
new file mode 100755 (executable)
index 0000000..5f02f10
Binary files /dev/null and b/data/images/hd/P01_event_list_icon_priority.png differ
diff --git a/data/images/hd/P01_event_list_icon_reapeat.png b/data/images/hd/P01_event_list_icon_reapeat.png
new file mode 100755 (executable)
index 0000000..7690555
Binary files /dev/null and b/data/images/hd/P01_event_list_icon_reapeat.png differ
diff --git a/data/images/hd/P01_event_list_icon_reminder.png b/data/images/hd/P01_event_list_icon_reminder.png
new file mode 100755 (executable)
index 0000000..c6b2f79
Binary files /dev/null and b/data/images/hd/P01_event_list_icon_reminder.png differ
diff --git a/data/images/hd/P01_icon_title_arrow_l.png b/data/images/hd/P01_icon_title_arrow_l.png
new file mode 100755 (executable)
index 0000000..5b4154e
Binary files /dev/null and b/data/images/hd/P01_icon_title_arrow_l.png differ
diff --git a/data/images/hd/P01_icon_title_arrow_l_press.png b/data/images/hd/P01_icon_title_arrow_l_press.png
new file mode 100755 (executable)
index 0000000..cb3fae2
Binary files /dev/null and b/data/images/hd/P01_icon_title_arrow_l_press.png differ
diff --git a/data/images/hd/P01_icon_title_arrow_r.png b/data/images/hd/P01_icon_title_arrow_r.png
new file mode 100755 (executable)
index 0000000..e59f7d8
Binary files /dev/null and b/data/images/hd/P01_icon_title_arrow_r.png differ
diff --git a/data/images/hd/P01_icon_title_arrow_r_press.png b/data/images/hd/P01_icon_title_arrow_r_press.png
new file mode 100755 (executable)
index 0000000..370652c
Binary files /dev/null and b/data/images/hd/P01_icon_title_arrow_r_press.png differ
diff --git a/data/images/hd/P01_month view_Today.png b/data/images/hd/P01_month view_Today.png
new file mode 100755 (executable)
index 0000000..3805478
Binary files /dev/null and b/data/images/hd/P01_month view_Today.png differ
diff --git a/data/images/hd/P01_month view_Today_focus.png b/data/images/hd/P01_month view_Today_focus.png
new file mode 100755 (executable)
index 0000000..6035762
Binary files /dev/null and b/data/images/hd/P01_month view_Today_focus.png differ
diff --git a/data/images/hd/P01_month view_day_event_dim.png b/data/images/hd/P01_month view_day_event_dim.png
new file mode 100755 (executable)
index 0000000..c80f6ec
Binary files /dev/null and b/data/images/hd/P01_month view_day_event_dim.png differ
diff --git a/data/images/hd/P01_month view_day_focus.png b/data/images/hd/P01_month view_day_focus.png
new file mode 100755 (executable)
index 0000000..73f401e
Binary files /dev/null and b/data/images/hd/P01_month view_day_focus.png differ
diff --git a/data/images/hd/P01_month_view_event_bg.png b/data/images/hd/P01_month_view_event_bg.png
new file mode 100755 (executable)
index 0000000..ed9f1c0
Binary files /dev/null and b/data/images/hd/P01_month_view_event_bg.png differ
diff --git a/data/images/hd/P01_month_view_focus_bg.png b/data/images/hd/P01_month_view_focus_bg.png
new file mode 100755 (executable)
index 0000000..c2983fb
Binary files /dev/null and b/data/images/hd/P01_month_view_focus_bg.png differ
diff --git a/data/images/hd/P01_noschedule.png b/data/images/hd/P01_noschedule.png
new file mode 100644 (file)
index 0000000..102f9bb
Binary files /dev/null and b/data/images/hd/P01_noschedule.png differ
diff --git a/data/images/hd/P01_spin_left.png b/data/images/hd/P01_spin_left.png
new file mode 100755 (executable)
index 0000000..d2d642a
Binary files /dev/null and b/data/images/hd/P01_spin_left.png differ
diff --git a/data/images/hd/P01_spin_left_press.png b/data/images/hd/P01_spin_left_press.png
new file mode 100755 (executable)
index 0000000..bd1d84a
Binary files /dev/null and b/data/images/hd/P01_spin_left_press.png differ
diff --git a/data/images/hd/P01_spin_right.png b/data/images/hd/P01_spin_right.png
new file mode 100755 (executable)
index 0000000..01cb9c3
Binary files /dev/null and b/data/images/hd/P01_spin_right.png differ
diff --git a/data/images/hd/P01_spin_right_press.png b/data/images/hd/P01_spin_right_press.png
new file mode 100755 (executable)
index 0000000..5b24bc4
Binary files /dev/null and b/data/images/hd/P01_spin_right_press.png differ
diff --git a/data/images/hd/P01_tab_bg.png b/data/images/hd/P01_tab_bg.png
new file mode 100644 (file)
index 0000000..33371ff
Binary files /dev/null and b/data/images/hd/P01_tab_bg.png differ
diff --git a/data/images/hd/P01_tab_default.png b/data/images/hd/P01_tab_default.png
new file mode 100644 (file)
index 0000000..3c791c0
Binary files /dev/null and b/data/images/hd/P01_tab_default.png differ
diff --git a/data/images/hd/P01_tab_focus.png b/data/images/hd/P01_tab_focus.png
new file mode 100644 (file)
index 0000000..61d0fc9
Binary files /dev/null and b/data/images/hd/P01_tab_focus.png differ
diff --git a/data/images/hd/P01_tab_press.png b/data/images/hd/P01_tab_press.png
new file mode 100644 (file)
index 0000000..8eaa853
Binary files /dev/null and b/data/images/hd/P01_tab_press.png differ
diff --git a/data/images/hd/P01_title_bg.png b/data/images/hd/P01_title_bg.png
new file mode 100644 (file)
index 0000000..1666b3b
Binary files /dev/null and b/data/images/hd/P01_title_bg.png differ
diff --git a/data/images/hd/P01_title_bg_tmp.png b/data/images/hd/P01_title_bg_tmp.png
new file mode 100644 (file)
index 0000000..434e03f
Binary files /dev/null and b/data/images/hd/P01_title_bg_tmp.png differ
diff --git a/data/images/hd/P01_title_left.png b/data/images/hd/P01_title_left.png
new file mode 100755 (executable)
index 0000000..889340f
Binary files /dev/null and b/data/images/hd/P01_title_left.png differ
diff --git a/data/images/hd/P01_title_left_press.png b/data/images/hd/P01_title_left_press.png
new file mode 100755 (executable)
index 0000000..dc54e73
Binary files /dev/null and b/data/images/hd/P01_title_left_press.png differ
diff --git a/data/images/hd/P01_title_right.png b/data/images/hd/P01_title_right.png
new file mode 100755 (executable)
index 0000000..fa70d2b
Binary files /dev/null and b/data/images/hd/P01_title_right.png differ
diff --git a/data/images/hd/P01_title_right_press.png b/data/images/hd/P01_title_right_press.png
new file mode 100755 (executable)
index 0000000..4d09313
Binary files /dev/null and b/data/images/hd/P01_title_right_press.png differ
diff --git a/data/images/hd/P01_week_view_icon_close.png b/data/images/hd/P01_week_view_icon_close.png
new file mode 100755 (executable)
index 0000000..ded9118
Binary files /dev/null and b/data/images/hd/P01_week_view_icon_close.png differ
diff --git a/data/images/hd/P01_week_view_icon_open.png b/data/images/hd/P01_week_view_icon_open.png
new file mode 100755 (executable)
index 0000000..c03201f
Binary files /dev/null and b/data/images/hd/P01_week_view_icon_open.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_01_02_30_33.png b/data/images/hd/P01_wheather_today_bg_01_02_30_33.png
new file mode 100755 (executable)
index 0000000..252780f
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_01_02_30_33.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_03_04_05_34_35_36_37_38.png b/data/images/hd/P01_wheather_today_bg_03_04_05_34_35_36_37_38.png
new file mode 100755 (executable)
index 0000000..8629904
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_03_04_05_34_35_36_37_38.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_06_07_08_09_10_11_32.png b/data/images/hd/P01_wheather_today_bg_06_07_08_09_10_11_32.png
new file mode 100755 (executable)
index 0000000..7301324
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_06_07_08_09_10_11_32.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_12_13_18_24_25_26_39_40.png b/data/images/hd/P01_wheather_today_bg_12_13_18_24_25_26_39_40.png
new file mode 100755 (executable)
index 0000000..12edd5e
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_12_13_18_24_25_26_39_40.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_14.png b/data/images/hd/P01_wheather_today_bg_14.png
new file mode 100755 (executable)
index 0000000..9ea1412
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_14.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_15_41_42.png b/data/images/hd/P01_wheather_today_bg_15_41_42.png
new file mode 100755 (executable)
index 0000000..60347e7
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_15_41_42.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_16_17.png b/data/images/hd/P01_wheather_today_bg_16_17.png
new file mode 100755 (executable)
index 0000000..d789f32
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_16_17.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_19_22_23_31_44.png b/data/images/hd/P01_wheather_today_bg_19_22_23_31_44.png
new file mode 100755 (executable)
index 0000000..15ddeb4
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_19_22_23_31_44.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_20_21.png b/data/images/hd/P01_wheather_today_bg_20_21.png
new file mode 100755 (executable)
index 0000000..7da11dc
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_20_21.png differ
diff --git a/data/images/hd/P01_wheather_today_bg_27_28_29.png b/data/images/hd/P01_wheather_today_bg_27_28_29.png
new file mode 100755 (executable)
index 0000000..683ed61
Binary files /dev/null and b/data/images/hd/P01_wheather_today_bg_27_28_29.png differ
diff --git a/data/images/hd/P01_year_day_focus.png b/data/images/hd/P01_year_day_focus.png
new file mode 100755 (executable)
index 0000000..3829dd7
Binary files /dev/null and b/data/images/hd/P01_year_day_focus.png differ
diff --git a/data/images/hd/P01_year_month_focus.png b/data/images/hd/P01_year_month_focus.png
new file mode 100755 (executable)
index 0000000..aef47d6
Binary files /dev/null and b/data/images/hd/P01_year_month_focus.png differ
diff --git a/data/images/hd/T01_controlbar_icon_delete.png b/data/images/hd/T01_controlbar_icon_delete.png
new file mode 100755 (executable)
index 0000000..2b0f808
Binary files /dev/null and b/data/images/hd/T01_controlbar_icon_delete.png differ
diff --git a/data/images/hd/T01_controlbar_icon_edit.png b/data/images/hd/T01_controlbar_icon_edit.png
new file mode 100755 (executable)
index 0000000..0c59cb7
Binary files /dev/null and b/data/images/hd/T01_controlbar_icon_edit.png differ
diff --git a/data/images/hd/T01_controlbar_icon_share02.png b/data/images/hd/T01_controlbar_icon_share02.png
new file mode 100755 (executable)
index 0000000..f21b00c
Binary files /dev/null and b/data/images/hd/T01_controlbar_icon_share02.png differ
diff --git a/data/images/hd/all_calendar.png b/data/images/hd/all_calendar.png
new file mode 100644 (file)
index 0000000..a89d387
Binary files /dev/null and b/data/images/hd/all_calendar.png differ
diff --git a/data/images/hd/calendar_selected.png b/data/images/hd/calendar_selected.png
new file mode 100644 (file)
index 0000000..e0c19d4
Binary files /dev/null and b/data/images/hd/calendar_selected.png differ
diff --git a/data/images/hd/navibar_item_separator.png b/data/images/hd/navibar_item_separator.png
new file mode 100644 (file)
index 0000000..cf080bb
Binary files /dev/null and b/data/images/hd/navibar_item_separator.png differ
diff --git a/data/images/hd/navibar_item_separator_tmp.png b/data/images/hd/navibar_item_separator_tmp.png
new file mode 100644 (file)
index 0000000..4bbde83
Binary files /dev/null and b/data/images/hd/navibar_item_separator_tmp.png differ
diff --git a/data/images/hd/org.tizen.calendar.png b/data/images/hd/org.tizen.calendar.png
new file mode 100755 (executable)
index 0000000..84e3670
Binary files /dev/null and b/data/images/hd/org.tizen.calendar.png differ
diff --git a/include/acct-svc.h b/include/acct-svc.h
new file mode 100755 (executable)
index 0000000..d75b0d1
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_ACCOUNT_SVC_H__
+#define __CALENDAR_ACCOUNT_SVC_H__
+
+#include <account.h>
+#include <account-types.h>
+
+#include "cld.h"
+
+struct _acct {
+       int id;
+       char *name;
+       char *icon;
+       char *domain;
+       void *data;
+       Evas_Object* check;
+};
+
+#define CAL_ACCOUNT_SVC_STRUCT_GET_INT(acct, field, r) account_svc_get_value_int(acct, field, r);
+#define CAL_ACCOUNT_SVC_STRUCT_GET_STR(acct, field, r) account_svc_get_value_str(acct, field, r);
+
+Eina_List* cal_account_svc_get_account_list(void);
+void cal_account_svc_free_account_list(Eina_List **); // don't care about "data"
+char* cal_account_svc_get_account_icon_path(int account_id);
+char* cal_account_svc_get_account_name(int account_id);
+#endif /* __CALENDAR_ACCOUNT_SVC_H__ */
+
diff --git a/include/cal-svc.h b/include/cal-svc.h
new file mode 100755 (executable)
index 0000000..133531d
--- /dev/null
@@ -0,0 +1,176 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_CAL_SVC_H__
+#define __CALENDAR_CAL_SVC_H__
+
+#include <fcntl.h>
+#include <time.h>
+#include <Elementary.h>
+
+#define _CALENDAR_ALL_ACCOUNT_ID 0
+#define _CALENDAR_LOCAL_ACCOUNT_ID -1
+
+#define CAL_REPEAT_EVERY_2_WEEK (CALENDAR_RECURRENCE_YEARLY+100)
+#define CAL_REPEAT_EVERY_3_DAY (CAL_REPEAT_EVERY_2_WEEK+1)
+
+#define CAL_GRID_ITEM_KEY_SNOTE "snote"
+#define CAL_GRID_ITEM_KEY_PHOTO "photo"
+
+#define _calendar_show_error(error) \
+       do { \
+               switch (error) { \
+                       case CALENDAR_ERROR_OUT_OF_MEMORY: \
+                               ERR("CALENDAR_ERROR_OUT_OF_MEMORY"); \
+                               break; \
+                       case CALENDAR_ERROR_INVALID_PARAMETER: \
+                               ERR("CALENDAR_ERROR_INVALID_PARAMETER"); \
+                               break; \
+                       case CALENDAR_ERROR_NO_DATA: \
+                               ERR("CALENDAR_ERROR_NO_DATA"); \
+                               break; \
+                       case CALENDAR_ERROR_DB_RECORD_NOT_FOUND: \
+                               ERR("CALENDAR_ERROR_DB_RECORD_NOT_FOUND"); \
+                               break; \
+                       case CALENDAR_ERROR_ITERATOR_END: \
+                               ERR("CALENDAR_ERROR_ITERATOR_END"); \
+                               break; \
+                       case CALENDAR_ERROR_NOW_IN_PROGRESS: \
+                               ERR("CALENDAR_ERROR_NOW_IN_PROGRESS"); \
+                               break; \
+                       case CALENDAR_ERROR_ALREADY_IN_PROGRESS: \
+                               ERR("CALENDAR_ERROR_ALREADY_IN_PROGRESS"); \
+                               break; \
+                       case CALENDAR_ERROR_NOT_PERMITTED: \
+                               ERR("CALENDAR_ERROR_NOT_PERMITTED"); \
+                               break; \
+                       case CALENDAR_ERROR_DB_FAILED: \
+                               ERR("CALENDAR_ERROR_DB_FAILED"); \
+                               break; \
+                       case CALENDAR_ERROR_IPC: \
+                               ERR("CALENDAR_ERROR_IPC"); \
+                               break; \
+                       case CALENDAR_ERROR_NONE: \
+                               break; \
+                       default: \
+                               ERR("Unknown error!!!"); \
+                               break; \
+               } \
+       } while (0);\
+
+typedef struct {
+       int red;
+       int green;
+       int blue;
+       int alpha;
+} _calendar_book_color;
+
+typedef enum {
+       _CALENDAR_RECORD_TYPE_CALENDARBOOK,
+       _CALENDAR_RECORD_TYPE_EVENT,
+       _CALENDAR_RECORD_TYPE_TODO,
+       _CALENDAR_RECORD_TYPE_TIMEZONE,
+       _CALENDAR_RECORD_TYPE_ATTENDEE,
+       _CALENDAR_RECORD_TYPE_ALARM,
+       _CALENDAR_RECORD_TYPE_UPDATED_INFO,
+       _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR,
+       _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR,
+       _CALENDAR_RECORD_TYPE_SEARCH_EVENT_CALENDAR_ATTENDEE,
+       _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_NORMAL_CALENDAR,
+       _CALENDAR_RECORD_TYPE_SEARCH_INSTANCE_ALLDAY_CALENDAR,
+       _CALENDAR_RECORD_TYPE_EXTENDED_PROPERTY,
+       _CALENDAR_RECORD_TYPE_MAX,
+}_calendar_record_type;
+
+typedef enum {
+       _CALENDAR_TASK_SORT_TYPE_NONE,
+       _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC,
+       _CALENDAR_TASK_SORT_TYPE_DUEDATE_DES,
+       _CALENDAR_TASK_SORT_TYPE_PRIORITY_ASC,
+       _CALENDAR_TASK_SORT_TYPE_PRIORITY_DES,
+       _CALENDAR_TASK_SORT_TYPE_STATUS_ASC,
+       _CALENDAR_TASK_SORT_TYPE_STATUS_DES,
+       _CALENDAR_TASK_SORT_TYPE_MAX,
+}_calendar_task_sort_type;
+
+void _calendar_init_hash();
+
+int * _calendar_get_month(struct tm *start, struct tm *end, int is_display_completed_todo);
+
+Eina_List * _calendar_get_normal_instance_list(struct tm *start, struct tm *end);
+Eina_List * _calendar_get_allday_instance_list(struct tm *start, struct tm *end);
+Eina_List * _calendar_get_all_instance_list(struct tm *start, struct tm *end);
+Eina_List * _calendar_get_all_record_list(void);
+Eina_List * _calendar_get_due_date_task_list(struct tm *start, struct tm *end, Eina_Bool is_completed_todo, _calendar_task_sort_type sort_type);
+Eina_List * _calendar_get_calendar_book_list_with_account_id(int account_id);
+
+void _calendar_free_record_list(Eina_List **record_list);
+
+calendar_list_h _calendar_get_normal_instance_list_handler(struct tm *start, struct tm *end);
+calendar_list_h _calendar_get_allday_instance_list_handler(struct tm *start, struct tm *end);
+calendar_list_h _calendar_get_all_task_list(struct tm *start, struct tm *end, Eina_Bool is_show_completed_task, _calendar_task_sort_type sort_type);
+Eina_List* _calendar_get_all_task_list2(struct tm *start, struct tm *end, Eina_Bool is_show_completed_task, _calendar_task_sort_type sort_type);
+calendar_list_h _calendar_get_task_list_handler(struct tm *start, struct tm *end, Eina_Bool is_show_completed_task, _calendar_task_sort_type sort_type);
+calendar_list_h _calendar_search_event(const char *keyword);
+calendar_list_h _calendar_search_task(const char *keyword);
+
+_calendar_record_type _calendar_get_record_type(calendar_record_h record);
+
+Eina_Bool _calendar_is_task_record(calendar_record_h record);
+Eina_Bool _calendar_is_allday_record(calendar_record_h record);
+Eina_Bool _calendar_is_recurrent_record(calendar_record_h record);
+Eina_Bool _calendar_has_reminder(calendar_record_h record);
+Eina_Bool _calendar_is_eas_record(calendar_record_h record);
+Eina_Bool _calendar_is_facebook_record(calendar_record_h record);
+
+char* _calendar_get_summary(calendar_record_h record);
+char* _calendar_get_location(calendar_record_h record);
+
+int _calendar_get_record_index(calendar_record_h record);
+int _calendar_get_calendar_index(calendar_record_h record);
+int _calendar_get_account_id(calendar_record_h record);
+char * _calendar_get_calendar_name(calendar_record_h record);
+void _calendar_get_calendar_color(calendar_record_h record, _calendar_book_color* calendar_color);
+
+void _calendar_get_start_time(calendar_record_h record, calendar_time_s *start_time);
+void _calendar_get_end_time(calendar_record_h record, calendar_time_s *end_time);
+void _calendar_set_start_time(calendar_record_h record, calendar_time_s *start_time);
+void _calendar_set_end_time(calendar_record_h record, calendar_time_s *end_time);
+char * _calendar_get_time_str(calendar_time_s *time, const char *date_format, const char *time_format);
+char * _calendar_get_time_str_for_genlist(calendar_record_h record);
+void _calendar_convert_calendar_time_to_tm(calendar_time_s *time, struct tm *tm);
+
+void _calendar_delete_record_with_index(int index);
+void _calendar_delete_record(calendar_record_h record);
+
+void _calendar_delete_recurrence_instance(calendar_record_h instance);
+void _calendar_edit_recurrence_instance(calendar_record_h exception_record, int original_event_id);
+
+void _calendar_clear_child_record(calendar_record_h record, unsigned int property_id);
+
+calendar_record_h _calendar_get_record_with_index(int index);
+calendar_record_h _calendar_get_instance_from_record(calendar_record_h record, struct tm *start, struct tm *end);
+
+void _calendar_export_record_to_vcs(calendar_record_h record, const char *file_path);
+
+void _calendar_get_recurrence_frequency_str(int freq, char *buf, int size);
+
+void _calendar_set_coordinates(calendar_record_h record, double latitude, double longitude);
+void _calendar_get_coordinates(calendar_record_h record, double *latitude, double *longitude);
+
+#endif /* __CALENDAR_CAL_SVC_H__ */
diff --git a/include/cld-images.h b/include/cld-images.h
new file mode 100755 (executable)
index 0000000..361e4b5
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_IMAGES_H__
+#define __CALENDAR_IMAGES_H__
+
+#define CAL_IMAGES_EDJ EDJDIR "/" CALENDAR "-images.edj"
+
+#define CAL_IMAGES_CHANGE_VIEW "P01_change_view.png"
+#define CAL_IMAGES_TODAY       "P01_today.png"
+
+#define CAL_IMAGES_ALARM "P01_event_list_icon_alarm.png"
+#define CAL_IMAGES_REPEAT "P01_event_list_icon_reapeat.png"
+#define CAL_IMAGES_REMINDER "P01_event_list_icon_reminder.png"
+#define CAL_IMAGES_FACEBOOK "P01_event_list_icon_facebook.png"
+#define CAL_IMAGES_PRIORITY  "P01_list_icon_priority.png"
+#define CAL_IMAGES_PRIORITY_LOW  "P01_list_icon_priority_low.png"
+#define CAL_IMAGES_UNCOMPLETED  "P01_Task_event_completion.png"
+#define CAL_IMAGES_COMPLETED "P01_Task_event_completion_press.png"
+#define CAL_IMAGES_CALENDAR CALENDAR_PACKAGE".png"
+#define CAL_IMAGES_PHONE "all_calendar.png"
+#define CAL_IMAGES_CT_DEFAULT "caller_ID_default.png"
+
+#endif /* __CALENDAR_IMAGES_H__ */
diff --git a/include/cld-log.h b/include/cld-log.h
new file mode 100755 (executable)
index 0000000..01f36fe
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_LOG_H__
+#define __CALENDAR_LOG_H__
+
+#define CAL_DEBUGGING
+#define CAL_DLOG_OUT
+
+//#define CAL_TIMECHECK
+//#define CAL_USE_OWN_TIME
+
+#ifdef CAL_DLOG_OUT
+#define LOG_TAG "CALENDAR"
+#include <dlog.h>
+#define DLOG(prio, fmt, arg...) \
+       do { SLOG(prio, LOG_TAG, fmt, ##arg); } while (0)
+#define INFO(fmt, arg...) SLOGI(fmt, ##arg)
+#define ERR(fmt, arg...) SLOGE(fmt, ##arg)
+#define DBG(fmt, arg...) SLOGD(fmt, ##arg)
+#else //CAL_DLOG_OUT
+#define PRT(prio, fmt, arg...) \
+       do { fprintf((prio?stderr:stdout),"[Calendar]" fmt"\n", ##arg); } while (0)
+#define INFO(fmt, arg...) PRT(0, fmt, ##arg)
+#define ERR(fmt, arg...) PRT(1,"%s(%d) " fmt, ##arg)
+#define DBG(fmt, arg...) \
+       do { \
+               printf("\x1b[105;37m[Calendar]\x1b[0m" fmt "\n", ##arg); \
+       } while (0)
+#endif //CAL_DLOG_OUT
+
+#ifdef CAL_DEBUGGING
+
+#ifdef CAL_USE_OWN_TIME
+#define CAL_FN_START CAL_TIME_CHECK_START
+#define CAL_FN_END CAL_TIME_CHECK_END
+#else//CAL_USE_OWN_TIME
+#ifdef CAL_TIMECHECK
+#define CAL_FN_START DBG("START")
+#define CAL_FN_END DBG("END")
+#else//CAL_TIMECHECK
+#define CAL_FN_START DBG("")
+#define CAL_FN_END
+#endif//CAL_TIMECHECK
+#endif//CAL_USE_OWN_TIME
+
+#define c_warn_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               ERR("(%s) -> "fmt, #expr, ##arg); \
+       } \
+} while (0)
+#define c_ret_if(expr) do { \
+       if (expr) { \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return; \
+       } \
+} while (0)
+#define c_retv_if(expr, val) do { \
+       if (expr) { \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return (val); \
+       } \
+} while (0)
+#define c_retm_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return; \
+       } \
+} while (0)
+#define c_retvm_if(expr, val, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+               DBG("(%s) -> %s() return", #expr, __FUNCTION__); \
+               return (val); \
+       } \
+} while (0)
+#else //CAL_DEBUGGING
+#define CAL_FN_START
+#define CAL_FN_END
+#define DBG(...)
+
+#define c_warn_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+       } \
+} while (0)
+#define c_ret_if(expr) do { \
+       if (expr) { \
+               return; \
+       } \
+} while (0)
+#define c_retv_if(expr, val) do { \
+       if (expr) { \
+               return (val); \
+       } \
+} while (0)
+#define c_retm_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+               return; \
+       } \
+} while (0)
+#define c_retvm_if(expr, val, fmt, arg...) do { \
+       if (expr) { \
+               ERR(fmt, ##arg); \
+               return (val); \
+       } \
+} while (0)
+
+#endif //CAL_DEBUGGING
+
+#ifdef CAL_TIMECHECK
+double cal_correction, cal_startT;
+double cal_set_start_time(void);
+double cal_exec_time(double start, double correction);
+double cal_init_time(double correction);
+#define CAL_TIME_CHECK_START   \
+       double cal_startT = 0, cal_correction = 0; \
+       cal_correction = cal_init_time(cal_correction);\
+       cal_startT = cal_set_start_time();
+#define CAL_TIME_CHECK_END DBG("time = %f ms\n", cal_exec_time(cal_startT, cal_correction));
+#else //CAL_TIMECHECK
+#define CAL_TIME_CHECK_START
+#define CAL_TIME_CHECK_END
+#endif //CAL_TIMECHECK
+
+
+#endif /* __CALENDAR_LOG_H__ */
diff --git a/include/cld-utils.h b/include/cld-utils.h
new file mode 100755 (executable)
index 0000000..cb6b821
--- /dev/null
@@ -0,0 +1,303 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_UTILS_H__
+#define __CALENDAR_UTILS_H__
+
+#include <assert.h>
+#include <Elementary.h>
+#include <glib.h>
+
+#ifndef _
+#  define _(str) gettext(str)
+#endif
+
+#ifndef N_
+#  define gettext_noop(str) (str)
+#  define N_(str) gettext_noop(str)
+#endif
+
+#ifndef S_
+#  define S_(str) dgettext("sys_string", str)
+#endif
+
+#ifndef C_
+#  define C_(str) dgettext(CALENDAR, str)
+#endif
+
+#ifndef U_
+#  define U_(str) dgettext(UGNAME, str)
+#endif
+
+#ifndef EDJDIR
+#  define EDJDIR "/usr/apps/"CALENDAR_PACKAGE"/res/edje"
+#endif
+
+#ifndef CALENDAR_VCONF_PATH
+#define CALENDAR_VCONF_PATH "db/private/"CALENDAR_PACKAGE"/"
+#endif
+
+#ifndef CAL_VCONFKEY_SEND_EVENT_METHOD
+#define CAL_VCONFKEY_SEND_EVENT_METHOD CALENDAR_VCONF_PATH"send"
+#define CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF CALENDAR_VCONF_PATH"timezone_on_off"
+#define CAL_VCONFKEY_LOCK_TIMEZONE_PATH CALENDAR_VCONF_PATH"timezone_path"
+#define CAL_VCONFKEY_LOCK_TIMEZONE_CITY CALENDAR_VCONF_PATH"timezone_city"
+#define CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET CALENDAR_VCONF_PATH"timezone_offset"
+#define CAL_VCONFKEY_FIRST_DAY_OF_WEEK CALENDAR_VCONF_PATH"first_day_of_week"
+#define CAL_VCONFKEY_FOCUS_VIEW CALENDAR_VCONF_PATH"focusview"
+#define CAL_VCONFKEY_COMPLETE_TODO_ON_OFF CALENDAR_VCONF_PATH"complete_todo_on_off"
+#define CAL_VCONFKEY_WEEK_NMUBER_ON_OFF CALENDAR_VCONF_PATH"display_week_number"
+#define CAL_VCONFKEY_NOTIFICATION_ID CALENDAR_VCONF_PATH"notification_id"
+#define CAL_VCONFKEY_CREATE_EVENT_MODE CALENDAR_VCONF_PATH"create_event_mode"
+
+#endif
+
+#define EDJ_FILE EDJDIR "/" CALENDAR ".edj"
+
+#define CAL_UTIL_GET_PRIV_DATA(obj) evas_object_data_get(obj, "priv")
+#define CAL_UTIL_GET_EDJ_DATA(layout) elm_layout_edje_get(layout)
+
+#define CAL_MAX_HEAP_SIZE      5*1024*1024  /*Malloc more than this will not be allowd*/
+
+
+/*     void *memcpy(size_t nelements, size_t bfbes);
+ *     which will allocate a memory and copy the data to the allocated memory
+ *
+ */
+#define CAL_MEMCPY(dest,src,type) \
+       do{ \
+               if(src != NULL) \
+               { \
+                       assert(dest); \
+                       memcpy(dest,src,sizeof(type)); \
+               } \
+       } while(0);
+
+/*     void *calloc(size_t nelements, size_t bfbes);           */
+/*     which allocates a region of memory large enough to hold nelements of size bfbes each.
+       The allocated region is initialized to zero.    */
+#define CAL_CALLOC(ptr, no_elements, type)      \
+       do { \
+               if ((int)(no_elements) <= 0) \
+               { \
+                       ptr = NULL; \
+               } \
+               else if(CAL_MAX_HEAP_SIZE < no_elements* sizeof (type)) \
+               { \
+                       assert(0); \
+               } \
+               else \
+               { \
+                       ptr = (type *) calloc (no_elements , sizeof (type));    \
+                       assert(ptr);             \
+               }\
+       }while(0);
+
+/*
+ * Returns string length of src and 0 if it is NULL
+ */
+#define CAL_STRLEN(src)         ((src != NULL)? strlen(src): 0)
+
+/*
+ * Gives comparison result of two strings and returns -1 if any of two is NULL
+ */
+#define CAL_STRCMP(str1, str2) g_strcmp0(str1, str2)
+
+/*     This assert will log an err on stderr and abort,  if assertion failed,  */
+/*     Use this only if the now service needs to be exited, if asertion fails          */
+
+#define CAL_ASSERT(scalar_exp) \
+       do { \
+               if (!scalar_exp)        \
+               {       \
+                       ERR("CAL_ASSERT()");\
+                       assert(scalar_exp);     \
+               }       \
+       }while(0);
+
+#define CAL_STRDUP(str) (str && *str && strlen(str))?strdup(str):NULL
+
+#define CAL_STRNCPY(dest,src,size)     \
+       do { \
+               if(src != NULL && dest != NULL && size > 0) \
+               {       \
+                       strncpy(dest,src,size); \
+               }       \
+       }while(0);
+
+#define CAL_STRNCAT(dest,src,size)     \
+       do { \
+               if(src != NULL && dest != NULL && size > 0) \
+               {       \
+                       strncat(dest,src,size); \
+               }       \
+       }while(0);
+#define CAL_FREE(ptr) \
+       do { \
+               free(ptr); \
+               ptr = NULL; \
+       }while(0);
+
+
+/*
+       Date & Time Format
+       http://userguide.icu-project.org/formatparse/datetime
+*/
+#define CAL_UTIL_DATE_FORMAT_1 "EEMMMddyyyy" /* Thu Aug 23 2001 */
+#define CAL_UTIL_DATE_FORMAT_2 "EE" /* Thu */
+#define CAL_UTIL_DATE_FORMAT_3 "ddEE" /* 27 Thu */
+#define CAL_UTIL_DATE_FORMAT_4 "MMMM" /* August */
+#define CAL_UTIL_DATE_FORMAT_5 "yyyy" /* 2011 */
+#define CAL_UTIL_DATE_FORMAT_6 "MMMMyyyy" /* August 2011 */
+#define CAL_UTIL_DATE_FORMAT_7 "EEEEMMMdd" /* Thursday Aug 23 */
+#define CAL_UTIL_DATE_FORMAT_8 "dMMyyyy" /* 23 08 2011 */
+#define CAL_UTIL_DATE_FORMAT_9 "d" /* 27 */
+#define CAL_UTIL_DATE_FORMAT_10 "MMMd" /* Aug 27 */
+#define CAL_UTIL_DATE_FORMAT_11 "MMMMdyyyy" /* August 23 2011 */
+#define CAL_UTIL_DATE_FORMAT_12 "MMMdyyyy" /* Aug 23 2011 */
+#define CAL_UTIL_DATE_FORMAT_13 "EEMMMMddyyyy" /* Thu August 23 2001 */
+#define CAL_UTIL_DATE_FORMAT_14 "EEEE" /* Thursday */
+#define CAL_UTIL_DATE_FORMAT_15 "EEdMMMMyyyy" /* Thu August 23 2001 */
+#define CAL_UTIL_DATE_FORMAT_16 "ww" /* week of year */
+#define CAL_UTIL_DATE_FORMAT_17 "EEEEE" /* day of week "J" "T" "W" */
+#define CAL_UTIL_DATE_FORMAT_18 "MMMyyyy" /* Aug 2011 */
+
+#define CAL_UTIL_TIME_FORMAT_1 "hhmma" /* 07:58 AM */
+#define CAL_UTIL_TIME_FORMAT_2 "hhmm" /* 07:58 */
+#define CAL_UTIL_TIME_FORMAT_3 "hha" /* 07 AM */
+#define CAL_UTIL_TIME_FORMAT_4 "a" /* AM */
+#define CAL_UTIL_TIME_FORMAT_5 "hma" /* 7:58 AM */
+#define CAL_UTIL_TIME_FORMAT_6 "HHmm" /* 19:58 */
+#define CAL_UTIL_TIME_FORMAT_7 "HH" /* 19 */
+#define CAL_UTIL_TIME_FORMAT_8 "Hm" /* 7:58 AM */
+
+#define CAL_SECONDS_FOR_THIRTY_MINUTES (60 * 30)
+#define CAL_HALF_HOURS_FOR_DAY (24 * 2)
+
+enum cld_icon {
+       CI_EDIT = 0,
+       CI_NEW,
+       CI_DEL,
+       CI_PHOTO,
+       CI_MAX
+};
+
+static inline int CAL_UTIL_GET_WDAY(int w)
+{
+       while (w > 6) w -= 7;
+       while (w < 0) w += 7;
+       return w;
+}
+
+int cal_util_get_max_days(int tm_year, int tm_mon);
+time_t cal_util_get_max_time(void);
+time_t cal_util_get_min_time(void);
+
+time_t cal_util_update_tm_year(struct tm *t, int delta);
+time_t cal_util_update_tm_month(struct tm *t, int delta);
+time_t cal_util_update_tm_day(struct tm *t, int delta);
+time_t cal_util_update_tm_hour(struct tm *tm, int delta);
+
+void cal_util_convert_lli_to_tm(const char *timezone, long long int lli, struct tm *tm);
+void cal_util_convert_tm_to_lli(const char *timezone, const struct tm *tm, long long int *lli);
+void cal_util_convert_lli_to_time_t(const char *timezone, long long int lli, time_t *time);
+void cal_util_convert_time_t_to_lli(const char *timezone, time_t time, long long int *lli);
+
+int cal_util_get_day_time_t(struct tm *t, time_t *st, time_t *et);
+int cal_util_get_week_time_t(struct tm *t, time_t *st, time_t *et, int start);
+int cal_util_get_month_time_t(struct tm *t, time_t *st, time_t *et);
+int cal_util_get_year_time_t(struct tm *t, time_t *st, time_t *et);
+
+time_t cal_util_get_month_start_time(const struct tm* subject_date, struct tm* month_start_time);
+time_t cal_util_get_month_end_time(const struct tm* subject_date, struct tm* month_end_time);
+time_t cal_util_get_week_start_time(const struct tm* subject_date, struct tm* week_start_time,
+                                                                       int start_wday);
+time_t cal_util_get_week_end_time(const struct tm* subject_date, struct tm* week_end_time,
+                                                                 int start_wday);
+
+int cal_util_get_day_diff(const struct tm* date1, const struct tm* date2);
+int cal_util_compare_day(const struct tm* date1, const struct tm* date2);
+
+const char* cal_util_print_day(const struct tm* day);
+
+float cal_util_nsin(float f);
+int cal_util_get_week_flag(char *week_s);
+
+int cal_util_get_time_text(char *buf, int buf_size, const char *date, const char *time, const struct tm *tm);
+void cal_util_set_time_text_toupper(Evas_Object *obj, const char *part, const char *date, const char* time, const struct tm *tm);
+
+int cal_util_connect_pattern_generator(void);
+int cal_util_disconnect_pattern_generator(void);
+
+Evas_Object* cal_util_add_bg(Evas_Object *obj, Eina_Bool is_window);
+Evas_Object* cal_util_add_layout(Evas_Object *win, const char *group);
+Evas_Object* cal_util_add_window(const char *name, Evas_Coord *w, Evas_Coord *h);
+Evas_Object* cal_util_add_rectangle(Evas_Object *p);
+Evas_Object* cal_util_add_separator(Evas_Object *box, const char *style);
+Evas_Object* cal_util_add_scroller(Evas_Object *p);
+Evas_Object* cal_util_add_box(Evas_Object *p);
+Evas_Object* cal_util_add_edit_field(Evas_Object *parent, const char *guide, Eina_Bool single_line, Eina_Bool is_editable);
+Evas_Object * cal_util_add_nocontents(Evas_Object *parent, const char *label);
+Evas_Object * cal_util_add_search_nocontents(Evas_Object *parent, const char *label);
+Evas_Object * cal_util_add_popup(Evas_Object *parent, const char *style, const char *title, const char *desc,
+       void (*callback_func)(void *data, Evas_Object *obj, void *ei), void *data, ...);
+Evas_Object * cal_util_add_datetime(Evas_Object *parent, const char *title, const struct tm *tm);
+
+static inline void cal_util_get_geometry(Evas_Coord_Rectangle *r, const Evas_Object *obj)
+{
+       evas_object_geometry_get(obj, &r->x, &r->y, &r->w, &r->h);
+}
+
+static inline void cal_util_delete_evas_object(Evas_Object **p)
+{
+       if (p && *p) {
+               evas_object_del(*p);
+               *p = NULL;
+       }
+}
+
+char* cal_util_get_part_text(const char *fmt, int i);
+void cal_util_set_text(Evas_Object *obj, const char *part, const char *fmt, ...);
+void cal_util_set_time_text(Evas_Object *obj, const char *part, const char *date, const char* time, const struct tm *tm);
+void cal_util_set_time_week_text(Evas_Object *obj, const char *part, const char *date, const char* time, const struct tm *t, int start);
+void cal_util_emit_signal(Evas_Object *obj, const char *fmt, ...);
+void cal_util_set_controlbar_button(Evas_Object *btn, char *label, char *style, void (*func) (void *data, Evas_Object *obj, void *event_info), void* data);
+void cal_util_get_timezone(char **timezone_id, char **timezone_city, char **timezone_offset);
+void cal_util_get_week_number_text(const struct tm* tm, char *buffer, int buffer_size);
+int cal_util_get_distance(Evas_Coord_Point *s, Evas_Coord_Point *e);
+char *cal_util_get_search_color_text(const char *search_str, const char *input_str);
+void cal_util_set_timezone(const char *timezone);
+void cal_util_initialize_timezone();
+void cal_util_get_timezone_id(int timezone_offset, char **timezone_id);
+Evas_Object* cal_util_add_layout_noindicator(Evas_Object *win);
+void cal_util_show_small_information(Evas_Object *layout, const char *message, double timeout);
+void cal_util_hide_small_information(Evas_Object *layout);
+Evas_Object * cal_util_add_toolbar_button(Evas_Object *naviframe, const char *part, const char *text, Evas_Smart_Cb func, void *data);
+Evas_Object * cal_util_add_toolbar_button2(Evas_Object *naviframe, const char *part, const char *filename, Evas_Smart_Cb func, void *data);
+
+void cal_util_update_media_db(const char *file_path);
+
+void cal_util_set_item_time_text(Elm_Object_Item *item, const char *part, const char *date, const char* time, const struct tm *tm);
+void cal_util_set_item_time_week_text(Elm_Object_Item *obj, const char *part, const char *date, const char* time, const struct tm *t, int start);
+
+int cal_util_get_flick_distance_threshold();
+
+int cal_util_get_default_first_day_of_week();
+
+#endif /* __CALENDAR_UTILS_H__ */
+
diff --git a/include/cld.h b/include/cld.h
new file mode 100755 (executable)
index 0000000..ab070a3
--- /dev/null
@@ -0,0 +1,242 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_H__
+#define __CALENDAR_H__
+
+#include <Elementary.h>
+#include <contacts.h>
+#include <calendar2.h>
+#include <ui-gadget.h>
+
+#include "cal-svc.h"
+
+#include "cld-log.h"
+#include "cld-utils.h"
+
+#define CAL_QUICKADD_LONG_PRESS_TIME 0.5
+
+#if !defined(CALENDAR_RING)
+#define CALENDAR_RING "calendar-ring"
+#endif
+
+#ifndef API
+#define API __attribute__ ((visibility("default")))
+#endif
+
+#if !defined(CALENDAR)
+#  define CALENDAR "calendar"
+#endif
+
+#if !defined(VENDOR)
+# define VENDOR "org.tizen"
+#endif
+
+#if !defined(CALENDAR_PACKAGE)
+#  define CALENDAR_PACKAGE VENDOR"."CALENDAR
+#endif
+
+#if !defined(RESDIR)
+#  define RESDIR "/usr/apps/"CALENDAR_PACKAGE"/res/"
+#endif
+
+#if !defined(LOCALEDIR)
+#  define LOCALEDIR "/usr/apps/"CALENDAR_PACKAGE"/res/locale"
+#endif
+
+#if !defined(VCALENDAR_DATA_LEN)
+#define VCALENDAR_DATA_LEN 3000
+#endif
+
+#if !defined(EMAIL_LINK_FLAG)
+#define EMAIL_LINK_FLAG "#email_viewer_link#"
+#endif
+
+#define CAL_APPCONTROL_ITEM_TYPE "itemType"
+#define CAL_APPCONTROL_ITEM_TYPE_EVENT "event"
+#define CAL_APPCONTROL_ITEM_TYPE_TODO "todo"
+#define CAL_APPCONTROL_ITEM_TYPE_VCS "vcs"
+#define CAL_APPCONTROL_EVENT_ID "eventId"
+#define CAL_APPCONTROL_TODO_ID "todoId"
+#define CAL_APPCONTROL_VCS_PATH "path"
+
+#define CAL_APPSVC_PARAM_CALLER "caller"
+#define CAL_APPSVC_PARAM_COUNT "count"
+#define CAL_APPSVC_PARAM_TYPE "type"
+#define CAL_APPSVC_PARAM_INDEX "index"
+#define CAL_APPSVC_PARAM_REMINDER_ID "calendar-service/id"
+#define CAL_APPSVC_PARAM_LOCATION_REMINDER "location_reminder"
+
+enum cld_view {
+       CV_UNKNOWN = 0,
+       CV_YEAR,
+       CV_MONTH,
+       CV_WEEK,
+       CV_DAY,
+       CV_LIST,
+       CV_TODO,
+       CV_EDIT,
+       CV_DETAIL,
+       CV_NOTI,
+       CV_DELETE,
+       CV_SEARCH,
+       CV_ACCT,
+};
+
+typedef enum ug_type {
+       UG_UNKNOWN = 0,
+       UG_DETAIL,
+       UG_EDIT,
+       UG_MAX,
+}ug_type;
+
+typedef enum {
+       ITEM_TYPE_UNKNOWN = 0,
+       ITEM_TYPE_EVENT,
+       ITEM_TYPE_TODO,
+       ITEM_TYPE_VCS,
+       ITEM_TYPE_MAX
+}cal_appcontrol_item_type;
+
+typedef struct {
+       struct tm stm;
+       struct tm etm;
+       struct appdata *ad;
+       Evas_Object *ly; //content
+       char *stitle;
+       Evas_Object *entry; //for title
+       bool is_hold_press;
+       Evas_Object *title;
+       Evas_Object *start_time;
+       Evas_Object *end_time;
+       Ecore_Timer *hold_timer;
+       Evas_Object *popup;
+       Evas_Object *segment;
+       Elm_Object_Item *event_item;
+       Elm_Object_Item *task_item;
+       Eina_Bool is_task_selected;
+       Evas_Object *genlist;
+}cal_quick_add;
+
+typedef struct
+{
+       int person_id;
+       char *image;
+       char *name;
+
+       char *email;
+       int email_id;
+
+       char *number;
+
+       int status;
+       int role;
+       int response;
+
+       Eina_Bool is_deleted;
+}cal_participant;
+
+typedef struct appdata
+{
+       Evas_Object *win;                       //window
+       Evas_Coord win_w;                               //width of window
+       Evas_Coord win_h;                                       //height of window
+       Evas_Object *conform;                   //conformants
+       Evas_Object *base;                      //base layout
+       Evas_Object *naviframe;                         //naviframe
+       Evas_Object *title;                     //title
+       Evas_Object *main;                      //main view( has year, month, day, list tabs)
+       Evas_Object *bg;                                //background
+       Evas_Object *cbar;              //coontrol bar(calendar,today,delete,create)
+
+       Elm_Object_Item* main_navi_item;        //Naviframe item for main layout.
+
+       enum cld_view previous_tab;
+       enum cld_view current_tab;
+
+       enum cld_view request_view;     //initial or requested view to show, when app is relaunched,
+       enum cld_view current_view;
+       enum cld_view tapbar_focus_view;// only be CV_YEAR, CV_MONTH, CV_WEEK,CV_DAY,CV_LIST,CV_TODO.
+
+       Eina_Bool is_update_view;       //only update when it is needed
+       Eina_Bool is_pause;                     //prevent updating view during app pause state
+
+       struct tm base_tm;              //base time
+       int base_hour;                  // This can be replace to base_tm.tm_hour
+       struct tm today_tm;             //today time
+       Ecore_Timer *today_tmr;         //to update today when day is changed.
+       Evas_Object *today_edj;         //edj for content of month tab, Need to change name to calendar_edj.
+
+       int wday_start;                 //0~6, since sunday
+
+       int cid;                                        //calendar id. for detail, edit view
+       struct tm tm_start;             //for detail, edit view
+       struct tm tm_end;                       //for detail, edit view
+
+       int acct_id;                            //this variable always have ALL_VISIBLE_ACCOUT == -2
+
+       Evas_Object *new_event_button;  //button for "Create event"
+       Evas_Object *new_task_button;
+       Elm_Object_Item *bt_delete; //button for "Delete" in controlbar
+       Elm_Object_Item *bt_view; //button for "View" in controlbar
+       Elm_Object_Item *bt_search; //button for "Search" in controlbar
+       Elm_Object_Item *today_item;    // scroll to top item of today in list view.
+
+       Eina_Bool is_aul;                       //to check wheather launching with AUL
+       Elm_Object_Item* content;               //pop all aul content & jump to calendar content.
+
+       Eina_Bool daily_events_mode;                    //check whethere monthly tab is for weekly or not.
+
+       ui_gadget_h ug;         //can access to ui_gadget* from ug_data
+       ug_type u_type;                 //ug type
+       cal_appcontrol_item_type item_type;                     //request item type for appcontrol
+       calendar_record_h vcalendar;                            //for vcard raw data used in calendar viewer.
+
+       int tm_year;                            //It would be better, if these are changed to struct tm. to save event with specific time
+       int tm_mon;                             //It would be better, if these are changed to struct tm. to save event with specific time
+       int tm_mday;                            //It would be better, if these are changed to struct tm. to save event with specific time
+
+       char *strnote;                  //to save str  from memo
+       Eina_Bool show_save_popup;      //to show save popup when edit UG is destroyed
+
+       Elm_Theme *theme;               //theme customization
+
+       int account_id;                 //for email sharing feature
+       int mail_id;                            //for email sharing feature
+       char *src_box;                  //for email sharing feature
+
+       Eina_Bool is_magnifying;
+       Eina_Bool is_contracted;
+
+       Evas_Coord h_cur;
+
+       Eina_Bool is_display_complete_todo;
+
+       int is_display_weeknumber;
+
+       Eina_Bool is_landscape_mode;
+
+       Evas_Object *navi_title;
+
+       Eina_Bool need_to_show_popup;           // to keep popup for rotating
+
+}ug_data;
+
+int is_hour24;
+
+#endif /* __CALENDAR_H__ */
diff --git a/include/dialogue.h b/include/dialogue.h
new file mode 100755 (executable)
index 0000000..1160512
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_DIALOGUE_H__
+#define __CALENDAR_DIALOGUE_H__
+
+#include <Elementary.h>
+
+typedef void (*cal_dialogue_item_clicked_callback)(Evas_Object *obj, void *data);
+
+Evas_Object * cal_dialogue_create(Evas_Object *parent);
+void cal_dialogue_destroy(Evas_Object * dialogue);
+
+Evas_Object * cal_dialogue_get_box(Evas_Object *dialogue);
+
+Evas_Object * cal_dialogue_append_item(Evas_Object *box, const char *style, cal_dialogue_item_clicked_callback callback_func, void *callback_data);
+Evas_Object * cal_dialogue_insert_item_after(Evas_Object *box, const char *style, Evas_Object *after, cal_dialogue_item_clicked_callback callback_func, void *callback_data);
+Evas_Object * cal_dialogue_insert_item_before(Evas_Object *box, const char *style, Evas_Object *before, cal_dialogue_item_clicked_callback callback_func, void *callback_data);
+
+void cal_dialogue_delete_item(Evas_Object *box, Evas_Object *item);
+void cal_dialogue_delete_all_items(Evas_Object *dialogue);
+
+void cal_dialogue_show_item_before(Evas_Object *box, Evas_Object *item, Evas_Object *before);
+void cal_dialogue_show_item_after(Evas_Object *box, Evas_Object *item, Evas_Object *after);
+
+void cal_dialogue_hide_item(Evas_Object *box, Evas_Object *item);
+
+#endif /* __CALENDAR_DIALOGUE_H__ */
diff --git a/include/external-ug.h b/include/external-ug.h
new file mode 100755 (executable)
index 0000000..49c48ba
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_EXTERNAL_UG_H__
+#define __CALENDAR_EXTERNAL_UG_H__
+
+#include <ui-gadget.h>
+#include <ui-gadget-module.h>
+
+#include "cld.h"
+
+#define CAL_MESSAGE_COMPOSER_UG "msg-composer-efl"
+#define CAL_CONTACT_UG "contacts-tabui-efl"
+#define CAL_EMAIL_COMPOSER_UG "email-composer-efl"
+#define CAL_BLUETOOTH_UG "setting-bluetooth-efl"
+#define CAL_MAP_UG "map-efl"
+#define CAL_MYFILES_UG "myfile-efl"
+
+#define CAL_VCS_PATH "/opt/usr/media/Others/"
+
+#define CAL_MESSAGE_VCS CAL_VCS_PATH"[Calendar]message.vcs"
+#define CAL_EMAIL_VCS CAL_VCS_PATH"[Calendar]email.vcs"
+#define CAL_BLUETOOTH_VCS CAL_VCS_PATH"[Calendar]bluetooth.vcs"
+
+ui_gadget_h cal_launch_ug(ui_gadget_h parent_ug, service_h bd, char *ug_name, struct ug_cbs *cbs);
+ui_gadget_h cal_launch_ug_with_var(ui_gadget_h parent_ug, char *ug_name, struct ug_cbs *cbs,...);
+
+#endif /* __CALENDAR_EXTERNAL_UG_H__ */
+
diff --git a/include/gi-radio-timepicker.h b/include/gi-radio-timepicker.h
new file mode 100755 (executable)
index 0000000..ee5f74e
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __GI_RADIO_TIMEPICKER_H__
+#define __GI_RADIO_TIMEPICKER_H__
+
+#include "radio-group.h"
+
+Elm_Object_Item* cal_genlist_item_radio_timepicker_add(
+               Evas_Object* genlist, cal_radio_group_h radio_group, int radio_index,
+               bool expanded, struct tm* value, void* data);
+
+void cal_genlist_item_radio_timepicker_get_time(Elm_Object_Item* radio_timepicker, struct tm* datetime);
+
+#endif
diff --git a/include/gi-timepicker.h b/include/gi-timepicker.h
new file mode 100755 (executable)
index 0000000..51046c8
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __GI_TIMEPICKER_H__
+#define __GI_TIMEPICKER_H__
+
+#include <time.h>
+#include <Elementary.h>
+
+typedef void (*Time_Changed_Callback)(void *data, struct tm* updated_tm);
+
+Elm_Object_Item* cal_genlist_item_timepicker_add(Evas_Object *genlist,
+               const char* title, struct tm* time, Eina_Bool allday,
+               Time_Changed_Callback time_changed_callback, void* data);
+
+void cal_genlist_item_timepicker_update_value(Elm_Object_Item* item);
+
+void cal_genlist_item_timepicker_update_mode(
+               Elm_Object_Item* item, Eina_Bool allday);
+
+void cal_genlist_item_timepicker_disabled_set(Elm_Object_Item* item, Eina_Bool disabled);
+
+void cal_genlist_item_radio_timepicker_get_value(Elm_Object_Item* timepicker, struct tm* datetime);
+
+void cal_genlist_item_radio_timepicker_set_value(Elm_Object_Item* timepicker, const struct tm* datetime);
+
+#endif
diff --git a/include/grid.h b/include/grid.h
new file mode 100755 (executable)
index 0000000..f1f6cca
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_GRID_H__
+#define __CALENDAR_GRID_H__
+
+#include <Elementary.h>
+
+typedef Eina_Bool (* cal_grid_item_changed_callback)(void *);
+
+Evas_Object * cal_grid_create(Evas_Object *parent, cal_grid_item_changed_callback callback_func, void *callback_data);
+
+void cal_grid_set_edit_mode(Evas_Object *grid, Eina_Bool is_edit_mode);
+
+void cal_grid_set_max_item_count(Evas_Object *grid, unsigned int count);
+
+unsigned int cal_grid_get_current_item_count(Evas_Object *grid);
+
+Elm_Object_Item * cal_grid_append_item(Evas_Object *grid, const char *image_path);
+
+void cal_grid_delete_item(Evas_Object *grid, Elm_Object_Item *item);
+
+Eina_List * cal_grid_get_item_path_list(Evas_Object *grid);
+
+void cal_grid_free_item_path_list(Eina_List *item_path_list);
+
+#endif /* __CALENDAR_GRID_H__ */
diff --git a/include/lang-manager.h b/include/lang-manager.h
new file mode 100755 (executable)
index 0000000..87b2dee
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_LANG_MANAGER_H__
+#define __CALENDAR_LANG_MANAGER_H__
+
+typedef void (*cal_lang_manager_callback)(void *callback_data);
+
+void cal_lang_manager_apply(void);
+
+void cal_lang_manager_remove_all_callback(void);
+
+void cal_lang_manager_add_callback(cal_lang_manager_callback callback, void *callback_data);
+
+void cal_lang_manager_remove_callback(cal_lang_manager_callback callback, void *callback_data);
+
+#endif /* __CALENDAR_LANG_MANAGER_H__ */
diff --git a/include/query.h b/include/query.h
new file mode 100755 (executable)
index 0000000..c6aedca
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __CALENDAR_QUERY_H__
+#define __CALENDAR_QUERY_H__
+
+#include "cld.h"
+#include <calendar2.h>
+
+calendar_query_h cal_query_create_list_more_normal_query(
+               unsigned int time_property_id, const struct tm* start, int direction);
+
+calendar_query_h cal_query_create_list_more_allday_query(
+               unsigned int time_property_id, const struct tm* start, int direction);
+
+calendar_query_h cal_query_create_list_more_task_query(
+               const struct tm* start, int direction, bool include_completed);
+
+calendar_query_h cal_query_create_list_range_query(const char* view_uri,
+               unsigned int start_time_property_id, unsigned int end_time_property_id,
+               const struct tm* start, const struct tm* end, bool all_day);
+
+calendar_query_h cal_query_create_due_date_task_list_query(
+               struct tm *start, struct tm *end,
+               Eina_Bool is_show_completed_task,
+               _calendar_task_sort_type sort_type);
+
+calendar_query_h cal_query_create_all_task_list_query(
+               struct tm *start, struct tm *end,
+               Eina_Bool is_show_completed_task,
+               _calendar_task_sort_type sort_type);
+
+calendar_query_h cal_query_create_task_search_query(
+               const char* keyword);
+
+typedef void (*cal_for_each_record_callback)(calendar_record_h record, void* data);
+
+void cal_do_for_each_record_in_list(calendar_list_h list, cal_for_each_record_callback cb, void* data);
+
+calendar_query_h cal_query_create_all_event_list_query(void);
+
+#endif
diff --git a/include/radio-group.h b/include/radio-group.h
new file mode 100755 (executable)
index 0000000..2a2336e
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __RADIO_GROUP_H__
+#define __RADIO_GROUP_H__
+
+typedef void* cal_radio_group_h;
+
+typedef void (*cal_radio_group_changed_callback)(unsigned int index, bool selected, void* data);
+
+cal_radio_group_h cal_radio_group_create(unsigned int count, Evas_Object* parent);
+
+void cal_radio_group_destroy(cal_radio_group_h rg);
+
+void cal_radio_group_set_radio_object(cal_radio_group_h rg, unsigned int index, Evas_Object* obj);
+
+void cal_radio_group_set_changed_callback(cal_radio_group_h rg, unsigned int index,
+               cal_radio_group_changed_callback func, void* data);
+
+void cal_radio_group_remove_radio_object(cal_radio_group_h rg, unsigned int index);
+
+void cal_radio_group_select_radio(cal_radio_group_h rg, unsigned int index);
+
+int cal_radio_group_get_selected_radio(cal_radio_group_h rg);
+
+#endif
diff --git a/include/reminder.h b/include/reminder.h
new file mode 100755 (executable)
index 0000000..58d6b50
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __REMINDER_H__
+#define __REMINDER_H__
+
+#include "cld.h"
+
+#define _HOUR (60)
+#define _DAY (60 * 24)
+#define _WEEK (60 * 24 * 7)
+
+typedef struct {
+       int alarm_value;
+       calendar_alarm_time_unit_type_e tick_unit;
+       struct tm datetime;
+} Cal_Reminder;
+
+Cal_Reminder* cal_reminder_create(calendar_record_h calendar_alarm);
+
+calendar_record_h cal_reminder_get_cal_val(const Cal_Reminder* reminder);
+
+void cal_reminder_get_string(const Cal_Reminder* reminder, char *buf, int size);
+
+#endif
diff --git a/include/save-cancel.h b/include/save-cancel.h
new file mode 100755 (executable)
index 0000000..06dd72a
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef SAVE_CANCEL_H_
+#define SAVE_CANCEL_H_
+
+#include <Elementary.h>
+
+typedef void* cal_save_cancel_h;
+
+typedef void (*save_cancel_cb)(void *data, Evas_Object *obj, void *event_info);
+
+cal_save_cancel_h cal_save_cancel_create(Evas_Object *naviframe, Evas_Object *conformant, save_cancel_cb save_cb, save_cancel_cb cancel_cb, void* data);
+
+void cal_save_cancel_destroy(cal_save_cancel_h info);
+
+void cal_save_cancel_set_input_panel_callback_for_ug(cal_save_cancel_h info, Evas_Object *entry);
+
+void cal_save_cancel_unset_input_panel_callback_for_ug(Evas_Object *entry);
+
+void cal_save_cancel_set_button_text(cal_save_cancel_h info, const char *save_button_text, const char *cancel_button_text);
+
+void cal_save_cancel_set_disabled(cal_save_cancel_h info, Eina_Bool is_disabled_save, Eina_Bool is_disabled_cancel);
+
+#endif /* SAVE_CANCEL_H_ */
diff --git a/include/searchbar.h b/include/searchbar.h
new file mode 100755 (executable)
index 0000000..4da080f
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __SEARCHBAR_H__
+#define __SEARCHBAR_H__
+
+#include "cld.h"
+
+Evas_Object * cal_util_add_searchbar(Evas_Object *parent, const char *text,  const char *guide,
+                       Eina_Bool cancel_button, Evas_Smart_Cb cancel_callback, void* cancel_callback_data);
+
+#endif
diff --git a/libug-calendar-efl.xml b/libug-calendar-efl.xml
new file mode 100755 (executable)
index 0000000..c2ebde9
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<manifest xmlns="http://tizen.org/ns/packages" package="libug-calendar-efl" version="0.6.10-1" install-location="internal-only">\r
+       <label>calendar-efl</label>\r
+       <author email="taeho84.kang@samsung.com" href="www.samsung.com">Taeho Kang</author>\r
+       <description>Calendar</description>\r
+       <ui-application appid="calendar-efl" exec="/usr/ug/bin/calendar-efl" nodisplay="true" multiple="true" type="capp" taskmanage="false">\r
+               <label>calendar-efl</label>\r
+       </ui-application>\r
+       <ui-application appid="calendar-edit-efl" exec="/usr/ug/bin/calendar-edit-efl" nodisplay="true" multiple="true" type="capp" taskmanage="false">\r
+               <label>calendar-edit-efl</label>\r
+       </ui-application>\r
+       <ui-application appid="calendar-detail-efl" exec="/usr/ug/bin/calendar-detail-efl" nodisplay="true" multiple="true" type="capp" taskmanage="false">\r
+               <label>calendar-detail-efl</label>\r
+       </ui-application>\r
+</manifest>\r
diff --git a/org.tizen.calendar.desktop.in b/org.tizen.calendar.desktop.in
new file mode 100755 (executable)
index 0000000..43c320a
--- /dev/null
@@ -0,0 +1,26 @@
+Name=Calendar
+Name[en_US]=Calendar
+Name[ko_KR]=일정
+Name[nl_NL]=Agenda
+Name[de_DE]=Kalender
+Name[zh_HK]=日曆
+Name[zh_CN]=日历
+Name[ru_RU]=Календарь
+Name[zh_TW]=日曆
+Name[ja_JP]=カレンダー
+Name[es_ES]=Calendario
+Name[el_GR]=Ημερολόγιο
+Name[it_IT]=Agenda
+Name[tr_TR]=Takvim
+Name[pt_PT]=Calendário
+Name[fr_FR]=Calendrier
+Type=Application
+Exec=${BINDIR}/calendar
+Icon=${PKGNAME}.png
+NoDisplay=FALSE
+Version=0.1.0
+X-TIZEN-TaskManage=True
+X-TIZEN-Multiple=False
+X-TIZEN-Service=create_event,view_event
+X-TIZEN-Removable=False
+Comment=Calendar application
diff --git a/org.tizen.calendar.manifest b/org.tizen.calendar.manifest
new file mode 100755 (executable)
index 0000000..bd8bc3a
--- /dev/null
@@ -0,0 +1,34 @@
+<manifest>
+       <define>
+               <domain name="org.tizen.calendar" policy="restricted" plist="org.tizen.calendar,org.tizen.calendar-viewer"/>
+               <request>
+                       <smack request="libaccounts-svc" type="r"/>
+                       <smack request="ail::db" type="rw"/>
+                       <smack request="system::vconf" type="arwxt"/>
+                       <smack request="system::homedir" type="arwxt"/>
+                       <smack request="net-config" type="r"/>
+                       <smack request="xorg" type="w"/>
+                       <smack request="libaccounts-svc::db" type="rw"/>
+                       <smack request="contacts-service" type="rw"/>
+                       <smack request="isf" type="rwx"/>
+                       <smack request="dbus" type="w"/>
+                       <smack request="calendar-service" type="rw"/>
+                       <smack request="ug_bluetooth" type="r"/>
+                       <smack request="email-service::db" type="rw"/>
+                       <smack request="msg-service" type="rw"/>
+                       <smack request="pkgmgr" type="r"/>
+                       <smack request="efreet" type="rx"/>
+                       <smack request="notification::db" type="rw"/>
+                       <smack request="contacts-service::db" type="rw"/>
+                       <smack request="calendar-service::db" type="rw"/>
+                       <smack request="email-service" type="w"/>
+               </request>
+       </define>
+       <assign>
+               <filesystem path="/usr/share/icons/default/small/org.tizen.calendar.png" label="_"/>
+               <filesystem path="/usr/share/applications/org.tizen.calendar.desktop" label="_"/>
+       </assign>
+       <request>
+               <domain name="org.tizen.calendar"/>
+       </request>
+</manifest>
diff --git a/org.tizen.calendar.xml b/org.tizen.calendar.xml
new file mode 100644 (file)
index 0000000..9084d2b
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.calendar" version="0.0.1">
+
+       <author>Jiwon Park</author>
+
+       <description>Tizen Calendar app</description>
+
+       <ui-application appid="${PKGNAME}" exec="${BINDIR}/calendar"
+               multiple="false" nodisplay="false" taskmanage="true" type="capp">
+
+               <label xml:lang="hy-am">Օրացույց</label>
+               <label xml:lang="az-az">Təqvim</label>
+               <label xml:lang="eu-es">Egutegia</label>
+               <label xml:lang="bg-bg">Календар</label>
+               <label xml:lang="ca-es">Calendari</label>
+               <label xml:lang="zh-cn">日历</label>
+               <label xml:lang="zh-hk">日曆</label>
+               <label xml:lang="zh-tw">日曆</label>
+               <label xml:lang="hr-hr">Kalendar</label>
+               <label xml:lang="cs-cz">Kalendář</label>
+               <label xml:lang="da-dk">Kalender</label>
+               <label xml:lang="nl-nl">Agenda</label>
+               <label xml:lang="en-gb">Calendar</label>
+               <label xml:lang="en-us">Calendar</label>
+               <label xml:lang="et-ee">Kalender</label>
+               <label xml:lang="fi-fi">Kalenteri</label>
+               <label xml:lang="fr-fr">Calendrier</label>
+               <label xml:lang="gl-es">Calendario</label>
+               <label xml:lang="ka-ge">კალენდ.</label>
+               <label xml:lang="de-de">Kalender</label>
+               <label xml:lang="el-gr">Ημερολόγιο</label>
+               <label xml:lang="hu-hu">Naptár</label>
+               <label xml:lang="is-is">Dagbók</label>
+               <label xml:lang="ga-ie">Féilire</label>
+               <label xml:lang="it-it">Agenda</label>
+               <label xml:lang="ja-jp">カレンダー</label>
+               <label xml:lang="kk-kz">Күнтізбе</label>
+               <label xml:lang="ko-kr">일정</label>
+               <label xml:lang="lv-lv">Kalendārs</label>
+               <label xml:lang="lt-lt">Kalendorius</label>
+               <label xml:lang="mk-mk">Календар</label>
+               <label xml:lang="nb-no">Kalender</label>
+               <label xml:lang="pl-pl">Kalendarz</label>
+               <label xml:lang="pt-pt">Agenda</label>
+               <label xml:lang="pt-br">Calendário</label>
+               <label xml:lang="ro-ro">Calendar</label>
+               <label xml:lang="ru-ru">Календарь</label>
+               <label xml:lang="sr-rs">Kalendar</label>
+               <label xml:lang="sk-sk">Kalendár</label>
+               <label xml:lang="sl-si">Koledar</label>
+               <label xml:lang="es-es">Calendar</label>
+               <label xml:lang="es-us">Calendar</label>
+               <label xml:lang="sv-se">Kalender</label>
+               <label xml:lang="tr-tr">Takvim</label>
+               <label xml:lang="uk-ua">Календар</label>
+               <label xml:lang="uz-uz">Календар</label>
+               <label xml:lang="ar-ae">تقويم</label>
+               <label xml:lang="zh-sg">日历</label>
+               <label xml:lang="hi-in">कैलेंडर</label>
+               <label xml:lang="en-ph">Calendar</label>
+               <label xml:lang="fr-ca">Calendrier</label>
+               <label xml:lang="es-mx">Calendario</label>
+
+               <icon xml:lang="en-us">${PKGNAME}.png</icon>
+
+       </ui-application>
+
+</manifest>
diff --git a/packaging/org.tizen.calendar.spec b/packaging/org.tizen.calendar.spec
new file mode 100755 (executable)
index 0000000..a097736
--- /dev/null
@@ -0,0 +1,126 @@
+Name:       org.tizen.calendar
+
+Summary:    Calendar application
+Version:    0.6.21
+Release:    1 
+License:    Apache
+Source0:    %{name}-%{version}.tar.gz
+
+BuildRequires:  pkgconfig(appcore-efl)
+BuildRequires:  pkgconfig(appsvc)
+BuildRequires:  pkgconfig(utilX)
+BuildRequires:  pkgconfig(calendar-service2)
+BuildRequires:  pkgconfig(dlog)
+BuildRequires:  pkgconfig(accounts-svc)
+BuildRequires:  pkgconfig(heynoti)
+BuildRequires:  pkgconfig(contacts-service2)
+BuildRequires:  pkgconfig(location)
+BuildRequires:  pkgconfig(icu-i18n)
+BuildRequires:  pkgconfig(notification)
+BuildRequires:  pkgconfig(capi-appfw-application)
+BuildRequires:  pkgconfig(capi-location-geocoder)
+BuildRequires:  cmake
+BuildRequires:  edje-bin
+BuildRequires:  embryo-bin
+BuildRequires:  gettext-devel
+BuildRequires:  pkgconfig(ui-gadget-1)
+BuildRequires:  pkgconfig(libxml-2.0)
+BuildRequires:  pkgconfig(capi-content-media-content)
+
+Requires : email-service contacts-service2
+Requires : ug-bluetooth-efl
+
+%description
+Beat UI Calendar application.
+
+%description -n org.tizen.calendar
+Calendar application (EFL).
+
+%package -n org.tizen.calendar-viewer
+Summary:    Calendar viewer (EFL)
+Requires:   org.tizen.calendar = %{version}-%{release}
+
+%description -n org.tizen.calendar-viewer
+Calendar viewer (EFL).
+
+%package -n libug-calendar-efl
+Summary:    Calendar UI gadget (EFL)
+Requires:   org.tizen.calendar = %{version}-%{release}
+
+%description -n libug-calendar-efl
+Calendar UI gadget (EFL).
+
+%prep
+%setup -q
+
+%build
+%define PREFIX    "/usr/apps/org.tizen.calendar"
+%define RESDIR    "/usr/apps/org.tizen.calendar/res"
+%define DATADIR   "/usr/apps/org.tizen.calendar/data"
+
+export LANG="en_US.utf8"
+
+cmake . -DCMAKE_INSTALL_PREFIX=%{PREFIX}
+make %{?jobs:-j%jobs}
+
+%install
+mkdir -p %{buildroot}/usr/share/license
+rm -rf %{buildroot}
+%make_install
+
+%post -n libug-calendar-efl
+mkdir -p /usr/ug/bin/
+ln -sf /usr/bin/ug-client /usr/ug/bin/calendar-efl
+ln -sf /usr/bin/ug-client /usr/ug/bin/calendar-detail-efl
+
+# Automatically added by dh_makeshlibs
+if [ "$1" = "configure" ]; then
+     ldconfig
+fi
+# End automatically added section
+
+# 5000 is inhouse user id
+# do not use relative path
+
+vconftool set -t int db/private/org.tizen.calendar/focusview 0 -u 5000
+vconftool set -t int db/private/org.tizen.calendar/send 0 -u 5000
+vconftool set -t int db/private/org.tizen.calendar/timezone_on_off 0 -u 5000
+vconftool set -t string db/private/org.tizen.calendar/timezone_path "Asia/Seoul" -u 5000
+vconftool set -t string db/private/org.tizen.calendar/timezone_city "IDS_WCL_BODY_CITYNAME_SEOUL" -u 5000
+vconftool set -t string db/private/org.tizen.calendar/timezone_offset "+9" -u 5000
+vconftool set -t double db/private/org.tizen.calendar/longitude 127.05286 -u 5000
+vconftool set -t double db/private/org.tizen.calendar/latitude 37.25768 -u 5000
+vconftool set -t int db/private/org.tizen.calendar/complete_todo_on_off 1 -u 5000
+vconftool set -t int db/private/org.tizen.calendar/first_day_of_week 1 -u 5000
+vconftool set -t int db/private/org.tizen.calendar/display_week_number 0 -u 5000
+vconftool set -t int db/private/org.tizen.calendar/create_event_mode 1 -u 5000
+
+mkdir -p /usr/data/ug-calendar
+chgrp 6003 /usr/data/ug-calendar
+chmod 770 /usr/data/ug-calendar
+
+%postun
+
+%files -n org.tizen.calendar
+%manifest org.tizen.calendar.manifest
+%defattr(-,root,root,-)
+/usr/apps/org.tizen.calendar/bin/calendar
+/usr/apps/org.tizen.calendar/data/
+/usr/apps/org.tizen.calendar/res/locale/*
+/usr/apps/org.tizen.calendar/res/edje/*.edj
+/usr/share/packages/org.tizen.calendar.xml
+/usr/share/icons/default/small/org.tizen.calendar.png
+/usr/share/license/%{name}
+
+%files -n org.tizen.calendar-viewer
+%manifest viewer/org.tizen.calendar-viewer.manifest
+%defattr(-,root,root,-)
+/usr/apps/org.tizen.calendar-viewer/bin/calendar-viewer
+/usr/share/packages/org.tizen.calendar-viewer.xml
+/usr/share/license/org.tizen.calendar-viewer
+
+%files -n libug-calendar-efl
+%defattr(-,root,root,-)
+/usr/ug/lib/*.so
+/usr/share/packages/libug-calendar-efl.xml
+/usr/share/license/libug-calendar-efl
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..3537f28
--- /dev/null
@@ -0,0 +1,23 @@
+# for i18n
+
+SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de_DE.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_MX.po es_US.po et.po eu.po fi.po fr_CA.po fr_FR.po ga.po gl.po hi.po hr.po hu.po hy.po is.po it_IT.po ja_JP.po ka.po kk.po ko_KR.po lt.po lv.po mk.po nb.po nl_NL.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po zh_CN.po zh_HK.po zh_SG.po zh_TW.po)
+SET(MSGFMT "/usr/bin/msgfmt")
+
+MESSAGE(STATUS "po files ---")
+FOREACH(pofile ${POFILES})
+       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+       MESSAGE(STATUS "  ${pofile}")
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+                       OUTPUT ${moFile}
+                       COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+                       DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${moFile}
+                       DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/po/ar.po b/po/ar.po
new file mode 100755 (executable)
index 0000000..11c56dd
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "كل التقويمات"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "يوم"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "الأسبوع"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "خيارات الإرسال"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "تصدير"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "أحد"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "إثنين"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "أول يوم في الأسبوع"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "فى الميعاد"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "اللائحة"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "تثبيت المنطقة الزمنية"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "المنطقة الزمنية"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "كرر إلى"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "المشارك"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "سنة"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "التكرار"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "تعديل الحدث"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "تذكير"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "كل أسبوع"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "كل شهر"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "كل سنة"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "حدث جديد"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "المهمة"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "عرض المهام المكتملة"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "إنشاء"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "العنوان"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "الخريطة"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "من"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "إلى"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "غير مفعل"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "قبل 5 دقائق"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "قبل 15 دقيقة"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "قبل ساعة واحدة"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "قبل يوم واحد"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "قبل يومين"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "قبل أسبوع واحد"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "لا شيء"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "ملاحظة"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "حفظ"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "إلغاء"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "التقاويم"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "شهر"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "تعديل"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "مسح"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "بحث"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "رسالة"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "بريد إلكتروني"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "تعديل"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "حفظ"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "حذف"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "حذف"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "سيتم حذف هذا الحدث"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "رسالة"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "أحد"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "إثنين"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "الاسم"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "استيراد الأحداث/المهام"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "تصدير الأحداث/المهام"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "ص"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "عادي"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "لا توجد نتائج"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "شهريا"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "قبل"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "قبل"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "يوميا"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "وقت الانتهاء"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "شهريا"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "الشهر"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "وقت البدء"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "اضغط لإدخال الموقع"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "اضغط لإدخال ملاحظة"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "انقر لإدخال العنوان"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "الشهر"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "أسبوعيا"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "سنويا"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "اضغط لإدخال مشارك"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "W"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "طوال اليوم"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "أسابيع"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "الأسبوع"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "الحالة"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "الحساب الافتراضي"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "خريطة"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "مزامنة التقويم"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "الأحداث"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "لم يتم تحديد موقع"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "حذف حدث"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "إرسال رسائل إلى المشاركين؟"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "المشاركون"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "التقاويم"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "لا توجد تقاويم"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "هذا الحدث فقط"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "جميع الأحداث المتكررة"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "لا يوجد عنوان"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "ساعة"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "الأوقات"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "تقويم مرتبط"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "تقويم الهاتف"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "عرض يومي"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "عرض أسبوعي"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "يتعذر البحث عن الموقع"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "الموقع"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "اليوم"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "الأسبوع"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "حفظ في"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "لا توجد أحداث"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "تخصيص"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "حفظ؟"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "عرض الأحداث حسب الأسبوع"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "التخطيط في طريقة عرض الشهر"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "عرض الأحداث حسب اليوم"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "جاري التصدير..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "جاري الاستيراد..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "تم الاستيراد"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "تم التصدير"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "كل يوم"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "المهام"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "تاريخ الانتهاء"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "لا يوجد تاريخ انتهاء"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "الأولوية"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "لقد فات وقت المنبه"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "مدة التكرار غير صحيحة"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "حدث متكرر"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "يجب ضبط وقت الانتهاء بعد وقت البدء"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "جاري تزامن التقويم"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "توقيت غير صحيح"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "كل %d يوم (أيام)"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "كل %d أسبوع"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "اكتمل"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "مهمة جديدة"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "تعديل المهمة"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "قم بتثبيت أوقات الأحداث وتواريخها على المنطقة الزمنية المحددة أدناه. لن تتغير الأوقات والتواريخ حتى إذا انتقلت إلى منطقة زمنية أخرى"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "تفاصيل المهمة"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "تفاصيل الحدث"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "بلا مهام"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "مرفوض"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "مبدئي"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "مفوض"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "المضيف"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "حالة الحضور"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "حذف مهمة"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "تغيير كافة الأحداث الموجودة في السلسلة"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "إنشاء حدث"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "الحدث"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "التقويم"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "موقع البحث"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "تمت"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "التكرار"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "المذكرات"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "الشرح"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "استيراد تقويمات"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "خارج المكتب"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "إضافة إلى جهة اتصال"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "عرض"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "التقاويم المراد عرضها"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "تقويمي"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "مهمتي"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "عيد ميلاد جهة الاتصال"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "عرض رقم الأسبوع"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "هاتفي"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "م"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "كل يوم"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "الخصوصية"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "عرض"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "أسبوع (أسابيع)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "يوم (أيام)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "تغيير هذا الحدث فقط"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "كل أسبوعين"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "كل 3 أيام"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "لا يوجد تاريخ استحقاق"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "تم الوصول إلى أقصى عدد من الحروف"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "المهام"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s عيد ميلاد"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "الذكرى السنوية لـ %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "تصدير ملف vcs من هاتفك إلى الأحداث و المهام."
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "دقائق"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "دقيقة"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "ساعات"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "أيام"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "أسبوع"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "ساعة"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "اليوم"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "حذف"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "الملحق"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "اليوم"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "مزيد"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "طوال هذا الشهر"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "طوال اليوم"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "جميع الأحداث قبل اليوم"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "طوال هذا اليوم"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "طوال هذا الأسبوع"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "طوال هذا العام"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "مشغول"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "المستحقة اليوم"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "خارج المكتب"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "عام"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "إظهاري كـ"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "انقر لإنشاء مهمة"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "صورة شخصية"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "إنشاء حدث"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "إنشاء مهمة"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "اكتمل النقل"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "متأخرة"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "المستحقة بعد أسبوع واحد"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "حر"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "خاص"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "أيام"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "ساعات"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "الإعدادات المحلية الافتراضية"
+
diff --git a/po/az.po b/po/az.po
new file mode 100755 (executable)
index 0000000..d452959
--- /dev/null
+++ b/po/az.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Yeri"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Bütün təqvim"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Gün"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Həftə"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Göndərmə parametrləri"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Digər yerə köçürt"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Bazar günü"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Bazar ertəsi"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Həftənin ilk günü"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Vaxtında"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Siyahı"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Saat qurşağını kilidlə"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Vaxt zonası"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Bunadək təkrar et"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "İştirakçı"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "İl"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Təkrar et"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Tədbir redaktə edin"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Xatırladıcı"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Hər həftə"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Hər ay"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Hər il"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Yeni tədbir"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tapşırıq"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Tamamlanmış tapşırıqları göstər"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Yarat"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Başlıq"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Yerləşmə"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Xəritə"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Kimdən"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Kimə"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Söndür"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 dəqiqə əvvəl"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 dəqiqə əvvəl"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 saat əvvəl"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 gün əvvəl"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 gün əvvəl"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 həftə əvvəl"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Yoxdur"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Qeyd"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Saxlayın"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Ləğv et"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Təqvimlər"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Ay"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Redaktə et"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Axtarış"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Elektron poçtlar"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Redaktə et"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Yaddaşa yaz"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Bu tədbir silinəcək"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Mesaj"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Parametrlər"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Bazar günü"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Bazar ertəsi"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Ad"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Tədb./tapşır.ı idxal et"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Tədb./tapşır.ı ixrac et"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "Günortadan əvvəl"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Heç bir nəticə tapılmamışdır"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Aylıq"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "əvvəl"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "əvvəl"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Gündəlik"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Bitmə vaxtı"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Aylıq"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Ay"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Başlama vaxtı"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Yeri daxil etmək üçün vurun"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Qeyd daxil etmək üçün vurun"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Başlığı daxil etmək üçün vurun"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Ay"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Həftəlik"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "İllik"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "İştirakçının daxil etmək üçün vurun"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "H"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Bütün günü"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "həftələr"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "həftə"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Durum"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Standart hesab"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Xəritə"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Təqvimi sinxronlaşdırma"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Hadisələr"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Yer seçilməyib"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Tədbir silinsin"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "İştirakçılara mesaj göndərilsin?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "İştirakçılar"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Təqvimlər"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Təqvim yoxdur"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Yalnız bu tədbir"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Bütün təkrarlanan hadisələr"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Başlıq yoxdur"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "Saat"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "dəfə"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Əlaqələnmiş təqvim"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefon təqvimi"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Gündəlik görüntü"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Həftəlik baxış"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Yeri tapmaq mümkün deyil"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Yeri"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "gün"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "həftə"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Yaddaşa yazma yer"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Hadisə yoxdur"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Uyğunlaşdır"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Yaddaşa yazılsın?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Hadisələri həftəyə görə göstər"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Düzüm ay görünüşündə"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Hadisələri günə görə göstər"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Göndərilir..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Gətirilir..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Gətirilmişdir"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "İdxal edilmişdir"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Hər gün"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Planlar"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Vədə tarixi"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Bitirmə tarixi yoxdur"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Üstünlük"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Xəbərdarlıq vaxtı artıq keçmişdir"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Yanlış təkrarlama müddəti"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Təkrarlanan hadisə"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Tamamlama vaxtı başlanğıc vaxtından sonra təyin edilməlidir"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Təqvim sinx. edilir"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Yanlış zaman"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Hər %d gündə bir"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Hər %d həftədə bir"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Tamamlandı"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Yeni tapşırıq"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Tapşırığı redaktə edin"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Hadisə vaxtlarını və tarixlərini aşağıda seçilmiş saat qurşağınıza kilidləyin. Hətta başqa saat qurşağına keçsəniz belə, vaxt və tarixlər dəyişməyəcək"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Tapşırığın təfərrüatları"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Tədbir təfərrüatları"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Tapşırıq yoxdur"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "İmtina edilmişdir"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Qeyri-müəyyən"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Həvalə edildi"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Ev sahibi"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Davamiyyət vəziyyəti"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Tapşırığı sil"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Silsilədə bütün tədbirləri dəyişdirin"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Hadisə yarat"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Hadisə"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Təqvim"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Yer axtarın"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Bitdi"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Təkrarlama"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Xatırlatmalar"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Təsvir"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Təqvimləri idxal et"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Ofisdən kənar"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Kontakta əlavə edin"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Bax"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Göstəriləcək təqvimlər"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mənim təqvimim"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Tapşırığım"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Kontaktın ad günü"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Həftənin nömrəsini göstər"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mənim telefonum"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "Günortadan sonra"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Hər gün"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Gizlilik"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Baxın"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "həftə(lər)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "gün(lər)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Yalnız bu tədbiri dəyişdirin"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Hər 2 həftədən bir"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Hər 3 gündən bir"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Bitmə tarixi yoxdur"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Simvol sayı maksimuma çatıb"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tapşırıqlar"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s-in ad günü"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s ildönümüdür"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Telefondan S Planner verilənlərini ixrac et"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "dəq"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "dəqiqə"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "saatlar"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "günlər"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "hftə"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "saat"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "gün"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Sil"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Əlavə"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Bu gün"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Dvmı"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Bütün bu ayı"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Bütün günü"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Bugünə qədər olan bütün hadisələr"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Bütün bu günü"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Bütün bu həftəni"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Bütün bu ili"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Məşğul"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Bu gün üçün"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Ofisdən kənar"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "İctimai"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Məni fərqli göstər"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Tapşırıq yaratmaq üçün vurun"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Hadisə yarat"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Tapşırıq yarat"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Köçürmə tamamlandı"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Vaxtı ötən"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "1 həftədən çox müddətdə"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Azad"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Özəl"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "days"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "saatlar"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Dilə/ölkəyə görə"
+
diff --git a/po/bg.po b/po/bg.po
new file mode 100755 (executable)
index 0000000..8edd57e
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Целия календар"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Ден"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Седмица"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Опции за изпращане"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Експортиране"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Неделя"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Понеделник"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Първи ден на седмицата"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Време включване"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Списък"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Заключване на часова зона"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Часова зона"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Повтаряне докато"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Участник"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Година"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Повтори"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Редактиране на събитие"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Напомняне"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "всяка седмица"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "всеки месец"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "всяка година"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Ново събитие"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Задача"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Показване на завършените задачи"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Създай"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Заглавие"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Карта"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "От"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "До"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Изключено"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 мин. по-рано"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 мин по-рано"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 час преди"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 ден преди"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 дни по-рано"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 седмица преди"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Няма"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Бележка"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Запиши"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Отмени"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Календари"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Месец"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Редактиране"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Изтрий"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Търсене"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Съобщение"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Email"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Редактиране"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Запази"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Изтриване"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Това събитие ще бъде изтрито"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Съобщение"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Неделя"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Понеделник"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Име"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Импорт. събития/задачи"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Експор. събития/задачи"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Нормален"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Няма намерени резултати"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Ежемесечно"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Преди"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "преди"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Дневно"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Краен час"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Ежемесечно"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Месец"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Начално време"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Чукнете, за да въведете местоположение"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Чукнете, за да въведете бележка"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Чукнете, за да въведете заглавие"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Месец"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Седмично"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Годишно"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Чукнете, за да въведете участник"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "С"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Цял ден"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "седмици"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "седмица"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Състояние"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Основен акаунт"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Карта"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Синхр. на календара"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Събития"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Не е избрано място"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Изтриване на събитие"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Изпращане на съобщения до участниците?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Участници"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Календари"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Няма календари"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Само това събитие"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Всички повтарящи се събития"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Няма заглавие"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "час"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "пъти"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Свързан календар"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Календар в телефона"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Дневен екран"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Ежеседмичен изглед"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Не може да се намери местоположение"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Позиция"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "ден"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "седмица"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Запази в"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Няма събития"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Персонализиране"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Запазване?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Показване на събитията по седмица"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Оформление в изглед месец"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Показване на събитията по ден"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Извеждане"
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Импортиране..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Импортирано"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Експортирано"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Всеки ден"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Задачи"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Крайна дата"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Няма дата за срок"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Приоритет"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Часът за аларма вече е минал"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Невалиден период на повторение"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Повтарящо се събитие"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Крайният час трябва да се зададе след началния час"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Извършва се синхронизация на календара"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Невалидно време"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "На всеки %d дни"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "На всеки %d седмици"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Завършено"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Нова задача"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Редактиране на задачата"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Заключване на часовете и датите на събитията към избраната от вас часова зона по-долу. Часовете и датите на събитията няма да се променят, дори да се придвижите в друг часови пояс"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Подробности за задача"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Подробности за събитието"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Няма задачи"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Отклонено"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Под въпрос"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Делегирано"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Хост"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Състояние на присъствие"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Изтриване на задачата"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Промяна на всички събития в серията"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Създаване на събитие"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Събитие"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Календар"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Местоположение за търсене"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Готово"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Повторение"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Напомняния"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Описание"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Импортиране на календари"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Извън офиса"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Добави към запис"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Преглед"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Календари за показване"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Моят календар"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Моята задача"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Рожден ден на контакта"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Показване на номера на седмицата"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Моят телефон"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Всеки ден"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Поверителност"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Покажи"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "седмици"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "дни"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Промяна само на това събитие"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "На всеки 2 седмици"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "На всеки 3 дни"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Няма дата за срок"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат максимален брой знаци"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Задачи"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Рожденият ден на %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Годишнина на %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Експортиране на данни на S Planner от вашия телефон"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "мин"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "мин"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "часа"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "дни"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "седм"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "час"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "ден"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Изтрий"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Прикачен файл"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Днес"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Още"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Всичко от този месец"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Цял ден"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Всички събития преди днес"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Всичко от този ден"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Всичко от тази седмица"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Всичко от тази година"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Заето"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Със срок до днес"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Извън офиса"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Публично"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Показвай ме като"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Чукнете, за да създадете задача"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Снимки"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Създаване на събитие"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Създаване на задача"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Прехвърлянето е завършено"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Просрочена"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Със срок над 1 седмица"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Свободен"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Частен разгв."
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "дни"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "часа"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Място по подразбиране"
+
diff --git a/po/ca.po b/po/ca.po
new file mode 100755 (executable)
index 0000000..ef972c9
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Tot el calendari"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dia"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Setmana"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opcions d'enviament"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportar"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Diumenge"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Dilluns"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primer dia de la setmana"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "A l'hora"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Llista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Bloquejar zona horària"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Zona horària"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetir fins"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participant"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Any"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetir"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Editar esdeveniment"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Recordatori"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Cada setmana"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Cada mes"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Cada any"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Esdeveniment nou"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tasca"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Mostrar tasques finalitzades"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Crear"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Títol"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "A"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Desactivat"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min abans"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min abans"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hora abans"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dia abans"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dies abans"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 setmana abans"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Cap"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Desar"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cancel·lar"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calendar"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Cercar"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Missatge"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Correu electrònic"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Desar"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Esborrar"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "S'esborrarà aquest esdeveniment"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Missatge"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Diumenge"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Dilluns"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nom"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importar esdev/tasques"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Exportar esdev/tasques"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "No s'han trobat resultats"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensualment"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Abans"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "abans"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Diàriament"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Hora finalització"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensualment"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hora d'inici"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Toqui per introduir la ubicació"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Toqui per introduir la nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Toqui per introduir un títol"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Setmanalment"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anualment"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Toqui per introduir participant"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "Set."
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Tot el dia"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "setmanes"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "setmana"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Estat"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Compte predeter"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronització de calendari"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Esdeveniments"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "No hi ha cap ubicació seleccionada"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Esborrar esdeveniment"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Enviar missatge als participants?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participants"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendaris"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Sense calendaris"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Només aquest esdeveniment"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Tots els esdeveniments repetitius"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sense títol"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hora"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "vegades"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendari enllaçat"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendari del telèfon"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista diària"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista setmanal"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "No es pot trobar la ubicació"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Ubicació"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dia"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "setmana"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Desar a"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "No hi ha cap esdeveniment"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalitzar"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Desar?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostrar esdeveniments per setmana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Disseny a vista per mes"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostrar esdeveniments per dia"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportant..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Important..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importat"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportat"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Cada dia"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Pendent"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Data de venciment"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Sense data de venciment"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioritat"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Ja ha passat l'hora de l'alarma"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Període repetició no vàlid"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Esdeveniment amb repetició"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "L'hora finalització s'ha d'establir després de l'hora d'inici"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sincronització calendari en curs"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Hora no vàlida"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Cada %d dies"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Cada %d setmanes"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Complet"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Tasca nova"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Editar tasca"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Bloquegi les dates i hores dels esdeveniments a la zona horària seleccionada a sota. Les dates i hores no es canviaran encara que les mogui a una altra zona horària"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalls de la tasca"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detalls de l'esdeveniment"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Sense tasques"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Rebutjat"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Provisional"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegat"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Estat d'assistència"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Esborrar tasca"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Canviar tots els esdeveniments de la sèrie"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Crear esdeveniment"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Esdeveniment"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendari"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Cercar ubicació"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Finalit."
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetició"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Recordatoris"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Descripció"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importar calendaris"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fora de l'oficina"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Afegir a contacte"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Veure"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendaris per mostrar"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "El meu calendari"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "La meva tasca"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Aniversari del contacte"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Mostrar el número de setmana"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "El meu telèfon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Cada dia"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Confidencialitat"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Veure"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "setmana(es)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "dia(dies)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Canviar només aquest esdeveniment"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Cada 2 setmanes"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Cada 3 dies"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Sense data de venciment"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "S'ha assolit el nombre màxim de caràcters"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tasques"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Natalici de %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Aniversari de %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exportar dades d'S Planner des del seu telèfon"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "hores"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dies"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "setm"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hora"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dia"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Esborr"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Fitxer adjunt"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Avui"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Més"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Tot el mes"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Tot el dia"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Tots els esdeveniments anteriors a avui"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Tot el dia"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Tota la setmana"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Tot l'any"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Ocupat"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Venç avui"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fora de l'oficina"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Públic"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Mostrar-me com"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Toqui per crear una tasca"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Crear esdeveniment"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Crear tasca"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transferència completa"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Vençuda"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Venç en més d'1 setmana"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Lliure"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privat"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "Dies"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "hores"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Configuració regional predeterminada"
+
diff --git a/po/cs.po b/po/cs.po
new file mode 100755 (executable)
index 0000000..28f3f2a
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Celý kalendář"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Den"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Týden"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Možnosti odesílání"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Export"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Neděle"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Pondělí"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "První den týdne"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "S časem"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Seznam"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Zamknout časové pásmo"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Časové pásmo"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Opakovat do"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Účastník"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Rok"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Opakovat"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Upravit událost"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Připomenutí"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "každý týden"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "každý měsíc"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Každý rok"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Nová událost"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Úkol"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Zobrazit dokončené úkoly"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Vytv."
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Název"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Do"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Vyp"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min. předem"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 minut před"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hodinu před"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 den před"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dny před"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 týden před"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Žádný"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Poznámka"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Uložit"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Zrušit"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendáře"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Měsíc"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Upravit"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Hledat"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Zpráva"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Upravit"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Uložit"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Odstranit"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Událost bude odstraněna"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Zpráva"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Neděle"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Pondělí"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Jméno"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Import událostí/úkolů"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Export událostí/úkolů"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "dop."
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normální"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nebylo nic nalezeno"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Měsíčně"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Před"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "před"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Denně"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Čas ukončení"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Měsíčně"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Měsíc"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Čas zahájení"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Klepněte a zadejte místo"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Klepněte a zadejte poznámku"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Klepnutím zadejte název"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Měsíc"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Týdně"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Ročně"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Klepněte a zadejte účastníka"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "T"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Celodenní"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "týdny"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "týden"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Stav"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Výchozí účet"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Synchronizace kalendáře"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Události"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nebylo vybráno žádné místo"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Odstranit událost"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Odeslat zprávy účastníkům?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Účastníci"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendáře"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Žádné kalendáře"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Pouze tuto událost"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Všechny opakované události"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Žádný název"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hodina"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "krát"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Připojený kalendář"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Kalendář v telefonu"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Den"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Týden"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Místo nebylo nalezeno"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Místo"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "den"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "týden"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Uložit do"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Žádné události"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Upravit"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Uložit?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Zobrazit události podle týdne"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Rozložení v zobrazení měsíce"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Zobrazit události podle dne"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportování..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Probíhá import.."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importováno"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportováno"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Každý den"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Úkol"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Termín"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Žádný termín"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Důležitost"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Čas upozornění již vypršel"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Chybná perioda\nopakování"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Opakovaná událost"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Čas ukončení musí následovat po času zahájení"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Probíhá synchronizace kalendáře"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Chybný čas"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Každých %d dnů"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Každých %d týdnů"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Dokončeno"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nový úkol"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Upravit úkol"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Můžete svázat časy a data událostí s vybraným časovým pásmem. Časy a data se nezmění, ani když se přesunete do jiného časového pásma"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detaily úkolu"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detaily události"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Žádné úkoly"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Odmítnuto"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Zkušební"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegován"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Hostitel"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Stav účasti"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Odstranit úkol"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Změnit všechny události v řadě"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Vytvořit událost"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Událost"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalendář"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Hledat místo"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Hotovo"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Opakování"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Připomenutí"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Popis"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Import kalendářů"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Mimo kancelář"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Přidat do kontaktu"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Zobrazit"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Zobrazované kalendáře"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Můj kalendář"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Můj úkol"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Narozeniny kontaktu"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Zobrazit číslo týdne"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Můj telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "odp."
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "každý den"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Soukromí"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Zobrazit"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "týdny"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "Den(dny)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Změnit pouze tuto událost"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Každé 2 týdny"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Každé 3 dny"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Žádný termín"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Bylo dosaženo maximálního počtu znaků"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Úkoly"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Narozeniny: %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s má výročí"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exportovat data S plánovače z telefonu"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "hod"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dnů"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "týd."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hod."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "den"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Odstr."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Příloha"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Dnes"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Více"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Celý měsíc"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Celodenní"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Všechny události do dneška"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Celý den"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Celý týden"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Celý rok"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Zanepr."
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Dnes"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Mimo kancelář"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Veřejný"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Zobrazit jako"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Klepnutím vytvořte úkol"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fotografie"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Vytvořit událost"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Vytvořit úkol"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Přenos byl dokončen"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Zpožděný"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Za déle než 1 týden"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Volné"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Soukromé"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dny"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "hodiny"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Výchozí místní nastavení"
+
diff --git a/po/da.po b/po/da.po
new file mode 100755 (executable)
index 0000000..1da4605
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Alle kalendere"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dag"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Uge"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Afsendelsesindstillinger"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Eksportér"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Søndag"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Mandag"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Første dag i ugen"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Til tiden"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Liste"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Lås tidszone"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Tidszone"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Gentag indtil"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Deltager"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "År"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Gentag"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Redigér begivenhed"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Påmindelse"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "hver uge"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "hver måned"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Hvert år"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Ny begivenhed"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Opgave"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Vis udførte opgaver"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Opret"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Titel"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Kort"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Fra"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Til"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Fra"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min. før"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min før"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 time før"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dag før"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dage før"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 uge før"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ingen"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Bemærkning"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Gem"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Annullér"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendere"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Måned"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Redigér"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Slet"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Søg"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Meddelelse"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Redigér"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Gem"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Slet"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Slet"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Denne begivenhed vil blive slettet"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Meddelelse"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Søndag"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Mandag"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Navn"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importér beg./opgaver"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Eksportér beg./opgaver"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Ingen resultater fundet"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Hver måned"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Før"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "før"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Daglig"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Sluttidspunkt"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Hver måned"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Måned"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Starttid"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tryk for at indtaste placering"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tryk for at indtaste note"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tryk for at angive titel"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Måned"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Hver uge"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Hvert år"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tryk for at indtaste deltager"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "U"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Hele dagen"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "uger"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "uge"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Standardkonto"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Kort"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Kalendersynkronisering"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Begivenheder"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Intet sted valgt"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Slet begivenhed"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Send meddelelser til deltagere?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Deltagere"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendere"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Ingen kalendere"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Kun denne begivenhed"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Alle gentagende begivenheder"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Ingen titel"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "time"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "gange"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Kædet kalender"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefonkalender"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Daglig visning"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Ugevisning"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Kan ikke finde placering"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Placering"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dag"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "uge"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Gem på"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Ingen begivenheder"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Tilpas"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Gem?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Vis begivenheder ugevis"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout i månedsvisning"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Vis begivenheder dagsvis"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Eksporterer ..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importerer..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importeret"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Eksporteret"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Hver dag"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Opgave"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Forfaldsdato"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Ingen forfaldsdato"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioritet"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarmtidspunktet er allerede passeret"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Ugyldig\ngentagelsesperiode"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Gentagende begivenhed"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Sluttidspunktet skal være efter starttidspunktet"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Kalendersynkronisering er i gang"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Ugyldigt tid"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Hver %d dage"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Hver %d uger"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Udført"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Ny opgave"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Redigér opgave"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Lås klokkesæt og datoer for begivenheder til din valgte tidszone herunder. Klokkeslæt og datoer ændres ikke, selv om du flytter til en anden tidszone"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Opgavedetaljer"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Begivenhedsoplysninger"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Ingen opgaver"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Afvist"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Forsøg"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegeret"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Vært"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Deltagelsesstatus"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Slet opgave"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Redigér alle begivenheder i serien"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Opret hændelse"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Begivenhed"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalender"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Søgeplacering"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Udført"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Gentagelse"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Påmindelser"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Beskrivelse"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importér kalendere"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fraværende"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Føj til kontakt"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Vis"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Kalendere, der skal vises"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Min kalender"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Min opgave"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Kontakts fødselsdag"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Vis ugenummer"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Min telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "hver dag"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Beskyttelse"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Vis"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "uge(r)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "Dag(e)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Rediger kun denne begivenhed"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Hver 2. uge"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Hver 3. dag"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Ingen forfaldsdato"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Det maksimale antal tegn er nået"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Opgaver"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s har fødselsdag"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%ss jubilæum"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Eksportér data fra S-planlægger fra din telefon"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "timer"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dage"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "uge"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "tid"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dag"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Slet"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Vedhæftet"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "I dag"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Mere"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Hele denne måned"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Hele dagen"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Alle begivenheder før i dag"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Hele dagen"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Hele denne uge"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Hele dette år"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Optaget"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Forfalder i dag"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fraværende"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Offentlig"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Vis mig som"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Tryk for at oprette opgave"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Billede"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Opret hændelse"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Opret opgave"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Overførsel færdig"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Forfalden"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Forfalder om mere end 1 uge"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Ledig"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privat"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dage"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "timer"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Lokal standard"
+
diff --git a/po/de_DE.po b/po/de_DE.po
new file mode 100755 (executable)
index 0000000..ed06999
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Standortzugriff"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Alle Kalender"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Tag"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Woche"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sendeoptionen"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportieren"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Sonntag"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Montag"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Erster Tag der Woche"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Pünktlich"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Liste"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Zeitzone festlegen"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Zeitzone"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Wiederholen bis"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Teilnehmer"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Jahr"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Wiederholen"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Ereignis bearbeiten"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Erinnerung"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Jede Woche"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Monatlich"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Jährlich"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Neues Ereignis"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Aufgabe"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Abgeschlossene Aufgaben anzeigen"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Erstellen"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Titel"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Ort"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Karte"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Von"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "bis"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Aus"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 Min. vorher"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 Minuten vorher"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 Stunde vorher"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 Tag vorher"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 Tage vorher"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 Woche vorher"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ohne"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Memo"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Speichern"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Abbrechen"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalender"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Monat"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Bearbeiten"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Suche"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Nachricht"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-Mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Bearbeiten"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Speichern"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Löschen"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Dieses Ereignis wird gelöscht."
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Nachricht"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Sonntag"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Montag"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Name"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Ereignis/Aufgaben imp."
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Ereignis/Aufgaben exp."
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Keine Ergebnisse gefunden"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Monatlich"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Vorher"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "vorher"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Täglich"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Endzeit"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Monatlich"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Monat"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Startzeit"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Ort eingeben"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Hinweis eingeben"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Titel eingeben"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Monat"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Wöchentlich"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Jährlich"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Teilnehmer eingeben"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "W"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Ganzen Tag"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "Wochen"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "Woche"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Standardkonto"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Karte"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Kalender synchronisieren"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Ereignisse"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Kein Ort ausgewählt"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Ereignis löschen"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Nachrichten an Empfänger senden?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Teilnehmer"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalender"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Keine Kalender"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Nur dieses Ereignis"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Alle sich wiederholenden Ereignisse"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Kein Titel"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "Stunde"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "mal"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Verknüpfter Kalender"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefonkalender"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Ansicht nach Tagen"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Ansicht “Woche”"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Standort kann nicht gefunden werden"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Ort"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "Tag"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "Woche"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Speichern in"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Keine Ereignisse"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Anpassen"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Speichern?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Ereignisse nach Woche anzeigen"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout in der Monatsansicht"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Ereignisse nach Tagen anzeigen"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Wird exportiert..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importieren..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importiert"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportiert"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Täglich"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Aufgabe"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Fälligkeitstag"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Kein Fälligkeitsdatum"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Priorität"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarmzeit liegt in der Vergangenheit"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Ungültiger Wieder-\nholungszeitraum"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Wiederkehrendes Ereignis"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Endzeit sollte später als die Startzeit festgelegt werden"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Kalendersynchronisierung läuft"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Ungültige Zeit"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Alle %d Tage"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Alle %d Wochen"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Erledigt"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Neue Aufgabe"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Aufgabe bearbeiten"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Ereigniszeiten und -daten für die unten ausgewählte Zeitzone festlegen. Zeiten und Daten ändern sich nicht, auch wenn Sie in eine andere Zeitzone wechseln."
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Aufgabendetails"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Ereignisdetails"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Keine Aufgaben"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Abgelehnt"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Vorläufig"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegiert"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Teilnahmestatus"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Aufgabe löschen"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Alle Ereignisse in der Serie ändern"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Ereignis erstellen"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Ereignis"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalender"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Ort suchen"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "OK"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Wiederholung"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Erinnerungen"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Beschreibung"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Kalender importieren"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Nicht im Büro"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Zu Kontakt hinzufügen"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Anzeigen"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Kalender zum Anzeigen"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Eigener Kalender"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Meine Aufgabe"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Geburtstag des Kontakts"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Wochennummer anzeigen"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Eigenes Telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Täglich"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Datenschutz"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Ansicht"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "Woche(n)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "Tag(e)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Nur dieses Ereignis ändern"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Alle 2 Wochen"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Alle 3 Tage"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Kein Fälligkeitsdatum"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximal zulässige Zeichenanzahl erreicht."
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Aufgaben"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s hat Geburtstag"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Jahrestag von %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "S Planner-Daten von Ihrem Gerät exportieren"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "Min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "Min."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "Stunden"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "Tage"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "Wo."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "Std."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "Tag"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Lösch."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Anhang"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Heute"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Mehr"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Alle in diesem Monat"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Ganzen Tag"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Alle Ereignisse vor heute"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Alle an diesem Tag"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Alle in dieser Woche"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Alle in diesem Jahr"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Besetzt"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Heute fällig"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Nicht im Büro"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Öffentlich"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Anzeigen als"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Aufgabe erstellen"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Ereignis erstellen"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Aufgabe erstellen"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Weiterleiten abgeschlossen."
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Überfällig"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "In über 1 Woche fällig"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Frei"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privat"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "Tage"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "Stunden"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Standardregion"
+
diff --git a/po/el_GR.po b/po/el_GR.po
new file mode 100755 (executable)
index 0000000..5f38ba1
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Θέση"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Όλα τα ημερολόγια"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Ημέρα"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Εβδομάδα"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Επιλογές αποστολής"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Εξαγωγή"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Κυριακή"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Δευτέρα"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Πρώτη ημέρα της εβδομάδας"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Έγκαιρα"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Λίστα"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Κλείδωμα ζώνης ώρας"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Ζώνη ώρας"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Επανάληψη μέχρι"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Συμμετέχων"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Έτος"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Επανάληψη"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Επεξεργασία συμβάντος"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Υπενθύμιση"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "κάθε εβδομάδα"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "κάθε μήνα"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Κάθε χρόνο"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Νέο συμβάν"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Εργασία"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Εμφάνιση ολοκληρωμένων εργασιών"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Δημ/ργία"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Τίτλος"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Θέση"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Χάρτης"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Από"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Προς"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Ανενεργό"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 λεπτά πριν"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "Πριν από 15 λεπτά"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 ώρα πριν"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 ημέρα πριν"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 ημέρες πριν"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 εβδομάδα πριν"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Κανένα"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Σημείωση"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Αποθήκ."
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Άκυρο"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Ημερο-λόγια"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Μήνας"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Επεξεργ."
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Αναζήτηση"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Μήνυμα"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Email"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Επεξεργασία"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Αποθ/ση"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Διαγραφή"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Αυτό το συμβάν θα διαγραφεί"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Μήνυμα"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Κυριακή"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Δευτέρα"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Όνομα"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Εισ. συμβάντων/εργασιών"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Εξαγ.συμβάντων/εργασιών"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "ΠΜ"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Κανονική"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Δεν βρέθηκαν αποτελέσματα"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Κάθε μήνα"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Πριν"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "πριν"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Καθημερινά"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Ώρα λήξης"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Κάθε μήνα"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Μήνας"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Ώρα έναρξης"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Εισάγετε τοποθεσία"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Πατήστε για να εισάγετε σημείωση"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Πατήστε για να εισάγετε τίτλο"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Μήνας"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Κάθε εβδομάδα"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Κάθε έτος"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Πατήστε για να εισάγετε συμμετέχοντα"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "Β"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Ολοήμερο"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "εβδομάδες"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "εβδομάδα"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Κατάσταση"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Προεπ. λογαριασμός"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Χάρτης"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Συγχρονισμός ημερολογίου"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Συμβάντα"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Δεν έχει επιλεγεί τοποθεσία"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Διαγραφή συμβάντος"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Αποστολή μηνυμάτων στους συμμετέχοντες;"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Συμμετέχ."
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Ημερολόγια"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Δεν βρέθηκαν ημερολόγια"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Μόνο αυτό το συμβάν"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Όλα τα επαναλαμβανόμενα συμβάντα"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Χωρίς τίτλο"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "ώρα"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "φορές"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Συνδεδεμένο ημερολόγιο"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Ημερολόγιο τηλεφώνου"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Προβολή ημέρας"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Προβολή εβδομάδας"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Δεν είναι δυνατή η εύρεση τοποθεσίας"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Θέση"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "ημέρα"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "εβδομάδα"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Αποθήκευση σε"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Κανένα συμβάν"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Προσαρμογή"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Αποθήκευση;"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Εμφάνιση συμβάντων ανά εβδομάδα"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Διάταξη προβολής μήνα"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Εμφάνιση συμβάντων ανά ημέρα"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Εξαγωγή..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Εισαγωγή..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Έγινε εισαγωγή"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Έγινε εξαγωγή"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Κάθε μέρα"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Εργασίες"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Προθεσμία"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Δεν υπάρχει ημερομ. λήξης"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Προτεραιότητα"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Η ώρα ειδοποίησης έχει ήδη περάσει"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Μη έγκυρη περίοδος\nεπανάληψης"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Επαναλαμβανόμενο συμβάν"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Η ώρα λήξης θα πρέπει να ρυθμιστεί μετά την ώρα έναρξης"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Συγχρονισμός ημερολογίου σε εξέλιξη"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Μη έγκυρη ώρα"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Κάθε %d ημέρες"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Κάθε %d εβδομάδες"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Ολοκληρώθηκε"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Νέα εργασία"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Επεξεργασία εργασίας"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Κλείδωμα της ώρας και της ημερομηνίας του συμβάντος στη ζώνη ώρας που έχετε επιλέξει. Η ώρα και η ημερομηνία του συμβάντος δεν θα αλλάξουν ακόμα και αν μεταβείτε σε διαφορετική ζώνη ώρας"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Λεπτομέρειες εργασίας"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Λεπτομέρειες συμβάντος"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Καμία εργασία"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Απορρίφθηκε"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Αβέβαιη"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Εκπροσωπήθηκε"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Οικοδεσπότης/Οικοδέσποινα"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Κατάσταση παρουσίας"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Διαγραφή εργασίας"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Αλλαγή όλων των συμβάντων της σειράς"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Δημιουργία συμβάντος"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Συμβάν"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Ημερολόγιο"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Αναζήτηση τοποθεσίας"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Τέλος"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Επανάληψη"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Υπενθυμίσεις"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Περιγραφή"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Εισαγωγή ημερολογίων"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Εκτός γραφείου"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Προσθήκη σε επαφή"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Προβολή"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Ημερολόγια προς εμφάνιση"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Το ημερολόγιό μου"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "H εργασία μου"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Γενέθλια επαφής"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Εμφάνιση αριθμού εβδομάδας"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Το τηλέφωνό μου"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "ΜΜ"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "κάθε μέρα"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Απόρρητο"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "View"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "εβδομάδα(ες)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "Ημέρα(ες)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Αλλαγή μόνο αυτού του συμβάντος"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Κάθε 2 βδομάδες"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Κάθε 3 ημέρες"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Καμία ημερομηνία λήξης"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Ο μέγιστος αριθμός χαρακτήρων συμπληρώθηκε"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Εργασίες"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Γενέθλια %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "επέτειος του/της %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Εξαγωγή δεδομένων S Planner από το τηλέφωνό σας"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "λεπ."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "λεπ."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "ώρες"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "ημέρες"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "εβδ."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "ώρα"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "μέρα"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Διαγρ."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Συνημμένο"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Σήμερα"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Περισσότερα"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Όλο το μήνα"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Ολοήμερο"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Όλα τα συμβάντα πριν από σήμερα"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Όλη την ημέρα"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Όλη την εβδομάδα"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Όλο το έτος"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Κατειλ."
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Λήγουν σήμερα"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Εκτός γραφείου"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Δημόσιο"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Εμφάνιση της κατάστασής μου ως"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Πατήστε για δημιουργία εργασίας"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Φωτογραφία"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Δημιουργία συμβάντος"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Δημιουργία εργασίας"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Η μεταφορά ολοκληρώθηκε"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Εκπρόθεσμο"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Λήγουν μετά από 1 εβδομάδα"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Ελεύθερο"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Προσωπικό"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "ημέρες"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "ώρες"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Προεπιλεγμένες τοπικές ρυθμίσεις"
+
diff --git a/po/en.po b/po/en.po
new file mode 100755 (executable)
index 0000000..a1dcada
--- /dev/null
+++ b/po/en.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "All calendar"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Day"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Week"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sending options"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Export"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Sunday"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Monday"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "First day of week"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "On time"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "List"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Lock time zone"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Time zone"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repeat until"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participant"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Year"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repeat"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Edit event"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Reminder"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Every week"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Every month"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Every year"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "New event"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Task"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Show completed tasks"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Create"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Title"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Map"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "From"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "To"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 mins before"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 mins before"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hour before"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 day before"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 days before"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 week before"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "None"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Note"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Save"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calendars"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Edit"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Search"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Email"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Edit"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Save"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "This event will be deleted"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Sunday"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Monday"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Name"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Import events/tasks"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Export events/tasks"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "No results found"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Monthly"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Before"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "before"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Daily"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "End time"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Monthly"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Start time"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tap to enter location"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tap to enter note"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tap to enter title"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Weekly"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Yearly"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tap to enter participant"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "W"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "All day"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "weeks"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Default account"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Map"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Calendar sync"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Events"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "No location selected"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Delete event"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Send messages to participants?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participants"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendars"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "No calendars"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Only this event"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "All repetitive events"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hour"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "times"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Linked calendar"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Phone calendar"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Daily view"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Weekly view"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Unable to find location"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "day"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Save to"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "No events"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Customise"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Save?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Show events by week"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout in month view"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Show events by day"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exporting..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importing..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Imported"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exported"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Every day"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "To do"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Due date"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "No due date"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Priority"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarm time has already passed"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Invalid repeat period"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Repeating event"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "End time should be set after start time"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Calendar sync in progress"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Invalid time"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Every %d days"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Every %d weeks"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Completed"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "New task"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Edit task"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Lock event times and dates to your selected time zone below. Times and dates will not change even if you move to another time zone"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Task details"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Event details"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "No tasks"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Declined"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Tentative"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegated"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Attendance status"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Delete task"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Change all events in the series"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Create event"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Event"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendar"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Search location"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Done"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetition"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Reminders"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Description"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Import calendars"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Out of office"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Add to contact"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "View"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendars to display"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "My calendar"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "My task"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Contact's birthday"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Show week number"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "My phone"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Every day"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacy"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "View"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "week(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "day(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Change only this event"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Every 2 weeks"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Every 3 days"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "No due date"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tasks"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s's birthday"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s's anniversary"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Export S Planner data from your phone"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "mins"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "hours"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "days"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "week"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hour"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "day"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Delete"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Attachment"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Today"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "More"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "All this month"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "All day"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "All events before today"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "All this day"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "All this week"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "All this year"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Busy"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Due today"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Out of office"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Public"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Show me as"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Tap to create task"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Photo"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Create event"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Create task"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transfer complete"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Overdue"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Due in over 1 week"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Free"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Private"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "days"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "hours"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Locale default"
+
diff --git a/po/en_PH.po b/po/en_PH.po
new file mode 100755 (executable)
index 0000000..c76f51b
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "All calendar"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Day"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Week"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sending options"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Export"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Sunday"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Monday"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "First day of week"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "On time"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "List"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Lock time zone"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Time zone"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repeat until"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participant"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Year"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repeat"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Edit event"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Reminder"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Every week"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Every month"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Every year"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "New event"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Task"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Show completed tasks"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Create"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Title"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Map"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "From"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "To"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 mins before"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 mins before"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hour before"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 day before"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 days before"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 week before"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "None"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Note"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Save"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calendars"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Edit"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Search"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Email"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Edit"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Save"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "This event will be deleted"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Sunday"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Monday"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Name"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Import events/tasks"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Export events/tasks"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "No results found"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Monthly"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Before"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "before"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Daily"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "End time"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Monthly"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Start time"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tap to enter location"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tap to enter note"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tap to enter title"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Weekly"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Yearly"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tap to enter participant"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "W"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "All day"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "weeks"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Default account"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Map"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Calendar sync"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Events"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "No location selected"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Delete event"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Send messages to participants?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participants"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendars"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "No calendars"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Only this event"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "All repetitive events"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hour"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "times"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Linked calendar"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Phone calendar"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Daily view"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Weekly view"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Unable to find location"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "day"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Save to"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "No events"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Customize"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Save?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Show events by week"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout in month view"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Show events by day"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exporting..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importing..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Imported"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exported"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Everyday"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "To do"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Due date"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "No due date"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Priority"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarm time has already passed"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Invalid repeat period"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Repeating event"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "End time should be set after start time"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Calendar sync in progress"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Invalid time"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Every %d days"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Every %d weeks"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Completed"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "New task"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Edit task"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Lock times and dates of events to your selected time zone below. Times and dates will not change even if you move to another time zone"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Task details"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Event details"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "No tasks"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Declined"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Tentative"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegated"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Attendance status"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Delete task"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Change all events in the series"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Create event"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Event"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendar"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Search location"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Done"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetition"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Reminders"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Description"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Import calendars"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Out of office"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Add to contact"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "View"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendars to display"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "My calendar"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "My task"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Contact's birthday"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Show week number"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "My phone"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Everyday"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacy"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "View"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "week(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "day(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Change only this event"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Every 2 weeks"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Every 3 days"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "No due date"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tasks"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s's birthday"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s's anniversary"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Export S Planner data from your phone"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "mins"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "hours"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "days"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "week"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hour"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "day"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Delete"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Attachment"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Today"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "More"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "All this month"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "All day"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "All events before today"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "All this day"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "All this week"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "All this year"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Busy"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Due today"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Out of office"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Public"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Show me as"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Tap to create task"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Photo"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Create event"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Create task"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transfer complete"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Overdue"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Due in over 1 week"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Free"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Private"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "days"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "hours"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Local default"
+
diff --git a/po/en_US.po b/po/en_US.po
new file mode 100755 (executable)
index 0000000..522ce3c
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "All calendar"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Day"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Week"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sending options"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Export"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Sunday"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Monday"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "First day of week"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "On time"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "List"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Lock time zone"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Time zone"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repeat until "
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participant"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Year"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repeat"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Edit event"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Reminder"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Every week"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Every month"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Every year"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "New event"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Task"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Show completed tasks"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Create"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Title"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Location"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Map"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "From"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "To"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min before"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 mins before"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hour before"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 day before"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 days before"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 week before"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "None"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Note"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Save"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calendars"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Edit"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Search"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Email"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Edit"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Save"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Delete"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "This event will be deleted"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Sunday"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Monday"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Name"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Import events/tasks"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Export events/tasks"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "No results found"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Monthly"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Before"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "before"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Daily"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "End time"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Monthly"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Start time"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tap to enter location"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tap to enter note"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tap to enter title"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Weekly"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Yearly"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tap to enter participant"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "W"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "All day"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "weeks"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Default account"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Map"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Calendar sync"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Events"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "No location selected"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Delete event"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Send messages to participants?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participants"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendars"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "No calendars"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Only this event"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "All repetitive events"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "No title"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hour"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "times"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Linked calendar"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Phone calendar"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Daily view"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Weekly view"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Unable to find location"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Location"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "day"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Save to"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "No events"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Customize"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Save?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Show events by week"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout in month view"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Show events by day"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exporting..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importing..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Imported"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exported"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Every day"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "To do"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Due date"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "No due date"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Priority"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarm time has already passed"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Invalid repeat period"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Repeating event"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "End time should be set after start time"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Calendar sync in progress"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Invalid time"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Every %d days"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Every %d weeks"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Completed"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "New task"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Edit task"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Lock event times and dates to your selected time zone below. Times and dates will not change even if you move to another time zone"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Task details"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Event details"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "No tasks"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Declined"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Tentative"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegated"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Attendance status"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Delete task"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Change all events in the series"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Create event"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Event"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendar"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Search location"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Done"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetition"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Reminders"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Description"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Import calendars"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Out of office"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Add to contact"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "View"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendars to display"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "My calendar"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "My task"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Contact's birthday"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Show week number"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "My phone"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Every day"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacy"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "View"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "week(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "day(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Change only this event"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Every 2 weeks"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Every 3 days"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "No due date"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximum number of characters reached"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tasks"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s's birthday"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s's anniversary"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Export S Planner data from your phone"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "mins"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "hours"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "days"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "week"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hour"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "day"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Delete"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Attachment"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Today"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "More"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "All this month"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "All day"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "All events before today"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "All this day"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "All this week"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "All this year"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Busy"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Due today"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Out of office"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Public"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Show me as"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Tap to create a task"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Photo"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Create event"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Create task"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transfer complete"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Overdue"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Due in over 1 week"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Free"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Private"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "days"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "hours"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Locale default"
+
diff --git a/po/es_ES.po b/po/es_ES.po
new file mode 100755 (executable)
index 0000000..1ef9dd4
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Todos los calendarios"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Día"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semana"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opciones de envío"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportar"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Lunes"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primer día de la semana"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "En hora"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Bloquear zona horaria"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Zona horaria"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetir hasta"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participante"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Año"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetir"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Editar evento"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Recordatorio"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Todas las semanas"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Todos los meses"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Todos los años"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Evento nuevo"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tarea"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Mostrar tareas completadas"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Crear"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Título"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "A"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min antes"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min antes"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hora antes"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 día antes"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 días antes"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 semana antes"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ninguno"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Guardar"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calendarios"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Mensajes"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Correo electrónico"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Guardar"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Este evento se eliminará"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Mensajes"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Lunes"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nombre"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importar eventos/tareas"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Exportar eventos/tareas"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "No se han encontrado resultados"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensual"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Antes"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "antes"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "A diario"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Hora de finalización"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensual"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hora de inicio"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Toque para introducir ubicación"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Toque para introducir nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Toque para escribir título"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Semanal"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anual"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Toque para introducir participante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Todo el día"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "semanas"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Estado"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Cuenta predeterminada"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincr. de calendario"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventos"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "No se ha seleccionado ninguna ubicación"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Eliminar evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "¿Enviar mensajes a participantes?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participantes"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendarios"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Sin calendarios"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Sólo este evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Todos los eventos repetitivos"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sin título"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hora"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "veces"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendario vinculado"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendario del teléfono"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista diaria"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista semanal"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "No se puede encontrar ubicación"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "día"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Guardar en"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "No hay eventos"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizar"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "¿Guardar?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostrar eventos por semana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Diseño en vista por mes"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostrar eventos por día"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportando..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importando..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importadas"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportado"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Todos los días"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Pendiente"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Fecha de vencimiento"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "No hay fecha de finaliz"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioridad"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "La hora de la alarma ya ha pasado"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Periodo de repetición no válido"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Repitiendo evento"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "La hora de finalización debe definirse después de la hora de inicio"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sincronización de agenda en curso"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Hora no válida"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Cada %d días"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Cada %d semanas"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Complet."
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nueva tarea"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Editar tarea"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Bloquee las fechas y las horas de los eventos en la zona horaria seleccionada a continuación. Las fechas y las horas no cambian incluso si se mueve a otra zona horaria"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalles de la tarea"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detalles de evento"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "No hay tareas"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Rechazado"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Provisional"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegado"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Estado de asistencia"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Eliminar tarea"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Cambiar todos los eventos de las series"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Crear evento"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Evento"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendario"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Buscar ubicación"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Final."
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetición"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Recordatorios"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Descripción"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importar calendarios"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fuera de la oficina"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Añadir a contacto"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendarios para mostrar"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mi calendario"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Mi tarea"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Cumpleaños del contacto"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Mostrar número de semana"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mi teléfono"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Personalizar"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Todos los días"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacidad"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "semana(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "día(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Cambiar sólo este evento"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Cada 2 semanas"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Cada 3 días"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "No hay fecha de finalización"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Alcanzado el número máximo de caracteres"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tareas"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Cumpleaños de %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Aniversario de %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exportar datos de S Planner desde su teléfono"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "horas"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "días"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "Sem."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hora"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "día"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Elim."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Archivo adjunto"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Hoy"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Más"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Todo este mes"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Todo el día"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Todos los eventos anteriores a hoy"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Todo este día"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Toda esta semana"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Todo este año"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Ocupado"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Vence hoy"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fuera de la oficina"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Público"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Mostrarme como"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Toque para crear una tarea"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Crear evento"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Crear tarea"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transferencia completada"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Vencida"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Vence en más de 1 semana"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Libre"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privado"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "En hora"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "días"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "horas"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Configuración regional predeterminada"
+
diff --git a/po/es_MX.po b/po/es_MX.po
new file mode 100755 (executable)
index 0000000..eddf352
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Todo el calendario"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Día"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semana"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opciones de envío"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportar"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Lunes"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primer día de la semana"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Hora"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Bloquear zona horaria"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Zona horaria"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetir hasta"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participante"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Año"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetir"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Editar evento"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Recordatorio"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Semanalmente"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Mensualmente"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Anualmente"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Evento nuevo"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tareas"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Mostrar tareas finalizadas"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Crear"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Título"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "A"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min antes"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 mins antes"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hora antes"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 día antes"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 días antes"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 semana antes"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ninguno"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Guardar"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calendarios"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Mensaje"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Correo"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Guardar"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Este evento se eliminará"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Mensaje"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Configuración"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Lunes"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nombre"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importar eventos/tareas"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Exportar eventos/tareas"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "No se han encontrado resultados"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensualmente"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Antes"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "antes"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Diariamente"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Hora final"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensualmente"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hora inicial"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Pulse para introducir ubicación"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Pulse para introducir nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Pulse para introducir título"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Semanalmente"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anualmente"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Pulse para introducir participante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Todo el día"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "semanas"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Estado"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Cuenta predeterminada"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronización de calendario"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventos"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "No se ha seleccionado ubicación"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Eliminar evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "¿Enviar mensajes a los participantes?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participantes"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendarios"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Sin eventos"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Sólo este evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Todos los eventos repetitivos"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sin título"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hora"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "veces"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendario vinculado"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendario del teléfono"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista diaria"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista semanal"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "No se puede encontrar ubicación"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "día"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Guardar en"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "No hay eventos"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizar"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "¿Guardar?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostrar eventos por semana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Diseño en vista mensual"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostrar eventos por día"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportando..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importando..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importadas"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportado"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Diariamente"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Pendiente"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Fecha final"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "No hay fecha programada"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioridad"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "La hora de alarma ya ha pasado"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Periodo de repetición no válido"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Repitiendo evento"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "La hora final debe definirse después de la hora inicial"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sincronización de agenda en curso"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Hora no válida"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Cada %d días"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Cada %d semanas"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Completa"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nueva tarea"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Editar tarea"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Bloquee las fechas y las horas de los eventos en la zona horaria seleccionada a continuación. Las fechas y las horas no cambian incluso si se mueve a otra zona horaria"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalles de tarea"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detalles del evento"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "No hay tareas"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Rechazado"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Provisional"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegado"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Estado de asistencia"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Eliminar tarea"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Cambiar todos los eventos en la serie"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Crear evento"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Evento"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendario"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Buscar ubicación"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Realizado"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetir"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Recordatorios"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Descripción"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importar calendarios"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fuera de oficina"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Añadir a contacto"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendarios para mostrar"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mi calendario"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Mi tarea"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Cumpleaños de contacto"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Mostrar número de semana"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mi teléfono"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Diariamente"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacidad"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "semana(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "día(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Cambiar sólo este evento"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Cada dos semanas"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Cada tres días"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Sin fecha final"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Se ha alcanzado el número máximo de caracteres"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tareas"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Cumpleaños de %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Aniversario de %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exportar datos de S Planner desde su dispositivo"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "horas"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "días"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "sem."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hora"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "día"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Adjunto"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Hoy"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Más"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Todo este mes"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Todo el día"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Todos los eventos anteriores a hoy"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Todo este día"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Toda esta semana"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Todo este año"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Ocupado"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Vence hoy"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fuera de oficina"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Público"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Mostrarme como"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Pulse para crear una tarea"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Crear evento"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Crear tarea"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transferencia completada"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Vencida"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Vence en más de 1 semana"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Libre"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privado"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "días"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "horas"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Predeterminado local"
+
diff --git a/po/es_US.po b/po/es_US.po
new file mode 100755 (executable)
index 0000000..96e19b4
--- /dev/null
@@ -0,0 +1,357 @@
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Todo el calendario"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Día"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semana"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opciones de envío"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportar"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Lunes"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primer día de la semana"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Hora"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Bloquear zona horaria"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Zona horaria"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetir hasta"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participante"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Año"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetir"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Editar evento"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Recordatorio"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Semanalmente"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Mensualmente"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Anualmente"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Evento nuevo"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tareas"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Mostrar tareas finalizadas"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "A"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importar eventos/tareas"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Exportar eventos/tareas"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "No se han encontrado resultados"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensualmente"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Antes"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "antes"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Diariamente"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Hora final"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensualmente"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hora inicial"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Pulse para introducir ubicación"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Pulse para introducir nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Pulse para introducir título"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Semanalmente"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anualmente"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Pulse para introducir participante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Todo el día"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "semanas"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Estado"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Cuenta predeterminada"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronización de calendario"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventos"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "No se ha seleccionado ubicación"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Eliminar evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "¿Enviar mensajes a los participantes?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participantes"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendarios"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Sin eventos"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Sólo este evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Todos los eventos repetitivos"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sin título"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hora"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "veces"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendario vinculado"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendario del teléfono"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista diaria"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista semanal"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "No se puede encontrar ubicación"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Ubicación"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "día"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Guardar en"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "No hay eventos"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizar"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "¿Guardar?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostrar eventos por semana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Diseño en vista mensual"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostrar eventos por día"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportando..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importando..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importadas"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportado"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Diariamente"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Fecha final"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "No hay fecha programada"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioridad"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "La hora de alarma ya ha pasado"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Periodo de repetición no válido"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Repitiendo evento"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "La hora final debe definirse después de la hora inicial"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sincronización de agenda en curso"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Hora no válida"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Cada %d días"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Cada %d semanas"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nueva tarea"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Editar tarea"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Bloquee las fechas y las horas de los eventos en la zona horaria seleccionada a continuación. Las fechas y las horas no cambian incluso si se mueve a otra zona horaria"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalles de tarea"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detalles del evento"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "No hay tareas"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Rechazado"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Provisional"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Estado de asistencia"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Eliminar tarea"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendarios para mostrar"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mi calendario"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Mi tarea"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Cumpleaños de contacto"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Mostrar número de semana"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mi teléfono"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Sin fecha final"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tareas"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Cumpleaños de %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Aniversario de %s"
+
diff --git a/po/et.po b/po/et.po
new file mode 100755 (executable)
index 0000000..a6680e8
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Asukoht"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Kogu kalender"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Päev"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Nädal"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Saatmisvalikud"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Eksport"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Pühapäev"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Esmaspäev"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Nädala esimene päev"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Kellaajal"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Loend"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Lukusta ajavöönd"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Ajavöönd"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Korda kuni"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Osaleja"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Aasta"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Korda"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Muuda sündmust"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Meeldetuletus"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Iga nädal"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Iga kuu"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Iga aasta"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Uus sündmus"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Ülesanne"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Kuva lõpetatud ülesanded"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Loo"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Pealkiri"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Asukoht"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Kaart"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Algus"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Kuni:"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Väljas"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min enne"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 minutit varem"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 tund varem"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 päev varem"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 päeva varem"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 nädal varem"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Puudub"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Märkus"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Salvesta"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalend-rid"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Kuu"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Muuda"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Otsi"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Sõnum"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-post"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Muuda"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Salvesta"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Kustuta"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "See sündmus kustutatakse"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Sõnum"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Seaded"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Pühapäev"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Esmaspäev"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nimi"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Impordi sündm./üles."
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Ekspordi sündm./üles."
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "EL"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Tavaline"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Tulemusi ei leitud"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Iga kuu"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Enne"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "enne"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Igapäevane"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Lõppkellaaeg"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Iga kuu"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Kuu"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Alguskellaaeg"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Puudutage, et sisestada asukohta"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Puudutage, et sisestada märkust"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Toksake, et sisestada pealkiri"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Kuu"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Iganädalane"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Iga-aastane"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "puudutage, et sisestada osalejat"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "N"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Terve päev"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "nädalat"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "nädal"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Olek"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Vaikekonto"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Kaart"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Kalendri sünkroonimine"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Sündmused"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Asukohta pole valitud"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Kustuta sündmus"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Kas saata osalejatele sõnumeid?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Osalejad"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendrid"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Kalendreid pole"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Ainult see sündmus"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Kõik korduvad sündmused"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Pealkirjata"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "tund"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "korda"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Lingitud kalender"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefoni kalender"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Päevavaade"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Nädalavaade"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Asukohta ei leita"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Asukoht"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "päev"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "nädal"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Salvestuskoht"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Sündmusi pole"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Kohanda"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Salvestada?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Kuva sündmused nädala kaupa"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Paigutus kuuvaates"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Kuva sündmused päevade kaupa"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Eksportimine..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importimine..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Imporditud"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Eksporditud"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Iga päev"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Ülesanne"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Tähtaeg"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Tähtaeg puudub"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioriteet"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Märguande kellaaeg on juba möödunud"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Lubamatu kordusaeg"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Korduv üritus"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Lõppkellaaeg peab olema alguskellaajast hilisem"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Kalendri sünkroonimine on pooleli"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Vale kellaaeg"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Iga %d päeva järel"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Iga %d nädala järel"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Valmis"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Uus ülesanne"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Muuda ülesannet"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Lukustage sündmuste kellaajad ja kuupäevad allpool valitud ajavööndile. Kellaajad ja kuupäevad ei muutu isegi siis, kui liigute teise ajavööndisse"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Ülesande üksikasjad"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Sündmuse üksikasjad"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Ülesandeid pole"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Keeldutud"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Esialgne"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegeeritud"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Osavõtu olek"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Kustuta ülesanne"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Muuda kõiki sarja sündmusi"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Loo sündmus"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Sündmus"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalender"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Otsi asukohta"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Valmis"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Kordus"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Meeldetuletused"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Kirjeldus"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Impordi kalendrid"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Kontorist väljas"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Lisa kontaktile"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Kuva"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Kalendrid, mida kuvada"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Minu kalender"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Minu ülesanne"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Kontakti sünnipäev"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Näita nädala numbrit"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Minu telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PL"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Iga päev"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privaatsus"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Kuva"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "nädal(at)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "päev(a)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Muuda ainult seda sündmust"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Iga 2 nädala järel"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Iga 3 päeva järel"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Tähtaeg puudub"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Lubatud arv märke on täis"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Ülesanded"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s-i sünnipäev"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s'i tähtpäev"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Eksportige S Planneri andmed oma telefonist"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "tundi"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "päeva"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "näd."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "tund"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "päev"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Kust."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Manus"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Täna"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Veel"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Kogu käesolev kuu"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Terve päev"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Kõik sündmused enne tänast"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Kogu tänane päev"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Kogu käesolev nädal"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Kogu käesolev aasta"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Hõivatud"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Tähtaeg täna"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Kontorist väljas"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Avalik"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Kuva minu olekuks"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Toksake, et luua ülesannet"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Loo sündmus"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Loo ülesanne"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Edastamine on lõppenud"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Aegunud"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Tähtaeg rohkem kui 1 nädala pärast"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Vaba"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privaat"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "päeva"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "tundi"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Vaikimisi kasutuskoha järgi"
+
diff --git a/po/eu.po b/po/eu.po
new file mode 100755 (executable)
index 0000000..a46ac8a
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Kokalekua"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Egutegi osoa"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Eguna"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Astea"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Bidalketa aukerak"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Esportatu"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Igandea"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Astelehena"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Asteko lehen eguna"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Garaiz"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Zerrenda"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Blokeatu ordu eremua"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Ordu eremua"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Errepikatu honera arte:"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Partaidea"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Urtea"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Errepikatu"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Editatu gertaera"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Gogorarazlea"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Astero"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Hilero"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Urtero"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Gertaera berria"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Ataza"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Erakutsi burututako atazak"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Sortu"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Izenburua"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Kokalekua"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Noiztik"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Noiz arte"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Desaktibatuta"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min lehenago"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min lehenago"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "Ordu 1 lehenago"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "Egun 1 lehenago"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 egun lehenago"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "Aste 1 lehenago"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Bat ere ez"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Oharra"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Gorde"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Ezeztatu"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Egutegiak"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Hila"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Editatu"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Bilaketa"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Mezua"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Posta elektroniko mezuak"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Editatu"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Gorde"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Ezabatu"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Gertaera hau ezabatu egingo da"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Mezua"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Ezarpenak"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Igandea"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Astelehena"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Izena"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Inportatu gertaerak/atazak"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Esportatu gertaerak/atazak"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Arrunta"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Ez da emaitzarik aurkitu"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Hilero"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Lehenago"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "lehenago"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Egunero"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Amaiera ordua"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Hilero"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Hilabetea"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hasiera ordua"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Ukitu kokapena adierazteko"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Ukitu oharra sartzeko"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Ukitu izenburua sartzeko"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Hilabetea"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Astero"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Urtero"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Ukitu partaidea adierazteko"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "A"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Egun osoa"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "aste(ak)"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "astea"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Egoera"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Lehenetsit. kontua"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Egutegiaren sinkronizazioa"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Gertaerak"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Ez da kokapenik hautatu"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Ezabatu gertaera"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Bidali mezuak partaideei?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Partaideak"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Egutegiak"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Egutegirik ez"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Gertakari hau soilik"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Gertaera errepikakor guztiak"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Izenbururik ez"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "ordu(a)"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "aldiz"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Lotutako egutegia"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefonoko egutegia"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Eguneroko ikuspegia"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Asteko ikuspegia"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Ezin da kokapena aurkitu"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Kokalekua"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "egun(a)"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "astea"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Hemen gorde"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Gertaerarik ez"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Pertsonalizatu"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Gorde?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Erakutsi gertaerak asteka"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Itxura hilabete ikuspegian"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Erakutsi gertaerak eguneka"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Esportatzen..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Inportatzen..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Inportatua"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Esportatuta"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Egunero"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Egiteke"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Epemuga"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Mugaegunik ez"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Lehentasuna"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarmaren ordua dagoeneko igaro da"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Errepikatze aldi baliogabea"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Gertaera errepikatua"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Amaiera ordua hasierakoaren ondoren ezarri behar da"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Egutegiko sinkronizazioa abian"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Ordu baliogabea"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "%d egunez behin"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "%d aste bakoitzeko"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Osatua"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Ataza berria"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Editatu ataza"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Blokeatu ordu-eremuak eta datak azpian hautatu duzun ordu-eremuaren arabera. Ordua eta data ez dira aldatuko, nahiz eta beste ordu eremu batera mugitu"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Atazaren xehetasunak"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Gertaeraren zehaztasunak"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Eginkizunik ez"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Ezetsia"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Behin behinekoa"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Eskuordetua"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Ostalaria"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Joatearen egoera"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Ezabatu egitekoa"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Aldatu serieko gertaera guztiak"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Sortu gertaera"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Gertaera"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Egutegia"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Bilatu kokapena"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Amaituta"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Errepikapena"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Gogorarazpenak"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Deskribapena"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Inportatu egutegiak"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Bulegotik kanpo"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Kontaktuari gehitu"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Ikusi"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Erakusteko egutegiak"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Nire egutegia"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Nire atazak"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Kontaktuaren urtebetetzea"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Erakutsi aste zenbakia"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Nire telefonoa"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Egunero"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Pribatutasuna"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Ikuspegia"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "astea(k)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "egun(ak)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Aldatu gertakari hau soilik"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "2 astero"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "3 egunero"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Ez dago mugaegunik"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Gehienezko karaktere kopurura heldu zara"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Atazak"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s-en urtebetetzea"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s-(r)en urteurrena"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Esportatu S Planner datuak zure telefonotik"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "ordu"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "egun"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "aste"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "ordu"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "egun"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Ezab."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Eranskina"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Gaur"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Geh."
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Hilabete osoa"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Egun osoa"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Gaurko egunaren aurreko gertakari guztiak"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Egun osoa"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Aste osoa"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Urte osoa"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Lanpetuta"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Gaur da muga eguna"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Bulegotik kanpo"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Publikoa"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Erakutsi ni honela"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Sakatu eginkizun bat sortzeko"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Argazkia"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Sortu hitzordua"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Ataza sortu"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transferentzia osatuta"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Berandututa"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Muga eguna astebete barru baino gehiago da"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Libre"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Pribatua"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "egun(ak)"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "ordu(ak)"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Lehenetsitako eszena"
+
diff --git a/po/fi.po b/po/fi.po
new file mode 100755 (executable)
index 0000000..a5060bc
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Osoite"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Koko kalenteri"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Päivä"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Viikko"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Lähetysasetukset"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Vie"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Sunnuntai"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Maanantai"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Viikon 1. päivä"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Ajallaan"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Luettelo"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Lukitse aikavyöhyke"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Aikavyöhyke"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Toista asti"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Osaanottaja"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Vuosi"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Toista"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Muokkaa tapahtumaa"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Muistutus"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "viikoittain"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "kuukausittain"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Vuosittain"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Uusi tapahtuma"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tehtävä"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Näytä suoritetut tehtävät"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Luo"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Otsikko"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Paikka"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Kartta"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Alkaa"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Asti"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Pois"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min ennen"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 minuuttia ennen"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 tuntia ennen"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 päivää ennen"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 päivää ennen"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 viikkoa ennen"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ei mitään"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Huomautus"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Tallenna"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalenterit"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Kuukausi"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Muokkaa"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Poista"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Hae"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Viesti"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Sähköposti"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Muokkaa"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Tallenna"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Poista"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Poista"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Tämä tapahtuma poistetaan"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Viesti"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Sunnuntai"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Maanantai"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nimi"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Tuo tapahtumat/tehtävät"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Vie tapahtumat/tehtävät"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AP"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normaali"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Tuloksia ei löytynyt"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Joka kuukausi"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Ennen"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "ennen"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Päivittäin"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Päättymisaika"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Joka kuukausi"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Kuukausi"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Alkamisaika"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Anna sijainti napauttamalla"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Kirjoita muistio napauttamalla"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Kirjoita otsikko napauttamalla"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Kuukausi"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Viikoittain"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Joka vuosi"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Anna osanottaja napauttamalla"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "V"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Koko päivä"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "viikkoa"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "viikko"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Tila"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Oletustili"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Kartta"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Kalenterin synkronointi"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Tapahtumat"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Sijaintia ei ole valittu"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Poista tapahtuma"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Lähetetäänkö osanottajille viesti?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Osanottajat"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalenterit"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Ei kalentereita"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Vain tämä tapahtuma"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Kaikki toistuvat tapahtumat"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Otsikko puuttuu"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "tunti"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "kertaa"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Linkitetty kalenteri"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Puhelimen kalenteri"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Päivänäkymä"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Viikkonäkymä"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Sijaintia ei löydy"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Paikka"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "päivä"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "viikko"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Tallenna paikkaan"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Ei tapahtumia"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Mukauta"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Tallennetaanko?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Näytä tapahtumat viikon mukaan"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Kuukausinäkymän asettelu"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Näytä tapahtumat päivän mukaan"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Viedään..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Tuodaan..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Tuotu"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Viety"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Päivittäin"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Tekemättä"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Määräpäivä"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Ei määräpäivää"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Tärkeys"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Hälytysaika on jo ohitettu"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Virheellinen\ntoistoajankohta"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Toistuva tapahtuma"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Päättymisaika on asetettava alkamisaikaa myöhäisemmäksi"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Kalenterin synkronointi käynnissä"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Aika ei kelpaa"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Joka %d. päivä"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Joka %d. viikko"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Tehty"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Uusi tehtävä"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Muokkaustehtävä"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Lukitse tapahtumien kellonajat ja päivämäärät valitun aikavyöhykkeen mukaisiksi. Kellonajat ja päivämäärät eivät muutu, vaikka siirryt toiselle aikavyöhykkeelle"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Tehtävän tiedot"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Tapahtuman tiedot"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Ei tehtäviä"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Hylätty"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Alustava"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegoitu"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Isäntä"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Osallistumisen tila"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Poista tehtävä"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Muuta kaikki sarjan tapahtumat"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Luo tapahtuma"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Tapahtuma"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalenteri"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Hakusijainti"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Valmis"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Toisto"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Muistutukset"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Kuvaus"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Tuo kalentereita"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Poissa"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Lisää yhteystietoon"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Näytä"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Näytettävät kalenterit"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Oma kalenteri"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Oma tehtävä"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Yhteyshenk. syntymäpäivä"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Näytä viikon numero"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Oma puhelin"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "IP"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Päivittäin"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Yksityisyys"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Näytä"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "viikkoa"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "päivä(ä)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Muuta vain tämä tapahtuma"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Joka toinen viikko"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Joka kolmas päivä"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Ei määräpäivää"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Merkkien enimmäismäärä saavutettu"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tehtävät"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Henkilön %s syntymäpäivä"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s: vuosipäivä"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Vie kalenteritiedot puhelimesta"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "tuntia"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "päivää"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "vko"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "t."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "päivä"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Poista"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Liite"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Tänään"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Lisää"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Koko kuukausi"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Koko päivä"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Kaikki tapahtumat ennen tätä päivää"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Koko päivä"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Koko viikko"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Koko vuosi"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Varattu"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Eräpäivä tänään"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Poissa"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Julkinen"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Näytä minut tilassa"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Luo tehtävä napauttamalla"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Valokuva"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Luo tapahtuma"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Luo tehtävä"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Siirto valmis"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Myöhässä"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Eräpäivä yli viikon kuluttua"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Vapaa"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Yksityinen"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "päivää"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "tuntia"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Oletusalue"
+
diff --git a/po/fr_CA.po b/po/fr_CA.po
new file mode 100755 (executable)
index 0000000..40f4bcf
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Emplacement"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Tout le calendrier"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Jour"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semaine"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Options d'envoi"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exporter"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Dimanche"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Lundi"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Premier jour de la semaine"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "À l'heure"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Liste"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Verr. fuseau horaire"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Fuseau horaire"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Répéter jusqu'à"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participant"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Année"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Nombre de répétitions"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Modifier l'événement"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Rappel"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Chaque semaine"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Chaque mois"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Chaque année"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Nouvel évènement"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tâche"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Afficher les tâches terminées"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Créer"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Titre"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Emplacement"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Plan"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "À"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min avant"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 minutes avant"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 heure avant"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 jour avant"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 jours avant"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 semaine avant"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Aucun"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Note"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Sauv."
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calend."
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mois"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Modifier"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Courriel"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Modifier"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Sauv."
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Cet évènement sera supprimé"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Dimanche"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Lundi"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nom"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importer évèn./tâches"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Exporter évèn./tâches"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normale"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Aucun résultat trouvé"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Tous les mois"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Avant"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "avant"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Tous les jours"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Heure de fin"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Tous les mois"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mois"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Heure de début"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Touchez pour entrer un emplacement"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Touchez pour entrer une note"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Touchez pour saisir un titre"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mois"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Toutes les semaines"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Tous les ans"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Touchez pour entrer un participant"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Toute la journée"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "semaines"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semaine"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "État"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Compte par défaut"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Plan"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Synchronisation des calendriers"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Évènements"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Aucun endroit sélectionné"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Supprimer l'événement"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Envoyer les messages aux participants ?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participants"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendriers"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Aucun calendrier"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Uniquement cet évènement"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Tous les évènements récurrents"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sans titre"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "heure"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "fois"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendrier partagé"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendrier du téléphone"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Affichage quotidien"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Affichage hebdomadaire"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Localisation introuvable"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Emplacement"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "jour"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semaine"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Enregistrer dans"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Aucun événement"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personnaliser"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Enregistrer ?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Afficher évènements par semaine"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Affichage mensuel"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Afficher évènements par jour"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportation..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importation..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importé"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exporté"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Tous les jours"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Tâches"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Date d'échéance"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Aucune date d'échéance"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Priorité"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Heure d'alarme déjà passée"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Période de récurrence non valide"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Évènement récurrent"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "L'heure de fin doit être ultérieure à l'heure de début"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Synchro calendrier en cours"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Heure non valide"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Tous les %d jours"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Toutes les %d semaines"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Terminé"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nouvelle tâche"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Modifier tâche"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Verrouillez les heures et les dates des évènements en fonction du fuseau horaire sélectionné ci-dessous. Les heures et les dates ne seront pas modifiées même si vous définissez un autre fuseau horaire"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Détails de la tâche"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Détails de l'événement"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Aucune tâche"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Refusé"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Tentative"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Délégué"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Hôte"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Statut de participation"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Supprimer la tâche"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Modifier tous les évènements de la série"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Créer un évènement"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Évènement"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendrier"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Rechercher un lieu"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "OK"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Répétition"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Rappels"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Description"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importer des calendriers"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Absent"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Ajouter aux contacts"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Afficher"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendriers à afficher"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mon calendrier"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Ma tâche"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Anniversaire du contact"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Afficher le numéro de la semaine"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mon téléphone"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Personnaliser"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Tous les jours"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Confidentialité"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Afficher"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "semaine(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "jour(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Modifier uniquement cet évènement"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Toutes les 2 semaines"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Tous les 3 jours"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Aucune date d'échéance"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nb. max. de caractères atteint"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tâches"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Anniversaire de %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Anniversaire de %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exporter les données S Calendrier de votre téléphone"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "heures"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "jours"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "sem."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "heure"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "jour"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Suppr."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Pièce jointe"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Aujourd'hui"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Autres"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Tout le mois"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Toute la journée"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Tous les évènements antérieurs à aujourd'hui"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Toute la journée"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Toute la semaine"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Année complète"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Occupé"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Échéance aujourd'hui"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Absent"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Public"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Me connecter en tant que"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Touchez pour créer une tâche"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Photo"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Créer évènement"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Nouvelle tâche"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transfert terminé"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Retard"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Échéance dans plus d'une semaine"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Libre"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Confidentiel"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "A l'heure"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "jours"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "heures"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Paramètres régionaux par défaut"
+
diff --git a/po/fr_FR.po b/po/fr_FR.po
new file mode 100755 (executable)
index 0000000..44e685f
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Position"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Tout le calendrier"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Jour"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semaine"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Options d'envoi"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exporter"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Dimanche"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Lundi"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Premier jour de la semaine"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "A l'heure"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Liste"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Verrouiller fuseau horaire"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Fuseau horaire"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Répéter jusqu'à"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participant"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Année"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Nombre de répétitions"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Modifier l'événement"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Rappel"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Chaque semaine"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Chaque mois"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Chaque année"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Nouvel événement"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tâche"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Afficher les tâches terminées"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Créer"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Titre"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Emplacement"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Carte"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "A"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min avant"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min avant"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 heure avant"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 jour avant"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 jours avant"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 semaine avant"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Aucun(e)"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Note"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Enreg."
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calend."
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mois"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Modifier"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Rechercher"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Email"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Modifier"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Sauveg."
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Supprimer"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Cet événement va être supprimé"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Message"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Dimanche"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Lundi"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nom"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importer évén./tâches"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Exporter évén./tâches"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Aucun résultat trouvé"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensuel"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Avant"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "avant"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Tous les jours"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Heure de fin"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensuel"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mois"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Heure de début"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Appuyez pour entrer une localisation"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Appuyez pour entrer une note"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Appuyez pour entrer un titre"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mois"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Toutes les semaines"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Chaque année"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Appuyez pour entrer un participant"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Journée entière"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "semaines"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semaine"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Etat"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Compte par défaut"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Carte"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Synchro. des calendriers"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Evénements"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Aucun endroit sélectionné"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Supprimer l'événement"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Envoyer les messages aux participants ?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participants"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendriers"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Aucun calendrier"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Uniquement cet événement"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Tous les événements récurrents"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sans titre"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "heure"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "fois"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendrier associé"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendrier du téléphone"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Affichage Jour"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vue Semaine"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Localisation introuvable"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Emplacement"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "jour"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semaine"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Enregistrer sur"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Aucun événement"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personnaliser"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Enregistrer ?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Afficher événements hebdomadaires"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Affichage mensuel"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Afficher événements quotidiens"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportation..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importation en cours..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importé"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exporté"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Chaque jour"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Tâches"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Date d'échéance"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Aucune date d'échéance"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Priorité"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Heure d'alarme déjà passée"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Période répétée\nnon valide"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Evénement récurrent"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "L'heure de fin doit être définie après l'heure de début"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Synchro calendrier en cours"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Heure non valide"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Tous les %d jours"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Toutes les %d semaines"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Terminé"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nouvelle tâche"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Modifier tâche"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Verrouillez les heures et les dates des événements en fonction du fuseau horaire sélectionné ci-dessous. Les heures et les dates ne seront pas modifiées même si vous définissez un autre fuseau horaire"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Détails de la tâche"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Détails de l'événement"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Aucune tâche"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Refusé"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Provisoire"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Délégué"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Hôte"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Statut de participation"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Supprimer la tâche"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Modifier tous les événements de la série"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Créer événement"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Evénement"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendrier"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Rechercher un emplacement"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "OK"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Répétition"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Rappels"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Description"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importer des calendriers"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Absent"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Ajouter aux contacts"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Afficher"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendriers à afficher"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mon calendrier"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Mes tâches"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Anniversaire du contact"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Afficher le numéro de la semaine"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mon téléphone"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Personnaliser"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Chaque jour"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Confidentialité"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Afficher"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "semaine(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "jour(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Modifier uniquement cet événement"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Toutes les 2 semaines"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Tous les 3 jours"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Aucune date d'échéance"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nb. max. de caractères atteint"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tâches"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Anniversaire de %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Anniversaire de %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exporter les données S Calendrier de votre téléphone"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "heures"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "jours"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "sem."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hre"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "jour"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Suppr."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Pièce jointe"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Aujourd'hui"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Plus"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Tout le mois"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Journée entière"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Tous les événements antérieurs à aujourd'hui"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Toute la journée"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Toute la semaine"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Année complète"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Occupé"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Échéance aujourd'hui"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Absent"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Public"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Me connecter en tant que"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Appuyez pour créer une tâche"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Photo"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Créer événement"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Nouvelle tâche"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transfert terminé"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Retard"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Échéance dans plus d'une semaine"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Libre"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Confidentiel"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "A l'heure"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "jours"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "heures"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Paramètres régionaux par défaut"
+
diff --git a/po/ga.po b/po/ga.po
new file mode 100755 (executable)
index 0000000..85bcd55
--- /dev/null
+++ b/po/ga.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Suíomh"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Gach féilire"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Lá"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Seachtain"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Roghanna seolta"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Easpórtáil"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Dé Domhnaigh"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Dé Luain"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "An chéad lá den tseachtain"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "In am"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Liostaigh"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Amchrios glasála"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Amchrios"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Athdhéan go dtí"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Rannpháirtí"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Bliain"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Athdhéan"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Cuir imeacht in eagar"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Meabhrúchán"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Gach seachtain"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Gach mí"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Gach bliain"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Imeacht nua"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tasc"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Taispeáin tascanna atá curtha i gcrích"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Cruthaigh"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Teideal"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Suíomh"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Léarscáil"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Ó"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Chuig"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "As"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 nóim roimhe"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 nóiméad roimhe"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 uair an chloig roimhe"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 lá roimhe"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 lá roimhe"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 seachtain roimhe"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Dada"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Nóta"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Sábháil"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cuir ar ceal"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Féilirí"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mí"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Cuir in eagar"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Cuardaigh"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Teachtaireacht"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "R-phost"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Cuir in eagar"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Sábháil"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Scriosfar an t-imeacht seo"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Teachtaireacht"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Socruithe"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Dé Domhnaigh"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Dé Luain"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Ainm"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Iompórt. imeacht/tasc."
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Easpórt. imeacht/tasc."
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "R.N."
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normálta"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Níor aimsíodh torthaí"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Míosúil"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Roimh"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "roimh"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Laethúil"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Am deiridh"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Míosúil"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mí"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Am tosaigh"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tapáil le suíomh a iontráil"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tapáil le nóta a iontráil"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tapáil le teideal a iontráil"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mí"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Seachtainiúil"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Bliantúil"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tapáil le rannpháirtí a iontráil"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "An lá ar fad"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "seachtainí"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "seachtain"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Stádas"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Cuntas rshocraithe"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Léarscáil"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sioncronaigh féilire"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Imeachtaí"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Níl suíomh roghnaithe"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Scrios imeacht"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Seol teachtaireachtaí chuig rannpháirtithe?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Rannpháirtithe"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Féilirí"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Níl féilirí ann"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "An t-imeacht seo amháin"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Gach imeacht atriallach"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Níl teideal ann"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "uair an chloig"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "uaireanta"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Féilire nasctha"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Féilire fóin"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Amharc laethúil"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Amharc seachtainiúil"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Ní féidir an suíomh a aimsiú"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Suíomh"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "lá"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "seachtain"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Sábháil chuig"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Níl imeachtaí ann"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Saincheap"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Sábháil?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Taispeáin imeachtaí de réir seachtaine"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Leagan amach san amharc míosa"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Taispeáin imeachtaí de réir lae"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Ag easportáil..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Ag iompórtáil..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Iompórtáilte"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Easpórtáilte"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Gach lá"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Le déanamh"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Spriocdháta"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Níl spriocdháta ann"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Tosaíocht"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Tá am an aláraim thart cheana"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Tréimhse athdhéanaimh neamhbhailí"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Imeacht a athdhéantar"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Ní mór am deiridh a shocrú tar éis am tosaigh"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sionc féilire ar bun..."
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Am neamhbhailí"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Gach %d lá"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Gach %d seachtain"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Déanta"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Tasc nua"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Cuir tasc in eagar"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Glasáil amanna agus dátaí imeachta chuig d'amchrios roghnaithe thíos. Ní athrófar amanna ná dátaí fiú má bhogann tú chuig amchrios eile"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Sonraí an taisc"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Sonraí imeachta"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Níl tascanna ann"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Diúltaithe dó"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Trialach"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Tarmligthe"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Óstach"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Stádas freastail"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Scrios tasc"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Athraigh gach imeacht sa tsraith"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Cruthaigh imeacht"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Imeacht"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Féilire"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Suíomh cuardaithe"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Déanta"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Athdhéanamh"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Meabhrúcháin"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Cur síos"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Iompórtáil féilirí"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "As an oifig"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Cuir le teagmhálaí"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Amharc air"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Féilirí le taispeáint"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "M’fhéilire"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Mo thasc"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Breithlá teagmhálaí"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Taispeáin uimhir na seachtaine"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mo fhón"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "I.N."
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Gach lá"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Príobháideacht"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Amharc air"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "seachtain(í)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "lá (laethanta)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Ná hathraigh ach an t-imeacht seo"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Gach 2 sheachtain"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Gach 3 lá"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Níl spriocdháta ann"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Uaslíon na gcarachtar bainte amach"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tascanna"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Breithlá %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Lá cinn bliana %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Easpórtáil sonraí S Planner ó d'fhón"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "nóim"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "nóim"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "uair"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "lá"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "scht"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "uair"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "lá"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Scrios"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Ceangaltán"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Inniu"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Eile"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "An mhí seo ar fad"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "An lá ar fad"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Gach imeacht roimh inniu"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "An lá seo ar fad"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "An tseachtain seo ar fad"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "An bhliain seo ar fad"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Gnóthach"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Dlite inniu"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "As an oifig"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Poiblí"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Taispeáin mé mar"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Tapáil le tasc a chruthú"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Grianghraf"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Déan imeacht"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Déan tasc"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Aistriú críochnaithe"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Thar ceal"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Dlite i gceann níos mó ná 1 seachtain"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Saor in aisce"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Príobháideach"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "laethanta"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "uaireanta an chloig"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Réamhshocrú logchaighdeáin"
+
diff --git a/po/gl.po b/po/gl.po
new file mode 100755 (executable)
index 0000000..79d9d8b
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localización"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Todo o calendario"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Día"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semana"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opcións de envío"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportar"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Luns"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primeiro día da semana"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "En hora"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Bloquear zona horaria"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Zona horaria"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetir até"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participante"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Ano"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetir"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Editar evento"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Recordatorio"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Cada semana"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Cada mes"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Cada ano"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Novo evento"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tarefa"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Amosar tarefas finalizadas"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Crear"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Título"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Situación"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "A"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Desactivado"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min. antes"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min. antes"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hora antes"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 día antes"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 días antes"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 semana antes"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ningún"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Gardar"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calenda-rios"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Buscar"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Mensaxe"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Correo electrónico"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Gardar"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Eliminarase este evento"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Mensaxe"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Axustes"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Luns"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nome"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Import. eventos/tarefas"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Export. eventos/tarefas"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Non se atoparon resultados"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensualmente"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Antes"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "Antes"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "A diario"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Hora de finalización"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensualmente"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hora de inicio"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Toca para introducir a  localización"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Toca para introducir a nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Toca para introducir título"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mes"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Semanalmente"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anualmente"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Toca para introducir o  participante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Todo o día"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "semanas"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Estado"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Conta predeterm."
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronizar calendario"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventos"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Non hai ningunha localización seleccionada"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Eliminar evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Enviar mensaxes aos participantes?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participantes"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendarios"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Sen calendarios"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Só este evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Todos os eventos que se repiten"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sen título"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hora"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "veces"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendario vinculado"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendario do teléfono"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista diaria"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista semanal"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Non se pode atopar a localización"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Situación"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "día"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Gardar en"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Non hai eventos"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizar"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Gardar?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Amosar eventos por semana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Deseño en vista de mes"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Amosar eventos por día"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportando..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importando..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importadas"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportado"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Cada día"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Pendente"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Data de vencemento"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Sen data de vencemento"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioridade"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "A hora da alarma xa pasou"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Período de repetición non válido"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Repetindo evento"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "A hora de finalización debe ser posterior á de inicio"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sincronización do calendario en curso"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Hora non válida"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Cada %d días"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Cada %d semanas"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Completado"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nova tarefa"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Editar tarefa"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Bloquea horas e datas de eventos na zona horaria que seleccionaches abaixo. As horas e as datas non cambiarán aínda que vaias a outra zona horaria"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalles da tarefa"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detalles de evento"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Non hai tarefas"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Rexeitada"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Provisional"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegado"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Estado da asistencia"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Eliminar tarefa"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Cambiar todos os eventos da serie"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Crear evento"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Evento"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendario"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Buscar localización"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Fin."
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetición"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Recordatorios"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Descrición"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importar calendarios"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fóra da oficina"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Engadir a contacto"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendarios para visualizar"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "O meu calendario"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "A miña tarefa"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Aniversario do contacto"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Mostrar o número de semana"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "O meu teléfono"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Cada día"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacidade"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "semana(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "día(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Cambiar só este evento"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Cada 2 semanas"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Cada 3 días"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Sen data de vencemento"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres alcanzado"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tarefas"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Aniversario de %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Aniversario de %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exportar datos de S Planner do teu teléfono"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "horas"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "días"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "sem"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hora"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "día"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Elim"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Documento adxunto"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Hoxe"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Máis"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Todo este mes"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Todo o día"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Todos os eventos anteriores a hoxe"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Todo este día"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Toda esta semana"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Todo este ano"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Ocupado"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Vencemento hoxe"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fóra da oficina"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Público"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Mostrarme como"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Toca esta opción para crear unha tarefa"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Crear evento"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Crear tarefa"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transferencia completada"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Atrasada"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Vencemento en máis de 1 semana"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Libre"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privado"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "días"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "horas"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Predeterminado na configuración local"
+
diff --git a/po/hi.po b/po/hi.po
new file mode 100755 (executable)
index 0000000..a59d7d9
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "सभी कैलेंडर"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "दिन"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "सप्ताह"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "भेजनें के विकल्प"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "निर्यात करें"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "रविवार"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "सोमवार"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "सप्ताह का पहला दिन"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "समय पर"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "सूची"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "समय क्षेत्र लॉक करें"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "समय ज़ोन"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "तब तक दोहराएँ"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "भागीदार"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "वर्ष"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "दोहराएँ"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "प्रसंग संपादित करें"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "अनुस्मारक"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "प्रत्‍येक सप्‍ताह"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "प्रत्‍येक माह"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "प्रति वर्ष"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "नया प्रसंग"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "कार्य"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "पूर्ण कार्य दिखाएँ"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "बनाएँ"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "शीर्षक"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "मानचित्र"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "से"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "को"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "बंद"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 मिनट पहले"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 मिनट पहले"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 घंटा पहले"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 दिन पहले"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 दिन पहले"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 सप्‍ताह पहले"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "कुछ भी नहीं"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "टिप्पणी"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "सुरक्षित करें"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "रद्द"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "कैलेंडर्स"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "महीना"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "संपादन"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "खोजें"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "सन्देश"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "ईमेल"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "संपादित करें"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "सेव"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "यह प्रसंग हटाया जाएगा"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "सन्देश"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "रविवार"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "सोमवार"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "नाम"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "प्रसंगों/कार्यों को आयात करें"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "प्रसंगों/कार्यों को निर्यात करें"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "ए ऍम"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "सामान्य"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "कोई परिणाम नहीं मिले"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "मासिक"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "पहले"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "पहले"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "रोजाना"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "समाप्ति समय"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "मासिक"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "महीना"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "प्रारंभ समय"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "स्थान प्रविष्टि करने के लिए टैप करें"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "नोट प्रविष्टि करने के लिए टैप करें"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "शीर्षक प्रविष्टि करने के लिए टैप करें"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "महीना"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "साप्ताहिक"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "वार्षिक"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "सहभागी प्रविष्टि करने के लिए टैप करें"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "स"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "पूरा दिन"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "सप्ताह"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "सप्ताह"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "स्थिति"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "डिफॉल्ट खाता"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "मानचित्र"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "कैलेंडर सिंक"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "प्रसंग"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "कोई स्थान चुना नहीं"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "ईवेंट मिटाएँ"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "भागीदारों को Messages भेजें?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "सहयोगी"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "कैलेंडर्स"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "कोई कैलेंडर नहीं है"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "केवल इस घटना"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "सभी दोहरानेवाली ईवेंट्स"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "कोई शीर्षक नहीं"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "घंटा"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "बार"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "लिंक किया हुआ कैलेंडर"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "फ़ोन कैलेंडर"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "रोज़ाना दृश्य"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "साप्‍ताहिक दृश्‍य"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "स्थान ढूँढने में अक्षम"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "स्थान"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "दिन"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "सप्ताह"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "में सुरक्षित करें"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "प्रसंग नहीं"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "कस्टमाइज"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "सुरक्षित करें?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "सप्ताह के अनुसार इवेंट्स दिखाएँ"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "महीना दृश्य का लेआउट"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "दिन के अनुसार इवेंट्स दिखाएँ"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "निर्यात किया जा रहा है..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "आयात कर रहा है…"
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "आयात किया हुआ"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "निर्यात किया गया"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "प्रतिदिन"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "टु डू"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "नियत तिथि"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "कोई नियत तिथि नहीं"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "प्राथमिकता"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "अलार्म समय पहले ही समाप्त हो चुका है"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "अमान्य पुनरावृति\nअवधि"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "रिपीटिंग प्रसंग"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "समाप्ति समय प्रारम्भ समय के बाद सेट करें"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "कैलेंडर सिंक प्रगति पर है"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "अमान्य समय"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "प्रत्‍येक %d दिन"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "प्रत्‍येक %d सप्‍ताह"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "पूर्ण"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "नया कार्य"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "कार्य संपादित करें"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "प्रसंग समय और तिथि को आपके नीचे के चयनित समय क्षेत्र में लॉक करें। आपके अन्‍य समय क्षेत्र में जाने पर भी समय और तिथि नहीं बदलेंगे"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "कार्य विवरण"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "इवेंट विवरण"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "कार्य नहीं"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "अस्वीकृत"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "अंतिम"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "प्रत्यायोजित"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "होस्ट"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "उपस्थिति स्थिति"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "कार्य हटाएँ"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "श्रृंखला के सभी ईवेंट्स बदलें"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "प्रसंग बनाएँ"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "प्रसंग"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "कैलेंडर"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "खोज स्थान"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "हो गया"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "दोहराव"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "रिमाइंडर्स"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "विवरण"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "कैलेंडर्स आयात करें"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "ऑफ़िस से बाहर"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "संपर्क में जोड़ें"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "देखें"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "डिस्‍प्‍ले करने हेतु कैलेंडर्स"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "मेरा कैलेंडर"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "मेरा कार्य"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "संपर्क का जन्‍मदिन"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "सप्ताह नंबर दिखाएँ"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "मेरा फोन"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "प्रत्‍येक दिन"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "गोपनीयता"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "देखें"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "सप्‍ताह"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "दिन"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "केवल यही इवेंट बदले"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "प्रत्येक 2 सप्ताह"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "प्रत्येक 3 दिन"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "कोई नियत तिथि नहीं"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "वर्णो की संख्‍या अधिकतम पहुँची"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "कार्य"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s का जन्मदिन"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s की वर्षगाँठ"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "आपके फ़ोन से S Planner डाटा निर्यात करें"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "मिनट"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "मिनट"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "घंटे"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "दिन"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "सप्ताह"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "घंटा"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "दिन"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "हटाएँ"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "संलग्नक"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "आज"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "अधिक"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "यह पूरा महीना"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "पूरा दिन"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "आज से पहले के सभी प्रसंग"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "यह पूरा दिन"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "यह पूरा सप्ताह"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "यह पूरा वर्ष"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "व्यस्त"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "आज देय"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "ऑफ़िस से बाहर"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "सार्वजनिक"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "मुझे इस रूप में दिखाएँ"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "कार्य बनाने के लिए टैप करें"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "फोटो"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "प्रसंग बनाएँ"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "कार्य बनाएँ"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "स्थानांतरण पूर्ण"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "काफी समय से लंबित"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "1 सप्ताह से अधिक देय"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "मुक्त"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "निजी"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "दिन"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "घंटे"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "स्थान डिफ़ॉल्ट"
+
diff --git a/po/hr.po b/po/hr.po
new file mode 100755 (executable)
index 0000000..dda4c87
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Svi kalendari"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dan"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Tjedan"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opcije slanja"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Eksport"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Nedjelja"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Ponedjeljak"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Prvi dan tjedna"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Na vrijeme"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Popis"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Zaključati vremensku zonu"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Vremenska zona"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Ponavljaj do"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Sudionik"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Godina"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Ponavljanje"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Uredi događaj"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Podsjetnik"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Tjedno"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Mjesečno"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Godišnje"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Novi događaj"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Obaveza"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Prikaži obavljene obaveze"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Novi"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Karta"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "To"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min. prije"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min prije"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 sat prije"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dan prije"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dana prije"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 tjedan prije"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ništa"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Bilješka"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Spremi"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendari"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mjesec"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Uredi"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Pretraživanje"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Poruka"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Email"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Uredi"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Spremi"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Događaj će biti obrisan"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Poruka"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Nedjelja"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Ponedjeljak"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Ime"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Važni događaji/zadaci"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Izvezi događaje/zadatke"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normalna"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nema rezultata"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mjesečno"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Prije"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "prije"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Dnevno"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Vrijeme završetka"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mjesečno"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mjesec"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Vrijeme početka"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Unos lokacije"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Unos bilješke"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Unos naslova"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mjesec"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Tjedno"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Godišnje"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Unos sudionika"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "T"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Cijeli dan"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "tjedna"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "tjedan"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Postavljeni račun"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Karta"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sinkronizacija kalendara"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Događaji"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nema odabranih lokacija"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Obriši događaj"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Poslati poruke sudionicima?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Sudionici"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendari"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nema kalendara"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Samo ovaj događaj"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Svi ponavljajući događaji"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Nema naslova"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "sat"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "puta"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Povezani kalendar"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Kalendar telefona"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Dnevni prikaz"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Tjedni prikaz"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Nemoguće pronaći lokaciju"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dan"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "tjedan"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Spremi na"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nema događaja"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Prilagodi"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Spremiti?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Prikaži događaje po tjednu"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Izgled u mjesečnom prikazu"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Prikaži događaje po danu"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Eksport..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importiranje..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importirano"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Eksportirano"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Svaki dan"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Obveza"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Datum kraja"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Nema roka"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioritet"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Vriijeme alarma prošlo"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Neispravan period ponavljanja"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Ponavljajući događaj"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Vrijeme završetka mora biti nakon početka"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sinkr. kalendara u tijeku"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Neispravno vrijeme"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Svakih %d dana"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Svakih %d tjedana"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Završeno"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nova obaveza"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Uredi obvezu"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Zaključajte vremena i datume događaja za odabranu vremensku zonu. Vremena i datumi događaja neće se promijeniti, čak i ako pređete u drugu vremensku zonu"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalji obveze"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detalji događaja"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Nema zadataka"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Odbijeno"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Provizoran"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegiran"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Računalo"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Status o dolasku"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Obriši zadatak"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Promijeni sve događaje u nizu"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Novi događaj"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Događaj"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalendar"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Traži lokaciju"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "OK"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Ponavljanje"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Podsjetnici"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Opis"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Uvezi kalendare"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Izvan ureda"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Dodaj kontaktu"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Prikaz"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Kalendari za prikaz"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Moj kalendar"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Moja obaveza"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Rođendan kontakta"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Prikaži broj tjedna"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Moj telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "svaki dan"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privatnost"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Prikaz"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "tjedan(i)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "dan(i)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Promijeni samo ovaj događaj"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Svaka 2 tjedna"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Svaka 3 dana"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Nema roka"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maks. broj znakova"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Obaveze"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s ima rođendan"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s ima godišnjicu"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Izvezite podatke iz S Planera s telefona"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "sati"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dani"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "tje."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "sat"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dan"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Privitak"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Danas"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Više"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Cijeli ovaj mjesec"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Cijeli dan"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Svi događaji prije danas"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Cijeli dan danas"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Cijeli ovaj tjedan"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Cijela ova godina"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Zauzeto"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Za danas"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Izvan ureda"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Javno"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Pokaži me kao"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Dodirnite za novi zadatak"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fotografija"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Novi događaj"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Nova obaveza"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Prijenos završen"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Rok istekao"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Rok za više od 1 tjedna"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Slobodno"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privatno"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dani"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "sati"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Regionalne postavke zadano"
+
diff --git a/po/hu.po b/po/hu.po
new file mode 100755 (executable)
index 0000000..e30e5d1
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Minden naptár"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Nap"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Hét"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Küldés beállítások"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportálás"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Vasárnap"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Hétfő"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "A hét első napja"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Időpontban"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Időzóna zárolása"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Időzóna"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Ismétlés határideje:"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Részt- vevő"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Év"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Ismétlés"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Esemény szerkesztése"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Emlékeztető"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "hetente"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "havonta"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Évente"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Új esemény"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Teendők"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Befejezett feladatok megjelenítése"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Létrehoz"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Cím"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Térkép"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Ettől"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Címzett"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Ki"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 perccel előtte"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 perccel előtte"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 órával előtte"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 nappal előtte"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 nappal előtte"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 héttel előtte"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Nincs"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Jegyzet"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Ment"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Naptárak"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Hónap"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Szerkeszt"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Töröl"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Keresés"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Üzenet"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Szerkeszt"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Ment"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Töröl"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Töröl"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Törli ezt az eseményt?"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Üzenet"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Vasárnap"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Hétfő"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Név"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Esem./feladatok imp."
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Esem./feladatok exp."
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "de."
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normál"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nincs találat"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Havonta"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Előtte"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "előtte"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Naponta"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Befejezés ideje"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Havonta"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Hónap"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Kezdés ideje"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Érintse meg hely megadásához"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Érintse meg jegyzet beírásához"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Érintse meg cím megadásához"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Hónap"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Hetente"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Évente"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Érintse meg résztvevő megadásához"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "hét"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Egész nap"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "hét"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "hét"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Állapot"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Alapértelm. fiók"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Térkép"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Naptár szinkronizálása"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Események"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nincs kiválasztva hely"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Esemény törlése"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Küld üzenetet a résztvevőknek?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Résztvevők"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Naptárak"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nincs naptár"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Csak ez az egy esemény"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Összes ismétlődő esemény"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Nincs cím"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "óra"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "alkalommal"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Csatolt naptár"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefon naptára"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Napi nézet"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Heti nézet"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Nem található a hely"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Hely"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "nap"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "hét"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Mentés ide"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nincs esemény"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Testreszabás"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Menti?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Események hetenkénti megjelenítése"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Elrendezés havi nézetben"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Események naponkénti megjelenítése"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportálás..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importálás..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importálva"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportálva"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Minden nap"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Teendő"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Esedékesség"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Nincs határidő"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioritás"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "A jelzés ideje már elmúlt"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Érvénytelen\nIsmétlési időszak"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Ismétlődő esemény"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "A befejezés idejét a kezdés ideje utánra kell állítani"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Naptár szinkronizálás folyamatban"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Érvénytelen idő"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "%d naponta"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "%d hetente"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Végrehajtva"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Új feladat"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Teendő szerkesztése"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "A lenti kiválasztott időzónához kötheti az események idejét és dátumát. Ezek az idők és dátumok akkor sem fognak megváltozni, ha másik időzónába utazik"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Feladat részletei"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Esemény részletei"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Nincsenek feladatok"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Elutasítva"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Feltételes"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegált"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Házigazda"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Részvétel állapota"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Feladat törlése"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "A sorozat összes eseményének módosítása"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Esemény létrehozása"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Esemény"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Naptár"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Hely keresése"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Kész"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Ismétlés"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Emlékeztetők"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Leírás"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Naptárak importálása"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Házon kívül"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Hozzáadás névjegyhez"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Megtekint"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Megjelenítendő naptárak"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Saját naptár"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Saját feladat"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Partner születésnapja"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Hét számának megjelenítése"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Saját telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "du."
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Minden nap"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Védett adataim"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Megte- kintés"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "hét"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "nap"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Csak ez az egy esemény módosul"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "2 hetente"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "3 naponta"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Nincs határidő"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nincs hely több karakternek"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Teendők"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s születésnapja"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s évfordulója"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "S tervező adatainak exportálása a telefonról"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "perc"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "perc"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "óra"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "nap"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "hét"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "óra"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "nap"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Törlés"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Melléklet"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Ma"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Több"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Egész hónap"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Egész nap"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "A mai napnál korábbi összes esemény"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Egész nap"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Egész hét"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Egész év"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Elfogl."
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Ma"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Házon kívül"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Nyilvános"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Jelenlét típusa"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Érintse meg feladat létrehozásához"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fénykép"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Esemény létrehozása"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Feladat létrehozása"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Átvitel befejezve"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Lejárt a határideje"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "1 héten túl"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Szabad"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Személyes"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "nap"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "óra"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Helyi alapértelmezés"
+
diff --git a/po/hy.po b/po/hy.po
new file mode 100755 (executable)
index 0000000..c990557
--- /dev/null
+++ b/po/hy.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Գտնվելու վայր"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Բոլոր օրացույցները"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Օր"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Շաբաթ"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Ուղարկման ընտրանքներ"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Արտահանել"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Կիրակի"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Երկուշաբթի"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Շաբաթվա առաջին օրը"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Ժամանակին"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Ցանկ"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Կողպել ժամային գոտին"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Ժամային գոտի"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Կրկնել մինչև"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Մասնակից"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Տարի"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Կրկնություն"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Խմբագրել դեպքը"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Հիշեցում"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Ամեն շաբաթ"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Ամեն ամիս"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Ամեն տարի"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Նոր իրադարձություն"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Առաջադրանք"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Ցույց տալ ավարտված առաջադրանքները"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Ստեղծել"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Վերնագիր"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Գտնվելու վայր"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Քարտեզ"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "...ից"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Մինչև"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Անջատված է"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 րոպե առաջ"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 րոպե առաջ"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 ժամ առաջ"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 օր առաջ"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 օր առաջ"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 շաբաթ առաջ"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Չկա"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Նշում"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Պահպանել"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Չեղարկել"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Օրացույցներ"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Ամիս"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Խմբագրել"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Ջնջել"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Որոնել"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Հաղորդագրություն"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Էլ.փոստ"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Խմբագրել"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Պահել"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Ջնջել"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Ջնջել"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Այդ դեպքը կջնջվի"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Հաղորդագրություն"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Պարամետրեր"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Կիրակի"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Երկուշաբթի"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Անուն"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Ներմուծել իրդրձ./առջդր."
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Արտահանել իրդրձ./առջդր."
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Նորմալ"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Արդյունքներ չեն գտնվել"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Ամսական"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Մինչ"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "մինչև"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Օրական"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Ավարտի ժամանակ"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Ամսական"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Ամիս"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Սկսման ժամանակ"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Թակել՝ վայրը մուտքագրելու համար"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Թակել՝ նշում մուտքագրելու համար"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Սեղմել՝ վերնագիր մուտքագրելու համար"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Ամիս"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Ամեն շաբաթ"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Ամեն տարի"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Թակել՝ մասնակցին մուտքագրելու համար"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "Շ"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Ամբողջ օրը"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "շաբաթներ"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "շաբաթ"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Կարգավիճակ"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Կանխադրված հաշիվ"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Քարտեզ"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Օրացույցի հմժմցմ"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Իրադարձություններ"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Ոչ մի տեղ չի ընտրվել"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Ջնջել դեպքը"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Հաղորդագրություններ ուղարկե՞լ մասնակիցներին:"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Մասնակիցներ"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Օրացույցներ"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Օրացույց առկա չէ"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Միայն այս դեպքը"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Բոլոր կրկնվող իրադարձությունները"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Վերնագիր չկա"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "ժամ"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "անգամ"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Հղված օրացույց"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Հեռախոսի օրացույց"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Օր"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Շաբաթ"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Անհնար է տեղը գտնել"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Գտնվելու վայր"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "օր"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "շաբաթ"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Պահպանել"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Իրադարձություններ չկան"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Հարմարեցնել"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Պահպանե ՞լ"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Ցույց տալ իրադարձությունները՝ ըստ շաբաթվա"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Դասավորվածք՝ ամսվա դիտումով"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Ցույց տալ իրադարձությունները՝ ըստ օրվա"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Արտահանում..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Ներմուծում..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Ներմուծված"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Արտահանված"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Ամեն օր"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Կատարելիք աշխատանքներ"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Կատարման ամսաթիվ"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Նշանակված ամսաթիվ չկա"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Առաջնություն"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Ազդանշանի ժամկետը արդեն անցել է"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Կրկնման անվավեր ժամանակահատված"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Կրկնվող իրադարձություններ"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Ավարտի ժամանակը պետք է նշանակվի ակսելու ժամանակից հետո"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Օրացույցի համաժամացումը ընթացքի մեջ է"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Անվավեր ժամանակ"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Յուրաքանչյուր %d օր"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Յուրաքանչյուր %d շաբաթ"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Ավարտված է"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Նոր առաջադրանք"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Խմբագրել առաջադրանքը"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Ստորև կողպել իրադարձությունների ժամերն ու ամսաթվերը՝ ըստ Ձեր ընտրած ժամային գոտու: Ժամերն ու ամսաթվերը չեն փոխվի, նույնիսկ եթե անցնեք այլ ժամային գոտու"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Առաջադրանքի մանրամասներ"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Դեպքի մանրամասներ"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Առաջադրանք չկա"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Մերժվեց"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Փորձնական"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Լիազորված"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Հոստ"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Մասնակցության կարգավիճակ"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Վերացնել առաջադրանք"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Փոխել խմբի բոլոր դեպքերը"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Ստղծլ իրդրձթյն."
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Իրադարձություն"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Օրացույց"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Որոնել տեղ"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Պատրաստ"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Կրկնություն"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Հիշեցումներ"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Նկարագրություն"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Ներմուծել օրացույցներ"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Օֆիսից դուրս"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Ավելացնել կոնտակտում"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Դիտել"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Ցուցադրելու օրացույցներ"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Իմ օրացույցը"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Իմ առաջադրանքը"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Կոնտակտի ծննդյան օրը"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Ցույց տալ շաբաթվա համարը"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Իմ հեռախոսը"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Ամեն օր"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Գաղտնիություն"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Դիտել"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "շաբաթ"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "օր"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Փոխել միայն այս դեպքը"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Ամեն 2 շաբաթը մեկ"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Ամեն 3 օրը մեկ"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Նշանակված թվական չկա"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Հասել եք նիշերի առավելագույն քանակին"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Առաջադրանքներ"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s-ի ծննդյան օրը"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%sի տարեդարձը"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Արտահանել S Planner-ի տվյալները հեռախոսից"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "րոպե"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "րոպե"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "ժամեր"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "օրեր"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "շբթ"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "ժամ"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "օր"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Վրցնլ"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Կից"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Այսօր"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Ավել"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Ամբողջ այս ամիս"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Ամբողջ օրը"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Բոլոր իրադարձությունները մինչ այսօր"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Ամբողջ այս օրը"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Ամբողջ այս շաբաթ"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Ամբողջ այս տարին"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Զբաղված"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Ժամկետը՝ այսօր"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Օֆիսից դուրս"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Ընդհանւր"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Ցույց տալ ինձ որպես"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Թակել՝ առաջադրանք ստեղծելու համար"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Լուսանկար"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Ստղծլ իրդրձթյն."
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Ստղծ խնդր"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Փոխանցումն ավարտվեց"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Ժամկետանց"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Ժամկետը՝ 1 շաբաթից ավելի ուշ"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Ազատ"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Գաղտնի"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "օրեր"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "Ժամեր"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Տեղույթի կանխադրում"
+
diff --git a/po/is.po b/po/is.po
new file mode 100755 (executable)
index 0000000..adc8eca
--- /dev/null
+++ b/po/is.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Staðsetning"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Allar dagbækur"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dagur"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Vika"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sendikostir"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Flytja út"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Sunnudagur"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Mánudagur"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Fyrsti dagur vikunnar"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Á réttum tíma"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Listi"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Læsa tímabelti"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Tímabelti"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Endurtaka þar til"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Þátttakandi"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Ár"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Endurtaka"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Breyta viðburði"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Áminning"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Vikulega"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Mánaðarlega"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Á hverju ári"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Nýr viðburður"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Verkefni"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Sýna kláruð verkefni"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Búa til"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Titill"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Staðsetning"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Kort"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Frá"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Til"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Slökkt"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 mín. fyrir"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 mínútum áður"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 klukkustund áður"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 degi áður"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dögum áður"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 viku áður"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ekkert"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Athugasemd"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Vista"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Hætta við"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Dagbækur"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mánuður"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Breyta"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Leita"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Skilaboð"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Tölvupóstur"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Breyta"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Vista"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Þessum viðburði verður eytt"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Skilaboð"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Stillingar"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Sunnudagur"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Mánudagur"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Heiti"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Flytja inn viðb./verk."
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Flytja út viðb./verk."
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "f.h."
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Venjulegt"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Ekkert fannst"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mánaðarlega"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Fyrir"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "fyrir"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Daglega"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Lokatími"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mánaðarlega"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mánuður"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Upphafstími"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Pikkaðu til að bæta við staðsetningu"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Pikkaðu til að setja inn minnismiða"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Ýttu til að slá inn titil"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mánuður"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Vikulega"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Árlega"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Pikkaðu til að bæta við viðtakanda"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "v"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Allan daginn"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "vikur"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "vikur"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Staða"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Sjálfg. pósthólf"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Kort"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Samstilling dagbókar"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Viðburðir"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Engin staður valinn"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Eyða viðburði"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Senda skilaboð til þátttakenda?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Þátttakendur"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Dagbækur"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Engar dagbækur"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Aðeins þessi viðburður"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Allir endurteknir viðburðir"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Titil vantar"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "klukkustund"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "sinnum"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Tengd dagbók"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Símadagbók"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Dagsskjár"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vikusýn"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Finn ekki staðsetningu"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Staðsetning"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dagur"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "vikur"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Vista í"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Enginn viðburður"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Sérsnið"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Vista?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Sýna viðburði eftir vikum"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Útlit í mánaðayfirliti"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Sýna viðburði eftir dögum"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Verið er að flytja út..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Verið að flytja inn..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Flutt inn"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Útflutt"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Á hverjum degi"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Verkefni"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Gjalddagi"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Enginn lokadagur"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Forgangur"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Komið er fram yfir vakningu"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Ógilt endurtekningatímabil"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Endurtek viðburð"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Lokatíma ætti að setja eftir upphafstíma"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Samstilling dagatals stendur yfir"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Ógildur tími"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "%d hvern dag"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "%d hverja viku"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Lokið"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nýtt verkefni"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Breyta verkefni"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Læsa tíma og dagsetningu viðburðar á tiltekið tímabelti. Dagsetning og tími munu ekki breytast, jafnvel þótt þú farir í annað tímabelti"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Upplýsingar um verkefni"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Um viðburðinn"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Engin verkefni"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Hafnað"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Með fyrirvara"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Falið öðrum"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Hýsill"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Mæting"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Eyða verkefni"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Breyta öllum viðburðum í röðinni"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Búa til viðburð"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Viðburður"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Dagbók"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Leita að staðsetningu"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Lokið"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Endurtekning"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Áminningar"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Lýsing"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Flytja inn dagbækur"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fjarverandi"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Bæta við tengilið"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Birta"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Dagbækur til birtingar"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Dagbókin mín"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Verkefnið mitt"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Afmæli tengiliðar"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Sýna vikunúmer"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Sími notanda"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "e.h."
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Á hverjum degi"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Leynd"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Skoða"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "viku/r"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "dag(ar)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Breyta aðeins þessum viðburði"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Á tveggja vikna fresti"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Á þriggja daga fresti"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Enginn lokadagur"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Hámarksfjölda stafa hefur verið náð"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Verkefni"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s á afmæli"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s á afmæli"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Flytja S Planner gögn úr símanum þínum"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "mín."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "mín."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "klst."
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dagar"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "vika"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "klst"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dag"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Eyða"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Viðhengi"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Í dag"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Meir"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Allan mánuðinn"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Allan daginn"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Allir atburðir fyrir daginn í dag"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Allan daginn"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Alla vikuna"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Allt þetta ár"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Upptekin/n"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Skil í dag"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fjarverandi"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Opin"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Sýna mig sem"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Pikkaðu til að búa til verkefni"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Mynd"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Búa til viðburð"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Búa til verk"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Flutningi lokið"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Framyfir tíma"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Skil eftir meira en 1 viku"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Laust"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Einkamál"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dagar"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "klukkustundir"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Sjálfgefið skv. stað"
+
diff --git a/po/it_IT.po b/po/it_IT.po
new file mode 100755 (executable)
index 0000000..612f3df
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Posizione"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Tutto il calendario"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Giorno"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Settimana"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opzioni di invio"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Esporta"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domenica"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Lunedì"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primo giorno della settimana"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "All'ora esatta"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Elenco"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Blocca fuso orario"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Fuso orario"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Ripeti fino a"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Partecipante"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Anno"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Ripeti"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Modifica evento"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Promemoria"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Ogni settimana"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Ogni mese"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Ogni anno"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Nuovo evento"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Attività"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Visualizza attività completate"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Crea"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Titolo"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Luogo"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mappa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Da"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "A"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Non attivo"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min prima"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min prima"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 ora prima"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 giorno prima"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 giorni prima"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 settimana prima"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Nessuno"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Salva"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calendari"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mese"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Modifica"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Cerca"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Messaggio"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Modifica"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Salva"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Elimina"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Questo evento sarà eliminato"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Messaggio"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Impostazioni"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Domenica"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Lunedì"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nome"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importa eventi/attività"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Esporta eventi/attività"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normale"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nessun risultato trovato"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Ogni mese"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Prima"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "prima"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Ogni giorno"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Ora fine"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Ogni mese"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mese"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Ora inizio"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tocca per inserire un luogo"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tocca per inserire una nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tocca per inserire il titolo"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mese"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Ogni settimana"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Ogni anno"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tocca per inserire un partecipante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Tutto il giorno"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "settimane"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "settimana"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Stato"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Account predefinito"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mappa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronizza agenda"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventi"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nessuna posizione selezionata"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Elimina evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Inviare messaggi ai partecipanti?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Partecipanti"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendari"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nessun calendario"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Solo questo evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Tutti gli eventi ripetuti"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Nessun titolo"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "ora"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "volte"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendario collegato"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendario telefono"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista giorno"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista settimana"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Impossibile trovare posizione"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Posizione"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "giorno"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "settimana"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Salva in"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nessun evento"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizza"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Salvare?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostra eventi per settimana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout vista mese"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostra eventi per giorno"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Esportazione..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importazione..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importati"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Esportazione eseguita"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Ogni giorno"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Impegni"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Scadenza"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Nessuna scadenza"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Priorità"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Ora sveglia già passata"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Periodo di\nripetizione non valido"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Evento ripetitivo"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Impostare ora fine dopo ora inizio"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sincronizzazione agenda in corso"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Ora non valida"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Ogni %d giorni"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Ogni %d settimane"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Completata"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nuova attività"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Modifica attività"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Bloccare l'ora e la data dell'evento in base al fuso orario selezionato di seguito. L'ora e la data non subiranno modifiche anche se si passa a un altro fuso orario"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Dettagli attività"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Dettagli evento"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Nessuna attività"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Negato"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Provvisorio"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegato"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Ospite"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Stato partecipazione"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Elimina attività"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Modifica tutti gli eventi nella serie"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Crea evento"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Evento"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendario"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Cerca posizione"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Fatto"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Ripetizione"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Promemoria"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Descrizione"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importa calendari"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fuori sede/ufficio"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Aggiungi a contatto"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Visualizza"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendari da visualizzare"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Calendario personale"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Attività personale"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Compleanno del contatto"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Mostra numero settimana"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Telefono"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Ogni giorno"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacy"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Vedi"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "settimana/e"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "giorni"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Modifica solo questo evento"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Ogni 2 settimane"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Ogni 3 giorni"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Nessuna data di scadenza"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Raggiunto numero massimo di caratteri"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Attività"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Compleanno di %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Anniversario di %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Esporta dati S Planner dal telefono"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "ore"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "giorni"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "sett"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "ora"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "gior."
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Elim."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Allegato"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Oggi"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Altro"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Tutto del mese"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Tutto il giorno"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Tutti gli eventi prima di oggi"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Tutto di oggi"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Tutto della settimana"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Tutto l'anno"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Occupato"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "In scadenza oggi"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fuori sede/ufficio"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Pubblico"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Mostra come"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Toccare per creare un'attività"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Crea evento"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Crea attività"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Trasferimento completato"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Scaduta"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "In scadenza oltre 1 settimana"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Libera"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Evento privato"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "giorni"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "ore"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Impostazioni locali"
+
diff --git a/po/ja_JP.po b/po/ja_JP.po
new file mode 100755 (executable)
index 0000000..c8b0d15
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "場所"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "全てのカレンダー"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "週"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "送信オプション"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "エクスポート"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "日曜日"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "月曜日"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "週の始まり"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "開始時刻"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "リスト"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "タイムゾーンを固定"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "タイムゾーン"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "繰り返し期間"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "参加者"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "年"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "繰り返し"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "イベントを編集"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "通知"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "毎週"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "毎月"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "毎年"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "新規イベント"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "タスク"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "終了タスクを表示"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "作成"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "タイトル"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "場所"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "地図"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "開始"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "宛先"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "OFF"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5分前"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15分前"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1時間前"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1日前"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2日前"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1週間前"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "なし"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "ノート"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "保存"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "キャンセル"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "カレンダー"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "編集"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "削除"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "検索"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "メッセージ"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Eメール"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "編集"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "保存"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "削除"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "削除"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "このイベントを削除します。"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "メッセージ"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "日曜日"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "月曜日"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "タイトル"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "イベント/タスクをインポート"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "イベント/タスクをエクスポート"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "標準"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "検索結果がありません。"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "毎月"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "前"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "前"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "毎日"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "終了時刻"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "毎月"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "開始時刻"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "場所を入力"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "内容を入力"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "タイトルを入力"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "毎週"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "毎年"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "参加者を入力"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "週"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "終日"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "週"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "週表示"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "ステータス"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "メインアカウント"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "地図"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "カレンダー同期"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "イベント"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "場所が選択されていません。"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "イベントを削除"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "メッセージを参加者に送信しますか?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "参加者"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "カレンダー"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "カレンダーがありません。"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "このイベントのみ"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "全てのイベント"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "件名なし"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "時間"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "回"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "リンク​した​カレンダー"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "本体​カレンダー"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "日常表示"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "週表示"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "現在地を検索できません。"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "保存先"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "日表示"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "週表示"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "保存先設定"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "イベントはありません。"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "カスタマイズ"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "保存しますか?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "週単位でイベント表示"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "月単位表示のレイアウト"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "日単位でイベント表示"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "エクスポート中..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "インポート中..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "インポートしました。"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "エクスポートしました"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "毎日"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "未完了"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "期日"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "期限なし"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "優先度"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "アラーム​時刻​を​既に​過ぎて​います"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "繰り返し​期間​が​無効​です"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "イベント​を​繰り​返し​ます"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "終了時刻は開始時刻より後に設定する必要があります。"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "カレンダー​の​同期​が​進行中​です"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "無効な時間"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "%d日ごと"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "%d週ごと"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "処理済"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "新規タスク"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "タスクを編集"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "イベント日時を以下で選択したタイムゾーンに固定(他のタイムゾーンに移動しても日時を変更しない)"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "タスク詳細"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "イベントの詳細"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "タスクがありません。"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "拒否しました。"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "仮の予定"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "委任されました。"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "主催者"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "出席状況"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "タスクを削除"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "一連のイベントを全て変更"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "イベントを作成"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "イベント"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "カレンダー"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "場所を検索"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "完了"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "繰り返し"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "通知"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "詳細"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "カレンダーをインポート"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "不在"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "電話帳に追加"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "ビュー"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "表示するカレンダー"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "マイカレンダー"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "マイタスク"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "連絡先の誕生日"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "週数を表示"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "マイ本体"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Every day"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "プライバシー"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "ビュー"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "週"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "日"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "このイベントのみ変更"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "隔週"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "3日ごと"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "期限なし"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "最大文字数に達しました。"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "タスクリスト"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "[%s]の誕生日"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s​の​記念日"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "端末からSプランナーのデータをエクスポートしてください。"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "分"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "分"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "時間"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "週"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "時間"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "曜日"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "削除"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "添付"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "今日"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "その他"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "今月のイベント"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "終日"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "前日までの全てのイベント"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "今日のイベント"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "今週のイベント"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "今年のイベント"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "予定あり"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "今日が期限"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "不在"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "公開"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "自分の状態を表示"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "タップして、タスクを作成してください。"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "画像"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "イベントを作成"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "タスクを作成"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "転送​が完了​しました"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "期限切れ"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "期限が1週間以上先"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "フリー"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "非公開"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "日"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "時間"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "地域ごとの初期設定"
+
diff --git a/po/ka.po b/po/ka.po
new file mode 100755 (executable)
index 0000000..1fbce2e
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "ადგილმდებ."
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "მთელი კალენდარი"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "დღე"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "კვირა"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "გაგზავნის ოფციები"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "ექსპორტირება"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "კვირა"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "ორშაბათი"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "კვირის პირველი დღე"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "დროზე"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "სია"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "სთ. სარტყელის დაფიქსირება"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "საათობრივი სარტყელი"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "გამეორება დრომდე"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "მონაწილე"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "წელი"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "გამეორება"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "მოვლენის შესწორება"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "შეხსენება"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "ყოველ კვირას"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "ყოველ თვე"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "ყოველ წელს"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "ახალი მოვლენა"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "დავალება"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "შესრულებული დავალებების ჩვენება"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "შექმ."
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "სათაური"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "ადგილმდებარეობა"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "რუქა"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "საიდან"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "ვის"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "გამორთ."
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 წუთით ადრე"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 წუთით ადრე"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 საათით ადრე"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 დღით ადრე"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 დღით ადრე"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 კვირის წინ"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "არც ერთი"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "შენიშვნა"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "შენახვა"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "კალენდარები"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "თვე"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "რედაქტირება"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "ძებნა"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "შეტყობინება"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "ელ-ფოსტა"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "შეცვლა"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "შენახვა"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "ეს მოვლენა წაიშლება"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "შეტყობინება"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "პარამეტრები"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "კვირა"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "ორშაბათი"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "სახელი"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "მოვლენ./დავალ. იმპორტი"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "მოვლენ./დავალ. ექსპორტი"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "ნორმალური"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "შედეგები არ მოიძებნა"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "ყოველთვიური"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "დღემდე"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "ვადამდე"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "ყოველდღიური"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "დასრულების დრო"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "ყოველთვიური"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "თვე"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "დაწყების დრო"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "დააკაკუნეთ და ჩაწერეთ მდებარეობა"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "დააკაკუნეთ და ჩაწერეთ შენიშვნა"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "დააკაკუნეთ და ჩაწერეთ სათაური"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "თვე"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "ყოველკვირეული"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "წლიური"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "დააკაკუნეთ და დაამატეთ მონაწილე"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "კ"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "ყველა დღე"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "კვირა"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "კვირა"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "სტატუსი"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "საწყისი ანგარიში"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "რუქა"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "კალენდრის სინქრონიზაცია"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "მოვლენები"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "ლოკაცია არ არის არჩეული"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "მოვლენის წაშლა"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "გაგზავნით წერილებს მონაწილეებთან?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "მონაწილეები"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "კალენდარები"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "კალენდრები არ არის"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "მხოლოდ ეს მოვლენა"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "ყველა განმეორებითი მოვლენა"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "თემა არ არის"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "საათი"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "დროები"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "დაკავშირებული კალენდარი"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "ტელეფონის კალენდარი"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "ყოველდღიური დათვალიერება"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "ყოველკვირეული სიახლეები"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "ლოკაციის პოვნა შეუძლებელია"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "ადგილმდებარეობა"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "დღე"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "კვირა"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "შენახვა"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "მოვლენები არ არის"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "პარამეტრების შერჩევა"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "შეინახავთ?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "მოვლენების ჩვენება კვირის მიხედვით"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "განლაგება თვის დათვალიერების დროს"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "მოვლენების ჩვენება დღის მიხედვით"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "მიღება..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "ჩამოდის..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "გადმოტანილია"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "გადაცემული"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "ყოველდღე"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "დავალება"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "შესრულების თარიღი"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "შესრულების თარიღი არ არის"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "პრიორიტეტი"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "სიგნალის დრო უკვე გავიდა"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "გამეორების პერიოდი არასწორია"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "განმეორებითი მოვლენა"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "საბოლოო თარიღი საწყის თარიღზე გვიან უნდა იყოს"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "მიმდინარეობს კალენდრის სინქ"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "არასწორი დრო"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "%d დღეში ერთხელ"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "%d კვირაში ერთხელ"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "დასრულდა"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "ახალი დავალება"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "დავალების შესწორება"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "დააფიქსირეთ მოვლენის დროები და თარიღები თქვენს მიერ ქვემოთ არჩეული საათობრივი სარტყელით. დროები და თარიღები არ შეიცვლება, მაშინაც კი, თუ სხვა საათობრივ სარტყელში გადახვალთ"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "დავალების დეტალები"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "მოვლენის დეტალები"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "დავალებები არ არის"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "უარყოფილია"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "დროებითი"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "დელეგირებული"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "მასპინძელი სერვერი"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "დასწრების სტატუსი"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "დავალების წაშლა"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "ყველა მოვლენის შეცვლა სერიებად"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "მოვლენის შექმნა"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "მოვლენა"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "კალენდარი"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "ლოკაციის ძებნა"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "შესრულდა"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "გამეორება"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "შეხსენებები"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "აღწერა"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "კალენდრების იმპორტირება"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "ოფისიდან გასული"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "კონტაქტზე დამატება"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "ნახვა"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "საჩვენებელი კალენდრები"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "ჩემი კალენდარი"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "ჩემი დავალება"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "კონტაქტის დაბადების დღე"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "კვირის ნომრის ჩვენება"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "ჩემი ტელეფონი"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "ყოველდღე"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "პირადი"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "ნახვა"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "კვირა"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "დღე"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "მხოლოდ ამ მოვლენის შეცვლა"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "ყოველ 2 კვირაში"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "ყოველ 3 დღეში"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "შესრულების თარიღი არ არის"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "მიღწეულია სიმბოლოების მაქსიმალური რაოდენობა"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "დავალებები"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s-ს დაბადების დღე"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%sს იუბილე"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "S Planner-ის მონაცემთა ექსპორტი ტელეფონიდან"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "წთ."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "წთ."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "საათი"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "დღე"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "კვ."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "სთ."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "დღე"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "წაშლა"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "დანართი"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "დღეს"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "სხვა"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "მთელი თვე"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "ყველა დღე"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "ყველა მოვლენა დღევანდელ დღემდე"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "მთელი დღე"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "მთელი ეს კვირა"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "ყველა წლევანდელი"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "დაკავება"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "სრულდება დღეს"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "ოფისიდან გასული"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "საზოგადო"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "მსურს ვნახო როგორც"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "შეეხეთ და შექმენით დავალება"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "ფოტო"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "მოვლენის შექმნა"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "დავალების შექმნა"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "გადაცემა დასრულდა"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "დროგასული"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "სრულდება 1 კვირაზე მეტ ხანში"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "თავისუფალია"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "პირადი"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "დღე"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "საათი"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "ადგილობრივად ნაგულისხმევი"
+
diff --git a/po/kk.po b/po/kk.po
new file mode 100755 (executable)
index 0000000..9b7e2ad
--- /dev/null
+++ b/po/kk.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Орналасу орны"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Барлық күнтізбе"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Күн"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Апта"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Жіберу опциялары"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Экспорт ету"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Жексенбі"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Дүйсенбі"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Аптаның бірінші күні"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Уақытында"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Тізім"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Уақыт белдеуін құлыптау"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Уақыт зонасы"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Дейін қайталау"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Қатысушы"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Жыл"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Қайталау"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Оқиғаны өзгерту"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Еске салушы"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Апта сайын"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Ай сайын"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Жыл сайын"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Жаңа оқиға"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Тапсырма"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Аяқталған тапсырманы көрсету"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Жазу"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Тақырыбы"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Орналасу орны"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Карта"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Қашан"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Кімге"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Өшірілген"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 мин бұрын"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 минут бұрын"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 сағат алдын"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 күн алдын"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 күн бурын"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 апта алдын"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Жоқ"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Ескерту"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Сақтау"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Тоқтату"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Күнтізбелер"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Ай"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Өзгер."
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Жою"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Іздеу"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Хабарлама"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Эл. пошта"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Өзгерту"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Сақтау"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Жою"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Жою"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Бұл оқиға жойылады"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Хабарлама"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Қондырғ-р"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Жексенбі"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Дүйсенбі"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Аты"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Оқиға/тапсырма импорт-у"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Оқиға/тапсырма экспор-у"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "ТД"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Қалыпты"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Ешқандай нәтиже табылмады"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Ай сайын"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Дейін"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "дейін"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Күн сайын"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Аяқтау уақыты"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Ай сайын"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Ай"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Бастау уақыты"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Орнын енгізу үшін түртіңіз"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Жазбаны енгізу үшін түртіңіз"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Тақырыпты енгізу үшін түртіңіз"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Ай"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Апта сайын"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Жыл сайын"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Қатысушыны енгізу үшін түртіңіз"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "А"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Барлық күні"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "аптамалар"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "апта"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Статус"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Әдепкі есеп. жазба"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Карта"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Күнтізбені синхрондау"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Оқиғалар"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Орын таңдалмады"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Оқиғаны жою"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Хабарларды қатысушыларға жіберу керек пе?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Қатысушылар"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Күнтізбелер"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Күнтізбе жоқ"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Тек осы оқиға"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Барлық қайталанатын оқиғалар"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Тақырып жоқ"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "сағат"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "рет"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Байланыстырылған күнтізбе"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Телефон күнтізбесі"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Күндерді көру"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Апталарды көру"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Орнын табу мүмкін емес"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Орналасу орны"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "күн"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "апта"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "ішінде сақтау"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Оқиға жоқ"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Реттеу"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Сақтайсыз ба?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Оқиғаларды апта бойынша көрсету"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Ай көрінісіне орналастыру"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Оқиғаларды күн бойынша көрсету"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Экспортталуда..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Тасымалдануда..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Импортталған"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Экспортталған"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Күн сайын"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Істеу керек"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Мерзімі"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Төлеу күні жоқ"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Ерекшелігі"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Дабыл уақыты өтуі тиіс"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Қайталау аралығы жарамсыз"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Оқиға қайталау"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Аяқтау уақыты басталу уақытынан кейін орнатылады"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Күнтізбені қадамдастыру орындалуда"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Уақыт қате"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "%d күн сайын"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "%d апта сайын"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Аяқталды"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Жаңа тапсырма"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Тапсырманы өзгерту"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Төмендегі таңдалған уақыт белдеуі үшін оқиға уақыттары мен күндерін құлыптаңыз. Басқа уақыт белдеуіне ауысқанның өзінде уақыттар мен күндер өзгермейді"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Тапсырма мәліметтері"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Оқиға туралы мәліметтер"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Тапсырма жоқ"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Төмен қараған"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Сынақтық"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Өкілдік етілген"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Хост"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Қатысу күйі"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Тапсырма жою"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Қатардағы барлық оқиғаларды өзгерту"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Оқиға жасау"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Оқиға"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Күнтізбе"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Іздеу орны"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Дайын"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Қайталау"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Еске салу"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Сипаттама"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Күнтізбелерді импорттау"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Жұмыста емес"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Контактілерге қосу"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Көрініс"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Көрсетілетін күнтізбелер"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Менің күнтізбем"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Менің тапсырмам"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Контактінің туған күні"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Апта нөмірін көрсету"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Менің телефоным"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "TK"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Күн сайын"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Құпия"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Көрініс"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "апта(лар)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "Күн (дер)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Тек осы оқиғаны өзгерту"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Әр 2 апта сайын"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Әр 3 күн сайын"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Мерзімі жоқ"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Таңбалардың ен көп саны артты"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Тапсырма"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Туған күніңізбен,%s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s жылдығы"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "S Planner деректерін телефоннан экспорттау"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "мин"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "мин"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "сағат"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "күн"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "апта"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "сағ."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "күн"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Жою"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Қосымша"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Бүгін"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Басқ"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Осы айдың барлығында"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Барлық күні"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Бүгіннен бұрынғы барлық оқиғалар"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Бүгін күнімен"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Осы аптаның барлығында"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Барлығы биыл"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Бос емес"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Төлем мерзімі бүгін"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Жұмыста емес"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Қоғамдық"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Мені келесі күйде көрсету:"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Тапсырма жасау үшін түртіңіз"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Фото"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Оқиға жасау"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Тапсырма жасау"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Жіберу аяқталды"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Мерзімі өткен"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Төлем мерзімі 1 аптадан кейін"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "тегін"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Жеке"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "күндер"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "сағаттар"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Жергілікті әдепкі"
+
diff --git a/po/ko_KR.po b/po/ko_KR.po
new file mode 100755 (executable)
index 0000000..1097474
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "위치"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "모든 일정"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "일"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "주"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "전송 옵션"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "내보내기"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "일요일"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "월요일"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "주 시작 요일"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "정각"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "목록"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "시간대 고정"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "표준 시간대"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "반복 종료일"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "참석자"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "년"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "반복"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "일정 편집"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "알림"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "매주"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "매월"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "매년"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "새 일정"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "할 일"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "완료된 할 일 표시"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "추가"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "제목"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "장소"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "지도"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "시작"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "수신"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "끄기"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5분 전"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15분 전"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1시간 전"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1일 전"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2일 전"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1주 전"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "없음"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "노트"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "저장"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "취소"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "달력"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "월"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "편집"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "삭제"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "검색"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "메시지"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "이메일"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "편집"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "저장"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "삭제"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "삭제"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "선택한 일정이 삭제됩니다"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "메시지"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "일요일"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "월요일"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "이름"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "일정/할 일 가져오기"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "일정/할 일 내보내기"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "오전"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "보통"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "검색 결과가 없습니다"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "매월"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "전"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "전"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "매일"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "종료 시간"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "매월"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "월"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "시작 시간"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "위치를 입력하려면 누르세요"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "설명을 입력하려면 누르세요"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "제목을 입력하려면 누르세요"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "월"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "매주"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "매년"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "참석자를 입력하려면 누르세요"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "주"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "하루종일"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "주"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "주"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "상태"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "기본 계정"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "지도"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "일정 동기화"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "이벤트"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "선택된 위치가 없습니다"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "일정 삭제"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "참석자에게 메시지를 전송할까요?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "참석자"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "일정 보기 설정"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "일정이 없습니다"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "선택한 일정만"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "반복 일정"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "제목이 없습니다"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "시간"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "회"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "링크된 달력"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "휴대폰 달력"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "일간 보기"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "주간 보기"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "위치를 찾을 수 없습니다"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "위치"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "일"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "주"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "저장"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "일정이 없습니다"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "직접 입력"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "저장할까요?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "주간 단위로 일정 표시"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "월간 보기 레이아웃"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "요일 단위로 일정 표시"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "내보내는 중..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "가져오는 중..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "가져오기가 완료되었습니다"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "내보냈습니다"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "매일"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "작업"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "완료일"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "완료일 없음"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "중요도"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "알람 시간이 지났습니다"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "반복 기간이 바르지 않습니다"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "반복 일정"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "종료 시간은 시작 시간보다 늦어야 합니다"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "일정 동기화 중..."
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "시간이 바르지 않습니다"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "%d일마다"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "%d주마다"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "완료되었습니다"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "새 할 일"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "할 일 편집"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "일정 등록 시 사용하는 시간과 날짜를 아래에서 선택한 시간대에 고정합니다. 다른 시간대로 이동하여도 디바이스의 시간과 날짜는 변경되지 않습니다"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "할 일 상세 정보"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "일정 상세정보"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "할 일이 없습니다"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "거절하였습니다"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "임시"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "위임됨"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "주최자"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "참석 상황"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "할 일 삭제"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "반복되는 모든 일정을 변경합니다"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "일정 추가"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "일정"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "일정"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "위치 검색"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "완료"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "반복"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "알림"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "설명"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "일정 가져오기"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "자리 비움"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "연락처에 추가"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "보기"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "표시할 달력"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "내 달력"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "내 할 일"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "연락처 생일"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "몇째 주인지 표시"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "내 휴대폰"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "오후"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "매일"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "개인정보 보호"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "보기"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "주"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "일"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "이 일정만 변경합니다"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "2주마다"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "3일마다"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "완료일 없음"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "입력 가능한 최대 글자수를 초과하였습니다"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "할 일"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s 님의 생일"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s님의 기념일"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "S플래너 데이터 내보내기"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "분"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "분"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "시간"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "일"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "주"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "시간"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "일"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "삭제"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "첨부파일"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "오늘"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "더보기"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "이번 달 일정 모두"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "하루종일"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "오늘 이전의 모든 일정"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "오늘 일정 모두"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "이번 주 일정 모두"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "올해 모든 일정"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "바쁨"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "오늘 완료"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "자리 비움"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "공개"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "내 상태 표시"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "할 일을 추가하려면 누르세요"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "사진"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "일정 추가"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "할 일 추가"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "전송이 완료되었습니다"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "기한 초과"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "1주일 이후 완료"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "사용 가능"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "비공개"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "일"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "시간"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "지역 기본값"
+
diff --git a/po/lt.po b/po/lt.po
new file mode 100755 (executable)
index 0000000..4b6154a
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Visas kalendorius"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Diena"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Savaitė"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Siuntimo parinktys"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Eksportuoti"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Sekmadienis"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Pirmadienis"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Pirma savaitės diena"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Laiku"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Sąrašas"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Užfiksuoti laiko juostą"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Laiko juosta"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Kartoti iki"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Dalyvis"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Metai"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Kartoti"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Redaguoti įvykį"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Priminimas"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Kas savaitę"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Kas mėnesį"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Kiekvienais metais"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Naujas įvykis"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Užduotis"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Rodyti atliktas užduotis"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Kurti"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Pavadinimas"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Žemėlapis"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Nuo"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Iki"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Išjungta"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "Prieš 5 min."
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "Prieš 15 min."
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "Prieš 1 valandą"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "Prieš 1 dieną"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "Prieš 2 dienas"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "Prieš savaitę"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Nėra"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Pastaba"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Išsaugoti"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendoriai"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mėnuo"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Redaguoti"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Ieškoti"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Žinutė"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "El. paštas"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Redaguoti"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Išsaugoti"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Šis įvykis bus panaikintas"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Žinutė"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Nustat."
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Sekmadienis"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Pirmadienis"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Vardas"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importuoti įvyk. / užd."
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Eksportuot įvyk. / užd."
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "АМ"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Įprastas"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Rezultatų nerasta"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Kiekvieną mėnesį"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Prieš"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "prieš"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Kasdien"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Pabaigos laikas"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Kiekvieną mėnesį"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mėnuo"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Pradžios laikas"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Spustelėkite norėdami įvesti vietovę"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Spustelėkite norėdami įvesti pastabą"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Bakstelėkite ir įveskite pavadinimą"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mėnuo"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Kas savaitę"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Kasmetinis"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Spustelėkite norėdami įvesti dalyvį"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Visą dieną"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "savaitės"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "savaitė"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Būsena"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Numatytoji paskyra"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Žemėlapis"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Kalendoriaus sinchronizavimas"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Įvykiai"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nepasirinkta vieta"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Naikinti įvykį"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Siųsti žinutes dalyviams?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Dalyviai"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendoriai"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Kalendorių nėra"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Tik šis įvykis"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Visi pasikartojantys įvykiai"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Nėra pavadinimo"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "valanda"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "kartai"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Susietas kalendorius"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefono kalendorius"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Dienos peržiūra"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Savaitės peržiūra"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Neįmanoma rasti vietos"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Vieta"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "diena"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "savaitė"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Išsaugoti"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nėra įvykių"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Tinkinti"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Išsaugoti?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Rodyti įvykius pagal savaitę"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Išdėstymas mėnesio rodinyje"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Rodyti įvykius pagal dieną"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Eksportuojama..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importuojama..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importuotieji"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Eksportuota"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Kiekvieną dieną"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Užduotis"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Terminas"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Terminas nenustatytas"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Pirmenybė"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Žadintuvo laikas jau praėjo"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Neteisingas pakartot. laikas"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Pasikartojantis įvykis"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Pabaigos laikas turi būti nustatytas po pradžios laiko"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Kalendorius sinchronizuojamas"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Netinkamas laikas"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Kas %d dien."
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Kas %d savait."
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Baigta"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nauja užduotis"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Redaguoti užduotį"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Užfiksuoti įvykių laiką ir datą pagal toliau pasirinktą laiko juostą. Laikas ir data nesikeis, net jei būsite kitoje laiko juostoje"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Užduoties informacija"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Įvykio duomenys"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Užduočių nėra"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Atmesta"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Bandomasis"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Įgaliotas"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Šeimininkas"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Dalyvavimo būsena"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Trinti užduotį"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Keisti visus šios serijos įvykius"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Kurti įvykį"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Įvykis"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalend."
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Ieškoti vietos"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Atlikta"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Kartojimas"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Priminimai"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Aprašas"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importuoti kalendorius"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Ne darbe"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Įtraukti adresatą"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Rodyti"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Norimi rodyti kalendoriai"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mano kalendorius"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Mano užduotys"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Adresato gimtadienis"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Rodyti savaitės numerį"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mano telefonas"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Kiekvieną dieną"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privatumas"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Peržiūrėti"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "savaitė(-s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "d."
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Keisti tik šį įvykį"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Kas 2 savaites"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Kas 3 d."
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Terminas nenustatytas"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Pasiektas didžiausias simbolių skaičius"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Užduotys"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s gimtadienis"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s sukaktis"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Eksportuoti „S Planner“ duomenis iš jūsų telefono"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "val."
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dien."
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "sav."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "val."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dien"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Trinti"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Priedas"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Šiandien"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Daug"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Visą šį mėnesį"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Visą dieną"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Visi įvykiai iki šiandien"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Visą šią dieną"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Visą šią savaitę"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Visus šiuos metus"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Užimtas"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Šiandien"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Ne darbe"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Viešas"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Rodyti mane kaip"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Bakstelėkite ir sukurkite užduotį"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Nuotrauka"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Kurti įvykį"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Sukurti užduotį"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Perkėlimas baigtas"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Pavėluotas"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Per daugiau nei 1 savaitę"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Laisva"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privatus"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dienos"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "valandos"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Numatytoji lokalė"
+
diff --git a/po/lv.po b/po/lv.po
new file mode 100755 (executable)
index 0000000..b52acf5
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Visu kalendāru"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Diena"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Nedēļa"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sūtīšanas iespējas"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Eksportēt"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Svētdiena"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Pirmdiena"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Nedēļas pirmā diena"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Laikā"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Saraksts"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Laika joslas bloķēšana"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Laika josla"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Atkārtot līdz"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Dalībnieks"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Gads"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Atkārtot"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Rediģēt notikumu"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Atgādinājums"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Katru nedēļu"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Katru mēnesi"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Katru gadu"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Jauns notikums"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Uzdevums"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Parādīt pabeigtos uzdevumus"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Izveidot"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Nosaukums"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Karte"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "No"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Līdz"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Izslēgt"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min. pirms"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "Pirms 15 min"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 stundu pirms"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dienu pirms"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dienas pirms"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 nedēļu pirms"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Nav"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Piezīme"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Saglabāt"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendāri"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mēnesis"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Rediģēt"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Meklēt"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Ziņa"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-pasts"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Rediģēt"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Saglabāt"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Šis notikums tiks dzēsts"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Ziņa"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Svētdiena"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Pirmdiena"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Vārds"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importēt notik./uzdev."
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Eksportēt notik./uzdev."
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Parasta"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nav atrasts neviens rezultāts"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Ikmēneša"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Pirms"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "pirms"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Katru dienu"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Beigu laiks"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Ikmēneša"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mēnesis"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Sākuma laiks"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Pieskarieties, lai ievadītu atrašanās vietu"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Pieskarieties, lai ievadītu piezīmi"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Pieskarieties, lai ievadītu nosaukumu"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mēnesis"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Katru nedēļu"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Katru gadu"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Pieskarieties, lai ievadītu dalībnieku"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "N"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Visu dienu"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "nedēļas"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "nedēļa"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Statuss"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Noklusējuma konts"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Karte"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Kalendāra sinhronizācija"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Notikumi"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nav izvēlēta atrašanās vieta"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Dzēst notikumu"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Vai sūtīt ziņas dalībniekiem?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Dalībnieki"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendāri"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nav kalendāru"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Tikai šo notikumu"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Visi atkārtotie notikumi"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Nav nosaukuma"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "stunda"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "reizes"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Saistītais kalendārs"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Tālruņa kalendārs"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Dienas skats"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Nedēļas skats"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Nevar atrast atrašanās vietu"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Atrašanās vieta"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "diena"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "nedēļa"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Saglabāt"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nav notikumu"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Pielāgot"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Vai saglabāt?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Rādīt notikumus pēc nedēļas"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Izkārtojums mēneša skatā"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Rādīt notikumus pēc dienas"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Eksportē..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importē..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importētas"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Eksportēts"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Katru dienu"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Uzdevums"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Izpildes datums"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Nav izpildes datuma"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioritāte"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Signāla laiks jau ir pagājis"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Nederīgs atkārtošanās periods"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Atkārtots notikums"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Beigu laikam jābūt iestatītam pēc sākuma laika"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Notiek kalendāra sinhronizācija"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Nederīgs laiks"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Ik pēc %d dienām"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Ik pēc %d nedēļām"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Pabeigts"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Jauns uzdevums"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Rediģēt uzdevumu"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Bloķēt notikumu laiku un datumu tālāk izvēlētajai laika joslai. Pat ja tiks mainīta laika josla, notikumu laiks un datums nemainīsies"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Uzdevuma dati"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Notikuma dati"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Nav uzdevumu"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Noraidīts"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Varbūtēji"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Uzaicināja citu personu"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Saimnieks"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Apmeklējuma statuss"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Dzēst uzdevumu"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Mainīt visus sēriju notikumus"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Izveidot notikumu"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Notikums"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalendārs"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Atrašanās vietas meklēšana"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Gatavs"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Atkārtošana"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Atgādinājumi"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Apraksts"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importēt kalendārus"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Ārpus biroja"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Pievienot kontaktam"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Skatīt"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Parādāmie kalendāri"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mans kalendārs"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Mans uzdevums"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Kontakta dzimšanas diena"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Rādīt nedēļas numuru"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mans tālrunis"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Katru dienu"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Konfidencialitāte"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Skatīt"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "nedēļa(-s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "diena(-s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Mainīt tikai šo notikumu"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Reizi 2 nedēļās"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Reizi 3 dienās"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Nav izpildes datuma"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Sasniegts maksimālais rakstzīmju skaits"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Uzdevumi"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s dzimšanas diena"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Kontakta %s jubileja"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Eksportējiet S Planner datus no sava tālruņa"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "stundas"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dienas"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "ned."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "st."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "d."
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Dzēst"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Pielikums"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Šodien"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Vēl"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Visu šo mēnesi"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Visu dienu"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Visi notikumi pirms šodienas"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Visu šo dienu"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Visu šo nedēļu"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Visu šo gadu"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Aizņemts"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Izpildes termiņš ir šodiena"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Ārpus biroja"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Publisks"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Rādīt mani kā"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Pieskarieties, lai izveidotu uzdevumu"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fotoattēls"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Izveidot notikumu"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Izveidot uzdevumu"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Pārsūtīšana pabeigta"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Nokavēts"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Izpildes termiņš ir vēlāk kā pēc 1 nedēļas"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Brīvs"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privāti"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dienas"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "stundas"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Noklusējuma lokalizācija"
+
diff --git a/po/mk.po b/po/mk.po
new file mode 100755 (executable)
index 0000000..41d9c26
--- /dev/null
+++ b/po/mk.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Локација"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Цел календар"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Ден"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "седмица"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Опции за праќање"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Извези"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Недела"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Понеделник"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Прв ден на седмицата"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Во одредено време"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Листа"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Заклучи временска зона"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Часовна зона"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Повторувај до"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Учесник"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Година"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Повторување"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Измени настан"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Потсетник"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "секоја седмица"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "секој месец"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Секоја година"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Нов настан"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Задача"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Прикажи завршени задачи"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Ново"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Наслов"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Локација"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Карта"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Од"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "До"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Исклучено"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 минути претходно"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 минути претходно"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 час претходно"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 ден претходно"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 дена порано"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 седмица претходно"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ништо"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Забелешка"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Сочувај"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Откажи"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Календ."
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Месец"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Измени"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Пребарување"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Порака"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Измени"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Сочувај"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Избриши"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Овој настан ќе се избрише"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Порака"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Опции"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Недела"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Понеделник"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Име"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Увези настани/задачи"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Извези настани/задачи"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "АМ"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Нормално"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Нема резултати"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Месечно"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Претходно извест."
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "претходно извест."
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Дневен"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Краен час"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Месечно"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Месец"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Почетен час"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Допрете за внесување локација"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Допрете за внесување белешка"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Допрете за внесување наслов"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Месец"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Седмичен"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Секоја година"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Допрете за да внесете учесник"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "С"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Цел ден"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "седмици"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "седмица"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Состојба"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Основна сметка"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Мапа"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Синхронизирање календар"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Настани"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Не е избрана локација"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Избриши настан"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Прати пораки на учесниците?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Учесници"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Календари"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Нема календари"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Само овој настан"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Сите повторливи настани"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Нема наслов"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "час"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "пати"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Поврзан календар"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Телефонски календар"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Дневен преглед"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Седмичен преглед"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Не може да се најде локацијата"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Локација"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "ден"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "седмица"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Меморирај во"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Нема настани"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Прилагоди"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Меморирај?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Прикажи настани по седмица"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Распоред на месечен преглед"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Прикажи настани по ден"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Извезување..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Увезување..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Увезено"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Извезено"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Секој ден"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Задача"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Рок"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Нема краен рок"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Приоритет"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Часот на алармот веќе изминал"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Неправилен период на повторување"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Настан што се повторува"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Крајното време треба да е подоцна од почетното"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Синхронизација на календар во тек"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Неправилен час"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "На %d денови"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "На %d седмици"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Завршено"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Нова задача"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Измени задача"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Заклучување на времињата и датумите на настаните за вашата избрана временска зона подолу. Времињата и датумите нема да се сменат, дури и ако се преместите во друга временска зона"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Детали за задачата"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Детали за настанот"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Нема задачи"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Одбиено"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Закажано"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Делегирано"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Домаќин"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Состојба на посетеност"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Избриши задача"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Смени ги сите настани во низата"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Нов настан"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Настан"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Календар"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Пребарај локација"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Готово"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Повторување"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Потсетници"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Опис"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Увези календари"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Надвор од канцеларија"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Додај на запис"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Прикажи"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Календари за прикажување"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Мој календар"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Моја задача"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Роденден на контактот"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Прикажувај број на седмицата"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Мој телефон"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Секој ден"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Доверливо"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Преглед"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "седмици"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "ден(ови)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Смени го само овој настан"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "На 2 седмици"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "На 3 денови"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Нема краен рок"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнат е максималниот број знаци"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Задачи"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Роденден на %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Важен датум на %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Извезување S Planner податоци од телефонот"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "мин."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "мин."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "часа"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "дена"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "нед."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "час"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "ден"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Бриши"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Прилог"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Денес"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Уште"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Цел овој месец"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Цел ден"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Сите настани пред денес"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Цел овој ден"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Цела оваа седмица"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Цела оваа година"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Зафатено"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "За денес"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Надвор од канцеларија"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Јавен"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Покажи ме како"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Допрете за нова задача"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Фотографија"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Нов настан"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Нова задача"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Пренесувањето заврши"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Пропуштено"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "За повеќе од 1 седмица"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Слободна"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Приватно"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "денови"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "часови"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Основен локал"
+
diff --git a/po/nb.po b/po/nb.po
new file mode 100755 (executable)
index 0000000..0f8bd92
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Sted"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Hele kalenderen"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dag"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Uke"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sendingsalternativer"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Eksporter"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Søndag"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Mandag"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Første dag i uken"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "På tiden"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Liste"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Lås tidssone"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Tidssone"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Gjenta til"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Deltaker"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "År"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Gjenta"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Rediger hendelse"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Påminnelse"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Hver uke"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Hver måned"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Hvert år"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Ny hendelse"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Oppgave"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Vis fullførte oppgaver"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Opprett"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Tittel"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Sted"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Kart"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Fra"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Til"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min før"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min før"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 time før"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dag før"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dager før"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 uke før"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ingen"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Merknad"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Lagre"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendere"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Måned"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Rediger"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Slett"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Søk"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Melding"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-post"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Rediger"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Lagre"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Slett"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Slett"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Denne hendelsen vil bli slettet"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Melding"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Søndag"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Mandag"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Navn"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Imp. hendelser/oppgaver"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Eks. hendelser/oppgaver"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "Formiddag"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Fant ingen resultater"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Hver måned"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Før"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "før"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Daglig"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Sluttid"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Hver måned"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Måned"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Starttid"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Trykk for å angi plassering"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Trykk for å angi notat"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Trykk for å angi tittel"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Måned"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Ukentlig"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Årlig"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Trykk for å angi deltaker"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "U"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Hele dagen"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "uker"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "uke"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Standard konto"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Kart"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Kalendersynkronisering"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Hendelser"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Sted er ikke valgt"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Slett hendelse"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Sende meldinger til deltakere?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Deltakere"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendere"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Ingen kalendere"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Bare denne hendelsen"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Alle gjentakende hendelser"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Ingen tittel"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "time"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "ganger"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Koblet kalender"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefonkalender"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Daglig visning"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Ukentlig visning"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Kan ikke finne plassering"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Sted"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dag"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "uke"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Lagre i"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Ingen hendelser"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Tilpass"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Lagre?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Vis hendelser etter uke"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Oppsett i månedsvisning"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Vis hendelser etter dag"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Eksporterer..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importerer..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importert"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Eksportert"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Hver dag"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Oppgaver"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Forfallsdato"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Ingen forfallsdato"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioritet"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarmtiden er allerede passert"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Ugyldig periode\nfor gjentagelse"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Gjentakende hendelse"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Sluttidspunkt må være etter starttidspunkt"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Kalendersynkronisering pågår"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Ugyldig tid"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Hver %d. dag"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Hver %d. uke"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Fullført"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Ny oppgave"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Rediger oppgave"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Lås hendelsestider og -datoer til din valgte tidssone nedenfor. Klokkeslett og datoer vil ikke endre seg selv om du forflytter deg til en annen tidssone"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Oppgavedetaljer"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Hendelsesdetaljer"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Ingen oppgaver"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Avvist"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Foreløpig"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegert"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Vert"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Deltakelsesstatus"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Slett oppgave"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Endre alle hendelser i serien"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Opprett hendelse"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Hendelse"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalender"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Søk plassering"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Utført"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Gjentakelse"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Påminnelser"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Beskrivelse"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importer kalendere"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fravær"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Legg til kontakt"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Vis"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Kalendere å vise"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Min kalender"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Min oppgave"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Kontaktens bursdag"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Vis ukenummer"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Min telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "Ettermiddag"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "hver dag"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Personvern"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Vis"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "uke(r)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "Dag(er)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Endre bare denne hendelsen"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Hver andre uke"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Hver tredje dag"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Ingen forfallsdato"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Nådd maksimalt antall tegn"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Oppgaver"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s har fødselsdag"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s sin årsdag"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Eksporter S Planner-data fra telefonen din"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "timer"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dager"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "uke"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "time"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dag"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Slett"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Vedlegg"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "I dag"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Mer"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Alle denne måneden"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Hele dagen"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Alle hendelser før i dag"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Alle denne dagen"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Alle denne uken"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Hele dette året"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Opptatt"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Forfaller i dag"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fravær"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Offentlig"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Vis meg som"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Trykk for å opprette oppgave"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Opprett hendelse"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Opprett oppgave"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Overføring fullført"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Forfalt"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Forfaller om over 1 uke"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Ledig"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privat"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dager"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "timer"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Lokal standard"
+
diff --git a/po/nl_NL.po b/po/nl_NL.po
new file mode 100755 (executable)
index 0000000..4c7b532
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Locatie"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Alle agenda-items"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dag"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Week"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Verzendopties"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exporteren"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "zondag"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "maandag"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Eerste dag van de week"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Op tijd"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lijst"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Tijdzone vergrendelen"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Tijdzone"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Herhalen tot"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Deelnemer"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "jaar"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Herhalen"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Gebeurtenis bewerken"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Herinnering"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Wekelijks"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Maandelijks"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Jaarlijks"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Nieuw agenda-item"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Taak"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Voltooide taken weergeven"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Nieuw"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Titel"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Plaats"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Kaart"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Van"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Tot"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Uit"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 minuten van tevoren"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 minuten voor"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 uur van tevoren"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dag van tevoren"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dagen van tevoren"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 week van tevoren"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Geen"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Notitie"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Opslaan"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Annuleren"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Agenda's"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Maand"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Wijzigen"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Zoeken"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Bericht"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Bewerken"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Opslaan"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Deze gebeurtenis wordt verwijderd"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Bericht"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "zondag"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "maandag"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Naam"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Agenda-items/taken imp"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Agenda-items/taken exp"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normaal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Geen resultaten gevonden"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Maandelijks"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Voor"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "voor"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Dagelijks"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Eindtijd"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Maandelijks"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Maand"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Begintijd"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Tik om locatie in te geven"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Tik om opmerking in te geven"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Tik om titel in te voeren"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Maand"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Wekelijks"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Jaarlijks"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tik om deelnemer in te geven"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "W"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Hele dag"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "weken"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Standaard account"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Kaart"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Agenda synchroniseren"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Gebeurtenissen"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Geen locatie geselecteerd"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Gebeurtenis verwijderen"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Berichten verzenden aan deelnemers?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Deelnemers"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Agenda's"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Geen agenda's"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Alleen deze gebeurtenis"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Alle terugkerende agenda-items"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Geen titel"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "uur"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "keer"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Gekoppelde agenda"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefoonagenda"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Dagoverzicht"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Weekweergave"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Kan locatie niet vinden"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Locatie"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dag"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "week"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Opslaan in"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Geen gebeurtenissen"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Aanpassen"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Opslaan?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Agenda-items per week tonen"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Lay-out in maandweergave"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Agenda-items per dag tonen"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exporteren..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importeren..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Geïmporteerd"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Geëxporteerd"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Dagelijks"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Actiepunt"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Datum gereed"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Geen vervaldatum"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioriteit"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarmtijd is al verstreken"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Ongeldig herhaal-\nperiode"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Herhaalde gebeurtenis"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Eindtijd moet na begintijd vallen"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Agenda synchroniseren"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Ongeldige tijd"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Om de %d dagen"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Om de %d weken"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Voltooid"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nieuwe taak"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Taak bewerken"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Zet de tijd en de datum van de agenda-items vast op de hieronder geselecteerde tijdzone. De tijd en de datum van het agenda-item veranderen niet, zelfs niet als u naar een andere tijdzone gaat"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Taakgegevens"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Gebeurtenisdetails"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Geen taken"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Afgewezen"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Poging"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Gedelegeerd"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Deelnamestatus"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Taak verwijderen"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Alle gebeurtenissen in de serie wijzigen"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Nieuwe afspraak"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Agenda-item"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Agenda"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Zoeklocatie"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Gereed"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Herhaling"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Herinnering"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Omschrijving"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Agenda-items importeren"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Niet op kantoor"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Toevoegen aan contactpersoon"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Tonen"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Agenda´s om weer te geven"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mijn agenda"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Mijn taak"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Verjaardag van contact"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Weeknummer tonen"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mijn telefoon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Dagelijks"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacy"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Weergave"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "week/weken"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "dag(en)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Alleen deze gebeurtenis wijzigen"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Om de 2 weken"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Om de 3 dagen"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Geen vervaldatum"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximumaantal tekens bereikt"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Taken"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Verjaardag van %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Verjaardag van %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "S Planner-gegevens van uw telefoon exporteren"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "uur"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dagen"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "week"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "uur"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dag"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Wissen"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Bijlage"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Vandaag"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Meer"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Alles van deze maand"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Hele dag"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Alle agenda-items voor vandaag"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Alles van vandaag"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Alles van deze week"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Dit hele jaar"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Bezet"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Vervalt vandaag"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Niet op kantoor"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Openbaar"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Geef mij weer als"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Tik om taak te maken"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Nieuwe afspraak"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Taak toevoegen"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Overdracht voltooid"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Te laat"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Vervalt over meer dan 1 week"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Vrij"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privé"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dagen"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "uur"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Standaard regionale instelling"
+
diff --git a/po/pl.po b/po/pl.po
new file mode 100755 (executable)
index 0000000..5aec46b
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Miejsce"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Cały kalendarz"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dzień"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Tydzień"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Ustawienia wysyłania"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Eksportuj"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Niedziela"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Poniedziałek"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Pierwszy dzień tygodnia"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Na czas"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Zablokuj strefę czasową"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Strefa czasowa"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Powtarzaj aż do"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Uczestnik"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Rok"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Powtarzanie"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Edytuj wydarzenie"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Przypomnienie"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Co tydzień"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Co miesiąc"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Co roku"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Nowe wydarzenie"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Zadanie"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Pokaż ukończone zadania"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Utwórz"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Tytuł"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Miejsce"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Do"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Wył."
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min przed"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min przed"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 godz. przed"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dzień przed"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dni przed"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 tydzień przed"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Brak"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Notatka"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Zapisz"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendarze"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Miesiąc"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Edytuj"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Szukaj"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Wiadomość"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Edytuj"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Zapisz"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "To wydarzenie zostanie usunięte"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Wiadomość"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Niedziela"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Poniedziałek"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nazwa"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importuj wyd./zadania"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Eksportuj wyd./zadania"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normalny"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nie znaleziono wyników"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Co miesiąc"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Przed"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "przed"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Codziennie"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Godzina zakończenia"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Co miesiąc"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Miesiąc"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Godzina rozpoczęcia"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Dotknij, aby wprowadzić lokalizację"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Dotknij, aby wprowadzić notatkę"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Dotknij, aby wprowadzić tytuł"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Miesiąc"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Co tydzień"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Co roku"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Dotknij, aby wprowadzić uczestników"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "T"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Cały dzień"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "tygodnie"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "tydzień"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Stan"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Konto domyślne"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Synchr. kalendarza"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Zdarzenia"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nie wybrano żadnej lokalizacji"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Usuń wydarzenie"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Wysłać wiadomości do uczestników?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Uczestnicy"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendarze"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Brak kalendarzy"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Tylko to wydarzenie"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Wszystkie powtarzające się wydarzenia"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Brak tytułu"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "godz."
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "razy"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Powiązany kalendarz"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Kalendarz telefonu"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Widok dnia"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Widok tygodnia"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Nie można znaleźć lokalizacji"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Miejsce"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dzień"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "tydzień"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Zapisz w"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Brak wydarzeń"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Dostosuj"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Zapisać?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Pokaż wydarzenia według tygodni"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Układ w widoku miesiąca"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Pokaż wydarzenia według dni"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Eksportowanie..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importowanie..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Zaimportowano"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Wyeksportowano"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Codziennie"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Do wykonania"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Data zakończenia"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Brak daty wykonania"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Priorytet"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Godzina alarmu już minęła"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Nieprawidłowy okres\npowtarzania"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Zdarzenie powtarzane"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Ustaw czas zakończenia po czasie rozpoczęcia"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Trwa synchronizacja z kalendarzem"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Nieprawidłowa godzina"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Co %d dni"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Co %d tygodni(e)"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Zakończono"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nowe zadanie"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Edytuj zadanie"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Zablokuj godziny i daty wydarzeń dla wybranej strefy czasowej. Godziny i daty nie ulegną zmianie, nawet jeśli przeniesiesz się do innej strefy czasowej"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Szczegóły zadania"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Szczegóły wydarzenia"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Brak zadań"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Odrzucono"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Wstępnie"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Oddelegowano"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Host"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Stan udziału"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Usuń zadanie"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Zmień wszystkie wydarzenia w serii"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Utwórz"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Wydarzenie"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalendarz"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Wyszukaj lokalizację"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "OK"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Powtórzenie"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Przypomnienia"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Opis"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importuj kalendarze"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Autoodpowiedź"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Dodaj do kontaktów"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Podgląd"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Kalendarze do wyświetlania"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mój kalendarz"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Moje zadanie"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Urodziny kontaktu"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Wyświetlanie numeru tygodnia"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mój telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Codziennie"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Prywatność"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Widok"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "tydzień"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "dni"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Zmień tylko to zdarzenie"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Co 2 tygodnie"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Co 3 dni"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Brak daty wykonania"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Osiągnięto maksymalną liczbę znaków"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Zadania"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s - urodziny"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Rocznica użytkownika %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Eksportuj dane Terminarza S z telefonu"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "godzin"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dni"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "tydz."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "godz."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dzień"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Usuń"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Załącznik"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Dzisiaj"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Inf."
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Wszystkie w tym miesiącu"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Cały dzień"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Wszystkie wydarzenia przed dniem dzisiejszym"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Wszystkie w tym dniu"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Wszystkie w tym tygodniu"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Wszystkie w tym roku"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Zajęty"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Z terminem wykonania dziś"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Autoodpowiedź"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Publiczny"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Pokazuj mnie jako"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Dotknij, aby utworzyć zadanie"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Zdjęcie"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Utwórz"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Utwórz zadanie"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Przesyłanie ukończone"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Opóźnione"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Z terminem wykonania po 1 tygodniu"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Nie ostrzegaj"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Prywatne"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dni"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "godz."
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Domyślne ustawienie lokalne"
+
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100755 (executable)
index 0000000..5087b10
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Local"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Todos os calendários"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dia"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semana"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opções de envio"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportar"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Segunda"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primeiro dia da semana"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Na hora"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Bloquear fuso horário"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Fuso horário"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetir até"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participante"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Ano"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetir"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Editar evento"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Lembrete"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Semanalmente"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Mensalmente"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Anualmente"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Novo evento"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tarefas"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Exibir tarefas completas"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Criar"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Título"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Local"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Para"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Desativado"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min. antes"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min antes"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hora antes"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dia antes"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dias antes"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 semana antes"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Nenhum"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Salvar"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calendários"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mês"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Apagar"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Procurar"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Mensagem"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Salvar"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Apagar"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Apagar"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Este evento será apagado"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Mensagem"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Configurações"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Segunda"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nome"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Imp. eventos/tarefas"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Exp. eventos/tarefas"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nenhum resultado encontrado"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensalmente"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Antes"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "antes"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Diariamente"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Hora final"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensalmente"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mês"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hora inicial"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Toque para inserir localização"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Inserir nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Toque para inserir título"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mês"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Semanalmente"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anualmente"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Toque para inserir participante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Todo o dia"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "semanas"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Conta padrão"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronização do Calendário"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventos"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Sem localização selecionada"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Apagar evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Enviar mensagens aos participantes?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participantes"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendários"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nenhum calendário"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Apenas este evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Todos os eventos repetitivos"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sem título"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hora"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "vezes"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Agenda conectada"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Agenda do telefone"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Visualização diária"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Visualização semanal"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Impossível encontrar localização"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Local"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dia"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Salvar em"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nenhum evento"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizar"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Salvar?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostrar eventos por semana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout no modo de exibição de mês"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostrar eventos por dia"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportando..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importando..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importado"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportado"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Todos os dias"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Tarefa"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Data limite"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Sem data de conclusão"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioridade"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "A hora do alarme já passou"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Período de repetição inválido"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Evento de repetição"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "A hora final deve ser posterior à hora inicial"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sincronização do Calendário em andamento"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Hora inválida"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "A cada %d dias"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "A cada %d semanas"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Concluído"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nova tarefa"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Editar tarefa"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Bloqueie as horas e as datas dos eventos no fuso horário selecionado abaixo. As horas e as datas não serão alteradas, mesmo que se desloque para outro fuso horário"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalhes da tarefa"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detalhes de evento"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Sem tarefas"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Negado"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Tentativa"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Atribuída"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Anfitrião"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Status de presença"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Apagar tarefa"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Alterar todos os eventos da série"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Criar evento"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Evento"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendário"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Procurar localização"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "OK"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetição"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Lembretes"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Descrição"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importar agendas"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fora do escritório"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Adicionar aos contatos"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendários para exibir"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Meu calendário"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Tarefa concluída"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Aniversário do contato"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Exibir número da semana"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Meu telefone"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Todos os dias"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacidade"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Visualizar"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "semana(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "dia(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Alterar apenas este evento"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "A cada 2 semanas"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "A cada 3 dias"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Sem data de vencimento"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tarefas"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Aniversário de %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Aniversário de %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exportar os dados do S Planner do seu celular"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "m"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "m"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "horas"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dias"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "sem."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hora"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dia"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Apagar"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Anexo"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Hoje"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Mais"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "O mês todo"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Todo o dia"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Todos os eventos anteriores a hoje"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "O dia todo"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Toda semana"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "O ano todo"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Ocupado"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Vencimento hoje"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fora do escritório"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Público"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Mostre-me como"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Toque para criar a tarefa"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Criar evento"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Criar tarefa"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transferência concluída"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Atrasada"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Vencimento em mais de 1 semana"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Livre"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privado"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dias"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "horas"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Local padrão"
+
diff --git a/po/pt_PT.po b/po/pt_PT.po
new file mode 100755 (executable)
index 0000000..2495931
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Todas as agendas"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dia"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Semana"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opções de envio"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportar"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Segunda-feira"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Primeiro dia da semana"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Na hora"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Bloquear fuso horário"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Fuso horário"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetir até"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participante"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Ano"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetir"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Editar evento"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Lembrete"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "todas as semanas"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "todos os meses"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Todos os anos"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Novo evento"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Tarefa"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Mostrar tarefas concluídas"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Criar"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Título"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Para"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Desligar"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min. antes"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 minutos antes"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hora antes"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dia antes"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dias antes"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 semana antes"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Desligado"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Nota"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Guardar"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Agendas"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mês"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Procurar"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Mensagem"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Editar"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Guardar"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Eliminar"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Este evento será eliminado"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Mensagem"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Domingo"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Segunda-feira"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nome"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Import. eventos/tarefas"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Export. eventos/tarefas"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nenhuns resultados encontrados"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mensalmente"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Antes"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "antes"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Diariamente"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Hora de fim"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mensalmente"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mês"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Hora de início"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Toque para introduzir localização"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Toque para introduzir nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Toque para introduzir título"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mês"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Semanalmente"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anualmente"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Tocar para introduzir participante"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Todo o dia"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "semanas"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Estado"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Conta padrão"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronização da agenda"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Eventos"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Sem localização seleccionada"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Eliminar evento"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Enviar mensagens aos participantes?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participantes"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Agendas"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nenhumas agendas"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Apenas este evento"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Todos os eventos de repetição"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sem título"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hora"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "vezes"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Agenda ligada"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Agenda do telefone"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vista diária"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vista semanal"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Impossível encontrar localização"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Localização"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dia"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "semana"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Guardar em"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nenhuns eventos"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Personalizar"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Guardar?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Mostrar eventos por semana"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Disposição em vista mensal"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Mostrar eventos por dia"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "A exportar..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "A importar..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importados"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportado"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Todos os dias"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Tarefa"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Data limite"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Sem data de conclusão"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioridade"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "A hora do alarme já passou"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Período de\nrepetição inválido"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Evento de repetição"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "A hora de fim deve ser posterior à de início"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sincronização da agenda em curso"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Hora inválida"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "A cada %d dias"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "A cada %d semanas"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Concluído"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nova tarefa"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Editar tarefa"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Bloqueie as horas e as datas dos eventos no fuso horário seleccionado abaixo. As horas e as datas não serão alteradas, mesmo que se desloque para outro fuso horário"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalhes de tarefa"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detalhes de evento"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Sem tarefas"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Rejeitado"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Tentativa"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegado"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Anfitrião"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Estado de participação"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Apagar tarefa"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Alterar todos os eventos da série"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Criar evento"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Evento"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendário"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Procurar localização"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Concluído"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetição"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Lembretes"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Descrição"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importar agendas"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Fora do escritório"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Adicionar a contacto"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Agendas para mostrar"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "A minha agenda"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "A minha tarefa"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Aniversário do contacto"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Mostrar número da semana"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "O meu telefone"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "todos os dias"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privacidade"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Ver"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "semana(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "Dia(s)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Alterar apenas este evento"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "De 2 em 2 semanas"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "De 3 em 3 dias"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Sem data de conclusão"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Número máximo de caracteres atingido."
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Tarefas"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Aniversário de %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Aniversário de %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exportar dados do S Planner do seu telefone"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "horas"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dias"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "Sem."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hora"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dia"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Elim."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Anexo"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Hoje"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Mais"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Todo este mês"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Todo o dia"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Todos os eventos anteriores a hoje"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Todo este dia"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Toda esta semana"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Todo este ano"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Ocupado"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Conclusão hoje"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Fora do escritório"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Público"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Mostrar-me como"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Tocar para criar tarefa"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Criar evento"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Criar tarefa"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transferência concluída"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Atrasada"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Conclusão em 1 semana"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Livre"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privado"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dias"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "horas"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Padrão regional"
+
diff --git a/po/ro.po b/po/ro.po
new file mode 100755 (executable)
index 0000000..1aa1457
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Locaţie"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Întregul calendar"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Ziua"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Săptămână"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opţiuni trimitere"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Export"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Duminică"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Luni"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Prima zi a săptămânii"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "La timp"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Listă"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Blocare fus orar"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Fus orar"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Repetare până la"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Participant"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Anul"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Repetare"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Editare eveniment"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Memento"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "săptămânal"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "lunar"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "În fiecare an"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Eveniment nou"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Activitate"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Afişare activităţi efectuate"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Creare"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Titlu"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Amplasare"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Hartă"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "De la"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Până la"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Oprit"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "Cu 5 min. înainte"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 minute înainte"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "Cu o oră înainte"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "Cu o zi înainte"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "Cu 2 zile înainte"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 săptămână înainte"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Niciuna"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Notă"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Salvare"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Calend."
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Lună"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Editare"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Căutare"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Email"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Editare"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Salvare"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Ştergere"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Acest eveniment va fi şters"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Mesaj"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Duminică"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Luni"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nume"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Import even./activităţi"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Export even./activităţi"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nu au fost găsite rezultate"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Lunar"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Înainte"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "înainte"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Zilnic"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Oră terminare"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Lunar"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Lună"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Oră de început"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Atingeţi pentru a introduce locaţia"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Atingeţi pentru a introduce nota"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Atingeţi pentru a introduce titlul"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Lună"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Săptămânal"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Anual"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Atingeţi pentru a introduce participantul"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "S"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Toată ziua"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "săptămâni"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "săptămână"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Stare"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Cont prestabilit"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Hartă"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sincronizare calendar"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Evenimente"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nicio locaţie selectată"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Ştergere eveniment"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Trimiteţi mesaje participanţilor?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Participanţi"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Calendare"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nu există calendare"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Numai pentru acest eveniment"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Toate evenimentele repetitive"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Nici un titlu"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "oră"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "ori"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Calendar conectat"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Calendar telefon"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Vizualizare zilnică"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Vizualizare pe săptămâni"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Imposibil de găsit locaţia"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Locaţie"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "zi"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "săptămână"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Salvare în"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nu există evenimente"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Particularizare"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Salvaţi?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Afişare evenimente după săptămână"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Aspect vizualizare lunară"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Afişare evenimente după zi"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Se exportă..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Se importă..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importate"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportat"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "În fiecare zi"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "De făcut"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Dată limită"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Nicio dată scadentă"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioritate"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Ora de alarmă deja a trecut"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Perioadă de repetiţie incorectă"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Eveniment cu repetare"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Ora de sfârşit trebuie setată după ora de început"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sincronizarea calendarului este în desfăşurare"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Oră incorectă"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "La fiecare %d zile"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "La fiecare %d săptămâni"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Finalizat"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Activitate nouă"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Editare activitate"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Blocaţi orele şi datele evenimentului la fusul orar selectat de mai jos. Orele şi datele nu se vor modifica, nici dacă vă deplasaţi în alt fus orar"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalii activitate"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Detalii eveniment"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Nu există activităţi"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Respins"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Încercare"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegat"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Gazdă"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Stare participare"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Ştergere activitate"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Schimbare pentru toate evenimentele din serie"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Creare eveniment"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Eveniment"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Calendar"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Căutare locaţie"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Gata"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Repetare"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Memento"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Descriere"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Import calendare"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Absent de la birou"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Adăugare la contacte"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Vizualizare"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Calendare de afişat"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Calendarul meu"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Activitatea mea"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Zi de naştere contact"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Afişare număr săptămână"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Telefonul meu"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "În fiecare zi"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Confidenţialitate"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Vizual."
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "săptămâni"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "zile"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Schimbare numai pentru acest eveniment"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "La 2 săptămâni"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "La 3 zile"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Nicio dată scadentă"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Adăugare la marcaje"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Activităţi"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Ziua de naştere a lui %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Aniversare %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Export date S Planner de pe telefon"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "m"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "minut"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "ore"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "zile"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "săp."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "oră"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "zi"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Şterg."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Ataşare"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Azi"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Sup."
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Toate din această lună"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Toată ziua"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Toate evenimentele anterioare zilei de astăzi"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Toate din această zi"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Toate din săptămâna aceasta"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Toate din anul acesta"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Ocupat"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Data limită astăzi"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Absent de la birou"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Public"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Apar ca"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Atingeţi pentru a crea o activitate"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fotografie"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Creare eveniment"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Creare activitate"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Transfer finalizat"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Depăşită"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Data limită peste mai mult de o săptămână"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Liber"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privat"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "zile"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "ore"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Setare locală implicită"
+
diff --git a/po/ru_RU.po b/po/ru_RU.po
new file mode 100755 (executable)
index 0000000..062d980
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Местоположение"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Весь календарь"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "День"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Неделя"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Параметры отправки"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Экспорт"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Воскресенье"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Понедельник"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Первый день недели"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Время включения"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Список файлов"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Фикс. часовой пояс"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Часовой пояс"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Повторять до"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Участник"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Год"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Повтор"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Изменить событие"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Напоминание"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Еженедельно"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Ежемесячно"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Ежегодно"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Новое событие"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Задача"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Показать завершенные задачи"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Создать"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Название"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Место"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Карта"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "От"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "До"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Выключено"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "За 5 минут"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "За 15 минут"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "За 1 час"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "За 1 день"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "За 2 дня"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "За 1 неделю"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Нет"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Заметка"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Сохранить"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Календари"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Месяц"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Изменить"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Поиск"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Сообщение"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Изменить"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Соxранить"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Удалить"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Событие будет удалено"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Сообщение"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Воскресенье"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Понедельник"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Имя"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Импорт событий/задач"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Экспорт событий/задач"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Обычный"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Ничего не найдено"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Ежемесячно"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "За"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "за"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Ежедневно"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Время окончания"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Ежемесячно"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Месяц"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Время начала"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Нажмите для ввода места"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Нажмите для ввода заметки"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Нажмите для ввода названия"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Месяц"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Еженедельно"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Ежегодно"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Нажмите для ввода участника"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "Н"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Весь день"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "нед."
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "неделя"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Состояние"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Уч. зап. по умолч."
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Карта"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Синхронизация календаря"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "События"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Местоположение не выбрано"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Удалить событие"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Отправить сообщения участникам?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Участники"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Календари"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Нет календарей"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Только это событие"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Все повторяющиеся события"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Нет названия"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "час"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "раз."
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Связанный календарь"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Календарь телефона"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "День"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Неделя"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Невозможно найти местоположение"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Расположение"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "день"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "неделя"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Сохранить в"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Нет событий"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Настроить"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Сохранить?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Показать события по неделям"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Макет для просмотра по месяцам"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Показать события по дням"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Экспорт..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Импорт..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Импортировано"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Экспортировано"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Каждый день"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Задача"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Дата завершения"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Нет срока выполнения"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Приоритет"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Время сигнала уже прошло"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Неверный период повтора"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Повторяющееся событие"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Время окончания должно быть позже времени начала"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Выполняется синхронизация календаря"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Неверное время"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Через %d дн."
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Каждые %d нед."
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Завершено"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Новая задача"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Изменить задачу"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Фиксация времени и дат событий в указанном ниже часовом поясе. Время и дата не будут изменяться даже при перемещении в другой часовой пояс"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Сведения о задаче"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Сведения о событии"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Нет задач"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Отклонено"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Под вопросом"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Делегировано"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Хозяин"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Состояние участия"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Удалить задачу"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Изменить все события в последовательности"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Создать событие"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Событие"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Календарь"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Поиск места"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Готово"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Повтор"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Напоминания"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Описание"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Импортировать календари"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Нет на работе"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Добавить к контакту"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Просмотреть"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Показать календари"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Мой календарь"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Моя задача"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "День рождения контакта"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Показывать номер недели"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Мой телефон"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Каждый день"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Конфиденциальность"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Просмотреть"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "нед."
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "дн."
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Изменить только это событие"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Каждые 2 недели"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Через 3 дня"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Нет срока"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Достигнуто максимальное число символов"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Задачи"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "День рождения у %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Годовщина: %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Экспорт данных планировщика S Planner с телефона"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "мин."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "мин."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "ч."
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "дн."
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "нед."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "час"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "день"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Удал."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Вложение"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Сегодня"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Еще"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Весь месяц"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Весь день"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Все события до сегодня"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Весь день"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Всю неделю"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Весь год"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Занят"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Со сроком сегодня"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Нет на работе"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Открытый"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Показывать состояние"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Нажмите, чтобы создать задачу"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Фото"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Создать событие"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Создать задачу"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Передача завершена"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Просрочено"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Со сроком более недели"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Свободный"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Личное"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "дн."
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "ч"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "По умолчанию"
+
diff --git a/po/sk.po b/po/sk.po
new file mode 100755 (executable)
index 0000000..c9e28ca
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Miesto"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Celý kalendár"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Deň"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Týždeň"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Možnosti odosielania"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportovať"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Nedeľa"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Pondelok"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Prvý deň týždňa"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "V čase"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Zoznam"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Uzamknúť časové pásmo"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Časové pásmo"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Opakovať do"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Účastník"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Rok"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Opakovať"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Upraviť udalosť"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Pripomienka"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "každý týždeň"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "každý mesiac"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Každý rok"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Nová udalosť"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Úloha"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Zobraziť dokončené úlohy"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Vytv."
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Názov"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Miesto"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Do"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Vyp."
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 minút predtým"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "Pred 15 minútami"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 hodinu predtým"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 deň predtým"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dni predtým"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 týždeň predtým"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Žiadny"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Poznámka"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Uložiť"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendáre"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mesiac"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Upraviť"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Hľadať"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Správa"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-mail"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Upraviť"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Uložiť"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Odstrániť"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Táto udalosť bude vymazaná"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Správa"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Nedeľa"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Pondelok"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Meno"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Import. udalosti/úlohy"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Export. udalosti/úlohy"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "dop."
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normál."
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nenašli sa žiadne výsledky"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mesačne"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Pred"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "pred"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Denne"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Konečný čas"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mesačne"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mesiac"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Počiatočný čas"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Ťuknutím zadajte umiestnenie"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Ťuknutím zadajte poznámku"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Ťuknutím zadajte názov"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mesiac"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Týždenne"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Ročne"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Ťuknutím zadajte účastníka"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "T"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Celý deň"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "týždne"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "týždeň"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Stav"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Predvolené konto"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Synchronizácia kalendára"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Udalosti"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nie je vybraté žiadne umiestnenie"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Vymazať udalosť"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Odoslať správy účastníkom?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Účastníci"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendáre"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Žiadne kalendáre"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Iba táto udalosť"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Všetky opakujúce sa udalosti"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Žiadny názov"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "hodina"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "krát"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Prepojený kalendár"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Kalendár v telefóne"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Denné zobrazenie"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Týždenné zobrazenie"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Nedá sa nájsť umiestnenie"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Miesto"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "deň"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "týždeň"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Uložiť do"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Žiadne udalosti"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Upraviť"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Uložiť?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Zobraziť udalosti podľa týždňa"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Rozloženie v mesačnom zobrazení"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Zobraziť udalosti podľa dňa"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exportuje sa..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importuje sa..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importované"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exportované"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Každý deň"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Úloha"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Termín"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Žiadny dátum úlohy"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Dôležitosť"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Čas budíka už uplynul"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Neplatná perióda\nopakovania"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Opakujúca sa udalosť"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Koncový čas musí byť nastavený po počiatočnom čase"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Prebieha synchronizácia kalendára"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Neplatný čas"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Každé %d dni"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Každé %d týždne"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Dokončené"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Nová úloha"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Upraviť úlohu"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Času a dátumy udalostí sa uzamknú na časové pásmo vybraté nižšie. Časy a dátumy sa nezmenia ani v prípade, ak prejdete do iného časového pásma"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detaily úlohy"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Podrobnosti o udalosti"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Žiadne úlohy"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Odmietnuté"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Nezáväzne"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegovaný"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Hostiteľ"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Prezenčný stav"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Odstrániť úlohu"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Zmeniť všetky udalosti za sebou"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Vytvoriť udalosť"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Udalosť"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalendár"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Hľadať umiestnenie"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Hotovo"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Opakovanie"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Pripomenutia"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Popis"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importovať kalendáre"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Mimo kancelárie"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Pridať do kontaktu"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Zobraziť"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Kalendáre na zobrazenie"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Môj kalendár"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Moja úloha"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Narodeniny kontaktu"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Zobraziť číslo týždňa"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Môj telefón"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "odp."
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "každý deň"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Súkromie"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Zobraz."
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "týždne"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "Deň(dni)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Zmeniť iba túto udalosť"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Každé 2 týždne"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Každé 3 dni"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Žiadny dátum splnenia úlohy"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Bol dosiahnutý maximálny počet znakov"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Úlohy"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s – narodeniny"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Výročie používateľa %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exportovať údaje aplikácie S Planner z vášho telefónu"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "hodiny"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dni"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "týž."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "hod."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "deň"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Vymaz."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Príloha"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Dnes"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Ďal."
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Celý tento mesiac"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Celý deň"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Všetky udalosti pred dneškom"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Celý tento deň"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Celý tento týždeň"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Celý tento rok"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Zanepr."
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Termín dnes"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Mimo kancelárie"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Verejný"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Zobraziť ma ako"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Ťuknutím môžete vytvoriť úlohu"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fotografia"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Vytvoriť udalosť"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Vytvoriť úlohu"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Prenos je dokončený"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Po termíne"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Termín o viac než 1 týždeň"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Voľné"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Súkromné"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dni"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "hodiny"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Predvolené miestne nastavenia"
+
diff --git a/po/sl.po b/po/sl.po
new file mode 100755 (executable)
index 0000000..d75e6f5
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Vsi koledarji"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dan"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Teden"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Možnosti za pošiljanje"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Izvoz"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Nedelja"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Ponedeljek"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Prvi dan v tednu"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Ob času"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Seznam"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Zakleni časovni pas"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Časovni pas"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Ponavljaj do"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Udeleženec"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Leto"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Ponovi"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Uredi dogodek"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Opomnik"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Vsak teden"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Vsak mesec"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Vsako leto"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Nov dogodek"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Opravila"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Pokaži končana opravila"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Ustvari"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Položaj"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Zemljevid"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Do"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Izključeno"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min prej"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 min prej"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 ura prej"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dan prej"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dni prej"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 teden prej"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Brez"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Beležka"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Shrani"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Koled."
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mesec"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Uredi"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Iskanje"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Sporočilo"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-pošta"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Uredi"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Shrani"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Izbriši"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Ta dogodek bo izbrisan"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Sporočilo"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Nedelja"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Ponedeljek"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Ime"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Uvoz dogodkov/opravil"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Izvoz dogodkov/opravil"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "Dop."
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normalno"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Ni najdenih rezultatov"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Vsak mesec"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Pred"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "pred"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Dnevno"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Končni čas"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Vsak mesec"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mesec"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Začetni čas"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Pritisnite za vnos lokacije"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Pritisnite za vnos beležke"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Pritisnite za vnos naslova"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mesec"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Tedensko"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Vsako leto"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Pritisnite za vnos udeleženca"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "T"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Ves dan"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "tednov"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "teden"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Stanje"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Privzeti račun"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Zemljevid"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sinhronizacija koledarja"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Dogodki"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Lokacija ni izbrana"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Izbriši dogodek"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Pošljem sporočilo udeležencem?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Udeleženci"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Koledarji"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Ni koledarjev"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Samo ta dogodek"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Vsi dogodki, ki se ponavljajo"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Ni naslova"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "ura"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "krat"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Povezan koledar"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefonski koledar"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Dnevni pogled"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Tedenski pogled"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Lokacije ni mogoče najti"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dan"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "teden"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Shrani v"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Ni dogodkov"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Prilagodi"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Shrani?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Pokaži dogodke po tednih"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Postavitev v mesečnem pogledu"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Pokaži dogodke po dnevih"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Izvažam ..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Uvažam ..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Uvoženo"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Izvoženo"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Vsak dan"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Opravilo"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Rok"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Ni roka"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Pomembnost"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Čas opozorila je že minil"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Neveljavno obdobje ponavljanja"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Ponavljajoči se dogodek"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Končni datum mora biti za začetnim"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Poteka sinhronizacija koledarja"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Neveljaven čas"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Vsakih %d dni"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Vsake %d tedne"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Končano"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Novo opravilo"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Uredi opravilo"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Zaklenite čas in datum dogodka na spodaj izbran časovni pas. Čas in datum se ne bosta spremenila, tudi če se premaknete v drug časovni pas"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Podrobnosti opravila"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Podrobnosti dogodka"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Ni opravil"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Zavrnjeno"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Začasno"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Dodeljeno"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Gostitelj"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Stanje udeležbe"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Izbriši opravilo"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Spremeni vse dogodke v seriji"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Ustvari dogodek"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Dogodek"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Koledar"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Iskanje lokacije"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Končano"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Ponavljanje"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Opomniki"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Opis"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Uvozi koledarje"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Izven pisarne"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Dodaj v stike"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Poglej"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Koledarji za prikaz"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Moj koledar"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Moje opravilo"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Rojstni dan stika"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Pokaži številko tedna"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Moj telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Vsak dan"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Zasebnost"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Prikaz"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "teden/-ni"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "dan/dni"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Spremeni samo ta dogodek"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Vsaka 2 tedna"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Vsake 3 dni"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Ni roka"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Doseženo je največje dovoljeno število znakov"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Opravila"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Rojstni dan: %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Obletnica osebe %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Izvoz podatkov aplikacije S Planner iz telefona"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "h"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "d"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "ted."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "ura"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dan"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Izbris"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Priloga"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Danes"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Več"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Vse ta mesec"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Ves dan"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Vsi dogodki pred današnjim dnem"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Vse ta dan"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Vse ta teden"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Celo leto"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Zaseden"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Do danes"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Izven pisarne"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Javno"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Pokaži me kot"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Pritisnite, da ustvarite opravilo"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fotografija"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Ustvari dogodek"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Ustvari opravilo"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Prenos je končan"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Zamujen"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "V roku več kot 1 tedna"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Prosto"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Zasebno"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dni"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "ur"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Lokalno privzeto"
+
diff --git a/po/sr.po b/po/sr.po
new file mode 100755 (executable)
index 0000000..8697b7f
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Izaberi ceo kalendar"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dan"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Nedeljni prikaz"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Opcije slanja"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Izvezi"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Nedelja"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Ponedeljak"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Prvi dan u nedelji"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Na vreme"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Fiksiraj vremensku zonu"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Vremenska zona"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Ponavljaj do"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Učesnik"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Godina"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Ponovi"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Izmeni događaj"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Podsetnik"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "svake nedelje"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "svakog meseca"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Svake godine"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Novi događaj"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Zadatak"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Prikaži završene zadatke"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Kreiraj"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Naslov"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Od"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Za"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 minuta pre"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 minuta ranije"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 sat ranije"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dan ranije"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dana ranije"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 nedelja ranije"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Nema"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Beleška"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Sačuvaj"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Poništi"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendari"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Mesec"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Izmeni"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Pretraga"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Poruka"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-pošta"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Izmeni"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Sačuvaj"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Ovaj događaj će biti obrisan"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Poruka"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Nedelja"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Ponedeljak"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Ime"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Uvezi događaje/zadatke"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Izvezi događaje/zadatke"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normalan"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Nema rezultata"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Mesečno"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Pre"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "pre"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Svakodnevno"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Vreme završetka"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Mesečno"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Mesec"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Vreme početka"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Kucni za unos lokacije"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Kucni za unos beleške"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Kucni za unos naslova"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Mesec"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Nedeljno"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Godišnje"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Kucni za unos učesnika"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "N"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Celodnevni"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "nedelje"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "nedelja"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Podrazumev. nalog"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Mapa"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Sinhronizacija kalendara"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Događaji"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Nije izabrana lokacija"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Obriši događaj"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Pošalji poruke učesnicima?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Učesnici"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendari"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Nema kalendara"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Samo ovaj događaj"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Svi ponavljajući događaji"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Nema naslova"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "sat"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "puta"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Povezani kalendar"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Kalendar telefona"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Dnevni prikaz"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Nedeljni prikaz"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Nemoguće pronaći lokaciju"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Lokacija"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dan"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "nedelja"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Sačuvaj u"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Nema događaja"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Prilagodi"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Sačuvaj?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Prikaz događaja po nedelji"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Raspored u mesečnom prikazu"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Prikaz događaja po danu"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Izvoženje..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Uvoz..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Uvezeno"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Izvezeno"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Svaki dan"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Obaveza"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Datum dospeća"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Nema datuma završetka"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioritet"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Vreme alarma već prošlo"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Neispravan period ponavljanja"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Ponavljajući događaje"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Krajnje vreme mora biti nakon početnog vremena"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Sinhronizacija kalendara u toku"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Neispravno vreme"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Svakih %d dana"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Svakih %d nedelja"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Završeno"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Novi zadatak"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Izmeni zadatak"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Fiksiraj vremena događaja i datume prema doleizabranoj vremenskoj zoni. Vremena i datumi se neće promeniti čak ni pri prelasku u drugu vremensku zonu"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Detalji o zadatku"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Podaci o događaju"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Nema zadataka"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Odbijeno"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Načelno"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegiraj"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Domaćin"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Status o prisustvu"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Izbriši zadatak"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Promeni sve događaje u nizu"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Kreiraj događaj"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Događaj"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalendar"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Pretraži lokaciju"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Gotovo"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Ponavljanje"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Podsetnici"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Opis"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Uvezi kalendare"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Van kancelarije"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Dodaj u kontakte"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Prikaži"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Kalendar za prikazivanje"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Moj kalendar"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Moj zadatak"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Rođendan kontakta"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Prikaži broj nedelje"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Moj telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Svaki dan"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privatnost"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Prikaži"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "nedelja/e"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "dan(a)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Promeni samo ovaj događaj"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Na svake 2 nedelje"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Svaka 3 dana"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Nema roka izvršenja"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Dostignut maksimalan broj karaktera"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Zadaci"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "Rođendan - %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Godišnjica %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Izvezi S Planner podatke sa telefona"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "sata/i"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dana"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "ned."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "sat"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dan"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Obriši"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Prilog"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Danas"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Još"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Sve ovog meseca"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Celodnevni"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Sve događaje pre današnjeg dana"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Sve ovog dana"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Sve ove nedelje"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Cele godine"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Zauzet/a"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Danas je krajnji rok"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Van kancelarije"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Javno"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Prikaži me kao"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Kucni za kreiranje zadatka"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fotografija"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Kreiraj događaj"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Kreiraj zadatak"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Prenos je završen"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Rok prekoračen"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Rok ističe za nedelju dana i više"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Slobodno"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privatno"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dana"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "sati"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Lokalno podrazumevano"
+
diff --git a/po/sv.po b/po/sv.po
new file mode 100755 (executable)
index 0000000..93ce10f
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Hela kalendern"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Dag"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Vecka"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Sändalternativ"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Exportera"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "söndag"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "måndag"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Första dagen i veckan"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "När mötet börjar"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Lista"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Lås tidszon"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Tidzon"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Upprepa fram till"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Deltagare"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "År"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Upprepa"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Redigera händelse"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Påminnelse"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Varje vecka"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Varje månad"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Varje år"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Ny händelse"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Uppgift"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Visa slutförda uppgifter"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Skapa"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Rubrik"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Karta"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Från"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Till"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 min före"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 minuter före"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 tim före"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 dag före"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 dagar före"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 v före"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Ingen"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Notering"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Spara"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendrar"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Månad"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Redigera"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Radera"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Sök"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Meddelande"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-post"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Redigera"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Spara"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Radera"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Radera"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Denna händelse kommer att raderas"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Meddelande"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "söndag"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "måndag"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Namn"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Importera händ./uppg."
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Exportera händ./uppg."
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "FM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Inga resultat hittades"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Varje månad"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "innan"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "före"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Varje dag"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Sluttid"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Varje månad"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Månad"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Starttid"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Klicka för att ange plats"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Klicka för att skriva en anteckning"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Ange titel"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Månad"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Varje vecka"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Varje år"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Ange deltagare"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "V"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Hela dagen"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "veckor"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "vecka"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Status"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Standardkonto"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Karta"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Synkronisera kalender"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Händelser"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Ingen plats har valts"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Radera händelse"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Skicka meddelanden till deltagare?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Deltagare"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendrar"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Inga kalendrar"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Endast denna händelse"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Alla upprepade händelser"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Ingen rubrik"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "timme"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "gånger"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Länkad kalender"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefonkalender"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Dagsvy"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Veckovy"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Kan inte hitta platsen"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Plats"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "dag"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "vecka"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Spara i"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Inga händelser"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Anpassa"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Spara?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Visa händelser efter vecka"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Layout som månadsvy"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Visa händelser efter dag"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Exporterar..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Importerar..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Importerat"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exporterad"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Varje dag"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Uppgift"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Förfallodatum"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Inget förfallodatum"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Prioritet"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarmtiden har redan passerat"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Ogiltig\nupprepningsperiod"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Händelse som upprepas"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Sluttiden måste infalla efter starttiden"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Kalendersynkronisering pågår"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Ogiltig tid"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Var %d dag"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Var %d vecka"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Slutfört"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Ny uppgift"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Redigera uppgift"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Lås händelsetider och datum till den valda tidszonen. Tider och datum ändras inte även om du byter tidszon"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Uppgiftsinformation"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Händelseinformation"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Inga uppgifter"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Avböjt"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Preliminärt"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Delegerad"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Värd"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Närvarostatus"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Radera uppgift"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Ändra alla händelser i serien"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Skapa händelse"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Händelse"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalender"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Sök efter plats"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Klar"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Upprepning"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Påminnelser"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Beskrivning"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Importera kalendrar"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Frånvarande"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Lägg till till kontakt"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Visa"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Kalendrar som ska visas"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Min kalender"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Min uppgift"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Kontakts födelsedag"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Visa veckonummer"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Min telefon"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "EM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "varje dag"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Privat"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Visa"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "vecka/veckor"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "dag(ar)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Ändra endast denna händelse"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Varannan vecka"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Var 3:e dag"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Inget förfallodatum"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maximalt antal tecken har använts"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Uppgifter"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%ss födelsedag"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s har födelsedag"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Exportera S Planner-data från din telefon"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "min."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "min"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "timmar"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "dagar"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "vecka"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "tim"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "dag"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Radera"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Bilaga"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Idag"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Mer"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Hela månaden"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Hela dagen"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Alla händelser före dagens datum"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Hela dagen"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Hela veckan"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Hela året"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Upptagen"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Förfaller idag"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Frånvarande"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Allmänt"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Visa mig som"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Tryck för att skapa uppgift"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Foto"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Skapa händelse"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Upprätta uppgift"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Överföring slutförd"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Förfallen"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Förfaller efter veckan"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Fritt"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Privat"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "dagar"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "timmar"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Lokal standard"
+
diff --git a/po/tr_TR.po b/po/tr_TR.po
new file mode 100755 (executable)
index 0000000..13ec58c
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Tüm takvimler"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Gün"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Hafta"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Gönderme seçenekleri"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Dışarı aktar"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Pazar"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Pazartesi"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Haftanın ilk günü"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Zamanında"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Listele"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Saat dilimini kilitle"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Saat dilimi"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Son tekrarlama"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Katılımcı"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Yıl"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Tekrar"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Olayı düzenle"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Hatırlatıcı"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Her hafta"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Her ay"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Her yıl"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Yeni etkinlik"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Görevler"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Tamamlanan görevleri göster"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Oluştur"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Başlık"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Harita"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "Başlangıç"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Kime"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Kapalı"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 dakika önce"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 dakika önce"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 saat önce"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 gün önce"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 gün önce"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 hafta önce"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Hiçbiri"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Not"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Kaydet"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Takvimler"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Ay"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Düzenle"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Ara"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Mesaj"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-posta"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Düzenle"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Kaydet"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Sil"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Bu olay silinecek"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Mesaj"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Pazar"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Pazartesi"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "İsim"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Etknlklr/grvlr içe aktr"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Etkinlklr/grvlr dşr ver"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Sonuç bulunamadı"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Aylık"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Önce"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "Önce"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Günlük"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Bitiş saati"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Aylık"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Ay"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Başlangıç saati"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Konum girmek için dokun"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Not girmek için dokun"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Başlık girmek için dokun"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Ay"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Haftalık"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Yıllık"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Katılımcı girmek için dokun"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "H"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Gün boyu"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "Hafta"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "Hafta"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Durum"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Varsayılan hesap"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Harita"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Takvim senkr"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Olaylar"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Konum seçilmedi"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Olayı sil"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Mesajlar katılımcılara gönderilsin mi?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Katılımcılar"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Takvimler"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Takvim yok"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Sadece bu olay"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Tüm tekrarlanan olaylar"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Başlık yok"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "Saat"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "defa"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Bağlı takvim"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefon takvimi"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Günlük görünüm"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Haftalık görünüm"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Konum bulunamadı"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Konum"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "Gün"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "Hafta"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Kayıt yeri"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Olay yok"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Kişiselleştir"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Kaydet?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Etkinlikleri haftalara göre göster"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Ay görünümü düzeni"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Etkinlikleri günlere göre göster"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Dışarı veriliyor..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Dışarıdan alınıyor..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Alındı"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Dışarı verildi"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Her gün"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Yapılacak işler"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Bitiş tarihi"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Son tarih yok"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Öncelik"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Alarm zamanı geçmiş"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Geçersiz tekrar\nsüresi"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Tekrarlanan olay"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Bitiş zamanı başlangıç zamanından sonra olmalıdır"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Takvim senkr. yürütülüyor"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Geçersiz saat"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Her %d günde bir"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Her %d haftada bir"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Tamamlandı"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Yeni görev"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Görevi düzenle"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Etkinlik saati ve tarihini aşağıdaki seçili saat diliminize kilitleyin. Başka bir saat dilimine geçtiğinizde bile saatler ve tarihler değişmeyecektir"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Görev ayrıntıları"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Olay ayrıntıları"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Görev yok"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Reddedildi"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Deneysel"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Temsil edildi"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Ana bilgisayar"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Katılım durumu"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Görevi sil"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Dizideki tüm olayları değiştir"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Etkinlik oluştur"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Etkinlik"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Takvim"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Konum ara"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Kaydet"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Tekrarlama"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Hatırlatıcılar"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Açıklama"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Takvimleri al"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Ofis dışında"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Rehbere ekle"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Göster"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Görüntülenecek takvimler"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Takvimim"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Görevim"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Kişinin doğum gününü"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Hafta numarasını göster"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Telefonum"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "her gün"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Gizlilik"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Göster"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "hafta"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "gün"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Sadece bu olayı değiştir"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Her 2 haftada bir"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Her 3 günde bir"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Son tarih yok"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Maksimum karakter sayısına ulaşıldı"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Görevler"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s adlı kişinin doğum günü"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s adlı kişinin yıl dönümü"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "S Planlayıcı verilerinizi telefonunuzdan çıkartın"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "dak"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "dk"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "Saat"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "Günler"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "hft"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "Saat"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "gün"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Sil"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Ek"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Bugün"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Diğer"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Tüm bu ay"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Gün boyu"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Bugünden önceki tüm olaylar"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Bütün gün"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Tüm bu hafta"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Tüm yıl"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Meşgul"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Bugünün görevleri"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Ofis dışında"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Genel"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Durum göster"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Görev oluşturmak için dokunun"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fotoğraf"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Olay oluştur"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Görev oluştur"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Aktarma tamamlandı"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Süresi geçmiş"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "1 hafta üzerinde yapılacak"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Serbest"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Özel"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "Gün"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "Saat"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Yerel varsayılan"
+
diff --git a/po/uk.po b/po/uk.po
new file mode 100755 (executable)
index 0000000..dc00a5e
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Весь календар"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "День"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Тиждень"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Опції надсилання"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Експортувати"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Неділя"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Понеділок"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Перший день тижня"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Вчасно"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Список"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Блокування часового поясу"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Часовий пояс"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Повторювати до"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Учасник"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Рік"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Повторити"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Редагування події"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Нагадування"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "щотижня"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "щомісяця"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Щороку"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Нова подія"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Завдання"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Показати завершені завдання"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Створити"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Назва"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Мапа"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "З"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "До"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "Вимкнено"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "За 5 хв. до"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "За 15 хв. до"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "На 1 годину раніше"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "На 1 день раніше"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "за 2 дні"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "На 1 тиждень раніше"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Немає"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Нотатка"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Зберегти"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Скасувати"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Календарі"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Місяць"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Редагу-\nвати"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "Видал."
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Пошук"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Повідомлення"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "Email"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Редагувати"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Зберегти"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "Видалити"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Цю подію буде видалено"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Повідомлення"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Установки"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Неділя"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Понеділок"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Ім’я"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Імпорт. події/завдання"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Експорт. події/завдання"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Звичайний"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Результатів не знайдено"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Щомісяця"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "До"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "до"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Щоденно"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Час завершення"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Щомісяця"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Місяць"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Час початку"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Натисніть, щоб ввести розташування"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Натисніть, щоб ввести примітку"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Натисніть, щоб ввести назву"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Місяць"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Щотижня"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Щороку"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Натисніть, щоб ввести учасника"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "Т"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Увесь день"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "тижні"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "тиждень"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Стан"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Станд. обл. запис"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Мапа"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Синхронізація календаря"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Події"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Немає вибраних розташувань"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Видалити подію"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Надсилати повідомлення учасникам?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Учасники"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Календарі"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Немає календарів"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Лише ця подія"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Усі повторювані події"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Немає назви"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "година"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "раз"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Зв’язаний календар"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Календар телефону"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Перегляд дня"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Перегляд тижня"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Неможливо знайти розташування"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Розташування"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "день"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "тиждень"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Зберегти в"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Немає подій"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Настроїти"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Зберегти?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Показати події за тижнями"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Вигляд у режимі перегляду місяця"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Показати події за днями"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Експортування..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Імпортування..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Імпортовано"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Експортовано"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Щодня"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Зробити"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Дата виконання"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Немає дати виконання"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Пріоритет"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Час будильника вже пройшов"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Хибний період повторювання"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Повторювана подія"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Час завершення потрібно встановити після часу початку"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Триває синхр. календаря"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Неправильний час"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Кожні %d дні(-в)"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Кожні %d тижні(-в)"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Завершено"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Нове завдання"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Редагувати завдання"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Блокування часу та дати подій відповідно до вибраного нижче часового поясу. Час і дату не буде змінено, навіть якщо переміститися до іншого часового поясу"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Деталі завдання"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Відомості про подію"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Немає завдань"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Відхилено"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Під сумнівом"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Передано"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Хост"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Стан відвідування"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Видалити завдання"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Змінити усі події в серії"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Створити подію"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Подія"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Календар"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Пошук розташування"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Готово"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Повторення"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Нагадування"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Опис"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Імпортувати календарі"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Поза офісом"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Додати до контакту"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Переглянути"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Календарі для відображення"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Мій календар"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Моє завдання"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "День народження контакту"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Відображати номер тижня"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Мій телефон"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Щодня"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Конфіденційність"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Перегляд"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "тиждень(-ів)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "день(дні)"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Змінити лише цю подію"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Кожні 2 тижні"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Кожні 3 дні"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Немає дати виконання"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Досягнуто максимальної кількості символів"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Завдання"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "День народження %s"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "Річниця %s"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Експортувати дані S Planner з телефону"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "хв."
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "хв."
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "годин"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "днів"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "тиж."
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "год."
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "день"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Видал."
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Вкладення"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Сьогодні"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Інші"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Весь цей місяць"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Увесь день"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Усі події крім сьогоднішніх"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Весь цей день"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Весь цей тиждень"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Усі за цей рік"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Недоступний"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Дата виконання: сьогодні"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Поза офісом"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Загальн."
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Показати мене як"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Натисніть, щоб створити завдання"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Фото"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Створити подію"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Створити завдання"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Передачу завершено"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Прострочене"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Дата виконання: через 1 тиждень"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Вільно"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Приватна розмова"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "днів"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "години"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Стандартна установка локалізації"
+
diff --git a/po/uz.po b/po/uz.po
new file mode 100755 (executable)
index 0000000..7212a5e
--- /dev/null
+++ b/po/uz.po
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "Joylashuv"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "Butun kalendar"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "Kun"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "Hafta"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "Yuborish variantlari"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "Eksport qilish"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "Yakshanba"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "Dushanba"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "Haftaning birinchi kuni"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "Vaqtida"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "Ro‘yxat"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "Vaqt mintaqasini mahkaml."
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "Vaqt mintaqasi"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "Quyidagigacha takrorlash"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "Ishtirokchi"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "Yil"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "Takrorlash"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "Hodisani tahrirlash"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "Eslatma"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "Har hafta"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "Har oy"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "Har yil"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "Yangi hodisa"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "Topshiriq"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "Yakunlangan topshiriqlarni ko‘rsatish"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "Yaratish"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "Sarlavha"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "Joylashuv"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "Xarita"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "…dan"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "Kimga"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "O‘ch."
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 daqiqa avval"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 daqiqa avval"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 soat avval"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 kun avval"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 kun avval"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 hafta avval"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "Hech qaysi"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "Eslatma"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "Saqlash"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "Bekor q."
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "Kalendarlar"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "Month"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "Tahrirlash"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "O'chirish"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "Qidirish"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "Xabar"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "E-pochta"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "Tahrirlash"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "Saqlash"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "O'chirish"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "O'chirish"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "Ushbu hodisa o'chirildi"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "Xabar"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "Parametrlar"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "Yakshanba"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "Dushanba"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "Nom"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "Hodis/topshiriq importi"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "Hodis/topshir. eksporti"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "AM"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "Natijalar topilmadi"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "Oylik"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "Avval"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "oldin"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "Kundalik"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "Tugatish vaqti"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "Oylik"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "Oy"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "Boshlash vaqti"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "Joylashuv kiritish uchun cherting"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "Eslatma kiritish uchun cherting"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "Sarlavha kiritish uchun cherting"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "Oy"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "Haftalik"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "Yillik"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "Ishtirokchi kiritish uchun cherting"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "H"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "Kun davomidagi"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "haftalar"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "hafta"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "Holat"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "Sukut his/qaydnoma"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "Xarita"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "Kalendarni sinxronlash"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "Hodisalar"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "Joylashuv tanlanmagan"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "Hodisani yo‘q qilish"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "Xabarlar ishtirokchilarga yuborilsinmi?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "Ishtirokchilar"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "Kalendarlar"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "Kalendarlar yo‘q"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "Faqat ushbu hodisa"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "Barcha takrorlanuvchi hodisalar"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "Sarlavha yo‘q"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "soat"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "marta"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "Bog‘langan kalendar"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "Telefon kalendari"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "Kunlik ko‘rinish"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "Haftalik ko‘rinish"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "Joylashuvni topib bo‘lmaydi"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "Joylashuv"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "kun"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "hafta"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "Quyidagiga saqlash"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "Hodisalar yo‘q"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "Moslashtirish"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "Saqlansinmi?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "Voqealarni hafta bo‘yicha ko‘rsatish"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "Oy ko‘rinishida joylashish"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "Kun bo‘yicha hodisalarni ko‘rsatish"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "Eksport qilinmoqda..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "Import qilinmoqda..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "Import qilindi"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "Exported"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "Har kun"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "Bajariladigan"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "Yakuniy sana"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "Yakuniy sana yo‘q"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "Ustunlik"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "Budilnik vaqti o‘tib ketdi"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "Noto‘g‘ri qaytarish davri"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "Takrorlanuvchi voqea"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "Yakunlash vaqti boshlash vaqtidan keyinga o‘rnatilishi zarur"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "Kalendar sinxronlanishi bajarilmoqda"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "Noto‘g‘ri vaqt"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "Har %d kunda"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "Har %d haftada"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "Yakunlandi"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "Yangi topshiriq"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "Topshiriqni tahrirlash"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "Hodisa vaqti va sanasini quyida tanlangan vaqt mintaqangizga mahkamlang. Vaqt va sana o‘zgarmaydi, hatto boshqa vaqt mintaqasiga o‘tsangiz ham"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "Topshiriq tafsilotlari"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "Hodisa tafsilotlari"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "Topshiriqlar yo‘q"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "Rad etilgan"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "Tajribaviy"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "Nomzodi qo‘yilgan"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "Xost"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "Ishtirok etish holati"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "Topshiriqni o'chirish"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "Ushbu seriyadagi barcha voqealarni o‘zgartirish"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "Hodisa yar-sh"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "Hodisa"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "Kalendar"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "Joylashuv qidirish"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "Bajarildi"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "Takrorlanish"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "Eslatmalar"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "Tavsif"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "Kalendarlar importi"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "Ofisdan tashqarida"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "Kontaktga qo‘shish"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "Ko‘rib chiqish"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "Ko‘rsatiladigan kalendarlar"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "Mening kalendarim"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "Mening vazifam"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "Kontakt tug‘ilgan kuni"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "Hafta raqamini ko‘rsatish"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "Mening telefonim"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "PM"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "Every day"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "Maxfiylik"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "Ko‘rib chiqish"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "hafta(lar)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "kun"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "Change only this event"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "Har 2 haftada"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "Har 3 kunda"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "Yakuniy sanasi yo‘q"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "Belgilar soni ruxsat etilgan maksimal miqdorga yetdi"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "Topshiriqlar"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%sning tug‘ilgan kuni"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s yubileyi"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "Telefoningizdan S Planner ma’lumotini eksport qilish"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "daq"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "daq"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "soat"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "kunlar"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "hft"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "soat"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "kun"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "Yo‘q/q"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "Biriktirma"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "Bugun"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "Yana"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "Shu oy bo‘yi"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "Kun davomidagi"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "Bugundan avvalgi barcha hodisalar"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "Bugun kun bo‘yi"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "Shu hafta bo‘yi"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "Butun yilni"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "Band"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "Muddati: bugun"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "Ofisdan tashqarida"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "Jamoat"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "Meni quyidagi sifatida ko‘rsatish"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "Topshiriq yaratish uchun cherting"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "Fotosurat"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "Hodisa yaratish"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "Topsh/yarat"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "Uzatish yakunlandi"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "Kechikkan"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "Muddati: 1 haftadan ortiq"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "Bo‘sh"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "Maxfiy"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "kunlar"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "soat"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "Birlamchi o‘rnatilgan mahalliy qiymat"
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100755 (executable)
index 0000000..9801f4c
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "全部日历"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "周"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "发送选项"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "输出"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "星期日"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "星期一"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "每周的第一天"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "准时"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "列表"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "锁定时区"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "时区"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "重复直到"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "参与人"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "年"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "重复"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "编辑事件"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "提醒"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "每周"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "每年"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "新事件"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "任务"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "显示已完成任务"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "新建"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "标题"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "地图"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "由"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "到"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "关"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "提前 5 分钟"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 分钟之前"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1小时前"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1天之前"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2天之前"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1周之前"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "无"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "注释"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "保存"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "取消"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "日历"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "编辑"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "删除"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "搜索"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "信息"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "电子邮件"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "编辑"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "保存"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "删除"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "此事件将被删除"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "信息"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "星期日"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "星期一"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "名称"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "导入事件/任务"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "导出事件/任务"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "上午"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "正常"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "未找到结果"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "提前"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "提前"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "每日"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "结束时间"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "开始时间"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "点击输入地点"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "点击输入说明"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "点击添加标题"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "每周"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "每年"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "点击输入参与者"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "周"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "全天"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "周"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "周"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "状态"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "默认账户"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "地图"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "日历同步"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "事件"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "未选择位置"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "删除事件"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "发送信息给参与者?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "参与者"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "日历"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "无日历"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "仅此事件"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "全部重复性事件"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "无标题"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "小时"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "次"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "链接的日历"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "手机日历"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "按日查看"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "按周查看"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "无法找到位置"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "周"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "保存至"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "没有事件"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "自定义"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "存储?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "按周显示事件"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "月视图布局"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "按日显示事件"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "导出中..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "导入中…"
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "已导入"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "已导出"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "每天"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "待办事项"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "结束日期"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "没有结束日期"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "优先级"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "闹钟时间已过"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "重复周期无效"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "重复事件"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "应将结束时间设置在开始时间后"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "日历同步进行中"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "无效时间"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "每 %d 天"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "每 %d 周"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "已完成"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "新任务"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "编辑任务"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "锁定事件时间和日期为您选定的时区。即使您移动到另一时区,时间和日期也不会更改"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "任务详情"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "事件详情"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "没有任务"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "已拒绝"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "临时"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "已派代表"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "主人"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "出席状态"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "删除任务"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "更改所有系列事件"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "新建事件"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "事件"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "日历"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "搜索位置"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "完成"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "重复"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "提醒"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "说明"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "导入日历"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "外出"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "添加到联系人"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "查看"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "显示日历"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "我的日历"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "我的任务"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "联系人的生日"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "显示周数"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "我的话机"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "下午"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "每天"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "隐私权"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "查看"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "week(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "日"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "只更改此事件"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "每 2 周"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "每隔 3 天"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "无到期日期"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已达到最大字符限制"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "任务"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s 的生日"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s的周年纪念日"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "从您的手机导出 S Planner 数据"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "分钟"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "分钟"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "小时"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "天"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "周"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "小时"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "天"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "删除"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "附件"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "今天"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "更多"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "整月"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "全天"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "今天之前的全部事件"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "整天"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "整周"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "今年全部"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "繁忙"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "今天到期"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "外出"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "公开"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "将我显示为"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "轻敲以创建任务"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "照片"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "新建事件"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "新建任务"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "传输完成"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "过期"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "1周后到期"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "自由"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "私人"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "天"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "小时"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "地区默认值"
+
diff --git a/po/zh_HK.po b/po/zh_HK.po
new file mode 100755 (executable)
index 0000000..1498466
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "所有日曆"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "週"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "發送選項"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "匯出"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "星期日"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "星期一"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "星期的第一天"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "準時"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "清單"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "鎖定時區"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "時區"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "重複直至"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "參與者"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "年"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "重複"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "編輯事件"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "提醒"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "每週"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "每年"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "新事件"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "工作"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "顯示已完成的工作"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "建立"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "標題"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "地圖"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "由"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "至"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 分鐘前"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 分鐘前"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 小時前"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 天前"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 天前"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 週前"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "無"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "記事本"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "儲存"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "取消"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "日曆"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "編輯"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "訊息"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "電子郵件"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "編輯"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "儲存"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "此事件將被刪除"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "訊息"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "星期日"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "星期一"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "名稱"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "匯入事件/工作"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "匯出事件/工作"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "上午"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "正常"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "找不到結果"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "前"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "提前"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "每日"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "結束時間"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "開始時間"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "輕觸以輸入位置"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "輕觸以輸入備註"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "輕觸輸入主題"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "每週"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "每年"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "輕觸以輸入參與者"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "週"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "整天"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "週"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "狀態"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "預設帳戶"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "地圖"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "日曆同步"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "事件"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "未選擇位置"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "刪除事件"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "發送訊息到參加者嗎?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "參與者"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "日曆"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "無日曆"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "只此事件"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "所有重複事件"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "無標題"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "小時"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "時間"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "連結的日曆"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "手機日曆"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "按日檢視"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "按週檢視"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "無法找到位置"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "儲存至"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "無事件"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "自訂"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "要儲存嗎?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "按週顯示事件"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "按月份檢視配置"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "按日顯示事件"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "正在匯出..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "正在匯入..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "已匯入"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "已匯出"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "每天"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "待辦事項"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "到期日"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "沒有到期日"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "優先次序"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "鬧鐘時間已過"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "重複時間無效"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "重複事件"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "結束時間必須設在開始時間後"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "正進行日曆同步"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "無效時間"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "每 %d 天"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "每 %d 個星期"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "已完成"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "新工作"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "編輯工作"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "將事件時間和日期鎖定於下列已選擇的時區。即使移動到其他時區,時間和日期也不會改變"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "工作詳情"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "事件詳細資料"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "無工作"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "已拒絕"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "暫定"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "已委任代表"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "邀請人"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "出席率狀態"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "刪除工作"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "更改序列中的全部事件"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "建立事件"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "事件"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "日曆"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "搜尋位置"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "完成"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "重複"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "提醒"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "描述"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "匯入日曆"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "外出"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "加到聯絡人"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "檢視"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "顯示日曆"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "我的日曆"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "我的工作"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "聯絡人的生日"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "顯示週數"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "我的手機"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "下午"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "每日"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "私隱"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "查看"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "week(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "日"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "只更改此事件"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "每 2 週"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "每 3 天"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "無到期日"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "字元數目已達上限"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "工作"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s 的生日"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s 的週年紀念日"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "從手機匯出 S Planner 數據"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "分鐘"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "分鐘"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "小時"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "天"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "週"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "小時"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "天"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "刪除"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "附件"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "今天"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "更多"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "這個月全部"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "整天"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "今天前的全部事件"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "這一日全部"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "這一週全部"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "今年所有"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "忙碌"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "今天到期"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "外出"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "公開"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "將我顯示為"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "輕觸以建立工作"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "相片"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "建立事件"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "建立工作"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "傳輸完成"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "逾期"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "1 週後到期"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "可用"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "私人"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "天"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "小時"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "地區預設"
+
diff --git a/po/zh_SG.po b/po/zh_SG.po
new file mode 100755 (executable)
index 0000000..de65885
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "地址"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "全部日历"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "每周检视"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "发送选项"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "导出"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "星期日"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "星期一"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "每周第一天"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "准时"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "列表"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "锁定时区"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "时区"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "重复直到"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "参与人"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "年"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "重复"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "编辑事件"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "提醒"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "每周"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "每年"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "新事件"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "任务"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "显示已完成任务"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "创建"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "标题"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "地点"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "地图"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "由"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "到"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "关"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "提前 5 分钟"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 分钟之前"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1小时之前"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1天之前"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2天之前"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1周之前"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "无"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "附注"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "储存"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "取消"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "日历"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "编辑"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "删除"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "搜索"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "讯息"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "电邮"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "编辑"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "储存"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "删除"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "删除"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "此事件将被删除"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "讯息"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "星期日"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "星期一"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "名称"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "导入事件/任务"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "导出事件/任务"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "上午"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "正常"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "未找到结果"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "之前"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "提前"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "每日"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "完结时间"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "开始时间"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "点击输入地点"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "点击输入备忘录"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "点击添加标题"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "每周"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "每年"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "点击输入参与者"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "周"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "全天"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "周"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "星期"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "状态"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "预置帐户"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "地图"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "日历同步"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "事件"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "未选择位置"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "删除事件"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "发送讯息给参与者?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "参与者"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "日历"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "无日历"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "仅此事件"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "全部重复性事件"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "无标题"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "小时"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "此项目"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "链接的日历"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "手机日历"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "按日查看"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "每周检视"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "无法找到位置"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "星期"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "保存至"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "没有事件"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "自定义"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "要保存吗?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "按周显示事件"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "月视图布局"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "按日显示事件"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "导出中…"
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "导入中…"
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "已导入"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "已导出"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "每天"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "待办事项"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "结束日期"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "没有结束日期"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "优先"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "闹钟时间已过"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "重复周期无效"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "重复事件"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "应将结束时间设置在开始时间后"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "日历同步进行中"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "无效时间"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "每 %d 天"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "每 %d 周"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "已完成"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "新任务"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "编辑任务"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "锁定事件时间和日期为您选定的以下时区。即使您移动到另一时区,时间和日期也不会更改"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "任务详情"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "事件详情"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "没有任务"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "已拒绝"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "试验"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "已派代表"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "召集人"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "出席状态"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "删除任务"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "更改所有系列事件"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "新建事件"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "事件"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "日历"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "搜索位置"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "完成"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "重复"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "提醒"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "描述"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "导入日历"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "外出"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "添加到联系人"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "查看"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "要显示的日历"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "我的日历"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "我的任务"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "联系人的生日"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "显示周数"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "我的话机"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "下午"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "每天"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "隐私"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "查看"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "week(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "日"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "只更改此事件"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "每两周"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "每隔 3 天"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "无到期日期"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已达最大字符数量"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "任务"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s的生日"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s的周年纪念日"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "从您的手机导出 S Planner 数据"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "分钟"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "分钟"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "小时"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "天"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "周"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "小时"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "日"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "删除"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "附件"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "今天"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "更多"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "整月"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "全天"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "今天之前的全部事件"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "整天"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "整周"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "今年全部"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "繁忙"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "今天到期"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "外出"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "公共"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "将我显示为"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "轻敲以创建任务"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "照片"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "新建事件"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "创建任务"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "传输完成"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "过期"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "1周后到期"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "自由"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "私人"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "天"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "小时"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "地区默认值"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100755 (executable)
index 0000000..cfb4d6e
--- /dev/null
@@ -0,0 +1,642 @@
+msgid "IDS_COM_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_CLD_BODY_ALL_CALENDAR"
+msgstr "所有日曆"
+
+msgid "IDS_CLD_BODY_DAY"
+msgstr "日"
+
+msgid "IDS_CLD_BODY_WEEK"
+msgstr "週"
+
+msgid "IDS_EMAIL_BODY_SENDING_OPTIONS"
+msgstr "傳送選項"
+
+msgid "IDS_RSSR_OPT_EXPORT"
+msgstr "匯出"
+
+msgid "IDS_ST_BODY_SUNDAY"
+msgstr "週日"
+
+msgid "IDS_ST_BODY_MONDAY"
+msgstr "週一"
+
+msgid "IDS_CLD_BODY_FIRST_DAY_OF_WEEK"
+msgstr "一週的第一天"
+
+msgid "IDS_CLD_BODY_ON_TIME"
+msgstr "準時"
+
+msgid "IDS_CLD_BODY_LIST"
+msgstr "清單"
+
+msgid "IDS_CLD_MBODY_LOCK_TIME_ZONE"
+msgstr "鎖定時區"
+
+msgid "IDS_CLD_BODY_TIME_ZONE"
+msgstr "時區"
+
+msgid "IDS_CLD_BODY_REPEAT_UNTIL"
+msgstr "重複到"
+
+msgid "IDS_CLD_OPT_PARTICIPANT"
+msgstr "參與者"
+
+msgid "IDS_CLD_BODY_YEAR"
+msgstr "年"
+
+msgid "IDS_CLD_BODY_REPEAT"
+msgstr "重覆"
+
+msgid "IDS_CLD_HEADER_EDIT_EVENT"
+msgstr "編輯活動"
+
+msgid "IDS_CLD_BODY_REMINDER"
+msgstr "提醒"
+
+msgid "IDS_CLD_BODY_EVERY_WEEK"
+msgstr "每週"
+
+msgid "IDS_CLD_BODY_EVERY_MONTH"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_EVERY_YEAR"
+msgstr "每年"
+
+msgid "IDS_CLD_HEADER_NEW_EVENT"
+msgstr "新的活動"
+
+msgid "IDS_CLD_BODY_TASK"
+msgstr "工作"
+
+msgid "IDS_CLD_BODY_SHOW_COMPLETED_TASKS"
+msgstr "顯示已完成的工作"
+
+msgid "IDS_CLD_SK3_CREATE"
+msgstr "建立"
+
+msgid "IDS_CLD_BODY_TITLE"
+msgstr "標題"
+
+msgid "IDS_CLD_BODY_LOCATION"
+msgstr "位置"
+
+msgid "IDS_CLD_BUTTON_MAP"
+msgstr "地圖"
+
+msgid "IDS_CLD_BODY_FROM"
+msgstr "自"
+
+msgid "IDS_CLD_BODY_TO"
+msgstr "至"
+
+msgid "IDS_CLD_BODY_OFF"
+msgstr "關閉"
+
+msgid "IDS_CLD_BODY_5_MIN_BEFORE"
+msgstr "5 分鐘前"
+
+msgid "IDS_CLD_OPT_15_MINS_BEFORE"
+msgstr "15 分鐘前"
+
+msgid "IDS_CLD_BODY_1_HOUR_BEFORE"
+msgstr "1 小時前"
+
+msgid "IDS_CLD_BODY_1_DAY_BEFORE"
+msgstr "1 天前"
+
+msgid "IDS_CLD_BODY_2_DAYS_BEFORE"
+msgstr "2 天前"
+
+msgid "IDS_CLD_BODY_1_WEEK_BEFORE"
+msgstr "1 週前"
+
+msgid "IDS_CLD_BODY_NONE"
+msgstr "無"
+
+msgid "IDS_CLD_BODY_NOTE"
+msgstr "備註"
+
+msgid "IDS_CLD_SK3_SAVE"
+msgstr "儲存"
+
+msgid "IDS_CLD_SK_CANCEL"
+msgstr "取消"
+
+msgid "IDS_CLD_SK3_CALENDARS"
+msgstr "日曆"
+
+msgid "IDS_CLD_TAB4_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_SK3_EDIT"
+msgstr "編輯"
+
+msgid "IDS_CLD_SK3_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLD_BUTTON_SEARCH"
+msgstr "搜尋"
+
+msgid "IDS_CLD_OPT_MESSAGE"
+msgstr "訊息"
+
+msgid "IDS_CLD_OPT_SENDVIA_EMAIL"
+msgstr "電子郵件"
+
+msgid "IDS_CLD_OPT_EDIT"
+msgstr "編輯"
+
+msgid "IDS_CLD_SK_SAVE"
+msgstr "儲存"
+
+msgid "IDS_CLD_OPT_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLD_HEADER_DELETE"
+msgstr "刪除"
+
+msgid "IDS_CLD_POP_THIS_EVENT_WILL_BE_DELETED"
+msgstr "將刪除此活動"
+
+msgid "IDS_CLD_OPT_MESSAGE_SEND_VIA"
+msgstr "訊息"
+
+msgid "IDS_CLD_OPT_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_CLD_BODY_SUNDAY"
+msgstr "週日"
+
+msgid "IDS_CLD_BODY_MONDAY"
+msgstr "週一"
+
+msgid "IDS_COM_SK_NAME"
+msgstr "姓名"
+
+msgid "IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"
+msgstr "匯入活動/工作"
+
+msgid "IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"
+msgstr "匯出活動/工作"
+
+msgid "IDS_COM_POP_AM_M_ABB"
+msgstr "上午"
+
+msgid "IDS_IDLE_BODY_NORMAL"
+msgstr "正常"
+
+msgid "IDS_BR_BODY_NO_RESULTS_FOUND"
+msgstr "找不到結果"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATMTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_BEFORE"
+msgstr "之前"
+
+msgid "IDS_CLD_BODY_BEFORE_LC"
+msgstr "之前"
+
+msgid "IDS_CLD_BODY_DAILY"
+msgstr "每日"
+
+msgid "IDS_CLD_BODY_END_TIME"
+msgstr "結束時間"
+
+msgid "IDS_CLD_BODY_MONTHLY"
+msgstr "每月"
+
+msgid "IDS_CLD_BODY_REPEAT_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_START_TIME"
+msgstr "開始時間"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_LOCATION"
+msgstr "輕觸輸入位置"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_NOTE"
+msgstr "輕觸輸入說明"
+
+msgid "IDS_CLD_BODY_TAP_TO_ENTER_TITLE"
+msgstr "輕觸輸入標題"
+
+msgid "IDS_CLD_BODY_VIEWBY_MONTH"
+msgstr "月"
+
+msgid "IDS_CLD_BODY_WEEKLY"
+msgstr "每週"
+
+msgid "IDS_CLD_BODY_YEARLY"
+msgstr "每年"
+
+msgid "IDS_CLD_POP_TAP_TO_ENTER_PARTICIPANT"
+msgstr "輕觸輸入參與者"
+
+msgid "IDS_CLD_POP_WEEK_INITIAL"
+msgstr "週"
+
+msgid "IDS_COM_BODY_ALL_DAY"
+msgstr "整天"
+
+msgid "IDS_COM_POP_WEEKS_LC"
+msgstr "週"
+
+msgid "IDS_COM_POP_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_CST_POP_STATUS"
+msgstr "狀態"
+
+msgid "IDS_EMAIL_BODY_DEFAULT_ACCOUNT"
+msgstr "預設帳號"
+
+msgid "IDS_LBS_BODY_MAP"
+msgstr "地圖"
+
+msgid "IDS_CLD_BODY_CALENDAR_SYNC"
+msgstr "日曆同步"
+
+msgid "IDS_CLD_BODY_EVENTS"
+msgstr "活動"
+
+msgid "IDS_CLD_BODY_NO_LOCATION_SELECTED"
+msgstr "沒有選擇地區"
+
+msgid "IDS_CLD_OPT_DELETE_EVENT"
+msgstr "刪除活動"
+
+msgid "IDS_CLD_POP_SEND_MESSAGES_TO_PARTICIPANTS_Q"
+msgstr "發送訊息到收件者?"
+
+msgid "IDS_CLD_BODY_PARTICIPANTS"
+msgstr "參與者"
+
+msgid "IDS_CLD_BODY_CALENDARS"
+msgstr "日曆"
+
+msgid "IDS_CLD_HEADER_NO_CALENDARS"
+msgstr "無日曆"
+
+msgid "IDS_CLD_BODY_ONLY_THIS_EVENT"
+msgstr "僅此活動"
+
+msgid "IDS_CLD_POP_ALL_REPETITIVE_EVENTS"
+msgstr "所有重複事件"
+
+msgid "IDS_CLD_BODY_NO_TITLE"
+msgstr "無標題"
+
+msgid "IDS_CLD_BODY_HOUR_LC"
+msgstr "小時"
+
+msgid "IDS_COM_POP_TIMES_LC"
+msgstr "時間"
+
+msgid "IDS_CLD_BODY_LINKED_CALENDAR"
+msgstr "日曆已連結"
+
+msgid "IDS_CLD_OPT_PHONE_CALENDAR"
+msgstr "手機日曆"
+
+msgid "IDS_CLD_BODY_DAILY_VIEW"
+msgstr "按日檢視"
+
+msgid "IDS_CLD_BODY_WEEKLY_VIEW"
+msgstr "按週檢視"
+
+msgid "IDS_DB_BODY_UNABLE_TO_FIND_LOCATION"
+msgstr "找不到位置"
+
+msgid "IDS_COM_BODY_DETAILS_LOCATION"
+msgstr "位置"
+
+msgid "IDS_COM_POP_DAY_LC"
+msgstr "天"
+
+msgid "IDS_CLD_BODY_ALARMBEFORE_WEEK_LC"
+msgstr "週"
+
+msgid "IDS_ST_BODY_SAVE_TO"
+msgstr "儲存至"
+
+msgid "IDS_CLD_BODY_NO_EVENTS"
+msgstr "沒有活動"
+
+msgid "IDS_COM_BODY_CUSTOMISE"
+msgstr "自訂"
+
+msgid "IDS_COM_POP_ERRORMSG_SAVE_Q"
+msgstr "儲存?"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_WEEK"
+msgstr "依週顯示活動"
+
+msgid "IDS_CLD_BODY_LAYOUT_IN_MONTH_VIEW"
+msgstr "依月份檢視配置"
+
+msgid "IDS_CLD_BODY_SHOW_EVENTS_BY_DAY"
+msgstr "依日顯示活動"
+
+msgid "IDS_CLD_POP_EXPORTING_ING"
+msgstr "正在匯出..."
+
+msgid "IDS_CLD_POP_IMPORTING_ING"
+msgstr "正在匯入..."
+
+msgid "IDS_CLD_POP_IMPORTED"
+msgstr "已匯入"
+
+msgid "IDS_CLD_POP_EXPORTED"
+msgstr "已匯出"
+
+msgid "IDS_KC_BODY_EVERY_DAY"
+msgstr "每天"
+
+msgid "IDS_CLD_BODY_MENU_TODO_TO_DO"
+msgstr "待辦事項"
+
+msgid "IDS_CLD_BODY_DUE_DATE"
+msgstr "到期日"
+
+msgid "IDS_TASK_MBODY_NO_DUE_DATE"
+msgstr "無結束日期"
+
+msgid "IDS_CLD_BODY_PRIORITY"
+msgstr "優先順序"
+
+msgid "IDS_CLD_BODY_ALARMTIME_WARNING"
+msgstr "已過提醒時間"
+
+msgid "IDS_CLD_BODY_REPEAT_WARNING"
+msgstr "重複期間無效"
+
+msgid "IDS_CLD_BODY_REPEATING_EVENT"
+msgstr "重複事件"
+
+msgid "IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"
+msgstr "結束時間應晚於開始時間"
+
+msgid "IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"
+msgstr "日曆同步進行中"
+
+msgid "IDS_CLD_POP_INVALID_TIME"
+msgstr "時間無效"
+
+msgid "IDS_CLD_BODY_EVERY_PD_DAYS"
+msgstr "每 %d 天"
+
+msgid "IDS_CLD_BODY_EVERY_PD_WEEKS"
+msgstr "每 %d 週"
+
+msgid "IDS_CLD_BODY_MENU_TODO_COMPLETE"
+msgstr "已完成"
+
+msgid "IDS_TASK_HEADER_NEW_TASK"
+msgstr "新工作"
+
+msgid "IDS_TASK_HEADER_EDIT_TASK"
+msgstr "編輯工作"
+
+msgid "IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"
+msgstr "鎖定活動時間和日期為您所選擇的時區。時間和日期將不會改變,即使你移動到另一個時區"
+
+msgid "IDS_CLD_BODY_TASK_DETAILS"
+msgstr "工作詳細資訊"
+
+msgid "IDS_CLD_BODY_EVENT_DETAILS"
+msgstr "活動詳細資料"
+
+msgid "IDS_TASK_BODY_NO_TASKS"
+msgstr "沒有工作"
+
+msgid "IDS_CLD_BODY_DECLINED"
+msgstr "已拒絕"
+
+msgid "IDS_CLD_BODY_TENTATIVE"
+msgstr "暫定"
+
+msgid "IDS_CLD_BODY_DELEGATED"
+msgstr "已委任代表"
+
+msgid "IDS_CLD_BODY_HOST_M_PERSON"
+msgstr "邀請人"
+
+msgid "IDS_CLD_BODY_ATTENDANCE_STATUS"
+msgstr "出席狀態"
+
+msgid "IDS_CLD_OPT_DELETE_TASK"
+msgstr "刪除工作"
+
+msgid "IDS_CLD_OPT_CHANGE_ALL_EVENTS_IN_THE_SERIES"
+msgstr "更改序列中的所有活動"
+
+msgid "IDS_CLD_HEADER_CREATE_EVENT"
+msgstr "建立活動"
+
+msgid "IDS_CLD_MBODY_EVENT"
+msgstr "事件"
+
+msgid "IDS_CLD_BODY_CALENDAR"
+msgstr "日曆"
+
+msgid "IDS_CLD_HEADER_SEARCH_LOCATION"
+msgstr "搜尋位置"
+
+msgid "IDS_CLD_SK3_DONE"
+msgstr "完成"
+
+msgid "IDS_CLD_BODY_REPETITION"
+msgstr "重複"
+
+msgid "IDS_CLD_BODY_REMINDERS"
+msgstr "提醒"
+
+msgid "IDS_CLD_BODY_CREATE_DESCRITION"
+msgstr "說明"
+
+msgid "IDS_CLD_BODY_IMPORT_CALENDARS"
+msgstr "匯入日曆"
+
+msgid "IDS_CLD_HEADER_OUT_OF_OFFICE"
+msgstr "外出"
+
+msgid "IDS_CLD_BODY_ADD_TO_CONTACT"
+msgstr "加到聯絡人"
+
+msgid "IDS_CLD_BODY_VIEW"
+msgstr "檢視"
+
+msgid "IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"
+msgstr "顯示的日曆"
+
+msgid "IDS_CLD_BODY_MY_CALENDAR"
+msgstr "我的日曆"
+
+msgid "IDS_TASK_BODY_MY_TASK"
+msgstr "我的工作"
+
+msgid "IDS_CLD_MBODY_CONTACTS_BIRTHDAY"
+msgstr "聯絡人的生日"
+
+msgid "IDS_CLD_BODY_SHOW_WEEK_NUMBER"
+msgstr "顯示星期數目"
+
+msgid "IDS_CLD_POP_MY_PHONE"
+msgstr "我的手機"
+
+msgid "IDS_COM_POP_PM_M_ABB"
+msgstr "下午"
+
+msgid "IDS_CLD_BODY_CUSTOMIZE_ATNT"
+msgstr "Customize"
+
+msgid "IDS_CLD_BODY_EVERY_DAY_ATNT"
+msgstr "每天"
+
+msgid "IDS_CLD_BODY_PRIVACY"
+msgstr "隱私設定"
+
+msgid "IDS_CLD_SK3_VIEW"
+msgstr "查看"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATWKLYWEEKS"
+msgstr "week(s)"
+
+msgid "IDS_CLD_BODY_ADDEVENTREPEATDAILYDAYS"
+msgstr "天"
+
+msgid "IDS_CLD_OPT_CHANGE_ONLY_THIS_EVENT"
+msgstr "只更改此活動"
+
+msgid "IDS_CLD_BODY_EVERY_2_WEEKS"
+msgstr "每 2 週"
+
+msgid "IDS_CLD_BODY_EVERY_3_DAYS"
+msgstr "每 3 週"
+
+msgid "IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"
+msgstr "無結束日期"
+
+msgid "IDS_CLD_POP_MAXIMUM_NUMBER_OF_CHARACTERS_REACHED"
+msgstr "已達字元數上限"
+
+msgid "IDS_CLD_BODY_TASKS"
+msgstr "工作"
+
+msgid "IDS_CLD_POP_NAMES_BIRTHDAY"
+msgstr "%s 的生日"
+
+msgid "IDS_CLD_BODY_PSS_ANNIVERSARY"
+msgstr "%s 的週年紀念日"
+
+msgid "IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"
+msgstr "自手機匯出 S Planner 資料"
+
+msgid "IDS_TMR_BODY_MINS_LC_ABB"
+msgstr "分鐘"
+
+msgid "IDS_TMR_OPT_MIN_LC_ABB"
+msgstr "分"
+
+msgid "IDS_CHATON_BODY_HOURS_LC_ABB"
+msgstr "小時"
+
+msgid "IDS_CHATON_BODY_DAYS_LC_ABB"
+msgstr "天"
+
+msgid "IDS_CLD_BODY_WEEK_LC_ABB"
+msgstr "週"
+
+msgid "IDS_CLD_BODY_HOUR_LC_ABB"
+msgstr "小時"
+
+msgid "IDS_CLD_BODY_DAY_LC_ABB"
+msgstr "天"
+
+msgid "IDS_CLD_BUTTON_DELETE"
+msgstr "刪除"
+
+msgid "IDS_EMAIL_BODY_ATTACHMENT"
+msgstr "附件"
+
+msgid "IDS_CLD_BODY_TODAY"
+msgstr "今天"
+
+msgid "IDS_CLD_BUTTON_MORE_ABB"
+msgstr "更多"
+
+msgid "IDS_CLD_BODY_ALL_THIS_MONTH"
+msgstr "這一整月"
+
+msgid "IDS_CLD_BODY_ALL_DAY"
+msgstr "整天"
+
+msgid "IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"
+msgstr "今天前的全部活動"
+
+msgid "IDS_CLD_BODY_ALL_THIS_DAY"
+msgstr "這一整天"
+
+msgid "IDS_CLD_BODY_ALL_THIS_WEEK"
+msgstr "這一整週"
+
+msgid "IDS_CLD_MBODY_ALL_THIS_YEAR"
+msgstr "今年所有"
+
+msgid "IDS_CLD_OPT_BUSY"
+msgstr "忙碌"
+
+msgid "IDS_CLD_HEADER_DUE_TODAY"
+msgstr "今天到期"
+
+msgid "IDS_CLD_BODY_OUT_OF_OFFICE"
+msgstr "外出"
+
+msgid "IDS_CLD_OPT_PUBLIC"
+msgstr "公開"
+
+msgid "IDS_CLD_HEADER_SHOW_ME_AS"
+msgstr "將我顯示為"
+
+msgid "IDS_CLD_BODY_TAP_TO_CREATE_TASK"
+msgstr "輕觸以建立工作"
+
+msgid "IDS_COM_OPT_PHOTO"
+msgstr "相片"
+
+msgid "IDS_CLD_SK3_CREATE_EVENT"
+msgstr "建立活動"
+
+msgid "IDS_TASK_SK_CREATE_TASK"
+msgstr "建立工作"
+
+msgid "IDS_IM_BODY_TRANSFER_COMPLETE_ORANGE"
+msgstr "傳輸完成"
+
+msgid "IDS_TASK_DROP_OVERDUE"
+msgstr "未完成"
+
+msgid "IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"
+msgstr "1 週後到期"
+
+msgid "IDS_CLD_BODY_FREE"
+msgstr "可用"
+
+msgid "IDS_CLD_BODY_PRIVATE"
+msgstr "私人"
+
+msgid "IDS_CLD_BODY_ON_TIME_ATNT"
+msgstr "On Time"
+
+msgid "IDS_COM_POP_SMALL_DAYS"
+msgstr "天"
+
+msgid "IDS_COM_POP_SMALL_HOURS"
+msgstr "小時"
+
+msgid "IDS_CLD_BODY_LOCALE_DEFAULT"
+msgstr "地區預設"
+
diff --git a/res/icons/default/small/icon_application.png b/res/icons/default/small/icon_application.png
new file mode 100644 (file)
index 0000000..b35c72b
Binary files /dev/null and b/res/icons/default/small/icon_application.png differ
diff --git a/src/base-block.c b/src/base-block.c
new file mode 100755 (executable)
index 0000000..c7108e9
--- /dev/null
@@ -0,0 +1,262 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+#include "base-block.h"
+#include "day-event-block.h"
+
+static void  __cal_base_block_delete(cal_base_block_h base_block);
+
+cal_base_block_h cal_base_block_new(cal_base_type type, Evas_Object *parent, Evas_Object *clip, void *data)
+{
+       c_retv_if(!parent, NULL);
+       c_retv_if(!clip, NULL);
+
+       cal_base_block_s *base_block = NULL;
+
+       switch (type) {
+               case _CAL_BASE_TYPE_EVENT:
+                       base_block = (cal_base_block_s *)cal_day_event_block_create();
+                       break;
+               default:
+                       break;
+       }
+       c_retv_if(!base_block, NULL);
+
+       base_block->base_data = cal_base_data_new(type, data);
+       base_block->parent = parent;
+       base_block->clip = clip;
+
+       cal_base_data_load(base_block->base_data);
+       cal_base_data_create_data_list(base_block->base_data);
+
+       cal_base_block_create_block_list(base_block);
+
+       return base_block;
+}
+
+cal_base_block_h cal_base_block_create(cal_base_block_operations *base_operations)
+{
+       c_retv_if(!base_operations, NULL);
+       c_retv_if(!base_operations->new_func_ptr, NULL);
+
+       cal_base_block_h base_block = base_operations->new_func_ptr();
+       c_retv_if(!base_block , NULL);
+
+       cal_base_block_s *p =  (cal_base_block_s *)base_block;
+
+       p->base_operations.new_func_ptr = base_operations->new_func_ptr;
+       p->base_operations.delete_func_ptr = base_operations->delete_func_ptr;
+       p->base_operations.new_item_func_ptr = base_operations->new_item_func_ptr;
+       p->base_operations.delete_item_func_ptr = base_operations->delete_item_func_ptr;
+       p->base_operations.create_item_layout_func_ptr = base_operations->create_item_layout_func_ptr;
+       p->base_operations.move_item_layout_func_ptr = base_operations->move_item_layout_func_ptr;
+       p->base_operations.update_func_ptr = base_operations->update_func_ptr;
+
+       return base_block;
+}
+
+void cal_base_block_delete(cal_base_block_h base_block)
+{
+       c_ret_if(!base_block);
+
+       cal_base_block_s *p =  (cal_base_block_s *)base_block;
+
+       if (p->base_operations.delete_func_ptr) {
+               p->base_operations.delete_func_ptr(base_block);
+       } else {
+               cal_base_data_delete(p->base_data);
+               __cal_base_block_delete(base_block);
+       }
+}
+
+static Eina_Bool __cal_base_block_foreach_create_item_cb(cal_base_data_item_h item_data, void *user_data)
+{
+       c_retv_if(!user_data, EINA_FALSE);
+       c_retv_if(!item_data, EINA_FALSE);
+
+       cal_base_block_s *p = user_data;
+       Evas_Object *ly = NULL;
+
+       cal_base_block_item *block_item = NULL;
+
+       if (p->base_operations.new_item_func_ptr) {
+               block_item = p->base_operations.new_item_func_ptr();
+       } else {
+               CAL_CALLOC(block_item, 1, cal_base_block_item);
+       }
+       c_retv_if(!block_item, EINA_FALSE);
+
+       block_item->item_data= item_data;
+
+       ly = p->base_operations.create_item_layout_func_ptr(p, item_data);
+       if(!ly) {
+               ERR("create_item_layout_func_ptr is failed!");
+               free(block_item);
+               return EINA_FALSE;
+       }
+
+
+       block_item->ly = ly;
+
+       p->base_block_list = eina_list_append(p->base_block_list, block_item);
+
+       return EINA_TRUE;
+}
+
+void  cal_base_block_create_block_list(cal_base_block_h base_block)
+{
+       c_ret_if(!base_block);
+
+       cal_base_block_s *p = (cal_base_block_s *)base_block;
+       c_ret_if(!p->base_data);
+
+       cal_base_data_foreach_items(__cal_base_block_foreach_create_item_cb, p->base_data, p);
+}
+
+void  cal_base_block_destroy_block_list(cal_base_block_h base_block)
+{
+       c_ret_if(!base_block);
+
+       cal_base_block_s *p = (cal_base_block_s *)base_block;
+       Eina_List *l;
+       cal_base_block_item *block_item = NULL;
+
+       EINA_LIST_FOREACH(p->base_block_list, l, block_item) {
+               if (block_item) {
+                       if (p->base_operations.delete_item_func_ptr) {
+                               p->base_operations.delete_item_func_ptr(block_item);
+                       } else {
+                               if (block_item->ly) {
+                                       evas_object_del(block_item->ly);
+                               }
+                               free(block_item);
+                       }
+                       p->base_block_list = eina_list_remove(p->base_block_list, block_item);
+
+               }
+       }
+
+       eina_list_free(p->base_block_list);
+
+       p->base_block_list = NULL;
+
+}
+
+static void  __cal_base_block_delete(cal_base_block_h base_block)
+{
+       c_ret_if(!base_block);
+
+       cal_base_block_s *p = (cal_base_block_s *)base_block;
+
+       cal_base_block_destroy_block_list(base_block);
+
+       CAL_FREE(p);
+}
+
+void cal_base_block_move_item(cal_base_block_h base_block, cal_base_block_item_h block_item, Evas_Coord_Rectangle *base)
+{
+       c_ret_if(!base_block);
+       c_ret_if(!block_item);
+       c_ret_if(!base);
+
+       cal_base_block_s *p =  (cal_base_block_s *)base_block;
+       c_ret_if(!p->base_operations.move_item_layout_func_ptr);
+
+       p->base_operations.move_item_layout_func_ptr(base_block, block_item, base);
+}
+
+void cal_base_block_update(cal_base_block_h base_block)
+{
+       c_ret_if(!base_block);
+
+       cal_base_block_s *p =  (cal_base_block_s *)base_block;
+
+       if (p->base_operations.update_func_ptr) {
+               p->base_operations.update_func_ptr(base_block);
+       } else {
+               cal_base_block_destroy_block_list(base_block);
+
+               cal_base_data_destroy_data_list(p->base_data);
+
+               cal_base_data_load(p->base_data);
+
+               cal_base_data_create_data_list(p->base_data);
+
+               cal_base_block_create_block_list(base_block);
+       }
+}
+
+void   cal_base_block_show(cal_base_block_h base_block)
+{
+       c_ret_if(!base_block);
+
+       cal_base_block_s *p = (cal_base_block_s *)base_block;
+
+       cal_base_block_item *block_item = NULL;
+       Eina_List *l;
+
+       EINA_LIST_FOREACH(p->base_block_list, l, block_item) {
+               if (block_item) {
+                       if (block_item->ly) {
+                               evas_object_show(block_item->ly);
+                       }
+               }
+       }
+}
+
+void   cal_base_block_hide(cal_base_block_h base_block)
+{
+       c_ret_if(!base_block);
+
+       cal_base_block_s *p = (cal_base_block_s *)base_block;
+
+       cal_base_block_item *block_item = NULL;
+       Eina_List *l;
+
+       EINA_LIST_FOREACH(p->base_block_list, l, block_item) {
+               if (block_item) {
+                       if (block_item->ly) {
+                               evas_object_hide(block_item->ly);
+                       }
+               }
+       }
+}
+
+int  cal_base_block_foreach_items(cal_base_block_query_item_cb callback, cal_base_block_h base_block, void *usr_data)
+{
+       c_retv_if(!base_block, -1);
+       cal_base_block_s* p = (cal_base_block_s *)base_block;
+
+       c_retv_if(!p, -1);
+       c_retv_if(!p->base_block_list, -1);
+
+       cal_base_block_item *block_item = NULL;
+       Eina_List *l;
+
+       EINA_LIST_FOREACH(p->base_block_list, l, block_item) {
+               if (block_item) {
+                       if (block_item->item_data) {
+                               int line_index = cal_base_data_get_item_line_index(block_item->item_data);
+                               int height = cal_base_data_get_item_height(block_item->item_data);
+                               Eina_Bool is_continue = (*callback)((cal_base_block_item_h)block_item, line_index, height, usr_data);
+                               if (!is_continue)
+                                       break;
+                       }
+               }
+       }
+
+       return 0;
+}
diff --git a/src/base-block.h b/src/base-block.h
new file mode 100755 (executable)
index 0000000..f02eb93
--- /dev/null
@@ -0,0 +1,79 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#ifndef __CALENDAR_BASE_BLOCK_H__\r
+#define __CALENDAR_BASE_BLOCK_H__\r
+#include "cld.h"\r
+#include "base-data.h"\r
+\r
+typedef void* cal_base_block_h;\r
+typedef void* cal_base_block_item_h;\r
+\r
+typedef Eina_Bool(* cal_base_block_foreach_item)(cal_base_block_item_h event_block, int line_index, int height, void *user_data);\r
+typedef void(* cal_base_block_moving_item_cb)(void *user_data, Evas_Coord time_block_y);\r
+typedef Eina_Bool(* cal_base_block_query_item_cb)(cal_base_block_item_h event_block, int line_index, int height, void *user_data);\r
+\r
+typedef cal_base_block_h(* cal_base_block_new_func_ptr)();\r
+typedef void(* cal_base_block_delete_func_ptr)(cal_base_block_h base_block);\r
+typedef cal_base_block_item_h(* cal_base_block_new_item_func_ptr)();\r
+typedef void(* cal_base_block_delete_item_func_ptr)(cal_base_block_item_h base_item);\r
+typedef Evas_Object *(* cal_base_block_create_item_layout_func_ptr)(cal_base_block_h base_block, cal_base_data_item_h item_data);\r
+typedef void (*cal_base_block_move_item_layout_func_ptr)(cal_base_block_h base_block, cal_base_block_item_h block_item, Evas_Coord_Rectangle *base);\r
+typedef void (*cal_base_block_update_func_ptr)(cal_base_block_h base_block);\r
+typedef struct {\r
+       cal_base_block_new_func_ptr new_func_ptr;\r
+       cal_base_block_delete_func_ptr delete_func_ptr;\r
+       cal_base_block_new_item_func_ptr new_item_func_ptr;\r
+       cal_base_block_delete_item_func_ptr delete_item_func_ptr;\r
+       cal_base_block_create_item_layout_func_ptr create_item_layout_func_ptr;\r
+       cal_base_block_move_item_layout_func_ptr move_item_layout_func_ptr;\r
+       cal_base_block_update_func_ptr update_func_ptr;\r
+} cal_base_block_operations;\r
+\r
+typedef struct {\r
+       cal_base_data_item_h item_data;\r
+\r
+       Evas_Object *ly;\r
+} cal_base_block_item;\r
+\r
+\r
+typedef struct {\r
+       const char *name;\r
+\r
+       cal_base_data_h base_data;\r
+\r
+       Eina_List *base_block_list;\r
+\r
+       Evas_Object *parent;\r
+\r
+       Evas_Object *clip;\r
+\r
+       cal_base_block_operations base_operations;\r
+} cal_base_block_s;\r
+\r
+cal_base_block_h cal_base_block_new(cal_base_type type, Evas_Object *parent, Evas_Object *clip, void *data);\r
+void cal_base_block_delete(cal_base_block_h base_block);\r
+cal_base_block_h cal_base_block_create(cal_base_block_operations *base_operations);\r
+void cal_base_block_create_block_list(cal_base_block_h base_block);\r
+void cal_base_block_destroy_block_list(cal_base_block_h base_block);\r
+void cal_base_block_move_item(cal_base_block_h base_block, cal_base_block_item_h block_item, Evas_Coord_Rectangle *base);\r
+void cal_base_block_update(cal_base_block_h base_block);\r
+void   cal_base_block_show(cal_base_block_h base_block);\r
+void   cal_base_block_hide(cal_base_block_h base_block);\r
+int  cal_base_block_foreach_items(cal_base_block_query_item_cb callback, cal_base_block_h base_block, void *usr_data);\r
+#endif\r
+\r
diff --git a/src/base-data.c b/src/base-data.c
new file mode 100755 (executable)
index 0000000..c26e180
--- /dev/null
@@ -0,0 +1,192 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "base-data.h"
+#include "day-event-data.h"
+
+cal_base_data_h cal_base_data_new(cal_base_type type, void *data)
+{
+       cal_base_data_s *base_data = NULL;
+
+       switch (type) {
+               case _CAL_BASE_TYPE_EVENT:
+                       base_data =  cal_day_event_data_create(data);
+                       break;
+               default:
+                       break;
+       }
+
+       return base_data;
+}
+
+cal_base_data_h cal_base_data_create(cal_base_data_operations *base_operations, void *data)
+{
+       c_retv_if(!base_operations, NULL);
+       c_retv_if(!base_operations->new_func_ptr, NULL);
+
+       cal_base_data_h base_data = base_operations->new_func_ptr(data);
+       c_retv_if(!base_data , NULL);
+
+       cal_base_data_s *p =  (cal_base_data_s *)base_data;
+
+       p->base_operations.new_func_ptr = base_operations->new_func_ptr;
+       p->base_operations.delete_func_ptr = base_operations->delete_func_ptr;
+       p->base_operations.load_func_ptr = base_operations->load_func_ptr;
+       p->base_operations.create_data_list_ptr = base_operations->create_data_list_ptr;
+       p->base_operations.destory_data_list_ptr = base_operations->destory_data_list_ptr;
+
+       return base_data;
+}
+
+void cal_base_data_delete(cal_base_data_h base_data)
+{
+       c_ret_if(!base_data);
+
+       cal_base_data_s *p =  (cal_base_data_s *)base_data;
+       c_ret_if(!p->base_operations.delete_func_ptr);
+
+       p->base_operations.delete_func_ptr(base_data);
+}
+
+void cal_base_data_load(cal_base_data_h base_data)
+{
+       c_ret_if(!base_data);
+
+       cal_base_data_s *p =  (cal_base_data_s *)base_data;
+       c_ret_if(!p->base_operations.load_func_ptr);
+
+       p->base_operations.load_func_ptr(base_data);
+}
+
+void cal_base_data_create_data_list(cal_base_data_h base_data)
+{
+       c_ret_if(!base_data);
+
+       cal_base_data_s *p =  (cal_base_data_s *)base_data;
+       c_ret_if(!p->base_operations.create_data_list_ptr);
+
+       p->base_operations.create_data_list_ptr(base_data);
+}
+
+void cal_base_data_destroy_data_list(cal_base_data_h base_data)
+{
+       c_ret_if(!base_data);
+
+       cal_base_data_s *p =  (cal_base_data_s *)base_data;
+       c_ret_if(!p->base_operations.destory_data_list_ptr);
+
+       p->base_operations.destory_data_list_ptr(base_data);
+}
+
+
+int  cal_base_data_foreach_items (cal_base_data_foreach_items_func_ptr callback, cal_base_data_item_h base_data, void *usr_data)
+{
+       c_retv_if(!base_data, -1);
+       cal_base_data_s *p = (cal_base_data_s *)base_data;
+
+       c_retv_if(!p, -1);
+       c_retv_if(!p->base_data_list, -1);
+
+       cal_base_data_item_h item_data = NULL;
+       Eina_List *l;
+
+       EINA_LIST_FOREACH(p->base_data_list, l, item_data) {
+               if (item_data) {
+                       Eina_Bool is_continue = (*callback)((cal_base_data_item_h)item_data, usr_data);
+                       if (!is_continue)
+                               break;
+               }
+       }
+
+       return 0;
+}
+
+char *cal_base_data_get_item_text(cal_base_data_item_h base_item)
+{
+       c_retv_if(!base_item, NULL);
+
+       cal_base_data_item *item_data = (cal_base_data_item*)base_item;
+
+       return item_data->text;
+}
+
+void cal_base_data_get_item_color(cal_base_data_item_h base_item, _calendar_book_color *color)
+{
+       c_ret_if(!base_item);
+       c_ret_if(!color);
+
+       cal_base_data_item *item_data = (cal_base_data_item*)base_item;
+
+       color->red = item_data->color.red;
+       color->blue = item_data->color.blue;
+       color->green = item_data->color.green;
+       color->alpha= item_data->color.alpha;
+}
+
+int cal_base_data_get_item_width_devider(cal_base_data_item_h base_item)
+{
+       c_retv_if(!base_item, -1);
+
+       cal_base_data_item *item_data = (cal_base_data_item*)base_item;
+
+       return item_data->width_devider;
+}
+
+int cal_base_data_get_item_cloumn_index(cal_base_data_item_h base_item)
+{
+       c_retv_if(!base_item, -1);
+
+       cal_base_data_item *item_data = (cal_base_data_item*)base_item;
+
+       return item_data->column_index;
+}
+
+int cal_base_data_get_item_height(cal_base_data_item_h base_item)
+{
+       c_retv_if(!base_item, -1);
+
+       cal_base_data_item *item_data = (cal_base_data_item *)base_item;
+
+       return item_data->height;
+}
+
+int cal_base_data_get_item_line_index(cal_base_data_item_h base_item)
+{
+       c_retv_if(!base_item, -1);
+
+       cal_base_data_item *item_data = (cal_base_data_item *)base_item;
+
+       return item_data->line_index;
+}
+
+void cal_base_data_set_item_height(cal_base_data_item_h base_item, int height)
+{
+       c_ret_if(!base_item);
+
+       cal_base_data_item* base_item_data = (cal_base_data_item*)base_item;
+
+       base_item_data->height = height;
+}
+
+void cal_base_data_set_item_line_index(cal_base_data_item_h base_item, int line_index)
+{
+       c_ret_if(!base_item);
+
+       cal_base_data_item* base_item_data = (cal_base_data_item*)base_item;
+
+       base_item_data->line_index = line_index;
+}
diff --git a/src/base-data.h b/src/base-data.h
new file mode 100755 (executable)
index 0000000..006a786
--- /dev/null
@@ -0,0 +1,82 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#ifndef __CALENDAR_BASE_DATA_H__\r
+#define __CALENDAR_BASE_DATA_H__\r
+#include "cld.h"\r
+\r
+#define EVENT_SLICE_COUNT 48\r
+\r
+typedef void* cal_base_data_h;\r
+typedef void* cal_base_data_item_h;\r
+\r
+typedef enum {
+       _CAL_BASE_TYPE_NULL = 0,\r
+       _CAL_BASE_TYPE_EVENT,\r
+       _CAL_BASE_TYPE_PARTICIPANTS,\r
+       _CAL_BASE_TYPE_MAX\r
+} cal_base_type;\r
+\r
+\r
+typedef Eina_Bool(* cal_base_data_foreach_items_func_ptr)(cal_base_data_h event_data, void *user_data);\r
+typedef cal_base_data_h(* cal_base_data_new_func_ptr)(void *data);\r
+typedef void(* cal_base_data_delete_func_ptr)(cal_base_data_h base_data);\r
+typedef void(* cal_base_data_load_func_ptr)(cal_base_data_h base_data);\r
+typedef void(* cal_base_data_create_data_list_func_ptr)(cal_base_data_h base_data);\r
+typedef void(* cal_base_data_destroy_data_list_func_ptr)(cal_base_data_h base_data);\r
+\r
+typedef struct {\r
+       cal_base_data_new_func_ptr new_func_ptr;\r
+       cal_base_data_delete_func_ptr delete_func_ptr;\r
+       cal_base_data_load_func_ptr load_func_ptr;\r
+       cal_base_data_create_data_list_func_ptr create_data_list_ptr;\r
+       cal_base_data_destroy_data_list_func_ptr destory_data_list_ptr;\r
+} cal_base_data_operations;\r
+\r
+typedef struct {\r
+       char *text;\r
+       int line_index;\r
+       int height;\r
+       _calendar_book_color color;\r
+       int width_devider;\r
+       int column_index;\r
+} cal_base_data_item;\r
+\r
+typedef struct {\r
+       Eina_List *base_data_list;\r
+       cal_base_data_operations base_operations;\r
+} cal_base_data_s;\r
+\r
+cal_base_data_h cal_base_data_new(cal_base_type type, void *data);\r
+cal_base_data_h cal_base_data_create(cal_base_data_operations *base_operations, void *data);\r
+void cal_base_data_delete(cal_base_data_h base_data);\r
+void cal_base_data_load(cal_base_data_h base_data);\r
+void cal_base_data_create_data_list(cal_base_data_h base_data);\r
+void cal_base_data_destroy_data_list(cal_base_data_h base_data);\r
+int  cal_base_data_foreach_items (cal_base_data_foreach_items_func_ptr callback, cal_base_data_item_h base_data, void *usr_data);\r
+\r
+char *cal_base_data_get_item_text(cal_base_data_item_h base_item);\r
+void cal_base_data_get_item_color(cal_base_data_item_h base_item, _calendar_book_color *color);\r
+int cal_base_data_get_item_width_devider(cal_base_data_item_h base_item);\r
+int cal_base_data_get_item_cloumn_index(cal_base_data_item_h base_item);\r
+int cal_base_data_get_item_height(cal_base_data_item_h base_item);\r
+int cal_base_data_get_item_line_index(cal_base_data_item_h base_item);\r
+\r
+void cal_base_data_set_item_height(cal_base_data_item_h base_item, int height);\r
+void cal_base_data_set_item_line_index(cal_base_data_item_h base_item, int line_index);\r
+\r
+#endif\r
diff --git a/src/base-time-block.c b/src/base-time-block.c
new file mode 100755 (executable)
index 0000000..94fc0c0
--- /dev/null
@@ -0,0 +1,485 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+#include "base-time-block.h"
+#include "day-time-block.h"
+
+static void __cal_base_time_block_init(cal_base_time_block_h base_time_block);
+
+cal_base_time_block_h cal_base_time_block_new(cal_base_type type, Evas_Object *parent, Evas_Object *clip, Evas_Object *clip_block, int current_hour, void *data)
+{
+       cal_base_time_block_s *base_time_block = NULL;
+
+       switch (type) {
+               case _CAL_BASE_TYPE_EVENT:
+                       base_time_block = (cal_base_time_block_s *)cal_day_time_block_create(data);
+                       break;
+               default:
+                       return NULL;
+       }
+
+       double scale = elm_config_scale_get();
+       base_time_block->parent = parent;
+       base_time_block->clip = clip;
+       base_time_block->normal_height = TIME_BLOCK_NORMAL_HEIGHT * scale;
+       base_time_block->current_hour = current_hour;
+
+       __cal_base_time_block_init(base_time_block);
+
+       base_time_block->base_block = cal_base_block_new(type, parent, clip, data);
+
+       return base_time_block;
+}
+
+cal_base_time_block_h cal_base_time_block_create(cal_base_time_block_operations *base_operations, void *data)
+{
+       c_retv_if(!base_operations, NULL);
+       c_retv_if(!base_operations->new_func_ptr, NULL);
+
+       cal_base_time_block_h base_time_block = base_operations->new_func_ptr(data);
+       c_retv_if(!base_time_block , NULL);
+
+       cal_base_time_block_s *p =  (cal_base_time_block_s *)base_time_block;
+
+       p->base_operations.new_func_ptr = base_operations->new_func_ptr;
+       p->base_operations.delete_func_ptr = base_operations->delete_func_ptr;
+       p->base_operations.update_func_ptr = base_operations->update_func_ptr;
+
+       return base_time_block;
+}
+
+static void __cal_base_time_block_delete(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       cal_base_time_block_s *p =  (cal_base_time_block_s *)base_time_block;
+
+       cal_base_time_block_slice *time_block_slice = NULL;
+
+       int i;
+
+       for (i = 0; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &p->time_block_slice_array[i];
+               if (time_block_slice) {
+                       if (time_block_slice->ly) {
+                               evas_object_clip_unset(time_block_slice->ly);
+                               evas_object_del(time_block_slice->ly);
+                       }
+               }
+       }
+
+       CAL_FREE(p);
+}
+
+static Eina_Bool __cal_base_time_block_foreach_figure_block_count_cb(cal_base_block_item_h block_item, int line_index, int height, void *user_data)
+{
+       c_retv_if(!user_data, EINA_FALSE);
+       c_retv_if(!block_item, EINA_FALSE);
+
+       cal_base_time_block_s *p = user_data;
+       c_retv_if(!p->base_block, EINA_FALSE);
+
+       cal_base_time_block_slice *time_block_slice = NULL;
+       int index = 0;
+
+       for (index = line_index; index < line_index+height; index++) {
+               if (0 == (line_index+2)%2) {
+                       time_block_slice = &p->time_block_slice_array[line_index >> 1];
+                       time_block_slice->slice_block_count++;
+               } else {
+                       time_block_slice = &p->time_block_slice_array[(line_index-1) >> 1];
+                       time_block_slice->slice_block_count++;
+               }
+       }
+
+       return EINA_TRUE;
+}
+
+void cal_base_time_block_figure_time_block_slice_block_count(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+
+       cal_base_block_foreach_items(__cal_base_time_block_foreach_figure_block_count_cb, p->base_block, p);
+}
+
+void cal_base_time_block_clear_time_block_slice_block_count(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       int i;
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+
+       for (i = 0; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               p->time_block_slice_array[i].slice_block_count= 0;
+       }
+}
+
+void cal_base_time_block_update(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+       c_ret_if(!p->base_block);
+
+       if (p->base_operations.update_func_ptr) {
+               p->base_operations.update_func_ptr(base_time_block);
+       } else {
+               cal_base_time_block_clear_time_block_slice_block_count(base_time_block);
+
+               cal_base_block_update(p->base_block);
+
+               cal_base_time_block_figure_time_block_slice_block_count(base_time_block);
+       }
+}
+
+void cal_base_time_block_delete(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       cal_base_time_block_s *p =  (cal_base_time_block_s *)base_time_block;
+
+       if (p->base_operations.delete_func_ptr) {
+               p->base_operations.delete_func_ptr(base_time_block);
+       }  else {
+               cal_base_block_delete(p->base_block);
+               __cal_base_time_block_delete(base_time_block);
+       }
+}
+
+static Evas_Object *__cal_base_time_block_add_time_block_slice_layout(cal_base_time_block_s *p, struct tm *hour_time, int hour_index)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!p->parent, NULL);
+       c_retv_if(!hour_time, NULL);
+
+       Evas_Object *ly = NULL;
+
+       ly = cal_util_add_layout(p->parent, p->name);
+       c_retv_if(!ly, NULL);
+
+       if(is_hour24) {
+               cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(ly), "text", NULL, CAL_UTIL_TIME_FORMAT_7, hour_time);
+       } else {
+               if (0 == hour_index) {
+                       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), "AM", "AM");
+                       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "show,AM", "prog");
+               }  else if (hour_index == TIME_BLOCK_DAY_HOURS) {
+                       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), "PM", "PM");
+                       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "show,PM", "prog");
+               }
+
+               char hour_text[8] = {0};
+               sprintf(hour_text, "%02d", (hour_index > TIME_BLOCK_DAY_HOURS ? hour_index - TIME_BLOCK_DAY_HOURS : hour_index));
+               edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), "text", hour_text);
+       }
+
+       if (TIME_BLOCK_DAY_HOURS <= hour_index) {
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "pm", "prog");
+       }
+
+       evas_object_clip_set(ly, (Evas_Object*)p->clip);
+       evas_object_show(ly);
+
+       return ly;
+}
+
+static void __cal_base_time_block_add_time_block_slices(cal_base_time_block_s *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->parent);
+
+       int i;
+       cal_base_time_block_slice *base_block_slice;
+
+       Evas_Object *ly;
+       struct tm tm;
+
+       memset(&tm, 0, sizeof(struct tm));
+       cal_util_update_tm_hour(&tm, 0);
+       tm.tm_hour = 0;
+       tm.tm_min = 0;
+
+       p->height = 0;
+
+       int event_slice_base_index = 0;
+       for (i = 0; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               ly = __cal_base_time_block_add_time_block_slice_layout(p, &tm, i);
+               c_ret_if(!ly);
+
+               cal_util_update_tm_hour(&tm, 1);
+
+               base_block_slice = &p->time_block_slice_array[i];
+               base_block_slice->ly = ly;
+               base_block_slice->height = p->normal_height;
+               base_block_slice->line_index = i;
+
+               p->event_block_slice_object_array[event_slice_base_index++] = edje_object_part_object_get(CAL_UTIL_GET_EDJ_DATA(base_block_slice->ly), "evtbase/top");
+               p->event_block_slice_object_array[event_slice_base_index++] = edje_object_part_object_get(CAL_UTIL_GET_EDJ_DATA(base_block_slice->ly), "evtbase/bottom");
+
+               p->height += base_block_slice->height;
+       }
+}
+
+void cal_base_time_block_resize_time_block_slices(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+
+       int i;
+       p->height = 0;
+
+       for (i = 0; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               cal_base_time_block_slice *time_block_slice = &p->time_block_slice_array[i];
+
+               if (!time_block_slice->ly)
+                       continue;
+
+               if ( TIME_BLOCK_TEXT_HEIGHT < time_block_slice->height) {
+                       if (time_block_slice->hide_text) {
+                               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(time_block_slice->ly), "show,text", "prog");
+                               time_block_slice->hide_text = EINA_FALSE;
+                       }
+               } else {
+                       if (!time_block_slice->hide_text) {
+                               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(time_block_slice->ly), "hide,text", "prog");
+                               time_block_slice->hide_text = EINA_TRUE;
+                       }
+               }
+
+               evas_object_resize(time_block_slice->ly, p->width, time_block_slice->height);
+               p->height += time_block_slice->height;
+       }
+}
+
+static void __cal_base_time_block_move_time_block_slices(cal_base_time_block_s *p)
+{
+       int i;
+       cal_base_time_block_slice *time_block_slice_prev;
+       cal_base_time_block_slice *time_block_slice;
+
+       for (i = 1; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &p->time_block_slice_array[i];
+               time_block_slice_prev = &p->time_block_slice_array[i - 1];
+
+               time_block_slice->y = time_block_slice_prev->y + time_block_slice_prev->height;
+               evas_object_move(time_block_slice->ly, time_block_slice->x, time_block_slice->y);
+       }
+}
+
+static void __cal_base_time_block_show_time_line(cal_base_time_block_s *p)
+{
+       c_ret_if(!p);
+
+       int i;
+       cal_base_time_block_slice *time_block_slice;
+       int hour  = p->current_hour;
+
+       if(0 > hour || 23 < hour)
+               return;
+
+       for(i = 0; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &p->time_block_slice_array[i];
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(time_block_slice->ly), "hide,line", "prog");
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(time_block_slice->ly), "hide,img", "prog");
+       }
+
+       if(NULL != p->time_block_slice_array[hour].ly) {
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->time_block_slice_array[hour].ly), "show,line", "prog");
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->time_block_slice_array[hour].ly), "show,img", "prog");
+       }
+}
+
+static void __cal_base_time_block_init(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+
+       __cal_base_time_block_add_time_block_slices(p);
+
+       cal_base_time_block_resize_time_block_slices(base_time_block);
+       __cal_base_time_block_move_time_block_slices(p);
+       __cal_base_time_block_show_time_line(p);
+}
+
+static Eina_Bool __cal_base_time_block_foreach_move_event_block_cb(cal_base_block_item_h block_item, int line_index, int height, void *user_data)
+{
+       c_retv_if(!user_data, EINA_FALSE);
+       c_retv_if(!block_item, EINA_FALSE);
+
+       cal_base_time_block_s *p = user_data;
+       c_retv_if(!p->base_block, EINA_FALSE);
+
+       Evas_Object *obj_base = NULL;
+
+       obj_base = p->event_block_slice_object_array[line_index];
+       c_retv_if(!obj_base, EINA_FALSE);
+
+       Evas_Coord_Rectangle base = {0};
+       cal_util_get_geometry(&base, obj_base);
+
+       cal_base_block_move_item(p->base_block, block_item, &base);
+
+       return EINA_TRUE;
+}
+
+void cal_base_time_block_move_event_blocks(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+       cal_base_time_block_s *p = base_time_block;
+
+       cal_base_block_foreach_items(__cal_base_time_block_foreach_move_event_block_cb, p->base_block, p);
+}
+
+void cal_base_time_block_move(cal_base_time_block_h base_time_block, Evas_Coord x, Evas_Coord y)
+{
+       c_ret_if(!base_time_block);
+
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+
+       int i;
+       cal_base_time_block_slice *time_block_slice = NULL;
+
+       p->x = x;
+       p->y = y;
+
+       for (i = 0; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &p->time_block_slice_array[i];
+               if (!time_block_slice->ly)
+                       continue;
+
+               evas_object_move(time_block_slice->ly, x, y);
+               time_block_slice->x = x;
+               time_block_slice->y = y;
+
+               y += time_block_slice->height;
+       }
+
+       cal_base_time_block_move_event_blocks(p);
+
+}
+
+void cal_base_time_block_get_geometry(cal_base_time_block_h base_time_block, Evas_Coord_Rectangle *r)
+{
+       c_ret_if(!base_time_block);
+       c_ret_if(!r);
+
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+
+       r->x = p->x;
+       r->y = p->y;
+       r->w = p->width;
+       r->h = p->height;
+}
+
+void cal_base_time_block_move_to_time_line(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+
+       cal_base_time_block_slice *time_block_slice;
+       int hour  = p->current_hour;
+
+       Evas_Coord_Rectangle time_block_r, scroller_r;
+       cal_base_time_block_get_geometry(base_time_block, &time_block_r);
+
+       cal_util_get_geometry(&scroller_r, p->parent);
+
+       if (time_block_r.h <=  scroller_r.h) {
+               return;
+       }
+
+       if (0 < hour && hour < TIME_BLOCK_SLICE_COUNT) {
+               time_block_slice = &p->time_block_slice_array[hour];
+               int dis_offset = time_block_slice->y - (scroller_r.y + scroller_r.h/2);
+
+               if (dis_offset < 0) {
+                       if (scroller_r.y < time_block_r.y + abs(dis_offset)) {
+                               elm_scroller_region_show(p->parent, 0, 0, 0, scroller_r.h);
+                       } else {
+                               elm_scroller_region_show(p->parent, 0, scroller_r.y - time_block_r.y - abs(dis_offset), 0, scroller_r.h);
+                       }
+               } else if (0 < dis_offset) {
+                       if (time_block_r.y - dis_offset + time_block_r.h < scroller_r.y + scroller_r.h) {
+                               elm_scroller_region_show(p->parent, 0,  time_block_r.h - scroller_r.h, 0, scroller_r.h);
+                       } else {
+                               elm_scroller_region_show(p->parent, 0, scroller_r.y - time_block_r.y + dis_offset, 0, scroller_r.h);
+                       }
+               }
+       }
+}
+
+int cal_base_time_block_get_time_block_slice_index_by_coord_point(cal_base_time_block_h base_time_block, Evas_Coord_Point *mouse_down_coord)
+{
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+       c_retv_if(!p, -1);
+
+       int i;
+       cal_base_time_block_slice *time_block_slice  = NULL;
+
+       for (i = 1; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &p->time_block_slice_array[i];
+
+               if (mouse_down_coord->y < time_block_slice->y) {
+                       return i-1;
+               }
+       }
+
+       return -1;
+}
+
+void   cal_base_time_block_show(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       int i = 0;
+       cal_base_time_block_slice *time_block_slice = NULL;
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+
+       for (i = 0; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &p->time_block_slice_array[i];
+               c_ret_if(!time_block_slice);
+               c_ret_if(!time_block_slice->ly);
+
+               evas_object_show(time_block_slice->ly);
+       }
+
+       cal_base_block_show(p->base_block);
+}
+
+void   cal_base_time_block_hide(cal_base_time_block_h base_time_block)
+{
+       c_ret_if(!base_time_block);
+
+       int i = 0;
+       cal_base_time_block_slice *time_block_slice = NULL;
+       cal_base_time_block_s *p = (cal_base_time_block_s *)base_time_block;
+
+       for (i = 0; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &p->time_block_slice_array[i];
+               c_ret_if(!time_block_slice);
+               c_ret_if(!time_block_slice->ly);
+
+               evas_object_hide(time_block_slice->ly);
+       }
+
+       cal_base_block_hide(p->base_block);
+}
+
diff --git a/src/base-time-block.h b/src/base-time-block.h
new file mode 100755 (executable)
index 0000000..e25c35e
--- /dev/null
@@ -0,0 +1,97 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#ifndef __CALENDAR_BASE_TIME_BLOCK_H__\r
+#define __CALENDAR_BASE_TIME_BLOCK_H__\r
+#include <Ecore_X.h>\r
+\r
+#include "cld.h"\r
+#include "base-block.h"\r
+\r
+#define TIME_BLOCK_SLICE_COUNT 24\r
+#define TIME_BLOCK_DAY_HOURS 12\r
+#define TIME_BLOCK_TEXT_HEIGHT 30\r
+#define TIME_BLOCK_EXPAND_HEIGHT 520\r
+#define TIME_BLOCK_CONTENT_HEIGHT 16\r
+#define TIME_BLOCK_CONTRACT_HEIGHT 60\r
+#define TIME_BLOCK_NORMAL_HEIGHT 158\r
+#define TIME_BLOCK_MIN_HEIGHT 16\r
+\r
+typedef void *cal_base_time_block_h;\r
+typedef void *cal_base_time_block_slice_h;\r
+\r
+typedef cal_base_time_block_h(* cal_base_time_block_new_func_ptr)(void *data);\r
+typedef void(* cal_base_time_block_delete_func_ptr)(cal_base_time_block_h base_time_block);\r
+typedef void(* cal_base_time_block_update_func_ptr)(cal_base_time_block_h base_time_block);\r
+\r
+typedef struct {\r
+       cal_base_time_block_new_func_ptr new_func_ptr;\r
+       cal_base_time_block_delete_func_ptr delete_func_ptr;\r
+       cal_base_time_block_update_func_ptr update_func_ptr;\r
+} cal_base_time_block_operations;\r
+\r
+typedef struct {\r
+       int line_index;\r
+       Evas_Object *ly;\r
+       Evas_Coord x;\r
+       Evas_Coord y;\r
+       Evas_Coord height;\r
+       Eina_Bool hide_text;\r
+       int slice_block_count;\r
+       Eina_Bool is_contracted;\r
+} cal_base_time_block_slice;\r
+\r
+typedef struct cal_base_time_block{\r
+       const char *name;\r
+\r
+       cal_base_block_h base_block;\r
+\r
+       Evas_Object *parent;\r
+\r
+       Evas_Object *clip;\r
+\r
+       cal_base_time_block_slice time_block_slice_array[TIME_BLOCK_SLICE_COUNT];\r
+\r
+       Evas_Object *event_block_slice_object_array[EVENT_SLICE_COUNT];\r
+\r
+       Evas_Coord normal_height;\r
+\r
+       Evas_Coord width;\r
+       Evas_Coord height;\r
+       Evas_Coord x;\r
+       Evas_Coord y;\r
+\r
+       int current_hour;\r
+\r
+       cal_base_time_block_operations base_operations;\r
+} cal_base_time_block_s;\r
+\r
+cal_base_time_block_h cal_base_time_block_new(cal_base_type type, Evas_Object *parent, Evas_Object *clip, Evas_Object *clip_block, int current_hour, void *data);\r
+cal_base_time_block_h cal_base_time_block_create(cal_base_time_block_operations *base_operations, void *data);\r
+void cal_base_time_block_update(cal_base_time_block_h base_time_block);\r
+void cal_base_time_block_delete(cal_base_time_block_h base_time_block);\r
+void cal_base_time_block_move(cal_base_time_block_h base_time_block, Evas_Coord x, Evas_Coord y);\r
+void cal_base_time_block_resize_time_block_slices(cal_base_time_block_h base_time_block);\r
+void cal_base_time_block_move_event_blocks(cal_base_time_block_h base_time_block);\r
+void cal_base_time_block_figure_time_block_slice_block_count(cal_base_time_block_h base_time_block);\r
+void cal_base_time_block_clear_time_block_slice_block_count(cal_base_time_block_h base_time_block);\r
+void cal_base_time_block_get_geometry(cal_base_time_block_h base_time_block, Evas_Coord_Rectangle *r);\r
+void cal_base_time_block_move_to_time_line(cal_base_time_block_h base_time_block);\r
+int cal_base_time_block_get_time_block_slice_index_by_coord_point(cal_base_time_block_h base_time_block, Evas_Coord_Point *mouse_down_coord);\r
+void   cal_base_time_block_show(cal_base_time_block_h base_time_block);\r
+void   cal_base_time_block_hide(cal_base_time_block_h base_time_block);\r
+#endif\r
diff --git a/src/base-time.c b/src/base-time.c
new file mode 100755 (executable)
index 0000000..74acf2c
--- /dev/null
@@ -0,0 +1,522 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+#include "base-time.h"
+#include "day-time.h"
+
+static void __cal_base_time_add_content_objects(cal_base_time_s *p);
+static void __cal_base_time_delete(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_resize_callback(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_base_layout_move_cb(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_mouse_down_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_mouse_up_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_mouse_move_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_mouse_out_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_multi_up_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_multi_move_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_multi_down_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei);
+static void __cal_base_time_scroller_drag_start(void *data, Evas_Object *obj, void *event_info);
+
+cal_base_time_h cal_base_time_new(cal_base_type type, Evas_Object *parent, int current_hour, Evas_Object **time_obj, void *data, int event_flag)
+{
+       cal_base_time_h base_time = NULL;
+
+       switch (type) {
+               case _CAL_BASE_TYPE_EVENT:
+                       base_time = cal_day_time_create(data);
+                       break;
+
+               default:
+                       break;
+       }
+       c_retv_if(!base_time, NULL);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       p->base_type = type;
+       p->parent = parent;
+
+       Evas_Object *ly = cal_util_add_layout(parent, p->name);
+       if (ly == NULL) {
+               ERR("cal_util_add_layout failed!");
+               free(p);
+               return NULL;
+       }
+
+       p->ly = ly;
+       evas_object_data_set(ly, "priv", p);
+
+       p->clip = (Evas_Object*)edje_object_part_object_get(CAL_UTIL_GET_EDJ_DATA(ly), "clip");
+       p->clip_block = (Evas_Object*)edje_object_part_object_get(CAL_UTIL_GET_EDJ_DATA(ly), "clip/block");
+
+       __cal_base_time_add_content_objects(p);
+
+       p->base_time_block = cal_base_time_block_new(type, p->scroller, p->clip, p->clip_block, current_hour, data);
+
+       if (!p->base_time_block) {
+               ERR("cal_time_block_create_time_block failed!");
+               free(p);
+               return NULL;
+       }
+
+       (*time_obj) = p->ly;
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_RESIZE, __cal_base_time_resize_callback, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_base_time_delete, p);
+       evas_object_event_callback_add(p->base, EVAS_CALLBACK_MOVE, __cal_base_time_base_layout_move_cb, p);
+
+       if (ENABLE_MOUSE_DOWN_FLAG & event_flag) {
+               evas_object_event_callback_add(p->event_rectangle, EVAS_CALLBACK_MOUSE_DOWN, __cal_base_time_mouse_down_event_callback, p);
+       }
+
+       if (ENABLE_MOUSE_UP_FLAG & event_flag) {
+               evas_object_event_callback_add(p->event_rectangle, EVAS_CALLBACK_MOUSE_UP, __cal_base_time_mouse_up_event_callback, p);
+       }
+
+       if (ENABLE_MOUSE_MOVE_FLAG & event_flag) {
+               evas_object_event_callback_add(p->event_rectangle, EVAS_CALLBACK_MOUSE_MOVE,__cal_base_time_mouse_move_event_callback, p);
+       }
+
+       if (ENABLE_MOUSE_OUT_FLAG & event_flag) {
+               evas_object_event_callback_add(p->event_rectangle, EVAS_CALLBACK_MOUSE_OUT, __cal_base_time_mouse_out_event_callback, p);
+       }
+
+       if (ENABLE_GRAG_START_FLAG & event_flag) {
+               evas_object_smart_callback_add(p->scroller, "scroll,drag,start", __cal_base_time_scroller_drag_start, p);
+       }
+
+       if (p->base_operations.init_func_ptr) {
+               p->base_operations.init_func_ptr(base_time);
+       }
+
+       return base_time;
+}
+
+cal_base_time_h cal_base_time_create(cal_base_time_operations *base_operations, void *data)
+{
+       c_retv_if(!base_operations, NULL);
+       c_retv_if(!base_operations->new_func_ptr, NULL);
+
+       cal_base_time_h base_time = base_operations->new_func_ptr(data);
+       c_retv_if(!base_time , NULL);
+
+       cal_base_time_s *p =  (cal_base_time_s *)base_time;
+
+       p->base_operations.new_func_ptr = base_operations->new_func_ptr;
+       p->base_operations.delete_func_ptr = base_operations->delete_func_ptr;
+       p->base_operations.init_func_ptr = base_operations->init_func_ptr;
+       p->base_operations.state_transition_func_ptr = base_operations->state_transition_func_ptr;
+       p->base_operations.state_actions_func_ptr = base_operations->state_actions_func_ptr;
+       p->base_operations.update_func_ptr = base_operations->update_func_ptr;
+
+       return base_time;
+}
+
+static void __cal_base_time_resize_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+       Evas_Coord_Rectangle r = {0};
+
+       cal_util_get_geometry(&r, p->scroller);
+       p->scroller_coord = r;
+       evas_object_resize(p->event_rectangle, r.w, r.h);
+       evas_object_move(p->event_rectangle, 0, r.y);
+
+       p->base_y = r.y;
+       cal_base_time_block_get_geometry(p->base_time_block, &r);
+
+       evas_object_size_hint_min_set(p->base, 0, r.h);
+}
+
+static void __cal_base_time_delete(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+
+       if (p->idler_for_scrolling)
+               ecore_idler_del(p->idler_for_scrolling);
+
+       if (p->base)
+               evas_object_del(p->base);
+
+       if (p->event_rectangle)
+               evas_object_del(p->event_rectangle);
+
+       if (p->base_time_block)
+               cal_base_time_block_delete(p->base_time_block);
+
+       if (p->left_base_time_block)
+               cal_base_time_block_delete(p->left_base_time_block);
+
+       if (p->right_base_time_block)
+               cal_base_time_block_delete(p->right_base_time_block);
+
+
+       if (p->base_operations.delete_func_ptr) {
+               p->base_operations.delete_func_ptr(data);
+       }
+
+       CAL_FREE(p);
+}
+
+static void __cal_base_time_base_layout_move_cb(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+
+       Evas_Coord_Point base_coord;
+
+       evas_object_geometry_get(p->base, &base_coord.x, &base_coord.y, NULL, NULL);
+
+       cal_base_time_block_move(p->base_time_block, base_coord.x, base_coord.y);
+}
+
+void cal_base_time_state_transition(cal_base_time_h base_time, enum cal_base_time_input_signal_type input)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p =  (cal_base_time_s *)base_time;
+
+       if (p->base_operations.state_transition_func_ptr) {
+               p->base_operations.state_transition_func_ptr(base_time, input);
+       }
+
+}
+
+void cal_base_time_state_actions(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p =  (cal_base_time_s *)base_time;
+
+       if (p->base_operations.state_actions_func_ptr) {
+               p->base_operations.state_actions_func_ptr(base_time);
+       }
+}
+
+void cal_base_time_update(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p =  (cal_base_time_s *)base_time;
+
+       if (p->base_operations.update_func_ptr) {
+               p->base_operations.update_func_ptr(base_time);
+       }
+}
+
+static Evas_Object* __cal_base_time_add_base_layout(cal_base_time_s *p)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!p->ly, NULL);
+
+       Evas_Object *base;
+
+       base = cal_util_add_rectangle(p->ly);
+       if (!base)
+               return NULL;
+
+       evas_object_size_hint_align_set(base, EVAS_HINT_FILL, 0);
+       evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_color_set(base, 0, 0, 0, 0);
+
+       return base;
+}
+
+static Evas_Object* __cal_base_time_add_mouse_event_region(cal_base_time_s *p)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!p->ly, NULL);
+
+       Evas_Object *mouse_event_region;
+
+       mouse_event_region = cal_util_add_rectangle(p->ly);
+       if (!mouse_event_region)
+               return NULL;
+
+       evas_object_size_hint_align_set(mouse_event_region, EVAS_HINT_FILL, 0);
+       evas_object_size_hint_weight_set(mouse_event_region, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_color_set(mouse_event_region, 0, 0, 0, 0);
+
+       evas_object_repeat_events_set(mouse_event_region, EINA_TRUE);
+
+       return mouse_event_region;
+}
+
+static void __cal_base_time_add_content_objects(cal_base_time_s *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->ly);
+       c_ret_if(!p->parent);
+
+       Evas_Object *scroller = cal_util_add_scroller(p->ly);
+       c_ret_if(!scroller);
+       p->scroller = scroller;
+       evas_object_data_set(p->ly, "scroller", p->scroller);
+       evas_object_data_set(p->scroller, "priv", p->parent);
+
+       Evas_Object *box = cal_util_add_box(p->ly);
+       c_ret_if(!box);
+
+       elm_object_content_set(scroller, box);
+
+       p->base = __cal_base_time_add_base_layout(p);
+       c_ret_if(!p->base);
+
+       elm_box_pack_end(box, p->base);
+
+       p->event_rectangle = __cal_base_time_add_mouse_event_region(p);
+       c_ret_if(!p->event_rectangle);
+
+       evas_object_clip_set(p->event_rectangle, p->clip);
+
+       elm_object_part_content_set(p->ly, "sw", p->scroller);
+}
+
+static Eina_Bool __cal_base_time_show_scroller(void *data)
+{
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       cal_base_time_s *p = data;
+
+       Evas_Coord sc_y;
+       Evas_Coord sc_h;
+       Evas_Coord_Rectangle r;
+
+       cal_base_time_block_get_geometry(p->base_time_block, &r);
+       evas_object_geometry_get(p->scroller, 0, &sc_y, 0, &sc_h);
+       elm_scroller_region_show(p->scroller, 0, sc_y - r.y, 0, sc_h);
+       p->is_attached = EINA_TRUE;
+       p->idler_for_scrolling = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void cal_base_time_attach_scroller(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p =  (cal_base_time_s *)base_time;
+
+       c_ret_if(!p->base_time_block);
+
+       Evas_Coord_Rectangle r;
+       Evas_Coord sc_y;
+       Evas_Coord sc_h;
+
+       cal_base_time_block_get_geometry(p->base_time_block, &r);
+       evas_object_size_hint_min_set(p->base, 0, r.h);
+       evas_object_geometry_get(p->scroller, 0, &sc_y, 0, &sc_h);
+       elm_scroller_region_show(p->scroller, 0, sc_y - r.y, 0, sc_h);
+
+       if (p->idler_for_scrolling)
+               ecore_idler_del(p->idler_for_scrolling);
+
+       p->idler_for_scrolling = ecore_idler_add(__cal_base_time_show_scroller, p);
+}
+
+static void __cal_base_time_detach_scroller(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p =  (cal_base_time_s *)base_time;
+
+       if (p->idler_for_scrolling) {
+               ecore_idler_del(p->idler_for_scrolling);
+               p->idler_for_scrolling = NULL;
+       }
+
+       p->is_attached = EINA_FALSE;
+}
+
+void cal_base_time_freeze_scroller(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p =  (cal_base_time_s *)base_time;
+
+       if (!p->scrl_freezed) {
+               elm_object_scroll_freeze_push(p->scroller);
+               p->scrl_freezed = EINA_TRUE;
+       }
+
+       __cal_base_time_detach_scroller(p);
+}
+
+void cal_base_time_thaw_scroller(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p =  (cal_base_time_s *)base_time;
+
+       if (p->scrl_freezed) {
+               elm_object_scroll_freeze_pop(p->scroller);
+               p->scrl_freezed = EINA_FALSE;
+       }
+
+       cal_base_time_attach_scroller(p);
+}
+
+void   cal_base_time_show(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       evas_object_show(p->event_rectangle);
+
+       if (p->base_time_block) {
+               cal_base_time_block_show(p->base_time_block);
+       }
+
+       if (p->left_base_time_block) {
+               cal_base_time_block_show(p->left_base_time_block);
+       }
+
+       if (p->right_base_time_block) {
+               cal_base_time_block_show(p->right_base_time_block);
+       }
+}
+
+void   cal_base_time_hide(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       evas_object_hide(p->event_rectangle);
+
+       if (p->base_time_block) {
+               cal_base_time_block_hide(p->base_time_block);
+       }
+       if (p->left_base_time_block) {
+               cal_base_time_block_hide(p->left_base_time_block);
+       }
+       if (p->right_base_time_block) {
+               cal_base_time_block_hide(p->right_base_time_block);
+       }
+}
+
+
+static void __cal_base_time_mouse_down_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = (cal_base_time_s *)data;
+       Evas_Event_Mouse_Down *ev = ei;
+
+       p->single_mouse_down.x = ev->canvas.x;
+       p->single_mouse_down.y = ev->canvas.y;
+
+       cal_base_time_state_transition(p, SINGLE_MOUSE_DOWN);
+       cal_base_time_state_actions(p);
+}
+
+static void __cal_base_time_mouse_up_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+
+       cal_base_time_state_transition(p, SINGLE_MOUSE_UP);
+       cal_base_time_state_actions(p);
+}
+
+static void __cal_base_time_mouse_out_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+
+       cal_base_time_state_transition(p, SINGLE_MOUSE_UP);
+       cal_base_time_state_actions(p);
+}
+
+static void __cal_base_time_mouse_move_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+       Evas_Event_Mouse_Move *ev = ei;
+
+       if (p->single_mouse_down.x == -1 || p->single_mouse_down.y == -1) {
+               return;
+       }
+
+       p->single_mouse_move.x = ev->cur.canvas.x;
+       p->single_mouse_move.y = ev->cur.canvas.y;
+
+       cal_base_time_state_transition(p, SINGLE_MOUSE_MOVE);
+       cal_base_time_state_actions(p);
+}
+
+static void __cal_base_time_multi_down_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+       Evas_Event_Multi_Down *ev = ei;
+
+       p->multi_mouse_down.x = ev->canvas.x;
+       p->multi_mouse_down.y = ev->canvas.y;
+
+       cal_base_time_state_transition(p, MULTI_MOUSE_DOWN);
+       cal_base_time_state_actions(p);
+}
+
+static void __cal_base_time_multi_up_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+
+       cal_base_time_state_transition(p, MULTI_MOUSE_UP);
+       cal_base_time_state_actions(p);
+
+       p->multi_mouse_down.x = -1;
+       p->multi_mouse_down.y = -1;
+
+       p->multi_mouse_move.x = -1;
+       p->multi_mouse_move.y = -1;
+}
+
+static void __cal_base_time_multi_move_event_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+       Evas_Event_Multi_Move *ev = ei;
+
+       p->multi_mouse_move.x = ev->cur.canvas.x;
+       p->multi_mouse_move.y = ev->cur.canvas.y;
+
+       cal_base_time_state_transition(p, MULTI_MOUSE_MOVE);
+       cal_base_time_state_actions(p);
+}
+
+static void __cal_base_time_scroller_drag_start(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = data;
+
+       cal_base_time_state_transition(p, SCROLLER_DRAG_START);
+       cal_base_time_state_actions(p);
+}
diff --git a/src/base-time.h b/src/base-time.h
new file mode 100755 (executable)
index 0000000..7757f69
--- /dev/null
@@ -0,0 +1,136 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#ifndef __CALENDAR_BASE_TIME_H__\r
+#define __CALENDAR_BASE_TIME_H__\r
+#include "cld.h"\r
+#include "base-time-block.h"\r
+\r
+#define ENABLE_MOUSE_DOWN_FLAG (1)\r
+#define ENABLE_MOUSE_UP_FLAG (ENABLE_MOUSE_DOWN_FLAG<<1)\r
+#define ENABLE_MOUSE_MOVE_FLAG (ENABLE_MOUSE_UP_FLAG<<1)\r
+#define ENABLE_MOUSE_OUT_FLAG (ENABLE_MOUSE_MOVE_FLAG<<1)\r
+#define ENABLE_MULTI_DOWN_FLAG (ENABLE_MOUSE_OUT_FLAG<<1)\r
+#define ENABLE_MULTI_UP_FLAG (ENABLE_MULTI_DOWN_FLAG<<1)\r
+#define ENABLE_MULTI_MOVE_FLAG (ENABLE_MULTI_UP_FLAG<<1)\r
+#define ENABLE_GRAG_START_FLAG (ENABLE_MULTI_MOVE_FLAG<<1)\r
+\r
+enum cal_base_time_state_action_type {\r
+       STATE_START = 0,\r
+       STATE_DOWN_FIRST,\r
+       STATE_DOWN_SECOND,\r
+       STATE_UP_FIRST,\r
+       STATE_UP_SECOND,\r
+       STATE_CLICK,\r
+       STATE_DOUBLE_CLICK,\r
+       STATE_ENABLE_SCROLL,\r
+       STATE_SCROLLING,\r
+       STATE_DISABLE_SCROLL,\r
+       STATE_ENABLE_FLICK,\r
+       STATE_FLICKING,\r
+       STATE_DISABLE_FLICK,\r
+       STATE_ANIMATION,\r
+       STATE_ENABLE_MOVEING_EVENT,\r
+       STATE_DISABLE_MOVEING_EVENT,\r
+       STATE_MOVING_EVENT,\r
+       STATE_ENABLE_ZOOM,\r
+       STATE_ZOOMING,\r
+       STATE_DISABLE_ZOOM,\r
+       STATE_IGNORE,\r
+};\r
+\r
+enum cal_base_time_input_signal_type {\r
+       SINGLE_MOUSE_DOWN,\r
+       SINGLE_MOUSE_UP,\r
+       SINGLE_MOUSE_MOVE,\r
+       MULTI_MOUSE_DOWN,\r
+       MULTI_MOUSE_UP,\r
+       MULTI_MOUSE_MOVE,\r
+       SCROLLER_DRAG_START,\r
+       SCROLLER_DRAG_STOP,\r
+       SCROLLER_ANIMATION_START,\r
+       SCROLLER_ANIMATION_STOP,\r
+\r
+};\r
+\r
+typedef void *cal_base_time_h;\r
+\r
+typedef cal_base_time_h(* cal_base_time_new_func_ptr)(void *data);\r
+typedef void(* cal_base_time_delete_func_ptr)(cal_base_time_h base_time);\r
+typedef void(* cal_base_time_update_func_ptr)(cal_base_time_h base_time);\r
+typedef void (*cal_base_time_state_transition_func_ptr)(cal_base_time_h base_time, enum cal_base_time_input_signal_type input);\r
+typedef void(*cal_base_time_state_actions_func_ptr)(cal_base_time_h base_time);\r
+typedef void(*cal_base_time_init_func_ptr)(cal_base_time_h base_time);\r
+typedef struct {\r
+       cal_base_time_new_func_ptr new_func_ptr;\r
+       cal_base_time_delete_func_ptr delete_func_ptr;\r
+       cal_base_time_init_func_ptr init_func_ptr;\r
+       cal_base_time_state_transition_func_ptr state_transition_func_ptr;\r
+       cal_base_time_state_actions_func_ptr state_actions_func_ptr;\r
+       cal_base_time_update_func_ptr update_func_ptr;\r
+} cal_base_time_operations;\r
+\r
+typedef struct {\r
+       const char *name;\r
+       Evas_Object *parent;\r
+       Evas_Object *ly;\r
+\r
+       Evas_Object *clip;\r
+       Evas_Object *clip_block;\r
+\r
+       Evas_Object *scroller;\r
+       Evas_Coord_Rectangle scroller_coord;\r
+\r
+       Evas_Object *base;\r
+       Evas_Object *event_rectangle;\r
+\r
+       cal_base_time_block_h base_time_block;\r
+       cal_base_time_block_h left_base_time_block;\r
+       cal_base_time_block_h right_base_time_block;\r
+\r
+       Eina_Bool is_attached;\r
+       Eina_Bool scrl_freezed;\r
+\r
+       Evas_Coord_Point single_mouse_down;\r
+       Evas_Coord_Point single_mouse_move;\r
+       Evas_Coord_Point multi_mouse_down;\r
+       Evas_Coord_Point multi_mouse_move;\r
+\r
+       Ecore_Idler *idler_for_scrolling;\r
+\r
+       Evas_Coord base_y;\r
+\r
+       cal_base_type base_type;\r
+\r
+       enum cal_base_time_state_action_type state_action_type;\r
+\r
+       cal_base_time_operations base_operations;\r
+} cal_base_time_s;\r
+\r
+cal_base_time_h cal_base_time_new(cal_base_type type, Evas_Object *parent, int current_hour, Evas_Object **time_obj, void *data, int event_flag);\r
+cal_base_time_h cal_base_time_create(cal_base_time_operations *base_operations, void *data);\r
+void cal_base_time_state_transition(cal_base_time_h base_time, enum cal_base_time_input_signal_type input);\r
+void cal_base_time_state_actions(cal_base_time_h base_time);\r
+void cal_base_time_update(cal_base_time_h base_time);\r
+void cal_base_time_attach_scroller(cal_base_time_h base_time);\r
+void cal_base_time_freeze_scroller(cal_base_time_h base_time);\r
+void cal_base_time_thaw_scroller(cal_base_time_h base_time);\r
+\r
+void   cal_base_time_show(cal_base_time_h base_time);\r
+void   cal_base_time_hide(cal_base_time_h base_time);\r
+\r
+#endif\r
diff --git a/src/day-event-block.c b/src/day-event-block.c
new file mode 100755 (executable)
index 0000000..a6c85fe
--- /dev/null
@@ -0,0 +1,619 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+#include "day-event-block.h"
+
+#define EVENT_BLOCK_EVENT_MIN_HEIGHT 79
+#define EVENT_BLOCK_EVENT_MOVE_OFFSET 20
+
+static const char *_name = "main/day/time/eventblock";
+
+typedef struct {
+       cal_base_block_item block_item;
+
+       Eina_Bool is_long_pressed;
+
+       Evas_Object *event_border_rect;
+
+       Eina_Bool is_magnify_bottom_down;
+
+       Eina_Bool is_magnify_top_down;
+
+} cal_day_event_block_event;
+
+
+typedef struct {
+       cal_base_block_s base_block;
+
+       cal_day_event_block_event_h moveable_event_block;
+} cal_day_event_block_s;
+
+static cal_base_block_h __cal_day_event_block_new();
+static cal_base_block_h __cal_day_event_block_item_new();
+static void __cal_day_event_block_item_delete(cal_base_block_h base_block);
+static Evas_Object* __cal_day_event_block_create_item_layout(cal_base_block_h base_block, cal_base_data_item_h data_item);
+static void __cal_day_event_block_move_item_layout(cal_base_block_h base_block, cal_base_block_item_h block_item, Evas_Coord_Rectangle *base);
+
+static cal_base_block_operations event_block_operations= {
+       __cal_day_event_block_new,
+       NULL,
+       __cal_day_event_block_item_new,
+       __cal_day_event_block_item_delete,
+       __cal_day_event_block_create_item_layout,
+       __cal_day_event_block_move_item_layout,
+       NULL,
+};
+
+static void __cal_day_event_block_move_item_layout(cal_base_block_h base_block, cal_base_block_item_h block_item, Evas_Coord_Rectangle *base)
+{
+       c_ret_if(!base_block);
+       c_ret_if(!block_item);
+       c_ret_if(!base);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)base_block;
+       c_ret_if(!p);
+       c_ret_if(p->moveable_event_block == block_item);
+
+       cal_day_event_block_event *event_s = (cal_day_event_block_event *)block_item;
+       c_ret_if(!((cal_base_block_item *)event_s)->item_data);
+
+       int width_devider = cal_base_data_get_item_width_devider(((cal_base_block_item *)event_s)->item_data);
+       int cloumn_index = cal_base_data_get_item_cloumn_index(((cal_base_block_item *)event_s)->item_data);
+       int height = cal_base_data_get_item_height(((cal_base_block_item *)event_s)->item_data);
+
+       evas_object_resize(((cal_base_block_item *)event_s)->ly, base->w/width_devider, base->h * height);
+       evas_object_move(((cal_base_block_item *)event_s)->ly, base->x + (cloumn_index* base->w/width_devider), base->y);
+}
+
+static Evas_Object* __cal_day_event_block_create_item_layout(cal_base_block_h base_block, cal_base_data_item_h data_item)
+{
+       c_retv_if(!base_block, NULL);
+
+       cal_base_block_s *p = base_block;
+       cal_day_event_data_event_h event_data = data_item;
+
+       Evas_Object *ly;
+       char *text = NULL;
+       _calendar_book_color color = {0};
+
+       ly = cal_util_add_layout(p->parent, p->name);
+       c_retv_if(!ly, NULL);
+
+       evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_clip_set(ly, (Evas_Object*)p->clip);
+
+       text = cal_base_data_get_item_text(event_data);
+
+       if (text)
+               edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), "text", text);
+
+
+       cal_base_data_get_item_color(event_data, &color);
+       evas_object_color_set(ly, color.red, color.green, color.blue, color.alpha);
+
+       return ly;
+}
+
+static cal_base_block_h __cal_day_event_block_item_new()
+{
+       cal_day_event_block_event *event_block = NULL;
+       CAL_CALLOC(event_block, 1, cal_day_event_block_event);
+
+       return event_block;
+}
+
+static void __cal_day_event_block_item_delete(cal_base_block_h base_block)
+{
+       c_ret_if(!base_block);
+
+       cal_day_event_block_event *event = (cal_day_event_block_event *)base_block;
+
+       if (((cal_base_block_item *)event)->ly) {
+               evas_object_del(((cal_base_block_item *)event)->ly);
+       }
+
+       if (event->event_border_rect) {
+               evas_object_del(event->event_border_rect);
+       }
+
+       free(event);
+}
+
+static void __cal_day_event_block_edje_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       c_ret_if(!data);
+
+       cal_day_event_block_event *event_block = data;
+
+       if (!CAL_STRCMP(e, "mg,bottom,dn")) {
+               event_block->is_magnify_top_down = EINA_FALSE;
+               event_block->is_magnify_bottom_down = EINA_TRUE;
+       }
+
+       if (!CAL_STRCMP(e, "mg,bottom,up")) {
+               event_block->is_magnify_top_down = EINA_FALSE;
+               event_block->is_magnify_bottom_down = EINA_FALSE;
+       }
+
+       if (!CAL_STRCMP(e, "mg,top,dn")) {
+               event_block->is_magnify_bottom_down = EINA_FALSE;
+               event_block->is_magnify_top_down = EINA_TRUE;
+       }
+
+       if (!CAL_STRCMP(e, "mg,top,up")) {
+               event_block->is_magnify_top_down = EINA_FALSE;
+               event_block->is_magnify_bottom_down = EINA_FALSE;
+       }
+
+}
+
+static void __cal_day_event_block_add_event_border_rect(cal_base_block_h base_block, cal_day_event_block_event_h event_block_h)
+{
+       c_ret_if(!base_block);
+       c_ret_if(!event_block_h);
+
+       Evas_Object *ly;
+       Evas_Coord_Rectangle event_r;
+
+       cal_base_block_s *p = (cal_base_block_s *)base_block;
+
+       cal_day_event_block_event *event_block = (cal_day_event_block_event *)event_block_h;
+       c_ret_if(!((cal_base_block_item *)event_block)->ly);
+
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(((cal_base_block_item *)event_block)->ly), "longpress,on", "prog");
+       evas_object_raise(((cal_base_block_item *)event_block)->ly);
+
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(((cal_base_block_item *)event_block)->ly), "*", "edj", __cal_day_event_block_edje_callback, event_block);
+
+       if (event_block->event_border_rect) {
+               evas_object_del(event_block->event_border_rect);
+               event_block->event_border_rect = NULL;
+       }
+
+       ly = cal_util_add_layout(p->parent, p->name);
+       c_ret_if(!ly);
+
+       evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_clip_set(ly, (Evas_Object*)p->clip);
+
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "longpress,border", "prog");
+
+       cal_util_get_geometry(&event_r, ((cal_base_block_item *)event_block)->ly);
+
+       evas_object_resize(ly, event_r.w, event_r.h);
+       evas_object_move(ly, event_r.x, event_r.y);
+
+       evas_object_stack_below(ly, ((cal_base_block_item *)event_block)->ly);
+
+       event_block->event_border_rect = ly;
+
+}
+
+static cal_day_event_block_h __cal_day_event_block_new()
+{
+       cal_day_event_block_s *p = NULL;
+
+       CAL_CALLOC(p, 1, cal_day_event_block_s);
+
+
+       ((cal_base_block_s *)p)->name = _name;
+
+       return p;
+}
+
+cal_day_event_block_h cal_day_event_block_create()
+{
+       return cal_base_block_create(&event_block_operations);
+}
+
+static Eina_Bool __cal_day_event_block_check_coord_point_in_event_layout(Evas_Object *event_ly, Evas_Coord_Point *mouse_down_coord)
+{
+       c_retv_if(!event_ly, EINA_FALSE);
+       c_retv_if(!mouse_down_coord, EINA_FALSE);
+
+       Evas_Coord_Rectangle event_r;
+
+       cal_util_get_geometry(&event_r, event_ly);
+
+       if (event_r.x <= mouse_down_coord->x && mouse_down_coord->x <= event_r.x + event_r.w) {
+               if (event_r.y <= mouse_down_coord->y && mouse_down_coord->y <= event_r.y + event_r.h) {
+                       return EINA_TRUE;
+               }
+       }
+
+       return EINA_FALSE;
+}
+
+Eina_Bool cal_day_event_block_hint_clicked(cal_day_event_block_h day_event_block, Evas_Coord_Point *mouse_down_coord, calendar_record_h *record)
+{
+       c_retv_if(!day_event_block, EINA_FALSE);
+       c_retv_if(!mouse_down_coord, EINA_FALSE);
+       c_retv_if(!record, EINA_FALSE);
+
+       cal_base_block_s *p = (cal_base_block_s *)day_event_block;
+       c_retv_if(!p->base_block_list, EINA_FALSE);
+
+       Eina_List *l;
+
+       cal_base_block_item *event;
+
+       EINA_LIST_FOREACH(p->base_block_list, l, event) {
+               if (event) {
+                       if (event->ly) {
+                               Eina_Bool is_clicked = __cal_day_event_block_check_coord_point_in_event_layout(event->ly, mouse_down_coord);
+
+                               if (is_clicked) {
+                                       (*record) = cal_day_event_data_get_event_record(event->item_data);
+                                       return EINA_TRUE;
+                               }
+                       }
+               }
+       }
+
+       return EINA_FALSE;
+}
+
+Eina_Bool cal_day_event_block_hint_longpress(cal_day_event_block_h day_event_block, Evas_Coord_Point *mouse_down_coord)
+{
+       c_retv_if(!day_event_block, EINA_FALSE);
+       c_retv_if(!mouse_down_coord, EINA_FALSE);
+
+       cal_base_block_s *p = (cal_base_block_s *)day_event_block;
+       c_retv_if(!p->base_block_list, EINA_FALSE);
+
+       Eina_List *l;
+
+       cal_base_block_item *event;
+
+       EINA_LIST_FOREACH(p->base_block_list, l, event) {
+               if (event) {
+                       if (event->ly) {
+                               Eina_Bool is_longpressed = __cal_day_event_block_check_coord_point_in_event_layout(event->ly, mouse_down_coord);
+
+                               if (is_longpressed) {
+                                       calendar_record_h record = cal_day_event_data_get_event_record(event->item_data);
+                                       if (record) {
+                                               ((cal_day_event_block_s *)p)->moveable_event_block = (cal_day_event_block_event_h)event;
+                                               return EINA_TRUE;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       return EINA_FALSE;
+}
+
+Eina_Bool cal_day_event_block_hint_quit_event_moveable_state(cal_day_event_block_h day_event_block, Evas_Coord_Point *mouse_down_coord)
+{
+       c_retv_if(!day_event_block, EINA_FALSE);
+       c_retv_if(!mouse_down_coord, EINA_FALSE);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)day_event_block;
+       c_retv_if(!p->moveable_event_block, EINA_FALSE);
+
+       cal_base_block_item *event = (cal_base_block_item *)p->moveable_event_block;
+       c_retv_if(!event->ly, EINA_FALSE);
+
+       Eina_Bool is_clicked = __cal_day_event_block_check_coord_point_in_event_layout(event->ly, mouse_down_coord);
+
+       return is_clicked;
+}
+
+void cal_day_event_block_longpress_callback(cal_day_event_block_h day_event_block)
+{
+       c_ret_if(!day_event_block);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)day_event_block;
+
+       __cal_day_event_block_add_event_border_rect(p, p->moveable_event_block);
+}
+
+void cal_day_event_block_get_moveable_event_objects(cal_day_event_block_h day_event_block, Evas_Object **moveable_event, Evas_Object **moveable_event_border)
+{
+       c_ret_if(!day_event_block);
+       c_ret_if(!moveable_event);
+       c_ret_if(!moveable_event_border);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)day_event_block;
+
+       c_ret_if(!p->moveable_event_block);
+
+       cal_day_event_block_event *event = (cal_day_event_block_event *)p->moveable_event_block;
+
+       (*moveable_event) = ((cal_base_block_item *)event)->ly;
+       (*moveable_event_border) = event->event_border_rect;
+}
+
+void cal_day_event_block_get_moveable_event_geometry(cal_day_event_block_h day_event_block, Evas_Coord_Rectangle *event_r, Evas_Coord_Rectangle *event_b_r)
+{
+       c_ret_if(!day_event_block);
+       c_ret_if(!event_r);
+       c_ret_if(!event_b_r);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)day_event_block;
+
+       c_ret_if(!p->moveable_event_block);
+
+       cal_day_event_block_event *event = (cal_day_event_block_event *)p->moveable_event_block;
+
+       if (((cal_base_block_item *)event)->ly) {
+               cal_util_get_geometry(event_r, ((cal_base_block_item *)event)->ly);
+       }
+
+       if (event->event_border_rect) {
+               cal_util_get_geometry(event_b_r, event->event_border_rect);
+       }
+}
+
+
+void cal_day_event_block_get_moveable_event_state(cal_day_event_block_h day_event_block, Eina_Bool *is_magnify_bottom_down, Eina_Bool *is_magnify_top_down)
+{
+       c_ret_if(!day_event_block);
+       c_ret_if(!is_magnify_bottom_down);
+       c_ret_if(!is_magnify_top_down);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)day_event_block;
+       c_ret_if(!p->moveable_event_block);
+
+       cal_day_event_block_event *event = (cal_day_event_block_event *)p->moveable_event_block;
+
+       (*is_magnify_bottom_down) = event->is_magnify_bottom_down;
+       (*is_magnify_top_down) = event->is_magnify_top_down;
+}
+
+int cal_day_event_block_get_moveable_event_original_line_index(cal_day_event_block_h day_event_block)
+{
+       c_retv_if(!day_event_block, -1);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)day_event_block;
+
+       c_retv_if(!p->moveable_event_block, -1);
+
+       return cal_base_data_get_item_line_index(p->moveable_event_block);
+}
+
+static void  __cal_day_event_block_clear_moveable_event_state(cal_day_event_block_h day_event_block)
+{
+       c_ret_if(!day_event_block);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)day_event_block;
+
+       c_ret_if(!p->moveable_event_block);
+
+       cal_day_event_block_event *event = (cal_day_event_block_event *)p->moveable_event_block;
+
+       edje_object_signal_callback_del(CAL_UTIL_GET_EDJ_DATA(((cal_base_block_item *)event)->ly), "*", "edj", __cal_day_event_block_edje_callback);
+
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(((cal_base_block_item *)event)->ly), "longpress,off", "prog");
+
+       if (event->event_border_rect) {
+               evas_object_del(event->event_border_rect);
+               event->event_border_rect = NULL;
+       }
+
+       p->moveable_event_block = NULL;
+}
+
+void cal_day_event_block_update_moveable_event(cal_day_event_block_h day_event_block, int line_index, int height)
+{
+       c_ret_if(!day_event_block);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)day_event_block;
+       c_ret_if(!p->moveable_event_block);
+
+       cal_day_event_block_event *event = (cal_day_event_block_event *)p->moveable_event_block;
+       c_ret_if(!((cal_base_block_item *)event)->item_data);
+
+       cal_day_event_data_update_event(((cal_base_block_s *)p)->base_data, ((cal_base_block_item *)event)->item_data, line_index, height);
+
+       __cal_day_event_block_clear_moveable_event_state(day_event_block);
+
+       cal_base_block_destroy_block_list(p);
+
+       cal_base_data_create_data_list(((cal_base_block_s *)p)->base_data);
+
+       cal_base_block_create_block_list(p);
+}
+
+void cal_day_event_block_moving_moveable_event(cal_day_event_block_h day_event_block, Evas_Coord_Point *mouse_move_coord, Evas_Coord_Point *mouse_down_coord, cal_day_event_block_moving_event_cb callback, void *usr_data, Evas_Coord time_block_y, Evas_Coord time_block_h)
+{
+       c_ret_if(!day_event_block);
+       c_ret_if(!mouse_move_coord);
+       c_ret_if(!mouse_down_coord);
+       c_ret_if(!callback);
+
+       cal_day_event_block_s *p = (cal_day_event_block_s *)day_event_block;
+       c_ret_if(!p->moveable_event_block);
+       c_ret_if(!((cal_base_block_s *)p)->parent);
+
+       cal_day_event_block_event *event = (cal_day_event_block_event *)p->moveable_event_block;
+       c_ret_if(!((cal_base_block_item *)event)->item_data);
+       c_ret_if(!((cal_base_block_item *)event)->ly);
+       c_ret_if(!event->event_border_rect);
+
+       Evas_Coord_Rectangle scroller_r, event_r, event_b_r;
+
+       cal_util_get_geometry(&event_r, ((cal_base_block_item *)event)->ly);
+       cal_util_get_geometry(&event_b_r, event->event_border_rect);
+       cal_util_get_geometry(&scroller_r, ((cal_base_block_s *)p)->parent);
+
+       Evas_Coord dy = mouse_move_coord->y - mouse_down_coord->y;
+       mouse_down_coord->y = mouse_move_coord->y;
+
+       int event_height = event_r.h;
+       int event_y = event_r.y;
+       int event_border_y = event_b_r.y;
+       int time_block_new_y = time_block_y;
+
+       if (event->is_magnify_top_down) {
+               if (event_r.y + event_r.h <= mouse_move_coord->y) {
+                       event_height = EVENT_BLOCK_EVENT_MIN_HEIGHT;
+               } else {
+                       event_height = event_r.h + event_r.y - mouse_move_coord->y;
+               }
+
+               if (event_height <= EVENT_BLOCK_EVENT_MIN_HEIGHT) {
+                       event_height = EVENT_BLOCK_EVENT_MIN_HEIGHT;
+               }
+
+               if (mouse_move_coord->y <= scroller_r.y) {
+                       if (event_r.y + event_r.h - event_height <= scroller_r.y) {
+                               if (scroller_r.y <= time_block_y + EVENT_BLOCK_EVENT_MOVE_OFFSET) {
+                                       time_block_new_y = scroller_r.y;
+                                       event_height = event_r.y + event_r.h - scroller_r.y;
+                                       event_y = scroller_r.y;
+                                       event_border_y = event_b_r.y + scroller_r.y - time_block_y;
+                               } else {
+                                       time_block_new_y =  time_block_y + EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                       event_height = event_r.h + EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                       event_y = scroller_r.y;
+                                       event_border_y = event_b_r.y + EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                               }
+                       }
+               }  else if (scroller_r.y + scroller_r.h <= mouse_move_coord->y) {
+                       if (scroller_r.y + scroller_r.h < event_r.y + event_r.h) {
+                               if (time_block_y + time_block_h  - EVENT_BLOCK_EVENT_MOVE_OFFSET <= scroller_r.y + scroller_r.h) {
+                                       time_block_new_y = scroller_r.y + scroller_r.h - time_block_h;
+                                       event_height = scroller_r.y + scroller_r.h - event_r.y;
+                                       event_y = event_r.y- (time_block_y - scroller_r.y - scroller_r.h + time_block_h);
+                                       event_border_y = event_b_r.y - (time_block_y + time_block_h - scroller_r.y - scroller_r.h);
+                               } else {
+                                       int tmp;
+
+                                       time_block_new_y = time_block_y - EVENT_BLOCK_EVENT_MOVE_OFFSET;
+
+                                       if (event_r.h -  EVENT_BLOCK_EVENT_MOVE_OFFSET < EVENT_BLOCK_EVENT_MIN_HEIGHT) {
+                                               tmp = EVENT_BLOCK_EVENT_MIN_HEIGHT;
+                                       } else {
+                                               tmp = event_r.h - EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                       }
+
+                                       event_height = tmp;
+
+                                       if (tmp == EVENT_BLOCK_EVENT_MIN_HEIGHT) {
+                                               event_y = scroller_r.y + scroller_r.h - EVENT_BLOCK_EVENT_MIN_HEIGHT;
+                                               event_border_y = event_b_r.y - EVENT_BLOCK_EVENT_MIN_HEIGHT;
+                                       } else {
+                                               event_y = scroller_r.y + scroller_r.h - EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                               event_border_y = event_b_r.y - EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                       }
+                               }
+                       }
+               } else {
+                       event_y = event_r.y + event_r.h - event_height;
+               }
+
+       } else if (event->is_magnify_bottom_down) {
+               if (mouse_move_coord->y <= event_r.y) {
+                       event_height = EVENT_BLOCK_EVENT_MIN_HEIGHT;
+               } else {
+                       event_height = event_r.h - event_r.y - event_r.h + mouse_move_coord->y;
+               }
+
+               if (event_height <= EVENT_BLOCK_EVENT_MIN_HEIGHT) {
+                       event_height = EVENT_BLOCK_EVENT_MIN_HEIGHT;
+               }
+
+               if (mouse_move_coord->y <= scroller_r.y) {
+                       if (event_r.y <= scroller_r.y) {
+                               if (scroller_r.y <= time_block_y + EVENT_BLOCK_EVENT_MOVE_OFFSET) {
+                                       time_block_new_y = scroller_r.y;
+                                       event_height = event_height;
+                                       event_y = event_r.y  + scroller_r.y -  time_block_y;
+                                       event_border_y = event_b_r.y + scroller_r.y - time_block_y;
+                               } else {
+                                       int tmp;
+
+                                       time_block_new_y = time_block_y + EVENT_BLOCK_EVENT_MOVE_OFFSET;
+
+                                       if ((scroller_r.y -  event_r.y) < EVENT_BLOCK_EVENT_MIN_HEIGHT) {
+                                               tmp = EVENT_BLOCK_EVENT_MIN_HEIGHT;
+                                       } else {
+                                               tmp = scroller_r.y -  event_r.y;
+                                       }
+
+                                       event_height = tmp;
+                                       event_y = event_r.y  + EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                       event_border_y = event_b_r.y + EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                               }
+
+                       }
+               }  else if (scroller_r.y + scroller_r.h <= mouse_move_coord->y) {
+                       if (scroller_r.y + scroller_r.h <= event_r.y + event_height) {
+                               if (time_block_y + time_block_h  - EVENT_BLOCK_EVENT_MOVE_OFFSET <= scroller_r.y + scroller_r.h) {
+                                       time_block_new_y = scroller_r.y + scroller_r.h -time_block_h;
+                                       event_height = scroller_r.y + scroller_r.h - event_r.y;
+                                       event_y = event_r.y- (time_block_y - scroller_r.y - scroller_r.h + time_block_h);
+                                       event_border_y = event_b_r.y - (time_block_y + time_block_h - scroller_r.y - scroller_r.h);
+
+                               } else {
+                                       time_block_new_y = time_block_y - EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                       event_y = event_r.y - EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                       event_border_y = event_b_r.y - EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                               }
+                       }
+               }
+       } else {
+               if (mouse_move_coord->y <= scroller_r.y) {
+                       if ( event_r.y <= scroller_r.y ) {
+                               if (scroller_r.y <= time_block_y + EVENT_BLOCK_EVENT_MOVE_OFFSET) {
+                                       time_block_new_y = scroller_r.y;
+                                       event_y = scroller_r.y;
+                                       event_border_y = event_b_r.y + scroller_r.y - time_block_y;
+                               } else {
+                                       time_block_new_y =  time_block_y + EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                       event_border_y = event_b_r.y + EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                               }
+                       } else {
+                               event_y = event_r.y + dy;
+                       }
+               } else if (scroller_r.y + scroller_r.h <= mouse_move_coord->y) {
+                        if ( scroller_r.y + scroller_r.h <= event_r.y + event_r.h ) {
+                               if (time_block_y + time_block_h -EVENT_BLOCK_EVENT_MOVE_OFFSET <= scroller_r.y + scroller_r.h) {
+                                       time_block_new_y = scroller_r.y + scroller_r.h - time_block_h;
+                                       event_y = scroller_r.y + scroller_r.h - event_r.h;
+                                       event_border_y = event_b_r.y - (time_block_y + time_block_h - scroller_r.y - scroller_r.h);
+                               } else {
+                                       time_block_new_y = time_block_y - EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                                       event_border_y = event_b_r.y - EVENT_BLOCK_EVENT_MOVE_OFFSET;
+                               }
+                       } else {
+                               event_y = event_r.y + dy;
+                       }
+               } else {
+                       event_y = event_r.y + dy;
+               }
+
+               if (event_y <= time_block_new_y) {
+                       event_y = time_block_new_y;
+               }
+
+               if (time_block_new_y + time_block_h <= event_y + event_height) {
+                       event_y = time_block_new_y + time_block_h - event_height;
+               }
+       }
+
+       (*callback)(usr_data, time_block_new_y);
+
+       evas_object_resize(((cal_base_block_item *)event)->ly, event_r.w, event_height);
+
+       evas_object_move(((cal_base_block_item *)event)->ly, event_r.x, event_y);
+
+       evas_object_move(event->event_border_rect, event_b_r.x, event_border_y);
+}
diff --git a/src/day-event-block.h b/src/day-event-block.h
new file mode 100755 (executable)
index 0000000..e248684
--- /dev/null
@@ -0,0 +1,51 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#ifndef __CALENDAR_DAY_EVENT_BLOCK_H__\r
+#define __CALENDAR_DAY_EVENT_BLOCK_H__\r
+\r
+#include "cld.h"\r
+#include "base-block.h"\r
+#include "day-event-data.h"\r
+\r
+#define EVEN_BLOCK_EVENT_CLICEKD 0\r
+#define EVEN_BLOCK_MORE_EVENT_CLICEKD EVEN_BLOCK_EVENT_CLICEKD+1\r
+#define EVEN_BLOCK_EVENT_LONGPRESS EVEN_BLOCK_MORE_EVENT_CLICEKD + 1\r
+\r
+typedef void* cal_day_event_block_h;\r
+typedef void* cal_day_event_block_event_h;\r
+typedef Eina_Bool(* cal_day_event_block_foreach_query_event_cb)(cal_day_event_block_event_h event_block, int line_index, int height, void *user_data);\r
+typedef void(* cal_day_event_block_moving_event_cb)(void *user_data, Evas_Coord time_block_y);\r
+typedef Evas_Object *(* create_layout_func)(void *data_p, void *data_event);\r
+typedef void (*move_layout_func)(cal_day_event_block_h event_block, cal_day_event_block_event_h event, Evas_Coord_Rectangle *base);\r
+\r
+void cal_day_event_block_longpress_callback(cal_day_event_block_h day_event_block);\r
+\r
+Eina_Bool cal_day_event_block_hint_clicked(cal_day_event_block_h event_block, Evas_Coord_Point *mouse_down_coord, calendar_record_h *record);\r
+Eina_Bool cal_day_event_block_hint_longpress(cal_day_event_block_h day_event_block, Evas_Coord_Point *mouse_down_coord);\r
+Eina_Bool cal_day_event_block_hint_quit_event_moveable_state(cal_day_event_block_h day_event_block, Evas_Coord_Point *mouse_down_coord);\r
+\r
+void cal_day_event_block_get_moveable_event_objects(cal_day_event_block_h day_event_block, Evas_Object **moveable_event, Evas_Object **moveable_event_border);\r
+void cal_day_event_block_get_moveable_event_geometry(cal_day_event_block_h day_event_block, Evas_Coord_Rectangle *event_r, Evas_Coord_Rectangle *event_b_r);\r
+void cal_day_event_block_get_moveable_event_state(cal_day_event_block_h day_event_block, Eina_Bool *is_magnify_bottom_down, Eina_Bool *is_magnify_top_down);\r
+int cal_day_event_block_get_moveable_event_original_line_index(cal_day_event_block_h day_event_block);\r
+void cal_day_event_block_update_moveable_event(cal_day_event_block_h day_event_block, int line_index, int height);\r
+void cal_day_event_block_moving_moveable_event(cal_day_event_block_h day_event_block, Evas_Coord_Point *mouse_move_coord, Evas_Coord_Point *mouse_down_coord, cal_day_event_block_moving_event_cb callback, void *usr_data, Evas_Coord time_block_y, Evas_Coord time_block_h);\r
+\r
+cal_day_event_block_h cal_day_event_block_create();\r
+\r
+#endif\r
diff --git a/src/day-event-data.c b/src/day-event-data.c
new file mode 100755 (executable)
index 0000000..7d1cb68
--- /dev/null
@@ -0,0 +1,657 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "day-event-data.h"
+#include "query.h"
+#include "list-data.h"
+
+typedef struct {
+       cal_base_data_item base_item;
+       int cid;
+       calendar_record_h record;
+} cal_day_event_data_event;
+
+typedef struct {
+       Eina_List *list;
+       int maxsize;
+       int real_sz;
+       int start_index;
+} cal_day_event_data_event_slice;
+
+typedef struct {
+       int start_idx;
+       int end_idx;
+       int size;
+} cal_day_event_data_event_slice_region;
+
+typedef struct {
+       cal_base_data_s base_data;
+       struct appdata *ad;
+       Eina_List *event_list;
+       cal_day_event_data_event_slice event_slice_array[EVENT_SLICE_COUNT];
+       Eina_List *event_slice_region_list;
+} cal_day_event_data_s;
+
+static cal_base_data_h __cal_day_event_data_new(void *data);
+static void __cal_day_event_data_delete(cal_base_data_h base_data);
+static void __cal_day_event_data_load(cal_base_data_h day_event_data);
+static void __cal_day_event_data_create_data_list(cal_base_data_h day_event_data);
+static void __cal_day_event_data_delete_data_list(cal_base_data_h base_data);
+
+static cal_base_data_operations event_data_operations= {
+       __cal_day_event_data_new,
+       __cal_day_event_data_delete,
+       __cal_day_event_data_load,
+       __cal_day_event_data_create_data_list,
+       __cal_day_event_data_delete_data_list,
+};
+
+static cal_base_data_h __cal_day_event_data_new(void *data)
+{
+       c_retv_if(!data, NULL);
+
+       cal_day_event_data_s* p = NULL;
+
+       CAL_CALLOC(p, 1, cal_day_event_data_s);
+
+       p->ad = (struct appdata *)data;
+
+       return p;
+}
+
+cal_day_event_data_h cal_day_event_data_create(struct appdata *ad)
+{
+       return cal_base_data_create(&event_data_operations, ad);
+}
+
+
+static cal_day_event_data_event *__cal_day_event_data_create_more_event(cal_day_event_data_s* p, cal_day_event_data_event *last_event)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!last_event, NULL);
+
+       cal_day_event_data_event *event = NULL;
+       CAL_CALLOC(event, 1, cal_day_event_data_event);
+
+       ((cal_base_data_item *)event)->text = strdup(">");
+       ((cal_base_data_item *)event)->color = ((cal_base_data_item *)last_event)->color;
+       ((cal_base_data_item *)event)->line_index = ((cal_base_data_item *)last_event)->line_index;
+       ((cal_base_data_item *)event)->height = 1;
+       ((cal_base_data_item *)event)->width_devider = EVEN_SLICE_MAX_EVENT_COUNT;
+       ((cal_base_data_item *)event)->column_index = EVEN_SLICE_MAX_EVENT_COUNT-1;
+
+       return event;
+}
+
+static void __cal_day_event_data_clear_event_slice_data(cal_day_event_data_s* p)
+{
+       c_ret_if(!p);
+
+       int i = 0;
+       cal_day_event_data_event_slice *event_slice = NULL;
+
+       for(i=0; i<EVENT_SLICE_COUNT; i++) {
+               event_slice = &p->event_slice_array[i];
+               event_slice->start_index = 0;
+               event_slice->real_sz = 0;
+       }
+}
+
+static void __cal_day_event_data_init_event_slice_data(cal_day_event_data_s* p)
+{
+       c_ret_if(!p);
+
+       int i = 0;
+       int j = 0;
+       int k = 0;
+       int e = 0;
+       int sz = 0;
+       cal_day_event_data_event_slice *event_slice = NULL;
+       cal_day_event_data_event_slice *event_slice_tmp = NULL;
+       Eina_List *l;
+       cal_day_event_data_event *event = NULL;
+
+       __cal_day_event_data_clear_event_slice_data(p);
+
+       for(i = 0; i<EVENT_SLICE_COUNT; i++) {
+               event_slice = &p->event_slice_array[i];
+               if(NULL != event_slice->list) {
+                       k = 0;
+                       EINA_LIST_FOREACH(event_slice->list, l, event)
+                       {
+                               if(NULL != event)
+                               {
+                                       e = ((cal_base_data_item *)event)->line_index + ((cal_base_data_item *)event)->height;
+                                       for(j = ((cal_base_data_item *)event)->line_index; (j<e && j<EVENT_SLICE_COUNT); j++)
+                                       {
+                                               event_slice_tmp = &p->event_slice_array[j];
+                                               if(j > ((cal_base_data_item *)event)->line_index)
+                                               {
+                                                       if(0 == k) {
+                                                               event_slice_tmp->start_index =  event_slice->start_index + 1;
+                                                       } else {
+                                                               event_slice_tmp->start_index =  event_slice_tmp->start_index + 1;
+                                                       }
+                                               }
+                                               sz = eina_list_count(event_slice_tmp->list);
+                                               event_slice_tmp->real_sz = event_slice_tmp->start_index + sz;
+                                       }
+                                       k = 1;
+                               }
+
+                       }
+               }
+       }
+}
+
+static void __cal_day_event_data_delete_event_slice_regions(cal_day_event_data_s* p)
+{
+       c_ret_if(!p);
+
+       cal_day_event_data_event_slice_region *even_slice_region = NULL;
+       Eina_List *l = NULL;
+
+       EINA_LIST_FOREACH(p->event_slice_region_list, l, even_slice_region) {
+               if(even_slice_region)
+                       free(even_slice_region);
+       }
+
+       p->event_slice_region_list = eina_list_free(p->event_slice_region_list);
+}
+
+static void __cal_day_event_data_delete_events(cal_day_event_data_s* p)
+{
+       c_ret_if(!p);
+
+       int i;
+       cal_day_event_data_event_slice *event_slice = NULL;
+       cal_day_event_data_event *event = NULL;
+
+       for (i = 0; i < EVENT_SLICE_COUNT; i++) {
+               Eina_List *l;
+               event_slice = &p->event_slice_array[i];
+
+               if (event_slice) {
+                       if (event_slice->list) {
+                               EINA_LIST_FOREACH(event_slice->list, l, event) {
+                                       if (event) {
+                                               if (((cal_base_data_item *)event)->text) {
+                                                       CAL_FREE(((cal_base_data_item *)event)->text);
+                                               }
+                                               CAL_FREE(event);
+                                       }
+                               }
+                       }
+
+                       eina_list_free(event_slice->list);
+                       event_slice->list = NULL;
+               }
+       }
+}
+
+static void __cal_day_event_data_delete_data_list(cal_base_data_h base_data)
+{
+       c_ret_if(!base_data);
+       c_ret_if(!((cal_base_data_s *)base_data)->base_data_list);
+
+       cal_day_event_data_event *event = NULL;
+       Eina_List *l;
+
+       EINA_LIST_FOREACH(((cal_base_data_s *)base_data)->base_data_list, l, event) {
+               if (event) {
+                       if (!event->record) {
+                               ((cal_base_data_s *)base_data)->base_data_list = eina_list_remove(((cal_base_data_s *)base_data)->base_data_list, event);
+
+                               if (((cal_base_data_item *)event)->text) {
+                                       CAL_FREE(((cal_base_data_item *)event)->text);
+                               }
+
+                               free(event);
+                       }
+               }
+       }
+
+       eina_list_free(((cal_base_data_s *)base_data)->base_data_list);
+
+       ((cal_base_data_s *)base_data)->base_data_list = NULL;
+}
+
+static void __cal_day_event_data_create_event_dispaly_data_list(cal_day_event_data_s* p)
+{
+       c_ret_if(!p);
+
+       cal_day_event_data_event_slice_region *event_slice_region = NULL;
+       cal_day_event_data_event_slice *event_slice = NULL;
+       cal_day_event_data_event *event = NULL;
+
+       Eina_List *l;
+       Eina_List *l2;
+       int i = 0;
+
+       int width_radix = -1;
+       int column_index = -1;
+
+       cal_base_data_destroy_data_list(p);
+
+       EINA_LIST_FOREACH(p->event_slice_region_list, l, event_slice_region) {
+               if (event_slice_region) {
+                       if (0 < event_slice_region->size) {
+                               for ( i = event_slice_region->start_idx; i <= event_slice_region->end_idx; i++) {
+
+                                       event_slice = &p->event_slice_array[i];
+                                       if (EVEN_SLICE_MAX_EVENT_COUNT < event_slice_region->size) {
+                                               width_radix = EVEN_SLICE_MAX_EVENT_COUNT;
+                                       } else {
+                                               width_radix = event_slice_region->size;
+                                       }
+
+                                       column_index = event_slice->start_index;
+
+                                       EINA_LIST_FOREACH(event_slice->list, l2, event) {
+                                               if (event) {
+                                                       if(column_index < EVEN_SLICE_MAX_EVENT_COUNT-1) {
+                                                               ((cal_base_data_item *)event)->width_devider = width_radix;
+                                                               ((cal_base_data_item *)event)->column_index = column_index;
+
+                                                               ((cal_base_data_s *)p)->base_data_list = eina_list_append(((cal_base_data_s *)p)->base_data_list, event);
+
+                                                       } else {
+                                                               if (column_index == EVEN_SLICE_MAX_EVENT_COUNT-1) {
+                                                                       cal_day_event_data_event *event_more = __cal_day_event_data_create_more_event(p, event);
+                                                                       c_ret_if(!event_more);
+
+                                                                       ((cal_base_data_s *)p)->base_data_list = eina_list_append(((cal_base_data_s *)p)->base_data_list, event_more);
+
+                                                                       break;
+                                                               }
+
+                                                               break;
+                                                       }
+                                                       column_index ++;
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+}
+
+static void __cal_day_event_data_create_data_list(cal_base_data_h base_data)
+{
+       c_ret_if(!base_data);
+
+       cal_day_event_data_s* p = (cal_day_event_data_s*)base_data;
+
+       int i = 0;
+       int j = 0;
+
+       cal_day_event_data_event_slice *event_slice = NULL;
+       cal_day_event_data_event_slice_region *event_slice_region = NULL;
+
+       __cal_day_event_data_init_event_slice_data(p);
+
+       __cal_day_event_data_delete_event_slice_regions(p);
+
+       while(i < EVENT_SLICE_COUNT) {
+
+               event_slice = &p->event_slice_array[i];
+
+               if(0 == event_slice->start_index) {
+                       if(0 == event_slice->real_sz){
+                               i++;
+                               continue;
+                       }
+
+                       CAL_CALLOC(event_slice_region, 1, cal_day_event_data_event_slice_region);
+
+                       event_slice_region->start_idx = i;
+                       event_slice_region->end_idx = i;
+                       event_slice_region->size = event_slice->real_sz;
+
+                       if(EVENT_SLICE_COUNT == i+1) {
+                               p->event_slice_region_list = eina_list_append(p->event_slice_region_list, event_slice_region);
+                       }
+
+                       for(j = i+1; j < EVENT_SLICE_COUNT; j++) {
+                               event_slice = &p->event_slice_array[j];
+
+                               if((j == EVENT_SLICE_COUNT - 1) && (0 != event_slice->start_index)) {
+                                       if(event_slice->real_sz > event_slice_region->size) {
+                                               event_slice_region->size = event_slice->real_sz;
+                                       }
+                                       event_slice_region->end_idx = j;
+                                       p->event_slice_region_list = eina_list_append(p->event_slice_region_list, event_slice_region);
+                               } else if(0 == event_slice->start_index) {
+                                       event_slice_region->end_idx = j - 1;
+                                       p->event_slice_region_list = eina_list_append(p->event_slice_region_list, event_slice_region);
+                                       i = j;
+                                       break;
+                               } else {
+                                       if(event_slice->real_sz > event_slice_region->size) {
+                                               event_slice_region->size = event_slice->real_sz;
+                                       }
+                               }
+                       }
+
+                       if(EVENT_SLICE_COUNT <= j) {
+                               break;
+                       }
+               }
+       }
+
+       __cal_day_event_data_create_event_dispaly_data_list(p);
+}
+
+static char* __cal_day_event_data_get_event_text(calendar_record_h record)
+{
+       c_retv_if(!record, NULL);
+
+
+       char *title = _calendar_get_summary(record);
+
+       char *location = _calendar_get_location(record);
+
+       char *text = NULL;
+
+       if (CAL_STRLEN(location)) {
+               text = g_strdup_printf("%s, %s", title, location);
+               free(title);
+               free(location);
+       } else {
+               text = title;
+       }
+
+       return text;
+}
+
+static int __cal_day_event_data_sort_event(const void *d1, const void *d2)
+{
+       const cal_base_data_item  *t1 = d1;
+       const cal_base_data_item  *t2 = d2;
+
+       if (!t1)
+               return 1;
+       if (!t2)
+               return -1;
+
+       return t1->height < t2->height ? 1 : -1;
+}
+
+static void  __cal_day_event_data_insert_event_to_event_slice(cal_day_event_data_s* p, cal_day_event_data_event *event)
+{
+       c_ret_if(!p);
+       c_ret_if(!event);
+
+       cal_day_event_data_event_slice *event_slice;
+
+       event_slice = &p->event_slice_array[((cal_base_data_item *)event)->line_index];
+       c_ret_if(!event_slice);
+
+       event_slice->list = eina_list_sorted_insert(event_slice->list, __cal_day_event_data_sort_event, event);
+}
+
+static cal_base_data_item_h __cal_day_event_data_create_item(cal_base_data_h base_data, void  *data)
+{
+       c_retv_if(!data, NULL);
+       c_retv_if(!base_data, NULL);
+
+       cal_day_event_data_s *p = (cal_day_event_data_s *)base_data;
+       c_retv_if(!p, NULL);
+       c_retv_if(!p->ad, NULL);
+
+       calendar_record_h record = data;
+
+       cal_day_event_data_event *event;
+       calendar_time_s start_time = {0};
+       calendar_time_s end_time = {0};
+
+       time_t st, et;
+       cal_util_get_day_time_t(&p->ad->base_tm, &st, &et);
+
+       int cid = _calendar_get_record_index(record);
+
+       _calendar_get_start_time(record, &start_time);
+       _calendar_get_end_time(record, &end_time);
+
+       int hh = (start_time.time.utime - st)/CAL_SECONDS_FOR_THIRTY_MINUTES;
+       if (hh < 0)
+               hh = 0;
+
+       end_time.time.utime = ((end_time.time.utime - 1 - st)/CAL_SECONDS_FOR_THIRTY_MINUTES) + 1;
+       if (end_time.time.utime > CAL_HALF_HOURS_FOR_DAY)
+               end_time.time.utime = CAL_HALF_HOURS_FOR_DAY;
+
+       int sz = end_time.time.utime - hh;
+       if (sz <= 0)
+               sz = 1;
+
+       CAL_CALLOC(event, 1, cal_day_event_data_event);
+
+       _calendar_get_calendar_color(record, &((cal_base_data_item *)event)->color);
+       ((cal_base_data_item *)event)->text = __cal_day_event_data_get_event_text(record);
+       ((cal_base_data_item *)event)->line_index = hh;
+       ((cal_base_data_item *)event)->height = sz;
+       ((cal_base_data_item *)event)->width_devider = -1;
+       ((cal_base_data_item *)event)->column_index = -1;
+       event->record = record;
+       event->cid = cid;
+
+       return event;
+}
+
+static cal_day_event_data_event *__cal_day_event_data_find_event(cal_day_event_data_s* p, int cid)
+{
+       c_retv_if(!p, NULL);
+
+       int i;
+       cal_day_event_data_event_slice *even_slice;
+       cal_day_event_data_event *event;
+
+       Eina_List *l;
+
+       for (i = 0; i < EVENT_SLICE_COUNT; i++) {
+               even_slice = &p->event_slice_array[i];
+
+               EINA_LIST_FOREACH(even_slice->list, l, event)
+               {
+                       if (event && event->cid == cid)
+                               return event;
+               }
+       }
+
+       return NULL;
+}
+
+static void __cal_day_event_data_add_event(cal_day_event_data_s* p, calendar_record_h record)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->ad);
+       c_ret_if(!record);
+
+       cal_day_event_data_event *event;
+
+       int cid = _calendar_get_record_index(record);
+
+       event = __cal_day_event_data_find_event(p, cid);
+
+       if (event) {
+               event->record = record;
+               return;
+       }
+
+       event = __cal_day_event_data_create_item(p, record);
+       c_ret_if(!event);
+
+       __cal_day_event_data_insert_event_to_event_slice(p, event);
+}
+
+static void __cal_day_event_data_add_events(cal_day_event_data_s* p)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->event_list);
+       c_ret_if(!p->ad);
+
+       Eina_List *l;
+       calendar_record_h record = NULL;
+
+       EINA_LIST_FOREACH(p->event_list, l, record) {
+               if (!_calendar_is_allday_record(record))
+                       __cal_day_event_data_add_event(p, record);
+       }
+}
+
+static void __cal_day_event_data_load(cal_base_data_h day_event_data)
+{
+       c_ret_if(!day_event_data);
+       cal_day_event_data_s* p = (cal_day_event_data_s*)day_event_data;
+
+       c_ret_if(!p->ad);
+
+       __cal_day_event_data_delete_event_slice_regions(p);
+
+       __cal_day_event_data_delete_events(p);
+
+       if(p->event_list)
+               _calendar_free_record_list(&p->event_list);
+
+       struct tm tm_start = p->ad->base_tm;
+       tm_start.tm_hour = 0;
+       tm_start.tm_min = 0;
+       tm_start.tm_sec = 0;
+
+       struct tm tm_end = tm_start;
+       tm_end.tm_hour = 23;
+       tm_end.tm_min = 59;
+       tm_end.tm_sec = 59;
+
+       p->event_list = _calendar_get_all_instance_list(&tm_start, &tm_end);
+       c_ret_if(!p->event_list);
+
+       __cal_day_event_data_add_events(p);
+
+}
+
+static void __cal_day_event_data_delete(cal_base_data_h base_data)
+{
+       c_ret_if(!base_data);
+
+       cal_day_event_data_s* p = (cal_day_event_data_s*)base_data;
+
+       cal_base_data_destroy_data_list(p);
+
+       __cal_day_event_data_delete_event_slice_regions(p);
+
+       __cal_day_event_data_delete_events(p);
+
+       if(p->event_list)
+               _calendar_free_record_list(&p->event_list);
+
+       CAL_FREE(p);
+}
+
+calendar_record_h cal_day_event_data_get_event_record(cal_day_event_data_event_h event_data)
+{
+       c_retv_if(!event_data, NULL);
+
+       cal_day_event_data_event* event_data_s = (cal_day_event_data_event*)event_data;
+
+       return event_data_s->record;
+}
+
+static void __cal_day_event_data_remove_event_form_event_slice(cal_day_event_data_s* p, cal_day_event_data_event* event)
+{
+       c_ret_if(!p);
+       c_ret_if(!event);
+
+       cal_day_event_data_event_slice *event_slice;
+
+       event_slice = &p->event_slice_array[((cal_base_data_item *)event)->line_index];
+
+       event_slice->list = eina_list_remove(event_slice->list, event);
+}
+
+void cal_day_event_data_sort(cal_day_event_data_h day_event_data, cal_day_event_data_event_h event_data_h)
+{
+       c_ret_if(!day_event_data);
+       c_ret_if(!event_data_h);
+
+       cal_day_event_data_s* p = (cal_day_event_data_s*)day_event_data;
+       cal_day_event_data_event* event_data = (cal_day_event_data_event*)event_data_h;
+
+       cal_day_event_data_event_slice *event_slice;
+
+       event_slice = &p->event_slice_array[((cal_base_data_item *)event_data)->line_index];
+       c_ret_if(!event_slice->list);
+
+       event_slice->list = eina_list_sort(event_slice->list, 0, __cal_day_event_data_sort_event);
+}
+
+void cal_day_event_data_update_event(cal_day_event_data_h day_event_data, cal_day_event_data_event_h event_data_h, int line_index, int height)
+{
+       c_ret_if(!day_event_data);
+       c_ret_if(!event_data_h);
+
+       cal_day_event_data_s* p = (cal_day_event_data_s*)day_event_data;
+
+       cal_day_event_data_event *event_data = (cal_day_event_data_event*)event_data_h;
+       c_ret_if(!event_data->record);
+
+       time_t time_diff = (line_index - ((cal_base_data_item *)event_data)->line_index)*(30*60);
+
+       time_t time_diff_end = height*(30*60);
+       calendar_record_h record = NULL;
+
+       int cid = _calendar_get_record_index(event_data->record);
+
+       if (_calendar_get_record_type(event_data->record) == _CALENDAR_RECORD_TYPE_EVENT) {
+               record = event_data->record;
+       } else {
+               record = _calendar_get_record_with_index(cid);
+       }
+
+       calendar_time_s start_time = {0};
+       calendar_time_s end_time = {0};
+
+       _calendar_get_start_time(record, &start_time);
+       _calendar_get_end_time(record, &end_time);
+
+       start_time.time.utime += time_diff;
+       _calendar_set_start_time(record, &start_time);
+
+       start_time.time.utime += time_diff_end;
+       _calendar_set_end_time(record, &start_time);
+
+       cal_main_remove_db_changed_callback(p->ad);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_update_record(record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_update_record() is faild(%x)", error);
+
+       if (event_data->record != record) {
+               error = calendar_record_destroy(record, true);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is faild(%x)", error);
+       }
+
+       cal_main_add_db_changed_callback(p->ad);
+
+       __cal_day_event_data_remove_event_form_event_slice(day_event_data, event_data_h);
+       cal_base_data_set_item_height(event_data_h, height);
+       cal_base_data_set_item_line_index(event_data_h, line_index);
+       __cal_day_event_data_insert_event_to_event_slice(p, event_data);
+}
diff --git a/src/day-event-data.h b/src/day-event-data.h
new file mode 100755 (executable)
index 0000000..2cd261e
--- /dev/null
@@ -0,0 +1,37 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#ifndef __CALENDAR_DAY_EVENT_DATA_H__\r
+#define __CALENDAR_DAY_EVENT_DATA_H__\r
+#include "cld.h"\r
+#include "base-data.h"\r
+\r
+#define EVEN_SLICE_MAX_EVENT_COUNT 8\r
+\r
+typedef void* cal_day_event_data_h;\r
+typedef void* cal_day_event_data_event_h;\r
+typedef Eina_Bool(* cal_day_event_data_foreach_query_event_cb)(cal_day_event_data_event_h event_data, void *user_data);\r
+\r
+cal_day_event_data_h cal_day_event_data_create(struct appdata *ad);\r
+\r
+calendar_record_h cal_day_event_data_get_event_record(cal_day_event_data_event_h event_data);\r
+\r
+void cal_day_event_data_sort(cal_day_event_data_h day_event_data, cal_day_event_data_event_h event_data_h);\r
+\r
+void cal_day_event_data_update_event(cal_day_event_data_h day_event_data, cal_day_event_data_event_h event_data_h, int line_index, int height);\r
+\r
+#endif\r
diff --git a/src/day-expandable-list.c b/src/day-expandable-list.c
new file mode 100755 (executable)
index 0000000..99b5446
--- /dev/null
@@ -0,0 +1,392 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#include "day-expandable-list.h"\r
+#include "view.h"\r
+#include "detail-view.h"\r
+\r
+typedef struct {\r
+       struct appdata *ad;\r
+       Evas_Object *exp_genlist;\r
+       Evas_Object *parent;\r
+\r
+       Eina_List *event_list;\r
+       Eina_List *task_list;\r
+\r
+} cal_day_expandable_list_data;\r
+\r
+static char* __cal_day_exp_list_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);\r
+static Evas_Object* __cal_day_exp_list_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);\r
+static void __cal_day_delete_exp_list_genlist_item(void *data, Evas_Object *obj);\r
+
+static Elm_Genlist_Item_Class itc_1text_1icon_allday = {\r
+       .item_style = "1text.1icon.9.allday",\r
+       .func.text_get = __cal_day_exp_list_get_genlist_item_label,\r
+       .func.content_get = __cal_day_exp_list_get_genlist_item_icon,\r
+       .func.del  = __cal_day_delete_exp_list_genlist_item,\r
+};\r
+\r
+static Elm_Genlist_Item_Class itc_1text_1icon_task = {
+       .item_style = "1text.1icon.9.task",
+       .func.text_get = __cal_day_exp_list_get_genlist_item_label,\r
+       .func.content_get = __cal_day_exp_list_get_genlist_item_icon,\r
+       .func.del  = __cal_day_delete_exp_list_genlist_item,\r
+};\r
+\r
+typedef struct {
+       Elm_Object_Item *it;
+       calendar_record_h record;
+}cal_day_exp_list_genlist_item_data;\r
+\r
+static _calendar_book_color calendar_color = {0};\r
+\r
+static void __cal_day_delete_exp_list_genlist_item(void *data, Evas_Object *obj)\r
+{
+       c_retm_if(!data, "data is null.");
+       cal_day_exp_list_genlist_item_data *item_data = data;\r
+
+       free(item_data);
+       item_data = NULL;
+}
+\r
+static void __cal_day_genlist_item_check_changed_callback(void *data, Evas_Object *obj, void *event_info)\r
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_day_exp_list_genlist_item_data *item_data = data;\r
+
+       Evas_Object *genlist = evas_object_data_get(obj, "genlist");
+       c_ret_if(!genlist);
+
+       calendar_record_h record= item_data->record;
+       c_ret_if(!record);
+
+       Eina_Bool check_status = elm_check_state_get(obj);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       calendar_record_h todo_original_record = NULL;
+       int todo_id = _calendar_get_record_index(record);
+       error = calendar_db_get_record(_calendar_todo._uri, todo_id, &todo_original_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record(%d) is failed(%x)", todo_id, error);
+
+       if (check_status) {
+               error = calendar_record_set_int(todo_original_record, _calendar_todo.todo_status, CALENDAR_TODO_STATUS_COMPLETED);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+               error = calendar_record_set_int(record, _calendar_todo_calendar_book.todo_status, CALENDAR_TODO_STATUS_COMPLETED);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+       } else {
+               error = calendar_record_set_int(todo_original_record, _calendar_todo.todo_status, CALENDAR_TODO_STATUS_IN_PROCESS);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+               error = calendar_record_set_int(record, _calendar_todo_calendar_book.todo_status, CALENDAR_TODO_STATUS_IN_PROCESS);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+       }
+
+       cal_day_expandable_list_data *p = evas_object_data_get(genlist, "priv");\r
+       c_ret_if(!p);
+       c_ret_if(!p->ad);
+
+       cal_main_remove_db_changed_callback(p->ad);
+
+       error = calendar_db_update_record(todo_original_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_update_record() is failed(%x)", error);
+
+       cal_main_add_db_changed_callback(p->ad);
+
+       elm_genlist_item_update(item_data->it);
+
+}
+\r
+static Evas_Object* __cal_day_exp_list_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)\r
+{
+       c_retv_if(!data, NULL);
+
+       cal_day_exp_list_genlist_item_data *item_data = data;\r
+       calendar_record_h record = item_data->record;
+       c_retv_if(!record, NULL);
+
+       Evas_Object *icon = NULL;\r
+\r
+       if (!CAL_STRCMP(part, "elm.swallow.colorbar")) {\r
+\r
+               _calendar_get_calendar_color(record, &calendar_color);\r
+\r
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));\r
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);\r
+\r
+               return icon;\r
+\r
+       } else if (!CAL_STRCMP(part, "elm.icon")) {
+               if (!_calendar_is_task_record(record))
+                       return NULL;
+
+               Evas_Object *check = elm_check_add(obj);
+               c_retvm_if(!check, NULL, "elm_check_add returned null");
+
+               Eina_Bool check_status = EINA_FALSE;
+
+               calendar_error_e error = CALENDAR_ERROR_NONE;
+
+               calendar_todo_status_e todo_status = CALENDAR_TODO_STATUS_NONE;
+
+               error = calendar_record_get_int(record, _calendar_todo_calendar_book.todo_status, (int *)&todo_status);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (CALENDAR_TODO_STATUS_COMPLETED == todo_status) {
+                       check_status = EINA_TRUE;
+               } else if (CALENDAR_TODO_STATUS_IN_PROCESS == todo_status) {
+                       check_status = EINA_FALSE;
+               }
+
+               elm_check_state_pointer_set(check, &check_status);
+               evas_object_data_set(check, "genlist", obj);
+               evas_object_smart_callback_add(check, "changed", __cal_day_genlist_item_check_changed_callback, item_data);
+               evas_object_propagate_events_set(check, EINA_FALSE);
+
+               return check;
+       }
+
+       return NULL;
+}\r
+\r
+static char* __cal_day_exp_list_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)\r
+{
+       c_retv_if(!data, NULL);
+
+       cal_day_exp_list_genlist_item_data *item_data = data;\r
+       calendar_record_h record = item_data->record;
+       c_retv_if(!record, NULL);
+
+       char *str = NULL;
+
+       if (!CAL_STRCMP(part, "elm.textblock")) {
+               str = _calendar_get_summary(record);
+
+               char *text = calloc(1, CAL_STRLEN(str) + 256);
+               if(!text)       {\r
+                       free(str);\r
+                       c_retv_if(!text, NULL);\r
+               }
+
+               if (_calendar_is_task_record(record)) {
+                       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+                       calendar_todo_status_e todo_status = CALENDAR_TODO_STATUS_NONE;
+
+                       error = calendar_record_get_int(record, _calendar_todo_calendar_book.todo_status, (int *)&todo_status);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+                       if (CALENDAR_TODO_STATUS_COMPLETED == todo_status) {
+                               sprintf(text, "<strikethrough=on strikethrough_color=#2A89C2>%s</strikethrough>",str);
+                       } else {
+                               sprintf(text, "%s",str);
+                       }
+               } else {
+                       sprintf(text, "%s", str);
+               }
+
+               free(str);
+
+               return text;
+       }
+
+       return NULL;
+}
+\r
+\r
+static void __cal_day_exp_list_delete_layout_callback(void *data, Evas *e, Evas_Object *obj, void *ei)\r
+{
+       CAL_FN_START;
+
+       CAL_ASSERT(data);
+
+       cal_day_expandable_list_data *p = data;\r
+
+       _calendar_free_record_list(&p->event_list);
+       _calendar_free_record_list(&p->task_list);
+
+       free(p);
+}
+\r
+Evas_Object* cal_day_exp_list_create(Evas_Object *parent, char *content_name, struct appdata *ad)\r
+{\r
+       c_retv_if(!parent, NULL);\r
+       c_retv_if(!content_name, NULL);\r
+       c_retv_if(!ad, NULL);\r
+\r
+       cal_day_expandable_list_data *p;\r
+\r
+       CAL_CALLOC(p, 1, cal_day_expandable_list_data);\r
+\r
+       Evas_Object *genlist = elm_genlist_add(parent);\r
+       if(!genlist){\r
+               free(p);\r
+               c_retv_if(!genlist, NULL);\r
+       }\r
+\r
+       elm_object_part_content_set(parent, "list/sw", genlist);\r
+\r
+       evas_object_event_callback_add(genlist, EVAS_CALLBACK_DEL, __cal_day_exp_list_delete_layout_callback, p);\r
+\r
+       p->exp_genlist = genlist;\r
+       p->ad = ad;\r
+       p->parent = parent;\r
+\r
+       evas_object_data_set(genlist, "priv", p);\r
+\r
+       return genlist;\r
+}\r
+\r
+static Eina_Bool __cal_day_exp_list_ug_callback(void *data)\r
+{
+       c_retv_if(!data, EINA_FALSE);
+
+       struct appdata *ad = data;\r
+       c_retv_if(!ad->main, EINA_FALSE);\r
+
+       ad->ug = NULL;
+
+       Evas_Object *content = elm_object_part_content_get(ad->main, "cont");\r
+       c_retv_if(!content, EINA_FALSE);\r
+\r
+       cal_day_change_content_display_status(content);\r
+\r
+       return EINA_TRUE;\r
+}\r
+\r
+static void __cal_day_exp_list_genlist_item_select_callback(void *data, Evas_Object *obj, void *ei)\r
+{
+       c_ret_if(!data);
+
+       calendar_record_h record = data;
+
+       Elm_Object_Item *it = elm_genlist_selected_item_get(obj);
+       if (it)
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       cal_day_expandable_list_data *p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_ret_if(!p);
+
+       p->ad->cid = _calendar_get_record_index(record);
+
+       cal_detail_create_view(p->ad, record, __cal_day_exp_list_ug_callback, p->ad);\r
+
+       cal_day_change_content_display_status(p->parent);\r
+}\r
+\r
+static void __cal_day_exp_list_update_expandable_list_title(Evas_Object *ly)\r
+{
+       c_ret_if(!ly);
+
+       char title[32] = {0};
+
+       snprintf(title, sizeof(title), "%s %s & %s", C_("IDS_COM_BODY_ALL_DAY"), "event", C_("IDS_CLD_BODY_TASKS"));
+
+       elm_object_part_text_set(ly, "list/title/text", title);
+}
+\r
+static void __cal_day_exp_list_get_events(cal_day_expandable_list_data *p)\r
+{
+       struct tm tm_start = p->ad->base_tm;
+       tm_start.tm_hour = 0;
+       tm_start.tm_min = 0;
+       tm_start.tm_sec = 0;
+
+       struct tm tm_end = tm_start;
+       tm_end.tm_hour = 23;
+       tm_end.tm_min = 59;
+       tm_end.tm_sec = 59;
+
+       p->event_list = _calendar_get_allday_instance_list(&tm_start, &tm_end);
+}
+
+static void __cal_day_exp_list_get_tasks(cal_day_expandable_list_data *p)\r
+{
+       c_ret_if(!p);
+
+       struct tm tm_start = p->ad->base_tm;
+       tm_start.tm_hour = 0;
+       tm_start.tm_min = 0;
+       tm_start.tm_sec = 0;
+
+       struct tm tm_end = tm_start;
+       tm_end.tm_hour = 23;
+       tm_end.tm_min = 59;
+       tm_end.tm_sec = 59;
+
+       p->task_list = _calendar_get_due_date_task_list(&tm_start, &tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);
+}\r
+\r
+void cal_day_exp_list_update(Evas_Object *ly)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!ly);
+
+       cal_day_expandable_list_data *p = CAL_UTIL_GET_PRIV_DATA (ly);\r
+       c_ret_if(!p);
+       c_ret_if(!p->exp_genlist);\r
+
+       Eina_List *l;
+
+       elm_genlist_clear(p->exp_genlist);\r
+       _calendar_free_record_list(&p->event_list);
+       _calendar_free_record_list(&p->task_list);
+
+       __cal_day_exp_list_get_events(p);\r
+
+       calendar_record_h record = NULL;
+       if (p->event_list) {
+               EINA_LIST_FOREACH(p->event_list, l, record) {
+                       if (record ) {
+                               cal_day_exp_list_genlist_item_data *item_data = calloc(1, sizeof(cal_day_exp_list_genlist_item_data));\r
+                               c_ret_if(!item_data);
+
+                               item_data->record = record;
+                               item_data->it = elm_genlist_item_append(p->exp_genlist, &itc_1text_1icon_allday, item_data, NULL,\r
+                                                               ELM_GENLIST_ITEM_NONE, __cal_day_exp_list_genlist_item_select_callback, record);\r
+                       }
+               }
+       }
+
+       __cal_day_exp_list_get_tasks(p);\r
+
+       if (p->task_list) {
+               EINA_LIST_FOREACH(p->task_list, l, record) {
+                       if (record ) {
+                               cal_day_exp_list_genlist_item_data *item_data = calloc(1, sizeof(cal_day_exp_list_genlist_item_data));\r
+                               c_ret_if(!item_data);
+
+                               item_data->record = record;
+                               item_data->it = elm_genlist_item_append(p->exp_genlist, &itc_1text_1icon_task, item_data, NULL,\r
+                                                               ELM_GENLIST_ITEM_NONE, __cal_day_exp_list_genlist_item_select_callback, record);\r
+                       }
+               }
+       }
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->parent), "list,hide");\r
+
+       if (elm_genlist_items_count(p->exp_genlist))\r
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->parent), "list,unexpanded");\r
+\r
+       __cal_day_exp_list_update_expandable_list_title(p->parent);\r
+}
+\r
diff --git a/src/day-expandable-list.h b/src/day-expandable-list.h
new file mode 100755 (executable)
index 0000000..5b80866
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */\r
+\r
+#ifndef __CALENDAR_DAY_EXPANDABLE_LIST_H__\r
+#define __CALENDAR_DAY_EXPANDABLE_LIST_H__\r
+#include "cld.h"\r
+\r
+Evas_Object* cal_day_exp_list_create(Evas_Object *parent, char *content_name, struct appdata *ad);\r
+void cal_day_exp_list_update(Evas_Object *ly);\r
+\r
+#endif
\ No newline at end of file
diff --git a/src/day-time-block.c b/src/day-time-block.c
new file mode 100755 (executable)
index 0000000..731e7b1
--- /dev/null
@@ -0,0 +1,508 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+#include "day-time-block.h"
+
+static const char *_name = "main/day/time/timeblock";
+
+typedef struct cal_day_time_block{
+       cal_base_time_block_s base_time_block;
+
+       struct appdata *ad;
+
+       Evas_Coord contract_height;
+       Evas_Coord expand_height;
+       Evas_Coord h_contract;
+
+       void (*event_cb)(void *data, int event_type, void *event_info);
+       void *event_cb_data;
+
+       int current_hour;
+} cal_day_time_block_s;
+
+static cal_base_time_block_h __cal_day_time_block_new(void *data);
+
+cal_base_time_block_operations day_time_block_operations = {
+       __cal_day_time_block_new,
+       NULL,
+       NULL,
+};
+
+static cal_base_time_block_h __cal_day_time_block_new(void *data)
+{
+       c_retv_if(!data, NULL);
+
+       cal_day_time_block_s *p;
+
+       CAL_CALLOC(p, 1, cal_day_time_block_s);
+
+       double scale = elm_config_scale_get();
+       Evas_Coord width;
+       Evas_Coord height;
+
+       p->ad = (struct appdata *)data;
+       ((cal_base_time_block_s *)p)->name = _name;
+       p->expand_height = TIME_BLOCK_EXPAND_HEIGHT * scale;
+       p->contract_height = TIME_BLOCK_CONTENT_HEIGHT * scale;
+       p->h_contract = TIME_BLOCK_CONTRACT_HEIGHT * scale;
+
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &width, &height);
+
+       if (!p->ad->is_landscape_mode) {
+               ((cal_base_time_block_s *)p)->width = width;
+               ((cal_base_time_block_s *)p)->height = height;
+       } else {
+               ((cal_base_time_block_s *)p)->width = height;
+               ((cal_base_time_block_s *)p)->height = width;
+       }
+
+       return p;
+}
+
+cal_base_time_block_h cal_day_time_block_create(void *data)
+{
+       return cal_base_time_block_create(&day_time_block_operations, data);
+}
+
+Eina_Bool cal_day_time_block_hint_clicked(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_down_coord)
+{
+       c_retv_if(!day_time_block, EINA_FALSE);
+       c_retv_if(!mouse_down_coord, EINA_FALSE);
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+
+       Eina_Bool is_event_clicked = EINA_FALSE;
+       calendar_record_h record = NULL;
+       is_event_clicked = cal_day_event_block_hint_clicked(((cal_base_time_block_s *)p)->base_block, mouse_down_coord, &record);
+
+       if (!is_event_clicked) {
+               c_retv_if(p->ad->is_contracted, EINA_FALSE);
+
+               int time_slice_index = cal_base_time_block_get_time_block_slice_index_by_coord_point(p, mouse_down_coord);
+               c_retv_if(-1 == time_slice_index, EINA_FALSE);
+
+               if (p->event_cb) {
+                       p->event_cb(p->event_cb_data, TIME_BLOCK_SLICE_CLICEKD, (void *)time_slice_index);
+               }
+       } else {
+               if (!record) {
+                       p->event_cb(p->event_cb_data, EVEN_BLOCK_MORE_EVENT_CLICEKD, (void *)record);
+               } else {
+                       p->event_cb(p->event_cb_data, EVEN_BLOCK_EVENT_CLICEKD, (void *)record);
+               }
+
+       }
+
+       return is_event_clicked;
+}
+
+void cal_day_time_block_set_callback(cal_day_time_block_h day_time_block,
+               void (*event_cb)(void *data, int event_type, void *event_info),
+               void *data)
+{
+       c_ret_if(!day_time_block);
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+
+       p->event_cb = event_cb;
+       p->event_cb_data = data;
+}
+
+void cal_day_time_block_unset_callback(cal_day_time_block_h day_time_block)
+{
+       c_ret_if(!day_time_block);
+
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+       p->event_cb = NULL;
+       p->event_cb_data = NULL;
+}
+
+Eina_Bool cal_day_time_block_hint_longpress(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_down_coord)
+{
+       c_retv_if(!day_time_block, EINA_FALSE);
+       c_retv_if(!mouse_down_coord, EINA_FALSE);
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+       c_retv_if(!p->ad, EINA_FALSE);
+       c_retv_if(p->ad->is_contracted, EINA_FALSE);
+
+       Eina_Bool is_event_longpressed = EINA_FALSE;
+       is_event_longpressed = cal_day_event_block_hint_longpress(((cal_base_time_block_s *)p)->base_block, mouse_down_coord);
+       if (!is_event_longpressed) {
+               int time_slice_index = cal_base_time_block_get_time_block_slice_index_by_coord_point(p, mouse_down_coord);
+               c_retv_if(-1 == time_slice_index, EINA_FALSE);
+
+               if (p->event_cb) {
+                       p->event_cb(p->event_cb_data, TIME_BLOCK_SLICE_LONGPRESS, (void *)time_slice_index);
+               }
+       } else {
+                       cal_day_event_block_longpress_callback(((cal_base_time_block_s *)p)->base_block);
+                       p->event_cb(p->event_cb_data, EVEN_BLOCK_EVENT_LONGPRESS, NULL);
+
+       }
+
+       return is_event_longpressed;
+}
+
+Eina_Bool cal_day_time_block_hint_quit_event_moveable_state(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_down_coord)
+{
+       c_retv_if(!day_time_block, EINA_FALSE);
+       c_retv_if(!mouse_down_coord, EINA_FALSE);
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+
+       return cal_day_event_block_hint_quit_event_moveable_state(((cal_base_time_block_s *)p)->base_block, mouse_down_coord);
+}
+
+static void __cal_day_time_block_moving_time_block_callback(void *user_data, Evas_Coord time_block_y)
+{
+       c_ret_if(!user_data);
+
+       cal_day_time_block_h day_time_block = user_data;
+
+       Evas_Coord_Rectangle  timeblock_r;
+
+       cal_base_time_block_get_geometry(day_time_block, &timeblock_r);
+
+       cal_base_time_block_move(day_time_block, timeblock_r.x, time_block_y);
+}
+
+void cal_day_time_block_moving_moveable_event(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_move_coord, Evas_Coord_Point *mouse_down_coord)
+{
+       c_ret_if(!day_time_block);
+       c_ret_if(!mouse_move_coord);
+       c_ret_if(!mouse_down_coord);
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+
+       Evas_Coord_Rectangle timeblock_r;
+
+       cal_base_time_block_get_geometry(day_time_block, &timeblock_r);
+
+       cal_day_event_block_moving_moveable_event(((cal_base_time_block_s *)p)->base_block, mouse_move_coord, mouse_down_coord, __cal_day_time_block_moving_time_block_callback, day_time_block, timeblock_r.y, timeblock_r.h);
+}
+
+static int __cal_day_time_block_figure_event_block_border_line_index(cal_day_time_block_s *p, Evas_Object *event_obj, Eina_Bool is_bottom_border)
+{
+       c_retv_if(!event_obj, -1);
+       c_retv_if(!p, -1);
+
+       Evas_Object *obj_base = NULL;
+       int line_index = 0;
+       Evas_Coord_Rectangle r;
+       Evas_Coord event_y, event_block_slice_y;
+
+       cal_util_get_geometry(&r, event_obj);
+       if (!is_bottom_border) {
+               event_y = r.y;
+       } else {
+               event_y = r.y + r.h;
+       }
+
+       for (line_index = 0; line_index < EVENT_SLICE_COUNT; line_index++) {
+
+               obj_base = ((cal_base_time_block_s *)p)->event_block_slice_object_array[line_index];
+               c_retv_if(!obj_base, -1);
+
+               cal_util_get_geometry(&r, obj_base);
+
+               if (event_y <= r.y) {
+
+                       event_block_slice_y = r.y;
+                       if (line_index != 0) {
+                               obj_base = ((cal_base_time_block_s *)p)->event_block_slice_object_array[line_index-1];
+                               c_retv_if(!obj_base, -1);
+
+                               cal_util_get_geometry(&r, obj_base);
+
+                               if (event_y - r.y < event_block_slice_y - event_y)
+                                       return line_index-1;
+                       }
+
+                       return line_index;
+               }
+       }
+
+       return line_index;
+}
+
+void cal_day_time_block_disable_moving_moveable_event(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_move_coord, Evas_Coord_Point *mouse_down_coord)
+{
+       c_ret_if(!day_time_block);
+       c_ret_if(!mouse_move_coord);
+       c_ret_if(!mouse_down_coord);
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+       Evas_Coord_Rectangle scroller_r, timeblock_r;
+
+       Evas_Object *moveable_event = NULL;
+       Evas_Object *moveable_event_border = NULL;
+
+
+       cal_day_event_block_get_moveable_event_objects(((cal_base_time_block_s *)p)->base_block, &moveable_event, &moveable_event_border);
+       c_ret_if(!moveable_event);
+       c_ret_if(!moveable_event_border);
+
+       int new_ebs_idx = __cal_day_time_block_figure_event_block_border_line_index(p, moveable_event, EINA_FALSE);
+       int end_ebs_idx = __cal_day_time_block_figure_event_block_border_line_index(p, moveable_event, EINA_TRUE);
+       c_ret_if(new_ebs_idx < 0);
+
+       int ev_sz = (0 == end_ebs_idx - new_ebs_idx) ? 1: (end_ebs_idx - new_ebs_idx);
+
+       cal_day_event_block_update_moveable_event(((cal_base_time_block_s *)p)->base_block, new_ebs_idx, ev_sz);
+
+       cal_base_time_block_move_event_blocks(p);
+
+       cal_util_get_geometry(&scroller_r, ((cal_base_time_block_s *)p)->parent);
+       cal_base_time_block_get_geometry(day_time_block, &timeblock_r);
+       elm_scroller_region_show(((cal_base_time_block_s *)p)->parent, 0, scroller_r.y - timeblock_r.y, 0, scroller_r.h);
+
+       cal_base_time_block_figure_time_block_slice_block_count(p);
+}
+
+static int __cal_day_time_block_find_time_block_slice_index(cal_day_time_block_s *p, Evas_Coord y)
+{
+       c_retv_if(!p, -1);
+
+       int i;
+       cal_base_time_block_slice *time_block_slice = NULL;
+
+       for (i = 1; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &((cal_base_time_block_s *)p)->time_block_slice_array[i];
+
+               if (y < time_block_slice->y)
+                       return i - 1;
+       }
+
+       return i - 1;
+}
+
+static inline void __cal_day_time_block_set_contract_size(cal_day_time_block_s *p, Evas_Coord h)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->ad);
+
+       cal_base_time_block_slice *time_block_slice = NULL;
+
+       int i = 0;
+       int j = 0;
+       int k = 0;
+
+       int hour  = p->current_hour;
+
+       for(k = 0; k < TIME_BLOCK_SLICE_COUNT; k++) {
+               time_block_slice = &((cal_base_time_block_s *)p)->time_block_slice_array[k];
+               time_block_slice->is_contracted = EINA_FALSE;
+       }
+
+       while(i < TIME_BLOCK_SLICE_COUNT) {
+               time_block_slice = &((cal_base_time_block_s *)p)->time_block_slice_array[i];
+               if (time_block_slice->slice_block_count== 0) {
+                       if(hour == i) {
+                               i += 1;
+                               time_block_slice->height = ((cal_base_time_block_s *)p)->normal_height;
+                               continue;
+                       } else {
+                               time_block_slice->is_contracted = EINA_TRUE;
+                               time_block_slice->height = p->h_contract;
+                       }
+
+                       for(j = i+1; j < TIME_BLOCK_SLICE_COUNT; j++) {
+                               time_block_slice = &((cal_base_time_block_s *)p)->time_block_slice_array[j];
+                               if (time_block_slice->slice_block_count == 0) {
+                                       if(hour == j) {
+                                               i = j;
+                                               break;
+                                       } else {
+                                               time_block_slice->height = h;
+                                       }
+                               } else {
+                                       i = j;
+                                       break;
+                               }
+                       }
+
+                       i = j;
+
+               } else {
+                       i++;
+               }
+       }
+
+       p->ad->h_cur = p->h_contract;
+
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(((cal_base_time_block_s *)p)->time_block_slice_array[0].ly), "hide,AM", "prog");
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(((cal_base_time_block_s *)p)->time_block_slice_array[12].ly), "hide,PM", "prog");
+}
+
+static inline void __cal_day_time_block_set_normal_size(cal_day_time_block_s *p, Evas_Coord h)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->ad);
+
+       int i;
+       struct appdata *ad = p->ad;
+
+       cal_base_time_block_slice *time_block_slice = NULL;
+
+       if (ad->is_magnifying) {
+               if (p->expand_height < h)
+                       h = p->expand_height;
+
+               if (h < ((cal_base_time_block_s *)p)->normal_height)
+                       h = ((cal_base_time_block_s *)p)->normal_height;
+       } else {
+
+               if (!ad->is_contracted) {
+                       if (p->expand_height <= h)
+                               h = p->expand_height;
+
+                       if (h < p->contract_height)
+                               h = p->contract_height;
+               } else {
+                       if (((cal_base_time_block_s *)p)->normal_height <= h)
+                               h = ((cal_base_time_block_s *)p)->normal_height;
+
+                       if (h < p->contract_height)
+                               h = p->contract_height;
+               }
+       }
+
+       for (i = 0; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &((cal_base_time_block_s *)p)->time_block_slice_array[i];
+               time_block_slice->is_contracted = EINA_FALSE;
+
+               if (time_block_slice->slice_block_count == 0)
+                       time_block_slice->height = h;
+               else {
+                       if (((cal_base_time_block_s *)p)->normal_height < h) {
+                               time_block_slice->height = h;
+                       } else {
+                               time_block_slice->height = ((cal_base_time_block_s *)p)->normal_height;
+                       }
+               }
+       }
+
+       p->ad->h_cur = h;
+
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(((cal_base_time_block_s *)p)->time_block_slice_array[0].ly), "show,AM", "prog");
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(((cal_base_time_block_s *)p)->time_block_slice_array[12].ly), "show,PM", "prog");
+}
+
+static inline void __cal_day_time_block_set_time_block_slice_height(cal_day_time_block_s *p, Evas_Coord h, Eina_Bool is_set_contract)
+{
+       c_ret_if(!p);
+
+       if (is_set_contract) {
+               __cal_day_time_block_set_contract_size(p, h);
+       } else {
+               __cal_day_time_block_set_normal_size(p, h);;
+       }
+}
+
+static void __cal_day_time_block_rearrange_time_block_after(cal_day_time_block_s *p, int idx)
+{
+       c_ret_if(!p);
+
+       int i;
+       cal_base_time_block_slice *time_block_slice_prev;
+       cal_base_time_block_slice *time_block_slice;
+
+       for (i = idx + 1; i < TIME_BLOCK_SLICE_COUNT; i++) {
+               time_block_slice = &((cal_base_time_block_s *)p)->time_block_slice_array[i];
+               time_block_slice_prev = &((cal_base_time_block_s *)p)->time_block_slice_array[i - 1];
+
+               time_block_slice->y = time_block_slice_prev->y + time_block_slice_prev->height;
+               evas_object_move(time_block_slice->ly, time_block_slice->x, time_block_slice->y);
+       }
+}
+
+static inline void __cal_day_time_block_rearrange_time_block_slice(cal_day_time_block_s *p, int idx)
+{
+       c_ret_if(!p);
+
+       cal_base_time_block_slice *time_block_slice;
+       cal_base_time_block_slice *time_block_slice_next;
+       int i;
+
+       __cal_day_time_block_rearrange_time_block_after(p, idx);
+
+       for (i = idx - 1; i >= 0; i--) {
+               time_block_slice = &((cal_base_time_block_s *)p)->time_block_slice_array[i];
+               time_block_slice_next = &((cal_base_time_block_s *)p)->time_block_slice_array[i + 1];
+
+               time_block_slice->y = time_block_slice_next->y - time_block_slice->height;
+               evas_object_move(time_block_slice->ly, time_block_slice->x, time_block_slice->y);
+       }
+
+       ((cal_base_time_block_s *)p)->y = ((cal_base_time_block_s *)p)->time_block_slice_array[0].y;
+}
+
+void cal_day_time_block_resize(cal_day_time_block_h day_time_block, Evas_Coord y, Evas_Coord h, Eina_Bool is_set_contract)
+{
+       c_ret_if(!day_time_block);
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+
+       int time_block_slice_index;
+
+       time_block_slice_index = __cal_day_time_block_find_time_block_slice_index(p, y);
+
+       __cal_day_time_block_set_time_block_slice_height(p, h, is_set_contract);
+
+       cal_base_time_block_resize_time_block_slices(p);
+
+       __cal_day_time_block_rearrange_time_block_slice(p, time_block_slice_index);
+
+       cal_base_time_block_move_event_blocks(p);
+}
+
+Evas_Coord cal_day_time_block_get_max(cal_day_time_block_h day_time_block)
+{
+       c_retv_if(!day_time_block, 0);
+
+       cal_base_time_block_s *p = (cal_base_time_block_s *)day_time_block;
+
+       return p->normal_height;
+}
+
+Evas_Coord cal_day_time_block_get_min()
+{
+       double scale = elm_config_scale_get();
+       return TIME_BLOCK_MIN_HEIGHT * scale;
+}
+
+
+Evas_Coord cal_day_time_block_get_expand_max(cal_day_time_block_h day_time_block)
+{
+       c_retv_if(!day_time_block, 0);
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+
+       return p->expand_height;
+}
+
+Evas_Coord cal_day_time_block_get_current(cal_day_time_block_h day_time_block)
+{
+       c_retv_if(!day_time_block, 0);
+
+       cal_day_time_block_s *p = (cal_day_time_block_s *)day_time_block;
+
+
+       return p->ad->h_cur;
+}
+
diff --git a/src/day-time-block.h b/src/day-time-block.h
new file mode 100755 (executable)
index 0000000..69abca2
--- /dev/null
@@ -0,0 +1,51 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#ifndef __CALENDAR_DAY_TIME_BLOCK_H__\r
+#define __CALENDAR_DAY_TIME_BLOCK_H__\r
+#include <Ecore_X.h>\r
+\r
+#include "cld.h"\r
+#include "base-time-block.h"\r
+#include "day-event-block.h"\r
+\r
+#define TIME_BLOCK_SLICE_CLICEKD EVEN_BLOCK_EVENT_LONGPRESS+1\r
+#define TIME_BLOCK_SLICE_LONGPRESS TIME_BLOCK_SLICE_CLICEKD+1\r
+\r
+typedef void *cal_day_time_block_h;\r
+typedef void *cal_day_time_block_slice_h;\r
+\r
+cal_base_time_block_h cal_day_time_block_create(void *data);\r
+void cal_day_time_block_set_callback(cal_day_time_block_h day_time_block,\r
+               void (*event_cb)(void *data, int event_type, void *event_info),\r
+               void *data);\r
+\r
+void cal_day_time_block_unset_callback(cal_day_time_block_h day_time_block);\r
+Eina_Bool cal_day_time_block_hint_longpress(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_down_coord);\r
+Eina_Bool cal_day_time_block_hint_clicked(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_down_coord);\r
+Eina_Bool cal_day_time_block_hint_quit_event_moveable_state(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_down_coord);\r
+void cal_day_time_block_moving_moveable_event(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_move_coord, Evas_Coord_Point *mouse_down_coord);\r
+void cal_day_time_block_disable_moving_moveable_event(cal_day_time_block_h day_time_block, Evas_Coord_Point *mouse_move_coord, Evas_Coord_Point *mouse_down_coord);\r
+\r
+void cal_day_time_block_resize(cal_day_time_block_h day_time_block, Evas_Coord y, Evas_Coord h, Eina_Bool is_set_contract);\r
+\r
+Evas_Coord cal_day_time_block_get_max(cal_day_time_block_h day_time_block);\r
+Evas_Coord cal_day_time_block_get_min();\r
+Evas_Coord cal_day_time_block_get_expand_max(cal_day_time_block_h day_time_block);\r
+Evas_Coord cal_day_time_block_get_current(cal_day_time_block_h day_time_block);\r
+\r
+#endif\r
diff --git a/src/day-time.c b/src/day-time.c
new file mode 100755 (executable)
index 0000000..a4fe6a4
--- /dev/null
@@ -0,0 +1,933 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <math.h>
+
+#include "view.h"
+#include "edit-view.h"
+#include "detail-view.h"
+#include "view-day-list.h"
+#include "day-time.h"
+#include "day-expandable-list.h"
+
+static const char *_name = "main/day/time";
+
+typedef struct {
+
+       cal_base_time_s base_time;
+
+       struct appdata *ad;
+
+       Evas_Coord mouse_down_distance;
+
+       Ecore_Idler *idler_for_time_block;
+       Ecore_Idler *idler_for_change;
+
+       Ecore_Timer *mouse_clicked_timer;
+
+       int flick_direction;
+
+       Evas_Coord threshold;
+
+       Eina_Bool is_quit_editmode;
+
+} cal_day_time_s;
+
+
+static cal_base_time_h __cal_day_time_new(void *data);
+static void __cal_day_time_state_actions(cal_base_time_h base_time);
+static void __cal_day_time_state_transition(cal_base_time_h base_time, enum cal_base_time_input_signal_type input);
+static void __cal_day_time_update(cal_base_time_h base_time);
+static void __cal_day_time_delete(cal_base_time_h base_time);
+
+cal_base_time_operations day_time_operations = {
+       __cal_day_time_new,
+       __cal_day_time_delete,
+       NULL,
+       __cal_day_time_state_transition,
+       __cal_day_time_state_actions,
+       __cal_day_time_update,
+};
+
+extern void cal_day_update_genlist(Evas_Object *ly);
+
+static void __cal_day_time_delete(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = base_time;
+
+       if (p->idler_for_time_block)
+               ecore_idler_del(p->idler_for_time_block);
+
+       if (p->idler_for_change)
+               ecore_idler_del(p->idler_for_change);
+
+}
+
+static cal_base_time_h __cal_day_time_new(void *data)
+{
+       c_retv_if(!data, NULL);
+
+       cal_day_time_s *p = NULL;
+
+       CAL_CALLOC(p, 1, cal_day_time_s);
+
+       ((cal_base_time_s *)p)->name = _name;
+
+       p->ad = data;
+
+       p->threshold = elm_config_finger_size_get();
+
+       return p;
+
+}
+
+static void __cal_day_time_scroll_zoom(cal_base_time_h base_time, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = base_time;
+
+       Evas_Coord_Point sc_xy;
+       Evas_Coord sc_h;
+       Evas_Coord_Point base_xy;
+       Evas_Coord base_h;
+       Evas_Coord_Rectangle r;
+       int t_y = 0;
+
+       evas_object_geometry_get(p->scroller, &sc_xy.x, &sc_xy.y, NULL, &sc_h);
+       evas_object_geometry_get(p->base, &base_xy.x, &base_xy.y, NULL, &base_h);
+
+       cal_base_time_block_get_geometry(p->base_time_block, &r);
+
+       if (r.y > p->base_y) {
+               cal_base_time_block_move(p->base_time_block, base_xy.x, p->base_y);
+       } else {
+               if ((r.y+r.h) < (sc_xy.y+sc_h)) {
+                       if (r.h > sc_h) {
+                               t_y = sc_xy.y + sc_h - r.h;
+                               cal_base_time_block_move(p->base_time_block, base_xy.x, t_y);
+                       } else {
+                               cal_base_time_block_move(p->base_time_block, base_xy.x, p->base_y);
+                       }
+               }
+       }
+}
+
+static inline void __cal_day_time_double_clicked_callback(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = base_time;
+
+       c_ret_if(p->is_quit_editmode);
+
+       if (p->ad->is_magnifying)
+               return;
+
+       p->ad->is_contracted = !p->ad->is_contracted;
+
+       cal_base_time_freeze_scroller(p);
+
+       if (!p->ad->is_contracted) {
+               cal_day_time_block_resize(((cal_base_time_s *)p)->base_time_block, 0, cal_day_time_block_get_max(((cal_base_time_s *)p)->base_time_block), p->ad->is_contracted);
+               cal_day_time_block_resize(((cal_base_time_s *)p)->left_base_time_block, 0, cal_day_time_block_get_max(((cal_base_time_s *)p)->base_time_block), p->ad->is_contracted);
+               cal_day_time_block_resize(((cal_base_time_s *)p)->right_base_time_block, 0, cal_day_time_block_get_max(((cal_base_time_s *)p)->base_time_block), p->ad->is_contracted);
+       } else {
+               cal_day_time_block_resize(((cal_base_time_s *)p)->base_time_block, 0, 0, p->ad->is_contracted);
+               cal_day_time_block_resize(((cal_base_time_s *)p)->left_base_time_block, 0, 0, p->ad->is_contracted);
+               cal_day_time_block_resize(((cal_base_time_s *)p)->right_base_time_block, 0, 0, p->ad->is_contracted);
+       }
+
+       cal_base_time_thaw_scroller(p);
+
+       __cal_day_time_scroll_zoom(p, NULL, NULL, NULL);
+}
+
+static Eina_Bool __cal_day_time_ug_callback(void *data)
+{
+       c_retv_if(!data, EINA_FALSE);
+
+       cal_day_time_s *p = (cal_base_time_s *)data;
+       c_retv_if(!p->ad, EINA_FALSE);
+       c_retv_if(!p->ad->main, EINA_FALSE);
+
+       p->ad->ug = NULL;
+
+       Evas_Object *content = elm_object_part_content_get(p->ad->main, "cont");
+       c_retv_if(!content, EINA_FALSE);
+
+       p->ad->base_tm.tm_hour = p->ad->base_hour;
+
+       cal_day_update_genlist(content);
+
+       cal_base_time_block_update(((cal_base_time_s *)p)->base_time_block);
+
+       cal_base_time_block_move_event_blocks(((cal_base_time_s *)p)->base_time_block);
+
+       cal_day_change_content_display_status(content);
+
+       cal_main_add_db_changed_callback(p->ad);
+
+       return EINA_TRUE;
+}
+
+static Eina_Bool __cal_day_time_mouse_hold_timer_callback(void *data)
+{
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       cal_base_time_s *p = (cal_base_time_s *)data;
+       c_retv_if(!p->base_time_block, ECORE_CALLBACK_CANCEL);
+
+       switch (p->state_action_type)
+       {
+       case STATE_DOWN_FIRST:
+       case STATE_DOWN_SECOND:
+               cal_day_time_block_hint_longpress(p->base_time_block, &p->single_mouse_down);
+               break;
+       default:
+               break;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_day_time_time_block_clicked_callback(cal_base_time_h base_time, int hour)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = base_time;
+
+       c_ret_if(!p->ad);
+       c_ret_if(p->is_quit_editmode);
+
+       p->ad->base_hour = hour;
+       p->ad->cid = 0;
+
+       calendar_record_h record = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_create(_calendar_event._uri, &record);
+       c_retm_if(error != CALENDAR_ERROR_NONE, "calendar_record_create() is failed(%x)", error);
+
+       p->ad->base_hour = p->ad->base_tm.tm_hour;
+       p->ad->base_tm.tm_hour = hour;
+
+       cal_main_remove_db_changed_callback(p->ad);
+
+       cal_edit_create_view(p->ad, record, __cal_day_time_ug_callback, p);
+}
+
+static void __cal_day_time_event_block_clicked_callback(cal_base_time_h base_time, calendar_record_h record)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = base_time;
+
+       c_ret_if(!record);
+       c_ret_if(!p->ad);
+       c_ret_if(p->is_quit_editmode);
+
+       p->ad->cid = _calendar_get_record_index(record);
+       p->ad->base_hour = p->ad->base_tm.tm_hour;
+
+       cal_main_remove_db_changed_callback(p->ad);
+
+       cal_detail_create_view(p->ad, record, __cal_day_time_ug_callback, p);
+}
+
+static void __cal_day_time_more_event_block_clicked_callback(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = base_time;
+
+       c_ret_if(!p->ad);
+       c_ret_if(p->is_quit_editmode);
+
+       Evas_Object* ly = cal_day_list_create(p->ad, p->ad->main);
+       cal_day_list_update_list(ly);
+}
+
+static void __cal_day_time_mouse_event_callback(void *data, int event_type, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_base_time_s *p = (cal_base_time_s *)data;
+
+       switch (event_type) {
+               case EVEN_BLOCK_EVENT_CLICEKD:
+                       p->state_action_type = STATE_START;
+                       __cal_day_time_event_block_clicked_callback(p, (calendar_record_h)ei);
+                       break;
+               case EVEN_BLOCK_MORE_EVENT_CLICEKD:
+                       p->state_action_type = STATE_START;
+                       __cal_day_time_more_event_block_clicked_callback(p);
+                       break;
+               case TIME_BLOCK_SLICE_CLICEKD:
+                       p->state_action_type = STATE_START;
+                       __cal_day_time_time_block_clicked_callback(p, (int)ei);
+                       break;
+               case DAY_TIME_DOUBLE_CLICEKD:
+                       p->state_action_type = STATE_START;
+                       __cal_day_time_double_clicked_callback(p);
+                       break;
+
+               default:
+                       break;
+       }
+}
+
+cal_base_time_h  cal_day_time_create(void *data)
+{
+       return cal_base_time_create(&day_time_operations, data);
+}
+
+static Eina_Bool __cal_day_time_move_time_block_to_time_line(void *data)
+{
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       cal_day_time_s *p = (cal_day_time_s *)data;
+
+       if (p->idler_for_time_block) {
+               ecore_idler_del(p->idler_for_time_block);
+               p->idler_for_time_block = NULL;
+       }
+
+       cal_base_time_block_move_to_time_line(((cal_base_time_s *)p)->base_time_block);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_day_time_update(cal_base_time_h base_time)
+{
+       CAL_FN_START;
+
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+       c_ret_if(!p->base_time_block);
+
+       cal_day_time_block_set_callback(p->base_time_block, __cal_day_time_mouse_event_callback, p);
+
+       cal_base_time_block_update(p->base_time_block);
+
+       if (((cal_day_time_s *)p)->ad->is_magnifying) {
+               cal_day_time_block_resize(p->base_time_block, 0, cal_day_time_block_get_current(p->base_time_block), EINA_FALSE);
+       } else {
+               if (((cal_day_time_s *)p)->ad->is_contracted) {
+                       cal_day_time_block_resize(p->base_time_block, 0, cal_day_time_block_get_max(p->base_time_block), EINA_FALSE);
+                       cal_day_time_block_resize(p->base_time_block, 0, 0, EINA_TRUE);
+               }
+       }
+
+       cal_base_time_attach_scroller(p);
+
+
+       if (!((cal_day_time_s *)p)->idler_for_time_block)
+               ((cal_day_time_s *)p)->idler_for_time_block = ecore_idler_add(__cal_day_time_move_time_block_to_time_line, p);
+
+       CAL_FN_END;
+}
+
+static Eina_Bool  __cal_day_time_mouse_clicked_timer_callback(void *data)
+{
+       c_retv_if(!data, EINA_FALSE);
+
+       cal_base_time_s *p = data;
+
+       switch (p->state_action_type)
+       {
+       case STATE_UP_FIRST:
+               cal_day_time_block_hint_clicked(p->base_time_block, &p->single_mouse_down);
+               cal_day_change_content_display_status(p->parent);
+               p->state_action_type = STATE_START;
+               break;
+       case STATE_UP_SECOND:
+               __cal_day_time_mouse_event_callback(p, DAY_TIME_DOUBLE_CLICEKD, NULL);
+               p->state_action_type = STATE_START;
+               break;
+       default:
+               break;
+       }
+
+       if (((cal_day_time_s *)p)->mouse_clicked_timer) {
+               ecore_timer_del(((cal_day_time_s *)p)->mouse_clicked_timer);
+               ((cal_day_time_s *)p)->mouse_clicked_timer = NULL;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_day_time_state_down_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = base_time;
+}
+
+static void __cal_day_time_state_up_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = base_time;
+
+
+       if (!p->mouse_clicked_timer) {
+               p->mouse_clicked_timer = ecore_timer_add(DAY_TIME_DOUBLE_CLICK_TIME, __cal_day_time_mouse_clicked_timer_callback, p);
+       }
+
+}
+
+static Evas_Object* __cal_day_time_create_time_d(cal_base_time_h base_time, int d)
+{
+       c_retv_if(!base_time, NULL);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       struct appdata *ad = ((cal_day_time_s *)p)->ad;
+       c_retv_if(!ad, NULL);
+
+       cal_base_time_block_h time_block = NULL;
+       time_t r = cal_util_update_tm_day(&ad->base_tm, d);
+       c_retv_if(r < 0, NULL);
+
+       if (d < 0) {
+               if (!p->left_base_time_block) {
+                       p->left_base_time_block = cal_base_time_block_new(p->base_type, p->scroller, p->clip, NULL, ((cal_day_time_s *)p)->ad->base_tm.tm_hour, ((cal_day_time_s *)p)->ad);
+                       time_block = p->left_base_time_block;
+               }
+       } else {
+               if (!p->right_base_time_block) {
+                       p->right_base_time_block = cal_base_time_block_new(p->base_type, p->scroller, p->clip, NULL, ((cal_day_time_s *)p)->ad->base_tm.tm_hour, ((cal_day_time_s *)p)->ad);
+                       time_block = p->right_base_time_block;
+               }
+       }
+       r = cal_util_update_tm_day(&ad->base_tm, -d);
+       c_retv_if(r < 0, NULL);
+
+       if (((cal_day_time_s *)p)->ad->is_magnifying) {
+               cal_day_time_block_resize(time_block, 0, cal_day_time_block_get_current(p->base_time_block), EINA_FALSE);
+       } else {
+               if (((cal_day_time_s *)p)->ad->is_contracted) {
+                       cal_day_time_block_resize(time_block, 0, 0, EINA_TRUE);
+               }else {
+                       cal_day_time_block_resize(time_block, 0, cal_day_time_block_get_max(p->base_time_block), EINA_FALSE);
+               }
+       }
+
+       return time_block;
+}
+
+static void __cal_day_time_state_enable_flick_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = base_time;
+
+       cal_base_time_freeze_scroller(p);
+}
+
+static void __cal_day_time_state_flicking_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       Evas_Coord_Rectangle r;
+
+       __cal_day_time_create_time_d(p, ((cal_day_time_s *)p)->flick_direction);
+
+       Evas_Coord d = p->single_mouse_move.x - p->single_mouse_down.x;
+
+       cal_base_time_block_get_geometry(p->base_time_block, &r);
+
+       cal_base_time_block_move(p->base_time_block, p->scroller_coord.x + d, r.y);
+
+       if (p->left_base_time_block) {
+               cal_base_time_block_move(p->left_base_time_block, p->scroller_coord.x + d - r.w, r.y);
+       }
+
+        if (p->right_base_time_block) {
+               cal_base_time_block_move(p->right_base_time_block, p->scroller_coord.x + d + r.w, r.y);
+       }
+}
+
+static void __cal_day_time_update_time_block(cal_base_time_h base_time)
+{
+       CAL_FN_START;
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       Evas_Coord_Rectangle rect = {0};
+
+       cal_base_time_block_get_geometry(p->base_time_block, &rect);
+
+       int r = cal_util_update_tm_day(&((cal_day_time_s *)p)->ad->base_tm, ((cal_day_time_s *)p)->flick_direction);
+       c_retm_if(r < 0, "cal_util_update_tm_day() is returned %d", r);
+
+       cal_day_time_block_unset_callback(p->base_time_block);
+
+       if (0 < ((cal_day_time_s *)p)->flick_direction) {
+               if (p->left_base_time_block){
+                       cal_base_time_block_delete(p->left_base_time_block);
+                       p->left_base_time_block = NULL;
+               }
+
+               p->left_base_time_block = p->base_time_block;
+               p->base_time_block = p->right_base_time_block;
+               p->right_base_time_block = __cal_day_time_create_time_d(p, 1);
+       } else if (((cal_day_time_s *)p)->flick_direction < 0) {
+               if (p->right_base_time_block) {
+                       cal_base_time_block_delete(p->right_base_time_block);
+                       p->right_base_time_block = NULL;
+               }
+
+               p->right_base_time_block = p->base_time_block;
+               p->base_time_block = p->left_base_time_block;
+               p->left_base_time_block = __cal_day_time_create_time_d(p, -1);
+       }
+
+       cal_day_time_block_set_callback(p->base_time_block, __cal_day_time_mouse_event_callback, p);
+
+       cal_base_time_block_move(p->left_base_time_block, p->scroller_coord.x - rect.w, rect.y);
+       cal_base_time_block_move(p->base_time_block, p->scroller_coord.x, rect.y);
+       cal_base_time_block_move(p->right_base_time_block, p->scroller_coord.x + rect.w, rect.y);
+
+       cal_main_update_title_text(((cal_day_time_s *)p)->ad);
+
+       cal_day_update_genlist(p->parent);
+}
+
+static void __cal_day_time_state_disable_flick_action(cal_base_time_h base_time)
+{
+       CAL_FN_START;
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       Evas_Coord_Rectangle r;
+       Evas_Coord d;
+       Evas_Coord_Rectangle rect = {0};
+
+       d = p->single_mouse_move.x - p->single_mouse_down.x;
+
+       cal_util_get_geometry(&rect, p->scroller);
+
+       if ( (rect.w/2) < abs(d)) {
+               __cal_day_time_update_time_block(p);
+       } else {
+               cal_base_time_block_get_geometry(p->base_time_block, &r);
+               cal_base_time_block_move(p->base_time_block, p->scroller_coord.x, r.y);
+               if (p->left_base_time_block) {
+                       cal_base_time_block_move(p->left_base_time_block, p->scroller_coord.x - r.w, r.y);
+               }
+               if (p->right_base_time_block) {
+                       cal_base_time_block_move(p->right_base_time_block, p->scroller_coord.x + r.w, r.y);
+               }
+       }
+
+       cal_base_time_thaw_scroller(p);
+}
+
+static void __cal_day_time_state_enable_scroll_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = (cal_day_time_s *)base_time;
+
+}
+
+static void __cal_day_time_state_scrolling_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+}
+
+static void __cal_day_time_state_disable_scroll_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       p->single_mouse_down.x = -1;
+       p->single_mouse_down.y = -1;
+
+       p->single_mouse_move.x = -1;
+       p->single_mouse_move.y = -1;
+}
+
+static void __cal_day_time_state_enable_moving_event_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_freeze_scroller(base_time);
+}
+
+static void __cal_day_time_state_event_moving_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       c_ret_if(-1 == p->single_mouse_down.x);
+       c_ret_if(-1 == p->single_mouse_down.y);
+       c_ret_if(-1 == p->single_mouse_move.x);
+       c_ret_if(-1 == p->single_mouse_move.y);
+
+       cal_day_time_block_moving_moveable_event(p->base_time_block, &p->single_mouse_move, &p->single_mouse_down);
+}
+
+
+static void __cal_day_time_state_disable_moving_event_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       cal_base_time_thaw_scroller(p);
+
+       cal_day_time_block_disable_moving_moveable_event(p->base_time_block, &p->single_mouse_move, &p->single_mouse_down);
+
+       ((cal_day_time_s *)p)->is_quit_editmode = EINA_TRUE;
+
+       cal_base_time_state_transition(p, SINGLE_MOUSE_DOWN);
+       cal_base_time_state_actions(p);
+
+}
+
+static void __cal_day_time_state_enable_zoom_event_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       cal_base_time_freeze_scroller(p);
+
+       ((cal_day_time_s *)p)->mouse_down_distance = cal_util_get_distance(&p->single_mouse_down, &p->multi_mouse_down);
+}
+
+static void __cal_day_time_zoom_callback(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = (cal_day_time_s *)base_time;
+
+       Evas_Coord h;
+       double rate;
+
+       if (p->ad->is_contracted)
+               return;
+
+       Evas_Coord d = cal_util_get_distance(&((cal_base_time_s *)p)->single_mouse_move, &((cal_base_time_s *)p)->multi_mouse_move);
+       rate = (double)d/p->mouse_down_distance;
+
+       if (p->ad->is_magnifying) {
+               h = cal_day_time_block_get_current(((cal_base_time_s *)p)->base_time_block);
+       } else {
+               h = cal_day_time_block_get_max(((cal_base_time_s *)p)->base_time_block);
+       }
+
+       if (rate < 1 && !p->ad->is_magnifying)
+               return;
+
+       if (p->ad->is_magnifying) {
+               cal_day_time_block_resize(((cal_base_time_s *)p)->base_time_block, (((cal_base_time_s *)p)->single_mouse_down.y + ((cal_base_time_s *)p)->multi_mouse_down.y) >> 1, h + cal_day_time_block_get_min() * (rate-1), EINA_FALSE);
+       } else {
+               cal_day_time_block_resize(((cal_base_time_s *)p)->base_time_block, (((cal_base_time_s *)p)->single_mouse_down.y + ((cal_base_time_s *)p)->multi_mouse_down.y) >> 1, h * rate, EINA_FALSE);
+       }
+}
+
+static void __cal_day_time_state_zooming_event_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       __cal_day_time_zoom_callback(base_time);
+
+}
+
+static Eina_Bool __cal_day_time_change(void *data)
+{
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       cal_day_time_s *p = (cal_day_time_s *)data;
+
+       if (p->idler_for_time_block) {
+               ecore_idler_del(p->idler_for_time_block);
+               p->idler_for_time_block = NULL;
+       }
+
+       cal_main_change_view(p->ad->main, CV_WEEK);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+static void __cal_day_time_signal_disable_zoom_callback(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_day_time_s *p = (cal_day_time_s *)base_time;
+
+       c_ret_if(!p->ad);
+       c_ret_if(!p->ad->main);
+       c_ret_if(!((cal_base_time_s *)p)->base_time_block);
+
+       Eina_Bool is_magnifying = p->ad->is_magnifying;
+       int h_cur = cal_day_time_block_get_current(((cal_base_time_s *)p)->base_time_block);
+       int h_normal = cal_day_time_block_get_max(((cal_base_time_s *)p)->base_time_block);
+
+       if (!is_magnifying &&  (h_normal < h_cur)) {
+               p->ad->is_magnifying = EINA_TRUE;
+
+               cal_day_time_block_resize(((cal_base_time_s *)p)->left_base_time_block, 0, cal_day_time_block_get_current(((cal_base_time_s *)p)->base_time_block), EINA_FALSE);
+               cal_day_time_block_resize(((cal_base_time_s *)p)->right_base_time_block, 0, cal_day_time_block_get_current(((cal_base_time_s *)p)->base_time_block), EINA_FALSE);
+
+               ((cal_base_time_s *)p)->state_action_type = STATE_START;
+
+               cal_base_time_thaw_scroller(p);
+               __cal_day_time_scroll_zoom(p, NULL, NULL, NULL);
+       } else if (is_magnifying) {
+               if (h_cur <= h_normal)
+                       p->ad->is_magnifying = EINA_FALSE;
+
+               cal_day_time_block_resize(((cal_base_time_s *)p)->left_base_time_block, 0, cal_day_time_block_get_current(((cal_base_time_s *)p)->base_time_block), EINA_FALSE);
+               cal_day_time_block_resize(((cal_base_time_s *)p)->right_base_time_block, 0, cal_day_time_block_get_current(((cal_base_time_s *)p)->base_time_block), EINA_FALSE);
+
+               ((cal_base_time_s *)p)->state_action_type = STATE_START;
+
+               cal_base_time_thaw_scroller(p);
+               __cal_day_time_scroll_zoom(p, NULL, NULL, NULL);
+       } else {
+               int d= 0;
+               Evas_Coord th = elm_config_finger_size_get();
+
+               d = cal_util_get_distance(&((cal_base_time_s *)p)->single_mouse_move, &((cal_base_time_s *)p)->multi_mouse_move);
+
+               if (th < abs(d-p->mouse_down_distance)) {
+                       if (p->idler_for_change)
+                               ecore_idler_del(p->idler_for_change);
+
+                       p->idler_for_change = ecore_idler_add(__cal_day_time_change, p);
+               }
+       }
+}
+
+static void __cal_day_time_state_disable_zoom_event_action(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+}
+
+static void __cal_day_time_state_actions(cal_base_time_h base_time)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       switch (p->state_action_type)
+       {
+       case STATE_DOWN_FIRST:
+       case STATE_DOWN_SECOND:
+               __cal_day_time_state_down_action(p);
+               break;
+       case STATE_UP_FIRST:
+               __cal_day_time_state_up_action(p);
+               break;
+       case STATE_ENABLE_FLICK:
+               __cal_day_time_state_enable_flick_action(p);
+               break;
+       case STATE_FLICKING:
+               __cal_day_time_state_flicking_action(p);
+               break;
+       case STATE_DISABLE_FLICK:
+               __cal_day_time_state_disable_flick_action(p);
+               break;
+       case STATE_ENABLE_SCROLL:
+               __cal_day_time_state_enable_scroll_action(p);
+               break;
+       case STATE_SCROLLING:
+               __cal_day_time_state_scrolling_action(p);
+               break;
+       case STATE_DISABLE_SCROLL:
+               __cal_day_time_state_disable_scroll_action(p);
+               break;
+       case STATE_ENABLE_MOVEING_EVENT:
+               __cal_day_time_state_enable_moving_event_action(p);
+               break;
+       case STATE_MOVING_EVENT:
+               __cal_day_time_state_event_moving_action(p);
+               break;
+       case STATE_DISABLE_MOVEING_EVENT:
+               __cal_day_time_state_disable_moving_event_action(p);
+               break;
+       case STATE_ENABLE_ZOOM:
+               __cal_day_time_state_enable_zoom_event_action(p);
+               break;
+       case STATE_ZOOMING:
+               __cal_day_time_state_zooming_event_action(p);
+               break;
+       case STATE_DISABLE_ZOOM:
+               __cal_day_time_state_disable_zoom_event_action(p);
+               break;
+       default:
+               break;
+       }
+}
+
+static void __cal_day_time_state_transition(cal_base_time_h base_time, enum cal_base_time_input_signal_type input)
+{
+       c_ret_if(!base_time);
+
+       cal_base_time_s *p = (cal_base_time_s *)base_time;
+
+       switch (p->state_action_type)
+       {
+       case STATE_START:
+               if (SINGLE_MOUSE_DOWN == input) {
+                       ((cal_day_time_s *)p)->is_quit_editmode = EINA_FALSE;
+                       p->state_action_type = STATE_DOWN_FIRST;
+               }
+               break;
+       case STATE_DOWN_FIRST:
+               if (SINGLE_MOUSE_UP == input) {
+                       p->state_action_type = STATE_UP_FIRST;
+               } else if (SCROLLER_DRAG_START == input) {
+                       int width_d = p->single_mouse_move.x - p->single_mouse_down.x;
+                       int heigt_d = p->single_mouse_move.y - p->single_mouse_down.y;
+                       if (abs(width_d) < abs(heigt_d)) {
+                               p->state_action_type = STATE_ENABLE_SCROLL;
+                       } else {
+                               ((cal_day_time_s *)p)->flick_direction = ((0 < width_d) ? -1 : 1);
+                               p->state_action_type = STATE_ENABLE_FLICK;
+                       }
+               } else if (MULTI_MOUSE_DOWN == input) {
+                       p->state_action_type = STATE_ENABLE_ZOOM;
+               }
+               break;
+       case STATE_UP_FIRST:
+               if (SINGLE_MOUSE_DOWN == input) {
+                       p->state_action_type = STATE_DOWN_SECOND;
+               }
+               break;
+       case STATE_DOWN_SECOND:
+               if (SINGLE_MOUSE_UP == input) {
+                       p->state_action_type = STATE_UP_SECOND;
+               } else if (SCROLLER_DRAG_START == input) {
+                       int width_d = p->single_mouse_move.x - p->single_mouse_down.x;
+                       int heigt_d = p->single_mouse_move.y - p->single_mouse_down.y;
+                       if (abs(width_d) < abs(heigt_d)) {
+                               p->state_action_type = STATE_ENABLE_SCROLL;
+                       } else {
+                               ((cal_day_time_s *)p)->flick_direction = ((0 < width_d) ? -1 : 1);
+                               p->state_action_type = STATE_ENABLE_FLICK;
+                       }
+               } else if (MULTI_MOUSE_DOWN == input) {
+                       p->state_action_type = STATE_ENABLE_ZOOM;
+               }
+               break;
+       case STATE_ENABLE_FLICK:
+       case STATE_FLICKING:
+               ((cal_day_time_s *)p)->flick_direction = ((0 < (p->single_mouse_move.x - p->single_mouse_down.x) ) ? -1 : 1);
+               if (SINGLE_MOUSE_UP == input) {
+                       p->state_action_type = STATE_DISABLE_FLICK;
+               } else if (SINGLE_MOUSE_MOVE == input) {
+                       p->state_action_type = STATE_FLICKING;
+               }
+               break;
+       case STATE_ENABLE_SCROLL:
+       case STATE_SCROLLING:
+               if (SINGLE_MOUSE_UP == input) {
+                       p->state_action_type = STATE_DISABLE_SCROLL;
+               } else if (SINGLE_MOUSE_MOVE == input) {
+                       p->state_action_type = STATE_SCROLLING;
+               }
+               break;
+       case STATE_ENABLE_MOVEING_EVENT:
+                if (SINGLE_MOUSE_DOWN == input) {
+                       Eina_Bool is_quit = cal_day_time_block_hint_quit_event_moveable_state(p->base_time_block, &p->single_mouse_down);
+                       if (!is_quit) {
+                               p->state_action_type = STATE_DISABLE_MOVEING_EVENT;
+                       }
+               } else {
+                       if (SINGLE_MOUSE_MOVE == input) {
+                               p->state_action_type = STATE_MOVING_EVENT;
+                       }
+
+                       if (SINGLE_MOUSE_UP == input) {
+                               p->single_mouse_down.x = -1;
+                               p->single_mouse_down.y = -1;
+
+                               p->single_mouse_move.x = -1;
+                               p->single_mouse_move.y = -1;
+                       }
+               }
+               break;
+       case STATE_MOVING_EVENT:
+                if (SINGLE_MOUSE_DOWN == input) {
+                       Eina_Bool is_quit = cal_day_time_block_hint_quit_event_moveable_state(p->base_time_block, &p->single_mouse_down);
+                       if (!is_quit) {
+                               p->state_action_type = STATE_DISABLE_MOVEING_EVENT;
+                       }
+               } else {
+                       if (SINGLE_MOUSE_UP == input) {
+                               p->single_mouse_down.x = -1;
+                               p->single_mouse_down.y = -1;
+
+                               p->single_mouse_move.x = -1;
+                               p->single_mouse_move.y = -1;
+                       }
+               }
+               break;
+       case STATE_DISABLE_MOVEING_EVENT:
+               p->state_action_type = STATE_START;
+               if (SINGLE_MOUSE_DOWN == input) {
+                       p->state_action_type = STATE_DOWN_FIRST;
+               }
+               break;
+       case STATE_ENABLE_ZOOM:
+                if (input == SINGLE_MOUSE_UP || input == MULTI_MOUSE_UP) {
+                       p->state_action_type = STATE_DISABLE_ZOOM;
+               } else {
+                       p->state_action_type = STATE_ZOOMING;
+               }
+               break;
+       case STATE_ZOOMING:
+               if (input == SINGLE_MOUSE_UP || input == MULTI_MOUSE_UP) {
+                       p->state_action_type = STATE_DISABLE_ZOOM;
+               }
+               break;
+       case STATE_DISABLE_ZOOM:
+               if (input == SINGLE_MOUSE_UP || input == MULTI_MOUSE_UP) {
+                       __cal_day_time_signal_disable_zoom_callback(p);
+               }
+               break;
+       case STATE_DISABLE_FLICK:
+       case STATE_DISABLE_SCROLL:
+       case STATE_UP_SECOND:
+               p->state_action_type = STATE_START;
+               if (SINGLE_MOUSE_DOWN == input) {
+                       ((cal_day_time_s *)p)->is_quit_editmode = EINA_FALSE;
+                       p->state_action_type = STATE_DOWN_FIRST;
+               }
+               break;
+       default:
+               break;
+       }
+}
diff --git a/src/day-time.h b/src/day-time.h
new file mode 100755 (executable)
index 0000000..94902ef
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */\r
+#ifndef __CALENDAR_DAY_TIME_H__\r
+#define __CALENDAR_DAY_TIME_H__\r
+#include "cld.h"\r
+#include "base-time.h"\r
+#include "day-time-block.h"\r
+\r
+#define DAY_TIME_DOUBLE_CLICEKD TIME_BLOCK_SLICE_LONGPRESS+1\r
+#define DAY_TIME_DOUBLE_CLICK_TIME 0.4\r
+\r
+typedef void *cal_day_time_h;\r
+\r
+cal_base_time_h  cal_day_time_create(void *data);\r
+\r
+#endif
\ No newline at end of file
diff --git a/src/detail-view.c b/src/detail-view.c
new file mode 100755 (executable)
index 0000000..b95e512
--- /dev/null
@@ -0,0 +1,168 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <ui-gadget-module.h>
+
+#include "detail-view.h"
+
+#define CAL_DETAIL_UG "calendar-detail-efl"
+
+typedef struct {
+       struct appdata *ad;
+       cal_detail_view_destroy_callback callback;
+       void *callback_data;
+} cal_detail_view_data;
+
+static void __cal_detail_layout_callback(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ug, "ug is null");
+
+       Evas_Object *base = ug_get_layout(ug);
+       if (!base) {
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode)
+       {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(base);
+               break;
+       default:
+               DBG("Unsupported ug layout");
+               break;
+       }
+
+}
+
+static void __cal_detail_destroy_callback(ui_gadget_h ug, void *priv)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ug);
+
+       ug_destroy(ug);
+
+       c_ret_if(!priv);
+
+       cal_detail_view_data *view_data = priv;
+
+       if (view_data->callback)
+               view_data->callback(view_data->callback_data);
+
+       view_data->ad->ug = NULL;
+
+       free(view_data);
+}
+
+static void inline __cal_detail_clone_record(const calendar_record_h source_record, calendar_record_h *target_record)
+{
+       CAL_FN_START;
+
+       c_ret_if(!source_record);
+       c_ret_if(!target_record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_clone(source_record, target_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+}
+
+static void inline __cal_detail_destroy_record(calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_destroy(record, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+}
+
+void cal_detail_create_view(struct appdata *ad, calendar_record_h record, cal_detail_view_destroy_callback callback, void *callback_data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ad);
+       c_ret_if(!record);
+
+       if (ad->ug)
+               return;
+
+       struct ug_cbs ug_callback = {0};
+
+       cal_detail_view_data *view_data = NULL;
+
+       view_data = calloc(1, sizeof(cal_detail_view_data));
+
+       if (callback) {
+
+               view_data->callback = callback;
+               view_data->callback_data = callback_data;
+       }
+
+       view_data->ad = ad;
+
+       ug_callback.layout_cb = __cal_detail_layout_callback;
+       ug_callback.destroy_cb = __cal_detail_destroy_callback;
+       ug_callback.priv = view_data;
+
+       service_h service = NULL;
+
+       service_error_e error = SERVICE_ERROR_NONE;
+
+       error = service_create(&service);
+       if (error != SERVICE_ERROR_NONE) {
+               ERR("service_create() is failed(%x)", error);
+
+               CAL_FREE(view_data);
+
+               return;
+       }
+
+       calendar_record_h cloned_record = NULL;
+
+       __cal_detail_clone_record(record, &cloned_record);
+
+       char record_address[16] = {0};
+
+       snprintf(record_address, sizeof(record_address), "%p", (void *)cloned_record);
+
+       error = service_add_extra_data(service, "record", record_address);
+       c_warn_if(error != SERVICE_ERROR_NONE, "service_add_extra_data(%s,%s) is failed(%x)", "record", record_address, error);
+
+       ui_gadget_h ug = ug_create(NULL, CAL_DETAIL_UG, UG_MODE_FULLVIEW, service, &ug_callback);
+       if (!ug) {
+               ERR("ug_create(%s) is failed.", CAL_DETAIL_UG);
+
+               __cal_detail_destroy_record(cloned_record);
+
+               service_destroy(service);
+
+               CAL_FREE(view_data);
+
+               return;
+       }
+
+       service_destroy(service);
+
+       ad->ug = ug;
+}
diff --git a/src/detail-view.h b/src/detail-view.h
new file mode 100755 (executable)
index 0000000..5bb0928
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "cld.h"
+
+typedef Eina_Bool (*cal_detail_view_destroy_callback)(void *data);
+
+void cal_detail_create_view(struct appdata *ad, calendar_record_h record, cal_detail_view_destroy_callback func, void *data);
diff --git a/src/edit-view.c b/src/edit-view.c
new file mode 100755 (executable)
index 0000000..5c96063
--- /dev/null
@@ -0,0 +1,186 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <ui-gadget-module.h>
+
+#include "edit-view.h"
+
+#define CAL_EDIT_UG "calendar-edit-efl"
+
+typedef struct {
+       struct appdata *ad;
+       cal_edit_view_destroy_callback callback;
+       void *callback_data;
+} cal_edit_view_data;
+
+static void __cal_edit_layout_callback(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ug, "ug is null");
+
+       Evas_Object *base = ug_get_layout(ug);
+       if (!base) {
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode)
+       {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_show(base);
+               break;
+       default:
+               DBG("Unsupported ug layout");
+               break;
+       }
+
+}
+
+static void __cal_edit_destroy_callback(ui_gadget_h ug, void *priv)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ug);
+
+       ug_destroy(ug);
+
+       c_ret_if(!priv);
+
+       cal_edit_view_data *view_data = priv;
+
+       if (view_data->callback)
+               view_data->callback(view_data->callback_data);
+
+       view_data->ad->ug = NULL;
+
+       free(view_data);
+}
+
+static void inline __cal_edit_clone_record(const calendar_record_h source_record, calendar_record_h *target_record)
+{
+       CAL_FN_START;
+
+       c_ret_if(!source_record);
+       c_ret_if(!target_record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_clone(source_record, target_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+}
+
+static void inline __cal_edit_destroy_record(calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_destroy(record, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+}
+void cal_edit_create_view(struct appdata *ad, calendar_record_h record, cal_edit_view_destroy_callback callback, void *callback_data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ad);
+
+       if (ad->ug)
+               return;
+
+       c_ret_if(!record);
+
+       struct ug_cbs ug_callback = {0};
+
+       cal_edit_view_data *view_data = NULL;
+
+       view_data = calloc(1, sizeof(cal_edit_view_data));
+
+       if (callback) {
+
+               view_data->callback = callback;
+               view_data->callback_data = callback_data;
+       }
+
+       view_data->ad = ad;
+
+       ug_callback.layout_cb = __cal_edit_layout_callback;
+       ug_callback.destroy_cb = __cal_edit_destroy_callback;
+       ug_callback.priv = view_data;
+
+       service_h service = NULL;
+
+       service_error_e error = SERVICE_ERROR_NONE;
+
+       error = service_create(&service);
+       if (error != SERVICE_ERROR_NONE) {
+               ERR("service_create() is failed(%x)", error);
+
+               CAL_FREE(view_data);
+
+               return;
+       }
+
+       calendar_record_h cloned_record = NULL;
+
+       __cal_edit_clone_record(record, &cloned_record);
+
+       char record_address[16] = {0};
+       snprintf(record_address, sizeof(record_address), "%p", (void *)cloned_record);
+
+       error = service_add_extra_data(service, "record", record_address);
+       if(error != SERVICE_ERROR_NONE) {
+               ERR("service_add_extra_data(%s,%s) is failed(%x)", "record", record_address, error);
+
+               service_destroy(service);
+               CAL_FREE(view_data);
+               return;
+       }
+
+       //send base time
+       char time[30] = {0};
+       long long int lli_time = 0;
+       cal_util_convert_tm_to_lli(NULL, &ad->base_tm, &lli_time);
+       snprintf(time, sizeof(time), "%lli", lli_time);
+
+       error = service_add_extra_data(service, "base_time", time);
+       if(error != SERVICE_ERROR_NONE) {
+               ERR("service_add_extra_data(%s,%s) is failed(%x)", "base_time", time, error);
+
+               service_destroy(service);
+               CAL_FREE(view_data);
+               return;
+       }
+
+       ui_gadget_h ug = ug_create(NULL, CAL_EDIT_UG, UG_MODE_FULLVIEW, service, &ug_callback);
+       if (!ug) {
+               ERR("ug_create(%s) is failed.", CAL_EDIT_UG);
+
+               service_destroy(service);
+
+               CAL_FREE(view_data);
+
+               return;
+       }
+
+       service_destroy(service);
+
+       ad->ug = ug;
+}
diff --git a/src/edit-view.h b/src/edit-view.h
new file mode 100755 (executable)
index 0000000..338eeb6
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "cld.h"
+
+typedef Eina_Bool (*cal_edit_view_destroy_callback)(void *data);
+
+void cal_edit_create_view(struct appdata *ad, calendar_record_h record, cal_edit_view_destroy_callback func, void *data);
diff --git a/src/list-base.c b/src/list-base.c
new file mode 100755 (executable)
index 0000000..2885952
--- /dev/null
@@ -0,0 +1,1279 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "cld.h"
+#include "list-base.h"
+#include "external-ug.h"
+#include "view.h"
+#include "detail-view.h"
+#include "cld-images.h"
+#include "edit-view.h"
+
+typedef struct {
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *genlist;
+       calendar_record_h selected_record;
+       Evas_Object *popup;
+       Ecore_Idler *popup_idler;
+       const char *searchtext;
+       Elm_Object_Item *sweep_it;
+       cal_list_callback select_item_callback;
+       void* select_item_callback_data;
+       int item_count;
+} cal_list_base_s;
+
+_calendar_book_color calendar_color;
+
+static Evas_Object *__cal_list_get_genlist_loadmore_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+
+       cal_list_base_s *p = data;
+
+       Evas_Object *progressbar = elm_progressbar_add(p->parent);
+       c_retv_if(!progressbar, NULL);
+
+       elm_object_style_set(progressbar, "list_process");
+       evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(progressbar);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+       return progressbar;
+}
+
+static char* __cal_list_base_share_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data || !obj || !part, NULL, "data is null");
+
+       char *name = (char *)data;
+
+       if (!CAL_STRCMP(part, "elm.text")) {
+               return strdup(name);
+       }
+
+       return NULL;
+}
+
+static char* __cal_list_get_genlist_header_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null.");
+
+       char buf[128];
+       cal_list_genlist_item_data *item_data = data;
+       const struct tm *tm = item_data->tm;
+
+       if (!CAL_STRCMP(part, "elm.text")) {
+
+               if (item_data->todo_group_type == CAL_TASK_NO_DUE_DATE) {
+                       return strdup(C_("IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"));
+               } else if (item_data->todo_group_type == CAL_TASK_DUE_TODAY) {
+                       return strdup(C_("IDS_CLD_HEADER_DUE_TODAY"));
+               } else if (item_data->todo_group_type == CAL_TASK_DUE_WITHIN_A_WEEK) {
+                       return strdup("Due within a week");
+               } else if (item_data->todo_group_type == CAL_TASK_DUE_IN_OVER_ONE_WEEK) {
+                       return strdup(C_("IDS_CLD_HEADER_DUE_IN_OVER_1_WEEK"));
+               } else if (item_data->todo_group_type == CAL_TASK_OVER_DUE) {
+                       return strdup(C_("IDS_TASK_DROP_OVERDUE"));
+               }
+
+               if (!tm) {
+                       return strdup(C_("IDS_CLD_BODY_REPEATING_EVENT"));
+               } else {
+
+                       cal_util_get_time_text(buf, sizeof(buf), CAL_UTIL_DATE_FORMAT_1, NULL, tm);
+
+                       return strdup(buf);
+               }
+       }
+
+       return NULL;
+}
+
+static char* __cal_list_get_genlist_custom_group_header_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null.");
+
+       char buf[128];
+       cal_list_genlist_item_data *item_data = data;
+       const struct tm *tm = item_data->tm;
+
+       if (!CAL_STRCMP(part, "elm.text")) {
+               if (!tm)
+                       return strdup("ERROR!!!");
+               cal_util_get_time_text(buf, sizeof(buf), CAL_UTIL_DATE_FORMAT_1, NULL, tm);
+               return strdup(buf);
+       }
+       return strdup("ERROR!!!");
+}
+
+static inline void __get_tm(const calendar_time_s* caltime, struct tm* tm_time)
+{
+       switch (caltime->type) {
+       case CALENDAR_TIME_UTIME:
+               cal_util_convert_lli_to_tm(NULL, caltime->time.utime, tm_time);
+               break;
+       case CALENDAR_TIME_LOCALTIME:
+               tm_time->tm_year = caltime->time.date.year - 1900;
+               tm_time->tm_mon = caltime->time.date.month - 1;
+               tm_time->tm_mday = caltime->time.date.mday;
+               break;
+       default:
+               // error
+               break;
+       }
+}
+
+static char* __cal_list_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+       c_retv_if(!obj, NULL);
+       c_retv_if(!part, NULL);
+
+       cal_list_genlist_item_data *item_data = data;
+
+       cal_list_base_s *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retv_if(!p, NULL);
+
+       char *str = NULL;
+
+       calendar_record_h record = item_data->record;
+       c_retv_if(!record, NULL);
+
+       if (!CAL_STRCMP(part, "elm.text.1")) {
+               str = _calendar_get_summary(record);
+
+               if (p->searchtext) {
+                       char *text = cal_util_get_search_color_text(p->searchtext, str);
+                       if(CAL_STRLEN(text))    {
+                               free(str);
+                               return text;
+                       }
+                       else
+                               return str;
+               }
+
+               return str;
+       } else if (!CAL_STRCMP(part, "elm.text.2")) {
+
+               return _calendar_get_location(record);
+
+       } else if (!CAL_STRCMP(part, "elm.text.3")) {
+
+               return _calendar_get_time_str_for_genlist(record);
+
+       } else if (!CAL_STRCMP(part, "elm.slide.text.1")) {
+
+               return _calendar_get_summary(record);
+       }
+
+       return NULL;
+}
+
+static char* __cal_list_get_genlist_task_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+       c_retv_if(!obj, NULL);
+       c_retv_if(!part, NULL);
+
+       cal_list_genlist_item_data *item_data = data;
+
+       cal_list_base_s *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retv_if(!p, NULL);
+
+       calendar_record_h record = item_data->record;
+       c_retv_if(!record, NULL);
+
+       int todo_status;
+       calendar_record_get_int(record, _calendar_todo.todo_status, &todo_status);
+       bool is_done = (todo_status == CALENDAR_TODO_STATUS_COMPLETED);
+
+       if ((CAL_STRCMP(part, "elm.text.1") == 0 && !is_done) ||
+               (CAL_STRCMP(part, "elm.textblock.1") == 0 && is_done)) {
+
+               char* text = _calendar_get_summary(record);
+               c_retv_if(text == NULL, NULL);
+
+               if (p->searchtext) {
+                       char* text2 = cal_util_get_search_color_text(p->searchtext, text);
+                       if(CAL_STRLEN(text2))   {
+                               free(text);
+                               text = text2;
+                       }
+               }
+
+               if (is_done) {
+                       char* text3 = calloc(strlen(text) + 100, 1);
+                       if(text3 == NULL){
+                               free(text);
+                               c_retv_if(text3 == NULL, NULL);
+                       }
+                       sprintf(text3, "<strikethrough=on strikethrough_color=#D1D1D1>%s</strikethrough>", text);
+                       free(text);
+                       text = text3;
+               }
+
+
+               return text;
+
+       } else if (!CAL_STRCMP(part, "elm.textblock.2")) {
+               if (!is_done)
+                       return NULL;
+
+               return _calendar_get_location(record);
+       } else if (!CAL_STRCMP(part, "elm.text.3")) {
+               if (is_done)
+                       return NULL;
+
+               calendar_time_s due_time;
+               calendar_record_get_caltime(record, _calendar_todo.due_time, &due_time);
+               // TODO:mapi
+//             if (due_time == -1) {
+//                     return strdup("No due date");
+//             }
+
+               return _calendar_get_time_str_for_genlist(record);
+       } else if (!CAL_STRCMP(part, "elm.textblock.3")) {
+               if (!is_done)
+                       return NULL;
+
+               calendar_time_s due_time;
+               calendar_record_get_caltime(record, _calendar_todo.due_time, &due_time);
+               // TODO:mapi
+//             if (due_time == -1) {
+//                     return strdup("No due date");
+//             }
+
+               return _calendar_get_time_str_for_genlist(record);
+       }
+
+       return NULL;
+}
+
+static void __cal_list_base_set_genlist_item_sweep_off(Elm_Object_Item *it)
+{
+       c_retm_if(!it, "it is null");
+       elm_genlist_item_decorate_mode_set(it, "slide", EINA_FALSE);
+       elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_ALWAYS);
+}
+
+static Eina_Bool __cal_list_popup_idler_callback(void *data)
+{
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       cal_list_base_s *p = data;
+
+       if (p->popup) {
+               evas_object_del(p->popup);
+               p->popup = NULL;
+       }
+
+       p->popup_idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static inline void __cal_list_base_delete_popup(cal_list_base_s *p)
+{
+       c_retm_if(!p || !p->popup, "param is null");
+
+       if (p->popup_idler) {
+               ecore_idler_del(p->popup_idler);
+               p->popup_idler = NULL;
+       }
+
+       p->popup_idler = ecore_idler_add(__cal_list_popup_idler_callback, p);
+       c_ret_if(!p->popup_idler);
+}
+
+static void __cal_list_base_show_popup(cal_list_base_s *p, const char *tit, Eina_Bool is_edit);
+
+void __cal_list_edit_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       cal_list_genlist_item_data *item_data = data;
+       c_retm_if(!item_data, "item_data is NULL.");
+
+       cal_list_base_s* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is NULL.");
+
+       calendar_record_h record = item_data->record;
+       c_retm_if(!record, "record is NULL.");
+
+       p->ad->cid = _calendar_get_record_index(record);
+       p->selected_record = record;
+
+       if (_calendar_is_task_record(record)) {
+
+               calendar_record_h origin_record = NULL;
+               int index = _calendar_get_record_index(record);
+               origin_record = _calendar_get_record_with_index(index);
+
+               cal_edit_create_view(p->ad, origin_record, NULL, NULL);
+               calendar_record_destroy(origin_record, true);
+
+               __cal_list_base_set_genlist_item_sweep_off(p->sweep_it);
+
+       } else {
+
+               if (_calendar_is_recurrent_record(record)) {
+                       __cal_list_base_show_popup(p,C_("IDS_CLD_HEADER_EDIT_EVENT"), EINA_TRUE);
+               } else {
+                       calendar_record_h origin_record = NULL;
+                       int index = _calendar_get_record_index(record);
+                       origin_record = _calendar_get_record_with_index(index);
+
+                       cal_edit_create_view(p->ad, origin_record, NULL, NULL);
+                       calendar_record_destroy(origin_record, true);
+
+                       __cal_list_base_set_genlist_item_sweep_off(p->sweep_it);
+               }
+
+       }
+}
+
+static void __cal_list_delete_norepeat_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_list_base_s* p = evas_object_data_get(popup, "data");
+
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->ad, "p->ad is null");
+       c_retm_if(!p->popup, "p->popup is null");
+
+       if (NULL != strstr(elm_object_text_get(button), S_("IDS_COM_BODY_DELETE"))) {
+               _calendar_delete_record_with_index(p->ad->cid);
+       }
+
+       evas_object_del(p->popup);
+       p->popup = NULL;
+}
+
+static void __cal_list_edit_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+       cal_list_base_s* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_BODY_ONLY_THIS_EVENT"))) {
+               cal_edit_create_view(p->ad, p->selected_record, NULL, NULL);
+               __cal_list_base_set_genlist_item_sweep_off(p->sweep_it);
+       }else if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"))) {
+               calendar_record_h origin_record = NULL;
+               int index = _calendar_get_record_index(p->selected_record);
+               origin_record = _calendar_get_record_with_index(index);
+
+               cal_edit_create_view(p->ad, origin_record, NULL, NULL);
+               __cal_list_base_set_genlist_item_sweep_off(p->sweep_it);
+               calendar_record_destroy(origin_record, true);
+       }
+
+       evas_object_del(popup);
+       p->popup = NULL;
+}
+
+static void __cal_list_delete_event(cal_list_base_s* p, Eina_Bool is_delete_all)
+{
+       c_ret_if(!p);
+
+       struct appdata* ad = p->ad;
+       c_ret_if(!ad);
+
+       if (!is_delete_all)
+               _calendar_delete_recurrence_instance(p->selected_record);
+       else
+               _calendar_delete_record_with_index(ad->cid);
+}
+
+static void __cal_list_delete_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_list_base_s* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+
+       if (!strcmp(elm_object_text_get(button), S_("IDS_COM_BODY_DELETE"))) {
+               __cal_list_delete_event(p, EINA_FALSE);
+       } else if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_BODY_ONLY_THIS_EVENT"))) {
+               __cal_list_delete_event(p, EINA_FALSE);
+       } else if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"))) {
+               __cal_list_delete_event(p, EINA_TRUE);
+       }
+
+       evas_object_del(popup);
+       p->popup = NULL;
+}
+
+static void __cal_list_base_show_popup(cal_list_base_s *p, const char *tit, Eina_Bool is_edit)
+{
+       c_retm_if(!p, "p is NULL.");
+
+       void (*callback_func)(void *data, Evas_Object *obj, void *ei) = NULL;
+
+       if (is_edit) {
+               callback_func = __cal_list_edit_popup_response_event_callback;
+
+       } else {
+               callback_func = __cal_list_delete_popup_response_event_callback;
+       }
+
+       p->popup = cal_util_add_popup(p->ad->win, "verticalbuttonstyle", NULL, tit,
+                       callback_func, p, C_("IDS_CLD_BODY_ONLY_THIS_EVENT"),
+                       C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"), S_("IDS_COM_SK_CANCEL"), NULL);
+
+       c_retm_if(!p->popup, "cal_util_add_popup(p->ad->win) returned null");
+
+       evas_object_data_set(p->popup, "priv", p);
+}
+
+void __cal_list_delete_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       cal_list_genlist_item_data *item_data = data;
+       c_retm_if(!item_data, "item_data is NULL.");
+
+       cal_list_base_s* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is NULL.");
+
+       calendar_record_h record = item_data->record;
+       c_retm_if(!record, "record is NULL.");
+
+       p->ad->cid = _calendar_get_record_index(record);
+       p->selected_record = record;
+
+       c_ret_if(p->ad->cid == 0);
+
+       if (_calendar_is_task_record(record)) {
+               p->popup = cal_util_add_popup(p->ad->win, NULL, NULL, S_("IDS_COM_POP_DELETE_Q"), __cal_list_delete_norepeat_popup_response_event_callback, p,
+                       S_("IDS_COM_BODY_DELETE"),S_("IDS_COM_SK_CANCEL"), NULL);
+       } else {
+               if (_calendar_is_recurrent_record(record)) {
+                       __cal_list_base_show_popup(p, C_("IDS_CLD_OPT_DELETE_EVENT"), EINA_FALSE);
+               } else {
+                       p->popup = cal_util_add_popup(p->ad->win, NULL, NULL, S_("IDS_COM_POP_DELETE_Q"), __cal_list_delete_norepeat_popup_response_event_callback, p,
+                               S_("IDS_COM_BODY_DELETE"),S_("IDS_COM_SK_CANCEL"), NULL);
+               }
+       }
+}
+
+static void __cal_list_base_share_popup_response_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+
+       cal_list_base_s* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+
+       evas_object_del(popup);
+       p->popup = NULL;
+
+}
+
+static void __cal_list_genlist_item_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_list_genlist_item_data *item_data = data;
+
+       cal_list_base_s* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!p);
+
+       item_data->checked = elm_check_state_get(obj);
+
+       calendar_record_h record = item_data->record;
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       calendar_record_h todo_original_record = NULL;
+       int todo_id = _calendar_get_record_index(record);
+       error = calendar_db_get_record(_calendar_todo._uri, todo_id, &todo_original_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record(%d) is failed(%x)", todo_id, error);
+
+       if (item_data->checked) {
+               error = calendar_record_set_int(todo_original_record, _calendar_todo.todo_status, CALENDAR_TODO_STATUS_COMPLETED);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+               error = calendar_record_set_int(record, _calendar_todo_calendar_book.todo_status, CALENDAR_TODO_STATUS_COMPLETED);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+       }
+       else {
+               error = calendar_record_set_int(todo_original_record, _calendar_todo.todo_status, CALENDAR_TODO_STATUS_IN_PROCESS);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+               error = calendar_record_set_int(record, _calendar_todo_calendar_book.todo_status, CALENDAR_TODO_STATUS_IN_PROCESS);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+       }
+
+       cal_main_remove_db_changed_callback(p->ad);
+
+       error = calendar_db_update_record(todo_original_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_update_record() is failed(%x)", error);
+
+       cal_main_add_db_changed_callback(p->ad);
+
+       elm_genlist_item_update(item_data->it);
+
+       // TBD: UX not so good if task item is removed from list immediately.
+       if (!p->ad->is_display_complete_todo && item_data->checked)
+               elm_object_item_del(item_data->it);
+}
+
+void __cal_list_base_send_button_callback(void *data, Evas_Object *obj, void *ei);
+
+static Evas_Object* __get_action_button(Evas_Object* obj, const char *part, cal_list_base_s *p, cal_list_genlist_item_data *item_data)
+{
+       Evas_Object *button = elm_button_add(obj);
+       c_retvm_if(!button, NULL, "button is NULL");
+
+       evas_object_data_set(button, "priv", p);
+       Eina_Bool button_disabled_set = EINA_FALSE;
+
+       if (!CAL_STRCMP(part, "elm.slide.swallow.1")) {
+
+               elm_object_style_set(button, "text_only/sweep");
+               elm_object_text_set(button, S_("IDS_COM_SK_EDIT"));
+               evas_object_smart_callback_add(button, "clicked", __cal_list_edit_button_callback, item_data);
+               evas_object_propagate_events_set(button, EINA_FALSE);
+               if(button_disabled_set)
+                       elm_object_disabled_set(button, EINA_TRUE);
+
+       } else if (!CAL_STRCMP(part, "elm.slide.swallow.2")) {
+
+               elm_object_style_set(button, "text_only/sweep");
+               elm_object_text_set(button, S_("IDS_COM_BUTTON_SHARE"));
+               evas_object_smart_callback_add(button, "clicked", __cal_list_base_send_button_callback, item_data);
+               evas_object_propagate_events_set(button, EINA_FALSE);
+
+       } else if (!CAL_STRCMP(part, "elm.slide.swallow.3")) {
+
+               elm_object_style_set(button, "sweep/delete");
+               elm_object_text_set(button, S_("IDS_COM_BODY_DELETE"));
+               evas_object_smart_callback_add(button, "clicked", __cal_list_delete_button_callback, item_data);
+               evas_object_propagate_events_set(button, EINA_FALSE);
+               if(button_disabled_set)
+                       elm_object_disabled_set(button, EINA_TRUE);
+
+       }
+
+       return button;
+}
+
+static Evas_Object *__cal_list_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+
+       cal_list_base_s *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retv_if(!p, NULL);
+
+       cal_list_genlist_item_data *item_data = data;
+
+       Evas_Object *icon = NULL;
+
+       calendar_record_h record = item_data->record;
+
+       if (!CAL_STRCMP(part, "elm.swallow.colorbar")) {
+
+               _calendar_get_calendar_color(record, &calendar_color);
+
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+               return icon;
+
+       } else if (CAL_STRCMP(part, "elm.slide.swallow.1") == 0 ||
+                          CAL_STRCMP(part, "elm.slide.swallow.2") == 0 ||
+                          CAL_STRCMP(part, "elm.slide.swallow.3") == 0) {
+
+               return __get_action_button(obj, part, p, item_data);
+
+       } else if (!CAL_STRCMP(part, "elm.edit.icon.1") ) {
+               icon = elm_check_add(obj);
+               c_retvm_if(!icon, NULL, "elm_check_add returned null");
+
+               int todo_status;
+               calendar_record_get_int(record, _calendar_todo.todo_status, &todo_status);
+
+               if (CALENDAR_TODO_STATUS_COMPLETED == todo_status)
+                       item_data->checked = EINA_TRUE;
+               else if (CALENDAR_TODO_STATUS_IN_PROCESS == todo_status)
+                       item_data->checked = EINA_FALSE;
+
+               elm_check_state_pointer_set(icon, &item_data->checked);
+               evas_object_smart_callback_add(icon, "changed", __cal_list_genlist_item_check_changed_callback, item_data);
+               evas_object_propagate_events_set(icon, EINA_FALSE);
+               evas_object_data_set(icon, "priv", p);
+
+               return icon;
+       } else if (!CAL_STRCMP(part, "elm.icon.1")) {
+               if (!_calendar_has_reminder(record))
+                       return NULL;
+
+               icon = elm_icon_add(obj);
+               c_retv_if(!icon, NULL);
+
+               int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_ALARM);
+               c_retv_if(!r, NULL);
+
+               return icon;
+       } else if (!CAL_STRCMP(part, "elm.icon.2")) {
+               if (!_calendar_is_recurrent_record(record))
+                       return NULL;
+
+               icon = elm_icon_add(obj);
+               c_retv_if(!icon, NULL);
+
+               int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_REPEAT);
+               c_retv_if(!r, NULL);
+
+               return icon;
+       } else if (!CAL_STRCMP(part, "elm.icon.3")) {
+               if (!_calendar_is_facebook_record(record))
+                       return NULL;
+
+               icon = elm_icon_add(obj);
+               c_retv_if(!icon, NULL);
+
+               int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_FACEBOOK);
+               c_retv_if(!r, NULL);
+
+               return icon;
+       } else {
+               DBG("The part %s is unattended for!!!", part);
+       }
+
+       return NULL;
+}
+
+static Evas_Object *__cal_list_get_genlist_task_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+
+       cal_list_base_s *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retv_if(!p, NULL);
+
+       cal_list_genlist_item_data *item_data = data;
+
+       Evas_Object *icon = NULL;
+
+       calendar_record_h record = item_data->record;
+       c_retv_if(!_calendar_is_task_record(record), NULL);
+
+       if (!CAL_STRCMP(part, "elm.swallow.colorbar"))
+       {
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               _calendar_get_calendar_color(record, &calendar_color);
+
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+               return icon;
+       } else if (CAL_STRCMP(part, "elm.slide.swallow.1") == 0 ||
+                          CAL_STRCMP(part, "elm.slide.swallow.2") == 0 ||
+                          CAL_STRCMP(part, "elm.slide.swallow.3") == 0) {
+
+               return __get_action_button(obj, part, p, item_data);
+
+       } else if (!CAL_STRCMP(part, "elm.edit.icon")) {
+               Evas_Object *check = elm_check_add(obj);
+               c_retvm_if(!check, NULL, "elm_check_add returned null");
+
+               item_data->checked = EINA_FALSE;
+
+               calendar_error_e error = CALENDAR_ERROR_NONE;
+
+               calendar_todo_status_e todo_status = 0;
+
+               error = calendar_record_get_int(record, _calendar_todo.todo_status, (int *)&todo_status);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (CALENDAR_TODO_STATUS_COMPLETED == todo_status) {
+                       item_data->checked = EINA_TRUE;
+               } else if (CALENDAR_TODO_STATUS_IN_PROCESS == todo_status) {
+                       item_data->checked = EINA_FALSE;
+               }
+
+               elm_check_state_pointer_set(check, &item_data->checked);
+               evas_object_smart_callback_add(check, "changed", __cal_list_genlist_item_check_changed_callback, item_data);
+               evas_object_propagate_events_set(check, EINA_FALSE);
+               evas_object_data_set(check, "priv", p);
+               return check;
+       }  else if (!CAL_STRCMP(part, "elm.icon.2")) {
+               calendar_error_e error = CALENDAR_ERROR_NONE;
+
+               calendar_todo_priority_e priority = CALENDAR_TODO_PRIORITY_NONE;
+
+               error = calendar_record_get_int(record, _calendar_todo.priority, (int *)&priority);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (priority == CALENDAR_TODO_PRIORITY_HIGH) {
+                       icon = elm_icon_add(obj);
+                       c_retvm_if(!icon, NULL, "elm_icon_add returned null");
+                       int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_PRIORITY);
+                       c_retv_if(!r, NULL);
+               } else if (priority == CALENDAR_TODO_PRIORITY_LOW) {
+                       icon = elm_icon_add(obj);
+                       c_retvm_if(!icon, NULL, "elm_icon_add returned null");
+                       int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_PRIORITY_LOW);
+                       c_retv_if(!r, NULL);
+               }
+
+               return icon;
+       }  else if (!CAL_STRCMP(part, "elm.icon.1")) {
+               if (!_calendar_has_reminder(record))
+                       return NULL;
+
+               icon = elm_icon_add(obj);
+               c_retv_if(!icon, NULL);
+
+               int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_ALARM);
+               c_retv_if(!r, NULL);
+
+               return icon;
+       }  else {
+               DBG("The part %s is unattended for!!!", part);
+       }
+
+       return NULL;
+}
+
+// TODO: Create new type for header item data
+static void __cal_list_delete_genlist_header_item(void *data, Evas_Object *obj)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null.");
+
+       cal_list_genlist_item_data *item_data = data;
+
+       free(item_data->tm);
+       free(item_data);
+}
+
+static void __cal_list_delete_genlist_item(void *data, Evas_Object *obj)
+{
+       c_retm_if(!data, "data is null.");
+       cal_list_genlist_item_data *item_data = data;
+       free(item_data);
+}
+
+Elm_Genlist_Item_Class cal_list_itc_h = {
+       .item_style = "grouptitle",
+       .func.text_get = __cal_list_get_genlist_header_item_label,
+       .func.del = __cal_list_delete_genlist_header_item,
+};
+
+Elm_Genlist_Item_Class cal_list_today_group_itc_h = {
+       .item_style = "today_grouptitle",
+       .func.text_get = __cal_list_get_genlist_custom_group_header_item_label,
+       .func.del = __cal_list_delete_genlist_header_item,
+};
+
+Elm_Genlist_Item_Class cal_list_normal_itc = {
+       .item_style = "4text.1icon.3.calendar.search",
+       .func.text_get = __cal_list_get_genlist_item_label,
+       .func.del = __cal_list_delete_genlist_item,
+       .func.content_get = __cal_list_get_genlist_item_icon,
+       .decorate_item_style = "mode/slide3",
+};
+
+Elm_Genlist_Item_Class cal_task_itc = {
+       .item_style = "3text.4icon.calendar.check",
+       .func.text_get = __cal_list_get_genlist_task_item_label,
+       .func.del = __cal_list_delete_genlist_item,
+       .func.content_get = __cal_list_get_genlist_task_item_icon,
+       .decorate_item_style = "mode/slide3",
+};
+
+Elm_Genlist_Item_Class itc_1text = {
+       .item_style = "1text",
+       .func.content_get = NULL,
+       .func.text_get = __cal_list_base_share_genlist_item_label,
+};
+
+Elm_Genlist_Item_Class itc_1icon = {
+       .item_style = "1icon.custom",
+       .func.content_get = NULL,
+       .func.text_get = NULL,
+       .func.content_get = __cal_list_get_genlist_loadmore_item_icon,
+};
+
+static void __cal_list_via_message_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_list_base_s *p = data;
+       c_retm_if(!p->ad, "p->ad is null");
+
+       c_ret_if(!p->selected_record);
+
+       calendar_record_h record = _calendar_get_record_with_index(_calendar_get_record_index(p->selected_record));
+       c_ret_if(!record);
+
+       _calendar_export_record_to_vcs(record, CAL_MESSAGE_VCS);
+
+       p->ad->ug = cal_launch_ug_with_var(NULL, CAL_MESSAGE_COMPOSER_UG, NULL, "ATTACHFILE", CAL_MESSAGE_VCS, NULL);
+
+       __cal_list_base_set_genlist_item_sweep_off(p->sweep_it);
+
+       __cal_list_base_delete_popup(p);
+}
+
+static void __cal_list_via_email_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_list_base_s *p = data;
+       c_retm_if(!p->ad, "p->ad is null");
+
+       c_ret_if(!p->selected_record);
+
+       calendar_record_h record = _calendar_get_record_with_index(_calendar_get_record_index(p->selected_record));
+       c_ret_if(!record);
+
+       _calendar_export_record_to_vcs(record, CAL_EMAIL_VCS);
+
+       p->ad->ug = cal_launch_ug_with_var(NULL, CAL_EMAIL_COMPOSER_UG, (struct ug_cbs *)p->ad, "RUN_TYPE", "5", "ATTACHFILE", CAL_EMAIL_VCS, NULL);
+
+       __cal_list_base_set_genlist_item_sweep_off(p->sweep_it);
+
+       __cal_list_base_delete_popup(p);
+}
+
+static void __cal_list_via_bluetooth_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_list_base_s *p = data;
+       c_retm_if(!p->ad, "p->ad is null");
+
+       c_ret_if(!p->selected_record);
+
+       calendar_record_h record = _calendar_get_record_with_index(_calendar_get_record_index(p->selected_record));
+       c_ret_if(!record);
+
+       _calendar_export_record_to_vcs(record, CAL_BLUETOOTH_VCS);
+
+       p->ad->ug = cal_launch_ug_with_var(NULL, CAL_BLUETOOTH_UG, NULL, "launch-type", "send", "filecount", "1", "files", CAL_BLUETOOTH_VCS, NULL);
+
+       __cal_list_base_set_genlist_item_sweep_off(p->sweep_it);
+
+       __cal_list_base_delete_popup(p);
+}
+
+void __cal_list_base_send_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       cal_list_genlist_item_data *item_data = data;
+       c_retm_if(!item_data, "item_data is NULL.");
+
+       cal_list_base_s* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is NULL.");
+
+       calendar_record_h record = item_data->record;
+       c_retm_if(!record, "record is NULL.");
+
+       p->ad->cid = _calendar_get_record_index(record);
+       p->selected_record = record;
+
+       p->popup = cal_util_add_popup(p->ad->win, "menustyle", S_("IDS_COM_BUTTON_SHARE"), NULL,
+                               __cal_list_base_share_popup_response_callback, p,
+                               S_("IDS_COM_BODY_CLOSE"),  NULL);
+
+       c_retm_if(!p->popup, "cal_util_add_popup returned null");
+       evas_object_data_set(p->popup, "data", p);
+
+       Evas_Object *genlist = elm_genlist_add(p->popup);
+       c_retm_if(!genlist, "elm_genlist_add returned null");
+
+       elm_genlist_item_append(genlist, &itc_1text, S_("IDS_COM_BODY_EMAIL"), NULL, ELM_GENLIST_ITEM_NONE, __cal_list_via_email_callback, p);
+       elm_genlist_item_append(genlist, &itc_1text, S_("IDS_COM_BODY_MESSAGE"), NULL, ELM_GENLIST_ITEM_NONE, __cal_list_via_message_callback, p);
+       elm_genlist_item_append(genlist, &itc_1text, S_("IDS_COM_BODY_BLUETOOTH"), NULL, ELM_GENLIST_ITEM_NONE, __cal_list_via_bluetooth_callback, p);
+
+       elm_object_content_set(p->popup, genlist);
+       evas_object_show(p->popup);
+}
+
+Elm_Object_Item* cal_list_base_append_genlist_group_item(Evas_Object *genlist,
+               const Elm_Genlist_Item_Class *itc, const struct tm *tm, cal_task_group_item_type type)
+{
+       CAL_FN_START;
+
+       c_retv_if(!genlist, NULL);
+
+       cal_list_base_s* p = CAL_UTIL_GET_PRIV_DATA(genlist);
+       c_retvm_if(!p, NULL, "p is null.");
+
+       struct tm *t = NULL;
+
+       if (tm) {
+               t = calloc(1, sizeof(struct tm));
+
+               *t = *tm;
+       } else {
+               t = NULL;
+       }
+
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));
+
+       item_data->tm = t;
+       item_data->todo_group_type = type;
+
+       item_data->it = elm_genlist_item_append(genlist, itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       if (item_data->it == NULL) {
+               ERR("elm_genlist_item_append failed!");
+
+               free(item_data);
+               CAL_FREE(t);
+
+               return NULL;
+       }
+
+       elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       return item_data->it;
+}
+
+Elm_Object_Item* cal_list_base_prepend_genlist_group_item(Evas_Object *genlist,
+               const Elm_Genlist_Item_Class *itc, const struct tm *tm)
+{
+       CAL_FN_START;
+
+       c_retv_if(!genlist, NULL);
+
+       struct tm *t = calloc(1, sizeof(struct tm));
+
+       *t = *tm;
+
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));
+
+       item_data->tm = t;
+
+       item_data->it = elm_genlist_item_prepend(genlist, itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       if (item_data->it == NULL) {
+               ERR("elm_genlist_item_prepend failed!");
+               free(item_data);
+               return NULL;
+       }
+
+       elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       return item_data->it;
+}
+
+static void __cal_list_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       calendar_record_h record = data;
+
+       Elm_Object_Item *it = elm_genlist_selected_item_get(obj);
+       c_ret_if(!it);
+
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       cal_list_base_s* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "priv is null.");
+
+       p->ad->cid = _calendar_get_record_index(record);
+
+       if (p->select_item_callback != NULL) {
+               p->select_item_callback(p->select_item_callback_data);
+       } else {
+               cal_detail_create_view(p->ad, record, NULL, NULL);
+       }
+}
+
+static Elm_Object_Item* __cal_list_append_genlist_item(Evas_Object *genlist,
+               const Elm_Genlist_Item_Class *itc, calendar_record_h record, Elm_Object_Item *parent)
+{
+       CAL_FN_START;
+
+       cal_list_base_s* p = CAL_UTIL_GET_PRIV_DATA(genlist);
+       c_retv_if(!p, NULL);
+
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));
+
+       item_data->record = record;
+
+       item_data->it = elm_genlist_item_append(genlist, itc, item_data, parent, ELM_GENLIST_ITEM_NONE, __cal_list_genlist_item_select_callback, record);
+       if (!item_data->it) {
+               ERR("item_data->it is null");
+
+               free(item_data);
+
+               return NULL;
+       }
+
+       return item_data->it;
+}
+
+static Elm_Object_Item* __cal_list_prepend_genlist_item(Evas_Object *genlist,
+               const Elm_Genlist_Item_Class *itc, calendar_record_h record, Elm_Object_Item *parent)
+{
+       CAL_FN_START;
+
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));
+
+       item_data->record = record;
+
+       item_data->it = elm_genlist_item_prepend(genlist, itc, item_data, parent, ELM_GENLIST_ITEM_NONE,  __cal_list_genlist_item_select_callback, record);
+       c_retv_if(!item_data->it, NULL);
+
+       return item_data->it;
+}
+
+static void __cal_list_gl_mode_right(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!event_info, "event_info is null");
+       c_retm_if(!obj, "obj is null");
+
+       Elm_Object_Item *it = event_info;
+
+       elm_genlist_item_decorate_mode_set(it, "slide", EINA_TRUE);
+
+       cal_list_base_s* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is null");
+
+       if (p->sweep_it && it != p->sweep_it)
+               elm_genlist_item_decorate_mode_set(p->sweep_it, "slide", EINA_FALSE);
+
+       p->sweep_it = it;
+}
+
+static void __cal_list_gl_mode_left(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!event_info, "event_info is null");
+       Elm_Object_Item *it = event_info;
+
+       elm_genlist_item_decorate_mode_set(it, "slide", EINA_FALSE);
+}
+
+static void __cal_list_gl_mode_cancel(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!obj, "obj is null");
+
+       Elm_Object_Item *it = (Elm_Object_Item *)elm_genlist_decorated_item_get(obj);
+       c_ret_if(!it);
+
+       elm_genlist_item_decorate_mode_set(it, "slide", EINA_FALSE);
+}
+
+Evas_Object* cal_list_base_get_genlist_p(cal_list_base_h list)
+{
+       cal_list_base_s* p = (cal_list_base_s*)list;
+       c_retv_if(!p, NULL);
+       return p->genlist;
+}
+
+static void __cal_list_base_text_refresh_callback(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_list_base_s *p = data;
+
+       cal_main_update_title_text(p->ad);
+       elm_object_text_set(p->ad->new_event_button, S_("IDS_COM_BODY_CREATE"));
+
+       elm_genlist_realized_items_update(p->genlist);
+
+}
+
+void cal_list_base_clear(cal_list_base_h list)
+{
+       CAL_FN_START;
+
+       cal_list_base_s* p = (cal_list_base_s*)list;
+       c_ret_if(!p);
+
+       elm_genlist_clear(p->genlist);
+       p->item_count = 0;
+}
+
+void cal_list_base_delete(cal_list_base_h list)
+{
+       CAL_FN_START;
+
+       cal_list_base_s* p = (cal_list_base_s*)list;
+       c_ret_if(!p);
+
+       if (!p->genlist)
+               return;
+
+       elm_object_part_content_unset(p->parent, "sw");
+
+       evas_object_del(p->genlist);
+
+       if (p->popup_idler) {
+               ecore_idler_del(p->popup_idler);
+               p->popup_idler = NULL;
+       }
+
+       if (p->popup) {
+               evas_object_del(p->popup);
+               p->popup = NULL;
+       }
+
+       p->genlist = NULL;
+
+       cal_lang_manager_remove_callback(__cal_list_base_text_refresh_callback, p);
+}
+
+cal_list_base_h cal_list_base_create(
+                               struct appdata *ad, Evas_Object* parent, const char* part_name, bool enable_sweep_menu,
+                               cal_list_callback select_item_callback, void* select_item_callback_data)
+{
+       CAL_FN_START;
+
+       c_retv_if(ad == NULL, NULL);
+       c_retv_if(parent == NULL, NULL);
+
+       cal_list_base_s* p = (cal_list_base_s*)calloc(1, sizeof(cal_list_base_s));
+       c_retv_if(p == NULL, NULL);
+
+       Evas_Object *genlist = elm_genlist_add(parent);
+       if (genlist == NULL) {
+               c_warn_if(1, "elm_genlist_add failed");
+               free(p);
+               return NULL;
+       }
+
+       p->ad = ad;
+       p->parent = parent;
+       p->select_item_callback = select_item_callback;
+       p->select_item_callback_data = select_item_callback_data;
+
+       evas_object_data_set(genlist, "priv", p);
+
+       if (enable_sweep_menu) {
+               evas_object_smart_callback_add(genlist, "drag,start,right", __cal_list_gl_mode_right, NULL);
+               evas_object_smart_callback_add(genlist, "drag,start,left", __cal_list_gl_mode_left, NULL);
+               evas_object_smart_callback_add(genlist, "drag,start,up", __cal_list_gl_mode_cancel, NULL);
+               evas_object_smart_callback_add(genlist, "drag,start,down", __cal_list_gl_mode_cancel, NULL);
+       }
+
+       elm_object_part_content_set(parent, part_name, genlist);
+
+       p->genlist = genlist;
+
+       cal_lang_manager_add_callback(__cal_list_base_text_refresh_callback, p);
+
+       return p;
+}
+
+void cal_list_base_delete_popup(cal_list_base_h list)
+{
+       cal_list_base_s* p = (cal_list_base_s*)list;
+       c_ret_if(!p);
+
+       if (p->popup) {
+               evas_object_del(p->popup);
+               p->popup = NULL;
+       }
+}
+
+void cal_list_base_delete_popup_idler(cal_list_base_h list)
+{
+       cal_list_base_s* p = (cal_list_base_s*)list;
+       c_ret_if(!p);
+
+       if (p->popup_idler) {
+               ecore_idler_del(p->popup_idler);
+               p->popup_idler = NULL;
+       }
+}
+
+void cal_list_base_add_item(cal_list_base_h list, calendar_record_h record, bool prepend)
+{
+       cal_list_base_s* p = (cal_list_base_s*)list;
+       c_ret_if(!p);
+       c_ret_if(!record);
+
+       if (prepend) {
+               Elm_Object_Item* it = elm_genlist_first_item_get(p->genlist);
+               if (_calendar_is_task_record(record))
+                       __cal_list_prepend_genlist_item(p->genlist, &cal_task_itc, record, NULL);
+               else
+                       __cal_list_prepend_genlist_item(p->genlist, &cal_list_normal_itc, record, NULL);
+       } else {
+               if (_calendar_is_task_record(record))
+                       __cal_list_append_genlist_item(p->genlist, &cal_task_itc, record, NULL);
+               else
+                       __cal_list_append_genlist_item(p->genlist, &cal_list_normal_itc, record, NULL);
+       }
+
+       p->item_count++;
+}
+
+void cal_list_base_add_item_after(cal_list_base_h list, calendar_record_h record, Elm_Object_Item* after)
+{
+       cal_list_base_s* p = (cal_list_base_s*)list;
+       c_ret_if(!p);
+       c_ret_if(!record);
+
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));
+       item_data->record = record;
+
+       if (_calendar_is_task_record(record))
+               item_data->it = elm_genlist_item_insert_after(p->genlist, &cal_task_itc, item_data, NULL, after, ELM_GENLIST_ITEM_NONE, __cal_list_genlist_item_select_callback, record);
+       else
+               item_data->it = elm_genlist_item_insert_after(p->genlist, &cal_list_normal_itc, item_data, NULL, after, ELM_GENLIST_ITEM_NONE, __cal_list_genlist_item_select_callback, record);
+
+       if (!item_data->it) {
+               ERR("item_data->it is null");
+               free(item_data);
+       }
+}
+
+int cal_list_base_get_item_count(cal_list_base_h list)
+{
+       const cal_list_base_s* p = (cal_list_base_s*)list;
+       return p->item_count;
+}
+
+void cal_list_base_set_search_text(cal_list_base_h list, const  char *search_text)
+{
+       cal_list_base_s* p = (cal_list_base_s*)list;
+       c_ret_if(!p);
+
+       p->searchtext = search_text;
+
+}
diff --git a/src/list-base.h b/src/list-base.h
new file mode 100755 (executable)
index 0000000..f27459a
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_LIST_BASE_H__
+#define __CALENDAR_LIST_BASE_H__
+
+extern Elm_Genlist_Item_Class cal_list_itc_h;
+
+typedef enum {
+       CAL_NOT_TASK = -1,
+       CAL_TASK_NONE = 0,
+       CAL_TASK_NO_DUE_DATE,
+       CAL_TASK_DUE_IN_OVER_ONE_WEEK,
+       CAL_TASK_DUE_WITHIN_A_WEEK,
+       CAL_TASK_DUE_TODAY,
+       CAL_TASK_OVER_DUE,
+}cal_task_group_item_type;
+
+// todo: hide this also
+typedef struct {
+       Elm_Object_Item *it;  // Genlist Item pointer
+       calendar_record_h record;
+       Eina_Bool checked;     // Check status
+       struct tm *tm;
+       cal_task_group_item_type todo_group_type;
+/////////// For delete view only /////////////
+// TODO: refactor delete view genlist
+       char *label;
+       char *color_str;
+       Eina_Bool is_before_today;
+//////////////////////////////////////////////
+} cal_list_genlist_item_data;
+
+typedef void* cal_list_base_h;
+
+typedef void (*cal_list_callback)(void* data);
+
+cal_list_base_h cal_list_base_create(
+                               struct appdata *ad, Evas_Object* parent, const char* part_name, bool enable_sweep_menu,
+                               cal_list_callback select_item_callback, void* select_item_callback_data);
+
+void cal_list_base_clear(cal_list_base_h list);
+
+void cal_list_base_delete(cal_list_base_h list);
+
+Evas_Object* cal_list_base_get_genlist_p(cal_list_base_h list);        // todo: get rid of this
+
+void cal_list_base_add_item(cal_list_base_h list, calendar_record_h record, bool prepend);
+
+void cal_list_base_add_item_after(cal_list_base_h list, calendar_record_h record, Elm_Object_Item* after);
+
+int cal_list_base_get_item_count(cal_list_base_h list);
+
+// todo: encapsulated these properly
+Elm_Object_Item* cal_list_base_append_genlist_group_item(Evas_Object *genlist,
+               const Elm_Genlist_Item_Class *itc, const struct tm *tm, cal_task_group_item_type type);
+Elm_Object_Item* cal_list_base_prepend_genlist_group_item(Evas_Object *genlist,
+               const Elm_Genlist_Item_Class *itc, const struct tm *tm);
+
+void cal_list_base_delete_popup(cal_list_base_h list);
+
+void cal_list_base_delete_popup_idler(cal_list_base_h list);
+
+void cal_list_base_set_search_text(cal_list_base_h list, const char *search_text);
+#endif
diff --git a/src/list-broker.c b/src/list-broker.c
new file mode 100755 (executable)
index 0000000..0b93557
--- /dev/null
@@ -0,0 +1,151 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "list-provider.h"
+#include "list-broker.h"
+#include "list-comparator.h"
+#include "query.h"
+
+typedef struct {
+       cal_list_provider_h allday;
+       cal_list_provider_h normal;
+       cal_list_provider_h task;
+       struct tm current_day;
+       int direction;
+} cal_list_broker_s;
+
+cal_list_broker_h cal_list_broker_create(struct tm* start_date, int direction,
+                                         bool include_completed_tasks)
+{
+       cal_list_broker_s* p = calloc(1, sizeof(cal_list_broker_s));
+
+       start_date->tm_hour = 0;
+       start_date->tm_min = 0;
+       start_date->tm_sec = 0;
+
+       calendar_query_h query_allday;
+       calendar_query_h query_normal;
+       calendar_query_h query_task;
+
+       if (direction > 0) {
+               query_allday = cal_query_create_list_more_allday_query(
+                               _calendar_instance_allday_calendar_book.end_time,
+                               start_date, direction);
+               query_normal = cal_query_create_list_more_normal_query(
+                               _calendar_instance_normal_calendar_book.end_time,
+                               start_date, direction);
+               query_task = cal_query_create_list_more_task_query(
+                               start_date, direction, include_completed_tasks);
+       } else {
+               query_allday = cal_query_create_list_more_allday_query(
+                               _calendar_instance_allday_calendar_book.start_time,
+                               start_date, direction);
+               query_normal = cal_query_create_list_more_normal_query(
+                               _calendar_instance_normal_calendar_book.start_time,
+                               start_date, direction);
+               query_task = cal_query_create_list_more_task_query(
+                               start_date, direction, include_completed_tasks);
+       }
+
+       p->allday = cal_list_provider_create(query_allday);
+       p->normal = cal_list_provider_create(query_normal);
+       p->task = cal_list_provider_create(query_task);
+
+       p->direction = direction;
+
+       return p;
+}
+
+bool cal_list_broker_no_more(cal_list_broker_h cursor)
+{
+       cal_list_broker_s* p = (cal_list_broker_s*)cursor;
+       return
+               cal_list_provider_no_more(p->allday) &&
+               cal_list_provider_no_more(p->normal) &&
+               cal_list_provider_no_more(p->task);
+}
+
+void cal_list_broker_fetch(cal_list_broker_h cursor)
+{
+       cal_list_broker_s* p = (cal_list_broker_s*)cursor;
+
+       cal_list_provider_fetch(p->allday);
+       cal_list_provider_fetch(p->normal);
+       cal_list_provider_fetch(p->task);
+}
+
+calendar_record_h cal_list_broker_get_next(cal_list_broker_h cursor, bool* day_has_changed)
+{
+       cal_list_broker_s* p = (cal_list_broker_s*)cursor;
+
+       *day_has_changed = false;
+
+       // Default case - next is indeterminable until more is fetched.
+       if (cal_list_provider_not_ready(p->allday) ||
+               cal_list_provider_not_ready(p->normal) ||
+               cal_list_provider_not_ready(p->task)) {
+               DBG("One of the lists are not ready!");
+               return NULL;
+       }
+
+       // Peak foremost record of each run.
+       // NULL record means there is no more!
+       calendar_record_h allday = cal_list_provider_top_p(p->allday);
+       calendar_record_h normal = cal_list_provider_top_p(p->normal);
+       calendar_record_h task = cal_list_provider_top_p(p->task);
+
+       int winner = cal_list_comparator_determine_next(allday, normal, task,
+                                               _calendar_instance_allday_calendar_book.start_time,
+                                               _calendar_instance_normal_calendar_book.start_time,
+                                               _calendar_todo.due_time,
+                                               p->direction,
+                                               &p->current_day, day_has_changed);
+
+       switch (winner) {
+       case 1:
+               DBG("Winner: allday");
+               return cal_list_provider_pop(p->allday);
+       case 2:
+               DBG("Winner: normal");
+               return cal_list_provider_pop(p->normal);
+       case 3:
+               DBG("Winner: task");
+               return cal_list_provider_pop(p->task);
+       case 0:
+               DBG("Winner: task");
+               return cal_list_provider_pop(p->task);
+       default:
+               DBG("Error!");
+               return NULL;
+       }
+}
+
+const struct tm* cal_list_broker_get_current_day_p(cal_list_broker_h cursor)
+{
+       cal_list_broker_s* p = (cal_list_broker_s*)cursor;
+
+       return &p->current_day;
+}
+
+void cal_list_broker_destroy(cal_list_broker_h cursor)
+{
+       cal_list_broker_s* p = (cal_list_broker_s*)cursor;
+
+       cal_list_provider_destroy(p->allday);
+       cal_list_provider_destroy(p->normal);
+       cal_list_provider_destroy(p->task);
+}
diff --git a/src/list-broker.h b/src/list-broker.h
new file mode 100755 (executable)
index 0000000..f5fb680
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __CALENDAR_LIST_BROKER_H__
+#define __CALENDAR_LIST_BROKER_H__
+
+#include "cld.h"
+
+typedef void* cal_list_broker_h;
+
+cal_list_broker_h cal_list_broker_create(struct tm* start_date, int direction,
+                                         bool include_completed_tasks);
+
+void cal_list_broker_fetch(cal_list_broker_h cursor);
+
+bool cal_list_broker_no_more(cal_list_broker_h cursor);
+
+calendar_record_h cal_list_broker_get_next(cal_list_broker_h cursor, bool* day_has_changed);
+
+const struct tm* cal_list_broker_get_current_day_p(cal_list_broker_h cursor);
+
+void cal_list_broker_destroy(cal_list_broker_h cursor);
+
+#endif
diff --git a/src/list-comparator.c b/src/list-comparator.c
new file mode 100644 (file)
index 0000000..4e67d0e
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "list-comparator.h"
+
+#define INVALID_DATETIME_VALUE 0
+
+// Former has priority in case of a tie
+static int __cal_list_comparator_min(int* v, int n)
+{
+       int min = -1;
+       int i;
+       for (i = 0; i < n; i++) {       // Working upwards guarantees former has priority in case of a tie
+               if (v[i] == INVALID_DATETIME_VALUE)
+                       continue;
+               if (min == -1 || v[i] < v[min]) // Found first valid value or something less than current min
+                       min = i;
+       }
+       return min;
+}
+
+// Latter has priority in case of a tie
+static int __cal_list_comparator_max(int* v, int n)
+{
+       int max = -1;
+       int i;
+       for (i = n - 1; i >= 0; i--) {  // Working downwards guarantees latter has priority in case of a tie
+               if (v[i] == INVALID_DATETIME_VALUE)
+                       continue;
+               if (max == -1 || v[max] < v[i]) // Found first valid value or something greater than current max
+                       max = i;
+       }
+       return max;
+}
+
+static inline int __cal_list_get_day_val(const struct tm* day)
+{
+       return (day->tm_year << 9) | (day->tm_mon << 5) | day->tm_mday;
+}
+
+static inline void __cal_list_get_day_tm(const calendar_time_s* time, struct tm* day)
+{
+       switch (time->type) {
+       case CALENDAR_TIME_UTIME:
+               cal_util_convert_lli_to_tm(NULL, time->time.utime, day);
+               break;
+       case CALENDAR_TIME_LOCALTIME:
+               day->tm_year = time->time.date.year - 1900;
+               day->tm_mon = time->time.date.month - 1;
+               day->tm_mday = time->time.date.mday;
+               break;
+       default:
+               // error
+               break;
+       }
+}
+
+int cal_list_comparator_determine_next(
+               calendar_record_h record1, calendar_record_h record2, calendar_record_h record3,
+               unsigned int time_property_id1, unsigned int time_property_id2, unsigned int time_property_id3,
+               int direction, struct tm* current_day, bool* day_has_changed)
+{
+       struct tm daytm[3];
+       memset(daytm, 0, sizeof(struct tm) * 3);
+
+       // Get the day of each record - value of 0 means it's out of the game.
+       // Since tm_mday is 1 to 31, 0 is not a possible result of __cal_list_get_day_value().
+       int dayval[3] = {INVALID_DATETIME_VALUE, INVALID_DATETIME_VALUE, INVALID_DATETIME_VALUE};
+
+       calendar_time_s time;
+
+       if (record1) {
+               calendar_record_get_caltime(record1, time_property_id1, &time);
+               __cal_list_get_day_tm(&time, &daytm[0]);
+               dayval[0] = __cal_list_get_day_val(&daytm[0]);
+               DBG("Contestant: 1(%s)", cal_util_print_day(&daytm[0]));
+       }
+
+       if (record2) {
+               calendar_record_get_caltime(record2, time_property_id2, &time);
+               __cal_list_get_day_tm(&time, &daytm[1]);
+               dayval[1] = __cal_list_get_day_val(&daytm[1]);
+               DBG("Contestant: 2(%s)", cal_util_print_day(&daytm[1]));
+       }
+
+       if (record3) {
+               calendar_record_get_caltime(record3, time_property_id3, &time);
+               __cal_list_get_day_tm(&time, &daytm[2]);
+               dayval[2] = __cal_list_get_day_val(&daytm[2]);
+               DBG("Contestant: 3(%s)", cal_util_print_day(&daytm[2]));
+       }
+
+       int winner;
+       if (direction > 0)
+               winner = __cal_list_comparator_min(dayval, 3);
+       else
+               winner = __cal_list_comparator_max(dayval, 3);
+
+       *day_has_changed = false;
+
+       if (winner < 0) {
+               DBG("Winner: none!");
+               return 0;
+       }
+
+       if (__cal_list_get_day_val(current_day) != dayval[winner]) {
+               *current_day = daytm[winner];
+               *day_has_changed = true;
+       }
+
+       DBG("Winner: %d", winner + 1);
+       return winner + 1;
+}
diff --git a/src/list-comparator.h b/src/list-comparator.h
new file mode 100644 (file)
index 0000000..8eda75c
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __LIST_COMPARATOR_H_
+#define __LIST_COMPARATOR_H_
+
+#include "cld.h"
+
+int cal_list_comparator_determine_next(
+               calendar_record_h record1, calendar_record_h record2, calendar_record_h record3,
+               unsigned int time_property_id1, unsigned int time_property_id2, unsigned int time_property_id3,
+               int direction, struct tm* current_day, bool* day_has_changed);
+
+#endif
diff --git a/src/list-data.c b/src/list-data.c
new file mode 100644 (file)
index 0000000..7aa4ff4
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "list-data.h"
+#include "list-comparator.h"
+
+typedef struct {
+       calendar_list_h list1;
+       calendar_list_h list2;
+       calendar_list_h list3;
+       unsigned int time_property_id1;
+       unsigned int time_property_id2;
+       unsigned int time_property_id3;
+       struct tm current_day;
+} cal_list_data_s;
+
+static calendar_list_h __cal_list_data_retreive_list(calendar_query_h query)
+{
+       c_retv_if(query == NULL, NULL);
+
+       calendar_list_h list = NULL;
+       calendar_error_e error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_db_get_records_with_query() has failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_list_first() has failed(%x)", error);
+
+       return list;
+}
+
+cal_list_data_h
+       cal_list_data_create(
+               calendar_query_h query1, calendar_query_h query2, calendar_query_h query3,
+               unsigned int time_property_id1, unsigned int time_property_id2, unsigned int time_property_id3)
+{
+       cal_list_data_s* p = (cal_list_data_s*)calloc(1, sizeof(cal_list_data_s));
+
+       p->list1 = __cal_list_data_retreive_list(query1);
+       p->list2 = __cal_list_data_retreive_list(query2);
+       p->list3 = __cal_list_data_retreive_list(query3);
+
+       p->time_property_id1 = time_property_id1;
+       p->time_property_id2 = time_property_id2;
+       p->time_property_id3 = time_property_id3;
+
+       return p;
+}
+
+static calendar_record_h __cal_list_data_get_next(calendar_list_h list)
+{
+       calendar_record_h record = NULL;
+       calendar_error_e error = calendar_list_get_current_record_p(list, &record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() has failed(%x)", error);
+       return record;
+}
+
+calendar_record_h cal_list_data_get_next(cal_list_data_h cursor, bool* day_has_changed)
+{
+       c_retv_if(cursor == NULL, NULL);
+       cal_list_data_s* p = (cal_list_data_s*)cursor;
+
+       // Peak foremost record of each run.
+       // NULL record means there is no more!
+       calendar_record_h record1 = __cal_list_data_get_next(p->list1);
+       calendar_record_h record2 = __cal_list_data_get_next(p->list2);
+       calendar_record_h record3 = __cal_list_data_get_next(p->list3);
+
+       int winner = cal_list_comparator_determine_next(
+                                               record1, record2, record3,
+                                               p->time_property_id1, p->time_property_id2, p->time_property_id3,
+                                               1, &p->current_day, day_has_changed);
+
+       switch (winner) {
+       case 1:
+               DBG("Winner: 1");
+               calendar_list_next(p->list1);
+               return record1;
+       case 2:
+               DBG("Winner: 2");
+               calendar_list_next(p->list2);
+               return record2;
+       case 3:
+               DBG("Winner: 3");
+               calendar_list_next(p->list3);
+               return record3;
+       case 0:
+               DBG("Winner: All records have been processed!");
+               return NULL;
+       default:
+               DBG("Error!");
+               return NULL;
+       }
+}
+
+void cal_list_data_destroy(cal_list_data_h cursor, bool delete_records)
+{
+       c_ret_if(cursor == NULL);
+       cal_list_data_s* p = (cal_list_data_s*)cursor;
+
+       if (p->list1 != NULL)
+               calendar_list_destroy(p->list1, delete_records);
+       if (p->list2 != NULL)
+               calendar_list_destroy(p->list2, delete_records);
+       if (p->list3 != NULL)
+               calendar_list_destroy(p->list3, delete_records);
+
+       free(p);
+}
diff --git a/src/list-data.h b/src/list-data.h
new file mode 100644 (file)
index 0000000..3d5f6a1
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __LIST_BROKER_H__
+#define __LIST_BROKER_H__
+
+#include "cld.h"
+
+typedef void* cal_list_data_h;
+
+cal_list_data_h
+       cal_list_data_create(
+               calendar_query_h query1, calendar_query_h query2, calendar_query_h query3,
+               unsigned int time_property_id1, unsigned int time_property_id2, unsigned int time_property_id3);
+
+calendar_record_h cal_list_data_get_next(cal_list_data_h cursor, bool* day_has_changed);
+
+void cal_list_data_destroy(cal_list_data_h cursor, bool delete_records);
+
+#endif
diff --git a/src/list-delete.c b/src/list-delete.c
new file mode 100755 (executable)
index 0000000..e6ab5bb
--- /dev/null
@@ -0,0 +1,2425 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#include "cld.h"\r
+#include "cld-images.h"\r
+#include "list-base.h"\r
+\r
+static const char *_name;\r
+\r
+///TODO: get full path from caller\r
+#define VFILE_PATH "/opt/usr/media/Others"\r
+\r
+static Elm_Entry_Filter_Limit_Size _limit_20char = {\r
+       .max_char_count = 20,\r
+};\r
+\r
+typedef enum {\r
+       CAL_LIST_DELETE_MODE_NORMAL = 0,\r
+       CAL_LIST_DELETE_MODE_DAY,\r
+       CAL_LIST_DELETE_MODE_TASK,\r
+}cal_list_delete_mode;\r
+\r
+#define MAX_FETCH_COUNT 10\r
+\r
+#define ACCOUNT_LABLE_STRING_LENGTH 128\r
+\r
+typedef struct {\r
+       const char *name;\r
+       struct appdata *ad;\r
+       Evas_Object *parent;\r
+       Evas_Object *ly;\r
+       Evas_Object *no_content;\r
+       Evas_Object *bg;\r
+\r
+       Evas_Object *bt_delete;\r
+       Evas_Object *genlist;\r
+       Evas_Object *select_all_layout;\r
+       Evas_Object *select_all_check;\r
+       Evas_Object *select_before_today_layout;\r
+       Evas_Object *select_before_today_check;\r
+       Evas_Object *box;\r
+       Evas_Object *popup;\r
+\r
+       int totalcnt;\r
+       int offset;\r
+       Ecore_Idler* idler;\r
+       int num_check;\r
+       Evas_Object * selection_info;\r
+\r
+       int genlist_count;\r
+       Elm_Object_Item* navi_item;\r
+\r
+       int more_idx;\r
+\r
+       cal_list_delete_mode mode;\r
+\r
+       Eina_List *append_list;\r
+       int appended_event_count;
+
+       Eina_List *prepend_list;
+       int prepended_event_count;\r
+\r
+       struct tm tm_start;\r
+       struct tm tm_end;\r
+\r
+       Eina_Bool is_today_added; //To check real today item is added.\r
+       int before_today_num_checked;  // record the number of event before today checked\r
+       int before_today_num;  // record the number of event before today\r
+\r
+       struct tm last_itc_h; // To prevent duplicated cal_list_itc_h, in add events & add events idler\r
+\r
+       Elm_Object_Item *load_more_top;\r
+       Elm_Object_Item *load_more_bottom;\r
+\r
+       Eina_List *repeat_list;\r
+\r
+       Eina_Bool is_today_has_instance;\r
+\r
+       Elm_Object_Item *due_today_item;\r
+       Elm_Object_Item *no_due_date_item;\r
+       Elm_Object_Item *due_within_a_week_item;\r
+       Elm_Object_Item *due_in_over_one_week_item;\r
+       Elm_Object_Item *over_due_item;\r
+} cal_list_delete_data;\r
+\r
+static void __cal_list_delete_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info);\r
+static void __cal_list_delete_event_update_noti_received_cb(const char* view_uri, void* user_data);\r
+static char* __cal_list_delete_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);\r
+static Evas_Object *__cal_list_delete_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);\r
+static void __cal_list_delete_update_all_check(cal_list_delete_data* p);\r
+static char* __cal_list_delete_get_genlist_header_item_label(void *data, Evas_Object *obj, const char *part);\r
+static void __cal_list_delete_delete_genlist_header_item(void *data, Evas_Object *obj);\r
+static void __cal_list_delete_delete_genlist_item(void *data, Evas_Object *obj);\r
+static inline Elm_Object_Item* __cal_list_delete_append_genlist_item(Evas_Object *genlist, const Elm_Genlist_Item_Class *itc, calendar_record_h record, Eina_Bool is_before_today, Elm_Object_Item *parent, Evas_Smart_Cb func, const void *func_data);\r
+static char* __cal_list_delete_share_genlist_item_label(void *data, Evas_Object *obj, const char *part);\r
+static Elm_Object_Item * __cal_list_delete_add_load_more_to_genlist(cal_list_delete_data *p, const char *text, struct tm *tm);\r
+static void __cal_list_delete_create_select_all(cal_list_delete_data* p);\r
+static void __cal_list_delete_create_select_before_today(cal_list_delete_data* p);\r
+static char* __cal_list_delete_get_genlist_task_item_label(void *data, Evas_Object *obj, const char *part);\r
+static Evas_Object *__cal_list_delete_get_genlist_task_item_icon(void *data, Evas_Object *obj, const char *part);\r
+static void __cal_list_delete_genlist_item_check_changed_callback(void *data, Evas_Object *obj, void *event_info);\r
+\r
+\r
+static Elm_Genlist_Item_Class cal_list_delete_itc_h = {\r
+       .item_style = "grouptitle",
+       .func.text_get = __cal_list_delete_get_genlist_header_item_label,\r
+       .func.del = __cal_list_delete_delete_genlist_header_item,\r
+};\r
+\r
+static Elm_Genlist_Item_Class cal_list_delete_itc = {\r
+       .item_style = "3text.4icon.calendar.check",
+       .func.text_get = __cal_list_delete_get_genlist_task_item_label,\r
+       .func.del = __cal_list_delete_delete_genlist_item,\r
+       .func.content_get = __cal_list_delete_get_genlist_task_item_icon,\r
+};
+
+static Elm_Genlist_Item_Class cal_list_delete_normal_itc = {\r
+       .item_style = "3text.4icon.calendar.check",\r
+       .func.text_get = __cal_list_delete_get_genlist_item_label,\r
+       .func.del = __cal_list_delete_delete_genlist_item,\r
+       .func.content_get = __cal_list_delete_get_genlist_item_icon,\r
+};\r
+\r
+static Elm_Genlist_Item_Class itc_1text = {
+       .item_style = "1text",
+       .func.content_get = NULL,\r
+       .func.del = __cal_list_delete_delete_genlist_item,\r
+       .func.text_get = __cal_list_delete_share_genlist_item_label,\r
+};\r
+\r
+static _calendar_book_color calendar_color;\r
+\r
+extern Elm_Genlist_Item_Class cal_list_today_group_itc_h;\r
+\r
+//TODO\r
+#define ELM_GENLIST_ITEM_GROUP (1<<1)\r
+\r
+static char* __cal_list_delete_get_genlist_task_item_label(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       c_retv_if(!data, NULL);\r
+       c_retv_if(!obj, NULL);\r
+       c_retv_if(!part, NULL);\r
+\r
+       char *str = NULL;\r
+       char *tmp = NULL;\r
+\r
+       cal_list_genlist_item_data *item_data = data;\r
+\r
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_retv_if(!p, NULL);\r
+\r
+       if (!item_data || !item_data->record)\r
+               return NULL;\r
+\r
+       calendar_record_h record = item_data->record;\r
+       c_retv_if(!record, NULL);\r
+\r
+       Eina_Bool is_done = EINA_FALSE;\r
+       calendar_error_e error = CALENDAR_ERROR_NONE;\r
+\r
+       int todo_status = CALENDAR_TODO_STATUS_COMPLETED;\r
+       error = calendar_record_get_int(record, _calendar_todo_calendar_book.todo_status, &todo_status);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);\r
+\r
+       if (CALENDAR_TODO_STATUS_COMPLETED == todo_status) {\r
+               is_done = EINA_TRUE;\r
+       } else {\r
+               is_done = EINA_FALSE;\r
+       }\r
+\r
+       if (!CAL_STRCMP(part, "elm.textblock.1")) {\r
+               if (is_done) {\r
+                       tmp = _calendar_get_summary(record);\r
+\r
+                       char *text = calloc(1, CAL_STRLEN(tmp)+500);\r
+                       if (!text) {\r
+                               ERR("text is null");\r
+                               free(tmp);\r
+                               return NULL;\r
+                       }\r
+\r
+                       sprintf(text, "<strikethrough=on strikethrough_color=#D1D1D1>%s</strikethrough>", tmp);\r
+\r
+                       free(tmp);\r
+                       tmp = NULL;\r
+                       return text;\r
+               }\r
+               return NULL;\r
+       } else if (!CAL_STRCMP(part, "elm.text.1")) {\r
+               if (!is_done) {\r
+                       str = _calendar_get_summary(record);\r
+\r
+                       if (item_data->color_str) {\r
+                               free(item_data->color_str);\r
+                               item_data->color_str = NULL;\r
+                       }\r
+                       return str;\r
+               }\r
+               return NULL;\r
+       } else if (!CAL_STRCMP(part, "elm.text.3")) {\r
+               if (is_done)\r
+                       return NULL;\r
+\r
+               return _calendar_get_location(record);\r
+\r
+       } else if (!CAL_STRCMP(part, "elm.textblock.3")) {\r
+               if (!is_done)\r
+                       return NULL;\r
+\r
+               return _calendar_get_location(record);\r
+\r
+       } else if (!CAL_STRCMP(part, "elm.text.2")) {\r
+               if (is_done)\r
+                       return NULL;\r
+\r
+               return _calendar_get_time_str_for_genlist(record);\r
+       } else if (!CAL_STRCMP(part, "elm.textblock.2")) {\r
+               if (!is_done)\r
+                       return NULL;\r
+\r
+               return _calendar_get_time_str_for_genlist(record);\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+static Evas_Object *__cal_list_delete_get_genlist_task_item_icon(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       c_retv_if(!data, NULL);\r
+\r
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_retv_if(!p, NULL);\r
+\r
+       cal_list_genlist_item_data *item_data = data;\r
+\r
+       Evas_Object *icon = NULL;\r
+\r
+       calendar_record_h record = item_data->record;\r
+       c_retv_if(!record, NULL);\r
+\r
+       if (!CAL_STRCMP(part, "elm.swallow.colorbar")) {\r
+\r
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));\r
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+\r
+               _calendar_get_calendar_color(record, &calendar_color);\r
+\r
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);\r
+\r
+               return icon;\r
+       }\r
+       else if (!CAL_STRCMP(part, "elm.icon.1") ) {\r
+               calendar_todo_priority_e priority = CALENDAR_TODO_PRIORITY_NONE;\r
+               calendar_error_e error = CALENDAR_ERROR_NONE;\r
+               error = calendar_record_get_int(record, _calendar_todo_calendar_book.priority, (int*)&priority);\r
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);\r
+\r
+               if (priority == CALENDAR_TODO_PRIORITY_HIGH) {\r
+                       icon = elm_icon_add(obj);\r
+                       c_retvm_if(!icon, NULL, "elm_icon_add returned null");\r
+                       int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_PRIORITY);\r
+                       c_retv_if(!r, NULL);\r
+               } else if (priority == CALENDAR_TODO_PRIORITY_LOW) {\r
+                       icon = elm_icon_add(obj);\r
+                       c_retvm_if(!icon, NULL, "elm_icon_add returned null");\r
+                       int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_PRIORITY_LOW);\r
+                       c_retv_if(!r, NULL);\r
+               }\r
+\r
+               return icon;\r
+\r
+       }       else if (!CAL_STRCMP(part, "elm.edit.icon")) {\r
+               icon = elm_check_add(obj);\r
+               c_retvm_if(!icon, NULL, "elm_check_add returned null");\r
+\r
+               elm_check_state_pointer_set(icon, &item_data->checked);\r
+               evas_object_smart_callback_add(icon, "changed", __cal_list_delete_genlist_item_check_changed_callback, item_data);\r
+               evas_object_propagate_events_set(icon, EINA_FALSE);\r
+               evas_object_data_set(icon, "priv", p);\r
+\r
+               return icon;\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+\r
+static char* __cal_list_delete_share_genlist_item_label(void *data, Evas_Object *obj, const char *part)\r
+{
+       c_retv_if(!data || !obj || !part, NULL);\r
+\r
+       cal_list_genlist_item_data *item_data = data;\r
+\r
+       if (!CAL_STRCMP(part, "elm.text")) {\r
+               return strdup(item_data->label);\r
+       }
+
+       return NULL;
+}\r
+\r
+static void __cal_list_delete_delete_genlist_item(void *data, Evas_Object *obj)\r
+{
+       c_retm_if(!data, "data is null.");
+       cal_list_genlist_item_data *item_data = data;\r
+
+       if (item_data->color_str) {
+               free(item_data->color_str);
+               item_data->color_str = NULL;
+       }
+\r
+       if (item_data->label) {\r
+               free(item_data->label);\r
+               item_data->label = NULL;\r
+       }\r
+\r
+       free(item_data);
+}
+\r
+static char* __cal_list_delete_get_genlist_header_item_label(void *data, Evas_Object *obj, const char *part)\r
+{
+       c_retv_if(!data, NULL);
+
+       char buf[128];
+       cal_list_genlist_item_data *item_data = data;\r
+       const struct tm *tm = item_data->tm;
+
+       if (!CAL_STRCMP(part, "elm.text")) {
+               if (!tm) {
+                       return strdup(C_("IDS_CLD_BODY_REPEATING_EVENT"));
+               } else {
+                       cal_util_get_time_text(buf, sizeof(buf), CAL_UTIL_DATE_FORMAT_1, NULL, tm);\r
+                       return strdup(buf);
+               }
+       }
+       return NULL;
+}\r
+\r
+static void __cal_list_delete_delete_genlist_header_item(void *data, Evas_Object *obj)\r
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null.");
+
+       cal_list_genlist_item_data *item_data = data;\r
+
+       free(item_data->tm);
+       free(item_data);
+}\r
+\r
+static void __cal_list_delete_update_small_info(cal_list_delete_data *p, int count)\r
+{\r
+       c_ret_if(!p);\r
+       c_ret_if(!p->ly);\r
+\r
+       if (!count) {\r
+               cal_util_hide_small_information(p->ly);\r
+               elm_object_disabled_set(p->bt_delete, EINA_TRUE);\r
+               return;
+       }\r
+
+       char lable_str[128] = { '\0'};\r
+\r
+       snprintf(lable_str, sizeof(lable_str), "%s (%d)", S_("IDS_COM_POP_SELECTED"), count);\r
+
+       cal_util_show_small_information(p->ly, lable_str, 0.0);\r
+}\r
+\r
+static void __cal_list_delete_genlist_item_check_changed_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+       cal_list_genlist_item_data *item_data = data;\r
+\r
+       Elm_Object_Item *it;\r
+       Eina_List* realized_list, *l;\r
+\r
+       cal_list_delete_data* p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_retm_if(!p, "p is null");\r
+\r
+       if (p->genlist_count <= 0) {\r
+               return;\r
+       }\r
+\r
+       item_data->checked = elm_check_state_get(obj);\r
+       if (item_data->checked) {\r
+               p->num_check++;\r
+               if (item_data->is_before_today) {\r
+                       p->before_today_num_checked++;\r
+               }\r
+       } else {\r
+               p->num_check--;\r
+               if (item_data->is_before_today) {\r
+                       p->before_today_num_checked--;\r
+               }\r
+       }\r
+\r
+       if (item_data->checked || 0 < p->num_check)\r
+               elm_object_disabled_set(p->bt_delete, EINA_FALSE);\r
+       else\r
+               elm_object_disabled_set(p->bt_delete, EINA_TRUE);\r
+\r
+       realized_list = elm_genlist_realized_items_get(p->genlist);\r
+       EINA_LIST_FOREACH(realized_list, l, it) {\r
+               if (it)\r
+                       elm_genlist_item_update(it);\r
+       }\r
+\r
+       if (p->num_check == p->genlist_count) {\r
+               elm_check_state_set(p->select_all_check,EINA_TRUE);\r
+               __cal_list_delete_update_all_check(p);\r
+       } else {\r
+               elm_check_state_set(p->select_all_check,EINA_FALSE);\r
+               __cal_list_delete_update_small_info(p, p->num_check);\r
+       }\r
+\r
+       if ((p->before_today_num_checked == p->before_today_num) && p->before_today_num != 0) {\r
+               elm_check_state_set(p->select_before_today_check, EINA_TRUE);\r
+       } else {\r
+               elm_check_state_set(p->select_before_today_check, EINA_FALSE);\r
+       }\r
+}\r
+\r
+static Evas_Object *__cal_list_delete_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)\r
+{
+       c_retv_if(!data, NULL);
+
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_retv_if(!p, NULL);
+
+       cal_list_genlist_item_data *item_data = data;\r
+\r
+       Evas_Object *icon = NULL;
+
+       calendar_record_h record = item_data->record;
+
+       if (!CAL_STRCMP(part, "elm.swallow.colorbar")) {
+\r
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));\r
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+\r
+               _calendar_get_calendar_color(record, &calendar_color);\r
+\r
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);\r
+\r
+               return icon;\r
+
+
+       } else if (!CAL_STRCMP(part, "elm.edit.icon") ) {\r
+               icon = elm_check_add(obj);\r
+               c_retvm_if(!icon, NULL, "elm_check_add returned null");\r
+\r
+               elm_check_state_pointer_set(icon, &item_data->checked);\r
+               evas_object_smart_callback_add(icon, "changed", __cal_list_delete_genlist_item_check_changed_callback, item_data);\r
+               evas_object_propagate_events_set(icon, EINA_FALSE);\r
+               evas_object_data_set(icon, "priv", p);\r
+\r
+               return icon;\r
+       }\r
+       else if (!CAL_STRCMP(part, "elm.icon.1")) {\r
+               if ( CAL_LIST_DELETE_MODE_NORMAL == p->mode) {\r
+                       if (!_calendar_has_reminder(record))\r
+                               return NULL;\r
+\r
+                       icon = elm_icon_add(obj);\r
+                       c_retv_if(!icon, NULL);
+\r
+                       int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_ALARM);\r
+                       c_retv_if(!r, NULL);
+\r
+                       return icon;\r
+               }
+       }\r
+       else if (!CAL_STRCMP(part, "elm.icon.2")) {
+
+               if ( CAL_LIST_DELETE_MODE_NORMAL == p->mode) {\r
+                       if (!_calendar_is_recurrent_record(record))\r
+                               return NULL;\r
+\r
+                       icon = elm_icon_add(obj);\r
+                       c_retv_if(!icon, NULL);
+\r
+                       int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_REPEAT);\r
+                       c_retv_if(!r, NULL);
+\r
+                       return icon;\r
+               }
+       }\r
+       else if (!CAL_STRCMP(part, "elm.icon.3")) {
+               if ( CAL_LIST_DELETE_MODE_NORMAL == p->mode) {\r
+                       if (_calendar_is_facebook_record(record)) {\r
+                               icon = elm_icon_add(obj);\r
+                               c_retv_if(!icon, NULL);\r
+\r
+                               int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_FACEBOOK);\r
+                               c_retv_if(!r, NULL);\r
+\r
+                               return icon;\r
+                       }\r
+               }\r
+       }\r
+
+       return NULL;
+}
+\r
+static void __cal_list_delete_remove_db_changed_callback(cal_list_delete_data *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!p);\r
+\r
+       calendar_error_e error = CALENDAR_ERROR_NONE;\r
+\r
+       error = calendar_db_remove_changed_cb(_calendar_event._uri, __cal_list_delete_event_update_noti_received_cb, p);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);\r
+\r
+       error = calendar_db_remove_changed_cb(_calendar_todo._uri, __cal_list_delete_event_update_noti_received_cb, p);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_delete_text_refresh_callback(void *data)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!data, "data is null");\r
+       cal_list_delete_data *p = data;\r
+\r
+       if (p->mode == CAL_LIST_DELETE_MODE_TASK)\r
+               elm_object_item_part_text_set(p->navi_item, "default", C_("IDS_CLD_OPT_DELETE_TASK"));\r
+       else\r
+               elm_object_item_part_text_set(p->navi_item, "default", C_("IDS_CLD_BUTTON_DELETE"));\r
+\r
+       if (p->ad->tapbar_focus_view == CV_LIST ) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", C_("IDS_CLD_BODY_ALL_EVENTS"));\r
+       } else if (p->ad->tapbar_focus_view == CV_TODO) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", S_("IDS_COM_BODY_SELECT_ALL"));\r
+       } else if (p->ad->tapbar_focus_view == CV_YEAR) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", C_("IDS_CLD_MBODY_ALL_THIS_YEAR"));\r
+       } else if (p->ad->tapbar_focus_view == CV_MONTH) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", C_("IDS_CLD_BODY_ALL_THIS_MONTH"));\r
+       } else if (p->ad->tapbar_focus_view == CV_WEEK) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", C_("IDS_CLD_BODY_ALL_THIS_WEEK"));\r
+       } else if (p->ad->tapbar_focus_view == CV_DAY) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", C_("IDS_CLD_BODY_ALL_THIS_DAY"));\r
+       }\r
+\r
+       elm_object_text_set(p->bt_delete, S_("IDS_COM_BODY_DELETE"));\r
+\r
+       elm_genlist_realized_items_update(p->genlist);\r
+}\r
+\r
+static void __cal_list_delete_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!data, "data is null");\r
+\r
+       cal_list_delete_data *p = data;\r
+\r
+       p->ad->current_view = p->ad->tapbar_focus_view;\r
+\r
+       if (p->idler) {\r
+               ecore_idler_del(p->idler);\r
+               p->idler = NULL;\r
+       }\r
+\r
+       __cal_list_delete_remove_db_changed_callback(p);\r
+
+       _calendar_free_record_list(&p->append_list);\r
+\r
+       _calendar_free_record_list(&p->prepend_list);\r
+\r
+       if (p->box) {\r
+               elm_box_clear(p->box);\r
+       }\r
+\r
+\r
+       Evas_Object *e_content =  elm_object_part_content_get(p->ly, "sw");\r
+       if (p->no_content &&  p->no_content != e_content) {\r
+               evas_object_del(p->no_content);\r
+       }\r
+\r
+       if (p->popup) {\r
+               evas_object_del(p->popup);\r
+       }\r
+\r
+       cal_lang_manager_remove_callback(__cal_list_delete_text_refresh_callback, p);\r
+\r
+       free(p);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static char* __cal_list_delete_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)\r
+{
+       c_retv_if(!data, NULL);
+       c_retv_if(!obj, NULL);
+       c_retv_if(!part, NULL);
+
+       char *str = NULL;
+
+       cal_list_genlist_item_data *item_data = data;\r
+
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_retv_if(!p, NULL);
+
+       if (!item_data || !item_data->record)
+               return NULL;
+
+       calendar_record_h record = item_data->record;
+       c_retv_if(!record, NULL);
+
+       if (!CAL_STRCMP(part, "elm.text.1")) {
+
+               if (item_data->color_str) {
+                       free(item_data->color_str);
+                       item_data->color_str = NULL;
+               }
+\r
+               str = _calendar_get_summary(record);\r
+               return str;\r
+       } else if (!CAL_STRCMP(part, "elm.text.3")) {
+
+               return _calendar_get_location(record);\r
+\r
+       } else if (!CAL_STRCMP(part, "elm.text.2")) {
+
+               return _calendar_get_time_str_for_genlist(record);\r
+
+       } else if (!CAL_STRCMP(part, "elm.slide.text.1")) {
+
+               return _calendar_get_summary(record);\r
+       }\r
+
+       return NULL;
+}
+\r
+static void __cal_list_delete_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_ret_if(!data);\r
+       c_ret_if(!obj);\r
+\r
+       Eina_List* realized_list, *l;\r
+       Elm_Object_Item* it;\r
+       cal_list_genlist_item_data* item = data;\r
+\r
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_ret_if(!p);\r
+\r
+       if (p->genlist_count <= 0)\r
+               return;\r
+\r
+       item->checked = !(item->checked);\r
+       if (item->checked) {\r
+               p->num_check++;\r
+               if (item->is_before_today) {\r
+                       p->before_today_num_checked++;\r
+               }\r
+       } else {\r
+               p->num_check--;\r
+               if (item->is_before_today) {\r
+                       p->before_today_num_checked--;\r
+               }\r
+       }\r
+\r
+       if (item->checked || 0 < p->num_check) {\r
+               elm_object_disabled_set(p->bt_delete, EINA_FALSE);\r
+       }\r
+       else if (0 >= p->num_check) {\r
+               elm_object_disabled_set(p->bt_delete, EINA_TRUE);\r
+       }\r
+\r
+       it = elm_genlist_selected_item_get(obj);\r
+       if (it)\r
+               elm_genlist_item_selected_set(it, EINA_FALSE);\r
+\r
+\r
+       realized_list = elm_genlist_realized_items_get(obj);\r
+\r
+       EINA_LIST_FOREACH(realized_list, l, it) {\r
+               if (it)\r
+                       elm_genlist_item_update(it);\r
+       }\r
+\r
+       if (p->num_check == p->genlist_count) {\r
+               elm_check_state_set(p->select_all_check,EINA_TRUE);\r
+               __cal_list_delete_update_all_check(p);\r
+       } else {\r
+               elm_check_state_set(p->select_all_check,EINA_FALSE);\r
+               __cal_list_delete_update_small_info(p, p->num_check);\r
+       }\r
+\r
+       if ((p->before_today_num_checked == p->before_today_num) && p->before_today_num != 0) {\r
+               elm_check_state_set(p->select_before_today_check, EINA_TRUE);\r
+       } else {\r
+               elm_check_state_set(p->select_before_today_check, EINA_FALSE);\r
+       }\r
+\r
+}\r
+\r
+static void __cal_list_delete_append_list_with_iter(Eina_List **event_list, calendar_list_h list)\r
+{\r
+       c_ret_if(!event_list);\r
+       c_ret_if(!list);\r
+\r
+       calendar_record_h record = NULL;\r
+\r
+       int i = 0;\r
+       int count = 0;\r
+       calendar_error_e error = CALENDAR_ERROR_NONE;\r
+\r
+       error = calendar_list_get_count(list, &count);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);\r
+\r
+       for (i = 0; i < count; i++) {\r
+               error = calendar_list_get_current_record_p(list, &record);\r
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);\r
+\r
+               *event_list = eina_list_append(*event_list, record);\r
+\r
+               calendar_list_next(list);\r
+       }\r
+}\r
+\r
+static void __cal_list_delete_get_events(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+\r
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+\r
+       struct tm before_today_tm = {0};\r
+
+       cal_util_update_tm_month(&before_today_tm, 1);
+       cal_util_update_tm_day(&before_today_tm, -1);\r
+\r
+       p->append_list = _calendar_get_all_record_list();\r
+       Eina_List *todo_list = _calendar_get_due_date_task_list(&p->tm_start, &p->tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);\r
+       todo_list = eina_list_reverse(todo_list);\r
+\r
+       p->append_list = eina_list_merge(p->append_list, todo_list);\r
+\r
+       CAL_FN_END;\r
+}
+\r
+static void __cal_list_delete_get_events_with_day(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       struct tm tm_start = p->ad->base_tm;
+       tm_start.tm_hour = 0;
+       tm_start.tm_min = 0;
+       tm_start.tm_sec = 0;
+
+       struct tm tm_end = tm_start;
+       tm_end.tm_hour = 23;
+       tm_end.tm_min = 59;
+       tm_end.tm_sec = 59;
+\r
+       p->append_list = _calendar_get_all_instance_list(&tm_start, &tm_end);\r
+\r
+       Eina_List *todo_list =  _calendar_get_due_date_task_list(&tm_start, &tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);\r
+
+       todo_list = eina_list_reverse(todo_list);
+\r
+       p->append_list = eina_list_merge(p->append_list, todo_list);\r
+
+       CAL_FN_END;
+}\r
+\r
+static void __cal_list_delete_get_events_with_year(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);\r
+\r
+       struct tm tm_start;\r
+       struct tm tm_end;\r
+\r
+       time_t start;\r
+       time_t end;\r
+\r
+       cal_util_get_year_time_t(&p->ad->base_tm, &start, &end);\r
+\r
+       cal_util_convert_lli_to_tm(NULL, start, &tm_start);\r
+       cal_util_convert_lli_to_tm(NULL, end, &tm_end);\r
+
+       p->append_list = _calendar_get_all_instance_list(&tm_start, &tm_end);\r
+\r
+
+       Eina_List *todo_list = _calendar_get_due_date_task_list(&tm_start, &tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);\r
+
+       todo_list = eina_list_reverse(todo_list);
+\r
+       p->append_list = eina_list_merge(p->append_list, todo_list);\r
+
+       CAL_FN_END;
+}\r
+\r
+static void __cal_list_delete_get_events_with_month(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);\r
+\r
+       struct tm tm_start;\r
+       struct tm tm_end;\r
+\r
+       time_t start;\r
+       time_t end;\r
+\r
+       cal_util_get_month_time_t(&p->ad->base_tm, &start, &end);\r
+\r
+       cal_util_convert_lli_to_tm(NULL, start, &tm_start);\r
+       cal_util_convert_lli_to_tm(NULL, end, &tm_end);\r
+
+       p->append_list = _calendar_get_all_instance_list(&tm_start, &tm_end);\r
+\r
+       Eina_List *todo_list =  _calendar_get_due_date_task_list(&tm_start, &tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);\r
+
+       todo_list = eina_list_reverse(todo_list);
+\r
+       p->append_list = eina_list_merge(p->append_list, todo_list);\r
+
+       CAL_FN_END;
+}\r
+\r
+static void __cal_list_delete_get_events_with_week(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);\r
+\r
+       struct tm tm_start;\r
+       struct tm tm_end;\r
+\r
+       time_t start;\r
+       time_t end;\r
+\r
+       cal_util_get_week_time_t(&p->ad->base_tm, &start, &end, 0);\r
+\r
+       cal_util_convert_lli_to_tm(NULL, start, &tm_start);\r
+       cal_util_convert_lli_to_tm(NULL, end, &tm_end);\r
+
+       p->append_list = _calendar_get_all_instance_list(&tm_start, &tm_end);\r
+\r
+       Eina_List *todo_list = _calendar_get_due_date_task_list(&tm_start, &tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);\r
+
+       todo_list = eina_list_reverse(todo_list);
+\r
+       p->append_list = eina_list_merge(p->append_list, todo_list);\r
+
+       CAL_FN_END;
+}\r
+\r
+static void __cal_list_delete_get_todo_with_search(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       __cal_list_delete_get_data_with_search(p, _calendar_search_task);\r
+
+       CAL_FN_END;
+}\r
+\r
+static void __cal_list_delete_get_task_list(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       p->tm_start.tm_year = 70;
+       p->tm_end.tm_year = 137;
+
+       p->append_list = _calendar_get_all_task_list2(&p->tm_start, &p->tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);\r
+
+       CAL_FN_END;
+}\r
+\r
+static void __cal_list_delete_update_events(cal_list_delete_data *p)\r
+{
+       c_ret_if(!p);
+
+       _calendar_free_record_list(&p->prepend_list);\r
+       _calendar_free_record_list(&p->append_list);\r
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       p->tm_start.tm_year = 70;\r
+       p->tm_start.tm_mon = 1;\r
+       p->tm_start.tm_mday = 1;
+       p->tm_start.tm_hour = 0;
+       p->tm_start.tm_min = 0;
+       p->tm_start.tm_sec = 0;
+
+       p->tm_end.tm_year = 137;
+       p->tm_end.tm_mon = 12;\r
+       p->tm_end.tm_mday = 31;\r
+       p->tm_end.tm_hour = 23;
+       p->tm_end.tm_min = 59;
+       p->tm_end.tm_sec = 59;
+
+       if (ad->tapbar_focus_view== CV_LIST) {\r
+               __cal_list_delete_get_events(p);\r
+\r
+       } else if (ad->tapbar_focus_view == CV_YEAR) {\r
+               __cal_list_delete_get_events_with_year(p);\r
+\r
+       } else if (ad->tapbar_focus_view == CV_MONTH) {\r
+               __cal_list_delete_get_events_with_month(p);\r
+\r
+       } else if (ad->tapbar_focus_view == CV_WEEK) {\r
+               __cal_list_delete_get_events_with_week(p);\r
+\r
+       } else if (ad->tapbar_focus_view == CV_DAY) {\r
+               __cal_list_delete_get_events_with_day(p);\r
+\r
+       } else if (ad->tapbar_focus_view == CV_TODO) {\r
+               __cal_list_delete_get_task_list(p);\r
+\r
+       }\r
+\r
+}\r
+\r
+static void __cal_list_delete_delete_idler(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       if (!p->idler)
+               return;
+
+       ecore_idler_del(p->idler);
+
+       p->idler = NULL;
+}\r
+\r
+static inline void __cal_list_delete_delete_select_all(cal_list_delete_data *p)\r
+{\r
+       c_ret_if(!p);\r
+\r
+       if (p->select_all_layout) {\r
+               evas_object_del(p->select_all_layout);\r
+               p->select_all_layout = NULL;\r
+       }\r
+}\r
+\r
+static inline void __cal_list_delete_delete_select_before_today(cal_list_delete_data *p)\r
+{\r
+       c_ret_if(!p);\r
+\r
+       if (p->select_before_today_layout) {\r
+               evas_object_del(p->select_before_today_layout);\r
+               p->select_before_today_layout = NULL;\r
+       }\r
+}
+\r
+static void __cal_list_delete_delete_no_contents(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);\r
+       c_ret_if(!p->box);\r
+       c_ret_if(!p->no_content);\r
+
+       elm_object_part_content_unset(p->ly, "sw");\r
+
+       evas_object_del(p->no_content);\r
+
+       p->no_content = NULL;\r
+\r
+       elm_object_part_content_set(p->ly, "sw", p->box);\r
+       evas_object_show(p->box);\r
+}\r
+\r
+static void __cal_list_delete_create_genlist(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       if (p->genlist)
+               return;
+
+       Evas_Object *genlist = elm_genlist_add(p->ly);\r
+       c_ret_if(!genlist);
+\r
+       p->genlist = genlist;\r
+\r
+\r
+       elm_genlist_decorate_mode_set(p->genlist, EINA_TRUE);\r
+       evas_object_data_set(p->genlist, "priv", p);\r
+\r
+       evas_object_size_hint_weight_set(p->genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+       evas_object_size_hint_align_set(p->genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+\r
+       evas_object_show(p->genlist);\r
+       elm_object_focus_set(p->genlist, EINA_TRUE);\r
+       elm_box_pack_end(p->box, p->genlist);\r
+}
+\r
+static inline Elm_Object_Item* __cal_list_delete_append_genlist_group_item(Evas_Object *genlist,\r
+               const Elm_Genlist_Item_Class *itc, struct tm *tm, cal_task_group_item_type type)
+{
+       CAL_FN_START;
+
+       c_retv_if(!genlist, NULL);
+
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(genlist);\r
+       c_retvm_if(!p, NULL, "p is null.");
+
+       if (p->mode == CAL_LIST_DELETE_MODE_DAY)\r
+               return NULL;
+
+       struct tm *t;\r
+\r
+       if (tm) {\r
+               t = calloc(1, sizeof(struct tm));
+               c_retv_if(!t, NULL);\r
+
+               *t = *tm;
+       } else {\r
+               t = NULL;\r
+       }\r
+
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));\r
+
+       item_data->tm = t;
+       item_data->checked = EINA_FALSE;\r
+       item_data->todo_group_type = type;\r
+
+       item_data->it = elm_genlist_item_append(genlist, itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       if (item_data->it == NULL) {\r
+               ERR("elm_genlist_item_append failed!");\r
+               free(p);\r
+               return NULL;\r
+       }\r
+
+       elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       return item_data->it;
+}
+\r
+static inline Elm_Object_Item* __cal_list_delete_append_genlist_item(Evas_Object *genlist,\r
+               const Elm_Genlist_Item_Class *itc, calendar_record_h record, Eina_Bool is_before_today, Elm_Object_Item *parent,
+               Evas_Smart_Cb func, const void *func_data)
+{
+       CAL_FN_START;
+
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(genlist);\r
+       c_retv_if(!p, NULL);
+
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));\r
+       c_retv_if(!item_data, NULL);\r
+\r
+       item_data->record = record;\r
+       item_data->is_before_today = is_before_today;\r
+       item_data->checked = EINA_FALSE;\r
+\r
+       item_data->it = elm_genlist_item_append(genlist, itc, item_data, parent, ELM_GENLIST_ITEM_NONE, func, item_data);\r
+       if (item_data->it == NULL) {\r
+               ERR("elm_genlist_item_append failed!");\r
+               free(p);\r
+               return NULL;\r
+       }
+
+       return item_data->it;
+}\r
+\r
+static void __cal_list_delete_append_event_to_genlist(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       struct appdata* ad = p->ad;
+       c_ret_if(!ad);
+
+       Elm_Object_Item *it = NULL;
+       long long int time_previous = 0;
+\r
+       Eina_List *l, *list;
+       calendar_record_h record;
+       int appended_event_count = 0;
+       struct tm tm_current;
+       calendar_time_s end_time = {0};\r
+
+       if (0 < p->appended_event_count) {
+               list = eina_list_nth_list(p->append_list, p->appended_event_count - 1);
+               c_ret_if(!list);
+
+               record = eina_list_data_get(list);
+               c_ret_if(!record);
+\r
+               Eina_Bool is_todo = EINA_FALSE;\r
+               if (_calendar_is_task_record(record)) {\r
+                       is_todo = EINA_TRUE;\r
+               } else {\r
+                       is_todo = EINA_FALSE;\r
+               }\r
+\r
+               if (is_todo) {\r
+                       _calendar_get_end_time(record, &end_time);\r
+\r
+                       cal_util_convert_lli_to_tm(NULL, end_time.time.utime, &tm_current);\r
+               } else {\r
+                       calendar_time_s start_time = {0};\r
+                       _calendar_get_start_time(record, &start_time);\r
+\r
+                       if (_calendar_is_allday_record(record)) {\r
+                               tm_current.tm_year = start_time.time.date.year - 1900;
+                               tm_current.tm_mon = start_time.time.date.month - 1;
+                               tm_current.tm_mday =  start_time.time.date.mday;
+                       } else {
+                               cal_util_convert_lli_to_tm(NULL, start_time.time.utime, &tm_current);
+                       }\r
+               }
+
+               time_previous = (tm_current.tm_year << 9) | (tm_current.tm_mon << 5) | tm_current.tm_mday;
+
+               list = eina_list_next(list);
+               c_ret_if(!list);
+       }
+       else
+               list = p->append_list;
+
+       EINA_LIST_FOREACH(list, l, record) {\r
+
+               if (!record)
+                       continue;
+
+               tm_current = p->ad->base_tm;\r
+
+               Eina_Bool is_todo = EINA_FALSE;\r
+               Eina_Bool is_before_today = EINA_FALSE;\r
+               Eina_Bool is_repeat_event = EINA_FALSE;\r
+               if (_calendar_is_task_record(record)) {\r
+                       is_todo = EINA_TRUE;\r
+               } else {\r
+                       is_todo = EINA_FALSE;\r
+               }\r
+\r
+               if (is_todo) {\r
+                       _calendar_get_end_time(record, &end_time);\r
+                       cal_util_convert_lli_to_tm(NULL, end_time.time.utime, &tm_current);\r
+\r
+                       if (tm_current.tm_mday == 0)\r
+                               continue;\r
+               } else {\r
+                       if (ad->tapbar_focus_view == CV_LIST) {\r
+                               calendar_record_h original_record = NULL;\r
+\r
+                               int original_event_id = _calendar_get_record_index(record);\r
+                               if (0 < original_event_id) {\r
+                                       int r = calendar_db_get_record(_calendar_event._uri, original_event_id, &original_record);\r
+                                       c_retm_if(r != CALENDAR_ERROR_NONE, "calendar_db_get_record(%d) is failed(%d)", original_event_id, r);\r
+                               }\r
+\r
+                               if (!original_record) {\r
+                                       original_record = record;\r
+                               }\r
+\r
+                               if (_calendar_is_recurrent_record(original_record)) {\r
+                                       Eina_List *ll;\r
+                                       void *id;\r
+                                       EINA_LIST_FOREACH(p->repeat_list, ll, id) {\r
+                                               if ((int)id == original_event_id) {\r
+                                                       is_repeat_event = EINA_TRUE;\r
+                                                       break;\r
+                                               }\r
+                                       }\r
+\r
+                                       if (is_repeat_event) {\r
+                                               continue;\r
+                                       } else {\r
+                                               p->repeat_list = eina_list_append(p->repeat_list, (void *)original_event_id);\r
+                                       }\r
+                               }\r
+                       }\r
+                       calendar_time_s start_time = {0};\r
+                       _calendar_get_end_time(record, &start_time);\r
+\r
+                       if (_calendar_is_allday_record(record)) {\r
+                               tm_current.tm_year = start_time.time.date.year - 1900;\r
+                               tm_current.tm_mon = start_time.time.date.month - 1;\r
+                               tm_current.tm_mday =  start_time.time.date.mday;
+                       }\r
+                       else
+                               cal_util_convert_lli_to_tm(NULL, start_time.time.utime, &tm_current);
+               }\r
+
+               long long int time_today = (ad->today_tm.tm_year << 9) | (ad->today_tm.tm_mon << 5) | ad->today_tm.tm_mday;\r
+               long long int time_current = (tm_current.tm_year << 9) | (tm_current.tm_mon << 5) | tm_current.tm_mday;
+               if (time_today > time_current) {\r
+                       p->before_today_num++;\r
+                       is_before_today = EINA_TRUE;\r
+               }\r
+\r
+               if (p->mode == CAL_LIST_DELETE_MODE_NORMAL) {\r
+                       if (time_previous != time_current) {\r
+                               if ((time_current == time_today) && (!p->is_today_has_instance)) {\r
+                                       it = __cal_list_delete_append_genlist_group_item(p->genlist, &cal_list_today_group_itc_h, &tm_current, CAL_NOT_TASK);\r
+                                       p->is_today_has_instance = EINA_TRUE;\r
+                               } else {\r
+                                       it = __cal_list_delete_append_genlist_group_item(p->genlist, &cal_list_delete_itc_h, &tm_current, CAL_NOT_TASK);\r
+                               }\r
+\r
+                               time_previous = time_current;\r
+\r
+                               if (time_today == time_current) {\r
+                                       ad->today_item = it;\r
+                                       p->is_today_added = EINA_TRUE;\r
+                               }\r
+\r
+                               if (!p->is_today_added) {\r
+                                       if (time_today < time_current) {\r
+                                               ad->today_item = it;\r
+                                               p->is_today_added = EINA_TRUE;\r
+                                       }\r
+                                       else\r
+                                               ad->today_item = it;\r
+                               }\r
+\r
+                               p->last_itc_h = tm_current;\r
+                       }\r
+               } else if (p->mode == CAL_LIST_DELETE_MODE_TASK) {\r
+                       if (end_time.time.utime == CALENDAR_TODO_NO_DUE_DATE) {\r
+                               if (!p->no_due_date_item) {\r
+                                       it = p->no_due_date_item = __cal_list_delete_append_genlist_group_item(p->genlist, &cal_list_itc_h, NULL, CAL_TASK_NO_DUE_DATE);\r
+                               }\r
+                       } else {\r
+                               struct tm tm_today = ad->today_tm;\r
+                               tm_today.tm_hour = 0;\r
+                               tm_today.tm_min = 0;\r
+                               tm_today.tm_sec = 0;\r
+                               long long int today;\r
+                               cal_util_convert_tm_to_lli(NULL, &tm_today, &today);\r
+\r
+                               struct tm tm_due_date = {0};\r
+                               cal_util_convert_lli_to_tm(NULL, end_time.time.utime, &tm_due_date);\r
+                               tm_due_date.tm_hour = 0;\r
+                               tm_due_date.tm_min= 0;\r
+                               tm_due_date.tm_sec = 0;\r
+                               long long int due_date;\r
+                               cal_util_convert_tm_to_lli(NULL, &tm_due_date, &due_date);\r
+\r
+                               long long int diff = due_date - today;\r
+\r
+                               if (diff < 0) {\r
+                                       if (!p->over_due_item) {\r
+                                               p->over_due_item = __cal_list_delete_append_genlist_group_item(\r
+                                                               p->genlist, &cal_list_itc_h, NULL, CAL_TASK_OVER_DUE);\r
+                                       }\r
+                               } else if (diff == 0) { // due_date today\r
+                                       if (!p->due_today_item) {\r
+                                               p->due_today_item = __cal_list_delete_append_genlist_group_item(\r
+                                                               p->genlist, &cal_list_itc_h, NULL, CAL_TASK_DUE_TODAY);\r
+                                       }\r
+                               } else if (diff < 7 * 24 * 60 * 60) {\r
+                                       if (!p->due_within_a_week_item) {\r
+                                               p->due_within_a_week_item = __cal_list_delete_append_genlist_group_item(\r
+                                                               p->genlist, &cal_list_itc_h, NULL, CAL_TASK_DUE_WITHIN_A_WEEK);\r
+                                       }\r
+                               } else {\r
+                                       if (!p->due_in_over_one_week_item) {\r
+                                               p->due_in_over_one_week_item = __cal_list_delete_append_genlist_group_item(\r
+                                                               p->genlist, &cal_list_itc_h, NULL, CAL_TASK_DUE_IN_OVER_ONE_WEEK);\r
+                                       }\r
+                               }\r
+                       }\r
+               }\r
+\r
+               switch (p->mode) {
+               case CAL_LIST_DELETE_MODE_NORMAL:\r
+                       if (is_todo) {\r
+                               __cal_list_delete_append_genlist_item(p->genlist, &cal_list_delete_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       } else {\r
+                               __cal_list_delete_append_genlist_item(p->genlist, &cal_list_delete_normal_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       }\r
+                       p->genlist_count++;\r
+                       break;\r
+               case CAL_LIST_DELETE_MODE_DAY:\r
+                       __cal_list_delete_append_genlist_item(p->genlist, &cal_list_delete_normal_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       p->genlist_count++;\r
+                       break;
+               case CAL_LIST_DELETE_MODE_TASK:\r
+                       __cal_list_delete_append_genlist_item(p->genlist, &cal_list_delete_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       p->genlist_count++;\r
+                       break;
+               default:
+                       __cal_list_delete_append_genlist_item(p->genlist, &cal_list_delete_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       p->genlist_count++;\r
+                       break;\r
+               }
+
+               appended_event_count++;
+
+               if (10 < appended_event_count)
+                       break;
+
+       }
+
+       p->appended_event_count += appended_event_count;
+
+       CAL_FN_END;
+}
+\r
+static inline Elm_Object_Item* __cal_list_delete_prepend_genlist_group_item(Evas_Object *genlist,\r
+               const Elm_Genlist_Item_Class *itc, struct tm *tm)
+{
+       CAL_FN_START;
+
+       c_retv_if(!genlist, NULL);
+
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(genlist);\r
+       c_retv_if(!p, NULL);
+
+       if (p->mode == CAL_LIST_DELETE_MODE_TASK || p->mode == CAL_LIST_DELETE_MODE_DAY)\r
+               return NULL;
+
+       struct tm *t = calloc(1, sizeof(struct tm));
+\r
+       *t = *tm;
+
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));\r
+\r
+       item_data->tm = t;
+       item_data->checked = EINA_FALSE;\r
+
+       item_data->it = elm_genlist_item_prepend(genlist, itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       c_retv_if(!item_data->it, NULL);
+
+       elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+       return item_data->it;
+}
+\r
+static inline Elm_Object_Item* __cal_list_delete_prepend_genlist_item(Evas_Object *genlist,\r
+               const Elm_Genlist_Item_Class *itc, calendar_record_h record, Eina_Bool is_before_today, Elm_Object_Item *parent,
+               Evas_Smart_Cb func, const void *func_data)
+{
+       CAL_FN_START;
+\r
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(genlist);\r
+       c_retv_if(!p, NULL);\r
+\r
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));\r
+\r
+       item_data->record = record;
+       item_data->is_before_today = is_before_today;\r
+       item_data->checked = EINA_FALSE;\r
+\r
+       item_data->it = elm_genlist_item_prepend(genlist, itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, func, item_data);\r
+       if (!item_data->it) {\r
+               ERR("item_data->it is null");\r
+\r
+               free(item_data);\r
+\r
+               return NULL;\r
+       }\r
+
+       return item_data->it;
+}\r
+\r
+static void __cal_list_delete_prepend_event_to_genlist(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!p->prepend_list);
+
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null.");
+
+       Elm_Object_Item *it = NULL;
+       int time_previous = 0;
+
+       Eina_List *l, *list;
+       calendar_record_h record;
+       int prepended_event_count = 0;
+       struct tm tm_previous = {0};
+       struct tm tm_current = {0};
+
+       int time_today = (ad->today_tm.tm_year << 9) | (ad->today_tm.tm_mon << 5) | ad->today_tm.tm_mday;\r
+\r
+       if (0 < p->prepended_event_count) {
+               list = eina_list_nth_list(p->prepend_list, p->prepended_event_count);
+               c_ret_if(!list);
+       }
+       else
+               list = p->prepend_list;
+
+       EINA_LIST_FOREACH(list, l, record) {
+
+               if (!record)
+                       continue;
+
+               Eina_Bool is_todo = EINA_FALSE;\r
+               Eina_Bool is_before_today = EINA_FALSE;\r
+\r
+               if(_calendar_is_task_record(record)) {\r
+                       is_todo = EINA_TRUE;\r
+               } else {\r
+                       is_todo = EINA_FALSE;\r
+               }\r
+\r
+               tm_current = p->ad->base_tm;
+
+               if (is_todo) {\r
+                       calendar_time_s end_time = {0};\r
+                       _calendar_get_end_time(record, &end_time);\r
+                       cal_util_convert_lli_to_tm(NULL, end_time.time.utime, &tm_current);\r
+\r
+                       if (tm_current.tm_mday == 0)\r
+                               continue;\r
+               }\r
+               else {\r
+                       calendar_time_s start_time = {0};\r
+                       _calendar_get_end_time(record, &start_time);\r
+\r
+                       if (_calendar_is_allday_record(record)) {\r
+                               tm_current.tm_year = start_time.time.date.year - 1900;\r
+                               tm_current.tm_mon = start_time.time.date.month - 1;\r
+                               tm_current.tm_mday =  start_time.time.date.mday;\r
+                       }\r
+                       else\r
+                               cal_util_convert_lli_to_tm(NULL, start_time.time.utime, &tm_current);\r
+               }\r
+
+               int time_current = (tm_current.tm_year << 9) | (tm_current.tm_mon << 5) | tm_current.tm_mday;
+
+               if (time_current < time_today) {\r
+                       p->before_today_num++;\r
+                       is_before_today = EINA_TRUE;\r
+               }\r
+\r
+               if (time_previous && time_previous != time_current)
+                       it = __cal_list_delete_prepend_genlist_group_item(p->genlist, &cal_list_delete_itc_h, &tm_previous);\r
+
+               switch (p->mode) {
+               case CAL_LIST_DELETE_MODE_NORMAL:\r
+                       if (is_todo) {\r
+                               __cal_list_delete_prepend_genlist_item(p->genlist, &cal_list_delete_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       } else {\r
+                               __cal_list_delete_prepend_genlist_item(p->genlist, &cal_list_delete_normal_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       }\r
+                       p->genlist_count++;\r
+                       break;
+               case CAL_LIST_DELETE_MODE_DAY:\r
+                       __cal_list_delete_prepend_genlist_item(p->genlist, &cal_list_delete_normal_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       p->genlist_count++;\r
+                       break;\r
+               case CAL_LIST_DELETE_MODE_TASK:\r
+                       __cal_list_delete_prepend_genlist_item(p->genlist, &cal_list_delete_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       p->genlist_count++;\r
+                       break;\r
+               default:
+                       __cal_list_delete_prepend_genlist_item(p->genlist, &cal_list_delete_itc, record, is_before_today, it, __cal_list_delete_genlist_item_select_callback, record);\r
+                       p->genlist_count++;\r
+               }
+
+
+               time_previous = time_current;
+               tm_previous = tm_current;
+
+               prepended_event_count++;
+
+               if (10 < prepended_event_count)
+                       break;
+
+       }
+
+       __cal_list_delete_prepend_genlist_group_item(p->genlist, &cal_list_delete_itc_h, &tm_current);\r
+
+       p->prepended_event_count += prepended_event_count;
+
+       CAL_FN_END;
+}
+\r
+static Eina_Bool __cal_list_delete_check_idler_condition(cal_list_delete_data *p)\r
+{
+       c_retv_if(!p, ECORE_CALLBACK_CANCEL);
+
+       if (p->appended_event_count < eina_list_count(p->append_list) ||
+               p->prepended_event_count < eina_list_count(p->prepend_list)) {
+
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if (p->idler) {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}\r
+\r
+static void __cal_list_delete_delete_load_more(Elm_Object_Item *item)\r
+{
+       c_ret_if(!item);
+\r
+       elm_object_item_del(item);
+}\r
+\r
+static void __cal_list_delete_prepend_more(void *data, Evas_Object *obj, void *event_info)\r
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_list_delete_data *p = data;\r
+
+       __cal_list_delete_delete_load_more(p->load_more_top);\r
+
+       struct tm tm_start= p->tm_start;
+       struct tm tm_end = tm_start;
+
+       cal_util_update_tm_month(&tm_start, -3);
+
+       Eina_List *prepend_more_list = _calendar_get_all_instance_list(&tm_start, &tm_end);\r
+
+       prepend_more_list = eina_list_reverse(prepend_more_list);
+
+       p->tm_start = tm_start;
+
+       p->prepend_list = eina_list_merge(p->prepend_list, prepend_more_list);
+
+       __cal_list_delete_prepend_event_to_genlist(p);\r
+
+       // TODO:i18n
+       p->load_more_top= __cal_list_delete_add_load_more_to_genlist(p, "Load events before", &p->tm_start);\r
+}
+\r
+static void __cal_list_delete_append_more(void *data, Evas_Object *obj, void *event_info)\r
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_list_delete_data *p = data;\r
+
+       __cal_list_delete_delete_load_more(p->load_more_bottom);\r
+
+       struct tm tm_start= p->tm_end;
+       struct tm tm_end = tm_start;
+
+       cal_util_update_tm_month(&tm_end, 3);
+
+       Eina_List *append_more_list = _calendar_get_all_instance_list(&tm_start, &tm_end);\r
+
+       p->tm_end = tm_end;
+
+       p->append_list = eina_list_merge(p->append_list, append_more_list);
+
+       __cal_list_delete_append_event_to_genlist(p);\r
+
+       // TODO:i18n
+       p->load_more_bottom = __cal_list_delete_add_load_more_to_genlist(p, "Load events after", &p->tm_end);\r
+}
+\r
+static Elm_Object_Item * __cal_list_delete_add_load_more_to_genlist(cal_list_delete_data *p, const char *text, struct tm *tm)\r
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!p->genlist, NULL);
+       c_retv_if(!text, NULL);
+       c_retv_if(!tm, NULL);
+
+       char time[32] = {0};
+
+       cal_util_get_time_text(time, sizeof(time), CAL_UTIL_DATE_FORMAT_8, NULL, tm);
+
+       Elm_Object_Item *load_more = NULL;
+\r
+       cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));\r
+\r
+       item_data->label = calloc(1, sizeof(time) + strlen(text));\r
+\r
+       snprintf(item_data->label, sizeof(time) + strlen(text), "%s %s", text, time);\r
+\r
+       if (p->tm_start.tm_year == tm->tm_year\r
+               && p->tm_start.tm_mon == tm->tm_mon
+               && p->tm_start.tm_mday == tm->tm_mday)\r
+               load_more = elm_genlist_item_prepend(p->genlist, &itc_1text, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_delete_prepend_more, p);\r
+       else
+               load_more = elm_genlist_item_append(p->genlist, &itc_1text, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_delete_append_more, p);\r
+
+       if (!load_more) {\r
+               ERR("load_more is null");\r
+\r
+               CAL_FREE(item_data->label);\r
+\r
+               CAL_FREE(item_data);\r
+\r
+               return NULL;\r
+       }\r
+
+       return load_more;
+}
+\r
+Eina_Bool __cal_list_delete_idler_callback(void* data)\r
+{
+       CAL_FN_START;
+
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       cal_list_delete_data *p = data;\r
+
+       c_retv_if(!p->idler, ECORE_CALLBACK_CANCEL);
+
+       __cal_list_delete_append_event_to_genlist(p);\r
+
+       __cal_list_delete_prepend_event_to_genlist(p);\r
+
+       Eina_Bool ret = __cal_list_delete_check_idler_condition(p);\r
+
+       CAL_FN_END;
+
+       return ret;
+}
+\r
+static void __cal_list_delete_add_idler(cal_list_delete_data *p)\r
+{
+       c_ret_if(!p);\r
+       c_ret_if(!p->ad);\r
+
+       if (p->appended_event_count < eina_list_count(p->append_list) ||
+               p->prepended_event_count < eina_list_count(p->prepend_list)) {
+
+               if (p->idler)
+                       ecore_idler_del(p->idler);
+
+               p->idler = ecore_idler_add(__cal_list_delete_idler_callback, p);\r
+               c_ret_if(!p->idler);
+
+       }\r
+}\r
+\r
+static void __cal_list_delete_delete_genlist(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       if (!p->genlist)
+               return;
+
+       elm_object_part_content_unset(p->ly, "sw");\r
+
+       evas_object_del(p->genlist);
+
+       p->genlist = NULL;
+}\r
+\r
+static void __cal_list_delete_create_no_contents(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!p->ly);\r
+
+       if (p->no_content)\r
+               return;
+
+       char* title = NULL;
+
+       if (p->mode == CAL_LIST_DELETE_MODE_TASK)\r
+               title = C_("IDS_TASK_BODY_NO_TASKS");
+       else
+               title = C_("IDS_CLD_BODY_NO_EVENTS");
+
+       Evas_Object *no_content = cal_util_add_nocontents(p->ly, title);\r
+       c_ret_if(!no_content);\r
+\r
+       elm_object_part_content_unset(p->ly, "sw");\r
+\r
+       if (p->box)\r
+               evas_object_hide(p->box);\r
+\r
+       elm_object_part_content_set(p->ly, "sw", no_content);\r
+
+       p->no_content = no_content;\r
+}\r
+\r
+static void __cal_list_delete_update_genlist(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       __cal_list_delete_delete_idler(p);\r
+
+       if (p->genlist) {\r
+               elm_genlist_clear(p->genlist);
+       }\r
+
+       struct appdata* ad = p->ad;
+       c_ret_if(!ad);
+
+       ad->today_item = NULL;
+
+       p->appended_event_count = 0;
+
+       p->prepended_event_count = 0;
+\r
+       if (eina_list_count(p->append_list)) {\r
+               __cal_list_delete_create_select_all(p);\r
+               evas_object_show(p->select_all_layout);\r
+
+               __cal_list_delete_create_genlist(p);\r
+
+               __cal_list_delete_append_event_to_genlist(p);\r
+
+               if (ad->tapbar_focus_view == CV_LIST) {\r
+                       __cal_list_delete_create_select_before_today(p);\r
+                       if (p->before_today_num > 0) {\r
+                               evas_object_show(p->select_before_today_layout);\r
+                               elm_object_disabled_set(p->select_before_today_check, EINA_FALSE);\r
+                       } else {\r
+                               elm_check_state_set(p->select_before_today_check, EINA_FALSE);\r
+                               elm_object_disabled_set(p->select_before_today_check, EINA_TRUE);\r
+                       }\r
+\r
+               }\r
+\r
+               __cal_list_delete_delete_no_contents(p);\r
+\r
+               __cal_list_delete_add_idler(p);\r
+\r
+               evas_object_show(p->bt_delete);\r
+
+       } else {\r
+               __cal_list_delete_delete_select_all(p);\r
+\r
+               if (ad->tapbar_focus_view == CV_LIST) {\r
+                       __cal_list_delete_delete_select_before_today(p);\r
+               }\r
+\r
+               __cal_list_delete_delete_genlist(p);\r
+
+               __cal_list_delete_create_no_contents(p);\r
+\r
+               evas_object_hide(p->bt_delete);\r
+       }
+
+       CAL_FN_END;
+}\r
+\r
+static void __cal_list_delete_update_list(cal_list_delete_data *p)\r
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+\r
+       p->num_check = 0;\r
+       p->before_today_num_checked = 0;\r
+       p->before_today_num = 0;\r
+       p->genlist_count = 0;\r
+       p->is_today_has_instance  = EINA_FALSE;\r
+       p->no_due_date_item = NULL;\r
+       p->due_today_item = NULL;\r
+       p->due_within_a_week_item = NULL;\r
+       p->due_in_over_one_week_item = NULL;\r
+       p->over_due_item = NULL;\r
+\r
+       __cal_list_delete_update_events(p);\r
+
+       __cal_list_delete_update_genlist(p);\r
+\r
+       __cal_list_delete_update_small_info(p, p->num_check);\r
+
+       CAL_FN_END;
+}\r
+\r
+static void __cal_list_delete_event_update_noti_received_cb(const char* view_uri, void* user_data)\r
+{\r
+       c_retm_if(!user_data, "user_data is null");\r
+       cal_list_delete_data *p = (cal_list_delete_data *)user_data;\r
+\r
+       if (p->popup) {\r
+               evas_object_del(p->popup);\r
+               p->popup = NULL;\r
+       }\r
+\r
+       __cal_list_delete_update_list(p);\r
+}\r
+\r
+static void __cal_list_delete_update_all_check(cal_list_delete_data* p)\r
+{\r
+       c_retm_if(!p, "p is null");\r
+       c_retm_if(!p->genlist, "p is null");\r
+\r
+       Elm_Object_Item *it;\r
+       Eina_List* realized_list, *l;\r
+       cal_list_genlist_item_data* item_data;\r
+\r
+       if (elm_check_state_get(p->select_all_check)) {\r
+               p->num_check = p->genlist_count;\r
+               elm_object_disabled_set(p->bt_delete, EINA_FALSE);\r
+               __cal_list_delete_update_small_info(p, p->genlist_count);\r
+               if (p->before_today_num > 0) {\r
+                       p->before_today_num_checked = p->before_today_num;\r
+                       elm_check_state_set(p->select_before_today_check, EINA_TRUE);\r
+               }\r
+       } else {\r
+               p->num_check = 0;\r
+               p->before_today_num_checked = 0;\r
+               elm_check_state_set(p->select_before_today_check, EINA_FALSE);\r
+\r
+               elm_object_disabled_set(p->bt_delete, EINA_TRUE);\r
+               elm_object_signal_emit(p->ly, "hide,selection,info", "elm");\r
+       }\r
+\r
+       it = elm_genlist_first_item_get(p->genlist);\r
+       while (it) {\r
+               item_data = elm_object_item_data_get(it);\r
+               if (item_data) {\r
+                       item_data->checked = elm_check_state_get(p->select_all_check);\r
+               }\r
+               it = elm_genlist_item_next_get(it);\r
+       }\r
+\r
+       realized_list = elm_genlist_realized_items_get(p->genlist);\r
+       EINA_LIST_FOREACH(realized_list, l, it)\r
+       {\r
+               if (it) {\r
+                       elm_genlist_item_update(it);\r
+               }\r
+       }\r
+}\r
+\r
+static void __cal_list_delete_update_before_today_check(cal_list_delete_data* p)\r
+{\r
+       c_retm_if(!p, "p is null");\r
+       c_retm_if(!p->genlist, "p is null");\r
+\r
+       Elm_Object_Item *it;\r
+       Eina_List* realized_list, *l;\r
+       cal_list_genlist_item_data* item_data;\r
+\r
+       if (elm_check_state_get(p->select_before_today_check)) {\r
+               p->before_today_num_checked = p->before_today_num;\r
+               elm_object_disabled_set(p->bt_delete, EINA_FALSE);\r
+\r
+               int count = 0;\r
+               it = elm_genlist_first_item_get(p->genlist);\r
+               while (it) {\r
+                       item_data = elm_object_item_data_get(it);\r
+                       if (item_data->is_before_today) {\r
+                               item_data->checked = EINA_TRUE;\r
+                       }\r
+                       it = elm_genlist_item_next_get(it);\r
+               }\r
+\r
+               it = elm_genlist_first_item_get(p->genlist);\r
+               while (it) {\r
+                       item_data = elm_object_item_data_get(it);\r
+                       if (item_data->checked && item_data->record != NULL) {\r
+                               count++;\r
+                       }\r
+                       it = elm_genlist_item_next_get(it);\r
+               }\r
+               p->num_check = count;\r
+\r
+               __cal_list_delete_update_small_info(p, p->num_check);\r
+\r
+               if (p->num_check == p->genlist_count) {\r
+                       elm_check_state_set(p->select_all_check, EINA_TRUE);\r
+               } else {\r
+                       elm_check_state_set(p->select_all_check, EINA_FALSE);\r
+               }\r
+       } else {\r
+               p->before_today_num_checked = 0;\r
+\r
+               int count = 0;\r
+               it = elm_genlist_first_item_get(p->genlist);\r
+               while (it) {\r
+                       item_data = elm_object_item_data_get(it);\r
+                       if (item_data->is_before_today) {\r
+                               item_data->checked = EINA_FALSE;\r
+                               count++;\r
+                       }\r
+                       it = elm_genlist_item_next_get(it);\r
+               }\r
+\r
+               p->num_check = p->num_check - count;\r
+               if (p->num_check < 0 ) {\r
+                       p->num_check = 0;\r
+                       elm_object_disabled_set(p->bt_delete, EINA_TRUE);\r
+                       elm_object_signal_emit(p->ly, "hide,selection,info", "elm");\r
+               } else {\r
+                       __cal_list_delete_update_small_info(p, p->num_check);\r
+               }\r
+\r
+               if (p->num_check == p->genlist_count) {\r
+                       elm_check_state_set(p->select_all_check, EINA_TRUE);\r
+               } else {\r
+                       elm_check_state_set(p->select_all_check, EINA_FALSE);\r
+               }\r
+       }\r
+\r
+       realized_list = elm_genlist_realized_items_get(p->genlist);\r
+       EINA_LIST_FOREACH(realized_list, l, it)\r
+       {\r
+               if (it) {\r
+                       elm_genlist_item_update(it);\r
+               }\r
+       }\r
+}\r
+\r
+static void __cal_list_delete_select_all_mouse_up_callback(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+       cal_list_delete_data *p = data;\r
+\r
+       Evas_Event_Mouse_Up *ev = event_info;\r
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)\r
+               return;\r
+\r
+       if (p->genlist_count <= 0) {\r
+               return;\r
+       }\r
+       elm_check_state_set(p->select_all_check, !elm_check_state_get(p->select_all_check));\r
+\r
+       __cal_list_delete_update_all_check(p);\r
+}\r
+\r
+static void __cal_list_delete_select_before_today_mouse_up_callback(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+       cal_list_delete_data *p = data;\r
+\r
+       Evas_Event_Mouse_Up *ev = event_info;\r
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)\r
+               return;\r
+\r
+       if (p->before_today_num <= 0) {\r
+               return;\r
+       }\r
+       elm_check_state_set(p->select_before_today_check, !elm_check_state_get(p->select_before_today_check));\r
+\r
+       __cal_list_delete_update_before_today_check(p);\r
+}\r
+\r
+\r
+static void __cal_list_delete_select_all_changed_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!obj, "obj is null");\r
+\r
+       cal_list_delete_data* p = data;\r
+       c_retm_if(!p, "p is null");\r
+       if (p->genlist_count <= 0) {\r
+               return;\r
+       }\r
+\r
+       __cal_list_delete_update_all_check(p);\r
+}\r
+\r
+static void __cal_list_delete_select_before_today_changed_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!obj, "obj is null");\r
+\r
+       cal_list_delete_data* p = data;\r
+       c_retm_if(!p, "p is null");\r
+\r
+       if (p->before_today_num <= 0) {\r
+               return;\r
+       }\r
+\r
+       __cal_list_delete_update_before_today_check(p);\r
+}\r
+\r
+static void __cal_list_delete_create_select_all(cal_list_delete_data* p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!p);\r
+       c_ret_if(!p->ad);\r
+       c_ret_if(!p->ly);\r
+       c_ret_if(!p->box);\r
+       c_ret_if(p->select_all_layout);\r
+\r
+       Evas_Object* layout = p->select_all_layout = elm_layout_add(p->box);\r
+       c_retm_if(!layout, "elm_layout_add returned null");\r
+       elm_layout_theme_set(layout, "genlist", "item", "select_all/default");\r
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);\r
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_UP, __cal_list_delete_select_all_mouse_up_callback, p);\r
+\r
+       Evas_Object* check = p->select_all_check = elm_check_add(p->select_all_layout);\r
+       c_retm_if(!check, "elm_check_add returned null");\r
+       evas_object_smart_callback_add(check, "changed", __cal_list_delete_select_all_changed_callback, p);\r
+       evas_object_propagate_events_set(check, EINA_FALSE);\r
+\r
+       elm_object_part_content_set(layout, "elm.icon", check);\r
+       evas_object_data_set(p->select_all_layout, "layout", p->select_all_layout);\r
+\r
+       // TODO:i18n\r
+       if (p->ad->tapbar_focus_view == CV_LIST ) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", "Select all events");\r
+       } else if (p->ad->tapbar_focus_view == CV_TODO) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", S_("IDS_COM_BODY_SELECT_ALL"));\r
+       } else if (p->ad->tapbar_focus_view == CV_YEAR) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", C_("IDS_CLD_MBODY_ALL_THIS_YEAR"));\r
+       } else if (p->ad->tapbar_focus_view == CV_MONTH) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", C_("IDS_CLD_BODY_ALL_THIS_MONTH"));\r
+       } else if (p->ad->tapbar_focus_view == CV_WEEK) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", C_("IDS_CLD_BODY_ALL_THIS_WEEK"));\r
+       } else if (p->ad->tapbar_focus_view == CV_DAY) {\r
+               elm_object_part_text_set(p->select_all_layout, "elm.text", C_("IDS_CLD_BODY_ALL_THIS_DAY"));\r
+       }\r
+\r
+       elm_box_pack_start(p->box, p->select_all_layout);\r
+       evas_object_show(p->select_all_layout);\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_delete_create_select_before_today(cal_list_delete_data* p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!p);\r
+       c_ret_if(!p->ad);\r
+       c_ret_if(!p->ly);\r
+       c_ret_if(!p->box);\r
+       c_ret_if(p->select_before_today_layout);\r
+\r
+       Evas_Object* layout = p->select_before_today_layout = elm_layout_add(p->box);\r
+       c_retm_if(!layout, "elm_layout_add returned null");\r
+       elm_layout_theme_set(layout, "genlist", "item", "select_all/default");\r
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);\r
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_UP, __cal_list_delete_select_before_today_mouse_up_callback, p);\r
+\r
+       Evas_Object* check = p->select_before_today_check = elm_check_add(p->select_before_today_layout);\r
+       c_retm_if(!check, "elm_check_add returned null");\r
+       evas_object_smart_callback_add(check, "changed", __cal_list_delete_select_before_today_changed_callback, p);\r
+       evas_object_propagate_events_set(check, EINA_FALSE);\r
+\r
+       elm_object_part_content_set(layout, "elm.icon", check);\r
+       evas_object_data_set(p->select_before_today_layout, "layout", p->select_before_today_layout);\r
+\r
+       elm_object_part_text_set(p->select_before_today_layout, "elm.text", C_("IDS_CLD_BODY_ALL_EVENTS_BEFORE_TODAY"));\r
+\r
+       elm_box_pack_before(p->box, p->select_before_today_layout, p->genlist);\r
+       evas_object_show(p->select_before_today_layout);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static Evas_Object* __cal_list_delete_create_layout(Evas_Object *parent, struct appdata *ad)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retvm_if(!parent, NULL, "parent is null");\r
+       c_retvm_if(!ad, NULL, "ad is null");\r
+\r
+       cal_list_delete_data *p = NULL;\r
+       Evas_Object *ly;\r
+\r
+       p = calloc(1, sizeof(cal_list_delete_data));\r
+       c_retvm_if(!p, NULL, "p is null");\r
+\r
+       _name = "list/base/without_searchbar";\r
+       p->name = _name;\r
+       p->ad = ad;\r
+       p->parent = parent;\r
+\r
+       ly = cal_util_add_layout(parent, p->name);\r
+       if (!ly) {\r
+               ERR("cal_util_add_layout returned null");\r
+               free(p);\r
+               return NULL;\r
+       }\r
+       p->ly = ly;\r
+       evas_object_data_set(ly, "priv", p);\r
+\r
+       p->bg = cal_util_add_bg(ly,EINA_FALSE);\r
+       if (!p->bg) {\r
+               ERR("cal_util_add_bg returned null");\r
+               evas_object_del(ly);\r
+               free(p);\r
+               return NULL;\r
+       }\r
+       elm_object_part_content_set(ly, "base", p->bg);\r
+\r
+       elm_object_disabled_set(p->bt_delete, EINA_TRUE);\r
+\r
+       p->box = elm_box_add(p->ly);\r
+       if (!p->box) {\r
+               ERR("elm_box_add returned null");\r
+               evas_object_del(ly);\r
+               free(p);\r
+               ERR("box is null");\r
+               return NULL;\r
+       }\r
+       evas_object_size_hint_weight_set(p->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+\r
+       elm_object_part_content_set(ly, "sw", p->box);\r
+       evas_object_show(ly);\r
+\r
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_list_delete_delete_layout, p);\r
+\r
+       calendar_error_e error = CALENDAR_ERROR_NONE;\r
+\r
+       error = calendar_db_add_changed_cb(_calendar_event._uri, __cal_list_delete_event_update_noti_received_cb, (void*)p);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_add_changed_cb() is failed(%x)", error);\r
+\r
+       error = calendar_db_add_changed_cb(_calendar_todo._uri, __cal_list_delete_event_update_noti_received_cb, (void*)p);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_add_changed_cb() is failed(%x)", error);\r
+       if (error != CALENDAR_ERROR_NONE) {\r
+               ERR("calendar_db_add_changed_cb failed");\r
+               evas_object_del(ly);\r
+               free(p);\r
+               p = NULL;\r
+               return NULL;\r
+       }\r
+\r
+       CAL_FN_END;\r
+\r
+       return ly;\r
+}\r
+\r
+static void __cal_list_delete_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+       c_retm_if(!obj, "obj is null");\r
+\r
+       Evas_Object *popup = data;\r
+       Evas_Object *button = obj;\r
+\r
+       cal_list_delete_data *p = evas_object_data_get(popup, "data");\r
+       c_retm_if(!p, "p is null");\r
+       c_retm_if(!p->ad, "p->ad is null");\r
+\r
+       if (NULL != strstr(elm_object_text_get(button), S_("IDS_COM_BODY_DELETE"))) {\r
+               cal_list_genlist_item_data *item = NULL;\r
+               Elm_Object_Item *it = NULL;\r
+               Elm_Object_Item *temp = NULL;\r
+               it = elm_genlist_first_item_get(p->genlist);\r
+               while(it) {\r
+                       item = elm_object_item_data_get(it);\r
+                       temp = elm_genlist_item_next_get(it);\r
+\r
+                       if (item && item->record != NULL && item->checked == EINA_TRUE) {\r
+\r
+                               int index = _calendar_get_record_index( item->record);\r
+                               _calendar_delete_record_with_index(index);\r
+\r
+                               elm_object_item_del(it);\r
+                       }\r
+                       it = temp;\r
+               }\r
+\r
+               elm_object_disabled_set(p->bt_delete, EINA_TRUE);\r
+\r
+       }\r
+\r
+       evas_object_del(p->popup);\r
+       p->popup = NULL;\r
+}\r
+\r
+static int __cal_list_delete_check_exsited_repeat_item(cal_list_delete_data *p)\r
+{\r
+       c_retv_if(!p, 1);\r
+\r
+       cal_list_genlist_item_data *item = NULL;\r
+       Elm_Object_Item *it = NULL;\r
+\r
+       it = elm_genlist_first_item_get(p->genlist);\r
+       while(it) {\r
+               item = elm_object_item_data_get(it);\r
+\r
+               if (item && item->record != NULL && item->checked == EINA_TRUE) {\r
+                       Eina_Bool is_recurrent = _calendar_is_recurrent_record(item->record);\r
+                       if(is_recurrent)\r
+                               return 1;\r
+               }\r
+               it = elm_genlist_item_next_get(it);\r
+       }\r
+\r
+       return 0;\r
+}\r
+\r
+static void __cal_list_delete_delete_event(cal_list_delete_data* p, Eina_Bool is_delete_all)\r
+{
+       c_ret_if(!p);
+       c_ret_if(!p->ad);\r
+
+       cal_list_genlist_item_data *item = NULL;\r
+       Elm_Object_Item *it = NULL;\r
+       Elm_Object_Item *temp = NULL;\r
+       int cid;\r
+\r
+       it = elm_genlist_first_item_get(p->genlist);\r
+       while(it) {\r
+               item = elm_object_item_data_get(it);\r
+               temp = elm_genlist_item_next_get(it);\r
+\r
+               if (item && item->record != NULL && item->checked == EINA_TRUE) {\r
+\r
+                       cid = _calendar_get_record_index(item->record);\r
+\r
+                       if (!is_delete_all) {\r
+                               _calendar_delete_recurrence_instance(item->record);\r
+                       } else {\r
+                               _calendar_delete_record_with_index(cid);\r
+                       }\r
+\r
+                       elm_object_item_del(it);\r
+               }\r
+\r
+               it = temp;\r
+       }\r
+\r
+       elm_object_disabled_set(p->bt_delete, EINA_TRUE);\r
+}\r
+\r
+static void __cal_list_delete_delete_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)\r
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_list_delete_data* p = evas_object_data_get(popup, "data");\r
+       c_retm_if(!p, "p is null");
+
+       if (p->ad->tapbar_focus_view == CV_LIST) {\r
+               if (NULL != strstr(elm_object_text_get(button), S_("IDS_COM_BODY_DELETE")))\r
+                       __cal_list_delete_delete_event(p, EINA_TRUE);\r
+       } else {\r
+               if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_BODY_ONLY_THIS_EVENT")))\r
+                       __cal_list_delete_delete_event(p, EINA_FALSE);\r
+               else    if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS")))\r
+                       __cal_list_delete_delete_event(p, EINA_TRUE);\r
+       }\r
+
+       evas_object_del(popup);
+       p->popup = NULL;
+}\r
+\r
+static void __cal_list_delete_show_popup(cal_list_delete_data *p, const char *tit)\r
+{
+       c_retm_if(!p, "p is NULL.");
+
+       void (*callback_func)(void *data, Evas_Object *obj, void *ei) = NULL;\r
+\r
+       callback_func = __cal_list_delete_delete_popup_response_event_callback;\r
+\r
+       if (p->ad->tapbar_focus_view != CV_LIST) {\r
+               p->popup = cal_util_add_popup(p->ad->win, "verticalbuttonstyle", NULL, tit, callback_func,\r
+                                                                       p, C_("IDS_CLD_BODY_ONLY_THIS_EVENT"),\r
+                                                                       C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"),\r
+                                                                       S_("IDS_COM_SK_CANCEL"), NULL);\r
+       } else {\r
+               p->popup = cal_util_add_popup(p->ad->win, NULL, NULL, tit, callback_func,\r
+                                                                       p, S_("IDS_COM_BODY_DELETE"),\r
+                                                                       S_("IDS_COM_SK_CANCEL"), NULL);\r
+\r
+       }\r
+\r
+       c_retm_if(!p->popup, "cal_util_add_popup(p->ad->win) returned null");
+
+       evas_object_data_set(p->popup, "priv", p);
+}\r
+\r
+static void __cal_list_delete_delete_button_callback(void *data, Evas_Object *obj, void *ei)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!data);\r
+\r
+       Evas_Object *ly = data;\r
+\r
+       cal_list_delete_data *p = CAL_UTIL_GET_PRIV_DATA(ly);\r
+       c_retm_if(!p, "p is null");\r
+       c_retm_if(!p->ad, "p->ad is null");\r
+       c_retm_if(!p->append_list, "p->append_list is null");\r
+\r
+       if (CAL_LIST_DELETE_MODE_TASK == p->mode) {\r
+               p->popup = cal_util_add_popup(p->ad->win, NULL, NULL, S_("IDS_COM_POP_DELETE_Q"), __cal_list_delete_popup_response_event_callback, p,\r
+                               S_("IDS_COM_BODY_DELETE"),S_("IDS_COM_SK_CANCEL"), NULL);\r
+       } else if (__cal_list_delete_check_exsited_repeat_item(p)) {\r
+               if (p->ad->tapbar_focus_view != CV_LIST) {\r
+                       __cal_list_delete_show_popup(p, C_("IDS_CLD_OPT_DELETE_EVENT"));\r
+               } else {\r
+                       // TODO:i18n\r
+                       __cal_list_delete_show_popup(p, "If you delete this repeated event, all related events will also be deleted. Continue?");\r
+               }\r
+       } else {\r
+               p->popup = cal_util_add_popup(p->ad->win, NULL, NULL, S_("IDS_COM_POP_DELETE_Q"), __cal_list_delete_popup_response_event_callback, p,\r
+                               S_("IDS_COM_BODY_DELETE"),S_("IDS_COM_SK_CANCEL"), NULL);\r
+       }\r
+}\r
+\r
+static void __cal_list_delete_back_btn_click_callback(void *data, Evas_Object *obj, void *event_info)\r
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       struct appdata* ad = (struct appdata*)data;
+
+       elm_naviframe_item_pop(ad->naviframe);\r
+}\r
+\r
+Evas_Object *cal_list_delete_view_create(Evas_Object *parent, struct appdata *ad)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retvm_if(!ad || !parent, NULL, "Input parameter is null");\r
+\r
+       Evas_Object *ly;\r
+\r
+       if (ad->current_view == CV_DELETE)\r
+               return NULL;\r
+\r
+       ad->current_view = CV_DELETE;\r
+\r
+       ly = __cal_list_delete_create_layout(parent,ad);\r
+       c_retvm_if(!ly, NULL, "__cal_list_delete_create_layout(parent,ad) is failed");\r
+\r
+       cal_list_delete_data * p = (cal_list_delete_data *)CAL_UTIL_GET_PRIV_DATA(ly);\r
+       c_retvm_if(!p, NULL, "p is null");\r
+\r
+       p->mode = CAL_LIST_DELETE_MODE_NORMAL;\r
+       p->more_idx = -1;\r
+\r
+       if (NULL != ad->bt_view)\r
+               p->mode = CAL_LIST_DELETE_MODE_TASK;\r
+\r
+       Evas_Object *back_button = elm_button_add(ad->naviframe);\r
+       c_retv_if(!back_button, NULL);\r
+
+       evas_object_smart_callback_add(back_button, "clicked", __cal_list_delete_back_btn_click_callback, ad);\r
+
+       elm_object_style_set(back_button, "naviframe/back_btn/default");\r
+\r
+\r
+       // TODO:i18n\r
+       if (p->mode == CAL_LIST_DELETE_MODE_TASK) {\r
+               p->navi_item = elm_naviframe_item_push(ad->naviframe, C_("IDS_CLD_OPT_DELETE_TASK"), back_button, NULL, ly, NULL);\r
+       } else if (p->mode == CAL_LIST_DELETE_MODE_NORMAL) {\r
+               p->navi_item = elm_naviframe_item_push(ad->naviframe, C_("IDS_CLD_BUTTON_DELETE"), back_button, NULL, ly, NULL);\r
+       }\r
+       if (!p->navi_item)\r
+       {\r
+               ERR("elm_naviframe_item_push is failed");\r
+               evas_object_del(ly);\r
+               return NULL;\r
+       }\r
+\r
+       p->bt_delete = cal_util_add_toolbar_button(ad->naviframe, "toolbar_button1", S_("IDS_COM_BODY_DELETE"), __cal_list_delete_delete_button_callback, ly);\r
+\r
+       cal_lang_manager_add_callback(__cal_list_delete_text_refresh_callback, p);\r
+\r
+       CAL_FN_END;\r
+\r
+       return ly;\r
+}\r
+\r
+void cal_list_delete_update_view(Evas_Object *ly)\r
+{\r
+       CAL_FN_START;\r
+\r
+       cal_list_delete_data *p;\r
+\r
+       c_retm_if(!ly, "ly is null.");\r
+\r
+       p = CAL_UTIL_GET_PRIV_DATA(ly);\r
+       if (!p || CAL_STRCMP(p->name, _name)) {\r
+               ERR("Invalid object");\r
+               return;\r
+       }\r
+\r
+       struct appdata *ad = p->ad;\r
+       c_ret_if(!ad);\r
+\r
+       __cal_list_delete_update_list(p);\r
+\r
+}\r
+\r
+Evas_Object* cal_list_delete_view_create_more_events(Evas_Object *parent, struct appdata *ad, int idx)\r
+{\r
+       c_retvm_if(!parent, NULL, "parent is null.");\r
+       c_retvm_if(!ad, NULL, "ad is null.");\r
+       Evas_Object *ly = NULL;\r
+       cal_list_delete_data *p = NULL;\r
+\r
+       ly = cal_list_delete_view_create(parent, ad);\r
+       c_retvm_if(!ly, NULL, "ly is null.");\r
+\r
+       p = CAL_UTIL_GET_PRIV_DATA(ly);\r
+       c_retvm_if(!p, NULL, "p is null.");\r
+\r
+       p->mode = CAL_LIST_DELETE_MODE_DAY;\r
+       p->more_idx = idx;\r
+\r
+       return ly;\r
+}\r
diff --git a/src/list-provider.c b/src/list-provider.c
new file mode 100755 (executable)
index 0000000..a79e307
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "list-provider.h"
+#include <calendar2.h>
+
+#define BATCH_SIZE 10
+
+typedef struct {
+       calendar_query_h query;
+       calendar_list_h current_batch;
+       calendar_list_h next_batch;
+       int offset;
+       bool exhausted;
+} cal_list_provider_s;
+
+cal_list_provider_h cal_list_provider_create(calendar_query_h query)
+{
+       cal_list_provider_s* p = (cal_list_provider_s*)calloc(1, sizeof(cal_list_provider_s));
+
+       p->query = query;
+
+       return p;
+}
+
+static calendar_list_h __cal_list_provider_fetch(cal_list_provider_s* p)
+{
+       calendar_list_h list = NULL;
+
+       calendar_error_e error =
+                       calendar_db_get_records_with_query(p->query, p->offset, BATCH_SIZE, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() has failed(%x)", error);
+
+       if (error == CALENDAR_ERROR_NO_DATA) {
+               DBG("Exhausted!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+               p->exhausted = true;
+               return NULL;
+       }
+
+       int retreived_count = 0;
+       error = calendar_list_get_count(list, &retreived_count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() has failed(%x)", error);
+
+       DBG("offset(%d), retreived_count(%d)", p->offset, retreived_count);
+
+       if (retreived_count == 0) {
+               DBG("Exhausted!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+               error = calendar_list_destroy(list, false);
+               p->exhausted = true;
+               return NULL;
+       } else if (retreived_count < BATCH_SIZE) {
+               DBG("Exhausted!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+               p->exhausted = true;
+       }
+
+       p->offset += retreived_count;
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() has failed(%x)", error);
+
+       return list;
+}
+
+void cal_list_provider_fetch(cal_list_provider_h cursor)
+{
+       cal_list_provider_s* p = (cal_list_provider_s*)cursor;
+
+       c_ret_if(p->next_batch != NULL);
+       c_ret_if(p->exhausted);
+
+       if (p->current_batch == NULL)
+               p->current_batch = __cal_list_provider_fetch(p);
+
+       if (p->current_batch != NULL)
+               p->next_batch = __cal_list_provider_fetch(p);
+}
+
+bool cal_list_provider_not_ready(const cal_list_provider_h cursor)
+{
+       const cal_list_provider_s* p = (const cal_list_provider_s*)cursor;
+       return p->current_batch == NULL && !p->exhausted;
+}
+
+bool cal_list_provider_no_more(const cal_list_provider_h cursor)
+{
+       const cal_list_provider_s* p = (const cal_list_provider_s*)cursor;
+       return p->current_batch == NULL && p->exhausted;
+}
+
+calendar_record_h cal_list_provider_top_p(cal_list_provider_h cursor)
+{
+       const cal_list_provider_s* p = (const cal_list_provider_s*)cursor;
+
+       calendar_record_h record = NULL;
+       calendar_error_e error = calendar_list_get_current_record_p(p->current_batch, &record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() has failed(%x)", error);
+
+       return record;
+}
+
+calendar_record_h cal_list_provider_pop(cal_list_provider_h cursor)
+{
+       cal_list_provider_s* p = (cal_list_provider_s*)cursor;
+
+       calendar_record_h record = NULL;
+       calendar_error_e error = calendar_list_get_current_record_p(p->current_batch, &record);
+       if (error != CALENDAR_ERROR_NONE)
+               return NULL;
+
+       error = calendar_list_next(p->current_batch);
+
+       if (error) {
+               DBG("Shifting next_batch to current_batch");
+               error = calendar_list_destroy(p->current_batch, false);
+               p->current_batch = p->next_batch;
+               p->next_batch = NULL;
+       }
+
+       return record;
+}
+
+void cal_list_provider_destroy(cal_list_provider_h cursor)
+{
+       cal_list_provider_s* p = (cal_list_provider_s*)cursor;
+
+       calendar_error_e error = calendar_list_destroy(p->current_batch, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() has failed(%x)", error);
+
+       error = calendar_list_destroy(p->next_batch, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() has failed(%x)", error);
+
+       error = calendar_query_destroy(p->query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() has failed(%x)", error);
+}
diff --git a/src/list-provider.h b/src/list-provider.h
new file mode 100755 (executable)
index 0000000..9140320
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __CALENDAR_LIST_PROVIDER_H__
+#define __CALENDAR_LIST_PROVIDER_H__
+
+#include "cld.h"
+
+typedef void* cal_list_provider_h;
+
+cal_list_provider_h cal_list_provider_create(calendar_query_h query);
+
+void cal_list_provider_fetch(cal_list_provider_h cursor);
+
+bool cal_list_provider_not_ready(const cal_list_provider_h cursor);
+
+bool cal_list_provider_no_more(const cal_list_provider_h cursor);
+
+calendar_record_h cal_list_provider_top_p(cal_list_provider_h cursor);
+
+calendar_record_h cal_list_provider_pop(cal_list_provider_h cursor);
+
+void cal_list_provider_destroy(cal_list_provider_h cursor);
+
+#endif
diff --git a/src/main.c b/src/main.c
new file mode 100755 (executable)
index 0000000..d03d08a
--- /dev/null
@@ -0,0 +1,946 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <utilX.h>
+#include <Ecore_X.h>
+#include <ui-gadget.h>
+#include <vconf.h>
+#include <aul.h>
+#include <app.h>
+
+#include "view.h"
+#include "edit-view.h"
+#include "detail-view.h"
+#include "noti-handler.h"
+#include "lang-manager.h"
+
+static void __cal_main_setup_data(struct appdata *ad);
+static Eina_Bool __cal_main_update_today(void *data);
+
+static void __cal_main_changed_callback(void *data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       struct appdata *ad = data;
+
+       __cal_main_setup_data(ad);
+
+       if (ad->is_pause) {
+               ad->is_update_view = EINA_TRUE;
+               return;
+       }
+
+       cal_main_update_view(ad);
+
+       return;
+}
+
+static void __cal_main_set_today_tm(struct appdata *ad)
+{
+       struct tm tm;
+
+       time_t now = time(NULL);
+       localtime_r(&now, &tm);
+
+       tm.tm_min = 0; // min, sec reset for mktime()
+       tm.tm_sec = 0;
+
+       ad->today_tm = tm;
+
+       tm.tm_hour = 0;
+       time_t t = mktime(&tm);
+
+       if (t == (time_t)-1) {
+               ERR("mktime() is failed");
+               ad->today_tmr = NULL;
+               return;
+       }
+
+       t = t + (24 * 60 * 60) - time(NULL);
+       ad->today_tmr = ecore_timer_add((double)t, __cal_main_update_today, ad);
+}
+
+static Eina_Bool __cal_main_update_today(void *data)
+{
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       struct appdata *ad = data;
+
+       __cal_main_set_today_tm(ad);
+
+       if (ad->today_edj)
+               edje_object_signal_emit(ad->today_edj, "update_today", "prog");
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_main_setup_data(struct appdata *ad)
+{
+       CAL_FN_START;
+
+       __cal_main_set_today_tm(ad);
+
+       if (ad->base_tm.tm_year == 0)
+               ad->base_tm = ad->today_tm;
+
+       int val;
+
+       int r = vconf_get_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, &val);
+       if (r < 0 || val < 0)
+               ad->wday_start = cal_util_get_default_first_day_of_week();
+       else
+               ad->wday_start = val;
+
+       r = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &val);
+       if (r < 0)
+               is_hour24 = 0;
+       else if( val == 1 || val == 2)
+               is_hour24 = val -1;
+       else
+               ERR("vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &val); error");
+
+       vconf_get_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, (int *)&ad->is_display_complete_todo);
+
+       ad->is_update_view = EINA_TRUE;
+
+       ad->acct_id = _CALENDAR_ALL_ACCOUNT_ID;
+
+       CAL_FN_END;
+}
+
+static void __cal_main_timezone_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!node);
+       c_ret_if(!user_data);
+
+       Eina_Bool is_lock_timezone = vconf_keynode_get_int(node);
+
+       char *text = NULL;
+
+       if (is_lock_timezone)
+               text = vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH);
+       else
+               text = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID);
+
+       if (CAL_STRLEN(text)) {
+
+               cal_util_set_timezone(text);
+
+               free(text);
+
+               cal_main_update_view(user_data);
+
+       } else
+               ERR("vconf_get_str is failed.");
+
+       CAL_FN_END;
+}
+
+static void __cal_main_week_of_day_format_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!node, "node is null");
+       c_retm_if(!user_data, "user_data is null");
+
+       struct appdata* ad = user_data;
+       int r = vconf_keynode_get_int(node);
+       if (r < 0)
+               ad->wday_start = cal_util_get_default_first_day_of_week();
+       else
+               ad->wday_start = r;
+
+       cal_main_update_view(ad);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_view_of_month_format_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!node, "node is null");
+       c_retm_if(!user_data, "user_data is null");
+
+       struct appdata* ad = user_data;
+       int r = vconf_keynode_get_int(node);
+       c_retm_if(r < 0, "vconf_keynode_get_int is failed");
+
+       ad->daily_events_mode = r;
+
+       cal_main_update_view(ad);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_view_of_display_compelete_todo_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!node, "node is null");
+       c_retm_if(!user_data, "user_data is null");
+
+       struct appdata* ad = user_data;
+
+       if (CV_YEAR == ad->current_view)
+               return;
+
+       int r = vconf_keynode_get_int(node);
+       c_retm_if(r < 0, "vconf_keynode_get_int is failed");
+
+       ad->is_display_complete_todo = r;
+
+       cal_main_update_view(ad);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_view_of_display_week_number_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!node, "node is null");
+       c_retm_if(!user_data, "user_data is null");
+
+       struct appdata* ad = user_data;
+
+       if (CV_MONTH != ad->current_view && !ad->daily_events_mode)
+               return;
+
+       int r = vconf_keynode_get_int(node);
+       c_retm_if(r < 0, "vconf_keynode_get_int is failed");
+
+       ad->is_display_weeknumber = r;
+
+       cal_main_update_view(ad);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_time_format_vconf_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!node, "node is null");
+       c_retm_if(!user_data, "user_data is null");
+
+       struct appdata* ad = user_data;
+
+       int r = vconf_keynode_get_int(node);
+       c_retm_if(r < 0, "vconf_keynode_get_int is failed");
+
+       is_hour24 = r -1;
+
+       cal_main_update_view(ad);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_time_changed_callback(keynode_t *node, void *user_data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!user_data);
+
+       struct appdata* ad = user_data;
+
+       __cal_main_set_today_tm(ad);
+
+       cal_main_update_view(ad);
+}
+
+static int __cal_main_initialize(struct appdata *ad)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!ad, -1, "ad is null");
+
+       __cal_main_setup_data(ad);
+
+       calendar_error_e err = calendar_connect();
+       c_warn_if(err != CALENDAR_ERROR_NONE, "calendar_connect is failed(%d)", err);
+
+       _calendar_init_hash();
+
+       cal_util_connect_pattern_generator();
+
+       cal_util_initialize_timezone();
+
+       elm_theme_extension_add(NULL, "/usr/apps/"CALENDAR_PACKAGE"/res/edje/theme.edj");
+       elm_theme_extension_add(NULL, "/usr/apps/"CALENDAR_PACKAGE"/res/edje/theme2.edj");
+       elm_theme_extension_add(NULL, "/usr/apps/"CALENDAR_PACKAGE"/res/edje/theme3.edj");
+
+       int r = vconf_notify_key_changed(CAL_VCONFKEY_FOCUS_VIEW,__cal_main_view_of_month_format_vconf_changed_callback, ad);
+       c_warn_if (r, "vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, __cal_main_view_of_display_week_number_vconf_changed_callback, ad);
+       c_warn_if (r, "vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, __cal_main_view_of_display_compelete_todo_vconf_changed_callback, ad);
+       c_warn_if (r, "vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(CAL_VCONFKEY_FIRST_DAY_OF_WEEK , __cal_main_week_of_day_format_vconf_changed_callback, ad);
+       c_warn_if (r, "vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT_TIME1224 , __cal_main_time_format_vconf_changed_callback, ad);
+       c_warn_if (r, "vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT , __cal_main_timezone_vconf_changed_callback, ad);
+       c_warn_if (r, "vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, __cal_main_timezone_vconf_changed_callback, ad);
+       c_warn_if (r, "vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, __cal_main_timezone_vconf_changed_callback, ad);
+       c_warn_if (r, "vconf_notify_key_changed failed");
+
+       r = vconf_notify_key_changed(VCONFKEY_SYSTEM_TIMECHANGE, __cal_main_time_changed_callback, ad);
+       c_warn_if (r, "vconf_notify_key_changed failed");
+
+       r = contacts_connect2();
+       c_warn_if(r != CONTACTS_ERROR_NONE, "contacts_connect2() is failed(%x)", r);
+
+       UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_ENABLE);
+
+       CAL_FN_END;
+
+       return 0;
+}
+
+static void __cal_main_finish(struct appdata *ad)
+{
+
+       cal_lang_manager_remove_all_callback();
+
+       ug_destroy_all();
+
+       cal_util_disconnect_pattern_generator();
+
+       int r = contacts_disconnect2();
+       c_warn_if(r!=CONTACTS_ERROR_NONE, "contacts_disconnect2() is failed(%x)", r);
+
+       r = vconf_ignore_key_changed(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, __cal_main_timezone_vconf_changed_callback);
+       c_warn_if(r, "vconf_ignore_key_changed(CAL_VCONFKEY_LOCK_TIMEZONE_PATH) failed");
+
+       r = vconf_ignore_key_changed(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, __cal_main_timezone_vconf_changed_callback);
+       c_warn_if(r, "vconf_ignore_key_changed(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF) failed");
+
+       r = vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT, __cal_main_timezone_vconf_changed_callback);
+       c_warn_if(r, "vconf_ignore_key_changed(VCONFKEY_SETAPPL_TIMEZONE_INT) failed");
+
+       r = vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, __cal_main_time_format_vconf_changed_callback);
+       c_warn_if(r, "vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224) failed");
+
+       r = vconf_ignore_key_changed(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, __cal_main_week_of_day_format_vconf_changed_callback);
+       c_warn_if(r, "vconf_ignore_key_changed(CAL_VCONFKEY_FIRST_DAY_OF_WEEK) failed");
+
+       r = vconf_ignore_key_changed(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, __cal_main_view_of_display_compelete_todo_vconf_changed_callback);
+       c_warn_if(r, "vconf_ignore_key_changed(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF) failed");
+
+       r = vconf_ignore_key_changed(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, __cal_main_view_of_display_week_number_vconf_changed_callback);
+       c_warn_if(r, "vconf_ignore_key_changed(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF) failed");
+
+       r = vconf_ignore_key_changed(CAL_VCONFKEY_FOCUS_VIEW, __cal_main_view_of_month_format_vconf_changed_callback);
+       c_warn_if(r, "vconf_ignore_key_changed(CAL_VCONFKEY_FOCUS_VIEW) failed");
+
+       calendar_error_e err = calendar_disconnect();
+       c_warn_if(err != CALENDAR_ERROR_NONE, "calendar_disconnect() is failed(%d)", err);
+}
+
+static int __cal_main_add_naviframe(struct appdata *ad)
+{
+       c_retvm_if(!ad, -1, "ad is null");
+
+       CAL_FN_START;
+
+       ad->naviframe = elm_naviframe_add(ad->base);
+       c_retvm_if(!ad->naviframe, -1, "elm_naviframe_add returned null");
+
+       elm_object_part_content_set(ad->base, "elm.swallow.content", ad->naviframe);
+
+       CAL_FN_END;
+
+       return 0;
+}
+
+static void __cal_main_win_profile_changed_callback(void *data, Evas_Object *obj, void *event)
+{
+       c_ret_if(!obj);
+       c_ret_if(!data);
+
+       struct appdata *ad = data;
+       c_ret_if(!ad->base);
+
+       Evas_Object *base = ad->base;
+
+       const char *profile = elm_config_profile_get();
+       c_ret_if(!profile);
+
+       if (!CAL_STRCMP(profile, "desktop"))
+               elm_layout_theme_set(base, "layout", "application", "noindicator");
+       else
+               elm_layout_theme_set(base, "layout", "application", "default");
+
+       evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_win_resize_object_add(obj, base);
+       elm_object_content_set(ad->conform, base);
+
+       evas_object_show(base);
+}
+
+static Evas_Object * __cal_main_add_base_layout(Evas_Object *conformant)
+{
+       CAL_FN_START;
+
+       c_retv_if(!conformant, NULL);
+
+       Evas_Object *layout = elm_layout_add(conformant);
+       c_retv_if(!layout, false);
+
+       Eina_Bool r = elm_layout_theme_set(layout, "layout", "application", "default");
+       c_warn_if(!r, "elm_layout_theme_set is failed");
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_content_set(conformant, layout);
+
+       CAL_FN_END;
+
+       return layout;
+}
+
+static bool cal_create(void *data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!data, false, "data is null");
+
+       struct appdata *ad = data;
+
+       Evas_Object *window = cal_util_add_window(CALENDAR, &ad->win_w, &ad->win_h);
+       c_retv_if(!window, false);
+
+       evas_object_smart_callback_add(window, "profile,changed", __cal_main_win_profile_changed_callback, ad);
+
+       Evas_Object *bg = cal_util_add_bg(window, EINA_TRUE);
+       c_retv_if(!bg, false);
+
+       Evas_Object *conformant = elm_conformant_add(window);
+       c_retv_if(!conformant, false);
+
+       evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(window, conformant);
+       evas_object_show(conformant);
+
+       Evas_Object *layout = __cal_main_add_base_layout(conformant);
+       c_retv_if(!layout, false);
+
+       evas_object_show(window);
+
+       ad->win = window;
+       ad->bg = bg;
+       ad->conform = conformant;
+       ad->base = layout;
+
+       int ret = __cal_main_initialize(ad);
+       c_retvm_if(ret, false, "__cal_main_initialize is failed(%d)", ret);
+
+       ret = __cal_main_add_naviframe(ad);
+       c_retvm_if(ret, false, "__cal_main_add_naviframe is failed(%d)", ret);
+
+       CAL_FN_END;
+
+       return true;
+}
+
+static void cal_terminate(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       struct appdata *ad = data;
+
+       ug_destroy_all();
+
+       __cal_main_finish(ad);
+
+       if (ad->win)
+               evas_object_del(ad->win);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_raise_main_view(struct appdata *ad)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad, "ad is null");
+
+       Elm_Object_Item* bottom = elm_naviframe_bottom_item_get(ad->naviframe);
+       c_ret_if(!bottom);
+
+       Elm_Object_Item* top = elm_naviframe_top_item_get(ad->naviframe);
+       c_ret_if(!top);
+
+       if (bottom != top)
+               elm_naviframe_item_pop_to(bottom);
+
+       ad->current_view = ad->request_view;
+
+       CAL_FN_END;
+}
+
+static Eina_Bool __cal_main_live_calendar_destroy_callback(void *data)
+{
+       struct appdata *ad = data;
+
+       if (ad->win) {
+               elm_win_lower(ad->win);
+       }
+
+       if (ad->current_view == CV_DAY) {
+               Evas_Object *content = elm_object_part_content_get(ad->main, "cont");
+               cal_day_change_content_display_status(content);
+       }
+
+       return EINA_FALSE;
+}
+
+static Eina_Bool __cal_main_ug_destroy_callback(void *data)
+{
+       c_retv_if(!data, EINA_FALSE);
+
+       struct appdata *ad = data;
+
+       if (!ad->main)
+               elm_exit();
+       else
+               elm_win_lower(ad->win);
+
+       return EINA_FALSE;
+}
+
+static inline void __cal_main_add_naviframe_content(struct appdata *ad)
+{
+       CAL_FN_START;
+
+       switch (ad->request_view) {
+
+               case CV_YEAR:
+               case CV_MONTH:
+               case CV_WEEK:
+               case CV_DAY:
+               case CV_LIST:
+               case CV_TODO:
+                       __cal_main_raise_main_view(ad);
+
+                       if (!ad->main)
+                               cal_main_create_view(ad);
+                       else
+                               cal_main_change_view(ad->main, ad->request_view);
+                       if (ad->request_view == CV_TODO) {
+                               ad->item_type = ITEM_TYPE_TODO;
+                       } else {
+                               ad->item_type = ITEM_TYPE_EVENT;
+                       }
+                       break;
+
+               case CV_DETAIL:
+               {
+                       calendar_record_h record = NULL;
+
+                       record = _calendar_get_record_with_index(ad->cid);
+                       c_ret_if(!record);
+
+                       cal_detail_create_view(ad, record, __cal_main_ug_destroy_callback, ad);
+
+                       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+                       error = calendar_record_destroy(record, NULL);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+               }
+                       break;
+
+               case CV_EDIT:
+               {
+                       calendar_record_h record = NULL;
+                       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+                       if (ad->item_type == ITEM_TYPE_TODO) {
+                               error = calendar_record_create(_calendar_todo._uri, &record);
+                       } else {
+                               error = calendar_record_create(_calendar_event._uri, &record);
+                       }
+                       c_retm_if(error != CALENDAR_ERROR_NONE, "calendar_record_create() is failed(%x)", error);
+
+                       cal_edit_create_view(ad, record, __cal_main_live_calendar_destroy_callback, ad);
+
+                       if (ad->current_view == CV_DAY) {
+                               Evas_Object *content = elm_object_part_content_get(ad->main, "cont");
+                               cal_day_change_content_display_status(content);
+                       }
+
+                       if(ad->main)
+                               elm_win_lower(ad->win);
+               }
+               break;
+
+               default:
+                       /* TODO: add more */
+                       break;
+       }
+
+       CAL_FN_END;
+}
+
+static void cal_resume(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       struct appdata* ad = data;
+
+       ug_resume();
+
+       ad->is_pause = EINA_FALSE;
+
+       if (ad->is_update_view)
+               __cal_main_changed_callback(ad);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_select_view(service_h service, struct appdata* ad)
+{
+       CAL_FN_START;
+
+       c_ret_if(!service);
+       c_ret_if(!ad);
+
+       char *operation = NULL;
+       char *caller = NULL;
+       char *count = NULL;
+       char *type = NULL;
+       char *index = NULL;
+
+       ad->request_view = CV_MONTH;
+
+       int r = service_get_operation(service, &operation);
+       c_warn_if(SERVICE_ERROR_NONE != r, "service_get_opertaion is failed(%d).", r);
+
+       if (!CAL_STRCMP(operation, SERVICE_OPERATION_DEFAULT)) {
+
+               service_get_extra_data(service, CAL_APPSVC_PARAM_REMINDER_ID, &index);
+
+               if (!CAL_STRLEN(index))
+                       service_get_extra_data(service, CAL_APPSVC_PARAM_LOCATION_REMINDER, &index);
+
+               if (CAL_STRLEN(index) && (r = atoi(index))) {
+
+                       cal_noti_handler_show_for_location_reminder(r, ad);
+
+                       ad->request_view = CV_NOTI;
+               } else {
+
+                       r = service_get_extra_data(service, CAL_APPSVC_PARAM_CALLER, &caller);
+                       c_warn_if(SERVICE_ERROR_NONE != r, "service_get_extra_data is failed(%d).", r);
+
+                       r = service_get_extra_data(service, CAL_APPSVC_PARAM_TYPE, &type);
+                       c_warn_if(SERVICE_ERROR_NONE != r,"service_get_extra_data is failed(%d).", r);
+
+                       if (!CAL_STRCMP(caller, "live")) {
+
+                               r = service_get_extra_data(service, CAL_APPSVC_PARAM_COUNT, &count);
+                               c_warn_if(SERVICE_ERROR_NONE != r,"service_get_extra_data is failed(%d).", r);
+
+                               if (CAL_STRLEN(count) && atoi(count))
+                                       ad->request_view = CV_LIST;
+                               else {
+                                       ad->request_view = CV_EDIT;
+                                       ad->cid = 0;
+
+                                       //base_time
+                                       char *time = NULL;
+                                       struct tm base_time = {0};
+                                       r = service_get_extra_data(service, "base_time", &time);
+                                       long long int lli_time = strtoll(time, NULL, 10);
+                                       cal_util_convert_lli_to_tm(NULL, lli_time, &base_time);
+                                       CAL_FREE(time);
+
+                                       ad->base_tm = base_time;
+
+                                       r = service_get_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, &type);
+                                       c_warn_if(SERVICE_ERROR_NONE != r,"service_get_extra_data is failed(%d).", r);
+
+                                       if (!CAL_STRCMP(type, "todo")) {
+                                               ad->item_type = ITEM_TYPE_TODO;
+                                       } else  {
+                                               ad->item_type = ITEM_TYPE_EVENT;
+                                       }
+
+                               }
+
+                               if (!CAL_STRCMP(type, "week")) {
+                                       ad->request_view = CV_WEEK;
+                                       ad->cid = 0;
+
+                                       //base_time
+                                       char *time = NULL;
+                                       struct tm base_time = {0};
+                                       r = service_get_extra_data(service, "base_time", &time);
+                                       long long int lli_time = strtoll(time, NULL, 10);
+                                       cal_util_convert_lli_to_tm(NULL, lli_time, &base_time);
+                                       CAL_FREE(time);
+
+                                       ad->base_tm = base_time;
+                               } else if (!CAL_STRCMP(type, "day")) {
+                                       ad->request_view = CV_DAY;
+                                       ad->cid = 0;
+
+                                       //base_time
+                                       char *time = NULL;
+                                       struct tm base_time = {0};
+                                       r = service_get_extra_data(service, "base_time", &time);
+                                       long long int lli_time = strtoll(time, NULL, 10);
+                                       cal_util_convert_lli_to_tm(NULL, lli_time, &base_time);
+                                       CAL_FREE(time);
+
+                                       ad->base_tm = base_time;
+                               } else if (!CAL_STRCMP(type, "month")) {
+                                       ad->request_view = CV_MONTH;
+                                       ad->cid = 0;
+
+                                       //base_time
+                                       char *time = NULL;
+                                       struct tm base_time = {0};
+                                       r = service_get_extra_data(service, "base_time", &time);
+                                       long long int lli_time = strtoll(time, NULL, 10);
+                                       cal_util_convert_lli_to_tm(NULL, lli_time, &base_time);
+                                       CAL_FREE(time);
+
+                                       ad->base_tm = base_time;
+                               } else if (!CAL_STRCMP(type, "task")) {
+                                       ad->request_view = CV_TODO;
+                                       ad->cid = 0;
+                               }
+                       }
+               }
+       }else if (!CAL_STRCMP(operation, SERVICE_OPERATION_VIEW)) {
+               r = service_get_extra_data(service, CAL_APPSVC_PARAM_TYPE, &type);
+               c_warn_if(SERVICE_ERROR_NONE != r,"service_get_extra_data is failed(%d).", r);
+
+               if (!CAL_STRCMP(type, "event")) {
+                       ad->item_type = ITEM_TYPE_EVENT;
+               } else if (!CAL_STRCMP(type, "todo")) {
+                       ad->item_type = ITEM_TYPE_TODO;
+               }
+
+               r = service_get_extra_data(service, CAL_APPSVC_PARAM_INDEX, &index);
+               c_warn_if(SERVICE_ERROR_NONE != r,"service_get_extra_data is failed(%d).", r);
+
+               if (CAL_STRLEN(index) && (r = atoi(index))) {
+                       ad->cid = r;
+
+                       ad->request_view = CV_DETAIL;
+               }
+       }
+
+       CAL_FREE(operation);
+       CAL_FREE(caller);
+       CAL_FREE(count);
+       CAL_FREE(type);
+       CAL_FREE(index);
+
+       CAL_FN_END;
+}
+
+static void cal_pause(void *data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       struct appdata* ad = data;
+       c_ret_if(!ad->naviframe);
+
+       ug_pause();
+
+       if (ad->is_aul) {
+               ad->is_aul = EINA_FALSE;                                                                        //unset flag
+
+               if (ad->content && elm_naviframe_top_item_get(ad->naviframe) != elm_naviframe_bottom_item_get(ad->naviframe))
+                       elm_naviframe_item_pop_to(ad->content); //pop to calendar app's content
+               else
+                       elm_exit();                                                                                     //if there is no calendar app's contents, exit.
+
+               ad->request_view = CV_UNKNOWN;
+       }
+
+       ad->is_pause = EINA_TRUE;
+
+       CAL_FN_END;
+}
+
+static void cal_service(service_h service, void *user_data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!service);
+       c_ret_if(!user_data);
+
+       struct appdata *ad = user_data;
+
+       __cal_main_select_view(service, ad);
+
+       if (ad->request_view == CV_NOTI) {
+               if (!ad->main)
+                       elm_exit();
+               else
+                       return;
+       }
+
+       if (ad->ug) {
+               int ret = ug_destroy(ad->ug);
+               c_warn_if(ret, "ug_destroy() is failed.");
+
+               ad->ug = NULL;
+       }
+
+       __cal_main_add_naviframe_content(ad);
+
+       if (ad->win)
+               elm_win_activate(ad->win);
+
+       evas_object_show(ad->win);
+
+       CAL_FN_END;
+}
+
+static void cal_device_orientation(app_device_orientation_e orientation, void *user_data)
+{
+       c_retm_if(!user_data, "user_data is null.");
+
+       struct appdata *ad = user_data;
+       int rotate_val = 0;
+       Eina_Bool is_landscape_mode = EINA_FALSE;
+       int width = 0;
+       int height = 0;
+
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &width, &height);
+
+       switch (orientation){
+       case APP_DEVICE_ORIENTATION_0:
+               rotate_val = 0;
+               ug_send_event(UG_EVENT_ROTATE_PORTRAIT);
+               break;
+       case APP_DEVICE_ORIENTATION_90:
+               rotate_val = 90;
+               is_landscape_mode = EINA_TRUE;
+               ug_send_event(UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN);
+               break;
+       case APP_DEVICE_ORIENTATION_180:
+               rotate_val = 180;
+               ug_send_event(UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN);
+               break;
+       case APP_DEVICE_ORIENTATION_270:
+               rotate_val = 270;
+               is_landscape_mode = EINA_TRUE;
+               ug_send_event(UG_EVENT_ROTATE_LANDSCAPE);
+               break;
+       default:
+               break;
+       }
+
+       ad->is_landscape_mode = is_landscape_mode;
+
+       if (ad->is_landscape_mode) {
+               ad->win_w = height;
+               ad->win_h = width;
+       } else {
+               ad->win_w = width;
+               ad->win_h = height;
+       }
+
+       elm_win_rotation_with_resize_set(ad->win, rotate_val);
+
+       cal_main_rotation(ad);
+
+}
+
+static void __cal_language_changed(void *user_data)
+{
+       CAL_FN_START;
+
+       ug_send_event(UG_EVENT_LANG_CHANGE);
+
+       cal_lang_manager_apply();
+}
+
+static inline void __cal_check_first_day_of_week(int *first_day_of_week)
+{
+       c_ret_if(!first_day_of_week);
+
+       int ret = vconf_get_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, first_day_of_week);
+       c_warn_if(ret != 0, "vconf_get_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK) is failed.");
+
+       if (ret != 0 || *first_day_of_week == -1)
+               *first_day_of_week = cal_util_get_default_first_day_of_week();
+}
+
+static void __cal_region_format_changed(void *user_data)
+{
+       CAL_FN_START;
+
+       struct appdata *ad = user_data;
+       c_ret_if(!ad);
+
+       __cal_check_first_day_of_week(&ad->wday_start);
+
+       ug_send_event(UG_EVENT_REGION_CHANGE);
+
+       cal_lang_manager_apply();
+}
+
+int main(int argc, char *argv[])
+{
+       struct appdata ad;
+
+       app_event_callback_s event_callback;
+
+       event_callback.create = cal_create;
+       event_callback.terminate = cal_terminate;
+       event_callback.pause = cal_pause;
+       event_callback.resume = cal_resume;
+       event_callback.service = cal_service;
+       event_callback.low_memory = NULL;
+       event_callback.low_battery = NULL;
+       event_callback.device_orientation = cal_device_orientation;
+       event_callback.language_changed = __cal_language_changed;
+       event_callback.region_format_changed = __cal_region_format_changed;
+
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       return app_efl_main(&argc, &argv, &event_callback, &ad);
+}
diff --git a/src/month-calendar.c b/src/month-calendar.c
new file mode 100755 (executable)
index 0000000..0c1be8d
--- /dev/null
@@ -0,0 +1,1170 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <vconf.h>
+
+#include "view.h"
+#include "edit-view.h"
+#include "detail-view.h"
+#include "cld-images.h"
+#include "list-base.h"
+#include "month-data.h"
+
+#define WEEKS_OF_MONTH_5 5
+#define WEEKS_OF_MONTH_4 4
+
+enum {
+       ST_PREV = -1,
+       ST_CURR = 0,
+       ST_NEXT = 1,
+};
+
+typedef enum {
+       CAL_MONTH_CALENDAR_DAY_TYPE_SUNDAY = 0,
+       CAL_MONTH_CALENDAR_DAY_TYPE_SATDAY,
+       CAL_MONTH_CALENDAR_DAY_TYPE_WEEKDAY,
+} cal_month_calendar_day_type_t;
+
+struct _day {
+       int enabled:1;
+       int checked:1;
+       cal_month_calendar_day_type_t d_type;
+};
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *weekly_events_ly[WEEKS_OF_MONTH];
+       Evas_Object *month;
+       Evas_Object *month_monthly;
+       Evas_Object *month_daily;
+       Evas_Object *month_landscape;
+       Eina_List *event_list;
+       cal_list_base_h list;
+       Evas_Object *popup;
+
+       Ecore_Idler *idler;
+
+       int base_pos_for_weekly;
+       int index_for_press;
+       struct _day day[DAYS_OF_WEEKLY_MONTHS_VIEW];
+       int pos_today;
+       int pos_selected;
+       int pos_start;
+       int pos_end;
+       int pos_down;
+       cal_month_data_h month_data;
+       int weekline;
+       int down_x;
+       int down_y;
+} cal_month_calendar_data;
+
+static const char *_name = NULL;
+
+static void __cal_month_calendar_signal_week(cal_month_calendar_data *p, Evas_Object *obj, int index);
+
+static void __cal_month_calendar_events_of_one_weekday(void *data);
+static void __cal_month_calendar_get_events(cal_month_calendar_data *p);
+static void __cal_month_calendar_create_event_lists(Evas_Object *ly, cal_month_calendar_data *p);
+static void __cal_month_calendar_signal_all_week(cal_month_calendar_data *p);
+static void __cal_month_calendar_signal_all_clean(cal_month_calendar_data *p);
+static void __cal_month_calendar_set_more_text(Evas_Object *ly, int count, int index);
+static void __cal_month_calendar_set_check_text(Evas_Object *ly, cal_month_calendar_data *p, int count, int index);
+static void __cal_month_calendar_set_event_rect_color(Evas_Object *obj, cal_month_calendar_data *p, int line, int pos, int calendar_id);
+static void __cal_month_calendar_set_day_default_color(cal_month_calendar_data* p, Evas_Object *eo, int pos);
+static void __cal_month_calendar_fill_week_number(Evas_Object *ly);
+static void __cal_month_quick_add_input_panel_event_callback(void *data, Ecore_IMF_Context *imf_context, int value);
+
+
+static Elm_Genlist_Item_Class itc_1icon_title, itc_1icon_start, itc_1icon_end;
+
+static int __cal_month_calendar_get_first_wday(int mday, int wday)
+{
+       return CAL_UTIL_GET_WDAY(wday - mday + 1);
+}
+
+static void __cal_month_calendar_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_month_calendar_data *p = data;
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       if (ad->today_edj && ad->today_edj == CAL_UTIL_GET_EDJ_DATA(obj))
+               ad->today_edj = NULL;
+
+       if (p->idler)
+               ecore_idler_del(p->idler);
+
+       if (p->popup) {
+               ad->need_to_show_popup = EINA_TRUE;
+               evas_object_del(p->popup);
+       }
+
+       cal_month_data_clear(p->month_data);
+
+       cal_month_data_destroy(p->month_data);
+
+       free(p);
+
+       CAL_FN_END;
+}
+
+static inline void __cal_month_calendar_set_color(Evas_Object *ly, cal_month_calendar_data *p, int pos, int wday)
+{
+       c_retm_if(!p, "p is null");
+
+       struct _day *d = &p->day[pos];
+
+       const char *day_color;
+
+       switch (wday) {
+       case 0:
+               day_color = "sunday";
+               d->d_type = CAL_MONTH_CALENDAR_DAY_TYPE_SUNDAY;
+               break;
+       case 6:
+               day_color = "satday";
+               d->d_type = CAL_MONTH_CALENDAR_DAY_TYPE_SATDAY;
+               break;
+       default:
+               d->d_type = CAL_MONTH_CALENDAR_DAY_TYPE_WEEKDAY;
+               day_color = "weekday";
+               break;
+       }
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "%s,%d", day_color, pos);
+}
+
+static inline void __cal_month_calendar_set_disabled(Evas_Object *ly, cal_month_calendar_data *p, int pos)
+{
+       struct _day *d = &p->day[pos];
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "disable,%d", pos);
+
+       d->enabled = 0;
+}
+
+static inline void __cal_month_calendar_set_enabled(Evas_Object *ly, cal_month_calendar_data *p, int pos, int wday)
+{
+       struct _day *d = &p->day[pos];
+
+       if (!d->enabled) {
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "enable,%d", pos);
+
+               __cal_month_calendar_set_color(ly, p, pos, wday);
+               d->enabled = 1;
+       }
+}
+
+static inline void __cal_month_calendar_set_today(Evas_Object *eo, int pos)
+{
+       if (pos == -1)
+               return;
+
+       cal_util_emit_signal(eo, "today,%d", pos);
+}
+
+static inline void __cal_month_calendar_unset_today(Evas_Object *eo, int *pos)
+{
+       if (*pos == -1)
+               return;
+
+       cal_util_emit_signal(eo, "notoday,%d", *pos);
+       *pos = -1;
+}
+
+static inline void __cal_month_calendar_set_selected(Evas_Object *eo, int pos)
+{
+       if (pos < 0 || DAYS_OF_WEEKLY_MONTHS_VIEW <= pos)
+               return;
+
+       cal_util_emit_signal(eo, "select,%d", pos);
+}
+
+static inline void __cal_month_calendar_set_unselected(cal_month_calendar_data* p, Evas_Object *eo, int *pos)
+{
+       c_retm_if(!p, "p is NULL");
+       c_retm_if(-1 == *pos, "pos is invalid");
+       c_retm_if(!eo, "eo is invalid");
+
+       cal_util_emit_signal(eo, "unselect,%d", *pos);
+
+       __cal_month_calendar_set_day_default_color(p, eo, *pos);
+
+       *pos = -1;
+}
+
+static inline int __cal_month_calendar_get_start_day(int *st, struct tm *tm, int start, int max)
+{
+       int day;
+       int prev_day;
+
+       prev_day = CAL_UTIL_GET_WDAY(__cal_month_calendar_get_first_wday(tm->tm_mday, tm->tm_wday) - start);
+       if (prev_day > 0) {
+               day = max - prev_day + 1;
+               *st = ST_PREV;
+       } else {
+               day = 1;
+               *st = ST_CURR;
+       }
+
+       return day;
+}
+
+static int __cal_month_calendar_update_today(Evas_Object *eo, cal_month_calendar_data *p)
+{
+       c_retv_if(!eo, -1);
+       c_retv_if(!p, -1);
+
+       struct appdata *ad = p->ad;
+       c_retv_if(!ad, -1);
+
+       struct tm *base_tm = &ad->base_tm;
+       c_retv_if(!base_tm, -1);
+
+       __cal_month_calendar_unset_today(eo, &p->pos_today);
+
+       ad->today_edj = NULL;
+
+       if (base_tm->tm_year == ad->today_tm.tm_year && base_tm->tm_mon == ad->today_tm.tm_mon) {
+               p->pos_today = p->pos_start + ad->today_tm.tm_mday - 1;
+               __cal_month_calendar_set_today(eo, p->pos_today);
+               ad->today_edj = eo;
+       }
+
+       return 0;
+}
+
+static inline void __cal_month_calendar_set_selected_today(Evas_Object *eo, int pos)
+{
+       if (pos < 0 || DAYS_OF_WEEKLY_MONTHS_VIEW <= pos)
+               return;
+
+       cal_util_emit_signal(eo, "select,today,%d", pos);
+}
+
+void cal_month_calendar_update_select(Evas_Object *ly)
+{
+       CAL_ASSERT(ly);
+       Evas_Object* eo = CAL_UTIL_GET_EDJ_DATA(ly);
+
+       cal_month_calendar_data* p = CAL_UTIL_GET_PRIV_DATA(ly);
+       CAL_ASSERT(p);
+       CAL_ASSERT(p->ad);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       struct tm *base_tm = &ad->base_tm;
+       c_ret_if(!base_tm);
+
+       cal_main_update_title_text(p->ad);
+
+       __cal_month_calendar_set_unselected(p, eo, &p->pos_selected);
+       p->pos_selected = p->pos_start + p->ad->base_tm.tm_mday - 1;
+
+       if (base_tm->tm_year == ad->today_tm.tm_year && base_tm->tm_mon == ad->today_tm.tm_mon && base_tm->tm_mday == ad->today_tm.tm_mday) {
+               __cal_month_calendar_set_selected_today(eo, p->pos_selected);
+       } else {
+               __cal_month_calendar_set_selected(eo, p->pos_selected);
+       }
+
+
+}
+
+static void __cal_month_calendar_update_check(Evas_Object *ly, cal_month_calendar_data *p)
+{
+       c_ret_if(!ly);
+       c_ret_if(!p);
+       c_ret_if(p->pos_start < 0);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       int week = 0;
+       for (week = 0; week < WEEKS_OF_MONTH; week++) {
+               int wday = 0;
+               for (wday = 0; wday < DAYS_OF_WEEK; wday++) {
+                       int count = cal_month_data_get_event_count(p->month_data, week, wday);
+                       __cal_month_calendar_set_check_text(ly, p, count, week * DAYS_OF_WEEK + wday);
+               }
+       }
+}
+
+static int __cal_month_calendar_get_week_last_line(cal_month_calendar_data *p, int wday)
+{
+       c_retv_if(!p, -1);
+
+       struct appdata *ad = p->ad;
+       c_retv_if(!ad, -1);
+
+       struct tm base_tm = ad->base_tm;
+
+       int prev_max = cal_util_get_max_days(base_tm.tm_year, base_tm.tm_mon - 1);
+       int cur_max = cal_util_get_max_days(base_tm.tm_year, base_tm.tm_mon);
+
+       int st;
+       int day = __cal_month_calendar_get_start_day(&st, &base_tm, wday, prev_max);
+
+       p->pos_start = 0;
+       p->pos_end = 41;
+
+       int i;
+       int line = WEEKS_OF_MONTH;
+
+       for (i = 0; i < DAYS_OF_WEEKLY_MONTHS_VIEW; i++) {
+               switch (st) {
+
+               case ST_PREV:
+                       if (day == prev_max) {
+                               st = ST_CURR;
+                               day = 0;
+                               p->pos_start = i + 1;
+                       }
+                       break;
+
+               case ST_CURR:
+                       if (day == cur_max) {
+                               st = ST_NEXT;
+                               day = 0;
+                               line = (int)(i / DAYS_OF_WEEK) + 1;
+                               p->pos_end = i;
+                       }
+                       break;
+
+               case ST_NEXT:
+                       break;
+               }
+
+               day++;
+               wday = CAL_UTIL_GET_WDAY(wday + 1);
+       }
+
+       return line;
+}
+
+static int __cal_month_calendar_fill_calendar(Evas_Object *ly, int wday)
+{
+       c_retv_if(!ly, -1);
+
+       cal_month_calendar_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retv_if(!p, -1);
+
+       struct appdata *ad = p->ad;
+       c_retv_if(!ad, -1);
+
+       struct tm base_tm = ad->base_tm;
+
+       int prev_max = cal_util_get_max_days(base_tm.tm_year, base_tm.tm_mon - 1);
+       int cur_max = cal_util_get_max_days(base_tm.tm_year, base_tm.tm_mon);
+
+       int st;
+       int day = __cal_month_calendar_get_start_day(&st, &base_tm, wday, prev_max);
+
+       p->pos_start = 0;
+       p->pos_end = 41;
+
+       int i;
+       int line = WEEKS_OF_MONTH;
+
+       for (i = 0; i < DAYS_OF_WEEKLY_MONTHS_VIEW; i++) {
+               cal_util_set_text(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("db/%d/text", i), "%d", day);
+
+               switch (st) {
+
+               case ST_PREV:
+                       __cal_month_calendar_set_disabled(ly, p, i);
+                       if (day == prev_max) {
+                               st = ST_CURR;
+                               day = 0;
+                               p->pos_start = i + 1;
+                       }
+                       break;
+
+               case ST_CURR:
+                       __cal_month_calendar_set_enabled(ly, p, i, wday);
+                       if (day == cur_max) {
+                               st = ST_NEXT;
+                               day = 0;
+                               line = (int)(i / DAYS_OF_WEEK) + 1;
+                               p->pos_end = i;
+                       }
+                       break;
+
+               case ST_NEXT:
+                       __cal_month_calendar_set_disabled(ly, p, i);
+                       break;
+               }
+
+               day++;
+               wday = CAL_UTIL_GET_WDAY(wday + 1);
+       }
+
+       __cal_month_calendar_update_today(CAL_UTIL_GET_EDJ_DATA(ly), p);
+
+       __cal_month_calendar_fill_week_number(ly);
+
+       return line;
+}
+
+static void __cal_month_calendar_click_event_callback(cal_month_calendar_data *p, Evas_Object *obj, int pos)
+{
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       if (p->pos_selected == pos) {
+               DBG("cal_cb: double clicked %d", pos);
+
+               if (p->day[pos].checked) {
+                       __cal_month_calendar_events_of_one_weekday(p);
+               } else {
+                       ad->base_hour = -1;
+                       ad->cid = 0;
+
+                       calendar_record_h record = NULL;
+                       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+                       error = calendar_record_create(_calendar_event._uri, &record);
+                       c_retm_if(error != CALENDAR_ERROR_NONE, "calendar_record_create() is failed(%x)", error);
+                       cal_edit_create_view(ad, record, NULL, NULL);
+               }
+
+               return;
+       }
+
+       ad->base_tm.tm_mday = pos - p->pos_start + 1;
+
+       cal_month_calendar_update_select(p->month);
+
+       edje_object_signal_emit(obj, "changed", "prog");
+}
+
+static void __cal_month_calendar_cal_event_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       cal_month_calendar_data *p = data;
+       c_retm_if(!p, "p is null");
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       int pos = atoi(&e[3]);
+       c_retm_if((p->pos_end < pos) || (pos < p->pos_start), "pos is diabled");
+
+       if (!strncmp(e, "up,", 3)) {
+
+               if (p->pos_down == pos) {
+                       __cal_month_calendar_click_event_callback(p, obj, pos);
+               }
+
+               edje_object_signal_emit(obj, e, "prog");
+
+       }else if (!strncmp(e, "dn,", 3)) {
+
+               p->pos_down = pos;
+
+               edje_object_signal_emit(obj, e, "prog");
+       }
+}
+
+static void __cal_month_calendar_prog_event_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       cal_month_calendar_data *p = data;
+
+       if (!CAL_STRCMP(e, "update_today")) {
+               __cal_month_calendar_update_today(obj, p);
+               return;
+       }
+
+       if (CAL_STRCMP(e, "moved")) {
+               return;
+       }
+
+       if (p->pos_down == -1) {
+               return;
+       }
+
+       cal_util_emit_signal(obj, "up,%d", p->pos_down);
+       if (p->pos_selected!= p->pos_down) {
+               __cal_month_calendar_set_day_default_color(p, obj, p->pos_down);
+               cal_util_emit_signal(obj, "unselect,%d", p->pos_down);
+       }
+       p->pos_down = -1;
+}
+
+void cal_month_calendar_set_wday_text(Evas_Object *ly, int start)
+{
+       c_ret_if(!ly);
+
+       cal_month_calendar_data* p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       struct tm base_tm = ad->base_tm;
+
+       cal_util_update_tm_day(&base_tm, base_tm.tm_wday*(-1)+start);
+
+       int i;
+       for (i = 0; i < DAYS_OF_WEEK; i++) {
+               cal_util_set_time_text_toupper(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("wday/%d/text", i), CAL_UTIL_DATE_FORMAT_2, NULL, &base_tm);
+
+               if (base_tm.tm_wday == 6)
+                       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "satday,%d", i);
+
+               if (base_tm.tm_wday == 0)
+                       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "sunday,%d", i);
+
+               cal_util_update_tm_day(&base_tm, 1);
+       }
+
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly),  "wday/weeknumber/text", C_("IDS_CLD_POP_WEEK_INITIAL"));
+}
+
+static void __cal_month_calendar_signal_clean(cal_month_calendar_data *p,Evas_Object *eo)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!eo, "eo is null");
+
+       int i = 0;
+       int line = 0;
+
+       for (i = 0; i < DAYS_OF_WEEK; i++) {
+               for (line = 1; line <= WEEKS_OF_MONTH; line++) {
+                       cal_util_emit_signal(eo, "%d,%d,%d", line, 0, i);
+                       cal_util_emit_signal(eo, "%d,%s,%d", line, "nocolor", i);
+               }
+       }
+
+}
+
+static int __cal_month_calendar_get_week_time(cal_month_calendar_data *p, int *first_day, int *last_day)
+{
+       int day = 0;
+       int today = 0;
+       int start_day = 0;
+
+       if(-1 == p->pos_selected)
+               day = p->pos_today;
+       else
+               day = p->pos_selected;
+
+       today = day - p->pos_start + 1;
+       start_day = day - ((day + 1) % DAYS_OF_WEEK) + 1;
+
+       if (day < DAYS_OF_WEEK) {
+               *first_day = 1;
+               *last_day = DAYS_OF_WEEK - p->pos_start;
+       } else if (0 == ((day + 1) % DAYS_OF_WEEK)) {
+               *first_day = today - DAYS_OF_WEEK + 1;
+               *last_day = today;
+       } else {
+               *first_day = today - (day % DAYS_OF_WEEK);
+               if ((start_day + DAYS_OF_WEEK - 1) > p->pos_end) {
+                       *last_day = p->pos_end - p->pos_start + 1;
+               } else {
+                       *last_day = *first_day + DAYS_OF_WEEK - 1;
+               }
+       }
+
+       return 0;
+}
+
+static void __cal_month_calendar_signal_week(cal_month_calendar_data *p, Evas_Object *obj, int week)
+{
+       c_ret_if(!p);
+       c_ret_if(!obj);
+
+       int wday = 0;
+       char text[20] = {0};
+
+       Evas_Object *eo = CAL_UTIL_GET_EDJ_DATA(obj);
+       c_ret_if(!eo);
+
+       for (wday = 0; wday < DAYS_OF_WEEK; wday++) {
+
+               if (cal_month_data_get_event_count(p->month_data, week, wday) == 0)
+                       continue;
+
+               int row;
+               for (row = 1; row <= CAL_MONTH_MAX_ROWS_PER_CELL; row++) {
+                       cal_month_calendar_event* event =
+                                       cal_month_data_get_event(p->month_data, week, wday, row - 1);
+
+                       if (event == NULL)
+                               continue;
+
+                       cal_util_emit_signal(eo, "%d,%d,%d", row, event->width, wday);
+                       cal_util_emit_signal(eo, "%d,show,%d", row, wday);
+
+                       __cal_month_calendar_set_event_rect_color(obj, p, row, wday, event->calendar_id);
+
+                       memset(text,0x00,sizeof(text));
+                       g_snprintf(text, sizeof(text), "%d/text/%d", row, wday);
+                       edje_object_part_text_set(eo, text, event->title);
+               }
+       }
+}
+
+static void __cal_month_calendar_mouse_down(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "p is null");
+       c_retm_if(!ly, "ly is null");
+       c_retm_if(!ei, "ei is null");
+
+       cal_month_calendar_data *p = data;
+       Evas_Event_Mouse_Down *ev = ei;
+       char eve[8] = {0};
+       int offset = 0;
+
+       int list_index = (int)evas_object_data_get(ly, "list_index");
+       p->base_pos_for_weekly = list_index * DAYS_OF_WEEK;
+
+       Evas_Coord_Rectangle r;
+       cal_util_get_geometry(&r, ly);
+       offset = ev->canvas.x / (r.w / DAYS_OF_WEEK);
+       if (DAYS_OF_WEEK <= offset)
+               offset = DAYS_OF_WEEK - 1;
+
+       p->down_x = ev->canvas.x;
+       p->down_y = ev->canvas.y;
+
+       if (p->day[p->base_pos_for_weekly + offset].enabled) {
+               p->index_for_press = p->base_pos_for_weekly + offset;
+               snprintf(eve, sizeof(eve) , "dn,%d", p->index_for_press);
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->month), eve, "cal");
+       }
+}
+
+static void __cal_month_calendar_mouse_move(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!ly, "ly is null");
+       c_retm_if(!ei, "ei is null");
+
+       cal_month_calendar_data *p = data;
+       Evas_Event_Mouse_Move *ev = ei;
+       char eve[8] = {0};
+       Evas_Coord th = elm_config_finger_size_get();
+       Evas_Coord dx;
+       Evas_Coord dy;
+
+       dx = ev->cur.canvas.x - p->down_x ;
+       dy = p->down_y - ev->cur.canvas.y;
+       if (dy > th ||  dy < (th * -1) || dx > th ||  dx < (th * -1)) {
+
+               if( -1 != p->index_for_press) {
+                       snprintf(eve, sizeof(eve) , "up,%d", p->index_for_press);
+                       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->month), eve, "prog");
+                       if (p->pos_selected != p->index_for_press) {
+                               __cal_month_calendar_set_day_default_color(p, CAL_UTIL_GET_EDJ_DATA(p->month), p->index_for_press);
+                               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->month), "unselect,%d", p->index_for_press);
+                       }
+                       p->index_for_press = -1;
+               }
+       }
+}
+
+static void __cal_month_calendar_get_events(cal_month_calendar_data *p)
+{
+       struct tm tm_start = p->ad->base_tm;
+       tm_start.tm_hour = 0;
+       tm_start.tm_min = 0;
+       tm_start.tm_sec = 0;
+
+       struct tm tm_end = tm_start;
+       tm_end.tm_hour = 23;
+       tm_end.tm_min = 59;
+       tm_end.tm_sec = 59;
+       p->event_list = _calendar_get_all_instance_list(&tm_start, &tm_end);
+
+       Eina_List *todo_list = _calendar_get_due_date_task_list(&tm_start, &tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);
+       p->event_list = eina_list_merge(p->event_list, todo_list);
+}
+
+static void __cal_month_calendar_update_genlist(cal_month_calendar_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->list, "p->list is null");
+
+       Eina_List *l;
+       calendar_record_h record = NULL;
+
+       cal_list_base_clear(p->list);
+
+       if (p->event_list)
+               _calendar_free_record_list(&p->event_list);
+
+       __cal_month_calendar_get_events(p);
+       c_retm_if(!p->event_list, "p->event_list is null");
+
+       EINA_LIST_FOREACH(p->event_list, l, record) {
+               if (record) {
+                       cal_list_base_add_item(p->list, record, false);
+               }
+       }
+       CAL_FN_END;
+}
+
+static void __cal_month_calendar_popup_response_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *popup = data;
+
+       cal_month_calendar_data *p = evas_object_data_get(popup, "data");
+       c_ret_if(!p);
+
+       evas_object_del(popup);
+       p->popup = NULL;
+
+       c_ret_if(!cal_list_base_get_genlist_p(p->list));
+       cal_list_base_delete(p->list);
+
+       p->list = NULL;
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       ad->need_to_show_popup = EINA_FALSE;
+}
+
+static void __cal_month_calendar_popup_genlist_item_selected_callback(void *data)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_month_calendar_data *p = data;
+       c_retm_if(!p->popup, "p->popup is null");
+
+       evas_object_del(p->popup);
+       p->popup = NULL;
+
+       c_ret_if(!cal_list_base_get_genlist_p(p->list));
+       cal_list_base_delete(p->list);
+
+       p->list = NULL;
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       ad->need_to_show_popup = EINA_FALSE;
+
+       calendar_record_h record = _calendar_get_record_with_index(p->ad->cid);
+       c_retm_if(!record, "record is null");
+
+       cal_detail_create_view(p->ad, record, NULL, NULL);
+       calendar_record_destroy(record, true);
+
+       return;
+}
+
+static void __cal_month_calendar_events_of_one_weekday(void *data)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_month_calendar_data *p = data;
+       c_retm_if(!p->parent, "p->parent is null");
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       char title[128] = {0};
+
+       if (p->event_list)
+               _calendar_free_record_list(&p->event_list);
+
+       __cal_month_calendar_get_events(p);
+       c_retm_if(!p->event_list, "p->event_list is null");
+
+       int count = eina_list_count(p->event_list);
+       if (2 <= count) {
+               cal_util_get_time_text(title, sizeof(title), CAL_UTIL_DATE_FORMAT_13, NULL, &p->ad->base_tm);
+
+               if (!p->popup) {
+                       p->popup = cal_util_add_popup(ad->win, "menustyle", title, NULL,
+                               __cal_month_calendar_popup_response_callback, p,
+                               S_("IDS_COM_BODY_CLOSE"), NULL);
+
+                       c_retm_if(!p->popup, "cal_util_add_popup returned null");
+               } else {
+                       elm_object_part_text_set(p->popup, "title,text", title);
+                       evas_object_show(p->popup);
+               }
+
+               if (!p->list) {
+                       p->list = cal_list_base_create(ad, p->popup, NULL, false, __cal_month_calendar_popup_genlist_item_selected_callback, p);
+               }
+
+       } else if (1 == count) {
+               calendar_record_h record = eina_list_data_get(p->event_list);
+               c_ret_if(!record);
+
+               p->ad->cid = _calendar_get_record_index(record);
+
+               cal_detail_create_view(p->ad, record, NULL, NULL);
+       }
+       __cal_month_calendar_update_genlist(p);
+}
+
+static void __cal_month_calendar_mouse_up(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!ly, "ly is null");
+
+       cal_month_calendar_data *p = data;
+       Evas_Event_Mouse_Down *ev = ei;
+       int start_day = 0;
+       int end_day = 0;
+       int num_of_enable = 0;
+       char eve[8] = {0};
+       int list_index = 0;
+       int i = 0;
+
+       list_index = (int)evas_object_data_get(ly, "list_index");
+
+       c_retm_if(-1 == p->index_for_press, "p->index_for_press is -1");
+
+       Evas_Coord_Rectangle r;
+       cal_util_get_geometry (&r, ly);
+       int day_width = r.w / DAYS_OF_WEEK;
+
+       snprintf(eve, sizeof(eve) , "up,%d", p->index_for_press);
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->month), eve, "cal");
+
+       if (p->pos_selected != p->index_for_press) {
+               p->index_for_press = -1;
+               return;
+       }
+
+       p->index_for_press = -1;
+
+       __cal_month_calendar_get_week_time(p,&start_day,&end_day);
+
+       if (DAYS_OF_WEEK != (num_of_enable = end_day - start_day + 1)) {
+
+               if (end_day < DAYS_OF_WEEK) {
+
+                       if (ev->canvas.x < (DAYS_OF_WEEK- num_of_enable) * day_width)
+                               return;
+
+                       start_day -= (DAYS_OF_WEEK - num_of_enable);
+               } else if (DAYS_OF_WEEK < start_day) {
+
+                       if (ev->canvas.x > num_of_enable * day_width)
+                               return;
+               }
+       }
+
+}
+
+Evas_Object* cal_month_calendar_create_view(struct appdata *ad,
+               Evas_Object *parent, Eina_Bool tmp)
+{
+       c_retv_if(!ad, NULL);
+       c_retv_if(!parent, NULL);
+
+       cal_month_calendar_data *p = calloc(1, sizeof(cal_month_calendar_data));
+       c_retv_if(!p, NULL);
+
+       if (ad->is_landscape_mode)
+               p->month_data = cal_month_data_create(ad, 1);
+       else
+               p->month_data = cal_month_data_create(ad, 3);
+
+       p->ad = ad;
+       p->parent = parent;
+       p->pos_down = p->pos_today = p->pos_selected = -1;
+       p->index_for_press = -1;
+
+       p->weekline = __cal_month_calendar_get_week_last_line(p, ad->wday_start);
+
+       if (ad->daily_events_mode || ad->is_landscape_mode) {
+               if (!ad->is_landscape_mode) {
+                       if (WEEKS_OF_MONTH == p->weekline) {
+                               p->name = _name = "main/month/cal/weekly/6";
+                       } else if (WEEKS_OF_MONTH_5 == p->weekline) {
+                               p->name = _name = "main/month/cal/weekly/5";
+                       } else if (WEEKS_OF_MONTH_4 == p->weekline) {
+                               p->name = _name = "main/month/cal/weekly/4";
+                       }
+               } else {
+                       if (WEEKS_OF_MONTH == p->weekline) {
+                               p->name = _name = "main/month/cal/weekly/6/l";
+                       } else if (WEEKS_OF_MONTH_5 == p->weekline) {
+                               p->name = _name = "main/month/cal/weekly/5/l";
+                       } else if (WEEKS_OF_MONTH_4 == p->weekline) {
+                               p->name = _name = "main/month/cal/weekly/4/l";
+                       }
+               }
+       } else {
+               p->name = _name = "main/month/cal";
+       }
+
+
+       Evas_Object *ly = cal_util_add_layout(ad->naviframe, p->name);
+       if (!ly) {
+               ERR("ly is null");
+               free(p);
+               return NULL;
+       }
+
+       p->month = ly;
+       evas_object_data_set(ly, "priv", p);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(ly), "*", "cal", __cal_month_calendar_cal_event_callback, p);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(ly), "*", "prog", __cal_month_calendar_prog_event_callback, p);
+
+       cal_month_calendar_set_wday_text(ly, ad->wday_start);
+
+       cal_month_data_clear(p->month_data);
+       cal_month_data_load(p->month_data);
+
+       if (tmp == EINA_TRUE) {
+               p->weekline = __cal_month_calendar_fill_calendar(ly, ad->wday_start);
+               __cal_month_calendar_update_check(ly, p);
+       }
+
+       if (p->ad->daily_events_mode || p->ad->is_landscape_mode) {
+               __cal_month_calendar_create_event_lists(ly, p);
+               __cal_month_calendar_signal_all_clean(p);
+               __cal_month_calendar_signal_all_week(p);
+       }
+
+       if (ad->is_display_weeknumber)
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "display_week_number");
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_month_calendar_delete_layout, p);
+
+       return ly;
+}
+
+void cal_month_calendar_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ly);
+
+       cal_month_calendar_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+//     if (!p || CAL_STRCMP(p->name, _name)) {
+//             ERR("update month calendar: Invalid object");
+//             return;
+//     }
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       p->weekline = __cal_month_calendar_fill_calendar(ly, ad->wday_start);
+
+       __cal_month_calendar_update_check(ly, p);
+
+       if (p->ad->daily_events_mode || p->ad->is_landscape_mode) {
+               __cal_month_calendar_signal_all_clean(p);
+               __cal_month_calendar_signal_all_week(p);
+       }
+
+       if (ad->need_to_show_popup) {
+               __cal_month_calendar_events_of_one_weekday(p);
+               ad->need_to_show_popup = EINA_FALSE;
+       }
+
+       cal_month_calendar_update_select(ly);
+
+       CAL_FN_END;
+}
+
+int cal_month_calendar_get_weekline(Evas_Object *ly)
+{
+       c_retv_if(!ly, 6);
+
+       cal_month_calendar_data *p = NULL;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retv_if(!p, 6);
+
+       return p->weekline;
+}
+
+static void __cal_month_calendar_set_more_text(Evas_Object *ly, int count, int index)
+{
+       c_retm_if(!ly, "ly is null");
+       c_retm_if(index < 0 , "index is wrong");
+
+       cal_month_calendar_data* p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->ad, "p->ad is null");
+
+       char part[32] = {0};
+       char text[32] = {0};
+
+       if (count <= (p->ad->is_landscape_mode ? LINES_OF_WEEKLY_MONTHS_EVENT_LANDSCAPE : LINES_OF_WEEKLY_MONTHS_EVENT)) {
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "hide_count,%d", index);
+       } else {
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "show_count,%d", index);
+       }
+}
+
+static void __cal_month_calendar_create_event_lists(Evas_Object *ly, cal_month_calendar_data *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!ly);
+
+       char part[32] = {0};
+       int week = 0;
+
+       for (week = 0; week < WEEKS_OF_MONTH; week++) {
+               snprintf(part, sizeof part, "list/sw/%d", week * DAYS_OF_WEEK);
+               Evas_Object *events = NULL;
+
+               if (p->ad->is_landscape_mode) {
+                       events = cal_util_add_layout(p->ad->naviframe, "main/month/week/events/l");
+               } else {
+                       events = cal_util_add_layout(p->ad->naviframe, "main/month/week/events");
+               }
+
+               c_retm_if(!events, "events is null");
+
+               evas_object_data_set(events, "list_index", (void*)week);
+
+               elm_object_part_content_set(ly, part, events);
+               evas_object_event_callback_add(events, EVAS_CALLBACK_MOUSE_DOWN, __cal_month_calendar_mouse_down, p);
+               evas_object_event_callback_add(events, EVAS_CALLBACK_MOUSE_UP, __cal_month_calendar_mouse_up, p);
+               evas_object_event_callback_add(events, EVAS_CALLBACK_MOUSE_MOVE, __cal_month_calendar_mouse_move, p);
+
+               p->weekly_events_ly[week] = events;
+       }
+}
+
+static void __cal_month_calendar_signal_all_week(cal_month_calendar_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       int week = 0;
+       for (week = 0; week < WEEKS_OF_MONTH; week++)
+               __cal_month_calendar_signal_week(p, p->weekly_events_ly[week], week);
+}
+
+static void __cal_month_calendar_signal_all_clean(cal_month_calendar_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       int i = 0;
+       for (i = 0; i < WEEKS_OF_MONTH; i++)
+               __cal_month_calendar_signal_clean(p,CAL_UTIL_GET_EDJ_DATA(p->weekly_events_ly[i]));
+}
+
+static void __cal_month_calendar_set_check_text(Evas_Object *ly, cal_month_calendar_data *p, int count, int index)
+{
+       c_retm_if(!ly, "ly is null");
+       c_retm_if(index < 0 , "index is wrong");
+
+       char part[32] = {0};
+       char text[32] = {0};
+
+       if (count <= 0) {
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "hide_count,%d", index);
+               p->day[index].checked = 0;
+       } else {
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "show_count,%d", index);
+               p->day[index].checked = 1;
+       }
+}
+
+static void __cal_month_calendar_set_event_rect_color(Evas_Object *obj, cal_month_calendar_data *p, int line, int pos, int calendar_id)
+{
+       c_retm_if(!obj, "obj is null");
+       c_retm_if(!p, "p is null");
+
+       calendar_record_h calendar = NULL;
+       _calendar_book_color calendar_color = {0};
+       Evas_Object *event_content = NULL;
+       char part[20] = {0};
+
+       snprintf(part, sizeof part, "%d/bgcolor/%d", line, pos);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       error = calendar_db_get_record(_calendar_book._uri, calendar_id, &calendar);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record() is failed(%x)", error);
+
+       _calendar_get_calendar_color(calendar, &calendar_color);
+
+       error = calendar_record_destroy(calendar, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+
+       event_content = cal_util_add_rectangle(obj);
+       c_retm_if(!event_content, "event_content is null");
+
+       evas_object_size_hint_align_set(event_content, EVAS_HINT_FILL, 0);
+       evas_object_size_hint_weight_set(event_content, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_color_set(event_content, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+       elm_object_part_content_set(obj, part, event_content);
+
+}
+
+static void __cal_month_calendar_set_day_default_color(cal_month_calendar_data* p, Evas_Object *eo, int pos)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!eo, "eo is null");
+
+       struct _day *d = &p->day[pos];
+       c_retm_if(!d, "d is null");
+
+       switch (d->d_type) {
+       case CAL_MONTH_CALENDAR_DAY_TYPE_SUNDAY:
+               cal_util_emit_signal(eo, "sunday,%d", pos);
+               break;
+       case CAL_MONTH_CALENDAR_DAY_TYPE_SATDAY:
+               cal_util_emit_signal(eo, "satday,%d", pos);
+               break;
+       case CAL_MONTH_CALENDAR_DAY_TYPE_WEEKDAY:
+               cal_util_emit_signal(eo, "weekday,%d", pos);
+               break;
+       default:
+               cal_util_emit_signal(eo, "weekday,%d", pos);
+               break;
+       }
+}
+
+static void __cal_month_calendar_fill_week_number(Evas_Object *ly)
+{
+       c_retm_if(!ly, "ly is null");
+
+       int k = 0;
+       cal_month_calendar_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!p, "p is null");
+
+       for (k = 0; k < WEEKS_OF_MONTH; k++) {
+               int start_day = 0;
+               int end_day = 0;
+               char week[8] = {0};
+               struct tm end_time = {0};
+               struct tm start_time = {0};
+               cal_month_data_get_day_time_by_pos(p->ad,
+                               p->pos_today, p->pos_selected, p->pos_start, p->pos_end,
+                               &start_day, &end_day, &start_time, &end_time, (k + 1) * DAYS_OF_WEEK - 1);
+               cal_util_get_week_number_text(&start_time, week, sizeof(week) - 1);
+               cal_util_set_text(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("wn/%d/text", k), "%s", week);
+       }
+}
diff --git a/src/month-data.c b/src/month-data.c
new file mode 100755 (executable)
index 0000000..389d424
--- /dev/null
@@ -0,0 +1,484 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "month-data.h"
+#include "query.h"
+#include "list-data.h"
+
+#define CAL_MONTH_CALENDAR_LAST_LINE_POS_INDEX 41
+
+typedef struct {
+       struct appdata *ad;
+       int rows_per_cell;
+       cal_month_calendar_event* event_table[WEEKS_OF_MONTH][DAYS_OF_WEEK][CAL_MONTH_MAX_ROWS_PER_CELL];
+       int count_table[WEEKS_OF_MONTH][DAYS_OF_WEEK];
+       struct tm grid_start_date;
+       struct tm grid_end_date;
+} cal_month_data_s;
+
+cal_month_data_h cal_month_data_create(struct appdata *ad, int rows_per_cell)
+{
+       c_retv_if(ad == NULL, NULL);
+
+       cal_month_data_s* p = calloc(1, sizeof(cal_month_data_s));
+       p->ad = ad;
+       p->rows_per_cell = rows_per_cell;
+       return p;
+}
+
+int cal_month_data_get_day_time_by_pos(struct appdata *ad,
+                       int pos_today, int pos_selected, int pos_start, int pos_end,
+                       int *first_day, int *last_day, struct tm *start_time, struct tm *end_time, int day_pos)
+{
+       c_retv_if(!ad, -1);
+
+       int day = 0;
+       int today = 0;
+       int start_day = 0;
+       int r = 0;
+       int day_tmp = 0;
+
+       if (-1 != day_pos) {
+               day = CAL_MONTH_CALENDAR_LAST_LINE_POS_INDEX <= day_pos ? pos_end : day_pos;
+       } else if (-1 == pos_selected) {
+               day = pos_today;
+       } else {
+               day = pos_selected;
+       }
+
+       day_tmp = day + 1;
+       today = day - pos_start + 1;
+       start_day = day - (day_tmp % DAYS_OF_WEEK) + 1;
+
+       if (day < DAYS_OF_WEEK) {
+               *first_day = 1;
+               *last_day = DAYS_OF_WEEK - pos_start;
+       } else if (0 == (day_tmp % DAYS_OF_WEEK)) {
+               *first_day = today - DAYS_OF_WEEK + 1;
+               *last_day = today;
+       } else {
+               *first_day = today - (day % DAYS_OF_WEEK);
+               if (pos_end < (start_day + DAYS_OF_WEEK - 1))
+                       *last_day = pos_end - pos_start + 1;
+               else
+                       *last_day = *first_day + DAYS_OF_WEEK - 1;
+       }
+
+       *start_time = ad->base_tm;
+       start_time->tm_mday = *first_day;
+       start_time->tm_hour = 0;
+       start_time->tm_min = 0;
+       start_time->tm_sec = 0;
+
+       *end_time = ad->base_tm;
+       end_time->tm_mday = *last_day;
+       end_time->tm_hour = 23;
+       end_time->tm_min = 59;
+       end_time->tm_sec = 59;
+
+       if (0 < pos_start && day < DAYS_OF_WEEK)
+               cal_util_update_tm_day(start_time, -pos_start);
+       else if ((0 != (day_tmp % DAYS_OF_WEEK)) && (pos_end < (start_day + DAYS_OF_WEEK - 1)))
+               cal_util_update_tm_day(end_time, start_day + DAYS_OF_WEEK - 1 - pos_end);
+
+       if (pos_end < day_pos && pos_end <= CAL_MONTH_CALENDAR_LAST_LINE_POS_INDEX  && CAL_MONTH_CALENDAR_LAST_LINE_POS_INDEX  < day_pos) {
+               r = cal_util_update_tm_day(start_time, DAYS_OF_WEEK);
+               c_retvm_if(-1 == r, -1, "start_time is out of range.");
+
+               r = cal_util_update_tm_day(end_time, DAYS_OF_WEEK);
+               c_retvm_if(-1 == r, -1, "end_time is out of range.");
+       }
+
+       return 0;
+}
+
+static void __cal_month_data_get_grid_range(struct appdata *ad, struct tm* grid_start_time, struct tm* grid_end_time)
+{
+       struct tm month_start_time;
+       struct tm month_end_time;
+       cal_util_get_month_start_time(&ad->base_tm, &month_start_time);
+       cal_util_get_month_end_time(&ad->base_tm, &month_end_time);
+
+       cal_util_get_week_start_time(&month_start_time, grid_start_time, ad->wday_start);
+       cal_util_get_week_end_time(&month_end_time, grid_end_time, ad->wday_start);
+}
+
+static cal_list_data_h __cal_month_data_retreive_list(const struct tm* start_time, const struct tm* end_time)
+{
+       calendar_query_h query_allday = cal_query_create_list_range_query(
+                       _calendar_instance_allday_calendar_book._uri,
+                       _calendar_instance_allday_calendar_book.start_time,
+                       _calendar_instance_allday_calendar_book.end_time,
+                       start_time, end_time, true);
+
+       calendar_query_h query_normal = cal_query_create_list_range_query(
+                       _calendar_instance_normal_calendar_book._uri,
+                       _calendar_instance_normal_calendar_book.start_time,
+                       _calendar_instance_normal_calendar_book.end_time,
+                       start_time, end_time, false);
+
+       calendar_query_h query_task = cal_query_create_list_range_query(
+                       _calendar_todo_calendar_book._uri,
+                       _calendar_todo_calendar_book.due_time,
+                       _calendar_todo_calendar_book.due_time,
+                       start_time, end_time, false);
+
+       cal_list_data_h list_data = cal_list_data_create(query_allday, query_normal, query_task,
+                               _calendar_instance_allday_calendar_book.start_time,
+                               _calendar_instance_normal_calendar_book.start_time,
+                               _calendar_todo_calendar_book.due_time);
+
+       calendar_query_destroy(query_allday);
+       calendar_query_destroy(query_normal);
+       calendar_query_destroy(query_task);
+
+       return list_data;
+}
+
+static void __cal_month_get_mweek_and_wday(cal_month_data_s* p, const struct tm* date, int* mweek, int* wday)
+{
+       int offset = cal_util_get_day_diff(date, &p->grid_start_date);
+//     DBG("grid_start(%s), day(%s), offset(%d)", cal_util_print_day(&p->grid_start_date), cal_util_print_day(date), offset);
+       c_warn_if(offset < 0, "@@@@@@@@@@@@@@ Something's wrong here!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+
+       if (offset < 0)
+               offset = 0;
+
+       *mweek = offset / 7;
+       *wday = offset % 7;
+}
+
+#define INVALID_ROW -1
+
+static cal_month_calendar_event* _cal_month_data_create_node(
+                                                                               calendar_record_h record, int wday, int* remaining_width,
+                                                                               int prev_node_row)
+{
+       int target_width = 7 - wday;
+       if (target_width > *remaining_width)
+               target_width = *remaining_width;
+       *remaining_width -= target_width;
+
+       cal_month_calendar_event* event = calloc(1, sizeof(cal_month_calendar_event));
+       event->calendar_id = _calendar_get_calendar_index(record);
+       event->width = target_width;
+       event->title = strdup(_calendar_get_summary(record));
+       event->prev_row = prev_node_row;
+       event->next_row = INVALID_ROW;
+       return event;
+}
+
+static cal_month_calendar_event* __cal_month_data_create_plus_node(int count)
+{
+       cal_month_calendar_event* event = calloc(1, sizeof(cal_month_calendar_event));
+       event->calendar_id = 1;
+       event->width = 1;
+       char buffer[50];
+       //TODO:i18n
+       sprintf(buffer, "+%d more", count);
+       event->title = strdup(buffer);
+       event->prev_row = INVALID_ROW;
+       event->next_row = INVALID_ROW;
+       return event;
+}
+
+static const cal_month_calendar_event __dummy;
+
+static int __cal_month_data_find_first_empty_row(cal_month_data_s* p, int mweek, int wday)
+{
+       int row;
+       for (row = 0; row < p->rows_per_cell; row++) {
+               if (p->event_table[mweek][wday][row] == NULL)
+                       break;
+       }
+
+       if (row == p->rows_per_cell)    // No empty row!
+               return -1;
+
+       return row;
+}
+
+static void __cal_month_data_occupy(cal_month_data_s* p, calendar_record_h record)
+{
+       struct tm date = {0};
+       struct tm end_date = {0};
+
+       cal_svc_get_start_date(record, &date);
+       cal_svc_get_end_date(record, &end_date);
+
+       if (cal_util_get_day_diff(&date, &p->grid_start_date) < 0)
+               date = p->grid_start_date;
+
+       if (cal_util_get_day_diff(&p->grid_end_date, &end_date) < 0)
+               end_date = p->grid_end_date;
+
+       int remaining_width = cal_util_get_day_diff(&end_date, &date) + 1;
+
+       cal_month_calendar_event* prev_node = NULL;
+       int prev_node_row = INVALID_ROW;
+
+       int mweek, wday = 0;
+       __cal_month_get_mweek_and_wday(p, &date, &mweek, &wday);
+       p->count_table[mweek][wday]++;
+
+       int row = __cal_month_data_find_first_empty_row(p, mweek, wday);
+       if (row >= 0) {
+               prev_node = p->event_table[mweek][wday][row] =
+                       _cal_month_data_create_node(record, wday, &remaining_width, INVALID_ROW);
+               prev_node_row = row;
+       }
+       cal_util_update_tm_day(&date, 1);
+
+       // Iterate through rest of the span of the event
+       while (cal_util_compare_day(&date, &end_date) >= 0) {
+
+               __cal_month_get_mweek_and_wday(p, &date, &mweek, &wday);
+               p->count_table[mweek][wday]++;
+
+               if (wday == 0) {
+                       if (prev_node != NULL) {
+                               row = __cal_month_data_find_first_empty_row(p, mweek, wday);
+                               if (row < 0) {
+                                       cal_util_update_tm_day(&date, 1);
+                                       continue;
+                               }
+
+                               prev_node->next_row = row;
+                               prev_node = p->event_table[mweek][wday][row] =
+                                       _cal_month_data_create_node(record, wday, &remaining_width, prev_node_row);
+                               prev_node_row = row;
+                       }
+               } else {
+                       if (row >= 0)
+                               p->event_table[mweek][wday][row] = &__dummy;
+               }
+
+               cal_util_update_tm_day(&date, 1);
+       }
+}
+
+static const char* tab(int n)
+{
+       static const char tabs[] = "                                                  ";
+       return tabs + strlen(tabs) - n;
+}
+
+static void __fix_width(char* buffer, int len)
+{
+       strcat(buffer, tab(15 - len));
+}
+
+static void __cal_month_data_dump(cal_month_data_s* p)
+{
+       int mweek;
+       for (mweek = 0; mweek < WEEKS_OF_MONTH; mweek++) {
+               static char buffer[1000];
+
+               buffer[0] = 0;
+               int wday;
+               for (wday = 0; wday < DAYS_OF_WEEK; wday++) {
+                       char buffer2[20];
+                       sprintf(buffer2, "%d", p->count_table[mweek][wday]);
+                       strcat(buffer, buffer2);
+                       __fix_width(buffer, strlen(buffer2));
+               }
+               DBG("%s", buffer);
+
+               int row;
+               for (row = 0; row < p->rows_per_cell; row++) {
+                       buffer[0] = 0;
+                       for (wday = 0; wday < DAYS_OF_WEEK; wday++) {
+                               cal_month_calendar_event* event =
+                                               p->event_table[mweek][wday][row];
+//                                             p->event_table[mweek][wday][p->rows_per_cell - row - 1];
+                               if (event == NULL) {
+                                       strcat(buffer, "");
+                                       __fix_width(buffer, 0);
+                               } else if (event == &__dummy) {
+                                       strcat(buffer, "(dummy)");
+                                       __fix_width(buffer, 7);
+                               } else {
+                                       strncat(buffer, event->title, 14);
+                                       int len = strlen(event->title);
+                                       if (len > 14)
+                                               len = 14;
+                                       __fix_width(buffer, len);
+                               }
+                       }
+                       DBG("%s", buffer);
+               }
+               DBG("---------------------------------------------------------------------------------------------------");
+       }
+}
+
+static void __cal_month_data_unoccupy(cal_month_data_s* p, int mweek, int wday, int row, int dir)
+{
+       if (p->event_table[mweek][wday][row] == NULL)   // This row's already been cleared
+               return;
+
+       int wd;
+
+       DBG("===================================================================================");
+
+       DBG("%d %d %d", mweek, wday, row);
+
+       // Unoccupy tailing blocks.
+       for (wd = wday + 1; wd < DAYS_OF_WEEK; wd++) {
+               if (p->event_table[mweek][wd][row] != &__dummy) // Head of another event or NULL
+                       break;
+               p->event_table[mweek][wd][row] = NULL;
+               DBG("Unoccupying dummy at %d %d %d", mweek, wd, row);
+       }
+
+       // Find head of the event block in last row.
+       for (wd = wday; wd >= 0; wd--) {
+               if (p->event_table[mweek][wd][row] != &__dummy) // Head of this event
+                       break;
+               p->event_table[mweek][wd][row] = NULL;  // Unoccupy blocks along the way
+               DBG("Unoccupying dummy at %d %d %d", mweek, wd, row);
+       }
+
+       cal_month_calendar_event* head = p->event_table[mweek][wd][row];
+       int prev_row = head->prev_row;
+       int next_row = head->next_row;
+
+       // Unoccupy the head itself.
+       free(head);
+       p->event_table[mweek][wd][row] = NULL;
+       DBG("Unoccupying head at %d %d %d", mweek, wd, row);
+
+       __cal_month_data_dump(p);
+
+       // Recursively propagate to previous chained block.
+       if (dir <= 0 && prev_row != INVALID_ROW)
+               __cal_month_data_unoccupy(p, mweek - 1, DAYS_OF_WEEK - 1, prev_row, -1);
+
+       // Recursively propagate to next chained block.
+       if (dir >= 0 && next_row != INVALID_ROW)
+               __cal_month_data_unoccupy(p, mweek + 1, 0, next_row, 1);
+
+}
+
+int cal_month_data_load(cal_month_data_h month_data)
+{
+       c_retv_if(!month_data, -1);
+       cal_month_data_s* p = (cal_month_data_s*)month_data;
+
+       __cal_month_data_get_grid_range(p->ad, &p->grid_start_date, &p->grid_end_date);
+
+       cal_list_data_h* cursor = __cal_month_data_retreive_list(&p->grid_start_date, &p->grid_end_date);
+
+       // 1. Make a pass to fill up the grid with blocks greedily.
+       bool day_has_changed;
+       calendar_record_h record = cal_list_data_get_next(cursor, &day_has_changed);
+       while (record) {
+               __cal_month_data_occupy(p, record);
+               record = cal_list_data_get_next(cursor, &day_has_changed);
+       }
+
+       __cal_month_data_dump(p);
+
+       int mweek;
+
+       // 2. Make second pass to make room for the +n blocks where necessary.
+       for (mweek = 0; mweek < WEEKS_OF_MONTH; mweek++) {
+               int wday;
+               for (wday = 0; wday < DAYS_OF_WEEK; wday++) {
+                       if (p->count_table[mweek][wday] > p->rows_per_cell &&
+                               p->event_table[mweek][wday][p->rows_per_cell - 1] != NULL) {
+                               __cal_month_data_unoccupy(p, mweek, wday, p->rows_per_cell - 1, 0);
+                       }
+               }
+       }
+
+       // 3. Make third pass to place +n blocks where necessary.
+       for (mweek = 0; mweek < WEEKS_OF_MONTH; mweek++) {
+               int wday;
+               for (wday = 0; wday < DAYS_OF_WEEK; wday++) {
+                       int row;
+                       for (row = 0; row < p->rows_per_cell; row++) {
+                               if (p->event_table[mweek][wday][row] == NULL) {
+                                       int num_of_showing_blocks = row;
+                                       int total_count = p->count_table[mweek][wday];
+                                       if (num_of_showing_blocks < total_count) {
+                                               p->event_table[mweek][wday][row] =
+                                                               __cal_month_data_create_plus_node(total_count - num_of_showing_blocks);
+                                       }
+                               }
+                       }
+               }
+       }
+
+
+       __cal_month_data_dump(p);
+
+       cal_list_data_destroy(cursor, true);
+
+       return 0;
+}
+
+int cal_month_data_get_event_count(cal_month_data_h month_data, int week, int wday)
+{
+       c_retv_if(!month_data, -1);
+       cal_month_data_s* p = (cal_month_data_s*)month_data;
+
+       return p->count_table[week][wday];
+}
+
+cal_month_calendar_event* cal_month_data_get_event(cal_month_data_h month_data, int mweek, int wday, int row)
+{
+       c_retv_if(!month_data, false);
+       cal_month_data_s* p = (cal_month_data_s*)month_data;
+       cal_month_calendar_event* event = p->event_table[mweek][wday][row];
+       if (event == &__dummy)
+               return NULL;
+       else
+               return event;
+}
+
+void cal_month_data_clear(cal_month_data_h month_data)
+{
+       c_ret_if(!month_data);
+       cal_month_data_s* p = (cal_month_data_s*)month_data;
+
+       int mweek;
+       for (mweek = 0; mweek < WEEKS_OF_MONTH; mweek++) {
+               int wday;
+               for (wday = 0; wday < DAYS_OF_WEEK; wday++) {
+                       p->count_table[mweek][wday] = 0;
+                       int row;
+                       for (row = 0; row < p->rows_per_cell; row++) {
+                               cal_month_calendar_event* event = p->event_table[mweek][wday][row];
+                               if (event != NULL && event != &__dummy) {
+                                       if (event->title != NULL)
+                                               free(event->title);
+                                       free(event);
+                               }
+                               p->event_table[mweek][wday][row] = NULL;
+                       }
+               }
+       }
+}
+
+void cal_month_data_destroy(cal_month_data_h month_data)
+{
+       c_ret_if(!month_data);
+       cal_month_data_s* p = (cal_month_data_s*)month_data;
+
+       cal_month_data_clear(month_data);
+       free(p);
+}
diff --git a/src/month-data.h b/src/month-data.h
new file mode 100644 (file)
index 0000000..b970f2e
--- /dev/null
@@ -0,0 +1,57 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __MONTH_DATA_H__
+#define __MONTH_DATA_H__
+
+#include "cld.h"
+
+#define WEEKS_OF_MONTH 6
+#define DAYS_OF_WEEK 7
+#define DAYS_OF_WEEKLY_MONTHS_VIEW 42
+#define LINES_OF_WEEKLY_MONTHS_EVENT 3
+#define LINES_OF_WEEKLY_MONTHS_EVENT_LANDSCAPE 1
+
+#define CAL_MONTH_MAX_ROWS_PER_CELL 3
+
+typedef struct {
+       int calendar_id;
+       int width;
+       char* title;
+       int prev_row;
+       int next_row;
+} cal_month_calendar_event;
+
+typedef void* cal_month_data_h;
+
+cal_month_data_h cal_month_data_create(struct appdata *ad, int rows_per_cell);
+
+int cal_month_data_load(cal_month_data_h month_data);
+
+int cal_month_data_get_event_count(cal_month_data_h month_data, int week, int wday);
+
+cal_month_calendar_event* cal_month_data_get_event(cal_month_data_h month_data, int mweek, int wday, int row);
+
+void cal_month_data_clear(cal_month_data_h month_data);
+
+int cal_month_data_get_day_time_by_pos(struct appdata *ad,
+                       int pos_today, int pos_selected, int pos_start, int pos_end,
+                       int *first_day, int *last_day, struct tm *start_time, struct tm *end_time, int day_pos);
+
+void cal_month_data_destroy(cal_month_data_h month_data);
+
+#endif
diff --git a/src/noti-handler.c b/src/noti-handler.c
new file mode 100755 (executable)
index 0000000..dd618f2
--- /dev/null
@@ -0,0 +1,318 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <alarm.h>
+#include <aul.h>
+#include <Ecore_X.h>
+#include <utilX.h>
+#include <app.h>
+#include <vconf.h>
+
+#include <notification.h>
+#include <appsvc.h>
+#include <reminder.h>
+
+#include "noti-handler.h"
+#include "cld-images.h"
+
+#define SERVICE_CALENDAR_NAME "operation"
+#define SERVICE_CALENDAR_INDEX_NAME "index"
+
+static calendar_record_h __cal_noti_handler_get_record_from_calendar_alarm(calendar_record_h calendar_alarm)
+{
+       c_retv_if(!calendar_alarm, NULL);
+
+       int record_index = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_record_h record = NULL;
+
+       error = calendar_record_get_int(calendar_alarm, _calendar_alarm.event_id, &record_index);
+       if (error != CALENDAR_ERROR_NONE) {
+               error = calendar_db_get_record(_calendar_event._uri, record_index, &record);
+       } else {
+               error = calendar_record_get_int(calendar_alarm, _calendar_alarm.todo_id, &record_index);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               error = calendar_db_get_record(_calendar_todo._uri, record_index, &record);
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record() is failed(%x)", error);
+
+       return record;
+}
+
+static void __cal_noti_handler_add_noti(struct appdata* ad, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ad);
+       c_ret_if(!record);
+
+       calendar_time_s start_time = {0};
+
+       _calendar_get_start_time(record, &start_time);
+
+       struct tm tm = {0};
+
+       if (_calendar_is_allday_record(record)) {
+               tm.tm_year = start_time.time.date.year - 1900;
+               tm.tm_mon = start_time.time.date.month - 1;
+               tm.tm_mday = start_time.time.date.mday;
+       } else
+               cal_util_convert_lli_to_tm(NULL, start_time.time.utime, &tm);
+
+       char *title = _calendar_get_summary(record);
+
+       notification_h notification = NULL;
+
+       notification_error_e error = NOTIFICATION_ERROR_NONE;
+
+       int notification_id = 0;
+
+       int ret = vconf_get_int(CAL_VCONFKEY_NOTIFICATION_ID, &notification_id);
+       c_warn_if(ret != 0,"vconf_get_int(CAL_VCONFKEY_NOTIFICATION_ID) is failed(%d)", ret);
+
+       Eina_Bool is_first_notification = EINA_FALSE;
+
+       notification = notification_load(CALENDAR_PACKAGE, notification_id);
+       if (!notification) {
+               notification = notification_create(NOTIFICATION_TYPE_NOTI);
+
+               if(!notification){
+                       free(title);
+                       c_retm_if(!notification, "notification_create() is failed.");
+               }
+
+               is_first_notification = EINA_TRUE;
+       }
+
+       if (is_first_notification) {
+               error = notification_set_layout(notification, NOTIFICATION_LY_NOTI_EVENT_MULTIPLE);
+               c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_layout() is failed(%x)", error);
+
+               error = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_TITLE, S_("IDS_COM_BODY_S_PLANNER"), "IDS_COM_BODY_S_PLANNER", NOTIFICATION_VARIABLE_TYPE_NONE);
+               c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_text() is failed(%x)", error);
+
+               error = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_CONTENT, S_("IDS_COM_POP_MISSED_EVENT"), "IDS_COM_POP_MISSED_EVENT", NOTIFICATION_VARIABLE_TYPE_NONE);
+               c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_text() is failed(%x)", error);
+
+               error = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_INFO_1, title, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+               c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_text() is failed(%x)", error);
+
+               time_t current = time(NULL);
+
+               error = notification_set_time_to_text(notification, NOTIFICATION_TEXT_TYPE_INFO_SUB_1, current);
+               c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_time_to_text() is failed(%x)", error);
+       } else {
+
+               int notification_count = 0;
+
+               error = notification_get_count(NOTIFICATION_TYPE_NOTI, CALENDAR_PACKAGE, NOTIFICATION_GROUP_ID_NONE, notification_id, &notification_count);
+               c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_get_count() is failed(%x)", error);
+
+               if (notification_count == 1) {
+
+                       error = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_INFO_2, title, NULL, NOTIFICATION_VARIABLE_TYPE_NONE);
+                       c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_text() is failed(%x)", error);
+
+                       time_t current = time(NULL);
+
+                       error = notification_set_time_to_text(notification, NOTIFICATION_TEXT_TYPE_INFO_SUB_2, current);
+                       c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_time_to_text() is failed(%x)", error);
+               }
+
+               char text[128] = {0};
+
+               // TODO:i18n
+               snprintf(text, sizeof(text), "%d %s", notification_count + 1, S_("IDS_COM_POP_MISSED_EVENTS"));
+
+               error = notification_set_text(notification, NOTIFICATION_TEXT_TYPE_CONTENT, text, "IDS_COM_POP_MISSED_EVENTS", NOTIFICATION_VARIABLE_TYPE_NONE);
+               c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_text() is failed(%x)", error);
+       }
+
+       error = notification_set_time(notification, mktime(&tm));
+       c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_time() is failed(%x)", error);
+
+       bundle *b = NULL;
+
+       b = bundle_create();
+       if (!b) {
+               ERR("bundle_create() is failed");
+
+               notification_free(notification);
+               free(title);
+               return;
+       }
+
+       ret = appsvc_set_operation(b, APPSVC_OPERATION_VIEW);
+       c_warn_if(ret, "appsvc_set_operation() is failed");
+
+       ret = appsvc_set_appid(b, CALENDAR_PACKAGE);
+       c_warn_if(ret, "appsvc_set_appid() is failed");
+
+       char item_id[8] = {0};
+
+       snprintf(item_id, sizeof(item_id), "%d", _calendar_get_record_index(record));
+
+       ret = bundle_add(b, CAL_APPSVC_PARAM_INDEX, item_id);
+       c_warn_if(ret, "bundle_add() is failed");
+
+       _calendar_record_type type = _calendar_get_record_type(record);
+
+       if (type == _CALENDAR_RECORD_TYPE_EVENT) {
+               ret = bundle_add(b, CAL_APPSVC_PARAM_TYPE, "event");
+       } else if (type == _CALENDAR_RECORD_TYPE_TODO) {
+               ret = bundle_add(b, CAL_APPSVC_PARAM_TYPE, "todo");
+       }
+
+       c_warn_if(ret, "bundle_add() is failed");
+
+       error = notification_set_execute_option(notification, NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH, NULL, NULL, b);
+       c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_execute_option() is failed(%x)", error);
+
+       error = notification_set_execute_option(notification, NOTIFICATION_EXECUTE_TYPE_MULTI_LAUNCH, NULL, NULL, b);
+       c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_execute_option() is failed(%x)", error);
+
+       error = notification_set_pkgname(notification, CALENDAR_PACKAGE);
+       c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_set_pkgname() is failed(%x)", error);
+
+       if (is_first_notification) {
+
+               error = notification_insert(notification, &notification_id);
+               c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_insert() is failed(%x)", error);
+
+               ret = vconf_set_int(CAL_VCONFKEY_NOTIFICATION_ID, notification_id);
+               c_warn_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_NOTIFICATION_ID, %d) is failed(%d)", notification_id, ret);
+       } else {
+               error = notification_update(notification);
+               c_warn_if(error != NOTIFICATION_ERROR_NONE, "notification_update() is failed(%x)", error);
+       }
+
+       free(title);
+       notification_free(notification);
+       bundle_free(b);
+}
+
+static void __cal_noti_handler_add_noti_for_reminder(struct appdata* ad, calendar_record_h calendar_alarm)
+{
+       c_ret_if(!ad);
+       c_ret_if(!calendar_alarm);
+
+       calendar_record_h record = __cal_noti_handler_get_record_from_calendar_alarm(calendar_alarm);
+       c_ret_if(!record);
+
+       __cal_noti_handler_add_noti(ad, record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_destroy(record, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)");
+}
+
+int cal_noti_handler_show_for_reminder(int record_index, void *data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!data, -1);
+
+       struct appdata *ad = data;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_query_h query = NULL;
+
+       error = calendar_query_create(_calendar_alarm._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_filter_create(_calendar_alarm._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       error = calendar_filter_add_int(filter, _calendar_alarm.alarm_id, CALENDAR_MATCH_EQUAL, (int)record_index);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_add_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       int count = 0;
+
+       int i = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       Eina_Bool is_driving_mode = EINA_FALSE;
+       Eina_Bool is_driving_mode_schedule = EINA_FALSE;
+
+       int ret = vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, (int *)&is_driving_mode);
+       c_warn_if(ret != 0, "vconf_get_int(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE) is failed(%d)", ret);
+
+       if (is_driving_mode) {
+               ret = vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_SCHEDULE, (int *)&is_driving_mode_schedule);
+               c_warn_if(ret != 0, "vconf_get_int(VCONFKEY_SETAPPL_DRIVINGMODE_SCHEDULE) is failed(%d)", ret);
+       }
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       for (i = 0; i < count; i++) {
+               calendar_record_h calendar_alarm = NULL;
+
+               error = calendar_list_get_current_record_p(list, &calendar_alarm);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               __cal_noti_handler_add_noti_for_reminder(ad, calendar_alarm);
+
+               calendar_list_next(list);
+       }
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return 0;
+}
+
+int cal_noti_handler_show_for_location_reminder(int record_index, void *data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!data, -1);
+
+       struct appdata *ad = data;
+
+       calendar_record_h record = _calendar_get_record_with_index(record_index);
+
+       __cal_noti_handler_add_noti(ad, record);
+       
+       return 0;
+
+}
diff --git a/src/noti-handler.h b/src/noti-handler.h
new file mode 100755 (executable)
index 0000000..4a334ec
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_ALARM_H__
+#define __CALENDAR_ALARM_H__
+
+#include <alarm.h>
+#include "cld.h"
+
+int cal_noti_handler_show_for_reminder(alarm_id_t id, void *data);
+int cal_noti_handler_show_for_location_reminder(int record_index, void *data);
+
+#endif /* __CALENDAR_ALARM_H__ */
diff --git a/src/search.c b/src/search.c
new file mode 100755 (executable)
index 0000000..e31d824
--- /dev/null
@@ -0,0 +1,900 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <vconf.h>
+
+#include "detail-view.h"
+#include "noti-handler.h"
+#include "external-ug.h"
+#include "view.h"
+#include "cld-images.h"
+#include "list-base.h"
+#include "searchbar.h"
+
+static Elm_Entry_Filter_Limit_Size _limit_20char = {
+       .max_char_count = 20,
+};
+
+
+typedef enum {
+       CAL_SEARCH_ALL = 0,
+       CAL_SEARCH_EVENTS,
+       CAL_SEARCH_TASKS,
+}search_scope_mode;
+
+
+typedef struct {
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *layout; // self
+
+       Evas_Object *box;
+       Evas_Object *searchbar;
+       Evas_Object *no_contents;
+
+       cal_list_base_h list;
+
+       Eina_List *append_list;
+       int appended_event_count;
+
+       const char *searchtext;
+
+       int cur_position;
+       Ecore_Idler* idler; // To append list
+
+       struct tm last_itc_h; // To prevent duplicated cal_list_itc_h, in add events & add events idler
+
+       Eina_Bool is_today_added; //To check real today item is added.
+
+       Evas_Object *popup;
+
+       Ecore_Event_Handler *event_handler;
+       Evas_Coord x;
+       Evas_Coord y;
+       Elm_Object_Item *sweep_it;
+
+       Elm_Object_Item* navi_item;
+
+       struct tm tm_start;
+       struct tm tm_end;
+       Evas_Object *ctx_popup;
+       Evas_Object *scope_button;
+       Eina_Bool has_repeated_events;
+       Elm_Object_Item *repeated_group_it;
+
+       search_scope_mode search_type;
+       Eina_Bool is_today_has_instance;
+}cal_search_list_data;
+
+typedef struct {
+       Elm_Object_Item *it;  // Genlist Item pointer
+       Eina_Bool checked;     // Check status
+       calendar_record_h record;
+       struct tm *tm;
+       char *color_str;
+}cal_search_list_genlist_item_data;
+
+static void __cal_search_list_create_ctx_popup(cal_search_list_data* p);
+static void __cal_search_list_update_list(cal_search_list_data *p);
+
+extern Elm_Genlist_Item_Class cal_list_today_group_itc_h;
+
+static void __cal_search_list_append_list_with_iter(Eina_List **event_list, calendar_list_h list)
+{
+       c_ret_if(!event_list);
+       c_ret_if(!list);
+
+       calendar_record_h record = NULL;
+
+       int i = 0;
+
+       int count = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       for (i = 0; i < count; i++) {
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               *event_list = eina_list_append(*event_list, record);
+
+               calendar_list_next(list);
+       }
+}
+
+static void __cal_search_list_get_data_with_search(cal_search_list_data *p, calendar_list_h (*_cal_svc_search)(const char *))
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       calendar_list_h list = _cal_svc_search(p->searchtext);
+       c_ret_if(!list);
+
+       __cal_search_list_append_list_with_iter(&p->append_list, list);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_list_destroy(list, false);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       CAL_FN_END;
+}
+
+static void __cal_search_list_get_events_with_search(cal_search_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       __cal_search_list_get_data_with_search(p, _calendar_search_event);
+
+       CAL_FN_END;
+}
+
+static void __cal_search_list_get_todo_with_search(cal_search_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       __cal_search_list_get_data_with_search(p, _calendar_search_task);
+
+       CAL_FN_END;
+}
+
+static Eina_Bool __cal_search_list_check_idler_condition(cal_search_list_data *p)
+{
+       c_retv_if(!p, ECORE_CALLBACK_CANCEL);
+
+       if (p->appended_event_count < eina_list_count(p->append_list)) {
+
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if (p->idler) {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_search_list_append_event_to_genlist(cal_search_list_data *p)
+{
+       c_ret_if(!p);
+
+       struct appdata* ad = p->ad;
+       c_ret_if(!ad);
+
+       Elm_Object_Item *it = NULL;
+       int time_previous = 0;
+       int time_today = (ad->today_tm.tm_year << 9) | (ad->today_tm.tm_mon << 5) | ad->today_tm.tm_mday;
+
+       Eina_List *l, *list;
+       calendar_record_h record;
+       int appended_event_count = 0;
+       struct tm tm_current;
+
+       calendar_time_s time = {0};
+
+       if (0 < p->appended_event_count) {
+               list = eina_list_nth_list(p->append_list, p->appended_event_count - 1);
+               c_ret_if(!list);
+
+               record = eina_list_data_get(list);
+               c_ret_if(!record);
+
+               if (_calendar_is_task_record(record)) {
+                       _calendar_get_end_time(record, &time);
+
+                       cal_util_convert_lli_to_tm(NULL, time.time.utime, &tm_current);
+               } else {
+                       _calendar_get_start_time(record, &time);
+
+                       if (_calendar_is_allday_record(record)) {
+
+                               tm_current.tm_year = time.time.date.year - 1900;
+                               tm_current.tm_mon = time.time.date.month  - 1;
+                               tm_current.tm_mday = time.time.date.mday;
+                       } else {
+                               cal_util_convert_lli_to_tm(NULL, time.time.utime, &tm_current);
+                       }
+               }
+
+               time_previous = (tm_current.tm_year << 9) | (tm_current.tm_mon << 5) | tm_current.tm_mday;
+
+               list = eina_list_next(list);
+               c_ret_if(!list);
+       }
+       else
+               list = p->append_list;
+
+       EINA_LIST_FOREACH(list, l, record) {
+               if (!record)
+                       continue;
+
+               tm_current = p->ad->base_tm;
+
+               if (_calendar_is_recurrent_record(record)) {
+                       p->has_repeated_events = EINA_TRUE;
+               }
+
+               if (_calendar_is_task_record(record)) {
+                       _calendar_get_end_time(record, &time);
+
+                       cal_util_convert_lli_to_tm(NULL, time.time.utime, &tm_current);
+                       if (tm_current.tm_mday == 0) {
+                               continue;
+                       }
+               } else {
+                       _calendar_get_start_time(record, &time);
+
+                       if (_calendar_is_allday_record(record)) {
+
+                               tm_current.tm_year = time.time.date.year - 1900;
+                               tm_current.tm_mon = time.time.date.month  - 1;
+                               tm_current.tm_mday = time.time.date.mday;
+
+                       } else
+                               cal_util_convert_lli_to_tm(NULL, time.time.utime, &tm_current);
+               }
+
+               int time_current = (tm_current.tm_year << 9) | (tm_current.tm_mon << 5) | tm_current.tm_mday;
+
+               if (_calendar_is_recurrent_record(record)) {
+
+                       if (!p->repeated_group_it)
+                               p->repeated_group_it = cal_list_base_append_genlist_group_item(cal_list_base_get_genlist_p(p->list), &cal_list_itc_h, NULL, CAL_TASK_NONE);
+                       cal_list_base_add_item_after(p->list, record, p->repeated_group_it);
+
+               } else {
+
+                       if (time_previous != time_current) {
+                               if ((time_current == time_today) && (!p->is_today_has_instance)) {
+                                       it = cal_list_base_append_genlist_group_item(cal_list_base_get_genlist_p(p->list), &cal_list_today_group_itc_h, &tm_current, CAL_TASK_NONE);
+                                       p->is_today_has_instance = EINA_TRUE;
+                               } else {
+                                       it = cal_list_base_append_genlist_group_item(cal_list_base_get_genlist_p(p->list), &cal_list_itc_h, &tm_current, CAL_TASK_NONE);
+                               }
+
+                               time_previous = time_current;
+
+                               if (time_today == time_current) {
+                                       ad->today_item = it;
+                                       p->is_today_added = EINA_TRUE;
+                               }
+
+                               if (!p->is_today_added) {
+                                       if (time_today < time_current) {
+                                               ad->today_item = it;
+                                               p->is_today_added = EINA_TRUE;
+                                       }
+                                       else
+                                               ad->today_item = it;
+                               }
+
+                               p->last_itc_h = tm_current;
+
+                       }
+
+                       cal_list_base_add_item(p->list, record, false);
+               }
+
+               appended_event_count++;
+
+               if (10 < appended_event_count)
+                       break;
+
+       }
+
+       p->appended_event_count += appended_event_count;
+}
+
+Eina_Bool __cal_search_list_idler_callback(void* data)
+{
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       cal_search_list_data *p = data;
+
+       c_retv_if(!p->idler, ECORE_CALLBACK_CANCEL);
+
+       __cal_search_list_append_event_to_genlist(p);
+
+       return __cal_search_list_check_idler_condition(p);
+}
+
+static void __cal_search_list_add_idler(cal_search_list_data *p)
+{
+       c_ret_if(!p);
+
+       if (p->appended_event_count < eina_list_count(p->append_list)) {
+
+               if (p->idler)
+                       ecore_idler_del(p->idler);
+
+               p->idler = ecore_idler_add(__cal_search_list_idler_callback, p);
+               c_ret_if(!p->idler);
+
+       }
+}
+
+static void __cal_search_list_delete_idler(cal_search_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       if (!p->idler)
+               return;
+
+       ecore_idler_del(p->idler);
+
+       p->idler = NULL;
+}
+
+static void __cal_search_list_create_no_contents(cal_search_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!p->layout);
+
+       if (p->no_contents)
+               return;
+
+       char* title = NULL;
+
+       title = S_("IDS_COM_BODY_NO_ITEMS");
+
+       Evas_Object *no_contents = cal_util_add_search_nocontents(p->layout, title);
+       c_ret_if(!no_contents);
+
+       elm_object_part_content_set(p->layout, "sw", no_contents);
+
+       p->no_contents = no_contents;
+}
+
+static inline void __cal_search_list_show_searchbar(cal_search_list_data *p)
+{
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->layout), "searchbar,show", "prog");
+}
+
+static inline void __cal_search_list_hide_searchbar(cal_search_list_data *p)
+{
+       if (!CAL_STRLEN(p->searchtext))
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->layout), "searchbar,hide", "prog");
+}
+
+static void __cal_search_list_delete_no_contents(cal_search_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       if (!p->no_contents)
+               return;
+
+       elm_object_part_content_unset(p->layout, "sw");
+
+       evas_object_del(p->no_contents);
+
+       p->no_contents = NULL;
+}
+
+static void __cal_search_list_delete_genlist(cal_search_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!cal_list_base_get_genlist_p(p->list));
+
+       cal_list_base_delete(p->list);
+
+       p->list = NULL;
+}
+
+static void __cal_search_genlist_item_selected_callback(void *data)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_search_list_data *p = data;
+       c_retm_if(!p, "p is null");
+
+       calendar_record_h record = _calendar_get_record_with_index(p->ad->cid);
+       c_retm_if(!record, "record is null");
+
+       cal_detail_create_view(p->ad, record, NULL, NULL);
+       calendar_record_destroy(record, true);
+
+       return;
+}
+
+static void __cal_search_list_update_genlist(cal_search_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       __cal_search_list_delete_idler(p);
+
+       cal_list_base_clear(p->list);
+
+       struct appdata* ad = p->ad;
+       c_ret_if(!ad);
+
+       ad->today_item = NULL;
+
+       p->appended_event_count = 0;
+       p->repeated_group_it = NULL;
+       p->has_repeated_events = EINA_FALSE;
+       p->is_today_has_instance  = EINA_FALSE;
+
+       if (eina_list_count(p->append_list)) {
+
+               __cal_search_list_show_searchbar(p);
+
+               __cal_search_list_delete_no_contents(p);
+
+               if (!p->list) {
+                       p->list = cal_list_base_create(ad, p->layout, "sw", true,
+                                                       __cal_search_genlist_item_selected_callback, p);
+                       c_ret_if(!p->list);
+               }
+
+               cal_list_base_set_search_text(p->list, p->searchtext);
+
+               __cal_search_list_append_event_to_genlist(p);
+
+               __cal_search_list_add_idler(p);
+
+       } else {
+
+               __cal_search_list_show_searchbar(p);
+
+               __cal_search_list_delete_genlist(p);
+
+               __cal_search_list_create_no_contents(p);
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_search_list_update_events(cal_search_list_data *p)
+{
+       c_ret_if(!p);
+
+       _calendar_free_record_list(&p->append_list);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       if (CAL_STRLEN(p->searchtext)) {
+               if (p->search_type == CAL_SEARCH_ALL) {
+                       __cal_search_list_get_events_with_search(p);
+                       __cal_search_list_get_todo_with_search(p);
+               } else if (p->search_type == CAL_SEARCH_EVENTS) {
+                       __cal_search_list_get_events_with_search(p);
+               } else if (p->search_type == CAL_SEARCH_TASKS) {
+                       __cal_search_list_get_todo_with_search(p);
+               }
+       }
+}
+
+static void __cal_search_list_update_list(cal_search_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       __cal_search_list_update_events(p);
+
+       __cal_search_list_update_genlist(p);
+
+       CAL_FN_END;
+}
+
+static void __cal_search_list_searchbar_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_search_list_data *p = data;
+       c_ret_if(!p->searchbar);
+
+       p->searchtext = elm_entry_markup_to_utf8(elm_object_text_get(elm_object_part_content_get(p->searchbar, "elm.swallow.content")));
+
+       __cal_search_list_update_list(p);
+
+       CAL_FN_END;
+}
+
+static void __cal_search_list_cancel_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       cal_search_list_data *p = data;
+       c_ret_if(!p);
+
+       elm_object_disabled_set(p->ad->new_event_button, EINA_FALSE);
+
+       Evas_Object *en = elm_object_part_content_get(p->searchbar, "elm.swallow.content");
+
+       Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
+       c_ret_if(!imf_context);
+
+       ecore_imf_context_input_panel_hide(imf_context);
+
+       CAL_FN_END;
+}
+
+static void __cal_search_list_text_refresh_callback(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_search_list_data *p = data;
+
+       elm_object_item_part_text_set(p->navi_item, "default", S_("IDS_COM_BODY_SEARCH"));
+
+       if (p->search_type == CAL_SEARCH_ALL) {
+               elm_object_text_set(p->scope_button,  S_("IDS_COM_BODY_ALL"));
+       } else if (p->search_type == CAL_SEARCH_EVENTS) {
+               elm_object_text_set(p->scope_button,  C_("IDS_CLD_BODY_EVENTS"));
+       } else if (p->search_type == CAL_SEARCH_TASKS) {
+               elm_object_text_set(p->scope_button,  C_("IDS_CLD_BODY_TASKS"));
+       }
+
+       elm_object_part_text_set(p->searchbar, "elm.guidetext", S_("IDS_COM_BODY_SEARCH"));
+       elm_object_text_set(elm_object_part_content_get(p->searchbar, "button_cancel"), S_("IDS_COM_SK_CANCEL"));
+
+       if(p->no_contents)
+               elm_object_part_text_set(p->no_contents, "elm.text", S_("IDS_COM_BODY_NO_ITEMS"));
+
+       elm_genlist_realized_items_update(p->list);
+}
+
+static void __cal_search_list_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+
+       cal_search_list_data *p = data;
+       c_retm_if(!p, "priv is null.");
+
+       elm_win_conformant_set(p->ad->win, EINA_TRUE);
+
+       p->ad->current_view = p->ad->tapbar_focus_view;
+
+       if (p->idler) {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       _calendar_free_record_list(&p->append_list);
+
+       if (p->event_handler)
+               ecore_event_handler_del(p->event_handler);
+
+       if (p->popup) {
+               evas_object_del(p->popup);
+               p->popup = NULL;
+       }
+
+       cal_lang_manager_remove_callback(__cal_search_list_text_refresh_callback, p);
+
+       free(p);
+
+       CAL_FN_END;
+}
+
+static void __cal_search_list_searchbar_entry_unfocused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_search_list_data *p = data;
+       c_ret_if(!p->searchbar);
+
+       elm_object_disabled_set(p->ad->new_event_button, EINA_FALSE);
+       elm_win_conformant_set(p->ad->win, EINA_TRUE);
+}
+
+static void __cal_search_list_searchbar_entry_focused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_search_list_data *p = data;
+       c_ret_if(!p->searchbar);
+
+       elm_win_conformant_set(p->ad->win, EINA_FALSE);
+}
+
+
+
+static void __cal_search_list_searchbar_clicked_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       cal_search_list_data *p = data;
+
+       elm_object_disabled_set(p->ad->new_event_button, EINA_TRUE);
+}
+
+static void __cal_search_list_search_scope_click_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+       c_retm_if(!data, "data is null");
+
+       cal_search_list_data *p = data;
+
+       __cal_search_list_create_ctx_popup(p);
+}
+
+static void __cal_search_list_create_searchbar(cal_search_list_data *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->layout);
+
+       Evas_Object *button = elm_button_add(p->layout);
+       c_retm_if(!button, "button is NULL");
+
+       p->scope_button = button;
+       elm_object_style_set(button, "searchbar/default");
+       if (p->ad->tapbar_focus_view == CV_TODO) {
+               elm_object_text_set(button, C_("IDS_CLD_BODY_TASKS"));
+       } else {
+               elm_object_text_set(button, S_("IDS_COM_BODY_ALL"));
+       }
+       evas_object_data_set(button, "priv", p);
+       elm_object_part_content_set(p->layout, "search_scope_button", button);
+       evas_object_smart_callback_add(button, "clicked", __cal_search_list_search_scope_click_callback, p);
+       elm_object_focus_allow_set(button, EINA_FALSE);
+
+       Evas_Object *searchbar = cal_util_add_searchbar(p->layout, NULL, NULL, EINA_TRUE, NULL, p);
+       c_ret_if(!searchbar);
+
+       Evas_Object *entry = elm_object_part_content_get(searchbar, "elm.swallow.content");
+       c_ret_if(!entry);
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+
+       elm_object_focus_set(entry, EINA_TRUE);
+       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &_limit_20char);
+
+       evas_object_size_hint_weight_set(searchbar, EVAS_HINT_EXPAND, 0);
+       evas_object_size_hint_align_set(searchbar, EVAS_HINT_FILL, 0.0);
+
+       evas_object_smart_callback_add(entry, "changed", __cal_search_list_searchbar_entry_changed_callback, p);
+       evas_object_smart_callback_add(entry, "preedit,changed", __cal_search_list_searchbar_entry_changed_callback, p);
+       evas_object_smart_callback_add(entry, "unfocused", __cal_search_list_searchbar_entry_unfocused_callback, p);
+       evas_object_smart_callback_add(entry, "focused", __cal_search_list_searchbar_entry_focused_callback, p);
+       evas_object_smart_callback_add(searchbar, "clicked", __cal_search_list_searchbar_clicked_callback, p);
+       evas_object_smart_callback_add(searchbar, "cancel,clicked", __cal_search_list_cancel_button_callback, p);
+
+       evas_object_show(searchbar);
+       elm_object_part_content_set(p->layout, "searchbar", searchbar);
+
+       p->searchbar = searchbar;
+}
+
+static void __cal_search_list_context_popup_hide_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj,  "obj is null");
+
+       cal_search_list_data* p = data;
+       p->ctx_popup = NULL;
+       evas_object_del(obj);
+
+       c_retm_if(!p->searchbar, "entry is NULL.");
+
+       Evas_Object *entry = elm_object_part_content_get(p->searchbar, "elm.swallow.content");
+       c_retm_if(!entry, "entry is NULL.");
+
+       elm_object_focus_set(entry, EINA_TRUE);
+}
+
+
+static void __cal_search_list_context_popup_selected_callback(void *data, Evas_Object *obj, void *ei)
+{
+       cal_search_list_data* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is NULL.");
+
+       int index = (int)data;
+
+       if (p->search_type == index) {
+               elm_ctxpopup_dismiss(obj);
+               return;
+       }
+
+       p->search_type = index;
+
+       if (p->search_type == CAL_SEARCH_ALL) {
+               elm_object_text_set(p->scope_button,  S_("IDS_COM_BODY_ALL"));
+       } else if (p->search_type == CAL_SEARCH_EVENTS) {
+               elm_object_text_set(p->scope_button,  C_("IDS_CLD_BODY_EVENTS"));
+       } else if (p->search_type == CAL_SEARCH_TASKS) {
+               elm_object_text_set(p->scope_button,  C_("IDS_CLD_BODY_TASKS"));
+       }
+       __cal_search_list_update_list(p);
+
+       elm_ctxpopup_dismiss(obj);
+}
+
+
+static void __cal_search_list_create_ctx_popup(cal_search_list_data* p)
+{
+       c_retm_if(!p, "p is NULL.");
+       c_retm_if(!p->searchbar, "p->searchbar is NULL.");
+
+       int x, y, w, h;
+
+       Evas_Object *ctx = p->ctx_popup;
+
+       if (ctx)
+               evas_object_del(ctx);
+
+       p->ctx_popup = elm_ctxpopup_add(p->ad->win);
+       c_retm_if(!p->ctx_popup, "elm_ctxpopup_add(p->ad->naviframe) returned null");
+
+       ctx = p->ctx_popup;
+       evas_object_data_set(ctx, "priv", p);
+
+       Evas_Object *entry = elm_object_part_content_get(p->searchbar, "elm.swallow.content");
+       c_retm_if(!entry, "entry is NULL.");
+
+       elm_object_focus_set(entry, EINA_FALSE);
+
+       evas_object_smart_callback_add(ctx, "dismissed", __cal_search_list_context_popup_hide_callback, p);
+       elm_ctxpopup_item_append(ctx, S_("IDS_COM_BODY_ALL"), NULL, __cal_search_list_context_popup_selected_callback, (const void *)0);
+       elm_ctxpopup_item_append(ctx, C_("IDS_CLD_BODY_EVENTS"), NULL, __cal_search_list_context_popup_selected_callback, (const void *)1);
+       elm_ctxpopup_item_append(ctx, C_("IDS_CLD_BODY_TASKS"), NULL, __cal_search_list_context_popup_selected_callback, (const void *)2);
+       elm_object_focus_allow_set(ctx, EINA_FALSE);
+
+       evas_object_geometry_get(p->scope_button, &x, &y, &w, &h);
+
+       evas_object_move(ctx, x + w/2 , y+h);
+
+       elm_ctxpopup_direction_priority_set(ctx, ELM_CTXPOPUP_DIRECTION_DOWN,
+                                                                                                               ELM_CTXPOPUP_DIRECTION_LEFT,
+                                                                                                               ELM_CTXPOPUP_DIRECTION_RIGHT,
+                                                                                                               ELM_CTXPOPUP_DIRECTION_UP);
+       evas_object_show(ctx);
+}
+
+static Eina_Bool __cal_search_list_mouse_button_down_callback(void *data, int type, void *event)
+{
+       c_retvm_if(!event, EINA_FALSE, "event is null");
+       c_retvm_if(!data, EINA_FALSE, "data is null");
+
+       Ecore_Event_Mouse_Button *ev = event;
+       cal_search_list_data *p = data;
+
+       p->x = ev->x;
+       p->y = ev->y;
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+Evas_Object* cal_search_list_create_list(struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ad, NULL);
+       c_retv_if(!parent, NULL);
+
+       if (ad->current_view == CV_SEARCH) {
+               return NULL;
+       }
+
+       ad->current_view = CV_SEARCH;
+
+       cal_search_list_data *p = calloc(1, sizeof(cal_search_list_data));
+       c_retv_if(!p, NULL);
+
+       p->ad = ad;
+       p->parent = parent;
+
+       p->tm_start.tm_year = 70;
+       p->tm_end.tm_year = 137;
+
+       Evas_Object *layout = cal_util_add_layout(parent, "search/list/base");
+       if (!layout) {
+               free(p);
+
+               ERR("layout is null.");
+
+               return NULL;
+       }
+
+       evas_object_data_set(layout, "priv", p);
+
+       p->layout = layout;
+
+       Evas_Object *bg = cal_util_add_bg(layout, EINA_FALSE);
+       if (!bg) {
+
+               free(p);
+               free(layout);
+
+               ERR("bg is null.");
+
+               return NULL;
+       }
+
+       elm_object_part_content_set(layout, "base", bg);
+
+       p->navi_item = elm_naviframe_item_push(ad->naviframe, S_("IDS_COM_BODY_SEARCH"), NULL, NULL, layout, NULL);
+       if (!p->navi_item)
+       {
+               ERR("elm_naviframe_item_push is failed");
+               evas_object_del(layout);
+               return NULL;
+       }
+
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, __cal_search_list_delete_layout, p);
+
+       p->event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, __cal_search_list_mouse_button_down_callback, p);
+
+       cal_lang_manager_add_callback(__cal_search_list_text_refresh_callback, p)
+
+       CAL_FN_END;
+
+       return layout;
+}
+
+void cal_search_list_scroll_today(struct appdata* ad)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad, "ad is null.");
+
+       Elm_Object_Item* it = ad->today_item;
+       if (it) {
+               elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+               DBG("scroll to : %p", it);
+       }
+
+       CAL_FN_END;
+}
+
+void cal_search_list_update_list(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ly);
+
+       cal_search_list_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       if (!p->searchbar) {
+               __cal_search_list_create_searchbar(p);
+       }
+
+       __cal_search_list_update_list(p);
+
+       CAL_FN_END;
+}
+
diff --git a/src/search.h b/src/search.h
new file mode 100755 (executable)
index 0000000..3fb60a8
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_SEARCH_H__
+#define __CALENDAR_SEARCH_H__
+
+#include <time.h>
+#include "cld.h"
+
+/* return layout */
+Evas_Object *cal_search_list_create_list(struct appdata *ad, Evas_Object *parent);
+Elm_Object_Item* cal_search_list_create_list_with_day(struct appdata *ad, Evas_Object *parent, int idx);
+Evas_Object* cal_seart_list_create_list_todo(struct appdata *ad, Evas_Object *parent);
+
+
+void cal_search_list_update_list(Evas_Object *ly);
+
+#endif /* __CALENDAR_SEARCH_H__ */
+
diff --git a/src/view-acct.c b/src/view-acct.c
new file mode 100755 (executable)
index 0000000..143b9a8
--- /dev/null
@@ -0,0 +1,1092 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <Elementary.h>
+#include <ui-gadget.h>
+
+#include "view.h"
+#include "acct-svc.h"
+
+#define DEFAULT_LOCAL_CALENDAR_COLOR "95.190.0.255"
+
+#define ACCOUNT_LABLE_STRING_LENGTH 128
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *ly;
+
+       Evas_Object *genlist;
+
+       Eina_Bool is_all_calendars_visible;
+
+       Eina_List *phone_all_list; /*get by local account id */
+
+       Eina_List *phone_calendar_list; /*store type is CALENDAR_BOOK_TYPE_EVENT , default  cid is DEFAULT_EVENT_CALENDAR_BOOK_ID */
+
+       Eina_List *phone_task_list; /*store type is CALENDAR_BOOK_TYPE_TODO, default  cid is DEFAULT_TODO_CALENDAR_BOOK_ID*/
+
+       Eina_List *phone_birthday_list; /*store type is CALENDAR_BOOK_TYPE_EVENT , default cid is DEFAULT_BIRTHDAY_CALENDAR_BOOK_ID*/
+
+       Evas_Object* color;
+       Evas_Object* rect;
+       Evas_Object  *popup;
+
+       Elm_Object_Item *all_calendar_item;
+       Elm_Object_Item *calendar_item;
+       Elm_Object_Item *task_item;
+       Elm_Object_Item *web_account_item;
+} cal_account_data;
+
+typedef enum {
+       CAL_ACCOUNT_ITEM_TYPE_ALL_CALENDAR = 0,
+       CAL_ACCOUNT_ITEM_TYPE_MY_CALENDAR,
+       CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_CALENDAR,
+       CAL_ACCOUNT_ITEM_TYPE_SUB_MY_CALENDAR,
+       CAL_ACCOUNT_ITEM_TYPE_MY_TASK,
+       CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_TASK,
+       CAL_ACCOUNT_ITEM_TYPE_SUB_MY_TASK,
+       CAL_ACCOUNT_ITEM_TYPE_MAX,
+}cal_account_item_type;
+
+typedef enum{
+       _CAL_ACCOUNT_CREATE_CELENDAR = 0,
+       _CAL_ACCOUNT_CREATE_TASK,
+}_CAL_ACCOUNT_CREAT_TYPE;
+
+typedef struct {
+       Elm_Object_Item *item;
+       cal_account_item_type type;
+       Evas_Object *check;
+       _calendar_book_color color;
+       struct _acct *at;
+       calendar_record_h calendar_book;
+}cal_account_item_data;
+
+static char* __cal_account_get_genlist_item_label(void *, Evas_Object *, const char *);
+static Evas_Object* __cal_account_get_genlist_item_icon(void *, Evas_Object *, const char *);
+static void __cal_account_db_changed_callback(const char* view_uri, void* user_data);
+static void __cal_account_popup_response_callback(void *data, Evas_Object *obj, void *event_info);
+static char* __cal_account_popup_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static void __cal_account_delete_genlist_item(void *data, Evas_Object *obj);
+extern void cal_edit_calendar_create_view(struct appdata *ad);
+
+
+static Elm_Genlist_Item_Class itc_1text_1icon = {
+       .item_style = "1text.1icon",
+       .func.del = __cal_account_delete_genlist_item,
+       .func.text_get = __cal_account_get_genlist_item_label,
+       .func.content_get = __cal_account_get_genlist_item_icon,
+};
+
+static Elm_Genlist_Item_Class itc_1text_expandable = {
+       .item_style = "dialogue/1text/expandable",
+       .func.del = __cal_account_delete_genlist_item,
+       .func.text_get = __cal_account_get_genlist_item_label,
+       .func.content_get = __cal_account_get_genlist_item_icon,
+};
+
+static Elm_Genlist_Item_Class itc_dialogue_1text_2icon = {
+       .item_style = "dialogue/1text.2icon",
+       .func.del = __cal_account_delete_genlist_item,
+       .func.text_get = __cal_account_get_genlist_item_label,
+       .func.content_get = __cal_account_get_genlist_item_icon,
+};
+
+static Elm_Genlist_Item_Class itc_seperator = {
+       .item_style = "dialogue/separator/21/with_line",
+};
+
+static Elm_Genlist_Item_Class itc_1text = {
+       .item_style = "1text",
+       .func.content_get = NULL,
+       .func.del = NULL,
+       .func.text_get = __cal_account_popup_genlist_item_label,
+};
+
+static _calendar_book_color calendar_color;
+
+extern void  cal_calendar_create_layout(struct appdata *ad, int type);
+
+static void __cal_account_delete_genlist_item(void *data, Evas_Object *obj)
+{
+       c_retm_if(!data, "data is null.");
+       cal_account_item_data *item_data = data;
+       free(item_data);
+}
+
+
+static char* __cal_account_popup_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data || !obj || !part, NULL);
+
+       if (!CAL_STRCMP(part, "elm.text")) {
+               return strdup(data);
+       }
+
+       return NULL;
+}
+
+static void __cal_account_apply_calendar_changes(cal_account_data *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->phone_all_list);
+
+       Eina_List *list = NULL;
+       calendar_record_h calendar = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       EINA_LIST_FOREACH(p->phone_all_list, list, calendar) {
+               if (!calendar)
+                       continue;
+
+               error = calendar_db_update_record(calendar);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_update_record() is failed(%x)", error);
+       }
+
+}
+
+static void __cal_account_clear_list(cal_account_data *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->phone_all_list);
+
+       Eina_List *list = NULL;
+
+       _calendar_free_record_list(&p->phone_all_list);
+       p->phone_calendar_list = NULL;
+       p->phone_task_list = NULL;
+       p->phone_birthday_list = NULL;
+
+}
+
+static char* __cal_account_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+       c_retv_if(!obj, NULL);
+
+       cal_account_item_data *item_data = data;
+       char *name = NULL;
+       switch (item_data->type) {
+               case CAL_ACCOUNT_ITEM_TYPE_ALL_CALENDAR:
+                       if (!strcmp(part, "elm.text"))
+                               return strdup(C_("IDS_CLD_BODY_ALL_CALENDAR"));
+
+                       break;
+
+               case CAL_ACCOUNT_ITEM_TYPE_MY_CALENDAR:
+                       if (!strcmp(part, "elm.text"))
+                               return strdup(C_("IDS_CLD_BODY_MY_CALENDAR"));
+
+                       break;
+               case CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_CALENDAR:
+                       if (!strcmp(part, "elm.text"))
+                               return strdup(S_("IDS_COM_BODY_DEFAULT"));
+                       break;
+               case CAL_ACCOUNT_ITEM_TYPE_SUB_MY_CALENDAR:
+                       if (!strcmp(part, "elm.text")) {
+                               calendar_error_e error = CALENDAR_ERROR_NONE;
+                               error = calendar_record_get_str(item_data->calendar_book, _calendar_book.name, &name);
+                               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str_p() is failed(%x)", error);
+                               return name;
+                       }
+                       break;
+
+               case CAL_ACCOUNT_ITEM_TYPE_MY_TASK:
+                       if (!strcmp(part, "elm.text"))
+                               return strdup(C_("IDS_TASK_BODY_MY_TASK"));
+
+                       break;
+               case CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_TASK:
+                       if (!strcmp(part, "elm.text"))
+                               return strdup(S_("IDS_COM_BODY_DEFAULT"));
+                       break;
+               case CAL_ACCOUNT_ITEM_TYPE_SUB_MY_TASK:
+                       if (!strcmp(part, "elm.text")) {
+                               calendar_error_e error = CALENDAR_ERROR_NONE;
+                               error = calendar_record_get_str(item_data->calendar_book, _calendar_book.name, &name);
+                               c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_record_get_str() is failed(%x)", error);
+                               return name;
+                       }
+                       break;
+
+               default:
+                       return NULL;
+       }
+
+       return NULL;
+}
+
+static void __cal_account_check_calendar_visible(cal_account_data *p)
+{
+       c_ret_if(!p);
+
+       Eina_List *list = NULL;
+       calendar_record_h calendar = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       Eina_Bool is_visible= EINA_FALSE;
+
+       EINA_LIST_FOREACH(p->phone_all_list, list, calendar) {
+               if (!calendar)
+                       continue;
+
+               error = calendar_record_get_int(calendar, _calendar_book.visibility, (int *)&is_visible);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (!is_visible) {
+                       if (p->is_all_calendars_visible) {
+                               p->is_all_calendars_visible = EINA_FALSE;
+                               elm_genlist_item_update(p->all_calendar_item);
+                       }
+                       return;
+               }
+       }
+
+       if (!p->is_all_calendars_visible) {
+               p->is_all_calendars_visible = EINA_TRUE;
+               elm_genlist_item_update(p->all_calendar_item);
+       }
+}
+
+static void __cal_account_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       Eina_Bool is_visible = elm_check_state_get(obj);
+
+       Evas_Object *parent = elm_object_parent_widget_get(obj);
+       c_ret_if(!parent);
+
+       cal_account_data *p = CAL_UTIL_GET_PRIV_DATA(parent);
+       c_ret_if(!p);
+
+       cal_account_item_data *item_data = data;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_set_int(item_data->calendar_book, _calendar_book.visibility, is_visible);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+       __cal_account_check_calendar_visible(p);
+
+}
+
+static void __cal_account_update_all_calendars_visible(cal_account_data *p, Eina_Bool is_visible)
+{
+       c_ret_if(!p);
+
+       Eina_List *list = NULL;
+       calendar_record_h calendar = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       EINA_LIST_FOREACH(p->phone_all_list, list, calendar) {
+               if (!calendar)
+                       continue;
+
+               error = calendar_record_set_int(calendar, _calendar_book.visibility, (int )is_visible);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+       }
+
+       elm_genlist_realized_items_update(p->genlist);
+
+}
+
+static void __cal_account_all_calendars_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       Evas_Object *parent = elm_object_parent_widget_get(obj);
+       c_ret_if(!parent);
+
+       cal_account_data *p = CAL_UTIL_GET_PRIV_DATA(parent);
+       c_ret_if(!p);
+
+       p->is_all_calendars_visible = !p->is_all_calendars_visible;
+
+       __cal_account_update_all_calendars_visible(p, p->is_all_calendars_visible);
+
+       p->ad->is_update_view = EINA_TRUE;
+}
+
+static void __cal_account_color_selector_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       Evas_Object *rect = data;
+       elm_colorselector_color_get(obj, &calendar_color.red, &calendar_color.green, &calendar_color.blue, &calendar_color.alpha);
+       evas_object_color_set(rect, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+}
+
+static Evas_Object* __cal_account_create_colorselector(Evas_Object* parent, cal_account_data* account_data)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+       c_retvm_if(!account_data, NULL, "account_data is null");
+
+       Evas_Object *selector;
+       Evas_Object *rect;
+       Evas_Object *selector_layout;
+
+       selector_layout = cal_util_add_layout(parent, "color_selector");
+       c_retvm_if(!selector_layout, NULL, "layout is null");
+
+       selector = elm_colorselector_add(parent);
+       if (!selector)
+       {
+               ERR("elm_colorselector_add returned null");
+               evas_object_del(selector_layout);
+               return NULL;
+       }
+
+       elm_colorselector_mode_set(selector, ELM_COLORSELECTOR_COMPONENTS);
+       elm_object_part_content_set(selector_layout, "elm.swallow.selector", selector);
+       account_data->color = selector;
+
+       rect = evas_object_rectangle_add(evas_object_evas_get(parent));
+       if (!selector)
+       {
+               ERR("evas_object_rectangle_add returned null");
+               evas_object_del(selector_layout);
+               return NULL;
+       }
+
+       elm_object_part_content_set(selector_layout, "elm.swallow.color", rect);
+       account_data->rect = rect;
+
+       evas_object_smart_callback_add(selector, "changed", __cal_account_color_selector_changed_callback, rect);
+
+       return selector_layout;
+}
+
+static void __cal_account_popup_response_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_account_data* account_data = evas_object_data_get(popup, "data");
+       c_ret_if(!account_data);
+
+       cal_account_item_data *item_data = evas_object_data_get(popup, "item");
+       c_ret_if(!item_data);
+
+       calendar_record_h calendar = item_data->calendar_book;
+       c_ret_if(!calendar);
+
+       if (!CAL_STRCMP(elm_object_text_get(button), S_("IDS_COM_OPT_SAVE"))) {
+
+               calendar_error_e error = CALENDAR_ERROR_NONE;
+
+               char color[16] ={0};
+
+               item_data->color = calendar_color;
+
+               snprintf(color, sizeof(color), "%d.%d.%d.%d", calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+               error = calendar_record_set_str(item_data->calendar_book, _calendar_book.color, color);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+
+               error = calendar_db_remove_changed_cb(_calendar_book._uri, __cal_account_db_changed_callback, account_data);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_add_changed_cb() is failed(%x)", error);
+
+               cal_main_remove_db_changed_callback(account_data->ad);
+
+               error = calendar_db_update_record(item_data->calendar_book);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_update_record() is failed(%x)", error);
+
+               error = calendar_db_add_changed_cb(_calendar_book._uri, __cal_account_db_changed_callback, account_data);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_add_changed_cb() is failed(%x)", error);
+
+               cal_main_add_db_changed_callback(account_data->ad);
+       }
+
+       elm_genlist_item_update(item_data->item);
+
+       evas_object_del(popup);
+}
+
+static Evas_Object* __cal_account_create_popup(cal_account_data* account_data)
+{
+       c_retv_if(!account_data, NULL);
+
+       Evas_Object *popup = cal_util_add_popup(account_data->ad->win, NULL, NULL, NULL,
+               __cal_account_popup_response_callback, account_data,
+               S_("IDS_COM_OPT_SAVE"), S_("IDS_IDLE_BUTTON_CANCEL"), NULL);
+       c_retv_if(!popup, NULL);
+
+       evas_object_propagate_events_set(popup, EINA_FALSE);
+
+       Evas_Object *color_selector = __cal_account_create_colorselector(popup, account_data);
+
+       if (!color_selector) {
+               ERR("__cal_account_create_colorselector returned null");
+               evas_object_del(popup);
+               return NULL;
+       }
+
+       elm_object_content_set(popup, color_selector);
+
+       return popup;
+}
+
+static void __cal_account_color_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+       cal_account_data* account_data = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!account_data);
+
+       cal_account_item_data *item_data = data;
+
+       Evas_Object *popup = __cal_account_create_popup(account_data);
+       c_ret_if(!popup);
+
+       evas_object_data_set(popup, "item", item_data);
+       evas_object_data_set(popup, "data", account_data);
+
+       _calendar_get_calendar_color(item_data->calendar_book, &calendar_color);
+
+       elm_colorselector_color_set(account_data->color, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+       evas_object_color_set(account_data->rect,calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+}
+
+static Evas_Object* __cal_account_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+       c_retv_if(!obj, NULL);
+
+       cal_account_item_data *item_data = data;
+       switch (item_data->type) {
+               case CAL_ACCOUNT_ITEM_TYPE_ALL_CALENDAR:
+                       if (!strcmp(part, "elm.icon")) {
+                               Evas_Object *check = elm_check_add(obj);
+                               c_retv_if(!check, NULL);
+
+                               evas_object_propagate_events_set(check, EINA_FALSE);
+
+                               elm_object_style_set(check, "on&off");
+
+                               cal_account_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+                               c_retv_if(!p, NULL);
+
+                               elm_check_state_set(check, p->is_all_calendars_visible);
+
+                               evas_object_smart_callback_add(check, "changed", __cal_account_all_calendars_check_changed_callback, item_data);
+
+                               evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+                               item_data->check = check;
+
+                               return check;
+
+                       }
+                       break;
+               case CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_CALENDAR:
+               case CAL_ACCOUNT_ITEM_TYPE_SUB_MY_CALENDAR:
+               case CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_TASK:
+               case CAL_ACCOUNT_ITEM_TYPE_SUB_MY_TASK:
+
+                       if (!strcmp(part, "elm.icon.1")) {
+                               Evas_Object *color = evas_object_rectangle_add(evas_object_evas_get(obj));
+                               c_retv_if(!color, NULL);
+
+                               cal_account_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+                               c_retv_if(!p, NULL);
+
+                               evas_object_data_set(color, "priv", p);
+
+                               evas_object_propagate_events_set(color, EINA_FALSE);
+
+                               evas_object_size_hint_align_set(color, EVAS_HINT_FILL, EVAS_HINT_FILL);
+                               evas_object_color_set(color, item_data->color.red, item_data->color.green, item_data->color.blue, item_data->color.alpha);
+
+                               evas_object_event_callback_add(color, EVAS_CALLBACK_MOUSE_UP, __cal_account_color_clicked_callback, item_data);
+
+                               return color;
+                       }
+
+                       if (!strcmp(part, "elm.icon.2")) {
+                               Evas_Object *check = elm_check_add(obj);
+                               c_retv_if(!check, NULL);
+
+                               evas_object_propagate_events_set(check, EINA_FALSE);
+
+                               elm_object_style_set(check, "on&off");
+
+                               Eina_Bool is_visible = EINA_FALSE;
+
+                               calendar_error_e error = CALENDAR_ERROR_NONE;
+
+                               error = calendar_record_get_int(item_data->calendar_book, _calendar_book.visibility, (int *)&is_visible);
+                               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+                               elm_check_state_set(check, is_visible);
+
+                               evas_object_smart_callback_add(check, "changed", __cal_account_check_changed_callback, item_data);
+
+                               evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+                               item_data->check = check;
+
+                               return check;
+                       }
+
+                       break;
+
+               default:
+                       return NULL;
+       }
+
+       return NULL;
+}
+
+static void __cal_account_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+       c_ret_if(!event_info);
+
+       Elm_Object_Item *item = event_info;
+
+       cal_account_item_data *item_data = elm_object_item_data_get(item);
+       c_ret_if(!item_data);
+
+       cal_account_data *account_data = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!account_data);
+
+       Eina_Bool is_visible = EINA_FALSE;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       switch (item_data->type) {
+
+               case CAL_ACCOUNT_ITEM_TYPE_ALL_CALENDAR:
+                       account_data->is_all_calendars_visible = !account_data->is_all_calendars_visible;
+                       __cal_account_update_all_calendars_visible(account_data, account_data->is_all_calendars_visible);
+
+                       break;
+               case CAL_ACCOUNT_ITEM_TYPE_MY_CALENDAR:
+               case CAL_ACCOUNT_ITEM_TYPE_MY_TASK:
+                       elm_genlist_item_selected_set(item_data->item,0);
+                       if(0 == elm_genlist_item_expanded_get(item_data->item)) {
+                               elm_genlist_item_expanded_set(item_data->item, 1);
+                       } else {
+                               elm_genlist_item_expanded_set(item_data->item, 0);
+                       }
+                       break;
+
+               case CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_CALENDAR:
+               case CAL_ACCOUNT_ITEM_TYPE_SUB_MY_CALENDAR:
+               case CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_TASK:
+               case CAL_ACCOUNT_ITEM_TYPE_SUB_MY_TASK:
+
+                       is_visible = !elm_check_state_get(item_data->check);
+                       elm_check_state_set(item_data->check, is_visible);
+
+                       error = calendar_record_set_int(item_data->calendar_book, _calendar_book.visibility, (int)is_visible);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", is_visible);
+
+                       __cal_account_check_calendar_visible(account_data);
+
+                       break;
+
+               default:
+                       break;
+       }
+
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+}
+
+static void __cal_account_add_local_calendar_to_genlist(cal_account_data *p, Elm_Object_Item *item)
+{
+       c_ret_if(!p);
+       c_ret_if(!item);
+       c_ret_if(!p->phone_calendar_list);
+
+       calendar_record_h calendar_book = NULL;
+       Eina_List *l = NULL;
+       int cid;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       EINA_LIST_FOREACH(p->phone_calendar_list, l, calendar_book) {
+               if (calendar_book) {
+                       cal_account_item_data *item_data = calloc(1, sizeof(cal_account_item_data));
+                       c_ret_if(!item_data);
+
+                       error = calendar_record_get_int(calendar_book, _calendar_book.id, &cid);
+                       if(error != CALENDAR_ERROR_NONE){
+                               ERR("calendar_record_get_int() is failed(%x)", error);
+                               free(item_data);
+                               return;
+                       }
+
+                       if (cid == DEFAULT_EVENT_CALENDAR_BOOK_ID) {
+                               item_data->type = CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_CALENDAR;
+                       } else {
+                               item_data->type = CAL_ACCOUNT_ITEM_TYPE_SUB_MY_CALENDAR;
+                       }
+
+                       item_data->calendar_book = calendar_book;
+                       _calendar_get_calendar_color(calendar_book, &item_data->color);
+
+                       item_data->item = elm_genlist_item_append(p->genlist, &itc_dialogue_1text_2icon, item_data, item, ELM_GENLIST_ITEM_NONE, __cal_account_genlist_item_select_callback, item_data);
+               }
+       }
+}
+
+static void __cal_account_add_local_task_to_genlist(cal_account_data *p, Elm_Object_Item *item)
+{
+       c_ret_if(!p);
+       c_ret_if(!item);
+       c_ret_if(!p->phone_task_list);
+
+       calendar_record_h calendar_book = NULL;
+       Eina_List *l = NULL;
+       int cid;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       EINA_LIST_FOREACH(p->phone_task_list, l, calendar_book) {
+               if (calendar_book) {
+                       cal_account_item_data *item_data = calloc(1, sizeof(cal_account_item_data));
+                       c_ret_if(!item_data);
+
+                       error = calendar_record_get_int(calendar_book, _calendar_book.id, &cid);
+                       if(error != CALENDAR_ERROR_NONE){
+                               free(item_data);
+                               c_retm_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+                       }
+
+                       if (cid == DEFAULT_TODO_CALENDAR_BOOK_ID) {
+                               item_data->type = CAL_ACCOUNT_ITEM_TYPE_DEFAULT_MY_TASK;
+                       } else if (cid == DEFAULT_BIRTHDAY_CALENDAR_BOOK_ID) {
+                               free(item_data);
+                               continue;
+                       } else {
+                               item_data->type = CAL_ACCOUNT_ITEM_TYPE_SUB_MY_TASK;
+                       }
+
+                       item_data->calendar_book = calendar_book;
+                       _calendar_get_calendar_color(calendar_book, &item_data->color);
+
+                       item_data->item = elm_genlist_item_append(p->genlist, &itc_dialogue_1text_2icon, item_data, item, ELM_GENLIST_ITEM_NONE, __cal_account_genlist_item_select_callback, item_data);
+               }
+       }
+}
+
+static void __cal_account_genlist_item_expand_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!event_info);
+
+       cal_account_data *p = data;
+       Elm_Object_Item *it = event_info;
+
+       if (it == p->calendar_item) {
+               __cal_account_add_local_calendar_to_genlist(p, it);
+       } else if (it == p->task_item) {
+               __cal_account_add_local_task_to_genlist(p, it);
+       }
+}
+
+static void __cal_account_genlist_item_contract_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!event_info);
+
+       Elm_Object_Item *item = event_info;
+
+       elm_genlist_item_subitems_clear(item);
+}
+
+static void __cal_account_add_genlist(cal_account_data *account_data)
+{
+       c_ret_if(!account_data);
+
+       Evas_Object *genlist = elm_genlist_add(account_data->ly);
+       c_ret_if(!genlist);
+
+       evas_object_data_set(genlist, "priv", account_data);
+
+       elm_object_part_content_set(account_data->ly, "elm.swallow.content", genlist);
+       account_data->genlist = genlist;
+
+       evas_object_smart_callback_add(genlist, "expanded", __cal_account_genlist_item_expand_callback, account_data);
+       evas_object_smart_callback_add(genlist, "contracted", __cal_account_genlist_item_contract_callback, account_data);
+}
+
+static void __cal_account_get_phone_calendar_and_task_list(cal_account_data *account_data)
+{
+       c_ret_if(!account_data);
+
+       account_data->phone_all_list = _calendar_get_calendar_book_list_with_account_id(_CALENDAR_LOCAL_ACCOUNT_ID);
+
+       calendar_record_h calendar_book = NULL;
+       Eina_List *l = NULL;
+       int cid;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       EINA_LIST_FOREACH(account_data->phone_all_list, l, calendar_book) {
+
+               int store_type = 0;
+               error = calendar_record_get_int(calendar_book, _calendar_book.store_type, &store_type);
+               if (error != CALENDAR_ERROR_NONE) {
+                       ERR("calendar_record_get_int() is failed(%x)", calendar_book);
+                       continue;
+               }
+
+               error = calendar_record_get_int(calendar_book, _calendar_book.id, &cid);
+               c_retm_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (store_type == CALENDAR_BOOK_TYPE_TODO) {
+                       account_data->phone_task_list = eina_list_append(account_data->phone_task_list, calendar_book);
+               } else if (store_type == CALENDAR_BOOK_TYPE_EVENT) {
+                       if (cid == DEFAULT_BIRTHDAY_CALENDAR_BOOK_ID) {
+                               account_data->phone_birthday_list = eina_list_append(account_data->phone_birthday_list, calendar_book);
+                       } else {
+                               account_data->phone_calendar_list = eina_list_append(account_data->phone_calendar_list, calendar_book);
+                       }
+               }
+
+       }
+}
+
+static void __cal_account_add_separator_to_genlist(cal_account_data *p)
+{
+       c_ret_if(!p);
+
+       Elm_Object_Item *item = elm_genlist_item_append(p->genlist, &itc_seperator, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       c_ret_if(!item);
+
+       elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+}
+
+static void __cal_account_add_phone_calendar_to_genlist(cal_account_data* p)
+{
+       c_ret_if(!p);
+
+       __cal_account_add_separator_to_genlist(p);
+
+       cal_account_item_data *item_tree = calloc(1, sizeof(cal_account_item_data));
+       c_ret_if(!item_tree);
+
+       item_tree->type = CAL_ACCOUNT_ITEM_TYPE_MY_CALENDAR;
+       p->calendar_item = item_tree->item = elm_genlist_item_append(p->genlist, &itc_1text_expandable, item_tree, NULL, ELM_GENLIST_ITEM_TREE, __cal_account_genlist_item_select_callback, item_tree);
+
+}
+
+static void __cal_account_add_phone_task_to_genlist(cal_account_data* p)
+{
+       c_ret_if(!p);
+
+       __cal_account_add_separator_to_genlist(p);
+
+       cal_account_item_data *item_tree = calloc(1, sizeof(cal_account_item_data));
+       c_ret_if(!item_tree);
+
+       item_tree->type = CAL_ACCOUNT_ITEM_TYPE_MY_TASK;
+       p->task_item = item_tree->item = elm_genlist_item_append(p->genlist, &itc_1text_expandable, item_tree, NULL, ELM_GENLIST_ITEM_TREE, __cal_account_genlist_item_select_callback, item_tree);
+
+}
+
+static void __cal_account_add_all_calendar_to_genlist(cal_account_data *p)
+{
+       c_ret_if(!p);
+
+       cal_account_item_data *item_data = calloc(1, sizeof(cal_account_item_data));
+       c_ret_if(!item_data);
+
+       item_data->type = CAL_ACCOUNT_ITEM_TYPE_ALL_CALENDAR;
+
+       p->all_calendar_item = item_data->item = elm_genlist_item_append(p->genlist, &itc_1text_1icon, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_account_genlist_item_select_callback, item_data);
+       c_ret_if(!item_data->item);
+}
+
+static void __cal_account_update_genlist(void* data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       cal_account_data* account_data = data;
+
+       __cal_account_clear_list(account_data);
+
+       elm_genlist_clear(account_data->genlist);
+
+       __cal_account_get_phone_calendar_and_task_list(account_data);
+
+       __cal_account_add_all_calendar_to_genlist(account_data);
+
+       __cal_account_add_phone_calendar_to_genlist(account_data);
+
+       __cal_account_add_phone_task_to_genlist(account_data);
+
+       __cal_account_check_calendar_visible(account_data);
+
+}
+
+static void __cal_account_db_changed_callback(const char* view_uri, void* user_data)
+{
+       __cal_account_update_genlist(user_data);
+}
+
+static void __cal_account_text_refresh_callback(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_account_data *p = data;
+
+       Elm_Object_Item *navi_item = elm_naviframe_top_item_get(p->ad->naviframe);
+       c_retv_if(!navi_item, NULL);
+
+       elm_object_item_part_text_set(navi_item, "default", C_("IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"));
+
+       elm_object_text_set(elm_object_item_part_content_get(navi_item, "toolbar_button1"), S_("IDS_COM_BODY_ACCOUNTS"));
+
+       elm_genlist_realized_items_update(p->genlist);
+}
+
+static void __cal_account_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       cal_account_data *account_data = data;
+
+       account_data->ad->current_view = CV_UNKNOWN;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_remove_changed_cb(_calendar_book._uri, __cal_account_db_changed_callback, account_data);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_remove_db_changed_cb() is failed(%x)", error);
+
+       __cal_account_apply_calendar_changes(account_data);
+
+       __cal_account_clear_list(account_data);
+
+       cal_lang_manager_remove_callback(__cal_account_text_refresh_callback, account_data);
+
+       free(account_data);
+}
+
+static Evas_Object* __cal_account_create_layout(struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ad, NULL);
+       c_retv_if(!parent, NULL);
+
+       cal_account_data *account_data = calloc(1, sizeof(cal_account_data));
+       c_retv_if(!account_data, NULL);
+
+       account_data->ad = ad;
+       account_data->is_all_calendars_visible = EINA_TRUE;
+
+       Evas_Object *ly = cal_util_add_layout(parent, NULL);
+       if (!ly) {
+               ERR("ly is NULL");
+               free(account_data);
+               return NULL;
+       }
+
+       account_data->ly = ly;
+       evas_object_data_set(ly, "priv", account_data);
+
+       Evas_Object *bg = cal_util_add_bg(ly, EINA_TRUE);
+       if (!bg) {
+               ERR("bg is NULL");
+               free(account_data);
+               return NULL;
+       }
+
+       elm_object_part_content_set(ly, "elm.swallow.bg", bg);
+
+       __cal_account_add_genlist(account_data);
+
+       __cal_account_update_genlist(account_data);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_account_delete_layout, account_data);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_add_changed_cb(_calendar_book._uri, __cal_account_db_changed_callback, account_data);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_add_changed_cb() is failed(%x)", error);
+
+       return ly;
+}
+
+static void __cal_account_calendar_popup_response_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *popup = data;
+
+       cal_account_data *account_data = evas_object_data_get(popup, "data");
+
+       evas_object_del(popup);
+       account_data->popup = NULL;
+}
+
+static void __cal_account_popup_genlist_calendar_selected(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_account_data *account_data = data;
+
+       cal_calendar_create_layout(account_data->ad, _CAL_ACCOUNT_CREATE_CELENDAR);
+
+       if (account_data->popup) {
+               evas_object_del(account_data->popup);
+               account_data->popup = NULL;
+       }
+}
+
+static void __cal_account_popup_genlist_task_selected(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_account_data *account_data = data;
+
+       cal_calendar_create_layout(account_data->ad, _CAL_ACCOUNT_CREATE_TASK);
+
+       if (account_data->popup) {
+               evas_object_del(account_data->popup);
+               account_data->popup = NULL;
+       }
+}
+
+static void __cal_account_create_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       evas_object_del(obj);
+
+       cal_account_data *account_data = data;
+
+       account_data->popup = cal_util_add_popup(account_data->ad->win, "menustyle", S_("IDS_COM_BODY_CREATE"), NULL,
+                               __cal_account_calendar_popup_response_callback, account_data,
+                               S_("IDS_COM_SK_CANCEL"),  NULL);
+
+       c_retm_if(!account_data->popup, "cal_util_add_popup returned null");
+       evas_object_data_set(account_data->popup, "data", account_data);
+
+       Evas_Object *genlist = elm_genlist_add(account_data->popup);
+       c_retm_if(!genlist, "elm_genlist_add returned null");
+
+       elm_genlist_item_append(genlist, &itc_1text, S_("IDS_COM_BODY_CALENDAR"), NULL, ELM_GENLIST_ITEM_NONE, __cal_account_popup_genlist_calendar_selected, account_data);
+       elm_genlist_item_append(genlist, &itc_1text, C_("IDS_CLD_BODY_TASK"), NULL, ELM_GENLIST_ITEM_NONE, __cal_account_popup_genlist_task_selected, account_data);
+
+
+       elm_object_content_set(account_data->popup, genlist);
+       evas_object_show(account_data->popup);
+
+}
+
+
+static void __cal_account_edit_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       evas_object_del(obj);
+
+       cal_account_data *account_data = data;
+
+       cal_edit_calendar_create_view(account_data->ad);
+}
+
+static void __cal_account_more_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_account_data *account_data = evas_object_data_get(data, "priv");
+       c_retm_if(!account_data, "account_data is null");
+
+       struct appdata *ad = account_data->ad;
+       c_ret_if(!ad);
+
+       Evas_Object *ctx_popup = elm_ctxpopup_add(ad->naviframe);
+       c_ret_if(!ctx_popup);
+
+       elm_ctxpopup_direction_priority_set(ctx_popup, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP);
+
+       elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_CREATE"), NULL, __cal_account_create_button_callback, account_data);
+
+       elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_EDIT"), NULL, __cal_account_edit_button_callback, account_data);
+
+       Evas_Coord_Rectangle r = {0};
+
+       cal_util_get_geometry(&r, obj);
+
+       evas_object_move(ctx_popup, r.x + r.w/2, r.y + r.h/2);
+
+       evas_object_show(ctx_popup);
+}
+
+
+void cal_account_create_view(struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ad);
+       c_ret_if(!parent);
+
+       if (ad->current_view == CV_ACCT)
+               return;
+
+       ad->current_view = CV_ACCT;
+
+       Evas_Object *ly = __cal_account_create_layout(ad, parent);
+       c_ret_if(!ly);
+
+       Evas_Object *add = elm_button_add(ad->naviframe);
+       if (!add) {
+               ERR("elm_button_add returned null");
+               evas_object_del(ly);
+               return;
+       }
+
+       Elm_Object_Item* navi_item = elm_naviframe_item_push(ad->naviframe, C_("IDS_CLD_HEADER_CALENDARS_TO_DISPLAY"), NULL, NULL, ly, NULL);
+       if (!navi_item) {
+               ERR("elm_naviframe_item_push returned null");
+               evas_object_del(add);
+               evas_object_del(ly);
+               return;
+       }
+
+       cal_account_data *account_data = evas_object_data_get(ly, "priv");
+       if (!account_data) {
+               ERR("elm_naviframe_item_push returned null");
+               evas_object_del(add);
+               evas_object_del(ly);
+       }
+
+       cal_lang_manager_add_callback(__cal_account_text_refresh_callback, account_data);
+
+}
diff --git a/src/view-day-list.c b/src/view-day-list.c
new file mode 100755 (executable)
index 0000000..cf9e81c
--- /dev/null
@@ -0,0 +1,165 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <time.h>
+#include "view-day-list.h"
+#include "detail-view.h"
+#include "noti-handler.h"
+#include "view.h"
+#include "list-base.h"
+#include "query.h"
+
+typedef struct {
+       cal_list_base_h list;
+
+       Evas_Object* layout;
+
+       struct appdata *ad;
+
+       struct tm tm_start;
+       struct tm tm_end;
+
+} cal_day_list_data;
+
+static void __cal_day_list_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       cal_day_list_data *p = data;
+       c_retm_if(!p, "priv is null.");
+       cal_list_base_delete(p->list);
+       free(p);
+
+       CAL_FN_END;
+}
+
+Evas_Object* cal_day_list_create(struct appdata *ad, Evas_Object *parent)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ad, NULL);
+       c_retv_if(!parent, NULL);
+
+       cal_day_list_data *p = calloc(1, sizeof(cal_day_list_data));
+       c_retv_if(!p, NULL);
+
+       p->ad = ad;
+
+       Evas_Object *layout = cal_util_add_layout(parent, "list/base/without_searchbar");
+       ad->tapbar_focus_view = CV_LIST;
+
+       if (!layout) {
+               free(p);
+
+               ERR("layout is null.");
+
+               return NULL;
+       }
+
+       evas_object_data_set(layout, "priv", p);
+
+       p->layout = layout;
+
+       elm_object_disabled_set(p->ad->new_event_button, EINA_FALSE);
+
+       Evas_Object *bg = cal_util_add_bg(layout, EINA_FALSE);
+       if (!bg) {
+
+               free(p);
+               free(layout);
+
+               ERR("bg is null.");
+
+               return NULL;
+       }
+
+       elm_object_part_content_set(layout, "base", bg);
+
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, __cal_day_list_delete_layout, p);
+
+       char buffer[128] = {0};
+       cal_util_get_time_text(buffer, sizeof(buffer), CAL_UTIL_DATE_FORMAT_1, NULL, &ad->base_tm);
+
+       elm_naviframe_item_push(ad->naviframe, strdup(buffer), NULL, NULL, layout, NULL);
+
+       CAL_FN_END;
+
+       return layout;
+}
+
+static void __cal_day_list_add_each_event_to_genlist(calendar_record_h record, void* data)
+{
+       cal_day_list_data* p = (cal_day_list_data*)data;
+       cal_list_base_add_item(p->list, record, false);
+}
+
+void cal_day_list_update_list(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ly);
+
+       cal_day_list_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       p->tm_start = ad->base_tm;
+       p->tm_start.tm_hour = 0;
+       p->tm_start.tm_min = 0;
+       p->tm_start.tm_sec = 0;
+
+       p->tm_end = p->tm_start;
+       p->tm_end.tm_hour = 23;
+       p->tm_end.tm_min = 59;
+       p->tm_end.tm_sec = 59;
+
+       cal_util_update_tm_month(&p->tm_start, -3);
+       cal_util_update_tm_month(&p->tm_end, 3);
+
+       cal_list_base_clear(p->list);
+
+       ad->today_item = NULL;
+
+       calendar_query_h query = cal_query_create_list_range_query(
+                       _calendar_instance_normal_calendar_book._uri,
+                       _calendar_instance_normal_calendar_book.start_time,
+                       _calendar_instance_normal_calendar_book.end_time,
+                       &p->tm_start, &p->tm_end, false);
+
+       calendar_list_h list = NULL;
+       calendar_error_e error =
+                       calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() has failed(%x)", error);
+
+       error = calendar_list_first(list);
+       if (error != CALENDAR_ERROR_NONE) {
+               ERR("calendar_list_first() is failed(%x)", error);
+               calendar_query_destroy(query);
+               return;
+       }
+
+       p->list = cal_list_base_create(ad, p->layout, "sw", true, NULL, NULL);
+
+       cal_do_for_each_record_in_list(list, __cal_day_list_add_each_event_to_genlist, p);
+
+       calendar_list_destroy(list, false);
+       calendar_query_destroy(query);
+
+       CAL_FN_END;
+}
diff --git a/src/view-day-list.h b/src/view-day-list.h
new file mode 100644 (file)
index 0000000..e7bc15a
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef VIEW_DAY_LIST_H_
+#define VIEW_DAY_LIST_H_
+
+#include "cld.h"
+
+Evas_Object* cal_day_list_create(struct appdata *ad, Evas_Object *parent);
+
+void cal_day_list_update_list(Evas_Object *ly);
+
+#endif
diff --git a/src/view-main-day.c b/src/view-main-day.c
new file mode 100755 (executable)
index 0000000..3e4cd73
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include "view.h"
+#include "detail-view.h"
+#include "day-expandable-list.h"
+#include "day-time.h"
+
+#define CAL_HEIGHT_OF_EXPAND_IMG 50
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+
+       cal_day_time_h day_time; // layout
+       Evas_Object *time_block; // layout
+
+       Evas_Object *genlist;
+       Eina_Bool is_expanded;
+} cal_day_data;
+
+static const char *_name = "main/day";
+
+static void __cal_day_text_refresh_callback(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_day_data *p = data;
+
+       cal_main_update_title_text(p->ad);
+
+       elm_object_text_set(p->ad->new_event_button, S_("IDS_COM_BODY_CREATE"));
+
+       char title[32] = {0};
+       snprintf(title, sizeof(title), "%s %s & %s", C_("IDS_COM_BODY_ALL_DAY"), "event", C_("IDS_CLD_BODY_TASKS"));
+       elm_object_part_text_set(p->ly, "list/title/text", title);
+
+       elm_genlist_realized_items_update(p->genlist);
+
+}
+
+static void __cal_day_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       CAL_ASSERT(data);
+
+       cal_day_data *p = data;
+
+       cal_lang_manager_remove_callback(__cal_day_text_refresh_callback, p);
+
+       CAL_FREE(p);
+}
+
+void cal_day_update_genlist(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ly);
+
+       cal_day_data *p = CAL_UTIL_GET_PRIV_DATA (ly);
+       c_ret_if(!p);
+       c_ret_if(!p->genlist);
+
+       cal_day_exp_list_update(p->genlist);
+}
+
+Evas_Object* cal_day_create_view(struct appdata *ad, Evas_Object *main)
+{
+       CAL_FN_START;
+
+       cal_day_data *p;
+       Evas_Object *ly;
+
+       CAL_ASSERT(ad);
+
+       CAL_CALLOC(p, 1, cal_day_data);
+
+       p->name = _name;
+       p->ad = ad;
+       ad->tapbar_focus_view = CV_DAY;
+       p->parent = main;
+
+       p->ly = ly = cal_util_add_layout(ad->naviframe, p->name);
+       if (NULL == ly) {
+               free(p);
+               p =NULL;
+               return NULL;
+       }
+
+       evas_object_data_set(ly, "priv", p);
+
+       p->genlist = cal_day_exp_list_create(ly, "list/sw", ad);
+
+       int control_flag = ENABLE_MOUSE_DOWN_FLAG|ENABLE_MOUSE_UP_FLAG|ENABLE_MOUSE_MOVE_FLAG|ENABLE_MOUSE_OUT_FLAG|ENABLE_MULTI_DOWN_FLAG|ENABLE_MULTI_UP_FLAG|ENABLE_MULTI_MOVE_FLAG|ENABLE_GRAG_START_FLAG;
+
+       p->day_time = cal_base_time_new(_CAL_BASE_TYPE_EVENT, ly, ad->base_tm.tm_hour, &p->time_block, ad, control_flag);
+
+       CAL_ASSERT (p->day_time);
+       CAL_ASSERT (p->time_block);
+
+       elm_object_part_content_set(ly, "cont/sw", p->time_block);
+
+       Evas_Object *scroller = evas_object_data_get(p->time_block, "scroller");
+       c_retvm_if(!scroller, NULL, "scroller is null");
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_day_delete_layout, p);
+
+       cal_lang_manager_add_callback(__cal_day_text_refresh_callback, p);
+
+       return ly;
+}
+
+void cal_day_change_content_display_status(Evas_Object *ly)
+{
+       c_ret_if(!ly);
+
+       cal_day_data *p = evas_object_data_get(ly, "priv");
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       Elm_Object_Item *top = elm_naviframe_top_item_get(ad->naviframe);
+       Evas_Object *obj = elm_object_item_part_content_get(top, "default");
+
+       if (ad->main != obj || ad->ug) {
+               cal_base_time_hide(p->day_time);
+       } else {
+               cal_base_time_show(p->day_time);
+       }
+}
+
+void cal_day_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       cal_day_data *p;
+
+       CAL_ASSERT(ly);
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name)) {
+               ERR("Invalid object");
+               return;
+       }
+
+       cal_day_update_genlist(ly);
+
+       cal_base_time_update(p->day_time);
+
+       cal_day_change_content_display_status(p->ly);
+}
diff --git a/src/view-main-list.c b/src/view-main-list.c
new file mode 100755 (executable)
index 0000000..9fa6182
--- /dev/null
@@ -0,0 +1,541 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <vconf.h>
+#include <Elementary.h>
+#include <time.h>
+
+#include "detail-view.h"
+#include "noti-handler.h"
+#include <calendar2.h>
+#include <calendar_view.h>
+#include "view.h"
+#include "list-base.h"
+#include "list-broker.h"
+
+extern Elm_Genlist_Item_Class cal_list_itc_h;
+extern Elm_Genlist_Item_Class cal_list_today_group_itc_h;
+extern Elm_Genlist_Item_Class itc_1icon;
+
+typedef struct {
+       cal_list_base_h list;
+
+       Evas_Object* layout;
+       Evas_Object* no_contents;
+
+       struct appdata *ad;
+
+       Ecore_Idler* fetch_more_top_idler;
+       Ecore_Idler* fetch_more_bottom_idler;
+
+       Ecore_Event_Handler *event_handler;
+       Evas_Coord x;
+       Evas_Coord y;
+
+       Elm_Object_Item* navi_item;
+       Elm_Object_Item *bt_new;
+       Elm_Object_Item *bt_delete;
+
+       struct tm fetch_more_top_current_day;
+       Elm_Object_Item *fetching_more_top;
+       Elm_Object_Item *fetching_more_bottom;
+
+       cal_list_broker_h append_cursor;
+       cal_list_broker_h prepend_cursor;
+
+       Eina_Bool is_append_end;
+       int prepend_count;
+} cal_list_data;
+
+static void __cal_list_add_date_group_title(cal_list_data *p, const struct tm* date, bool prepend)
+{
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       if (date->tm_year == ad->today_tm.tm_year &&
+               date->tm_mon == ad->today_tm.tm_mon &&
+               date->tm_mday == ad->today_tm.tm_mday) {
+               if (prepend)
+                       ad->today_item = cal_list_base_prepend_genlist_group_item(cal_list_base_get_genlist_p(p->list), &cal_list_today_group_itc_h, date);
+               else
+                       ad->today_item = cal_list_base_append_genlist_group_item(cal_list_base_get_genlist_p(p->list), &cal_list_today_group_itc_h, date, CAL_TASK_NONE);
+       } else {
+               if (prepend)
+                       cal_list_base_prepend_genlist_group_item(cal_list_base_get_genlist_p(p->list), &cal_list_itc_h, date);
+               else
+                       cal_list_base_append_genlist_group_item(cal_list_base_get_genlist_p(p->list), &cal_list_itc_h, date, CAL_TASK_NONE);
+       }
+}
+
+static void __cal_list_prepend_more(void* data)
+{
+       cal_list_data *p = data;
+
+       c_ret_if(p->fetch_more_top_idler);
+
+       cal_list_broker_h cursor = p->prepend_cursor;
+
+       bool day_has_changed;
+       calendar_record_h record = cal_list_broker_get_next(cursor, &day_has_changed);
+
+       int n = 0;
+       while (record) {
+               if (p->prepend_count != 0 && n++ == p->prepend_count)
+                       break;
+
+               if (day_has_changed) {
+                       if (p->fetch_more_top_current_day.tm_mday != 0)
+                               __cal_list_add_date_group_title(p, &p->fetch_more_top_current_day, true);
+                       p->fetch_more_top_current_day = *cal_list_broker_get_current_day_p(cursor);
+               }
+
+               cal_list_base_add_item(p->list, record, true);
+
+               record = cal_list_broker_get_next(cursor, &day_has_changed);
+       }
+
+       if (cal_list_broker_no_more(p->prepend_cursor)) {
+               __cal_list_add_date_group_title(p, &p->fetch_more_top_current_day, true);
+       }
+}
+
+static void __cal_list_append_more(void* data)
+{
+       cal_list_data *p = data;
+
+       c_ret_if(p->fetch_more_bottom_idler);
+
+       if(p->is_append_end)
+               return;
+
+       cal_list_broker_h cursor = p->append_cursor;
+
+       bool day_has_changed;
+       calendar_record_h record = cal_list_broker_get_next(cursor, &day_has_changed);
+
+       while (record) {
+               if (day_has_changed) {
+                       const struct tm* tm_current_day = cal_list_broker_get_current_day_p(cursor);
+                       if(tm_current_day->tm_year == 137)      {
+                               p->is_append_end = EINA_TRUE;
+                               return;
+                       }
+                       __cal_list_add_date_group_title(p, tm_current_day, false);
+               }
+
+               cal_list_base_add_item(p->list, record, false);
+
+               record = cal_list_broker_get_next(cursor, &day_has_changed);
+       }
+}
+
+static Eina_Bool __cal_list_fetch_more_top(void* data)
+{
+       cal_list_data *p = data;
+
+       cal_list_broker_fetch(p->prepend_cursor);
+
+       ecore_idler_del(p->fetch_more_top_idler);
+       p->fetch_more_top_idler = NULL;
+
+       if (p->fetching_more_top) {     // UI is waiting for fetch to finish so that items can be prepended.
+               elm_object_item_del(p->fetching_more_top);
+               p->fetching_more_top = NULL;
+               __cal_list_prepend_more(p);
+               cal_list_broker_fetch(p->prepend_cursor);       // Do next prefetch right away.
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Eina_Bool __cal_list_fetch_more_bottom(void* data)
+{
+       cal_list_data *p = data;
+
+       cal_list_broker_fetch(p->append_cursor);
+
+       ecore_idler_del(p->fetch_more_bottom_idler);
+       p->fetch_more_bottom_idler = NULL;
+
+       if (p->fetching_more_bottom) {  // UI is waiting for fetch to finish so that items can be appended.
+               elm_object_item_del(p->fetching_more_bottom);
+               p->fetching_more_bottom = NULL;
+               __cal_list_append_more(p);
+               cal_list_broker_fetch(p->append_cursor);        // Do next prefetch right away.
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void __cal_list_show_fetching_more_top(cal_list_data* p)
+{
+       if (p->fetching_more_top)
+               return;
+       Elm_Object_Item* it = elm_genlist_first_item_get(cal_list_base_get_genlist_p(p->list));
+       p->fetching_more_top = elm_genlist_item_prepend(cal_list_base_get_genlist_p(p->list), &itc_1icon, p, it, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+}
+
+void __cal_list_show_fetching_more_bottom(cal_list_data* p)
+{
+       if (p->fetching_more_bottom)
+               return;
+       p->fetching_more_bottom = elm_genlist_item_prepend(cal_list_base_get_genlist_p(p->list), &itc_1icon, p, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+}
+
+static void __cal_list_gl_mode_scroll_to_top(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!obj || !data);
+       cal_list_data *p = data;
+
+       if(cal_list_broker_no_more(p->prepend_cursor))
+               return;
+
+       if (p->fetch_more_top_idler) {  // fetching in progress
+               __cal_list_show_fetching_more_top(p);
+               return;
+       }
+
+       __cal_list_prepend_more(p);
+       p->fetch_more_top_idler = ecore_idler_add(__cal_list_fetch_more_top, p);        // Schedule next prefetch right away.
+}
+
+static void __cal_list_gl_mode_scroll_to_bottom(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!obj || !data);
+       cal_list_data *p = data;
+
+       if(cal_list_broker_no_more(p->append_cursor))
+               return;
+
+       if (p->fetch_more_bottom_idler) {       // fetching in progress
+               __cal_list_show_fetching_more_bottom(p);
+               return;
+       }
+
+       __cal_list_append_more(p);
+       p->fetch_more_bottom_idler = ecore_idler_add(__cal_list_fetch_more_bottom, p);  // Schedule next prefetch right away.
+}
+
+static void __cal_list_create_no_contents(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!p->layout);
+
+       if (p->no_contents)
+               return;
+
+       char* title = NULL;
+
+       title = C_("IDS_CLD_BODY_NO_EVENTS");
+
+       Evas_Object *no_contents = cal_util_add_search_nocontents(p->layout, title);
+       c_ret_if(!no_contents);
+
+       elm_object_part_content_set(p->layout, "sw", no_contents);
+
+       p->no_contents = no_contents;
+}
+
+static void __cal_list_delete_no_contents(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       if (!p->no_contents)
+               return;
+
+       elm_object_part_content_unset(p->layout, "sw");
+
+       evas_object_del(p->no_contents);
+
+       p->no_contents = NULL;
+}
+
+#define MIN_ITEM_COUNT_TO_FILL_PAGE 8
+
+static void __cal_list_update_list(cal_list_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+       ad->today_item = NULL;
+
+       p->fetch_more_top_current_day.tm_mday = 0;
+
+       if (p->list != NULL) {
+               cal_list_base_delete(p->list);
+               p->list = NULL;
+       }
+
+       if (p->prepend_cursor != NULL)
+               cal_list_broker_destroy(p->prepend_cursor);
+       if (p->append_cursor != NULL)
+               cal_list_broker_destroy(p->append_cursor);
+
+       p->prepend_cursor = cal_list_broker_create(&ad->base_tm, -1, ad->is_display_complete_todo);
+       p->append_cursor = cal_list_broker_create(&ad->base_tm, 1, ad->is_display_complete_todo);
+
+       cal_list_broker_h cursor = p->append_cursor;
+
+       cal_list_broker_fetch(cursor);
+
+       bool day_has_changed;
+       calendar_record_h record = cal_list_broker_get_next(cursor, &day_has_changed);
+
+       if (record) {
+
+               if (p->list == NULL) {
+                       __cal_list_delete_no_contents(p);
+                       p->list = cal_list_base_create(ad, p->layout, "sw", true, NULL, NULL);
+               }
+
+//             Eina_Bool today_has_instance = EINA_FALSE;
+
+               while (record) {
+                       if (day_has_changed) {
+                               const struct tm* tm_current_day = cal_list_broker_get_current_day_p(cursor);
+                               __cal_list_add_date_group_title(p, tm_current_day, false);
+                       }
+
+                       cal_list_base_add_item(p->list, record, false);
+
+                       record = cal_list_broker_get_next(cursor, &day_has_changed);
+               }
+       }
+
+       if (p->list == NULL || cal_list_base_get_item_count(p->list) < MIN_ITEM_COUNT_TO_FILL_PAGE) {
+
+               cal_list_broker_fetch(p->prepend_cursor);
+
+               if (!cal_list_broker_no_more(p->prepend_cursor)) {
+
+                       if (p->list == NULL) {
+                               __cal_list_delete_no_contents(p);
+                               p->list = cal_list_base_create(ad, p->layout, "sw", true, NULL, NULL);
+                       }
+
+                       p->prepend_count = MIN_ITEM_COUNT_TO_FILL_PAGE - cal_list_base_get_item_count(p->list);
+                       __cal_list_prepend_more(p);
+
+                       elm_genlist_item_bring_in(
+                                       elm_genlist_last_item_get(cal_list_base_get_genlist_p(p->list)),
+                                       ELM_GENLIST_ITEM_SCROLLTO_IN);
+               }
+       }
+
+       p->prepend_count = 10;
+
+       if (p->list == NULL) {
+               cal_list_base_delete(p->list);
+               __cal_list_create_no_contents(p);
+       } else {
+               evas_object_smart_callback_add(cal_list_base_get_genlist_p(p->list), "edge,bottom", __cal_list_gl_mode_scroll_to_bottom, p);
+               evas_object_smart_callback_add(cal_list_base_get_genlist_p(p->list), "edge,top", __cal_list_gl_mode_scroll_to_top, p);
+       }
+
+//     if (!today_has_instance) {
+//             cal_list_genlist_item_data *item_data = calloc(1, sizeof(cal_list_genlist_item_data));
+//             c_retm_if(!item_data, "calloc is failed");
+//
+//             item_data->tm = calloc(1, sizeof(struct tm));
+//             c_retm_if(!item_data->tm, "malloc is failed");
+//
+//             *(item_data->tm) = ad->today_tm;
+//             item_data->todo_group_type = CAL_TASK_NONE;
+//
+//             Elm_Object_Item *first_item = elm_genlist_first_item_get(cal_list_base_get_genlist_p(p->list));
+//             item_data->it = elm_genlist_item_insert_before(cal_list_base_get_genlist_p(p->list), &cal_list_today_group_itc_h, item_data, NULL, first_item, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+//             if (item_data->it == NULL) {
+//                     ERR("insert failed");
+//                     free(item_data->tm);
+//                     return;
+//             }
+//
+//             elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+//     }
+
+       p->fetch_more_top_idler = ecore_idler_add(__cal_list_fetch_more_top, p);
+       p->fetch_more_bottom_idler = ecore_idler_add(__cal_list_fetch_more_bottom, p);
+
+       CAL_FN_END;
+}
+
+static void __cal_list_day_event_changed_callback(const char* view_uri, void *user_data)
+{
+       c_retm_if(!user_data, "user_data is null");
+
+       cal_list_data *p = user_data;
+
+       cal_list_base_delete_popup(p->list);
+
+       cal_list_update_view(p->layout);
+}
+
+static void __cal_list_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       cal_list_data *p = data;
+       c_retm_if(!p, "priv is null.");
+
+       if (p->fetch_more_bottom_idler) {
+               ecore_idler_del(p->fetch_more_bottom_idler);
+               p->fetch_more_bottom_idler = NULL;
+       }
+
+       if (p->fetch_more_top_idler) {
+               ecore_idler_del(p->fetch_more_top_idler);
+               p->fetch_more_top_idler = NULL;
+       }
+
+       cal_list_base_delete_popup_idler(p->list);
+
+       calendar_db_remove_changed_cb(_calendar_event._uri, __cal_list_day_event_changed_callback, p);
+
+       if (p->event_handler)
+               ecore_event_handler_del(p->event_handler);
+
+       cal_list_base_delete_popup(p->list);
+
+       free(p);
+
+       CAL_FN_END;
+}
+
+static Eina_Bool __cal_list_mouse_button_down_callback(void *data, int type, void *event)
+{
+       c_retvm_if(!event, EINA_FALSE, "event is null");
+       c_retvm_if(!data, EINA_FALSE, "data is null");
+
+       Ecore_Event_Mouse_Button *ev = event;
+       cal_list_data *p = data;
+
+       p->x = ev->x;
+       p->y = ev->y;
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+void cal_list_scroll_today(struct appdata* ad)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad, "ad is null.");
+
+       Elm_Object_Item* it = ad->today_item;
+       if (it) {
+               elm_genlist_item_bring_in(it, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+               DBG("scroll to : %p", it);
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_list_update_delete_button(cal_list_data *p)
+{
+       c_ret_if(!p);
+
+       Elm_Object_Item *delete_button = NULL;
+
+       delete_button = p->ad->bt_delete;
+
+       if (cal_list_base_get_genlist_p(p->list) && elm_genlist_first_item_get(cal_list_base_get_genlist_p(p->list)))
+               elm_object_item_disabled_set(delete_button, EINA_FALSE);
+       else
+               elm_object_item_disabled_set(delete_button, EINA_TRUE);
+}
+
+Evas_Object* cal_list_create_view(struct appdata *ad, Evas_Object *main)
+{
+       CAL_FN_START;
+
+       CAL_ASSERT(ad);
+       c_retv_if(!ad, NULL);
+       c_retv_if(!main, NULL);
+
+       cal_list_data *p = calloc(1, sizeof(cal_list_data));
+       c_retv_if(!p, NULL);
+
+       p->ad = ad;
+
+       Evas_Object *layout = cal_util_add_layout(main, "list/base/without_searchbar");
+       ad->tapbar_focus_view = CV_LIST;
+
+       if (!layout) {
+               free(p);
+
+               ERR("layout is null.");
+
+               return NULL;
+       }
+
+       evas_object_data_set(layout, "priv", p);
+
+       p->layout = layout;
+
+       elm_object_disabled_set(p->ad->new_event_button, EINA_FALSE);
+
+       Evas_Object *bg = cal_util_add_bg(layout, EINA_FALSE);
+       if (!bg) {
+
+               free(p);
+               free(layout);
+
+               ERR("bg is null.");
+
+               return NULL;
+       }
+
+       elm_object_part_content_set(layout, "base", bg);
+
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, __cal_list_delete_layout, p);
+
+       p->event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, __cal_list_mouse_button_down_callback, p);
+
+       CAL_FN_END;
+
+       return layout;
+}
+
+void cal_list_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       CAL_ASSERT(ly);
+
+       c_ret_if(!ly);
+
+       cal_list_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       __cal_list_update_list(p);
+
+       __cal_list_update_delete_button(p);
+
+
+       CAL_FN_END;
+}
diff --git a/src/view-main-month.c b/src/view-main-month.c
new file mode 100755 (executable)
index 0000000..809770c
--- /dev/null
@@ -0,0 +1,892 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <vconf.h>
+
+#include "view.h"
+#include "detail-view.h"
+#include "external-ug.h"
+#include "list-base.h"
+
+static const char *_name = NULL;
+
+#define MONTH_CAL_CBAR_H 41
+#define MONTH_CAL_X 0
+#define MONTH_CAL_Y 200
+
+#define ANIMATION_TIME 0.2
+
+#define INITIAL_FETCH_SIZE 4
+#define IDLER_FETCH_SIZE 4
+
+typedef enum{
+       FOCUS_IN_DAILY = 0,
+       FOCUS_IN_WEEKLY
+}focus_in_month_view_type;
+
+typedef struct {
+       Evas_Object* container;
+       Evas_Object* month;
+       Evas_Object* month_prev;
+       Evas_Object* month_next;
+} cal_month_view;
+
+static void __cal_month_view_del(cal_month_view* view)
+{
+       evas_object_del(view->container);
+       evas_object_del(view->month);
+       evas_object_del(view->month_prev);
+       evas_object_del(view->month_next);
+       free(view);
+}
+
+typedef struct {
+       cal_list_base_h list;
+       cal_month_view* vcur;
+       cal_month_view* vcached_m;
+       cal_month_view* vcached_w;
+       cal_month_view* vcached_l;
+       struct appdata *ad;
+
+       const char *name;
+       Evas_Object *parent;
+
+       Evas_Coord_Rectangle rect;
+       Evas_Coord_Rectangle oringinal_size;
+
+       focus_in_month_view_type calendar_focus_view;
+
+       Eina_List *event_list;
+
+       int single_moved;
+       int multi_touched;
+       int single_flicked;
+       Evas_Coord_Point down1, down2;
+       int down_d;
+       int down_is_called;
+
+       Evas_Coord_Point move1, move2;
+
+       Evas_Object* popup;
+       Ecore_Idler* idler;
+       int event_offset;
+
+       Ecore_Animator *ani;
+       double ani_start;
+
+       Evas_Coord_Rectangle pos_from;
+       Evas_Coord_Rectangle pos_to;
+
+       int d;
+
+       Evas_Coord x;
+       Evas_Coord y;
+
+       int calendar_slide_last_pos;
+}cal_month_data;
+
+extern void cal_month_calendar_update_view(Evas_Object *ly);
+
+static void __cal_month_mouse_move_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_month_update_genlist(cal_month_data *p);
+static void __cal_month_changed_callback(void *data, Evas_Object *obj, const char *e, const char *src);
+static void __cal_month_set_title_text(struct appdata *ad, const struct tm* tm);
+
+static inline void __cal_month_stop_animation(cal_month_data *p)
+{
+       if (p->ani)
+               ecore_animator_del(p->ani);
+
+       p->ani = NULL;
+}
+
+static void __cal_month_text_refresh_callback(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_month_data *p = data;
+
+       cal_main_update_title_text(p->ad);
+       cal_month_calendar_set_wday_text(p->vcur->month, p->ad->wday_start);
+       elm_object_text_set(p->ad->new_event_button, S_("IDS_COM_BODY_CREATE"));
+
+       elm_genlist_realized_items_update(p->list);
+}
+
+static void __cal_month_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!e, "e is null");
+
+       cal_month_data *p = data;
+
+       _calendar_free_record_list(&p->event_list);
+
+
+       if (p->vcached_m && p->vcached_m != p->vcur) {
+               __cal_month_view_del(p->vcached_m);
+               p->vcached_m = NULL;
+       }
+
+       if (p->vcached_w && p->vcached_w != p->vcur) {
+               __cal_month_view_del(p->vcached_w);
+               p->vcached_w = NULL;
+       }
+
+       if (p->vcached_l && p->vcached_l != p->vcur) {
+               __cal_month_view_del(p->vcached_l);
+               p->vcached_l = NULL;
+       }
+
+       free(p->vcur);
+
+
+       __cal_month_stop_animation(p);
+
+       if (p->idler)
+               ecore_idler_del(p->idler);
+
+       if (p->popup)
+               evas_object_del(p->popup);
+
+       cal_lang_manager_remove_callback(__cal_month_text_refresh_callback, p);
+
+       free(p);
+       p = NULL;
+}
+
+static void __cal_month_resize_view(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       cal_month_data *p = data;
+
+       cal_util_get_geometry(&p->rect, p->vcur->month);
+}
+
+static void __cal_month_get_events(cal_month_data *p)
+{
+       struct tm tm_start = p->ad->base_tm;
+       tm_start.tm_hour = 0;
+       tm_start.tm_min = 0;
+       tm_start.tm_sec = 0;
+
+       struct tm tm_end = tm_start;
+       tm_end.tm_hour = 23;
+       tm_end.tm_min = 59;
+       tm_end.tm_sec = 59;
+
+       p->event_list = _calendar_get_all_instance_list(&tm_start, &tm_end);
+
+       Eina_List *todo_list = _calendar_get_due_date_task_list(&tm_start, &tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);
+       p->event_list = eina_list_merge(p->event_list, todo_list);
+}
+
+static void __cal_month_update_genlist(cal_month_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+
+       _calendar_free_record_list(&p->event_list);
+
+       __cal_month_get_events(p);
+
+       if (!p->list)
+               p->list = cal_list_base_create(p->ad, p->vcur->container, "list/sw", true, NULL, NULL);
+       else
+               elm_genlist_clear(cal_list_base_get_genlist_p(p->list));
+
+       p->event_offset = 0;
+
+       Eina_List *l = NULL;
+       calendar_record_h record = NULL;
+
+       EINA_LIST_FOREACH(p->event_list, l, record) {
+               if (record)
+                       cal_list_base_add_item(p->list, record, false);
+       }
+
+       CAL_FN_END;
+}
+
+static Evas_Object* __cal_month_create_month_d(cal_month_view* v, cal_month_data *p, int d)
+{
+       
+       c_retv_if(!p, NULL);
+
+       struct appdata *ad = p->ad;
+       c_retv_if(!ad, NULL);
+
+       struct tm base_tm_bak = ad->base_tm;    
+
+       time_t r = cal_util_update_tm_month(&ad->base_tm, d);
+       c_retv_if(r < 0, NULL);
+
+       Evas_Object *calendar = cal_month_calendar_create_view(ad, v->container, EINA_TRUE);
+
+       ad->base_tm = base_tm_bak;
+
+       return calendar;
+}
+
+static void __cal_month_move_prev_month_calendar(cal_month_data *p, Evas_Coord x)
+{
+       if (p->vcur->month_prev == NULL) {
+               p->vcur->month_prev = __cal_month_create_month_d(p->vcur, p, -1);
+               if (!p->vcur->month_prev ) {
+                       Evas_Coord dx = p->move1.x - p->down1.x;
+                       if (dx > 0) {
+                               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->vcur->month), "elm,edge,left", "elm");
+                       }
+                       return;
+               }
+               elm_object_part_content_set(p->vcur->container, "cal/sw/left", p->vcur->month_prev);
+       }
+
+       if(0 > p->oringinal_size.x)
+       {
+               evas_object_move(p->vcur->month_prev, x, p->rect.y);
+       }
+       else
+       {
+               evas_object_move(p->vcur->month_prev, x, p->oringinal_size.y);
+       }
+
+}
+
+static void __cal_month_move_next_month_calendar(cal_month_data *p, Evas_Coord x)
+{
+       if (p->vcur->month_next == NULL) {
+               p->vcur->month_next = __cal_month_create_month_d(p->vcur, p, 1);
+               if (!p->vcur->month_next) {
+                       Evas_Coord dx = p->move1.x - p->down1.x;
+                       if (dx < 0) {
+                               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->vcur->month), "elm,edge,right", "elm");
+                       }
+                       return;
+               }
+               elm_object_part_content_set(p->vcur->container, "cal/sw/right", p->vcur->month_next);
+       }
+
+       if(0 > p->oringinal_size.x)
+       {
+               evas_object_move(p->vcur->month_next, x, p->rect.y);
+       }
+       else
+       {
+               evas_object_move(p->vcur->month_next, x, p->oringinal_size.y);
+       }
+}
+
+static void __cal_month_set_title_text(struct appdata *ad, const struct tm* tm)
+{
+       c_ret_if(!ad);
+       c_ret_if(!ad->main_navi_item);
+       Elm_Object_Item* title = ad->main_navi_item;
+       cal_util_set_item_time_text(title, "default", CAL_UTIL_DATE_FORMAT_6, NULL, tm);
+}
+
+static void __cal_month_update_title_text(cal_month_data* p, int dx)
+{
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       if ((dx > 0 ? dx : -dx) > (p->rect.w / 2)) {
+               if (dx > 0) {
+                       if (p->calendar_slide_last_pos <= 0) {
+                               struct tm t = ad->base_tm;
+                               cal_util_update_tm_month(&t, -1);
+                               __cal_month_set_title_text(ad, &t);
+                               p->calendar_slide_last_pos = 1;
+                       }
+               } else {
+                       if (p->calendar_slide_last_pos >= 0) {
+                               struct tm t = ad->base_tm;
+                               cal_util_update_tm_month(&t, 1);
+                               __cal_month_set_title_text(ad, &t);
+                               p->calendar_slide_last_pos = -1;
+                       }
+               }
+       } else {
+               if (p->calendar_slide_last_pos != 0) {
+                       __cal_month_set_title_text(ad, &ad->base_tm);
+                       p->calendar_slide_last_pos = 0;
+               }
+       }
+}
+
+static void __cal_month_move_month_calendar(cal_month_data *p)
+{
+       c_ret_if(!p);
+
+       Evas_Coord th = elm_config_finger_size_get();
+
+       Evas_Coord dx = p->move1.x - p->down1.x;
+       if (!p->single_moved && dx < th && dx > -th)
+               return;
+
+       if (!p->single_moved)
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->vcur->month), "moved", "prog");
+
+       p->single_moved = 1;
+
+       __cal_month_update_title_text(p, dx);
+
+       Evas_Coord x;
+       if (p->oringinal_size.x < 0) {
+               x = p->rect.x + dx;
+
+               __cal_month_move_prev_month_calendar(p, x - p->rect.w);
+               __cal_month_move_next_month_calendar(p, x + p->rect.w);
+               if (dx > 0) {
+                       if (p->vcur->month_prev) {
+                               evas_object_move(p->vcur->month, x, p->rect.y);
+                       }
+               } else {
+                       if (p->vcur->month_next) {
+                               evas_object_move(p->vcur->month, x, p->rect.y);
+                       }
+               }
+
+       } else {
+
+               x = p->oringinal_size.x + dx;
+
+               __cal_month_move_prev_month_calendar(p, x - p->oringinal_size.w);
+               __cal_month_move_next_month_calendar(p, x + p->oringinal_size.w);
+               if (dx > 0) {
+                       if (p->vcur->month_prev) {
+                               evas_object_move(p->vcur->month, x, p->oringinal_size.y);
+                       }
+               } else {
+                       if (p->vcur->month_next) {
+                               evas_object_move(p->vcur->month, x, p->oringinal_size.y);
+                       }
+               }
+       }
+}
+
+static inline void __cal_month_move_objects(cal_month_data *p, Evas_Coord dx)
+{
+       c_ret_if(!p);
+
+       if(!dx)
+               return;
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       struct tm t;
+       int r = 0;
+
+       if (0 <= dx) {
+
+               t = ad->base_tm;
+               r = cal_util_update_tm_month(&t, -1);
+               c_ret_if(r < 0);
+
+       } else {
+
+               t = ad->base_tm;
+               r = cal_util_update_tm_month(&t, 1);
+               c_ret_if(r < 0);
+       }
+
+       Evas_Coord x = p->pos_from.x + dx;
+
+       __cal_month_move_prev_month_calendar(p, x - p->rect.w);
+       __cal_month_move_next_month_calendar(p, x + p->rect.w);
+
+       if (dx > 0) {
+               if (p->vcur->month_prev) {
+                       evas_object_move(p->vcur->month, x, p->rect.y);
+               }
+       } else {
+               if (p->vcur->month_next) {
+                       evas_object_move(p->vcur->month, x, p->rect.y);
+               }
+       }
+}
+
+static void __cal_month_list_icon_clicked_callback(void *data, Evas_Object *obj, const char *e, const char *src);
+static void __cal_month_mouse_down_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_month_mouse_up_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei);
+
+static cal_month_view* __cal_month_create_layout(cal_month_data* p)
+{
+       cal_month_view* v = (cal_month_view*)calloc(1, sizeof(cal_month_view));
+       p->vcur = v;
+
+       Evas_Object* layout;
+
+       layout = cal_util_add_layout(p->ad->naviframe, p->name);
+
+       if (!layout) {
+               free(v);
+               return NULL;
+       }
+
+       v->container = layout;
+
+       evas_object_data_set(layout, "priv", p);
+
+       evas_object_hide(layout);
+
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_DOWN, __cal_month_mouse_down_event_callback, p);
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_MOUSE_UP, __cal_month_mouse_up_event_callback, p);
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_RESIZE, __cal_month_resize_view, p);
+
+       v->month = cal_month_calendar_create_view(p->ad, layout, EINA_TRUE);
+       v->month_next = __cal_month_create_month_d(v, p, 1);
+       v->month_prev = __cal_month_create_month_d(v, p, -1);
+
+       elm_object_part_content_set(layout, "cal/sw", v->month);
+       elm_object_part_content_set(layout, "cal/sw/left", v->month_prev);
+       elm_object_part_content_set(layout, "cal/sw/right", v->month_next);
+
+//     cal_month_calendar_update_select(p->vcur->month);
+
+//     cal_month_update_view(layout);
+
+//     cal_month_calendar_update_view(v->month);
+//     cal_month_calendar_update_view(v->month_next);
+//     cal_month_calendar_update_view(v->month_prev);
+
+//     __cal_month_update_genlist(p);
+
+       return v;
+}
+
+static void __cal_month_create_missing_parts(cal_month_view* v, cal_month_data* p)
+{
+       if (v->month == NULL)
+               v->month = cal_month_calendar_create_view(p->ad, v->container, EINA_TRUE);
+
+       if (v->month_next == NULL)
+               v->month_next = __cal_month_create_month_d(v, p, 1);
+
+       if (v->month_prev == NULL)
+               v->month_prev = __cal_month_create_month_d(v, p, -1);
+
+       elm_object_part_content_set(v->container, "cal/sw", v->month);
+       elm_object_part_content_set(v->container, "cal/sw/left", v->month_prev);
+       elm_object_part_content_set(v->container, "cal/sw/right", v->month_next);
+}
+
+static void __cal_month_switch_mode(cal_month_data* p)
+{
+       CAL_ASSERT(p)
+
+       if (p->vcur) {
+               evas_object_event_callback_del(p->vcur->month, EVAS_CALLBACK_MOUSE_MOVE, __cal_month_mouse_move_event_callback);
+               edje_object_signal_callback_del(CAL_UTIL_GET_EDJ_DATA(p->vcur->month), "changed", "prog", __cal_month_changed_callback);
+               Evas_Object *layout = elm_object_part_content_unset(p->ad->main, "cont");
+               evas_object_hide(p->vcur->month);
+               evas_object_hide(p->vcur->month_next);
+               evas_object_hide(p->vcur->month_prev);
+               evas_object_event_callback_del(layout, EVAS_CALLBACK_DEL, __cal_month_delete_layout);
+               evas_object_hide(layout);
+       }
+
+       if (p->ad->is_landscape_mode) {
+               p->name = _name = "main/month/weekly/l";
+               if (p->vcached_l == NULL)
+                       p->vcached_l = __cal_month_create_layout(p);
+               else
+                       __cal_month_create_missing_parts(p->vcached_l, p);
+               p->vcur = p->vcached_l;
+       } else {
+               if (p->ad->daily_events_mode) {
+                       p->name = _name = "main/month/weekly";
+                       if (p->vcached_w == NULL)
+                               p->vcached_w = __cal_month_create_layout(p);
+                       else
+                               __cal_month_create_missing_parts(p->vcached_w, p);
+                       p->vcur = p->vcached_w;
+               } else {
+                       p->name = _name = "main/month";
+                       if (p->vcached_m == NULL)
+                               p->vcached_m = __cal_month_create_layout(p);
+                       else
+                               __cal_month_create_missing_parts(p->vcached_m, p);
+                       p->vcur = p->vcached_m;
+               }
+       }
+
+       evas_object_event_callback_add(p->vcur->container, EVAS_CALLBACK_DEL, __cal_month_delete_layout, p);
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->vcur->container), "set,default");
+
+       if (!p->ad->daily_events_mode)
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->vcur->container), "go,line%d", cal_month_calendar_get_weekline(p->vcur->month));
+
+       evas_object_event_callback_add(p->vcur->month, EVAS_CALLBACK_MOUSE_MOVE, __cal_month_mouse_move_event_callback, p);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(p->vcur->month), "changed", "prog", __cal_month_changed_callback, p);
+
+       evas_object_show(p->vcur->container);
+       elm_object_part_content_set(p->ad->main, "cont", p->vcur->container);
+       cal_main_set_main_content(p->ad, p->vcur->container);
+       evas_object_show(p->vcur->month);
+}
+
+static void __cal_month_shift(cal_month_view* v, cal_month_data *p, int d)
+{
+       if (v == NULL)
+               return;
+
+       elm_object_part_content_unset(v->container, "cal/sw");
+       elm_object_part_content_unset(v->container, "cal/sw/left");
+       elm_object_part_content_unset(v->container, "cal/sw/right");
+
+       if (d > 0)
+       {
+               evas_object_del(v->month_prev);
+               v->month_prev = v->month;
+               v->month = v->month_next;
+               if (p->vcur == v)
+                       v->month_next = __cal_month_create_month_d(v, p, 1);
+               else
+                       v->month_next = NULL;
+       }
+       else
+       {
+               evas_object_del(v->month_next);
+               v->month_next = v->month;
+               v->month = v->month_prev;
+               if (p->vcur == v)
+                       v->month_prev = __cal_month_create_month_d(v, p, -1);
+               else
+                       v->month_prev = NULL;
+       }
+
+       elm_object_part_content_set(v->container, "cal/sw", v->month);
+       elm_object_part_content_set(v->container, "cal/sw/left", v->month_prev);
+       elm_object_part_content_set(v->container, "cal/sw/right", v->month_next);
+}
+
+static inline int __cal_month_update_month_view(cal_month_data *p, int d)
+{
+       CAL_ASSERT(p);
+
+       int r;
+
+       r = cal_util_update_tm_month(&p->ad->base_tm, d);
+       if (r == -1)
+               return -1;
+
+       cal_month_view* vcur = p->vcur;
+
+       edje_object_signal_callback_del(CAL_UTIL_GET_EDJ_DATA(vcur->month), "changed", "prog", __cal_month_changed_callback);
+       evas_object_event_callback_del(vcur->month, EVAS_CALLBACK_MOUSE_MOVE, __cal_month_mouse_move_event_callback);
+
+       __cal_month_shift(p->vcached_m, p, d);
+       __cal_month_shift(p->vcached_w, p, d);
+       __cal_month_shift(p->vcached_l, p, d);
+
+       cal_month_calendar_update_select(vcur->month);
+
+       if (!p->ad->daily_events_mode)
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->vcur->container), "go,line%d", cal_month_calendar_get_weekline(p->vcur->month));
+
+       evas_object_show(vcur->container);
+
+       evas_object_event_callback_add(vcur->month, EVAS_CALLBACK_MOUSE_MOVE, __cal_month_mouse_move_event_callback, p);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(p->vcur->month), "changed", "prog", __cal_month_changed_callback, p);
+
+       __cal_month_update_genlist(p);
+
+       return 0;
+}
+
+
+static Eina_Bool __cal_month_animation(void *data)
+{
+       cal_month_data *p = data;
+       double elapsed_t;
+       Evas_Coord dx;
+
+       elapsed_t = ecore_time_get() - p->ani_start;
+       if (elapsed_t > ANIMATION_TIME)
+               elapsed_t = ANIMATION_TIME;
+
+       dx = (p->pos_to.x - p->pos_from.x) * cal_util_nsin(elapsed_t / ANIMATION_TIME);
+       __cal_month_move_objects(p, dx);
+
+       if (elapsed_t == ANIMATION_TIME || dx == 0)
+       {
+               if (p->ani)
+               {
+                       ecore_animator_del(p->ani);
+                       p->ani = NULL;
+               }
+
+               if(p->d)
+               {
+                       __cal_month_update_month_view(p,p->d);
+               }
+
+               p->calendar_slide_last_pos = 0;
+
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+static inline void __cal_month_start_animation(cal_month_data *p)
+{
+       if (p->pos_from.x == p->pos_to.x)
+               return;
+
+       if (!p->ani)
+               p->ani = ecore_animator_add(__cal_month_animation, p);
+       p->ani_start = ecore_time_get();
+}
+
+static void __cal_month_mouse_up_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       CAL_ASSERT(data);
+       cal_month_data *p = data;
+
+       CAL_ASSERT(p->ad);
+       struct appdata* ad = p->ad;
+
+       Evas_Event_Mouse_Up *ev = ei;
+
+       p->down_is_called = 0;
+
+       if (p->single_flicked) {
+               int dy = p->down1.y - ev->canvas.y;
+               p->single_flicked = 0;
+
+               if (0 < dy) {
+                       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->vcur->container), "expand,up");
+               } else {
+                       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->vcur->container), "expand,down");
+               }
+
+       } else if (p->single_moved) {
+               int dx = p->down1.x - ev->canvas.x;
+               int d = 1;
+
+               p->single_moved = 0;
+
+               if (dx < 0) {
+                       d = -1;
+                       dx = dx * -1;
+               }
+
+               cal_util_get_geometry(&p->pos_from,p->vcur->month);
+
+               if (dx > cal_util_get_flick_distance_threshold())
+               {
+                       if (d < 0)
+                       {
+                               p->d = -1;
+                               p->pos_to.x = p->ad->win_w;
+                               p->pos_to.y = p->pos_from.y;
+                               p->pos_to.w = p->pos_from.w;
+                               p->pos_to.h = p->pos_from.h;
+                       }
+                       else
+                       {
+                               p->d = 1;
+                               p->pos_to.x = -(p->ad->win_w);
+                               p->pos_to.y = p->pos_from.y;
+                               p->pos_to.w = p->pos_from.w;
+                               p->pos_to.h = p->pos_from.h;
+                       }
+                       __cal_month_start_animation(p);
+               }
+               else
+               {
+                       p->d = 0;
+                       p->pos_to.x = 0;
+                       p->pos_to.y = p->pos_from.y;
+                       p->pos_to.w = p->pos_from.w;
+                       p->pos_to.h = p->pos_from.h;
+                       __cal_month_start_animation(p);
+               }
+
+               return;
+       }
+
+}
+
+static void __cal_month_mouse_down_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       cal_month_data *p = data;
+       Evas_Event_Mouse_Down *ev = ei;
+
+       p->down1.x = p->move1.x = ev->canvas.x;
+       p->down1.y = p->move1.y = ev->canvas.y;
+
+       p->down_is_called = 1;
+       p->multi_touched = 0;
+
+       cal_util_get_geometry(&p->oringinal_size,p->vcur->month);
+}
+
+static void __cal_month_mouse_move_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data,  "data is null");
+       c_retm_if(!ei,  "ei is null");
+
+       cal_month_data *p = data;
+       Evas_Event_Mouse_Move *ev = ei;
+       Evas_Coord th = elm_config_finger_size_get();
+       int y_distance = ev->cur.canvas.y - p->down1.y;
+
+       if (th < abs(y_distance) && !p->ad->daily_events_mode) {
+               struct appdata* ad = p->ad;
+               c_ret_if(!ad);
+
+               if (!p->multi_touched && !p->single_moved && !p->single_flicked) {
+                       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->vcur->month), "moved", "prog");
+                       p->single_flicked = 1;
+               }
+       }
+
+       if (th < abs(ev->cur.canvas.x - p->down1.x)) {
+               struct appdata* ad = p->ad;
+               c_ret_if(!ad);
+
+       }
+
+       if (0 == p->down_is_called)
+               return;
+
+       p->move1.x = ev->cur.canvas.x;
+       p->move1.y = ev->cur.canvas.y;
+
+       if (!p->multi_touched && !p->single_flicked)
+               __cal_month_move_month_calendar(p);
+}
+
+static void __cal_month_changed_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       __cal_month_update_genlist(data);
+}
+
+Evas_Object* cal_month_create_view(struct appdata *ad, Evas_Object *main)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!ad, NULL, "ad is null");
+       c_retvm_if(!main, NULL, "main is null");
+
+       cal_month_data *p;
+       Evas_Object *ly;
+       Evas_Object *month;
+       Evas_Object *list_bg;
+       int r;
+
+       p = calloc(1, sizeof(cal_month_data));
+       c_retv_if (!p, NULL);
+
+       r = vconf_get_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, (int *)&ad->is_display_weeknumber);
+       if (r != 0) {
+               ERR("vconf_get_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, (int *)&ad->is_display_weeknumber) is failed");
+               free(p);
+               return NULL;
+       }
+
+       r = vconf_get_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, (int *)&ad->is_display_complete_todo);
+       if (r != 0) {
+               ERR("vconf_get_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, (int *)&p->is_display_complete_todo) is failed");
+               free(p);
+               return NULL;
+       }
+
+       p->ad = ad;
+
+       ad->tapbar_focus_view = CV_MONTH;
+
+       p->parent = main;
+       p->oringinal_size.x = -1;
+       p->oringinal_size.y = -1;
+       p->oringinal_size.w = -1;
+       p->oringinal_size.h = -1;
+
+       __cal_month_switch_mode(p);
+
+       list_bg = cal_util_add_bg(p->vcur->container, EINA_FALSE);
+       if (!list_bg)
+       {
+               ERR("cal_util_add_bg(ly, EINA_FALSE) is failed");
+               evas_object_del(p->vcur->container);
+               free(p);
+               return NULL;
+       }
+
+       elm_object_part_content_set(p->vcur->container, "list/base", list_bg);
+
+       cal_lang_manager_add_callback(__cal_month_text_refresh_callback, p)
+
+       CAL_FN_END;
+
+       return p->vcur->container;
+}
+
+void cal_month_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ly, "ly is null");
+
+       cal_month_data *p;
+       struct appdata *ad;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       if (!p || CAL_STRCMP(p->name, _name)) {
+               ERR("update month view: Invalid object");
+               return;
+       }
+
+       ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       if (p->vcached_l != NULL && p->vcur != p->vcached_l) {
+               __cal_month_view_del(p->vcached_l);
+               p->vcached_l = NULL;
+       }
+
+       if (p->vcached_m != NULL && p->vcur != p->vcached_m) {
+               __cal_month_view_del(p->vcached_m);
+               p->vcached_m = NULL;
+       }
+
+       if (p->vcached_w != NULL && p->vcur != p->vcached_w) {
+               __cal_month_view_del(p->vcached_w);
+               p->vcached_w = NULL;
+       }
+
+       cal_month_calendar_update_view(p->vcur->month);
+
+       if (!p->ad->daily_events_mode)
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->vcur->container), "go,line%d", cal_month_calendar_get_weekline(p->vcur->month));
+
+       __cal_month_update_genlist(p);
+
+       cal_util_delete_evas_object(&p->vcur->month_prev);
+       cal_util_delete_evas_object(&p->vcur->month_next);
+
+       CAL_FN_END;
+}
diff --git a/src/view-main-todo.c b/src/view-main-todo.c
new file mode 100755 (executable)
index 0000000..be52be6
--- /dev/null
@@ -0,0 +1,483 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+\r
+#include "view.h"\r
+\r
+#include <vconf.h>\r
+#include <Elementary.h>\r
+#include <time.h>\r
+\r
+#include "detail-view.h"\r
+#include "noti-handler.h"\r
+#include <time.h>\r
+#include <calendar2.h>\r
+#include <calendar_view.h>\r
+#include "view.h"\r
+#include "list-base.h"\r
+#include "cal-svc.h"\r
+\r
+extern Elm_Genlist_Item_Class cal_list_itc_h;\r
+\r
+static Elm_Entry_Filter_Limit_Size _limit_20char = {\r
+       .max_char_count = 20,\r
+};\r
+\r
+typedef struct {\r
+       struct appdata *ad;\r
+\r
+       const char *searchtext;\r
+       Elm_Object_Item *sweep_it;\r
+\r
+       Evas_Object* parent;\r
+       Evas_Object* layout;\r
+\r
+       Evas_Object *box;\r
+       cal_list_base_h list_base;\r
+       Evas_Object *no_contents;\r
+\r
+       Ecore_Event_Handler *event_handler;\r
+       Evas_Coord x;\r
+       Evas_Coord y;\r
+\r
+       Elm_Object_Item* navi_item;\r
+       Elm_Object_Item *bt_new;\r
+       Elm_Object_Item *bt_delete;\r
+\r
+       int more_idx;\r
+\r
+       calendar_list_h list;\r
+\r
+       struct tm tm_start;\r
+       struct tm tm_end;\r
+\r
+       Elm_Object_Item *due_today_item;\r
+       Elm_Object_Item *no_due_date_item;\r
+       Elm_Object_Item *due_in_over_one_week_item;\r
+       Elm_Object_Item *due_within_a_week_item;\r
+       Elm_Object_Item *over_due_item;\r
+\r
+       Evas_Object *today_button;\r
+} cal_list_data;\r
+\r
+static void __cal_list_create_no_contents(cal_list_data *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!p);\r
+       c_ret_if(!p->layout);\r
+\r
+       if (p->no_contents)\r
+               return;\r
+\r
+       char* title = NULL;\r
+\r
+       title = C_("IDS_TASK_BODY_NO_TASKS");\r
+\r
+       Evas_Object *no_contents = cal_util_add_search_nocontents(p->layout, title);\r
+       c_ret_if(!no_contents);\r
+\r
+       elm_object_part_content_set(p->layout, "sw", no_contents);\r
+\r
+       p->no_contents = no_contents;\r
+}\r
+\r
+static void __cal_list_delete_no_contents(cal_list_data *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!p);\r
+\r
+       if (!p->no_contents)\r
+               return;\r
+\r
+       elm_object_part_content_unset(p->layout, "sw");\r
+\r
+       evas_object_del(p->no_contents);\r
+\r
+       p->no_contents = NULL;\r
+}\r
+\r
+\r
+static void __cal_list_get_task_list(cal_list_data *p) // mapitodo\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!p);\r
+\r
+       struct appdata *ad = p->ad;\r
+       c_ret_if(!ad);\r
+\r
+       p->tm_start.tm_year = 70;\r
+       p->tm_end.tm_year = 137;\r
+\r
+       p->list = _calendar_get_all_task_list(&p->tm_start, &p->tm_end, ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_append_task_to_genlist(cal_list_data *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!p);\r
+\r
+       struct appdata* ad = p->ad;\r
+       c_ret_if(!ad);\r
+\r
+       calendar_record_h record = NULL;\r
+       calendar_error_e error = calendar_list_get_current_record_p(p->list, &record);\r
+\r
+       while (error == CALENDAR_ERROR_NONE) {\r
+               calendar_time_s due_time;\r
+               calendar_record_get_caltime(record, _calendar_todo_calendar_book.due_time, &due_time);\r
+\r
+               if (due_time.time.utime == CALENDAR_TODO_NO_DUE_DATE) {\r
+                       if (!p->no_due_date_item) {\r
+                               p->no_due_date_item = cal_list_base_append_genlist_group_item(\r
+                                                                               cal_list_base_get_genlist_p(p->list_base), &cal_list_itc_h, NULL, CAL_TASK_NO_DUE_DATE);\r
+                       }\r
+               } else {\r
+                       struct tm tm_today = ad->today_tm;\r
+                       tm_today.tm_hour = 0;\r
+                       tm_today.tm_min = 0;\r
+                       tm_today.tm_sec = 0;\r
+                       long long int today;\r
+                       cal_util_convert_tm_to_lli(NULL, &tm_today, &today);\r
+\r
+                       struct tm tm_due_date = {0};\r
+                       cal_util_convert_lli_to_tm(NULL, due_time.time.utime, &tm_due_date);\r
+                       tm_due_date.tm_hour = 0;\r
+                       tm_due_date.tm_min= 0;\r
+                       tm_due_date.tm_sec = 0;\r
+                       long long int due_date;\r
+                       cal_util_convert_tm_to_lli(NULL, &tm_due_date, &due_date);\r
+\r
+                       long long int diff = due_date - today;\r
+\r
+                       if (diff < 0) {\r
+                               if (!p->over_due_item) {\r
+                                       p->over_due_item = cal_list_base_append_genlist_group_item(\r
+                                                       cal_list_base_get_genlist_p(p->list_base), &cal_list_itc_h, NULL, CAL_TASK_OVER_DUE);\r
+                               }\r
+                       } else if (diff == 0) { // due_date today\r
+                               if (!p->due_today_item) {\r
+                                       p->due_today_item = cal_list_base_append_genlist_group_item(\r
+                                                       cal_list_base_get_genlist_p(p->list_base), &cal_list_itc_h, NULL, CAL_TASK_DUE_TODAY);\r
+                               }\r
+                       } else if (diff < 7 * 24 * 60 * 60) {\r
+                               if (!p->due_within_a_week_item) {\r
+                                       p->due_within_a_week_item = cal_list_base_append_genlist_group_item(\r
+                                                       cal_list_base_get_genlist_p(p->list_base), &cal_list_itc_h, NULL, CAL_TASK_DUE_WITHIN_A_WEEK);\r
+                               }\r
+                       } else {\r
+                               if (!p->due_in_over_one_week_item) {\r
+                                       p->due_in_over_one_week_item = cal_list_base_append_genlist_group_item(\r
+                                                       cal_list_base_get_genlist_p(p->list_base), &cal_list_itc_h, NULL, CAL_TASK_DUE_IN_OVER_ONE_WEEK);\r
+                               }\r
+                       }\r
+               }\r
+\r
+               cal_list_base_add_item(p->list_base, record, false);\r
+\r
+               error = calendar_list_next(p->list);\r
+               c_ret_if(error != CALENDAR_ERROR_NONE);\r
+\r
+               error = calendar_list_get_current_record_p(p->list, &record);\r
+       }\r
+\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_update_genlist(cal_list_data *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!p);\r
+\r
+       cal_list_base_clear(p->list_base);\r
+\r
+       p->due_today_item = NULL;\r
+       p->no_due_date_item = NULL;\r
+       p->due_within_a_week_item = NULL;\r
+       p->due_in_over_one_week_item = NULL;\r
+       p->over_due_item = NULL;\r
+\r
+       struct appdata* ad = p->ad;\r
+       c_ret_if(!ad);\r
+\r
+       ad->today_item = NULL;\r
+\r
+       int count = 0;\r
+       calendar_error_e error = calendar_list_get_count(p->list, &count);\r
+       c_ret_if(error != CALENDAR_ERROR_NONE);\r
+\r
+       if (count > 0) {\r
+\r
+               __cal_list_delete_no_contents(p);\r
+\r
+               if (!p->list_base)\r
+                       p->list_base = cal_list_base_create(p->ad, p->layout, "sw", true, NULL, NULL);\r
+\r
+               __cal_list_append_task_to_genlist(p);\r
+\r
+       } else {\r
+\r
+               cal_list_base_delete(p->list_base);\r
+               p->list_base = NULL;\r
+\r
+               __cal_list_create_no_contents(p);\r
+       }\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_update_list(cal_list_data *p)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!p);\r
+\r
+       calendar_list_destroy(p->list, true);\r
+\r
+       struct appdata *ad = p->ad;\r
+       c_ret_if(!ad);\r
+\r
+       p->tm_start = ad->base_tm;\r
+       p->tm_start.tm_hour = 0;\r
+       p->tm_start.tm_min = 0;\r
+       p->tm_start.tm_sec = 0;\r
+\r
+       p->tm_end = p->tm_start;\r
+       p->tm_end.tm_hour = 23;\r
+       p->tm_end.tm_min = 59;\r
+       p->tm_end.tm_sec = 59;\r
+\r
+       cal_util_update_tm_month(&p->tm_start, -3);\r
+       cal_util_update_tm_month(&p->tm_end, 3);\r
+\r
+       __cal_list_get_task_list(p);\r
+\r
+       __cal_list_update_genlist(p);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static void __cal_list_update_delete_button(cal_list_data *p);\r
+\r
+static void __cal_list_day_event_changed_callback(const char* view_uri, void *user_data)\r
+{\r
+       c_retm_if(!user_data, "user_data is null");\r
+\r
+       cal_list_data *p = user_data;\r
+\r
+       __cal_list_update_list(p);\r
+       __cal_list_update_delete_button(p);\r
+}\r
+\r
+static void __cal_todo_text_refresh_callback(void *data)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!data, "data is null");\r
+       cal_list_data *p = data;\r
+\r
+       cal_main_update_title_text(p->ad);\r
+       elm_object_text_set(p->ad->new_event_button, S_("IDS_COM_BODY_CREATE"));\r
+\r
+       if(p->no_contents)\r
+               elm_object_part_text_set(p->no_contents, "elm.text", C_("IDS_TASK_BODY_NO_TASKS"));\r
+\r
+       elm_genlist_realized_items_update(p->list);\r
+}\r
+\r
+static void __cal_list_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)\r
+{\r
+       CAL_FN_START;\r
+\r
+       cal_list_data *p = data;\r
+       c_retm_if(!p, "priv is null.");\r
+\r
+       calendar_db_remove_changed_cb(_calendar_event._uri, __cal_list_day_event_changed_callback, p);\r
+\r
+       calendar_list_destroy(p->list, true);\r
+\r
+       if (p->event_handler)\r
+               ecore_event_handler_del(p->event_handler);\r
+\r
+       if (p->today_button) {\r
+               elm_object_item_part_content_set(p->ad->main_navi_item, "title_left_btn", p->today_button);\r
+               evas_object_show(p->today_button);\r
+       }\r
+\r
+       cal_lang_manager_remove_callback(__cal_todo_text_refresh_callback, p);\r
+\r
+       free(p);\r
+\r
+       CAL_FN_END;\r
+}\r
+\r
+static Eina_Bool __cal_list_mouse_button_down_callback(void *data, int type, void *event)\r
+{\r
+       c_retvm_if(!event, EINA_FALSE, "event is null");\r
+       c_retvm_if(!data, EINA_FALSE, "data is null");\r
+\r
+       Ecore_Event_Mouse_Button *ev = event;\r
+       cal_list_data *p = data;\r
+\r
+       p->x = ev->x;\r
+       p->y = ev->y;\r
+\r
+       return ECORE_CALLBACK_RENEW;\r
+}\r
+\r
+Evas_Object* cal_todo_create_list(struct appdata *ad, Evas_Object *parent)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retv_if(!ad, NULL);\r
+       c_retv_if(!parent, NULL);\r
+\r
+       cal_list_data *p = calloc(1, sizeof(cal_list_data));\r
+       c_retv_if(!p, NULL);\r
+\r
+       p->ad = ad;\r
+       p->parent = parent;\r
+\r
+       Evas_Object *layout = cal_util_add_layout(parent, "list/base/without_searchbar");\r
+\r
+       if (!layout) {\r
+               free(p);\r
+\r
+               ERR("layout is null.");\r
+\r
+               return NULL;\r
+       }\r
+\r
+       evas_object_data_set(layout, "priv", p);\r
+\r
+       p->layout = layout;\r
+       p->more_idx = -1;\r
+\r
+       p->list = NULL;\r
+\r
+       elm_object_disabled_set(p->ad->new_event_button, EINA_FALSE);\r
+\r
+       Evas_Object *bg = cal_util_add_bg(layout, EINA_FALSE);\r
+       if (!bg) {\r
+\r
+               free(p);\r
+               free(layout);\r
+\r
+               ERR("bg is null.");\r
+\r
+               return NULL;\r
+       }\r
+\r
+       elm_object_part_content_set(layout, "base", bg);\r
+\r
+       evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, __cal_list_delete_layout, p);\r
+\r
+       p->event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, __cal_list_mouse_button_down_callback, p);\r
+\r
+       CAL_FN_END;\r
+\r
+       return layout;\r
+}\r
+\r
+static void __cal_list_update_delete_button(cal_list_data *p)\r
+{\r
+       c_ret_if(!p);\r
+\r
+       Elm_Object_Item *delete_button = NULL;\r
+\r
+       delete_button = p->ad->bt_delete;\r
+\r
+       int count = 0;\r
+       calendar_error_e error = calendar_list_get_count(p->list, &count);\r
+       c_ret_if(error != CALENDAR_ERROR_NONE);\r
+\r
+       if (count > 0)\r
+               elm_object_item_disabled_set(delete_button, EINA_FALSE);\r
+       else\r
+               elm_object_item_disabled_set(delete_button, EINA_TRUE);\r
+}\r
+\r
+static void __cal_todo_search_button_callback(void *data, Evas_Object* obj, void* event_info)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+\r
+       cal_list_data *p = data;\r
+\r
+       Evas_Object *ly_search = cal_search_list_create_list(p->ad, p->parent);\r
+       c_retm_if(!ly_search, "ly_search is null");\r
+\r
+       cal_search_list_update_list(ly_search);\r
+}\r
+\r
+Evas_Object* cal_todo_create_view(struct appdata *ad, Evas_Object *main)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retvm_if(!ad, NULL, "ad is NULL.");\r
+\r
+       Evas_Object *ly = cal_todo_create_list(ad, main);\r
+       c_retvm_if(!ly, NULL, "ly is null.");\r
+\r
+       ad->tapbar_focus_view = CV_TODO;\r
+\r
+       int r;\r
+       cal_list_data *p = CAL_UTIL_GET_PRIV_DATA(ly);\r
+       c_retvm_if(!p, NULL, "p is null.");\r
+\r
+       r = vconf_get_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, (int *)&ad->is_display_complete_todo);\r
+       c_retvm_if(r != 0, NULL, "vconf_get_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, (int *)&p->is_display_complete_todo) is failed");\r
+\r
+       // Save today button it so that it can be restored when exiting Task view.\r
+       p->today_button = elm_object_item_part_content_get(ad->main_navi_item, "title_left_btn");\r
+       elm_object_item_part_content_unset(ad->main_navi_item, "title_left_btn");\r
+       evas_object_hide(p->today_button);\r
+\r
+       Evas_Object *search_button = cal_util_add_toolbar_button2(ad->naviframe, "title_left_btn", "00_title_icon_search.png", __cal_todo_search_button_callback, p);\r
+\r
+       cal_lang_manager_add_callback(__cal_todo_text_refresh_callback, p)\r
+\r
+       CAL_FN_END;\r
+\r
+       return ly;\r
+}\r
+\r
+void cal_todo_update_view(Evas_Object *ly)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!ly, "ly is NULL.");\r
+\r
+       cal_list_data *p = CAL_UTIL_GET_PRIV_DATA(ly);\r
+       c_ret_if(!p);\r
+\r
+       struct appdata *ad = p->ad;\r
+       c_ret_if(!ad);\r
+\r
+       __cal_list_update_list(p);\r
+\r
+       __cal_list_update_delete_button(p);\r
+\r
+       CAL_FN_END;\r
+}\r
diff --git a/src/view-main-week.c b/src/view-main-week.c
new file mode 100755 (executable)
index 0000000..4f2110e
--- /dev/null
@@ -0,0 +1,1706 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <vconf.h>
+
+#include "view.h"
+#include "edit-view.h"
+#include "detail-view.h"
+#include "external-ug.h"
+#include "cld-images.h"
+#include "list-base.h"
+#include "week-data.h"
+
+#define WEEK_DAY_NUMS 7
+#define BUF_SIZE_64 64
+#define MAX_DATA_LEN 10
+
+typedef enum{
+       DISPLAY_SMALL_WEEKEND = 0,
+       DISPLAY_TODO
+}cal_week_view_type;
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly;
+
+       Evas_Object *left;
+       Evas_Object *right;
+
+       int ign;
+       int downed;
+       Evas_Coord_Rectangle rect;
+       Evas_Coord_Point down;
+       Evas_Coord_Point move;
+
+       int pos_selected;
+
+       Eina_List *week_event_list;
+       int event_count[7];
+
+       int pos_down;
+
+       int is_moving;
+
+       cal_week_view_type week_view_type;
+
+       int expanded_week_day;
+
+       Evas_Coord_Point multi_mouse_down;
+       Evas_Coord_Point multi_mouse_move;
+
+       Evas_Coord mouse_down_distance;
+       int multi_touched;
+
+       Evas_Object *ctx;
+       Evas_Object *popup;
+}cal_week_data;
+
+typedef struct {
+       cal_week_data *p;
+       Elm_Object_Item *it;
+       calendar_record_h record;
+}cal_week_genlist_item_data;
+
+static _calendar_book_color calendar_color;
+static char signal_source[32];
+
+static Evas_Object* __cal_week_cal_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);
+static void __cal_week_cal_expand_week_day(cal_week_data *p, int pos);
+static void __cal_week_cal_unexpand_week_day(cal_week_data *p, int pos);
+static void __cal_week_more_event_callback(void *data, Evas_Object *obj, const char *e, const char *src);
+static void __cal_week_genlist_mouse_up_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_week_genlist_mouse_down_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_week_genlist_mouse_move_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_week_set_more_text(cal_week_data *p, int count, int pos);
+
+static char* __cal_week_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static void __cal_week_delete_genlist_item(void *data, Evas_Object *obj);
+static char* __cal_week_share_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+
+static Elm_Genlist_Item_Class _itc = {
+       .item_style = "2text.2icon.edit.1",
+       .func.content_get = __cal_week_cal_get_genlist_item_icon,
+       .func.text_get = __cal_week_get_genlist_item_label,
+       .func.del  = __cal_week_delete_genlist_item,
+};
+
+static Elm_Genlist_Item_Class itc_1text = {
+       .item_style = "1text",
+       .func.content_get = NULL,
+       .func.text_get = __cal_week_share_genlist_item_label,
+};
+
+static char* __cal_week_share_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data || !obj || !part, NULL, "data is null");
+
+       char *name = (char *)data;
+
+       if (!CAL_STRCMP(part, "elm.text")) {
+               return strdup(name);
+       }
+
+       return NULL;
+}
+
+
+static void __cal_week_delete_genlist_item(void *data, Evas_Object *obj)
+{
+       c_retm_if(!data, "data is null.");
+       cal_week_genlist_item_data *item_data = data;
+
+       free(item_data);
+       item_data = NULL;
+}
+
+static char* __cal_week_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+       c_retv_if(!obj, NULL);
+       c_retv_if(!part, NULL);
+
+       char *tmp = NULL;
+
+       cal_week_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retv_if(!p, NULL);
+
+       cal_week_genlist_item_data *item_data = data;
+       calendar_record_h record = item_data->record;
+       c_retv_if(!record, NULL);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       Eina_Bool is_task =EINA_FALSE;
+       Eina_Bool is_done = EINA_FALSE;
+       int todo_status = CALENDAR_TODO_STATUS_COMPLETED;
+
+       if(_calendar_is_task_record(record))
+       {
+               is_task = EINA_TRUE;
+               error = calendar_record_get_int(record, _calendar_todo_calendar_book.todo_status, &todo_status);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (CALENDAR_TODO_STATUS_COMPLETED == todo_status) {
+                       is_done = EINA_TRUE;
+               } else {
+                       is_done = EINA_FALSE;
+               }
+       }
+
+
+       if (!CAL_STRCMP(part, "elm.textblock.1")) {
+               if (is_task && is_done) {
+                       tmp = _calendar_get_summary(record);
+
+                       char *text = calloc(1, strlen(tmp)+500);
+                       if(!text)       {
+                               ERR("text is NULL!");
+                               free(tmp);
+                               return NULL;
+                       }
+
+                       sprintf(text, "<strikethrough=on strikethrough_color=#333333><color=#3333337F>%s</color></strikethrough>", tmp);
+
+                       free(tmp);
+
+                       return text;
+               }
+               return NULL;
+       } else if (!CAL_STRCMP(part, "elm.text.1")) {
+               if (!is_task || !is_done) {
+                       return _calendar_get_summary(record);
+               }
+               return NULL;
+       } else if (!CAL_STRCMP(part, "elm.textblock.2")) {
+               struct tm tm_start;
+               struct tm tm_end;
+               char buf[512] = {0};
+               char etime[256] = {0};
+               char stime[256] = {0};
+
+               if (_calendar_is_allday_record(record)) {
+                       return strdup(C_("IDS_COM_BODY_ALL_DAY"));
+               } else {
+                       calendar_time_s start_time = {0};
+                       calendar_time_s end_time = {0};
+                       _calendar_get_start_time(record, &start_time);
+                       _calendar_get_end_time(record, &end_time);
+
+                       cal_util_convert_lli_to_tm(NULL, start_time.time.utime, &tm_start);
+                       cal_util_convert_lli_to_tm(NULL, end_time.time.utime, &tm_end);
+
+                       if (is_hour24) {
+                               cal_util_get_time_text(stime, sizeof(stime), NULL, CAL_UTIL_TIME_FORMAT_6, &tm_start);
+                               cal_util_get_time_text(etime, sizeof(etime), NULL, CAL_UTIL_TIME_FORMAT_6, &tm_end);
+                       } else {
+                               cal_util_get_time_text(stime, sizeof(stime), NULL, CAL_UTIL_TIME_FORMAT_1, &tm_start);
+                               cal_util_get_time_text(etime, sizeof(etime), NULL, CAL_UTIL_TIME_FORMAT_1, &tm_end);
+                       }
+               }
+
+               if (!is_task) {
+                       snprintf(buf, sizeof(buf), "%s - %s", stime, etime);
+                       return strdup(buf);
+               } else if (is_done) {
+                       sprintf(buf, "<color=#2A89C27F>%s</color>", etime);
+                       return strdup(buf);
+               } else {
+                       return strdup(etime);
+               }
+               return NULL;
+       }
+
+       return NULL;
+}
+
+static void __cal_week_free_week_event_list(cal_week_data *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->week_event_list);
+
+       Eina_List *l = NULL;
+       Eina_List *list = NULL;
+
+       EINA_LIST_FOREACH(p->week_event_list, l, list) {
+               if (list)
+                       _calendar_free_record_list(&list);
+       }
+
+       p->week_event_list = eina_list_free(p->week_event_list);
+}
+
+static void __cal_week_text_refresh_callback(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_week_data *p = data;
+
+       cal_main_update_title_text(p->ad);
+
+       elm_object_text_set(p->ad->new_event_button, S_("IDS_COM_BODY_CREATE"));
+
+       int day_index;
+       const char *part = NULL;
+       Evas_Object *box = NULL;
+       Evas_Object *genlist = NULL;
+       Eina_List *list = NULL;
+       struct tm t = p->ad->base_tm;
+       cal_util_update_tm_day(&t, p->ad->wday_start - t.tm_wday);
+       for (day_index = 0; day_index < WEEK_DAY_NUMS; day_index++) {
+               part = cal_util_get_part_text("wdb/%d/sw", day_index);
+
+               cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(p->ly), cal_util_get_part_text("wdb/%d/text_wday", day_index), CAL_UTIL_DATE_FORMAT_2, NULL, &t);
+               cal_util_update_tm_day(&t, 1);
+
+               box = evas_object_data_get(p->ly, part);
+               list = elm_box_children_get(box);
+               genlist = eina_list_nth(list, 0);
+               elm_genlist_realized_items_update(genlist);
+       }
+       eina_list_free(list);
+}
+
+static void __cal_week_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!obj);
+
+       cal_week_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!p);
+
+       __cal_week_free_week_event_list(p);
+
+       cal_util_delete_evas_object(&p->left);
+       cal_util_delete_evas_object(&p->right);
+
+       if (p->ctx) {
+               evas_object_del(p->ctx);
+               p->ctx = NULL;
+       }
+
+       if (p->popup) {
+               evas_object_del(p->popup);
+               p->popup = NULL;
+       }
+
+       cal_lang_manager_remove_callback(__cal_week_text_refresh_callback, p);
+
+       free(p);
+}
+
+static void __cal_week_resize_view(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_week_data *p = data;
+
+       cal_util_get_geometry(&p->rect, p->ly);
+}
+
+static void __cal_week_mouse_down_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       cal_week_data *p = data;
+       Evas_Event_Mouse_Down *ev = ei;
+
+       p->down.x = p->move.x = ev->canvas.x;
+       p->down.y = p->move.y = ev->canvas.y;
+
+       p->downed = 1;
+       p->multi_touched = 0;
+       p->is_moving = 0;
+
+       cal_util_get_geometry(&p->rect, p->ly);
+}
+
+static inline void __cal_week_set_block(Evas_Object *ly, int pos, Evas_Object *eo)
+{
+       c_ret_if(!ly);
+       c_ret_if(!eo);
+
+       const char *part = cal_util_get_part_text("wdb/%d/disable", pos);
+       c_ret_if(!part);
+
+       Evas_Object *sw = evas_object_data_get(ly, part);
+       if (sw)
+               evas_object_del(sw);
+
+       Evas_Object *obj = elm_object_part_content_get(ly, part);
+
+       elm_object_part_content_unset(ly, part);
+
+       if (obj)
+               evas_object_del(obj);
+
+       elm_object_part_content_set(ly, part, eo);
+
+       evas_object_data_set(ly, part, eo);
+}
+
+static inline void __cal_week_set_box(Evas_Object *ly, int pos)
+{
+       c_ret_if(!ly);
+
+       const char *part = cal_util_get_part_text("wdb/%d/sw", pos);
+
+       Evas_Object *sw = evas_object_data_get(ly, part);
+       if (sw)
+               evas_object_del(sw);
+
+       Evas_Object *obj = elm_object_part_content_get(ly, part);
+
+       elm_object_part_content_unset(ly, part);
+
+       if (obj)
+               evas_object_del(obj);
+
+       elm_object_part_content_set(ly, part, NULL);
+
+       evas_object_data_set(ly, part, NULL);
+}
+
+static void __cal_week_highlight_today_title(struct tm *tm, Evas_Object *obj, int index)
+{
+       c_ret_if(!tm);
+       c_ret_if(!obj);
+
+       time_t t;
+       struct tm cur;
+
+       t = time(NULL);
+       localtime_r(&t, &cur);
+
+       if (cur.tm_year == tm->tm_year
+               && cur.tm_mon ==tm->tm_mon
+               && cur.tm_mday == tm->tm_mday) {
+                       cal_util_emit_signal(obj, "focus,%d,today", index);
+       } else {
+               cal_util_emit_signal(obj, "unfocus,%d,today", index);
+       }
+}
+
+static void __cal_week_update_days(Evas_Object *ly, cal_week_data *p, struct tm *tm_base, int start)
+{
+       c_ret_if(!ly);
+       c_ret_if(!p);
+       c_ret_if(!p->ad);
+       c_ret_if(!tm_base);
+
+       int day_index;
+
+       struct tm t = *tm_base;
+       cal_util_update_tm_day(&t, start - t.tm_wday);
+       char date_text[8]={0};
+
+       for (day_index = 0; day_index < WEEK_DAY_NUMS; day_index++) {
+               memset(date_text, 0x00, 8);
+               sprintf(date_text, "%d", t.tm_mday);
+               edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("wdb/%d/text", day_index), date_text);
+
+               cal_util_set_time_text(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("wdb/%d/text_wday", day_index), CAL_UTIL_DATE_FORMAT_2, NULL, &t);
+
+               cal_util_set_text(CAL_UTIL_GET_EDJ_DATA(ly), cal_util_get_part_text("wdb/%d/more", day_index), "");
+
+               __cal_week_set_box(ly, day_index);
+
+               __cal_week_highlight_today_title(&t, CAL_UTIL_GET_EDJ_DATA(ly), day_index);
+
+               cal_util_update_tm_day(&t, 1);
+       }
+}
+
+static void __cal_week_fill_days(Evas_Object *ly, cal_week_data *p, struct tm *tm, int start)
+{
+       int i;
+
+       for (i = 0; i < WEEK_DAY_NUMS; i++) {
+               int wday = CAL_UTIL_GET_WDAY(i + start);
+
+               switch (wday) {
+               case 0:
+                       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "sunday,%d", i);
+                       break;
+               case 6:
+                       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(ly), "satday,%d", i);
+                       break;
+               }
+       }
+
+       __cal_week_update_days(ly, p, tm, start);
+}
+
+static Evas_Object* __cal_week_create_week_view(cal_week_data *p, int d)
+{
+       c_retv_if(!p, NULL);
+
+       struct appdata* ad = p->ad;
+       c_retv_if(!ad, NULL);
+
+       Evas_Object *ly;
+       struct tm tm_s, tm_e;
+       int r_s, r_e;
+       tm_s = ad->base_tm;
+
+       tm_s.tm_mday -= CAL_UTIL_GET_WDAY(tm_s.tm_wday - ad->wday_start);
+       tm_e = tm_s;
+       tm_e.tm_mday += 7;
+
+       r_s = cal_util_update_tm_day(&tm_s, d * 7);
+       r_e = cal_util_update_tm_day(&tm_e, d * 7);
+
+       if (r_s == -1 && r_e == -1) {
+               return NULL;
+       } else {
+               ly = cal_util_add_layout(p->parent, p->name);
+
+               c_retv_if(!ly, NULL);
+
+               __cal_week_fill_days(ly, p, &tm_s, ad->wday_start);
+       }
+
+       evas_object_resize(ly, p->rect.w, p->rect.h);
+
+       Evas_Object *clip = (Evas_Object*)edje_object_part_object_get(CAL_UTIL_GET_EDJ_DATA(ad->main), "clip");
+       c_retv_if(!clip, NULL);
+
+       evas_object_clip_set(ly, (Evas_Object*)clip);
+
+       return ly;
+}
+
+static void __cal_week_move_left(cal_week_data *p, Evas_Coord x)
+{
+       c_ret_if(!p);
+
+       if (!p->left)
+               p->left = __cal_week_create_week_view(p, -1);
+
+       c_ret_if(!p->left);
+
+       evas_object_move(p->left, x, p->rect.y);
+}
+
+static void __cal_week_move_right(cal_week_data *p, Evas_Coord x)
+{
+       c_ret_if(!p);
+
+       if (!p->right)
+               p->right = __cal_week_create_week_view(p, 1);
+
+       c_ret_if(!p->right);
+
+       evas_object_move(p->right, x, p->rect.y);
+}
+
+static int __cal_week_check_is_out_date(cal_week_data *p, int d)
+{
+       c_retvm_if(!p, -1,  "p is null");
+
+       struct tm tm_s, tm_e;
+       int r_s, r_e;
+
+       tm_s = p->ad->base_tm;
+
+       tm_s.tm_mday -= CAL_UTIL_GET_WDAY(tm_s.tm_wday - p->ad->wday_start);
+       tm_e = tm_s;
+       tm_e.tm_mday += 7;
+
+       r_s = cal_util_update_tm_day(&tm_s, d * 7);
+       r_e = cal_util_update_tm_day(&tm_e, d * 7);
+
+       if(r_s == -1 && r_e == -1)
+               return -1;
+
+       return 0;
+}
+
+static void __cal_week_mouse_up_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       cal_week_data *p = data;
+
+       Evas_Coord dx;
+       Evas_Coord d;
+       int r;
+       Evas_Event_Mouse_Up *ev = ei;
+
+       if (!p->downed || p->multi_touched)
+               return;
+
+       p->downed = 0;
+       p->is_moving = 0;
+
+       d = 1;
+       r = -1;
+
+       dx = p->down.x - ev->canvas.x;
+       if (dx < 0) {
+               d = -1;
+               dx = dx * -1;
+       }
+
+       if (cal_util_get_flick_distance_threshold() < dx) {
+               r = __cal_week_check_is_out_date(p, d);
+               if (-1 != r) {
+                       cal_util_update_tm_day(&(p->ad->base_tm), d * 7);
+                       cal_main_update_title_text(p->ad);
+                       cal_week_update_view(ly);
+               }
+       }
+
+       if (r == -1) {
+               __cal_week_move_left(p, -p->rect.w);
+               __cal_week_move_right(p, p->rect.w);
+       }
+
+       evas_object_move(ly, p->rect.x, p->rect.y);
+}
+
+static void __cal_week_mouse_move_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data,  "data is null");
+       c_retm_if(!ei,  "ei is null");
+
+       cal_week_data *p = data;
+       Evas_Event_Mouse_Move *ev = ei;
+
+       Evas_Coord dx;
+       Evas_Coord dy;
+       Evas_Coord x;
+
+       c_retm_if(!p->ad, "p->ad is null");
+
+       p->move.x = ev->cur.canvas.x;
+       p->move.y = ev->cur.canvas.y;
+
+       if (!p->downed || p->multi_touched)
+               return;
+
+       dx = p->move.x - p->down.x;
+       x = p->rect.x + dx;
+
+       dy = p->down.y - p->move.y;
+
+}
+
+static int __cal_week_get_position(cal_week_data *p, struct tm *tm, int start)
+{
+       return CAL_UTIL_GET_WDAY(tm->tm_wday - start);
+}
+
+static void __cal_week_update_select(cal_week_data *p, int pos)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->ly);
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "unfocus,%d,wday", p->pos_selected);
+       p->pos_selected = pos;
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "focus,%d,wday", p->pos_selected);
+}
+
+static void __cal_week_down_event_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       c_retm_if(!data, "data is null");
+       cal_week_data *p = data;
+       p->pos_down = atoi(e);
+       c_retm_if(WEEK_DAY_NUMS == p->pos_down, "pos_down is todo.");
+}
+
+static void __cal_week_cal_event_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       CAL_FN_START;
+       c_retm_if(!data, "data is null");
+       cal_week_data *p = data;
+
+       if (p->pos_selected == -1)
+       {
+               ERR("");
+               return;
+       }
+
+       if (p->ign) {
+               p->ign = 0;
+               ERR("");
+               return;
+       }
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       int pos = atoi(e);
+       if (pos == WEEK_DAY_NUMS) {
+
+
+               if (pos != p->pos_selected) {
+                       __cal_week_update_select(p, pos);
+                       return;
+               }
+               return;
+       } else {
+               int d = pos - p->pos_selected;
+
+               cal_util_update_tm_day(&ad->base_tm, d);
+
+
+               if (pos != p->pos_selected) {
+                       __cal_week_update_select(p, pos);
+                       return;
+               }
+       }
+}
+
+static void __cal_week_genlist_item_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_week_genlist_item_data *item_data = data;
+
+       calendar_record_h record =item_data->record;
+       c_ret_if(!record);
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_record_h todo_original_record = NULL;
+       int todo_id = _calendar_get_record_index(record);
+       error = calendar_db_get_record(_calendar_todo._uri, todo_id, &todo_original_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record(%d) is failed(%x)", todo_id, error);
+
+       Eina_Bool check_status = elm_check_state_get(obj);
+
+       if (check_status) {
+               error = calendar_record_set_int(todo_original_record, _calendar_todo.todo_status, CALENDAR_TODO_STATUS_COMPLETED);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+               error = calendar_record_set_int(record, _calendar_todo_calendar_book.todo_status, CALENDAR_TODO_STATUS_COMPLETED);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+       }
+       else {
+               error = calendar_record_set_int(todo_original_record, _calendar_todo.todo_status, CALENDAR_TODO_STATUS_IN_PROCESS);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+               error = calendar_record_set_int(record, _calendar_todo_calendar_book.todo_status, CALENDAR_TODO_STATUS_IN_PROCESS);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+       }
+
+       Evas_Object *genlist = evas_object_data_get(obj, "genlist");
+       c_ret_if(!genlist);
+
+       cal_week_data *p = evas_object_data_get(genlist, "priv");
+       c_ret_if(!p);
+       c_ret_if(!p->ad);
+
+       cal_main_remove_db_changed_callback(p->ad);
+
+       error = calendar_db_update_record(todo_original_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_update_record() is failed(%x)", error);
+
+       cal_main_add_db_changed_callback(p->ad);
+
+       elm_genlist_item_update(item_data->it);
+
+}
+
+static Evas_Object* __cal_week_cal_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       cal_week_data *p = evas_object_data_get(obj, "priv");
+       c_retv_if(!p, NULL);
+       c_retv_if(!p->ad, NULL);
+
+       cal_week_genlist_item_data *item_data = data;
+       calendar_record_h record = item_data->record;
+       c_retv_if(!record, NULL);
+
+       if (!CAL_STRCMP(part, "elm.swallow.colorbar")) {
+               Evas_Object *icon;
+
+               icon = evas_object_rectangle_add(evas_object_evas_get(obj));
+               evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               _calendar_get_calendar_color(record, &calendar_color);
+
+               evas_object_color_set(icon, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+               return icon;
+       } else if (!CAL_STRCMP(part, "elm.edit.icon.1")) {
+
+               if(!_calendar_is_task_record(record))
+                       return NULL;
+
+               Evas_Object *check = elm_check_add(obj);
+               c_retvm_if(!check, NULL, "elm_check_add returned null");
+
+               Eina_Bool check_status = EINA_FALSE;
+               calendar_error_e error = CALENDAR_ERROR_NONE;
+               int todo_status = 0;
+               error = calendar_record_get_int(record, _calendar_todo_calendar_book.todo_status, &todo_status);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (CALENDAR_TODO_STATUS_COMPLETED == todo_status) {
+                       check_status = EINA_TRUE;
+               } else if (CALENDAR_TODO_STATUS_IN_PROCESS == todo_status) {
+                       check_status = EINA_FALSE;
+               }
+
+               elm_check_state_pointer_set(check, &check_status);
+               evas_object_data_set(check, "genlist", obj);
+               evas_object_smart_callback_add(check, "changed", __cal_week_genlist_item_check_changed_callback, item_data);
+               evas_object_propagate_events_set(check, EINA_FALSE);
+
+               return check;
+       } else if (!CAL_STRCMP(part, "elm.icon.1")) {
+               if (_calendar_is_facebook_record(record)) {
+                       Evas_Object *icon = elm_icon_add(obj);
+                       c_retv_if(!icon, NULL);
+
+                       int r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_FACEBOOK);
+                       c_retv_if(!r, NULL);
+
+                       return icon;
+               }
+       }
+
+       return NULL;
+}
+
+static void __cal_week_cal_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       calendar_record_h record = data;
+
+       Elm_Object_Item *it = elm_genlist_selected_item_get(obj);
+       if (it)
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       cal_week_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!p);
+
+       if (p->ctx) {
+               return;
+       }
+
+       p->ad->cid = _calendar_get_record_index(record);
+
+       int day_index = (int)evas_object_data_get(obj, "pos");
+       int diff = day_index - p->pos_selected;
+       if(diff)        {
+               cal_util_update_tm_day(&(p->ad->base_tm), diff);
+               __cal_week_update_select(p, day_index);
+       }
+
+       cal_detail_create_view(p->ad, record, NULL, NULL);
+}
+
+static void __cal_week_ctx_popup_hide_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_week_data* p = data;
+
+       p->ctx = NULL;
+
+       evas_object_del(obj);
+}
+
+static void __cal_week_init_ctx_data(calendar_record_h record, cal_week_data *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!record);
+
+       p->ad->cid = _calendar_get_record_index(record);
+}
+
+static void __cal_week_edit_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_week_data* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+
+       struct appdata* ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       calendar_record_h record = evas_object_data_get(p->popup, "record");
+       c_retm_if(!record, "record is null");
+
+       if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_BODY_ONLY_THIS_EVENT"))) {
+               cal_edit_create_view(ad, record, NULL, NULL);
+       }else if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"))) {
+               calendar_record_h origin_record = NULL;
+               int index = _calendar_get_record_index(record);
+               origin_record = _calendar_get_record_with_index(index);
+
+               cal_edit_create_view(ad, origin_record, NULL, NULL);
+               calendar_record_destroy(origin_record, true);
+       }
+
+       evas_object_del(popup);
+       p->popup = NULL;
+}
+
+static void __cal_week_delete_event(cal_week_data* p, Eina_Bool is_delete_all)
+{
+       c_ret_if(!p);
+
+       struct appdata* ad = p->ad;
+       c_ret_if(!ad);
+
+       if (!is_delete_all) {
+
+               calendar_record_h instance  = NULL;
+
+               instance = evas_object_data_get(p->ly, "record");
+
+               _calendar_delete_recurrence_instance(instance);
+
+       } else
+               _calendar_delete_record_with_index(ad->cid);
+}
+
+static void __cal_week_delete_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_week_data* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+
+       if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_BODY_ONLY_THIS_EVENT")))
+               __cal_week_delete_event(p, EINA_FALSE);
+       else if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS")))
+               __cal_week_delete_event(p, EINA_TRUE);
+
+       evas_object_del(popup);
+       p->popup = NULL;
+}
+
+static void __cal_week_show_popup(cal_week_data *p, const char *tit, Eina_Bool is_edit)
+{
+       c_ret_if(!p);
+
+       void (*callback_func)(void *data, Evas_Object *obj, void *ei) = NULL;
+
+       if (is_edit) {
+               callback_func = __cal_week_edit_popup_response_event_callback;
+       } else {
+               callback_func = __cal_week_delete_popup_response_event_callback;
+       }
+
+       p->popup = cal_util_add_popup(p->ad->win, "verticalbuttonstyle", NULL, tit, callback_func,
+               p, C_("IDS_CLD_BODY_ONLY_THIS_EVENT"),
+               C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"),
+               S_("IDS_COM_SK_CANCEL"), NULL);
+
+
+       c_retm_if(!p->popup, "cal_util_add_popup(p->ad->win) returned null");
+
+       evas_object_data_set(p->popup, "priv", p);
+}
+
+static void __cal_week_edit_norepeat_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_week_data* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+
+       calendar_record_h record = evas_object_data_get(p->popup, "record");
+       c_retm_if(!record, "record is null");
+
+       if (!strcmp(elm_object_text_get(button), S_("IDS_COM_SK_OK"))) {
+               calendar_record_h origin_record = NULL;
+               int index = _calendar_get_record_index(record);
+               origin_record = _calendar_get_record_with_index(index);
+
+               cal_edit_create_view(p->ad, origin_record, NULL, NULL);
+               calendar_record_destroy(origin_record, true);
+       }
+
+       evas_object_del(popup);
+       p->popup = NULL;
+}
+
+static void __cal_week_edit_call_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+       c_ret_if(!ei);
+
+       cal_week_genlist_item_data *item_data = data;
+       cal_week_data *p = item_data->p;
+       c_ret_if(!p );
+
+       calendar_record_h record = item_data->record;
+       c_ret_if(!record );
+
+       elm_ctxpopup_dismiss(obj);
+
+       __cal_week_init_ctx_data(record, p);
+
+       if (_calendar_is_task_record(record)) {
+               p->popup = cal_util_add_popup(p->ad->win, NULL, NULL, C_("IDS_TASK_HEADER_EDIT_TASK"), __cal_week_edit_norepeat_popup_response_event_callback, p,
+                               S_("IDS_COM_SK_OK"),S_("IDS_COM_SK_CANCEL"), NULL);
+       } else {
+               if (_calendar_is_recurrent_record(record))
+                       __cal_week_show_popup(p, C_("IDS_CLD_HEADER_EDIT_EVENT"), EINA_TRUE);
+               else {
+                       p->popup = cal_util_add_popup(p->ad->win, NULL, NULL, C_("IDS_CLD_HEADER_EDIT_EVENT"), __cal_week_edit_norepeat_popup_response_event_callback, p,
+                               S_("IDS_COM_SK_OK"),S_("IDS_COM_SK_CANCEL"), NULL);
+               }
+       }
+       evas_object_data_set(p->popup, "record", record);
+}
+
+static void __cal_week_delete_norepeat_popup_response_event_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+       Evas_Object *button = obj;
+
+       cal_week_data* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+       c_retm_if(!p->ly, "p->ly is null");
+
+       if (NULL != strstr(elm_object_text_get(button), S_("IDS_COM_BODY_DELETE"))) {
+               calendar_record_h record = evas_object_data_get(p->ly, "record");
+
+               _calendar_delete_record(record);
+       }
+
+       evas_object_del(p->popup);
+       p->popup = NULL;
+}
+
+static void __cal_week_delete_call_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+       c_ret_if(!ei);
+
+       cal_week_genlist_item_data *item_data = data;
+       cal_week_data *p = item_data->p;
+       c_ret_if(!p );
+
+       calendar_record_h record = item_data->record;
+       c_retm_if(!record, "record is NULL.");
+
+       elm_ctxpopup_dismiss(obj);
+
+       __cal_week_init_ctx_data(record, p);
+
+       if (p->ad->cid) {
+
+               evas_object_data_set(p->ly, "record", record);
+
+               if (_calendar_is_task_record(record)) {
+                       p->popup = cal_util_add_popup(p->ad->win, NULL, NULL, S_("IDS_COM_POP_DELETE_Q"), __cal_week_delete_norepeat_popup_response_event_callback, p,
+                                       S_("IDS_COM_BODY_DELETE"),S_("IDS_COM_SK_CANCEL"), NULL);
+               } else {
+                       if (_calendar_is_recurrent_record(record)) {
+                               __cal_week_show_popup(p, C_("IDS_CLD_OPT_DELETE_EVENT"), EINA_FALSE);
+                       } else {
+                               p->popup = cal_util_add_popup(p->ad->win, NULL, NULL, S_("IDS_COM_POP_DELETE_Q"), __cal_week_delete_norepeat_popup_response_event_callback, p,
+                                       S_("IDS_COM_BODY_DELETE"),S_("IDS_COM_SK_CANCEL"), NULL);
+                       }
+               }
+       }
+}
+
+static void __cal_week_share_popup_response_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+
+       cal_week_data* p = evas_object_data_get(popup, "data");
+       c_retm_if(!p, "p is null");
+
+       evas_object_del(popup);
+       p->popup = NULL;
+
+}
+
+static inline void __cal_week_delete_popup(cal_week_data *p)
+{
+       c_retm_if(!p || !p->popup, "param is null");
+
+       evas_object_del(p->popup);
+       p->popup = NULL;
+}
+
+
+static void __cal_week_via_message_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_week_data *p = data;
+       c_retm_if(!p->ad, "p->ad is null");
+
+       calendar_record_h record = _calendar_get_record_with_index(p->ad->cid);
+
+       _calendar_export_record_to_vcs(record, CAL_MESSAGE_VCS);
+
+       p->ad->ug = cal_launch_ug_with_var(NULL, CAL_MESSAGE_COMPOSER_UG, NULL, "ATTACHFILE", CAL_MESSAGE_VCS, NULL);
+
+       __cal_week_delete_popup(p);
+}
+
+static void __cal_week_via_email_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_week_data *p = data;
+       c_retm_if(!p->ad, "p->ad is null");
+
+       calendar_record_h record = _calendar_get_record_with_index(p->ad->cid);
+
+       _calendar_export_record_to_vcs(record, CAL_MESSAGE_VCS);
+
+       p->ad->ug = cal_launch_ug_with_var(NULL, CAL_EMAIL_COMPOSER_UG, (struct ug_cbs *)p->ad, "RUN_TYPE", "5", "ATTACHMENT", CAL_EMAIL_VCS, NULL);
+
+       __cal_week_delete_popup(p);
+}
+
+static void __cal_week_via_bluetooth_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_week_data *p = data;
+       c_retm_if(!p->ad, "p->ad is null");
+
+       calendar_record_h record = _calendar_get_record_with_index(p->ad->cid);
+
+       _calendar_export_record_to_vcs(record, CAL_MESSAGE_VCS);
+
+       p->ad->ug = cal_launch_ug_with_var(NULL, CAL_BLUETOOTH_UG, NULL, "launch-type", "send", "filecount", "1", "files", CAL_BLUETOOTH_VCS, NULL);
+
+       __cal_week_delete_popup(p);
+}
+
+static void __cal_week_share_call_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+       c_ret_if(!ei);
+
+       cal_week_genlist_item_data *item_data = data;
+       cal_week_data *p = item_data->p;
+       c_ret_if(!p );
+
+       calendar_record_h record = item_data->record;
+       c_ret_if(!record);
+
+       elm_ctxpopup_dismiss(obj);
+
+       __cal_week_init_ctx_data(record, p);
+
+       p->popup = cal_util_add_popup(p->ad->win, "menustyle", S_("IDS_COM_BUTTON_SHARE"), NULL,
+                               __cal_week_share_popup_response_callback, p,
+                               S_("IDS_COM_BODY_CLOSE"),  NULL);
+
+       c_retm_if(!p->popup, "cal_util_add_popup returned null");
+       evas_object_data_set(p->popup, "data", p);
+
+       Evas_Object *genlist = elm_genlist_add(p->popup);
+       c_retm_if(!genlist, "elm_genlist_add returned null");
+
+       elm_genlist_item_append(genlist, &itc_1text, S_("IDS_COM_BODY_EMAIL"), NULL, ELM_GENLIST_ITEM_NONE, __cal_week_via_email_callback, p);
+       elm_genlist_item_append(genlist, &itc_1text, S_("IDS_COM_BODY_MESSAGE"), NULL, ELM_GENLIST_ITEM_NONE, __cal_week_via_message_callback, p);
+       elm_genlist_item_append(genlist, &itc_1text, S_("IDS_COM_BODY_BLUETOOTH"), NULL, ELM_GENLIST_ITEM_NONE, __cal_week_via_bluetooth_callback, p);
+
+       elm_object_content_set(p->popup, genlist);
+       evas_object_show(p->popup);
+}
+
+static void __cal_week_new_call_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+       c_ret_if(!ei);
+
+       cal_week_genlist_item_data *item_data = data;
+
+       cal_week_data *p = item_data->p;
+       c_ret_if(!p );
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       ad->base_hour = -1;
+       ad->cid = 0;
+
+       elm_ctxpopup_dismiss(obj);
+
+       calendar_record_h record = item_data->record;
+       c_ret_if(!record);
+
+       cal_edit_create_view(p->ad, record, NULL, NULL);
+}
+
+static void __cal_week_show_ctx_popup(cal_week_genlist_item_data *item_data, cal_week_data *p)
+{
+       c_ret_if(!item_data);
+       c_ret_if(!p);
+
+       if (p->ctx) {
+               evas_object_del(p->ctx);
+               p->ctx = NULL;
+       }
+
+       p->ctx = elm_ctxpopup_add(p->ad->naviframe);
+       c_ret_if(!p->ctx);
+
+       evas_object_smart_callback_add(p->ctx, "dismissed", __cal_week_ctx_popup_hide_callback, p);
+
+       {
+               elm_ctxpopup_item_append(p->ctx, S_("IDS_COM_SK_EDIT"), NULL, __cal_week_edit_call_callback, item_data);
+               elm_ctxpopup_item_append(p->ctx, S_("IDS_COM_BODY_DELETE"), NULL, __cal_week_delete_call_callback, item_data);
+       }
+
+       elm_ctxpopup_item_append(p->ctx, S_("IDS_COM_BUTTON_SHARE"), NULL, __cal_week_share_call_callback, item_data);
+       elm_ctxpopup_item_append(p->ctx, S_("IDS_COM_SK_NEW"), NULL, __cal_week_new_call_callback, item_data);
+
+       elm_ctxpopup_direction_priority_set(p->ctx, ELM_CTXPOPUP_DIRECTION_DOWN,
+                                                                                                                       ELM_CTXPOPUP_DIRECTION_RIGHT,
+                                                                                                                       ELM_CTXPOPUP_DIRECTION_LEFT,
+                                                                                                                       ELM_CTXPOPUP_DIRECTION_UP);
+       evas_object_data_set(p->ctx, "priv", p);
+       evas_object_move(p->ctx, p->down.x, p->down.y);
+       evas_object_show(p->ctx);
+
+
+}
+
+static void __cal_week_add_event(Eina_List *list, int day_index, cal_week_data *p)
+{
+       c_ret_if(!list);
+       c_ret_if(!p);
+
+       Eina_List *l = NULL;
+       calendar_record_h record = NULL;
+
+       int ncount = eina_list_count(list);
+
+       Evas_Object *box = cal_util_add_box(p->ly);
+       c_ret_if(!box);
+
+       Evas_Object *genlist = elm_genlist_add(box);
+       c_ret_if(!genlist);
+
+       evas_object_data_set(genlist, "priv", p);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(box);
+       evas_object_show(genlist);
+
+       EINA_LIST_FOREACH(list, l, record) {
+               if (record) {
+                       cal_week_genlist_item_data *item_data = calloc(1, sizeof(cal_week_genlist_item_data));
+                       c_ret_if(!item_data);
+
+                       item_data->record = record;
+                       item_data->p = p;
+                       item_data->it = elm_genlist_item_append(genlist, &_itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_week_cal_genlist_item_select_callback, record);
+                       if (item_data->it)
+                               elm_object_item_data_set(item_data->it, item_data);
+               }
+       }
+
+       elm_box_pack_start(box, genlist);
+       elm_object_part_content_set(p->ly, cal_util_get_part_text("wdb/%d/sw", day_index), box);
+
+       evas_object_data_set(genlist, "pos", (void *)day_index);
+       evas_object_data_set(genlist, "priv", p);
+
+       evas_object_propagate_events_set(genlist, EINA_FALSE);
+
+       evas_object_event_callback_add(genlist, EVAS_CALLBACK_MOUSE_DOWN, __cal_week_genlist_mouse_down_event_callback, p);
+       evas_object_event_callback_add(genlist, EVAS_CALLBACK_MOUSE_UP, __cal_week_genlist_mouse_up_event_callback, p);
+       evas_object_event_callback_add(genlist, EVAS_CALLBACK_MOUSE_MOVE, __cal_week_genlist_mouse_move_event_callback, p);
+
+       p->event_count[day_index] = ncount;
+
+       __cal_week_set_more_text(p,
+                       week_data_get_overflow_count(ncount, day_index, false, p->ad->is_landscape_mode),
+                       day_index);
+}
+
+static void __cal_week_unset_week_day_content(cal_week_data *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->ly);
+
+       int i = 0;
+
+       for (i = 0; i < WEEK_DAY_NUMS; i++) {
+
+               Evas_Object *box = elm_object_part_content_get(p->ly, cal_util_get_part_text("wdb/%d/sw", i));
+               c_ret_if(!box);
+
+               elm_object_part_content_unset(p->ly, cal_util_get_part_text("wdb/%d/sw", i));
+
+               evas_object_del(box);
+       }
+}
+
+static void __cal_week_get_week_events(cal_week_data *p)
+{
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       Eina_List *event_list = NULL;
+
+       __cal_week_unset_week_day_content(p);
+
+       struct tm tm_start = ad->base_tm;
+       tm_start.tm_hour = 0;
+       tm_start.tm_min = 0;
+       tm_start.tm_sec = 0;
+
+       cal_util_update_tm_day(&tm_start, ad->wday_start - tm_start.tm_wday);
+
+       struct tm tm_end = tm_start;
+       tm_end.tm_hour = 23;
+       tm_end.tm_min = 59;
+       tm_end.tm_sec = 59;
+
+       int day_index = 0;
+       for (day_index = 0; day_index < 7; day_index++) {
+
+               p->event_count[day_index] = 0;
+
+               event_list = _calendar_get_all_instance_list(&tm_start, &tm_end);
+
+               Eina_List *todo_list = _calendar_get_due_date_task_list(&tm_start, &tm_end, p->ad->is_display_complete_todo, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);
+
+               event_list = eina_list_merge(event_list, todo_list);
+
+               if (event_list) {
+
+                       p->week_event_list = eina_list_append(p->week_event_list, event_list);
+                       __cal_week_add_event(event_list, day_index, p);
+
+                       event_list = NULL;
+               }
+
+               cal_util_update_tm_day(&tm_start, 1);
+               cal_util_update_tm_day(&tm_end, 1);
+       }
+}
+
+Evas_Object* cal_week_create_view(struct appdata *ad, Evas_Object *main)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ad, NULL);
+       c_retv_if(!main, NULL);
+
+       cal_week_data *p = calloc(1, sizeof(cal_week_data));
+       c_retv_if(!p, NULL);
+
+       if (!ad->is_landscape_mode) {
+               p->name = "main/week/small";
+       } else {
+               p->name = "landscape/main/week/small";
+       }
+
+       p->ad = ad;
+       ad->tapbar_focus_view = CV_WEEK;
+       p->parent = main;
+       p->pos_down = -1;
+       p->expanded_week_day = -1;
+       Evas_Object *ly = cal_util_add_layout(ad->naviframe, p->name);
+       if (!ly) {
+               free(p);
+               return NULL;
+       }
+
+       evas_object_data_set(ly, "priv", p);
+       p->ly = ly;
+       p->pos_selected = 0;
+
+       __cal_week_fill_days(ly, p, &ad->base_tm, ad->wday_start);
+
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(ly), "*", "cal", __cal_week_cal_event_callback, p);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(ly), "*", "more", __cal_week_more_event_callback, p);
+       edje_object_signal_callback_add(CAL_UTIL_GET_EDJ_DATA(ly), "*", "down", __cal_week_down_event_callback, p);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_DOWN, __cal_week_mouse_down_event_callback, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_week_mouse_up_event_callback, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_MOVE, __cal_week_mouse_move_event_callback, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_RESIZE, __cal_week_resize_view, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_week_delete_layout, NULL);
+
+       cal_lang_manager_add_callback(__cal_week_text_refresh_callback, p);
+
+       return ly;
+}
+
+void cal_week_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ly);
+
+       cal_week_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_ret_if(!p);
+
+       struct appdata *ad = p->ad;
+       c_ret_if(!ad);
+
+       __cal_week_free_week_event_list(p);
+
+       __cal_week_update_days(p->ly, p, &ad->base_tm, ad->wday_start);
+
+       __cal_week_update_select(p, __cal_week_get_position(p, &ad->base_tm, ad->wday_start));
+
+       __cal_week_get_week_events(p);
+
+       cal_util_delete_evas_object(&p->left);
+       cal_util_delete_evas_object(&p->right);
+
+}
+
+static inline void __cal_week_cal_expand_up(cal_week_data *p, int pos)
+{
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "set_expand_up,%d", pos);
+       __cal_week_set_more_text(p,
+            week_data_get_overflow_count(p->event_count[pos], pos, true, p->ad->is_landscape_mode),
+            pos);
+}
+
+static inline void __cal_week_cal_expand_up_1(cal_week_data *p, int pos)
+{
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "set_expand_up_1,%d", pos);
+       __cal_week_set_more_text(p,
+            week_data_get_overflow_count(p->event_count[pos], pos, true, p->ad->is_landscape_mode),
+            pos);
+}
+
+static inline void __cal_week_cal_expand_up_2(cal_week_data *p, int pos)
+{
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "set_expand_up_2,%d", pos);
+       __cal_week_set_more_text(p,
+            week_data_get_overflow_count(p->event_count[pos], pos, true, p->ad->is_landscape_mode),
+            pos);
+}
+
+static inline void __cal_week_cal_expand_down(cal_week_data *p, int pos)
+{
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "set_expand_down,%d", pos);
+       __cal_week_set_more_text(p,
+            week_data_get_overflow_count(p->event_count[pos], pos, true, p->ad->is_landscape_mode),
+            pos);
+}
+
+static inline void __cal_week_cal_expand_default(cal_week_data *p, int pos)
+{
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "set_expand_default,%d", pos);
+       __cal_week_set_more_text(p,
+            week_data_get_overflow_count(p->event_count[pos], pos, false, p->ad->is_landscape_mode),
+            pos);
+}
+
+static inline void __cal_week_cal_collapse_up(cal_week_data *p, int pos)
+{
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "set_expand_hide_up,%d", pos);
+       __cal_week_set_more_text(p, p->event_count[pos], pos);
+}
+
+static inline void __cal_week_cal_collapse_down(cal_week_data *p, int pos)
+{
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "set_expand_hide_down,%d", pos);
+       __cal_week_set_more_text(p, p->event_count[pos], pos);
+}
+
+static void __cal_week_cal_expand_week_day(cal_week_data *p, int pos)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(-1 == pos, "pos is -1");
+       c_retm_if(p->expanded_week_day == pos, "Week day was expanded.");
+
+       if (-1 != p->expanded_week_day) {
+               __cal_week_cal_unexpand_week_day(p, p->expanded_week_day);
+               cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "show,%d,more", p->expanded_week_day);
+       }
+
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "hide,%d,more", pos);
+
+       if (!p->ad->is_landscape_mode) {
+               switch (pos) {
+               case 0:
+                       __cal_week_cal_expand_down(p, pos);
+                       __cal_week_cal_collapse_down(p, pos+2);
+                       break;
+               case 1:
+                       __cal_week_cal_expand_down(p, pos);
+                       __cal_week_cal_collapse_down(p, pos+2);
+                       __cal_week_cal_collapse_down(p, pos+4);
+                       __cal_week_cal_collapse_down(p, pos+5);
+                       break;
+               case 2:
+                       __cal_week_cal_collapse_up(p, pos-2);
+                       __cal_week_cal_expand_up(p, pos);
+                       __cal_week_cal_collapse_down(p, pos+2);
+                       break;
+               case 3:
+                       __cal_week_cal_expand_up(p, pos);
+                       __cal_week_cal_collapse_up(p, pos-2);
+                       __cal_week_cal_collapse_down(p, pos+2);
+                       __cal_week_cal_collapse_down(p, pos+3);
+                       break;
+               case 4:
+                       __cal_week_cal_collapse_up(p, pos-4);
+                       __cal_week_cal_collapse_up(p, pos-2);
+                       __cal_week_cal_expand_up(p, pos);
+                       break;
+               case 5:
+                       __cal_week_cal_collapse_up(p, pos-4);
+                       __cal_week_cal_collapse_up(p, pos-2);
+                       __cal_week_cal_expand_up_1(p, pos);
+                       __cal_week_cal_collapse_down(p, pos+1);
+                       break;
+               case 6:
+                       __cal_week_cal_collapse_up(p, pos-5);
+                       __cal_week_cal_collapse_up(p, pos-3);
+                       __cal_week_cal_collapse_up(p, pos-1);
+                       __cal_week_cal_expand_up_2(p, pos);
+                       break;
+               default:
+                       break;
+               }
+       } else {
+               switch (pos) {
+               case 0:
+               case 1:
+                       __cal_week_cal_expand_down(p, pos);
+                       __cal_week_cal_collapse_down(p, pos+3);
+                       break;
+               case 2:
+                       __cal_week_cal_expand_down(p, pos);
+                       __cal_week_cal_collapse_down(p, pos+3);
+                       __cal_week_cal_collapse_down(p, pos+4);
+                       break;
+               case 3:
+               case 4:
+                       __cal_week_cal_expand_up(p, pos);
+                       __cal_week_cal_collapse_up(p, pos-3);
+                       break;
+               case 5:
+                       __cal_week_cal_expand_up_1(p, pos);
+                       __cal_week_cal_collapse_up(p, pos-3);
+                       __cal_week_cal_collapse_down(p, pos+1);
+                       break;
+               case 6:
+                       __cal_week_cal_expand_up_2(p, pos);
+                       __cal_week_cal_collapse_up(p, pos-1);
+                       __cal_week_cal_collapse_up(p, pos-4);
+                       break;
+               default:
+                       break;
+               }
+       }
+       p->expanded_week_day = pos;
+}
+
+static void __cal_week_cal_unexpand_week_day(cal_week_data *p, int pos)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(-1 == pos, "pos is -1");
+       c_retm_if(p->expanded_week_day != pos, "Week day was unexpanded.");
+
+       __cal_week_cal_expand_default(p, pos);
+       cal_util_emit_signal(CAL_UTIL_GET_EDJ_DATA(p->ly), "show,%d,more", pos);
+
+       if (!p->ad->is_landscape_mode) {
+               switch (pos) {
+               case 0:
+                       __cal_week_cal_expand_default(p, pos);
+                       __cal_week_cal_expand_default(p, pos+2);
+                       __cal_week_cal_expand_default(p, pos+4);
+                       break;
+               case 1:
+                       __cal_week_cal_expand_default(p, pos);
+                       __cal_week_cal_expand_default(p, pos+2);
+                       __cal_week_cal_expand_default(p, pos+4);
+                       __cal_week_cal_expand_default(p, pos+5);
+                       break;
+               case 2:
+                       __cal_week_cal_expand_default(p, pos-2);
+                       __cal_week_cal_expand_default(p, pos);
+                       __cal_week_cal_expand_default(p, pos+2);
+                       break;
+               case 3:
+                       __cal_week_cal_expand_default(p, pos-2);
+                       __cal_week_cal_expand_default(p, pos);
+                       __cal_week_cal_expand_default(p, pos+2);
+                       __cal_week_cal_expand_default(p, pos+3);
+                       break;
+               case 4:
+                       __cal_week_cal_expand_default(p, pos-4);
+                       __cal_week_cal_expand_default(p, pos-2);
+                       __cal_week_cal_expand_default(p, pos);
+                       break;
+               case 5:
+                       __cal_week_cal_expand_default(p, pos-4);
+                       __cal_week_cal_expand_default(p, pos-2);
+                       __cal_week_cal_expand_default(p, pos);
+                       __cal_week_cal_expand_default(p, pos+1);
+                       break;
+               case 6:
+                       __cal_week_cal_expand_default(p, pos);
+                       __cal_week_cal_expand_default(p, pos-1);
+                       __cal_week_cal_expand_default(p, pos-3);
+                       __cal_week_cal_expand_default(p, pos-5);
+                       break;
+               default:
+                       break;
+               }
+       } else {
+               switch (pos) {
+               case 0:
+               case 1:
+                       __cal_week_cal_expand_default(p, pos+3);
+                       break;
+               case 2:
+                       __cal_week_cal_expand_default(p, pos+3);
+                       __cal_week_cal_expand_default(p, pos+4);
+                       break;
+               case 3:
+               case 4:
+                       __cal_week_cal_expand_default(p, pos-3);
+                       break;
+               case 5:
+                       __cal_week_cal_expand_default(p, pos-3);
+                       __cal_week_cal_expand_default(p, pos+1);
+                       break;
+               case 6:
+                       __cal_week_cal_expand_default(p, pos-4);
+                       __cal_week_cal_expand_default(p, pos-1);
+                       break;
+               default:
+                       break;
+               }
+       }
+       p->expanded_week_day = -1;
+}
+
+
+static void __cal_week_more_event_callback(void *data, Evas_Object *obj, const char *e, const char *src)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_week_data *p = data;
+
+       if (p->ign) {
+               p->ign = 0;
+               ERR("");
+               return;
+       }
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       int pos = atoi(e);
+
+       int d = pos - p->pos_selected;
+
+       cal_util_update_tm_day(&ad->base_tm, d);
+
+       __cal_week_update_select(p, pos);
+
+       if (pos == p->expanded_week_day)
+               __cal_week_cal_unexpand_week_day(p, p->expanded_week_day);
+       else
+               __cal_week_cal_expand_week_day(p, pos);
+}
+
+static void __cal_week_genlist_mouse_up_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!ly, "ly is null");
+
+       cal_week_data *p = data;
+       int pos = (int)evas_object_data_get(ly, "pos");
+       snprintf(signal_source, 31, "wdb/%d/base", pos);
+       __cal_week_mouse_up_event_callback(p, NULL, p->ly, ei);
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->ly), "mouse,up,1", signal_source);
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->ly), "mouse,clicked,1", signal_source);
+}
+
+static void __cal_week_genlist_mouse_down_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!ly, "ly is null");
+
+       cal_week_data *p = data;
+       int pos = (int)evas_object_data_get(ly, "pos");
+       snprintf(signal_source, 31, "wdb/%d/base", pos);
+       __cal_week_mouse_down_event_callback(p, NULL, p->ly, ei);
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->ly), "mouse,down,1", signal_source);
+}
+
+static void __cal_week_genlist_mouse_move_event_callback(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!ly, "ly is null");
+
+       cal_week_data *p = data;
+       __cal_week_mouse_move_event_callback(p, NULL, p->ly, ei);
+}
+
+static void __cal_week_set_more_text(cal_week_data *p, int count, int pos)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(pos < 0, "pos is wrong");
+       c_retm_if(!p->ly, "p->ly is null");
+
+       char part[32] = {0};
+       char text[32] = {0};
+
+       snprintf(part, sizeof part, "wdb/%d/more", pos);
+
+       if (0 < count)
+               snprintf(text, sizeof text, "+%d", count);
+       edje_object_part_text_set(CAL_UTIL_GET_EDJ_DATA(p->ly), part, text);
+}
diff --git a/src/view-main-year.c b/src/view-main-year.c
new file mode 100755 (executable)
index 0000000..9c0c0cc
--- /dev/null
@@ -0,0 +1,953 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <Ecore_X.h>
+
+#include "view.h"
+
+#define ANIMATION_TIME 0.2
+
+typedef enum year_index {
+       CAL_YEAR_PREV_YEAR = -1,
+       CAL_YEAR_CURR_YEAR,
+       CAL_YEAR_NEXT_YEAR,
+}year_index;
+
+static const char *_name = NULL;
+
+typedef struct {
+       const char *name;
+       struct appdata *ad;
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+       Evas_Object *handle_base;
+
+       struct _year* prev_year;
+       struct _year* cur_year;
+       struct _year* next_year;
+
+       Eina_Bool ignore_mouse_down; // block mouse down event during flick
+       int downed;
+       Evas_Coord_Rectangle rect;
+       Evas_Coord_Point down1,down2;
+       Evas_Coord_Point move1,move2;
+
+       int multi_touched;
+       int down_d;
+
+       int pos_selected;
+       int pos_down;
+
+       Evas_Coord_Rectangle mouse_down_position;
+       Evas_Coord_Rectangle mouse_up_position;
+       Evas_Coord_Rectangle pos_to;
+       Ecore_Animator *ani;
+       double ani_start;
+       struct tm tm_to;
+
+       char wday[8][7];//To reduce get text time
+       char month[12][32];//To reduce get text time
+
+       Ecore_Idler* idler; //To make prev & next year object
+
+       Evas_Object* edje_handle[12];
+       Ecore_Idler *idler_for_change_view;
+} cal_view_main_year_data;
+
+struct _year{
+       int year;
+       Evas_Object* image;
+       Evas* evas;
+       Evas_Object* edj;
+       Evas_Object* ly;
+       cal_view_main_year_data *p;
+};
+
+static char signal_source[32];
+static struct _year* __cal_year_create_year_object(Evas_Object* parent, cal_view_main_year_data* p, enum year_index);
+static void __cal_year_delete_year_object(struct _year* y);
+static void __cal_year_mouse_up(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_year_mouse_down(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_year_mouse_move(void *data, Evas *e, Evas_Object *ly, void *ei);
+static void __cal_year_update_select(struct _year *y, int tm_mon);
+static void __cal_year_delete_edje_handle(cal_view_main_year_data* p);
+
+static inline void __cal_year_stop_animation(cal_view_main_year_data *p)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       if (p->ani)
+               ecore_animator_del(p->ani);
+
+       p->ani = NULL;
+}
+
+static void __cal_year_make_wday_text(cal_view_main_year_data* p);
+static void __cal_year_make_month_text(cal_view_main_year_data* p);
+static void __cal_year_set_wday_text(Evas_Object *month, int start);
+
+static void __cal_year_text_refresh_callback(void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_view_main_year_data *p = data;
+
+       cal_main_update_title_text(p->ad);
+
+       __cal_year_make_month_text(p);
+       __cal_year_make_wday_text(p);
+
+       int i;
+       for (i = 0; i < 12; i++)        {
+               edje_object_part_text_set(p->cur_year->edj, cal_util_get_part_text("mb/%d/text", i), p->month[i]);
+               __cal_year_set_wday_text(evas_object_data_get(p->cur_year->ly, cal_util_get_part_text("mb/%d/sw", i)), p->ad->wday_start);
+       }
+
+       elm_object_text_set(p->ad->new_event_button, S_("IDS_COM_BODY_CREATE"));
+
+}
+
+static void __cal_year_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "Input parameter is null.");
+
+       cal_view_main_year_data *p = data;
+
+       __cal_year_delete_edje_handle(p);
+
+       __cal_year_stop_animation(p);
+
+       if (p->prev_year)
+               __cal_year_delete_year_object(p->prev_year);
+       if (p->cur_year)
+               __cal_year_delete_year_object(p->cur_year);
+       if (p->next_year)
+               __cal_year_delete_year_object(p->next_year);
+
+       if (p->idler)
+               ecore_idler_del(p->idler);
+
+       if (p->idler_for_change_view)
+               ecore_idler_del(p->idler_for_change_view);
+
+       cal_lang_manager_remove_callback(__cal_year_text_refresh_callback, p);
+
+       free(p);
+}
+
+static void __cal_year_set_month_text(struct _year* y)
+{
+       c_retm_if(!y, "Input parameter is null.");
+
+       int i;
+       cal_view_main_year_data* p = y->p;
+       c_retm_if(!p, "");
+
+
+       for (i = 0; i < 12; i++)
+               edje_object_part_text_set(y->edj, cal_util_get_part_text("mb/%d/text", i), p->month[i]);
+}
+
+static void __cal_year_make_month_text(cal_view_main_year_data* p)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       int i;
+       struct tm tm;
+
+       tm = p->ad->base_tm;
+       cal_util_update_tm_month(&tm, tm.tm_mon*(-1));
+
+       for(i = 0; i < 12 ; i++)
+       {
+               cal_util_get_time_text(p->month[i], 31, CAL_UTIL_DATE_FORMAT_4, NULL, &tm);
+               cal_util_update_tm_month(&tm, 1);
+       }
+}
+
+static void __cal_year_make_wday_text(cal_view_main_year_data* p)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       int i;
+       struct tm tm;
+
+       tm = p->ad->base_tm;
+       cal_util_update_tm_day(&tm, tm.tm_wday*(-1));
+
+       for(i = 0; i < 7 ; i++) {
+               cal_util_get_time_text(p->wday[i], 7, CAL_UTIL_DATE_FORMAT_17, NULL, &tm);
+               cal_util_update_tm_day(&tm, 1);
+       }
+}
+
+static void __cal_year_set_wday_text(Evas_Object *month, int start)
+{
+       c_retm_if(!month, "Input parameter is null.");
+
+       int i;
+
+       cal_view_main_year_data* p = CAL_UTIL_GET_PRIV_DATA(month);
+
+       for (i = 0; i < 7; i++)
+       {
+               edje_object_part_text_set(month, cal_util_get_part_text("sdh/%d/text", i), p->wday[(i+start)%7]);
+
+               if((i+start)%7 == 6)
+               {
+                       cal_util_emit_signal(month, "satday,%d", i);
+                       continue;
+               }
+
+               if((i+start)%7 == 0)
+                       cal_util_emit_signal(month, "sunday,%d", i);
+       }
+}
+
+static void __cal_year_update_today(Evas_Object *ly, int tm_year, int tm_mon, int tm_mday, int pos)
+{
+       c_retm_if(!ly, "Input parameter is null.");
+
+       cal_view_main_year_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!p, "CAL_UTIL_GET_PRIV_DATA returned null.");
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "p->ad is null.");
+
+       if (tm_year == ad->today_tm.tm_year && tm_mon == ad->today_tm.tm_mon && tm_mday == ad->today_tm.tm_mday)
+               cal_util_emit_signal(ly, "today,%d", pos-1);
+}
+
+
+static void __cal_year_fill_month(Evas_Object *month, int tm_year, int tm_mon, int *first_wday, int start_wday)
+{
+       c_retm_if(!month, "Input parameter is null.");
+
+       int i, day, wday;
+       int max;
+
+       wday = *first_wday;
+       max = CAL_UTIL_GET_WDAY(wday - start_wday);
+
+       for (i = 0; i < max; i++)
+       {
+               cal_util_set_text(month, cal_util_get_part_text("sdb/%d/text", i), "");
+       }
+
+       day = 1;
+       max = i + cal_util_get_max_days(tm_year, tm_mon);
+       for (; i < max; i++)
+       {
+               cal_util_set_text(month, cal_util_get_part_text("sdb/%d/text", i), "%d", day);
+
+               if (wday == 6)
+                       cal_util_emit_signal(month, "satday,%d", i);
+               else if (wday == 0)
+                       cal_util_emit_signal(month, "sunday,%d", i);
+
+               wday = CAL_UTIL_GET_WDAY(wday + 1);
+
+               __cal_year_update_today(month, tm_year, tm_mon, day-1, i);
+
+               day++;
+       }
+
+       for (; i < 42; i++)
+       {
+               cal_util_set_text(month, cal_util_get_part_text("sdb/%d/text", i), "");
+       }
+
+       *first_wday = wday;
+}
+
+static Evas_Object* __cal_year_create_month(struct _year *y, int tm_mon, int *wday, int start)
+{
+       c_retv_if(!y, NULL);
+
+       Evas_Object *month = edje_object_add(y->evas);
+
+       Eina_Bool r = edje_object_file_set(month, EDJ_FILE, "main/year/cal");
+       if (!r) {
+
+               ERR("edje_object_file_set(%p, %s, %s) is failed.", month, EDJ_FILE, "main/year/cal");
+
+               evas_object_del(month);
+
+               return NULL;
+       }
+
+       evas_object_data_set(month,"priv",y->p);
+
+       __cal_year_set_wday_text(month, start);
+
+       __cal_year_fill_month(month, y->year, tm_mon, wday, start);
+
+       return month;
+}
+
+static int __cal_year_get_first_wday(int tm_year)
+{
+       struct tm tm;
+       time_t t;
+
+       t = time(NULL);
+       localtime_r(&t, &tm);
+
+       tm.tm_year = tm_year;
+       tm.tm_mon = 0;
+       tm.tm_mday = 1;
+
+       t = mktime(&tm);
+       c_retvm_if(t == -1, 0, "mktime() returned -1.");
+
+       return tm.tm_wday;
+}
+
+static void __cal_year_fill_months(struct _year* y)
+{
+       c_retm_if(!y, "Input parameter is null.");
+
+       int i;
+       Evas_Object *month;
+       int first_wday;
+       cal_view_main_year_data* p = y->p;
+
+       first_wday = __cal_year_get_first_wday(y->year);
+
+       __cal_year_make_wday_text(p);
+
+       for (i = 0; i < 12; i++)
+       {
+               month = __cal_year_create_month(y, i, &first_wday, p->ad->wday_start);
+               c_retm_if(!month, "");
+
+               edje_object_part_swallow(y->edj, cal_util_get_part_text("mb/%d/sw", i), month);
+
+               evas_object_data_set(y->ly, cal_util_get_part_text("mb/%d/sw", i), month);
+       }
+}
+
+static inline void __cal_year_move_year_objects(cal_view_main_year_data *p, Evas_Coord x)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       if (x < 0) {
+
+               if (!p->next_year) {
+
+                       p->next_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_NEXT_YEAR);
+                       c_retm_if(!p->next_year, "__cal_year_create_year_object(p->ly, p, CAL_YEAR_NEXT_YEAR) returned null");
+               }
+
+               evas_object_move(p->cur_year->image, x, p->rect.y);
+
+               evas_object_move(p->next_year->image, x + p->rect.w, p->rect.y);
+       } else {
+
+               if (!p->prev_year) {
+
+                       p->prev_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_PREV_YEAR);
+                       c_retm_if(!p->prev_year, "__cal_year_create_year_object(p->ly, p, CAL_YEAR_PREV_YEAR) returned null");
+               }
+
+               evas_object_move(p->cur_year->image, x, p->rect.y);
+
+               evas_object_move(p->prev_year->image, x -p->rect.w, p->rect.y);
+       }
+
+       evas_object_move(p->handle_base, x, p->rect.y);
+}
+
+static void __cal_year_image_object_mouse_down_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       cal_view_main_year_data *p = data;
+       struct _year *y = p->cur_year;
+
+       int index = (int)evas_object_data_get(obj, "index");
+
+       snprintf(signal_source, 31, "mb/%d/base", index);
+       edje_object_signal_emit(y->edj, "mouse,down,1", signal_source);
+
+       p->pos_down = index;
+}
+
+static void __cal_year_image_object_mouse_up_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       cal_view_main_year_data *p = data;
+       struct _year *y = p->cur_year;
+       struct appdata* ad = p->ad;
+
+       snprintf(signal_source, 31, "mb/%d/base", p->pos_down);
+       edje_object_signal_emit(y->edj, "mouse,up,1", signal_source);
+
+       if (p->ignore_mouse_down) {
+               p->ignore_mouse_down = EINA_FALSE;
+               return;
+       }
+
+       if (p->multi_touched)
+               return;
+
+       if (!p->downed)
+               return;
+
+       cal_util_update_tm_month(&ad->base_tm, p->pos_down - ad->base_tm.tm_mon);
+
+       cal_main_change_view(p->parent, CV_MONTH);
+}
+
+static void __cal_year_delete_edje_handle(cal_view_main_year_data* p)
+{
+       c_retm_if(!p, "p is null.");
+
+       int i = 0;
+
+       for (i = 0 ; i < 12 ; i++)
+       {
+               c_retm_if(!p->edje_handle[i], "p->edje_handle[%d] is null.", i);
+
+               evas_object_event_callback_del(p->edje_handle[i], EVAS_CALLBACK_MOUSE_DOWN, __cal_year_image_object_mouse_down_callback);
+               evas_object_event_callback_del(p->edje_handle[i], EVAS_CALLBACK_MOUSE_UP, __cal_year_image_object_mouse_up_callback);
+
+               evas_object_del(p->edje_handle[i]);
+       }
+
+       c_retm_if(!p->handle_base, "p->handle_base is null.");
+       evas_object_del(p->handle_base);
+}
+
+static inline int __cal_year_update_view(cal_view_main_year_data *p)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!p, -1, "Input parameter is null.");
+       c_retvm_if(!p->ad, -1, "p->ad is null.");
+
+       struct appdata* ad = p->ad;
+
+       int d = p->tm_to.tm_year - p->ad->base_tm.tm_year;
+
+       ad->base_tm = p->tm_to;
+
+       cal_util_emit_signal(p->cur_year->edj, "unselect,%d", p->pos_selected);
+
+       elm_object_part_content_unset(p->ly, "content");
+       elm_object_part_content_unset(p->ly, "content/left");
+       elm_object_part_content_unset(p->ly, "content/right");
+
+       if (d > 0) {
+
+               if (p->prev_year) {
+                       evas_object_del(p->prev_year->image);
+                       __cal_year_delete_year_object(p->prev_year);
+               }
+
+               p->prev_year = p->cur_year;
+               p->cur_year = p->next_year;
+               p->next_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_NEXT_YEAR);
+
+       } else if ( d < 0) {
+
+               if (p->next_year) {
+                       evas_object_del(p->next_year->image);
+                       __cal_year_delete_year_object(p->next_year);
+               }
+
+               p->next_year = p->cur_year;
+               p->cur_year = p->prev_year;
+               p->prev_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_PREV_YEAR);
+       }
+
+       elm_object_part_content_set(p->ly, "content", p->cur_year->image);
+
+       if (p->prev_year)
+               elm_object_part_content_set(p->ly, "content/left", p->prev_year->image);
+
+       if (p->next_year)
+               elm_object_part_content_set(p->ly, "content/right", p->next_year->image);
+
+       cal_main_update_title_text(p->ad);
+
+       __cal_year_update_select(p->cur_year, ad->base_tm.tm_mon);
+
+       __cal_year_move_year_objects(p, 0);
+
+       if (p->ignore_mouse_down)
+               p->ignore_mouse_down = EINA_FALSE;
+
+       return 0;
+}
+
+static Eina_Bool __cal_year_animation(void *data, double pos)
+{
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "Input parameter is null.");
+
+       cal_view_main_year_data *p = data;
+       Evas_Coord dx;
+
+       dx = (p->mouse_up_position.x - p->pos_to.x) * cal_util_nsin(1.0 - pos);
+       __cal_year_move_year_objects(p, p->pos_to.x + dx);
+
+       if ((dx + p->pos_to.x)%p->rect.w == 0)
+       {
+               p->ani = NULL;
+               __cal_year_update_view(p);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+static inline void __cal_year_start_animation(cal_view_main_year_data *p)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       if (p->mouse_up_position.x == p->pos_to.x)
+               return;
+
+       if (!p->ani)
+               p->ani = ecore_animator_timeline_add(ANIMATION_TIME, __cal_year_animation, p);
+
+       p->ani_start = ecore_time_get();
+}
+
+static void inline __cal_year_set_go(cal_view_main_year_data *p, int d)
+{
+       c_retm_if(!p, "Input parameter is null.");
+
+       int r = 0;
+
+       p->tm_to = p->ad->base_tm;
+       p->pos_to = p->rect;
+
+       if(d != 0)
+               r = cal_util_update_tm_year(&p->tm_to, d);
+       if (r == -1)
+               return;
+
+       p->pos_to.x = p->rect.w * (d * -1);
+}
+
+static void __cal_year_mouse_up(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       Evas_Event_Mouse_Up *ev = ei;
+       cal_view_main_year_data *p = data;
+
+       if (!p->downed)
+               return;
+
+       p->downed = 0;
+
+       cal_util_get_geometry(&p->mouse_up_position, p->cur_year->image);
+
+       int th = cal_util_get_flick_distance_threshold();
+       if (p->mouse_up_position.x > th)
+               __cal_year_set_go(p, -1);
+       else if (p->mouse_up_position.x < -th)
+               __cal_year_set_go(p, 1);
+       else
+       {
+               Evas_Coord x = ev->canvas.x - p->down1.x;
+
+               if (x < 3 && x > -3 && p->mouse_up_position.x ==0)
+                       return;
+
+               __cal_year_set_go(p, 0);
+       }
+
+       __cal_year_start_animation(p);
+}
+
+static void __cal_year_mouse_move(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       cal_view_main_year_data *p = data;
+
+       Evas_Event_Mouse_Move *ev = ei;
+       Evas_Coord x;
+       static int cnt = 0;
+
+       p->move1.x = ev->cur.canvas.x;
+       p->move1.y = ev->cur.canvas.y;
+
+       if (!p->downed || p->multi_touched)
+               return;
+
+       cnt++;
+       if ((cnt & 0x7) != 0) // Workaround
+               return;
+
+       x = p->mouse_down_position.x + p->move1.x - p->down1.x;
+
+       __cal_year_move_year_objects(p, x);
+
+       p->ignore_mouse_down = EINA_TRUE;
+
+       struct _year *y = p->cur_year;
+       c_ret_if(!y);
+
+       edje_object_signal_emit(y->edj, "mouse,up,1", signal_source);
+
+}
+
+static void __cal_year_mouse_down(void *data, Evas *e, Evas_Object *ly, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       cal_view_main_year_data *p = data;
+       struct _year *y = p->cur_year;
+
+       Evas_Event_Mouse_Down *ev = ei;
+
+       p->down1.x = p->move1.x = ev->canvas.x;
+       p->down1.y = p->move1.y = ev->canvas.y;
+
+       cal_util_get_geometry(&p->mouse_down_position, y->image);
+
+       __cal_year_stop_animation(p);
+
+       p->downed = 1;
+       p->multi_touched = 0;
+}
+
+static void __cal_year_update_select(struct _year *y, int tm_mon)
+{
+       c_retm_if(!y, "Input parameter is null.");
+
+       cal_view_main_year_data* p = y->p;
+
+       if (p->pos_selected != -1)
+               cal_util_emit_signal(y->edj, "unselect,%d", p->pos_selected);
+
+       cal_util_emit_signal(y->edj, "select,%d", tm_mon);
+
+       p->pos_selected = tm_mon;
+}
+
+static Evas_Object *__cal_year_create_image(Evas_Object *parent, Eina_Bool is_landscape_mode)
+{
+       c_retvm_if(!parent, NULL, "Input parameter is null.");
+
+       Evas_Object *img;
+       Evas *e;
+       Ecore_Evas *ee;
+       Evas_Coord w, h;
+
+       ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+
+       if (is_landscape_mode) {
+               w = w + h;
+               h = w - h;
+               w = w -h;
+       }
+
+       e = evas_object_evas_get(parent);
+       ee = ecore_evas_ecore_evas_get(e);
+
+       img = ecore_evas_object_image_new(ee);
+       if (!img)
+               return NULL;
+
+       evas_object_image_alpha_set(img, EINA_TRUE);
+       evas_object_image_size_set(img, w, h);
+       evas_object_image_fill_set(img, 0, 0, w, h);
+
+       evas_object_show(img);
+
+       return img;
+}
+
+static Evas_Object *__cal_year_add_edje(Evas *e, const char *grp, Evas_Coord w, Evas_Coord h)
+{
+       c_retv_if(!e, NULL);
+
+       Evas_Object *eo = edje_object_add(e);
+       c_retv_if(!eo, NULL);
+
+       Eina_Bool r = edje_object_file_set(eo, EDJ_FILE, grp);
+       if (!r) {
+
+               ERR("edje_object_file_set(%p, %s, %s) is failed.", eo, EDJ_FILE, grp);
+
+               evas_object_del(eo);
+
+               return NULL;
+       }
+
+       evas_object_freeze_events_set(eo, EINA_TRUE);
+
+       evas_object_resize(eo, w, h);
+       evas_object_move(eo, 0, 0);
+       evas_object_show(eo);
+
+       return eo;
+}
+
+static void __cal_year_image_object_resize_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       struct _year *y = data;
+       c_retm_if(!y->edj, "y->edj is null.");
+       c_retm_if(!y->p, "y->p is null.");
+
+       cal_view_main_year_data *p = y->p;
+
+       cal_util_get_geometry(&p->rect, obj);
+
+       evas_object_resize(y->edj, p->rect.w, p->rect.h);
+       evas_object_move(y->edj, 0, 0);
+}
+
+static void __cal_year_image_object_move_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "Input parameter is null.");
+
+       struct _year *y = data;
+
+       evas_object_move(y->edj, 0, 0);
+}
+
+static void __cal_year_delete_year_object(struct _year* y)
+{
+       CAL_FN_START;
+
+       c_retm_if(!y, "Input parameter is null.");
+
+       evas_object_del(y->edj);
+
+       free(y);
+}
+
+static struct _year* __cal_year_create_year_object(Evas_Object* ly, cal_view_main_year_data* p, enum year_index year)
+{
+       c_retvm_if(!ly, NULL, "Input parameter is null.");
+       c_retvm_if(!p, NULL, "Input parameter is null.");
+       c_retvm_if(!p->ad, NULL, "p->ad is null.");
+
+       struct appdata* ad = p->ad;
+       c_retv_if(!ad, NULL);
+
+       struct tm tm = ad->base_tm;
+
+       int r = cal_util_update_tm_year(&tm, year);
+       c_retvm_if(r < 0, NULL, "cal_util_update_tm_year(%d, %d is failed", tm.tm_year, year);
+
+       struct _year* y = calloc(1, sizeof(struct _year));
+       c_retv_if(!y, NULL);
+
+       y->image = __cal_year_create_image(ly, ad->is_landscape_mode);
+
+       y->evas = ecore_evas_object_evas_get(y->image);
+
+       y->edj = __cal_year_add_edje(y->evas, p->name, p->rect.w, p->rect.h);
+
+       y->p = p;
+
+       if(year > 0)
+               elm_object_part_content_set(ly, "content/right", y->image);
+       else if( year < 0)
+               elm_object_part_content_set(ly, "content/left", y->image);
+       else
+               elm_object_part_content_set(ly, "content", y->image);
+
+       y->ly = ly;
+       y->year = tm.tm_year;
+
+       evas_object_event_callback_add(y->image, EVAS_CALLBACK_RESIZE, __cal_year_image_object_resize_callback, y);
+       evas_object_event_callback_add(y->image, EVAS_CALLBACK_MOVE, __cal_year_image_object_move_callback, y);
+
+       __cal_year_set_month_text(y);
+       __cal_year_fill_months(y);
+
+       return y;
+}
+
+static void __cal_year_create_edje_handle(cal_view_main_year_data* p)
+{
+       c_retm_if(!p, "p is null.");
+
+       Evas * e = evas_object_evas_get(p->ly);
+       int i = 0;
+       Evas_Object *ly = NULL;
+       Evas_Object *handle = NULL;
+       char part[16];
+
+       if (!p->ad->is_landscape_mode) {
+               ly = cal_util_add_layout(p->ly, "year/edje/handle");
+       } else {
+               ly = cal_util_add_layout(p->ly, "year/edje/handle/l");
+       }
+
+       c_retm_if(!ly, "ly is null.");
+
+       for (i = 0 ; i < 12 ; i++)
+       {
+               handle = evas_object_rectangle_add(e);
+               c_retm_if(!handle, "evas_object_rectangle_add returned null.");
+
+               evas_object_color_set(handle, 0, 0, 0, 0);
+               evas_object_data_set(handle, "index", (void*)i);
+               snprintf(part, sizeof(part), "handle/%d/sw", i);
+               elm_object_part_content_set(ly, part, handle);
+
+               evas_object_event_callback_add(handle, EVAS_CALLBACK_MOUSE_DOWN, __cal_year_image_object_mouse_down_callback, p);
+               evas_object_event_callback_add(handle, EVAS_CALLBACK_MOUSE_UP, __cal_year_image_object_mouse_up_callback, p);
+
+               p->edje_handle[i] = handle;
+       }
+
+       elm_object_part_content_set(p->ly, "edje/handle", ly);
+
+       p->handle_base = ly;
+
+}
+
+Evas_Object* cal_year_create_view(struct appdata *ad, Evas_Object *main)
+{
+       c_retvm_if(!ad, NULL, "Input parameter is null.");
+       c_retvm_if(!main, NULL, "Input parameter is null.");
+
+       cal_view_main_year_data *p;
+       Evas_Object* ly = NULL;
+
+       CAL_CALLOC(p, 1, cal_view_main_year_data);
+
+       if (!ad->is_landscape_mode) {
+               p->name = _name = "main/year/months";
+       } else {
+               p->name = _name = "main/year/months/l";
+       }
+
+       p->ad = ad;
+       p->parent = main;
+
+       ad->tapbar_focus_view = CV_YEAR;
+
+       edje_object_part_geometry_get(CAL_UTIL_GET_EDJ_DATA(ad->main), "cont", NULL, NULL, &p->rect.w, &p->rect.h);
+
+       memset(p->wday, 0, 8*7);
+       memset(p->month, 0, 32*12);
+
+       __cal_year_make_month_text(p);
+
+       ly = cal_util_add_layout(p->ad->naviframe, "year/layout");
+       if (!ly)
+       {
+               free(p);
+               return NULL;
+       }
+
+       evas_object_data_set(ly, "priv", p);
+       p->ly = ly;
+
+       p->pos_selected = -1;
+
+       __cal_year_create_edje_handle(p);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_year_delete_layout, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_DOWN, __cal_year_mouse_down, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_UP, __cal_year_mouse_up, p);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOUSE_MOVE, __cal_year_mouse_move, p);
+
+       cal_lang_manager_add_callback(__cal_year_text_refresh_callback, p);
+
+       return p->ly;
+}
+
+static Eina_Bool __cal_year_create_year_with_idler(void* data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "Input param is null.");
+
+       cal_view_main_year_data* p = data;
+
+       c_retvm_if(!p->ad, ECORE_CALLBACK_CANCEL, "p->ad is null.");
+
+       if(p->prev_year)
+               __cal_year_delete_year_object(p->prev_year);
+
+       p->prev_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_PREV_YEAR);
+       c_retvm_if(!p->prev_year, ECORE_CALLBACK_CANCEL, "__cal_year_create_year_object returned null.");
+
+       if(p->next_year)
+               __cal_year_delete_year_object(p->next_year);
+
+       p->next_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_NEXT_YEAR);
+       c_retvm_if(!p->next_year, ECORE_CALLBACK_CANCEL, "__cal_year_create_year_object returned null.");
+
+       p->idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_year_update_current_year(cal_view_main_year_data* p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "Input parameter is null.");
+
+       p->cur_year = __cal_year_create_year_object(p->ly, p, CAL_YEAR_CURR_YEAR);
+       c_retm_if(!p->cur_year, "__cal_year_create_year_object returned null.");
+
+       elm_object_part_content_set(p->ly, "content", p->cur_year->image);
+}
+
+void cal_year_update_view(Evas_Object *ly)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ly, "Input parameter is null.");
+
+       cal_view_main_year_data *p;
+       struct appdata *ad;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!p, "p is null.");
+
+       ad = p->ad;
+       c_retm_if(!ad, "p->ad is null.");
+
+       if (!p || CAL_STRCMP(p->name, _name)) {
+               ERR("update year view: Invalid object");
+               return;
+       }
+
+       __cal_year_update_current_year(p);
+
+       if(p->idler)
+       {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       p->idler = ecore_idler_add(__cal_year_create_year_with_idler, (void*)p);
+
+       __cal_year_update_select(p->cur_year, ad->base_tm.tm_mon);
+}
diff --git a/src/view-main.c b/src/view-main.c
new file mode 100755 (executable)
index 0000000..9671dec
--- /dev/null
@@ -0,0 +1,999 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <vconf.h>
+
+#include "view.h"
+#include "cld-images.h"
+#include "edit-view.h"
+
+#define MAX_TIME_LENGTH 128
+
+typedef struct {
+       struct appdata *ad;
+       Evas_Object *ly; // self
+
+       Evas_Object *content;
+
+       Evas_Object *tabbar_button;
+
+       Evas_Object *title; /* title layout */
+       Evas_Object *title_landscape; /* title layout */
+
+       Ecore_Timer *down_timer;
+       double intval, intval_init;
+       int delta;
+       Ecore_Idler* idler;
+
+       cal_quick_add *quick_add;
+
+       Evas_Object *ctx_tabbar;
+
+       Evas_Object *select_date;
+
+       Evas_Object *popup;
+}cal_main_data;
+
+struct _tabbar_item {
+       enum cld_view view;
+       const char *msgid;
+       const char *title;
+       Evas_Object* (*create)(struct appdata *ad, Evas_Object *ly);
+       void (*update)(Evas_Object *ly);
+       Elm_Object_Item *item;
+};
+
+typedef struct {
+       Elm_Object_Item *it;  // Genlist Item pointer
+       cal_main_data *main_data;
+       _calendar_task_sort_type sort_type;
+}cal_main_view_by_item_data;
+
+
+static struct _tabbar_item tabbar_items[] = {
+       [CV_YEAR] = {
+               CV_YEAR,
+               NULL,
+               CAL_UTIL_DATE_FORMAT_5,
+               cal_year_create_view,
+               cal_year_update_view,
+               NULL,
+       },
+       [CV_MONTH] = {
+               CV_MONTH,
+               NULL,
+               CAL_UTIL_DATE_FORMAT_6,
+               cal_month_create_view,
+               cal_month_update_view,
+               NULL,
+       },
+       [CV_WEEK] = {
+               CV_WEEK,
+               N_("IDS_CLD_BODY_WEEK"),
+               CAL_UTIL_DATE_FORMAT_6,
+               cal_week_create_view,
+               cal_week_update_view,
+               NULL,
+               },
+       [CV_DAY] = {
+               CV_DAY,
+               NULL,
+               CAL_UTIL_DATE_FORMAT_7,
+               cal_day_create_view,
+               cal_day_update_view,
+               NULL,
+       },
+       [CV_LIST] = {
+               CV_LIST,
+               NULL,
+               NULL,
+               cal_list_create_view,
+               cal_list_update_view,
+               NULL,
+       },
+       [CV_TODO] = {
+               CV_TODO,
+               NULL,
+               NULL,
+               cal_todo_create_view,
+               cal_todo_update_view,
+               NULL,
+       },
+};
+static char *__cal_main_get_view_by_label(void *data, Evas_Object *obj, const char *part);
+static void __cal_main_get_view_by_item_delete(void *data, Evas_Object *obj);
+static void __cal_main_set_title_text_naviframe( struct appdata *ad, enum cld_view v);
+
+static Elm_Genlist_Item_Class itc_1text_item = {
+       .item_style = "1text",
+       .func.text_get = __cal_main_get_view_by_label,
+       .func.del = __cal_main_get_view_by_item_delete,
+};
+static void __cal_main_today_button_callback(void *data, Evas_Object* obj, void* event_info);
+
+static Eina_Bool __cal_main_ug_callback(void *data)
+{
+       c_retv_if(!data, EINA_FALSE);
+
+       cal_main_data *p = data;
+
+       elm_object_disabled_set(p->ad->new_event_button, EINA_FALSE);
+
+       p->ad->ug = NULL;
+
+       if (p->ad->current_tab == CV_DAY)
+               cal_day_change_content_display_status(p->content);
+
+       return EINA_FALSE;
+}
+
+static void __cal_main_create_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       Evas_Object *ly = data;
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_ret_if(!main_data);
+
+       struct appdata *ad = main_data->ad;
+       c_ret_if(!ad);
+
+       ad->base_hour = -1;
+       ad->cid = 0;
+
+       calendar_record_h record = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if(ad->tapbar_focus_view == CV_TODO)
+       {
+               error = calendar_record_create(_calendar_todo._uri, &record);
+               ERR("TODO");
+       }
+       else    {
+               int create_event_mode = 0;
+               int ret = vconf_get_int(CAL_VCONFKEY_CREATE_EVENT_MODE, &create_event_mode);
+               c_warn_if(ret, "vconf_get_int(CAL_VCONFKEY_CREATE_EVENT_MODE, &value) is failed");
+
+               if (create_event_mode)
+               {
+                       error = calendar_record_create(_calendar_event._uri, &record);
+                       ERR("EVENT");
+               }
+               else
+               {
+                       error = calendar_record_create(_calendar_todo._uri, &record);
+                       ERR("TODO");
+
+               }
+       }
+
+       c_retm_if(error != CALENDAR_ERROR_NONE, "calendar_record_create() is failed(%x)", error);
+
+       cal_edit_create_view(main_data->ad, record, __cal_main_ug_callback, main_data);
+
+       if (main_data->ad->current_tab == CV_DAY)
+               cal_day_change_content_display_status(main_data->content);
+
+       elm_object_disabled_set(obj, EINA_TRUE);
+}
+
+static Eina_Bool __cal_main_popup_idler_callback(void *data)
+{
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       cal_main_data *p = data;
+
+       if (p->popup) {
+               evas_object_del(p->popup);
+               p->popup = NULL;
+       }
+
+       p->idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_main_view_by_popup_list_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_main_view_by_item_data *item_data = data;
+       cal_main_data *main_data  = item_data->main_data;
+       c_retm_if(!main_data, "main_data is null");
+
+       Elm_Object_Item *item = elm_genlist_selected_item_get(obj);
+       c_retm_if(!item, "elm_genlist_selected_item_get() returned null");
+
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+       //main_data->ad->todo_sort_type = item_data->order_type;
+
+       if (main_data->idler) {
+               ecore_idler_del(main_data->idler);
+               main_data->idler = NULL;
+       }
+
+       main_data->idler = ecore_idler_add(__cal_main_popup_idler_callback, main_data);
+
+       cal_todo_update_view(main_data->content);
+}
+
+static void __cal_main_get_view_by_item_delete(void *data, Evas_Object *obj)
+{
+       c_retm_if(!data, "data  is null");
+       cal_main_view_by_item_data *item_data = data;
+       free(item_data);
+       return;
+}
+
+static char *__cal_main_get_view_by_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data  is null");
+
+       cal_main_view_by_item_data *item_data = data;
+       if (!CAL_STRCMP(part, "elm.text"))
+       {
+               if (item_data->sort_type == _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC) {
+                       return strdup(C_("IDS_CLD_BODY_DUE_DATE"));
+               } else if (item_data->sort_type == _CALENDAR_TASK_SORT_TYPE_PRIORITY_ASC) {
+                       return strdup(C_("IDS_CLD_BODY_PRIORITY"));
+               } else if (item_data->sort_type == _CALENDAR_TASK_SORT_TYPE_STATUS_ASC) {
+                       return strdup(C_("IDS_CST_POP_STATUS"));
+               }
+
+               return NULL;
+       }
+       return NULL;
+}
+
+static void __cal_main_view_popup_append_genlist_item(Evas_Object *genlist, cal_main_data *main_data, _calendar_task_sort_type sort_type)
+{
+       c_retm_if(!main_data, "main_data is null");
+       c_retm_if(!genlist, "genlist is null");
+
+       cal_main_view_by_item_data *item_data = calloc(1, sizeof(cal_main_view_by_item_data));
+       c_retm_if(!item_data, "item_data is null.");
+       item_data->main_data = main_data;
+       item_data->sort_type = sort_type;
+       item_data->it = elm_genlist_item_append(genlist, &itc_1text_item, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_main_view_by_popup_list_sel, item_data);
+       c_retm_if(!item_data->it, "item_data->it is null");
+}
+
+static Evas_Object *__cal_main_view_by_popup(void *data)
+{
+       c_retvm_if(!data, NULL, "data  is null");
+       cal_main_data *main_data = (cal_main_data *)data;
+
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+
+       popup = cal_util_add_popup(main_data->ad->win, "liststyle", C_("IDS_CLD_BODY_VIEW"), NULL,
+               NULL, NULL, S_("IDS_COM_BODY_CLOSE"), NULL);
+       c_retvm_if(!popup, NULL, "popup is null");
+
+       genlist = elm_genlist_add(popup);
+       if (!genlist) {
+               ERR("elm_genlist_add(popup) returned null");
+               evas_object_del(popup);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       __cal_main_view_popup_append_genlist_item(genlist, main_data, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);
+
+       __cal_main_view_popup_append_genlist_item(genlist, main_data, _CALENDAR_TASK_SORT_TYPE_PRIORITY_ASC);
+
+       __cal_main_view_popup_append_genlist_item(genlist, main_data, _CALENDAR_TASK_SORT_TYPE_STATUS_ASC);
+
+       elm_object_content_set(popup, genlist);
+       evas_object_show(genlist);
+
+       return popup;
+}
+
+static void __cal_main_view_by_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       evas_object_del(obj);
+
+       cal_main_data *main_data = data;
+
+       Evas_Object *popup = __cal_main_view_by_popup(main_data);
+       c_retm_if(!popup, "__cal_main_view_by_popup  returns null");
+
+       main_data->popup = popup;
+
+       evas_object_show(popup);
+}
+
+static void __cal_main_delete_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       evas_object_del(obj);
+
+       cal_main_data *main_data = data;
+
+       Evas_Object *ly_delete = cal_list_delete_view_create(main_data->ly,main_data->ad);
+       c_retm_if(!ly_delete, "ly_delete is null");
+
+       cal_list_delete_update_view(ly_delete);
+}
+
+static void __cal_main_search_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       evas_object_del(obj);
+
+       cal_main_data *main_data = data;
+
+       Evas_Object *ly_search = cal_search_list_create_list(main_data->ad, main_data->ly);
+       c_retm_if(!ly_search, "ly_search is null");
+
+       cal_search_list_update_list(ly_search);
+}
+
+static void __cal_main_account_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       evas_object_del(obj);
+
+       cal_main_data *main_data = data;
+
+       cal_account_create_view(main_data->ad, main_data->ly);
+}
+
+void cal_main_update_title_text(struct appdata *ad)
+{
+       c_ret_if(!ad);
+       c_ret_if(!ad->main_navi_item);
+
+       if (ad->current_view == CV_UNKNOWN)
+               ad->current_view = ad->current_tab;
+
+       Elm_Object_Item* title = ad->main_navi_item;
+       enum cld_view v = ad->current_view;
+
+       if (v == CV_LIST) {
+               elm_object_item_part_text_set(title, "default", S_("IDS_COM_BODY_ALL"));
+       } else if (v == CV_TODO) {
+               elm_object_item_part_text_set(title, "default", C_("IDS_CLD_BODY_TASK"));
+       } else if (v == CV_WEEK) {
+               cal_util_set_item_time_week_text(title, "default", _(tabbar_items[v].title), NULL, &ad->base_tm, ad->wday_start);
+       } else if (v == CV_YEAR || v == CV_MONTH || v == CV_DAY){
+               cal_util_set_item_time_text(title, "default", _(tabbar_items[v].title), NULL, &ad->base_tm);
+       }
+}
+
+static inline void __cal_main_update_title(Evas_Object *ly, enum cld_view v)
+{
+       c_ret_if(!ly);
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_ret_if(!main_data);
+
+       struct appdata *ad = main_data->ad;
+       c_ret_if(!ad);
+
+       if (!ad->is_landscape_mode && tabbar_items[v].title) {
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "show,title", "prog");
+       } else {
+               edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "hide,title", "prog");
+       }
+
+}
+
+static void __cal_main_create_content(Evas_Object *ly, cal_main_data *main_data, enum cld_view v)
+{
+       c_retm_if(!ly, "ly is null");
+       c_retm_if(!main_data, "main_data is null");
+
+
+       struct appdata *ad = main_data->ad;
+
+       if (main_data->content) {
+               elm_object_part_content_unset(ly, "cont");
+               cal_util_delete_evas_object(&main_data->content);
+       }
+
+       if (tabbar_items[v].create) {
+               main_data->content = tabbar_items[v].create(ad, ly);
+               c_ret_if(!main_data->content);
+       }
+
+       elm_object_part_content_set(ly, "cont", main_data->content);
+}
+
+static inline int __cal_main_update_tm(struct tm *t, enum cld_view v, int delta)
+{
+       c_retvm_if(!t, -1, "t is null");
+
+       int r;
+
+       switch (v) {
+       case CV_YEAR:
+               r = cal_util_update_tm_year(t, delta);
+               break;
+       case CV_MONTH:
+               r = cal_util_update_tm_month(t, delta);
+               break;
+       case CV_WEEK:
+               r = cal_util_update_tm_day(t, delta * 7);
+               break;
+       case CV_DAY:
+               r = cal_util_update_tm_day(t, delta);
+               break;
+       case CV_LIST:
+       case CV_TODO:
+               r = 0;
+               break;
+       default:
+               r = -1; // stop timer
+       }
+
+       return r;
+}
+
+static int __cal_main_update_content(cal_main_data *main_data)
+{
+       c_retvm_if(!main_data, -1, "main_data is null");
+
+       struct appdata *ad = main_data->ad;
+       c_retv_if(!ad, -1);
+
+       enum cld_view v = main_data->ad->current_tab;
+
+       struct tm tmp = ad->base_tm;
+       int r = __cal_main_update_tm(&tmp, v, main_data->delta);
+       c_retv_if(r == -1, -1);
+
+       ad->base_tm = tmp;
+
+       __cal_main_set_title_text_naviframe(ad, v);
+
+       if (tabbar_items[v].update)
+               tabbar_items[v].update(main_data->content);
+
+       ad->is_update_view = EINA_FALSE;
+
+       return 0;
+}
+
+static void __cal_main_toolbar_create_new_event_button(struct appdata *ad)
+{
+       if (!ad->new_event_button) {
+               //TODO:i18m
+               ad->new_event_button = cal_util_add_toolbar_button(ad->naviframe, "toolbar_button1", S_("IDS_COM_BODY_CREATE"), __cal_main_create_button_callback, ad->main);
+       }
+}
+
+void cal_main_change_view(Evas_Object *ly, enum cld_view v)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ly);
+       c_ret_if(v < CV_YEAR || v > CV_TODO);
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_ret_if(!main_data);
+
+       struct appdata *ad = main_data->ad;
+       c_ret_if(!ad);
+
+       ad->current_view = v;
+
+       main_data->ad->previous_tab = main_data->ad->current_tab;
+       main_data->ad->current_tab = v;
+
+       __cal_main_create_content(ly, main_data, v);
+
+       __cal_main_update_title(ly, v);
+
+       __cal_main_update_content(main_data);
+
+       CAL_FN_END;
+}
+
+static bool __cal_main_is_same_day(const struct tm* date1, const struct tm* date2)
+{
+       return
+               date1->tm_year == date2->tm_year &&
+               date1->tm_mon == date2->tm_mon &&
+               date1->tm_mday == date2->tm_mday;
+}
+
+static void __cal_main_set_base_tm(cal_main_data *main_data)
+{
+       c_ret_if(!main_data);
+
+       struct appdata *ad = main_data->ad;
+       c_retm_if(!ad, "ad is null");
+
+       if (ad->current_view == CV_LIST) {
+
+               ad->base_tm = ad->today_tm;
+               if (ad->today_item != NULL)
+                       cal_list_scroll_today(ad);
+               else
+                       __cal_main_update_content(main_data);
+
+       } else {
+
+               if (!__cal_main_is_same_day(&ad->base_tm, &ad->today_tm)) {
+                       ad->base_tm = ad->today_tm;
+                       __cal_main_update_content(main_data);
+               }
+
+       }
+}
+
+static void __cal_main_calendar_db_changed_callback(const char* view_uri, void* user_data)
+{
+       cal_main_update_view(user_data);
+}
+
+void cal_main_add_db_changed_callback(struct appdata * ad)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ad);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_add_changed_cb(_calendar_event._uri, __cal_main_calendar_db_changed_callback, ad);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_add_changed_cb() is failed(%x)", error);
+
+       error = calendar_db_add_changed_cb(_calendar_todo._uri, __cal_main_calendar_db_changed_callback, ad);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_add_changed_cb() is failed(%x)", error);
+
+       error = calendar_db_add_changed_cb(_calendar_book._uri, __cal_main_calendar_db_changed_callback, ad);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_add_changed_cb() is failed(%x)", error);
+
+       CAL_FN_END;
+}
+
+void cal_main_remove_db_changed_callback(struct appdata * ad)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ad);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_remove_changed_cb(_calendar_event._uri, __cal_main_calendar_db_changed_callback, ad);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);
+
+       error = calendar_db_remove_changed_cb(_calendar_todo._uri, __cal_main_calendar_db_changed_callback, ad);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);
+
+       error = calendar_db_remove_changed_cb(_calendar_book._uri, __cal_main_calendar_db_changed_callback, ad);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_delete_quick_add(cal_quick_add *quick_add)
+{
+       c_retm_if(!quick_add, "quick_add is null");
+
+       if (quick_add->popup)
+               evas_object_del(quick_add->popup);
+
+       if (quick_add->hold_timer)
+               ecore_timer_del(quick_add->hold_timer);
+
+       free(quick_add);
+}
+
+static void __cal_main_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!obj);
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!main_data);
+
+       cal_main_remove_db_changed_callback(main_data->ad);
+
+       if (main_data->down_timer)
+               ecore_timer_del(main_data->down_timer);
+
+       __cal_main_delete_quick_add(main_data->quick_add);
+
+       if (main_data->popup) {
+               evas_object_del(main_data->popup);
+               main_data->popup = NULL;
+       }
+
+       if (main_data->select_date) {
+               evas_object_del(main_data->select_date);
+               main_data->select_date = NULL;
+       }
+
+       struct appdata *ad = main_data->ad;
+       c_ret_if(!ad);
+
+       ad->main = NULL;
+
+       free(main_data);
+
+       CAL_FN_END;
+}
+
+static Evas_Object *__cal_main_create_main_layout(struct appdata *ad)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ad, NULL);
+
+       int r = 0;
+       cal_main_data *main_data = calloc(1, sizeof(cal_main_data));
+       c_retv_if(!main_data, NULL);
+
+       Evas_Object *ly = cal_util_add_layout(ad->naviframe, "main");
+       if (!ly) {
+               free(main_data);
+               return NULL;
+       }
+
+       main_data->ad = ad;
+       main_data->ly = ly;
+       main_data->intval_init = 0.5;
+       main_data->ad->bt_delete = NULL;
+       evas_object_data_set(ly, "priv", main_data);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_main_delete_layout, NULL);
+
+       c_retv_if(r != 0, NULL);
+
+       CAL_FN_END;
+
+       return ly;
+}
+
+static void __cal_main_today_button_callback(void *data, Evas_Object* obj, void* event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       __cal_main_set_base_tm(data);
+}
+
+static void __cal_main_back_button_clicked_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       struct appdata* ad = (struct appdata*)data;
+
+       elm_win_lower(ad->win);
+}
+
+static void __cal_main_ctx_popup_hide_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       cal_main_data* main_data = data;
+
+       main_data->ctx_tabbar= NULL;
+
+       evas_object_del(obj);
+}
+
+static void __cal_main_ctx_item_selected_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_main_data* main_data = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!main_data);
+
+       struct appdata *ad = main_data->ad;
+       c_ret_if(!ad);
+
+       enum cld_view view = (enum cld_view)data;
+
+       cal_main_change_view(main_data->ly, view);
+
+       evas_object_del(obj);
+       main_data->ctx_tabbar = NULL;
+}
+
+static void __cal_main_add_tabbar_ctx(cal_main_data *main_data)
+{
+       c_ret_if(!main_data);
+       c_ret_if(!main_data->tabbar_button);
+
+       int x, y, w, h;
+
+       Evas_Object *ctx = main_data->ctx_tabbar;
+
+       if (ctx)
+               evas_object_del(ctx);
+
+       main_data->ctx_tabbar = elm_ctxpopup_add(main_data->ad->naviframe);
+       c_ret_if(!main_data->ctx_tabbar);
+
+       ctx = main_data->ctx_tabbar;
+
+       evas_object_data_set(ctx, "priv", main_data);
+
+       evas_object_smart_callback_add(ctx, "dismissed", __cal_main_ctx_popup_hide_callback, main_data);
+       elm_ctxpopup_item_append(ctx, C_("IDS_CLD_BODY_YEAR"), NULL, __cal_main_ctx_item_selected_callback, (void *)CV_YEAR);
+       elm_ctxpopup_item_append(ctx, C_("IDS_CLD_BODY_VIEWBY_MONTH"), NULL, __cal_main_ctx_item_selected_callback, (void *)CV_MONTH);
+       elm_ctxpopup_item_append(ctx, C_("IDS_CLD_BODY_WEEK"), NULL, __cal_main_ctx_item_selected_callback, (void *)CV_WEEK);
+       elm_ctxpopup_item_append(ctx, C_("IDS_CLD_BODY_DAY"), NULL, __cal_main_ctx_item_selected_callback, (void *)CV_DAY);
+       elm_ctxpopup_item_append(ctx, C_("IDS_CLD_BODY_LIST"), NULL, __cal_main_ctx_item_selected_callback, (void *)CV_LIST);
+       elm_ctxpopup_item_append(ctx, C_("IDS_CLD_BODY_TASK"), NULL, __cal_main_ctx_item_selected_callback, (void *)CV_TODO);
+
+       evas_object_geometry_get(main_data->tabbar_button, &x, &y, &w, &h);
+
+       evas_object_move(ctx, x + w/2 , y+(4*h/5));
+
+       elm_ctxpopup_direction_priority_set(ctx, ELM_CTXPOPUP_DIRECTION_DOWN,
+                                                                                                                       ELM_CTXPOPUP_DIRECTION_RIGHT,
+                                                                                                                       ELM_CTXPOPUP_DIRECTION_LEFT,
+                                                                                                                       ELM_CTXPOPUP_DIRECTION_UP);
+       evas_object_show(ctx);
+}
+
+static void __cal_main_tabbar_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_main_data *main_data = data;
+
+       __cal_main_add_tabbar_ctx(main_data);
+}
+
+static void __cal_main_add_tabbar_button( struct appdata *ad)
+{
+       c_ret_if(!ad);
+       c_ret_if(!ad->main);
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ad->main);
+       c_ret_if(!main_data);
+
+       Evas_Object *tabbar_button = cal_util_add_toolbar_button2(ad->naviframe, "title_right_btn", CAL_IMAGES_CHANGE_VIEW, __cal_main_tabbar_button_callback, main_data);
+       c_ret_if(!tabbar_button);
+
+       main_data->tabbar_button = tabbar_button;
+}
+
+static void __cal_main_set_title_text_naviframe( struct appdata *ad, enum cld_view v)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ad);
+
+       cal_main_update_title_text(ad);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_add_today_button( struct appdata *ad)
+{
+       c_ret_if(!ad);
+       c_ret_if(!ad->main);
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ad->main);
+       c_ret_if(!main_data);
+
+       Evas_Object *today_button = cal_util_add_toolbar_button2(ad->naviframe, "title_left_btn", CAL_IMAGES_TODAY, __cal_main_today_button_callback, main_data);
+
+       evas_object_data_set(today_button, "priv", main_data);
+}
+
+static void __cal_main_more_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *main_layout = data;
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(main_layout);
+
+       struct appdata *ad = main_data->ad;
+       c_ret_if(!ad);
+
+       Evas_Object *ctx_popup = elm_ctxpopup_add(ad->naviframe);
+       c_ret_if(!ctx_popup);
+
+       elm_ctxpopup_direction_priority_set(ctx_popup, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP);
+
+       ad->bt_delete = elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_DELETE"), NULL, __cal_main_delete_button_callback, main_data);
+       c_ret_if(!ad->bt_delete);
+
+       if (main_data->ad->current_tab == CV_TODO) {
+               ad->bt_view = elm_ctxpopup_item_append(ctx_popup, C_("IDS_CLD_BODY_VIEW"), NULL, __cal_main_view_by_button_callback, main_data);
+               c_ret_if(!ad->bt_view);
+
+               ad->bt_search = NULL;
+       } else {
+               ad->bt_search = elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_SEARCH"), NULL, __cal_main_search_button_callback, main_data);
+               c_ret_if(!ad->bt_search);
+
+               ad->bt_view = NULL;
+       }
+
+       Elm_Object_Item *item = elm_ctxpopup_item_append(ctx_popup, C_("IDS_CLD_BODY_CALENDARS"), NULL, __cal_main_account_button_callback, main_data);
+       c_ret_if(!item);
+
+       Evas_Coord_Rectangle r = {0};
+
+       cal_util_get_geometry(&r, obj);
+
+       evas_object_move(ctx_popup, r.x + r.w/2, r.y + r.h/2);
+
+       evas_object_show(ctx_popup);
+}
+
+static void __cal_main_set_naviframe( struct appdata *ad)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ad);
+
+       Evas_Object *back_button = elm_button_add(ad->naviframe);
+       c_ret_if(!back_button);
+
+       evas_object_smart_callback_add(back_button, "clicked", __cal_main_back_button_clicked_callback, ad);
+
+       elm_object_style_set(back_button, "naviframe/end_btn/default");
+
+       ad->main_navi_item = elm_naviframe_item_push(ad->naviframe, NULL, back_button, NULL, ad->main, NULL);
+
+       __cal_main_add_tabbar_button(ad);
+
+       __cal_main_add_today_button(ad);
+
+       Evas_Object *more_button = cal_util_add_toolbar_button(ad->naviframe, "toolbar_more_btn", NULL, __cal_main_more_button_callback, ad->main);
+       elm_object_style_set(more_button, "naviframe/more/default");
+
+       __cal_main_toolbar_create_new_event_button(ad);
+
+       CAL_FN_END;
+}
+
+void cal_main_create_view(struct appdata *ad)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad, "data is null");
+
+       c_retm_if(ad->request_view < CV_YEAR && ad->request_view > CV_DETAIL, "request_view is invalid");
+
+       ad->main = __cal_main_create_main_layout(ad);
+       c_retm_if(!ad->main, "ad->main is null");
+
+       cal_main_add_db_changed_callback(ad);
+
+       cal_main_change_view(ad->main, ad->request_view);
+
+       __cal_main_set_naviframe(ad);
+
+       __cal_main_set_title_text_naviframe(ad, ad->request_view);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_set_first_day(struct appdata *ad)
+{
+       c_retm_if(!ad, "ad is null");
+
+       int r,val;
+       r = vconf_get_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, &val);
+       if(0 > r)
+               ad->wday_start = 0;
+       else
+               ad->wday_start = val;
+}
+
+void cal_main_update_view(void *data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       struct appdata* ad = data;
+
+       c_ret_if(!ad->main);
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ad->main);
+       c_ret_if(!main_data);
+
+       if (ad->current_view == CV_UNKNOWN)
+               ad->current_view = main_data->ad->current_tab;
+
+       __cal_main_set_first_day(ad);
+
+       __cal_main_create_content(main_data->ly, main_data, main_data->ad->current_tab);
+
+       __cal_main_update_content(main_data);
+
+       __cal_main_update_title(ad->main, main_data->ad->current_tab);
+
+       CAL_FN_END;
+}
+
+static void __cal_main_update_toolbar(cal_main_data *main_data)
+{
+       c_ret_if(!main_data);
+       c_ret_if(!main_data->ad);
+
+       struct appdata* ad = main_data->ad;
+       c_ret_if(!ad->cbar);
+
+       if (ad->is_landscape_mode) {
+               elm_object_style_set(ad->cbar, "item_horizontal");
+       } else {
+               elm_object_style_set(ad->cbar, "default");
+       }
+}
+
+void cal_main_rotation(void *data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       struct appdata* ad = data;
+
+       c_ret_if(!ad->main);
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ad->main);
+       c_ret_if(!main_data);
+
+       if (main_data->ad->current_tab != CV_LIST && main_data->ad->current_tab != CV_TODO) {
+               __cal_main_create_content(main_data->ly, main_data, main_data->ad->current_tab);
+
+               __cal_main_update_content(main_data);
+       }
+
+       __cal_main_update_title(ad->main, main_data->ad->current_tab);
+
+       __cal_main_update_toolbar(main_data);
+}
+
+void cal_main_set_main_content(void *data, Evas_Object *content)
+{
+       c_ret_if(!content);
+       c_ret_if(!data);
+
+       struct appdata* ad = data;
+
+       c_ret_if(!ad->main);
+
+       cal_main_data *main_data = CAL_UTIL_GET_PRIV_DATA(ad->main);
+       c_ret_if(!main_data);
+
+       main_data->content =  content;
+}
diff --git a/src/view.h b/src/view.h
new file mode 100755 (executable)
index 0000000..43784c4
--- /dev/null
@@ -0,0 +1,75 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_VIEW_H__
+#define __CALENDAR_VIEW_H__
+
+#include "cld.h"
+
+/* view-acct */
+void cal_account_create_view(struct appdata *ad, Evas_Object *parent);
+
+void cal_main_update_title_text(struct appdata *ad);
+void cal_main_change_view(Evas_Object *ly, enum cld_view v);
+void cal_main_update_view(void* data);
+void cal_main_rotation(void *data);
+void cal_main_create_view(struct appdata *ad);
+
+void cal_main_add_db_changed_callback(struct appdata * ad);
+void cal_main_remove_db_changed_callback(struct appdata * ad);
+
+Evas_Object* cal_year_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_month_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_week_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_day_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_list_create_view(struct appdata *ad, Evas_Object *ly);
+Evas_Object* cal_list_delete_view_create(Evas_Object *parent, struct appdata *ad);
+Evas_Object* cal_list_delete_view_create_more_events(Evas_Object *parent, struct appdata *ad, int idx);
+Evas_Object *cal_search_list_create_list(struct appdata *ad, Evas_Object *parent);
+
+void cal_year_update_view(Evas_Object *ly);
+void cal_month_update_view(Evas_Object *ly);
+void cal_week_update_view(Evas_Object *ly);
+void cal_list_update_view(Evas_Object *ly);
+void cal_day_update_view(Evas_Object *ly);
+void cal_list_delete_update_view(Evas_Object *ly);
+void cal_search_list_update_list(Evas_Object *ly);
+
+/* month */
+Evas_Object* cal_month_calendar_create_view(struct appdata *ad,
+               Evas_Object *ly, Eina_Bool tmp);
+void cal_month_calendar_update_content(Evas_Object *ly, struct tm *t);
+int cal_month_calendar_get_weekline(Evas_Object *ly);
+void cal_month_calendar_update_select(Evas_Object *month);
+void cal_month_calendar_set_wday_text(Evas_Object *ly, int start);
+
+
+/* time block in day view */
+void cal_day_update_genlist(Evas_Object *ly);
+void cal_day_change_content_display_status(Evas_Object *ly);
+
+void cal_list_scroll_today(struct appdata* ad);
+
+Elm_Object_Item* cal_day_list_create_view(struct appdata *ad, Evas_Object *main);
+
+Evas_Object* cal_todo_create_view(struct appdata *ad, Evas_Object *main);
+void cal_todo_update_view(Evas_Object *ly);
+
+void cal_main_set_main_content(void *data, Evas_Object *content);
+
+#endif /* __CALENDAR_VIEW_H__ */
diff --git a/src/week-data.c b/src/week-data.c
new file mode 100755 (executable)
index 0000000..ad57149
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include "week-data.h"
+
+int __week_showing_events_count_portrait[2][7] = {
+               { 3, 3,  3, 3,  3, 1, 1},
+               {10, 9, 10, 9, 10, 9, 9}
+};
+
+int __week_showing_events_count_landscape[2][7] = {
+               {2, 2, 2, 2, 2, 1, 1},
+               {5, 5, 3, 5, 5, 3, 3}
+};
+
+int week_data_get_overflow_count(int total_count, int pos, bool expanded, bool landscape)
+{
+       int showing;
+       if (!landscape)
+               showing = __week_showing_events_count_portrait[expanded ? 1 : 0][pos];
+       else
+               showing = __week_showing_events_count_landscape[expanded ? 1 : 0][pos];
+
+       DBG("%d", showing);
+
+       if (total_count > showing)
+               return total_count - showing;
+       else
+               return 0;
+}
diff --git a/src/week-data.h b/src/week-data.h
new file mode 100755 (executable)
index 0000000..9a6f933
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef WEEK_DATA_H_
+#define WEEK_DATA_H_
+
+#include "cld.h"
+
+int week_data_get_overflow_count(int total_count, int pos, bool expanded, bool landscape);
+
+#endif
diff --git a/ug/CMakeLists.txt b/ug/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..cd72102
--- /dev/null
@@ -0,0 +1,28 @@
+LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
+
+SET(UG_LIB /usr/ug/lib)
+SET(UG_LOCALE /usr/ug/res/locale)
+
+INCLUDE(FindPkgConfig)
+PKG_CHECK_MODULES(UG_PKGS REQUIRED
+       elementary
+       calendar-service2
+       contacts-service2
+       icu-i18n
+       accounts-svc
+       capi-appfw-application
+       appsvc
+       ui-gadget-1
+       capi-content-media-content
+)
+
+FOREACH(flag ${UG_PKGS_CFLAGS})
+       SET(UG_CFLAGS "${UG_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+ADD_SUBDIRECTORY(settings)
+ADD_SUBDIRECTORY(edit)
+ADD_SUBDIRECTORY(detail)
+ADD_SUBDIRECTORY(list)
+
+INSTALL(FILES ${CMAKE_BINARY_DIR}/LICENSE.Flora DESTINATION /usr/share/license RENAME libug-calendar-efl)
diff --git a/ug/detail/CMakeLists.txt b/ug/detail/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..2ffc2fb
--- /dev/null
@@ -0,0 +1,14 @@
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(UG_DETAIL_SRCS
+       detail-ug.c
+       detail-common.c
+)
+
+ADD_DEFINITIONS("-DUGLOCALE=\"${UG_LOCALE}\"")
+
+ADD_LIBRARY(${UGDETAIL} SHARED ${UG_DETAIL_SRCS})
+SET_TARGET_PROPERTIES(${UGDETAIL} PROPERTIES COMPILE_FLAGS "${UG_CFLAGS}")
+TARGET_LINK_LIBRARIES(${UGDETAIL} ${COMMON_LIB} ${UG_PKGS_LDFLAGS})
+
+INSTALL(TARGETS ${UGDETAIL} DESTINATION ${UG_LIB})
diff --git a/ug/detail/detail-attendee.c b/ug/detail/detail-attendee.c
new file mode 100755 (executable)
index 0000000..d9cfbf9
--- /dev/null
@@ -0,0 +1,443 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+#include "cld.h"\r
+#include "external-ug.h"\r
+#include "detail-common.h"\r
+\r
+typedef struct {\r
+       const char *organizer_email;\r
+\r
+       calendar_record_h record;\r
+\r
+       Evas_Object *parent;\r
+       Evas_Object *genlist;\r
+       Evas_Object *ctx_popup;\r
+       Evas_Object *bg;\r
+\r
+       Eina_List *attendee_list;\r
+       Eina_List *required_plist;\r
+       Eina_List *non_required_plist;\r
+\r
+       Ecore_Event_Handler *event_handler;\r
+\r
+       cal_participant *host;\r
+\r
+       Evas_Coord x;\r
+       Evas_Coord y;\r
+}cal_detail_attendee_data;\r
+\r
+static char* __cal_detail_attendee_get_genlist_req_header_item_label(void *data, Evas_Object *obj, const char *part);\r
+static char* __cal_detail_attendee_get_genlist_non_req_header_item_label(void *data, Evas_Object *obj, const char *part);\r
+\r
+Elm_Genlist_Item_Class itc_2text = {0};\r
+\r
+static Elm_Genlist_Item_Class itc_req_h = {\r
+       .item_style = "grouptitle",\r
+       .func.text_get = __cal_detail_attendee_get_genlist_req_header_item_label,\r
+       .func.del = NULL,\r
+};\r
+\r
+static Elm_Genlist_Item_Class itc_non_req_h = {\r
+       .item_style = "grouptitle",\r
+       .func.text_get = __cal_detail_attendee_get_genlist_non_req_header_item_label,\r
+       .func.del = NULL,\r
+};\r
+\r
+static char *__cal_detail_attendee_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       c_retvm_if(!data, NULL, "data is null");\r
+       c_retvm_if(!obj, NULL, "obj is null");\r
+\r
+       cal_participant *participant = data;\r
+\r
+       if (!CAL_STRCMP(part, "elm.text.1"))\r
+               return CAL_STRDUP(participant->name);\r
+\r
+       if (!CAL_STRCMP(part, "elm.text.2")) {\r
+\r
+               if (participant->role == CALENDAR_ATTENDEE_ROLE_CHAIR)\r
+                       return strdup(C_("IDS_CLD_BODY_HOST_M_PERSON"));\r
+\r
+               // TODO: i18n\r
+               switch (participant->status) {\r
+\r
+               case CALENDAR_ATTENDEE_STATUS_ACCEPTED:\r
+                       return strdup("Attend");\r
+                       break;\r
+\r
+               case CALENDAR_ATTENDEE_STATUS_DECLINED:\r
+                       return strdup(C_("IDS_CLD_BODY_DECLINED"));\r
+                       break;\r
+\r
+               case CALENDAR_ATTENDEE_STATUS_TENTATIVE:\r
+                       return strdup(C_("IDS_CLD_BODY_TENTATIVE"));\r
+                       break;\r
+               default:\r
+                       return strdup("Not responded");\r
+                       break;\r
+               }\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+static void __cal_detail_attendee_popup_hide_callback(void *data, Evas_Object *obj, void *ei)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+       c_retm_if(!obj, "obj is null");\r
+\r
+       cal_detail_attendee_data* p = data;\r
+\r
+       p->ctx_popup = NULL;\r
+\r
+       evas_object_del(obj);\r
+}\r
+\r
+static void __cal_detail_parcitipants_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+       c_retm_if(!obj, "obj is null");\r
+\r
+       cal_participant *part = data;\r
+       cal_detail_attendee_data *p = CAL_UTIL_GET_PRIV_DATA(obj);\r
+       c_retm_if(!p, "p is null");\r
+\r
+       if (p->ctx_popup)\r
+               evas_object_del(p->ctx_popup);\r
+\r
+       Evas_Object *ctx_popup = p->ctx_popup = elm_ctxpopup_add(obj);\r
+       c_retm_if(!ctx_popup, "ctx_popup is null");\r
+\r
+       evas_object_smart_callback_add(ctx_popup, "dismissed", __cal_detail_attendee_popup_hide_callback, p);\r
+\r
+       char *email = part->email;\r
+\r
+       if (0 < part->person_id) {\r
+               cal_detail_common_get_person_default_number(part->person_id, &part->number);\r
+\r
+               char *number = part->number;\r
+\r
+               if (CAL_STRLEN(number)) {\r
+                       elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_VOICE_CALL"), NULL, cal_detail_common_ctx_callback_for_voice_call, number);\r
+\r
+                       elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_MESSAGE"), NULL, cal_detail_common_ctx_callback_for_message, number);\r
+               }\r
+\r
+               elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_EMAIL"), NULL, cal_detail_common_ctx_callback_for_email, email);\r
+\r
+       } else {\r
+\r
+               elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_EMAIL"), NULL, cal_detail_common_ctx_callback_for_email, email);\r
+               elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, cal_detail_common_ctx_callback_for_contact, email);\r
+       }\r
+\r
+       c_retm_if(!p->genlist, "p->genilst is null");\r
+       elm_genlist_item_selected_set(elm_genlist_selected_item_get(p->genlist), EINA_FALSE);\r
+\r
+       evas_object_data_set(ctx_popup, "record", p->record);\r
+       evas_object_move(ctx_popup, p->x, p->y);\r
+       evas_object_show(ctx_popup);\r
+}\r
+\r
+static void __cal_detail_attendee_append_genlist_item(cal_detail_attendee_data *p)\r
+{\r
+       c_retm_if(!p, "p is null");\r
+\r
+       c_retm_if(!p->genlist, "p->genlist is null");\r
+       c_retm_if(!p->attendee_list, "p->attendee_list is null");\r
+\r
+       Eina_List *l = NULL;\r
+       cal_participant *part = NULL;\r
+       Evas_Object *genlist = p->genlist;\r
+\r
+       Elm_Object_Item *item = NULL;\r
+\r
+       itc_2text.item_style = "dialogue/2text.5";\r
+       itc_2text.func.text_get = __cal_detail_attendee_get_genlist_item_label;\r
+\r
+       if (p->host)\r
+               elm_genlist_item_append(genlist, &itc_2text, (void*)p->host, NULL, ELM_GENLIST_ITEM_NONE, __cal_detail_parcitipants_genlist_item_select_callback, part);\r
+\r
+       if (eina_list_count(p->required_plist)) {\r
+               item = elm_genlist_item_append(genlist, &itc_req_h, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);\r
+               elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);\r
+               EINA_LIST_FOREACH(p->required_plist, l, part) {\r
+                       elm_genlist_item_append(genlist, &itc_2text, (void*)part, NULL, ELM_GENLIST_ITEM_NONE, __cal_detail_parcitipants_genlist_item_select_callback, part);\r
+               }\r
+       }\r
+\r
+       if (eina_list_count(p->non_required_plist)) {\r
+               item = elm_genlist_item_append(genlist, &itc_non_req_h, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);\r
+               elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);\r
+               EINA_LIST_FOREACH(p->non_required_plist, l, part) {\r
+                       elm_genlist_item_append(genlist, &itc_2text, (void*)part, NULL, ELM_GENLIST_ITEM_NONE, __cal_detail_parcitipants_genlist_item_select_callback, part);\r
+               }\r
+       }\r
+\r
+\r
+}\r
+\r
+static Eina_Bool __cal_detail_attendee_mouse_down_callback(void *data, int type, void *event)\r
+{\r
+       c_retvm_if(!event, EINA_FALSE, "event is null");\r
+       c_retvm_if(!data, EINA_FALSE, "data is null");\r
+\r
+       Ecore_Event_Mouse_Button *ev = event;\r
+       cal_detail_attendee_data *p = data;\r
+\r
+       p->x = ev->x;\r
+       p->y = ev->y;\r
+\r
+       return ECORE_CALLBACK_RENEW;\r
+}\r
+\r
+static void __cal_detail_attendee_delete_callback(void *data, Evas *e, Evas_Object *obj, void *ei)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_retm_if(!data, "data is null");\r
+\r
+       cal_detail_attendee_data *p = data;\r
+\r
+       if (p->ctx_popup)\r
+               evas_object_del(p->ctx_popup);\r
+\r
+       if (p->event_handler)\r
+               ecore_event_handler_del(p->event_handler);\r
+\r
+       if (p->attendee_list)\r
+               eina_list_free(p->attendee_list);\r
+\r
+       free(p);\r
+}\r
+\r
+static void __cal_detail_attendee_ordering_genlist_item(void *data)\r
+{\r
+       c_retm_if(!data, "data is null");\r
+\r
+       cal_participant *part = NULL;\r
+       cal_detail_attendee_data *p = data;\r
+       Eina_List *l = NULL;\r
+\r
+       EINA_LIST_FOREACH(p->attendee_list, l, part) {\r
+               if (part) {\r
+\r
+                       if (p->organizer_email && !strcmp(p->organizer_email, part->email)) {\r
+                               part->role = CALENDAR_ATTENDEE_ROLE_CHAIR;\r
+                               p->host = part;\r
+                       }\r
+\r
+                       else if (part->role == CALENDAR_ATTENDEE_ROLE_REQ_PARTICIPANT)\r
+                               p->required_plist = eina_list_append(p->required_plist, part);\r
+                       else\r
+                               p->non_required_plist = eina_list_append(p->non_required_plist, part);\r
+               }\r
+       }\r
+}\r
+\r
+static const char * __cal_detail_attendee_get_organizer_email(calendar_record_h record)\r
+{\r
+       c_retv_if(!record, NULL);\r
+\r
+       char *organizer_email = NULL;\r
+\r
+       calendar_error_e error = CALENDAR_ERROR_NONE;\r
+\r
+       error = calendar_record_get_str_p(record, _calendar_event.organizer_email, &organizer_email);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);\r
+\r
+       return organizer_email;\r
+}\r
+\r
+static cal_participant * __cal_detail_attendee_append_list(calendar_record_h calendar_attendee)\r
+{\r
+       cal_participant *part = calloc(1, sizeof(cal_participant));\r
+       c_retv_if(!part, NULL);\r
+
+       char *name = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+\r
+       error = calendar_record_get_str(calendar_attendee, _calendar_attendee.name, &name);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+\r
+       if (!CAL_STRLEN(name)) {\r
+               ERR("Attendee name is NULL!!");
+               name = S_("IDS_COM_BODY_UNKNOWN");
+       }
+
+       part->name = name;\r
+
+       char *email = NULL;
+\r
+       error = calendar_record_get_str(calendar_attendee, _calendar_attendee.email, &email);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       if (CAL_STRLEN(email))
+               part->email = email;\r
+       else
+               ERR("Attendee email is mandatory data!! There is no email for %s.", part->name);
+
+       error = calendar_record_get_int(calendar_attendee, _calendar_attendee.person_id, &part->person_id);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       error = calendar_record_get_int(calendar_attendee, _calendar_attendee.status, &part->status);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       error = calendar_record_get_int(calendar_attendee, _calendar_attendee.role, &part->role);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       error = calendar_record_get_int(calendar_attendee, _calendar_attendee.rsvp, &part->response);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);\r
+\r
+       return part;\r
+}\r
+\r
+static Eina_List * __cal_detail_attendee_get_attendee_list(calendar_record_h record)\r
+{\r
+       c_retv_if(!record, NULL);\r
+\r
+       Eina_List *attendee_list = NULL;\r
+\r
+       int attendee_count = 0;\r
+\r
+       calendar_error_e error = CALENDAR_ERROR_NONE;\r
+\r
+       error = calendar_record_get_child_record_count(record, _calendar_event.calendar_attendee, (unsigned int *)&attendee_count);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_count() is failed(%x)", error);\r
+\r
+       int i = 0;\r
+\r
+       for (i = 0; i < attendee_count; i++) {\r
+               calendar_record_h calendar_attendee = NULL;\r
+\r
+               error = calendar_record_get_child_record_at_p(record, _calendar_event.calendar_attendee, i, &calendar_attendee);\r
+               if (error != CALENDAR_ERROR_NONE) {\r
+                       ERR("calendar_record_get_child_record_at_p() is failed(%x)", error);\r
+                       continue;\r
+               }\r
+\r
+               cal_participant *part = __cal_detail_attendee_append_list(calendar_attendee);\r
+\r
+               if (part)\r
+                       attendee_list = eina_list_append(attendee_list, part);\r
+       }\r
+\r
+       return attendee_list;\r
+}\r
+\r
+static void inline __cal_detail_attendee_clone_record(const calendar_record_h source_record, calendar_record_h *target_record)\r
+{\r
+       CAL_FN_START;\r
+\r
+       c_ret_if(!source_record);\r
+       c_ret_if(!target_record);\r
+\r
+       calendar_error_e error = CALENDAR_ERROR_NONE;\r
+\r
+       error = calendar_record_clone(source_record, target_record);\r
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);\r
+}\r
+\r
+void cal_detail_attendee_create_view(Evas_Object *naviframe, calendar_record_h record)\r
+{\r
+       c_retm_if(!naviframe, "naviframe is null.");\r
+       c_retm_if(!record, "participants_list is null.");\r
+\r
+       cal_detail_attendee_data *p = calloc(1, sizeof(cal_detail_attendee_data));\r
+       c_retm_if(!p, "p is null");\r
+\r
+       __cal_detail_attendee_clone_record(record, &p->record);\r
+\r
+       p->attendee_list = __cal_detail_attendee_get_attendee_list(p->record);\r
+       p->organizer_email = __cal_detail_attendee_get_organizer_email(p->record);\r
+       __cal_detail_attendee_ordering_genlist_item(p);\r
+\r
+       Evas_Object *ly = cal_util_add_layout(naviframe, "list/base");\r
+       if(!ly)\r
+       {\r
+               ERR("ly is null");\r
+               free(p);\r
+               return;\r
+       }\r
+\r
+       evas_object_data_set(ly, "priv", p);\r
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(ly), "searchbar,hide", "prog");\r
+\r
+       p->bg = cal_util_add_bg(ly,EINA_FALSE);\r
+       if (!p->bg) {\r
+               ERR("cal_util_add_bg returned null");\r
+               evas_object_del(ly);\r
+               free(p);\r
+               return;\r
+       }\r
+       elm_object_part_content_set(ly, "base", p->bg);\r
+\r
+       p->genlist = elm_genlist_add(naviframe);\r
+       c_retm_if(!p->genlist, "p->genlist is null");\r
+       evas_object_show(p->genlist);\r
+\r
+       evas_object_event_callback_add(p->genlist, EVAS_CALLBACK_DEL, __cal_detail_attendee_delete_callback, p);\r
+\r
+       evas_object_data_set(p->genlist, "priv", p);\r
+\r
+       __cal_detail_attendee_append_genlist_item(p);\r
+\r
+       elm_object_part_content_set(ly, "sw", p->genlist);\r
+\r
+       p->event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, __cal_detail_attendee_mouse_down_callback, p);\r
+       c_warn_if(!p->event_handler, "p->event_handler is null");\r
+\r
+       ///TODO: i18n\r
+       Elm_Object_Item *navi_item = elm_naviframe_item_push(naviframe, C_("IDS_CLD_BODY_ATTENDANCE_STATUS"), NULL, NULL, ly, NULL);\r
+       c_retm_if(!navi_item, "navi_item is null");\r
+\r
+       Evas_Object *back_button = elm_object_item_part_content_get(navi_item, "prev_btn");\r
+       if (!back_button)\r
+       {\r
+               ERR("elm_object_item_part_content_get returned null");\r
+               elm_naviframe_item_pop(naviframe);\r
+               evas_object_del(p->genlist);\r
+               return;\r
+       }\r
+\r
+       elm_object_style_set(back_button, "naviframe/back_btn/default");\r
+\r
+}\r
+\r
+static char* __cal_detail_attendee_get_genlist_req_header_item_label(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       if (!CAL_STRCMP(part, "elm.text")) {\r
+\r
+               const char* text = "Required participant";\r
+               return strdup(text);\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+static char* __cal_detail_attendee_get_genlist_non_req_header_item_label(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       if (!CAL_STRCMP(part, "elm.text")) {\r
+\r
+               const char* text = "Non-required participant";\r
+               return strdup(text);\r
+       }\r
+\r
+       return NULL;\r
+}\r
diff --git a/ug/detail/detail-attendee.h b/ug/detail/detail-attendee.h
new file mode 100755 (executable)
index 0000000..076b73d
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __CALENDAR_DETAIL_PARTICIPANTS_H__
+#define __CALENDAR_DETAIL_PARTICIPANTS_H__
+
+#include "cld.h"
+
+void cal_detail_attendee_create_view(Evas_Object *naviframe, const calendar_record_h record);
+
+#endif /* __CALENDAR_DETAIL_PARTICIPANTS_H__ */
diff --git a/ug/detail/detail-common.c b/ug/detail/detail-common.c
new file mode 100755 (executable)
index 0000000..99ac2b9
--- /dev/null
@@ -0,0 +1,217 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <appsvc.h>
+#include <bundle.h>
+
+#include "detail-common.h"
+#include "cld.h"
+#include "external-ug.h"
+
+void cal_detail_common_ctx_callback_for_voice_call(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       const char *num = data;
+       bundle *b = NULL;
+       char telnum[255]={0,};
+       b = bundle_create();
+       appsvc_set_operation(b, APPSVC_OPERATION_CALL);
+       snprintf(telnum, sizeof(telnum), "tel:%s", num);
+       appsvc_set_uri(b, telnum);
+       appsvc_add_data(b, "ctindex", "-1");
+       appsvc_run_service(b, 0, NULL, NULL);
+
+       bundle_free(b);
+
+       elm_ctxpopup_dismiss(obj);
+}
+
+void cal_detail_common_ctx_callback_for_contact(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+
+       c_retm_if(!obj, "obj is null");
+
+       const char *email = data;
+       char type[8] = {0};
+
+       snprintf(type, sizeof(type), "%d", 22);
+       cal_launch_ug_with_var(NULL, CAL_CONTACT_UG, NULL, "type", type, "ct_email", email, NULL);
+
+       elm_ctxpopup_dismiss(obj);
+}
+
+void cal_detail_common_get_person_default_number(int person_id, char **default_num)
+{
+       c_ret_if(person_id < 0);
+
+       contacts_error_e error = CONTACTS_ERROR_NONE;
+
+       contacts_record_h person = NULL;
+
+       error = contacts_db_get_record(_contacts_person._uri, person_id, &person);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_db_get_record() is failed(%x)", error);
+
+       int contact_id = 0;
+
+       error = contacts_record_get_int(person, _contacts_person.display_contact_id, &contact_id);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_int() is failed(%x)", error);
+
+       contacts_record_h contact = NULL;
+
+       error = contacts_db_get_record(_contacts_contact._uri, contact_id, &contact);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_db_get_record() is failed(%x)", error);
+
+       contacts_record_h number = NULL;
+
+       error = contacts_record_get_child_record_at_p(contact, _contacts_contact.number, 0, &number);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_child_record_at_p() is failed(%x)", error);
+
+       char *default_number = NULL;
+
+       error = contacts_record_get_str_p(number, _contacts_number.number, &default_number);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_str_p() is failed(%x)", error);
+
+       if (CAL_STRLEN(default_number))
+               *default_num = strdup(default_number);
+       else
+               ERR("person_id(%d)'s default number is null", person_id);
+
+       error = contacts_record_destroy(contact, true);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_destroy() is failed(%x)", error);
+
+       error = contacts_record_destroy(person, false);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_destroy() is failed(%x)", error);
+}
+
+static void __cal_detail_get_start_time(calendar_record_h record, char *buf, int sz)
+{
+       c_ret_if(!record);
+
+       const char* time;
+
+       if (is_hour24)
+               time = CAL_UTIL_TIME_FORMAT_6;
+       else
+               time = CAL_UTIL_TIME_FORMAT_1;
+
+       struct tm tm = {0};
+
+       calendar_time_s start_time = {0};
+
+       _calendar_get_start_time(record, &start_time);
+
+       _calendar_convert_calendar_time_to_tm(&start_time, &tm);
+
+       if (_calendar_is_allday_record(record))
+               cal_util_get_time_text(buf, sz, CAL_UTIL_DATE_FORMAT_1, NULL, &tm);
+       else
+               cal_util_get_time_text(buf, sz, CAL_UTIL_DATE_FORMAT_1, time, &tm);
+}
+
+static void __cal_detail_get_end_time(calendar_record_h record, char *buf, int sz)
+{
+       c_ret_if(!record);
+
+       const char* time;
+
+       if (is_hour24)
+               time = CAL_UTIL_TIME_FORMAT_6;
+       else
+               time = CAL_UTIL_TIME_FORMAT_1;
+
+       struct tm tm = {0};
+
+       calendar_time_s end_time = {0};
+
+       _calendar_get_end_time(record, &end_time);
+
+       _calendar_convert_calendar_time_to_tm(&end_time, &tm);
+
+       if (_calendar_is_allday_record(record))
+               cal_util_get_time_text(buf, sz, CAL_UTIL_DATE_FORMAT_1, NULL, &tm);
+       else
+               cal_util_get_time_text(buf, sz, CAL_UTIL_DATE_FORMAT_1, time, &tm);
+}
+
+static void __cal_detail_common_get_message_content(calendar_record_h record, char *body , int nsize)
+{
+       c_ret_if(!record);
+       c_ret_if(!body);
+
+       char *content;
+       char *title = NULL;
+       char *location = NULL;
+       char start[1024] = "Start\n";
+       char end[1024] = "End\n";
+       char buf_start[1024] = {0};
+       char buf_end[1024] = {0};
+
+       // TODO:i18n
+       content = _("Check this schedule, please.");
+
+       title = _calendar_get_summary(record);
+
+       location = _calendar_get_location(record);
+
+       __cal_detail_get_start_time(record, buf_start, sizeof(buf_start));
+
+       __cal_detail_get_end_time(record, buf_end, sizeof(buf_end));
+
+       snprintf(body, nsize, "%s\n%s\n%s\n%s%s\n%s%s",content, title, location, start, buf_start, end, buf_end);
+
+       free(title);
+       CAL_FREE(location);
+}
+
+void cal_detail_common_ctx_callback_for_message(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       calendar_record_h record = evas_object_data_get(obj, "record");
+
+       const char *num = data;
+
+       char message[512] = {0};
+
+       __cal_detail_common_get_message_content(record, message, sizeof(message));
+
+       cal_launch_ug_with_var(NULL, CAL_MESSAGE_COMPOSER_UG, NULL, "TO", num, "BODY", message, NULL);
+
+       elm_ctxpopup_dismiss(obj);
+}
+
+void cal_detail_common_ctx_callback_for_email(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       calendar_record_h record = evas_object_data_get(obj, "record");
+
+       const char *email = data;
+
+       char message[512] = {0};
+
+       __cal_detail_common_get_message_content(record, message, sizeof(message));
+
+       cal_launch_ug_with_var(NULL, CAL_EMAIL_COMPOSER_UG, NULL, "RUN_TYPE", "5", "TO", email, "BODY", message, NULL);
+
+       elm_ctxpopup_dismiss(obj);
+}
diff --git a/ug/detail/detail-common.h b/ug/detail/detail-common.h
new file mode 100755 (executable)
index 0000000..15c68a3
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <Elementary.h>
+
+void cal_detail_common_ctx_callback_for_voice_call(void *data, Evas_Object *obj, void *ei);
+
+void cal_detail_common_ctx_callback_for_contact(void *data, Evas_Object *obj, void *ei);
+void cal_detail_common_ctx_callback_for_message(void *data, Evas_Object *obj, void *ei);
+void cal_detail_common_ctx_callback_for_email(void *data, Evas_Object *obj, void *ei);
+
+void cal_detail_common_get_person_default_number(int person_id, char **default_num);
diff --git a/ug/detail/detail-ug.c b/ug/detail/detail-ug.c
new file mode 100755 (executable)
index 0000000..a96adde
--- /dev/null
@@ -0,0 +1,1662 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <ui-gadget-module.h>
+#include <libintl.h>
+
+#include "cld.h"
+#include "dialogue.h"
+
+#include "reminder.h"
+#include "external-ug.h"
+#include "detail-common.h"
+#include "detail-attendee.h"
+
+typedef struct {
+
+       ui_gadget_h ug;
+
+       Evas_Object *base_layout;
+       Evas_Object *naviframe;
+       Evas_Object *window;
+       Evas_Object *dialogue;
+
+       Elm_Object_Item *navi_item;
+
+       calendar_record_h instance;
+       calendar_record_h record;
+
+       Ecore_Event_Handler *mouse_down_event_handler;
+       Evas_Coord mouse_down_x;
+       Evas_Coord mouse_down_y;
+
+       Evas_Object *title;
+       Evas_Object *from;
+       Evas_Object *to;
+       Evas_Object *due;
+       Evas_Object *reminder;
+       Evas_Object *recurrence;
+       Evas_Object *note;
+       Evas_Object *attendee;
+       Evas_Object *show_me_as;
+       Evas_Object *privacy;
+       Evas_Object *snote;
+       Evas_Object *photo;
+       Evas_Object *save_to;
+} cal_detail_ug_data;
+
+static int __cal_detail_ug_initialize(cal_detail_ug_data *data)
+{
+       CAL_FN_START;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_connect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_connect() is failed(%x)", error);
+
+       _calendar_init_hash();
+
+       const char *path = bindtextdomain(CALENDAR, LOCALEDIR);
+       c_warn_if(!path, "bindtextdomain(%s, %s) is failed.", CALENDAR, LOCALEDIR);
+
+       cal_util_connect_pattern_generator();
+
+       return 0;
+}
+
+static void __cal_detail_ug_finish()
+{
+       CAL_FN_START;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_disconnect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_disconnect() is failed(%x)", error);
+
+       elm_theme_extension_del(NULL, EDJDIR "/calendar_theme.edj");
+
+       cal_util_disconnect_pattern_generator();
+}
+
+static void __cal_detail_ug_back_button_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!user_data);
+
+       cal_detail_ug_data *data = user_data;
+
+       c_ret_if(!data->ug);
+
+       ug_destroy_me(data->ug);
+}
+
+static Evas_Object * __cal_detail_ug_add_back_button(cal_detail_ug_data *data)
+{
+       CAL_FN_START;
+
+       Evas_Object *back_button = elm_button_add(data->naviframe);
+       c_retv_if(!back_button, NULL);
+
+       evas_object_smart_callback_add(back_button, "clicked", __cal_detail_ug_back_button_callback, data);
+
+       elm_object_style_set(back_button, "naviframe/end_btn/default");
+
+       return back_button;
+}
+
+static void __cal_detail_ug_update_title_language(Evas_Object *item, calendar_record_h record)
+{
+       c_ret_if(!item);
+
+       char *summary = _calendar_get_summary(record);
+
+       elm_object_part_text_set(item, "elm.text.1", summary);
+
+       free(summary);
+}
+
+static Evas_Object * __cal_detail_ug_add_title(Evas_Object *box, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!box, NULL);
+       c_retv_if(!record, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(box, "2text", NULL, NULL);
+
+       __cal_detail_ug_update_title_language(item, record);
+
+       char *location = _calendar_get_location(record);
+
+       elm_object_part_text_set(item, "elm.text.2", location);
+
+       CAL_FREE(location);
+
+       return item;
+}
+
+static void __cal_detail_ug_update_from_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text.1", C_("IDS_CLD_BODY_FROM"));
+}
+
+static void __cal_detail_ug_update_from_region(Evas_Object *item, calendar_record_h record)
+{
+       c_ret_if(!item);
+
+       const char *time_format = NULL;
+
+       if (!_calendar_is_allday_record(record)) {
+               if (is_hour24)
+                       time_format = CAL_UTIL_TIME_FORMAT_6;
+               else
+                       time_format = CAL_UTIL_TIME_FORMAT_1;
+       }
+
+       calendar_time_s time = {0};
+
+       _calendar_get_start_time(record, &time);
+
+       char *from_time = _calendar_get_time_str(&time, CAL_UTIL_DATE_FORMAT_1, time_format);
+
+       elm_object_part_text_set(item, "elm.text.2", from_time);
+
+       free(from_time);
+}
+
+static Evas_Object * __cal_detail_ug_add_start_time(Evas_Object *box, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!box, NULL);
+       c_retv_if(!record, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(box, "2text", NULL, NULL);
+
+       __cal_detail_ug_update_from_language(item);
+
+       __cal_detail_ug_update_from_region(item, record);
+
+       return item;
+}
+
+static void __cal_detail_ug_update_to_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text.1", C_("IDS_CLD_BODY_TO"));
+}
+
+static void __cal_detail_ug_update_to_region(Evas_Object *item, calendar_record_h record)
+{
+       c_ret_if(!item);
+
+       const char *time_format = NULL;
+
+       if (!_calendar_is_allday_record(record)) {
+               if (is_hour24)
+                       time_format = CAL_UTIL_TIME_FORMAT_6;
+               else
+                       time_format = CAL_UTIL_TIME_FORMAT_1;
+       }
+
+       calendar_time_s time = {0};
+
+       _calendar_get_end_time(record, &time);
+
+       char *to_time = _calendar_get_time_str(&time, CAL_UTIL_DATE_FORMAT_1, time_format);
+
+       elm_object_part_text_set(item, "elm.text.2", to_time);
+
+       free(to_time);
+}
+
+static Evas_Object * __cal_detail_ug_add_end_time(Evas_Object *box, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!box, NULL);
+       c_retv_if(!record, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(box, "2text", NULL, NULL);
+
+       __cal_detail_ug_update_to_language(item);
+
+       __cal_detail_ug_update_to_region(item, record);
+
+       return item;
+}
+
+static void __cal_detail_ug_update_due_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text.1", C_("IDS_CLD_BODY_DUE_DATE"));
+}
+
+static void __cal_detail_ug_update_due_region(Evas_Object *item, calendar_record_h record)
+{
+       c_ret_if(!item);
+
+       const char *time_format = NULL;
+
+       if (!_calendar_is_allday_record(record)) {
+               if (is_hour24)
+                       time_format = CAL_UTIL_TIME_FORMAT_6;
+               else
+                       time_format = CAL_UTIL_TIME_FORMAT_1;
+       }
+
+       calendar_time_s due_time = {0};
+
+       _calendar_get_end_time(record, &due_time);
+
+       if (due_time.time.utime == CALENDAR_TODO_NO_DUE_DATE) {
+               elm_object_part_text_set(item, "elm.text.1", C_("IDS_CLD_BODY_NO_DUE_DATE_M_NOUN"));
+       }
+       else
+       {
+               char *due_time_text = _calendar_get_time_str(&due_time, CAL_UTIL_DATE_FORMAT_1, time_format);
+
+               elm_object_part_text_set(item, "elm.text.2", due_time_text);
+               free(due_time_text);
+       }
+
+}
+
+static Evas_Object * __cal_detail_ug_add_due_time(Evas_Object *box, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!box, NULL);
+       c_retv_if(!record, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(box, "2text", NULL, NULL);
+
+       __cal_detail_ug_update_due_language(item);
+
+       __cal_detail_ug_update_due_region(item, record);
+
+       return item;
+}
+
+static char * __cal_detail_ug_get_recurrence_text(calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!record, NULL);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int freq = 0;
+
+       error = calendar_record_get_int(record, _calendar_event.freq, &freq);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       int interval = 0;
+
+       error = calendar_record_get_int(record, _calendar_event.interval, &interval);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (freq == CALENDAR_RECURRENCE_WEEKLY) {
+               if (2 == interval)
+                       freq = CAL_REPEAT_EVERY_2_WEEK;
+
+       } else if (freq == CALENDAR_RECURRENCE_DAILY) {
+               if (3 == interval)
+                       freq = CAL_REPEAT_EVERY_3_DAY;
+       }
+
+       char buf[128] = {0};
+
+       _calendar_get_recurrence_frequency_str(freq, buf, sizeof(buf));
+
+       return strdup(buf);
+}
+
+static GList * __cal_detail_ug_get_reminder_list(calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!record, NULL);
+
+       GList *reminder_list = NULL;
+
+       int reminder_count = 0;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_is_task_record(record))
+               error = calendar_record_get_child_record_count(record, _calendar_todo.calendar_alarm, (unsigned int *)&reminder_count);
+       else
+               error = calendar_record_get_child_record_count(record, _calendar_event.calendar_alarm, (unsigned int *)&reminder_count);
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_count() is failed(%x)", error);
+
+       int i = 0;
+       for (i = 0; i < reminder_count; i++) {
+               calendar_record_h calendar_alarm = NULL;
+
+               if (_calendar_is_task_record(record))
+                       error = calendar_record_get_child_record_at_p(record, _calendar_todo.calendar_alarm, i, &calendar_alarm);
+               else
+                       error = calendar_record_get_child_record_at_p(record, _calendar_event.calendar_alarm, i, &calendar_alarm);
+
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_at_p() is failed(%x)", error);
+
+               Cal_Reminder* reminder = cal_reminder_create(calendar_alarm);
+               reminder_list = g_list_append(reminder_list, (void *)reminder);
+       }
+
+       if (reminder_list)
+               reminder_list = g_list_first(reminder_list);
+
+       return reminder_list;
+}
+
+static void __cal_detail_ug_update_reminder_language(Evas_Object *item, calendar_record_h record)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text.1", C_("IDS_CLD_BODY_REMINDER"));
+
+       GList *reminder_list = __cal_detail_ug_get_reminder_list(record);
+       if (reminder_list) {
+
+               char reminder_text[50] = {0};
+
+               cal_reminder_get_string(reminder_list->data, reminder_text, sizeof(reminder_text));
+
+               elm_object_part_text_set(item, "elm.text.2", reminder_text);
+
+               g_list_free(reminder_list);
+       } else
+               elm_object_part_text_set(item, "elm.text.2", S_("IDS_COM_BODY_OFF"));
+}
+
+static Evas_Object * __cal_detail_ug_add_reminder(Evas_Object *box, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!box, NULL);
+       c_retv_if(!record, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(box, "2text", NULL, NULL);
+
+       __cal_detail_ug_update_reminder_language(item, record);
+
+       return item;
+}
+
+static void __cal_detail_ug_update_recurrence_language(Evas_Object *item, calendar_record_h record)
+{
+       c_ret_if(!item);
+
+       char *recurrence = __cal_detail_ug_get_recurrence_text(record);
+
+       elm_object_part_text_set(item, "elm.text.1", C_("IDS_CLD_BODY_REPEAT"));
+       elm_object_part_text_set(item, "elm.text.2", recurrence);
+
+       free(recurrence);
+}
+
+static Evas_Object * __cal_detail_ug_add_recurrence(Evas_Object *box, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!box, NULL);
+       c_retv_if(!record, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(box, "2text", NULL, NULL);
+
+       __cal_detail_ug_update_recurrence_language(item, record);
+
+       return item;
+}
+
+static inline char* __cal_detail_get_note_text(calendar_record_h record)
+{
+       c_retv_if(!record, NULL);
+
+       char *note = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_is_task_record(record))
+               error = calendar_record_get_str_p(record, _calendar_todo.description, &note);
+       else
+               error = calendar_record_get_str_p(record, _calendar_event.description, &note);
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       return note;
+}
+
+static Evas_Object * __cal_detail_ug_add_note(Evas_Object *box, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!box, NULL);
+       c_retv_if(!record, NULL);
+
+       char *note = __cal_detail_get_note_text(record);
+
+       if (!CAL_STRLEN(note))
+               return NULL;
+
+       Evas_Object *item = cal_dialogue_append_item(box, "1icon", NULL, NULL);
+
+       Evas_Object *edit_field = cal_util_add_edit_field(item, NULL, EINA_FALSE, EINA_FALSE);
+       if (!edit_field) {
+               ERR("cal_util_add_edit_field() is failed.");
+
+               evas_object_del(item);
+
+               return NULL;
+       }
+
+       Evas_Object *entry = elm_object_part_content_get(edit_field, "elm.swallow.content");
+       if (!edit_field) {
+               ERR("cal_util_add_edit_field() is failed.");
+
+               evas_object_del(item);
+
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_EXPAND);
+       elm_entry_input_panel_enabled_set(entry, EINA_FALSE);
+       elm_entry_autocapital_type_set(entry, EINA_TRUE);
+
+       elm_entry_entry_set(entry, note);
+
+       elm_object_part_content_set(item, "elm.icon", edit_field);
+
+       return item;
+}
+
+static inline void __cal_detail_append_multibutton_entry_item(Evas_Object *mbe, calendar_record_h record)
+{
+       cal_participant *part = calloc(1, sizeof(cal_participant));
+       c_ret_if(!part);
+
+       char *name = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       error = calendar_record_get_str(record, _calendar_attendee.name, &name);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+       if (!CAL_STRLEN(name)) {
+               ERR("Attendee name is NULL!!");
+               name = S_("IDS_COM_BODY_UNKNOWN");
+       }
+
+       part->name = CAL_STRDUP(name);
+
+       char *email = NULL;
+       error = calendar_record_get_str(record, _calendar_attendee.email, &email);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       if (CAL_STRLEN(email))
+               part->email = strdup(email);
+       else
+               ERR("Attendee email is mandatory data!! There is no email for %s.", part->name);
+
+       error = calendar_record_get_int(record, _calendar_attendee.person_id, &part->person_id);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       error = calendar_record_get_int(record, _calendar_attendee.status, &part->status);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       error = calendar_record_get_int(record, _calendar_attendee.role, &part->role);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       error = calendar_record_get_int(record, _calendar_attendee.rsvp, &part->response);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       elm_multibuttonentry_item_append(mbe, name, NULL, part);
+}
+
+static inline void __cal_detail_set_multibutton_entry_item(Evas_Object *multibutton_entry, calendar_record_h record)
+{
+       c_ret_if(!multibutton_entry);
+       c_ret_if(!record);
+
+       int attendee_count = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_get_child_record_count(record, _calendar_event.calendar_attendee, (unsigned int *)&attendee_count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_count() is failed(%x)", error);
+
+       int i = 0;
+
+       for (i = 0; i < attendee_count; i++) {
+               calendar_record_h calendar_attendee = NULL;
+
+               error = calendar_record_get_child_record_at_p(record, _calendar_event.calendar_attendee, i, &calendar_attendee);
+               if (error != CALENDAR_ERROR_NONE) {
+                       ERR("calendar_record_get_child_record_at_p() is failed(%x)", error);
+                       continue;
+               }
+
+               __cal_detail_append_multibutton_entry_item(multibutton_entry, calendar_attendee);
+       }
+}
+
+static void __cal_detail_popup_hide_callback(void *data, Evas_Object *obj, void *ei)
+{
+       evas_object_del(obj);
+}
+
+static void __cal_detail_show_ctx_popup(cal_detail_ug_data *data, cal_participant *part)
+{
+       c_ret_if(!data);
+       c_ret_if(!part);
+
+       Evas_Object *ctx_popup = elm_ctxpopup_add(data->naviframe);
+       c_ret_if(!ctx_popup);
+
+       int person_id = part->person_id;
+       char *name = part->name;
+
+       if (0 < person_id) {
+               cal_detail_common_get_person_default_number(person_id, &part->number);
+
+               char *number = part->number;
+
+               evas_object_smart_callback_add(ctx_popup, "dismissed", __cal_detail_popup_hide_callback, data);
+
+               if (CAL_STRLEN(number)) {
+                       elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_VOICE_CALL"), NULL, cal_detail_common_ctx_callback_for_voice_call, number);
+
+                       elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_MESSAGE"), NULL, cal_detail_common_ctx_callback_for_message, number);
+               }
+
+               if (CAL_STRLEN(part->email)) {
+                       elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_EMAIL"), NULL, cal_detail_common_ctx_callback_for_email, part->email);
+               }
+       }
+       else {
+               evas_object_smart_callback_add(ctx_popup, "dismissed", __cal_detail_popup_hide_callback, NULL);
+
+               elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_EMAIL"), NULL, cal_detail_common_ctx_callback_for_email, name);
+               elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, cal_detail_common_ctx_callback_for_contact, name);
+       }
+
+       evas_object_data_set(ctx_popup, "record", data->record);
+       evas_object_move(ctx_popup, data->mouse_down_x, data->mouse_down_y);
+       evas_object_show(ctx_popup);
+}
+
+static void __cal_detail_multibuttonentry_item_selected_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!ei);
+       c_ret_if(!user_data);
+
+       Elm_Object_Item *it = ei;
+       cal_detail_ug_data *data = user_data;
+
+       cal_participant *part = elm_object_item_data_get(it);
+       c_ret_if(!part);
+
+       __cal_detail_show_ctx_popup(data, part);
+}
+
+static void __cal_detail_multibuttonentry_item_deleted_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!ei);
+
+       Elm_Object_Item *item = ei;
+
+       cal_participant *part = elm_object_item_data_get(item);
+       c_ret_if(!part);
+
+       CAL_FREE(part->name);
+
+       free(part);
+}
+
+static void __cal_detail_multibuttonentry_unfocused_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!obj);
+
+       elm_multibuttonentry_item_selected_set(elm_multibuttonentry_selected_item_get(obj), EINA_FALSE);
+}
+
+static Eina_Bool __cal_detail_mouse_down_callback(void *user_data, int type, void *event)
+{
+       c_retv_if(!user_data, ECORE_CALLBACK_RENEW);
+       c_retv_if(!event, ECORE_CALLBACK_RENEW);
+
+       cal_detail_ug_data *data = user_data;
+
+       Ecore_Event_Mouse_Button *ev= event;
+
+
+       data->mouse_down_x = ev->x;
+       data->mouse_down_y = ev->y;
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+static Evas_Object * __cal_detail_add_multibutton_entry(Evas_Object *item, cal_detail_ug_data *data)
+{
+       c_retv_if(!item, NULL);
+       c_retv_if(!data, NULL);
+
+       Evas_Object *multibutton_entry = elm_multibuttonentry_add(item);
+       c_retv_if(!multibutton_entry, NULL);
+
+       evas_object_size_hint_weight_set(multibutton_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(multibutton_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_smart_callback_add(multibutton_entry, "item,selected", __cal_detail_multibuttonentry_item_selected_callback, data);
+       evas_object_smart_callback_add(multibutton_entry, "item,deleted", __cal_detail_multibuttonentry_item_deleted_callback, NULL);
+       evas_object_smart_callback_add(multibutton_entry, "unfocused", __cal_detail_multibuttonentry_unfocused_callback, NULL);
+
+       Evas_Object *entry = elm_multibuttonentry_entry_get(multibutton_entry);
+       if (entry)
+               elm_entry_editable_set(entry, EINA_FALSE);
+
+       evas_object_show(multibutton_entry);
+
+       if (!data->mouse_down_event_handler)
+               data->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, __cal_detail_mouse_down_callback, data);
+
+       return multibutton_entry;
+}
+
+static void __cal_detail_attendee_status_button_callback(void *user_data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_ret_if(!user_data);
+
+       cal_detail_ug_data *data = user_data;
+
+       cal_detail_attendee_create_view(data->naviframe, data->record);
+}
+
+static Evas_Object * __cal_detail_ug_add_attendee(Evas_Object *box, calendar_record_h record, cal_detail_ug_data *data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!box, NULL);
+       c_retv_if(!record, NULL);
+       c_retv_if(!data, NULL);
+
+       int attendee_count = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_get_child_record_count(record, _calendar_event.calendar_attendee, (unsigned int *)&attendee_count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_count() is failed(%x)", error);
+
+       if (!attendee_count)
+               return NULL;
+
+       Evas_Object *item = cal_dialogue_append_item(box, "1icon", NULL, NULL);
+
+       Evas_Object *multibutton_entry = __cal_detail_add_multibutton_entry(item, data);
+
+       __cal_detail_set_multibutton_entry_item(multibutton_entry, record);
+
+       elm_object_part_content_set(item, "elm.icon", multibutton_entry);
+
+       Evas_Object *attendee_status_button = elm_button_add(item);
+       c_retv_if(!attendee_status_button, item);
+
+       cal_util_set_controlbar_button(attendee_status_button, NULL, "reveal/extended", __cal_detail_attendee_status_button_callback, data);
+
+       elm_object_part_content_set(item, "elm.icon.2", attendee_status_button);
+
+       return item;
+}
+
+static void __cal_detail_get_save_to_text(int calendar_book_id, char *buf, int sz)
+{
+       char *str = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       calendar_record_h calendar = NULL;
+
+       error = calendar_db_get_record(_calendar_book._uri, calendar_book_id, &calendar);
+       c_ret_if(error != CALENDAR_ERROR_NONE);
+
+       if (calendar_book_id == DEFAULT_EVENT_CALENDAR_BOOK_ID)
+               str =  C_("IDS_CLD_BODY_MY_CALENDAR");
+       else if (calendar_book_id == DEFAULT_TODO_CALENDAR_BOOK_ID)
+               str =  C_("IDS_TASK_BODY_MY_TASK");
+       else {
+               error = calendar_record_get_str_p(calendar, _calendar_book.name, &str);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+       }
+
+       snprintf(buf, sz, "%s", str);
+
+       error = calendar_record_destroy(calendar, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+}
+
+static void __cal_detail_ug_update_saveto_language(Evas_Object *item, calendar_record_h record)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text.1", C_("IDS_ST_BODY_SAVE_TO"));
+
+       char calendar_name[128] = {0};
+
+       __cal_detail_get_save_to_text(_calendar_get_calendar_index(record), calendar_name, sizeof(calendar_name));
+
+       elm_object_part_text_set(item, "elm.text.2", calendar_name);
+}
+
+static Evas_Object * __cal_detail_ug_add_save_to(Evas_Object *box, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retv_if(!box, NULL);
+       c_retv_if(!record, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(box, "2text", NULL, NULL);
+
+       __cal_detail_ug_update_saveto_language(item, record);
+
+       return item;
+}
+
+static void __cal_detail_ug_add_dialogue_item(cal_detail_ug_data *data)
+{
+       c_ret_if(!data);
+
+       Evas_Object *dialogue = data->dialogue;
+
+       calendar_record_h record = data->record;
+
+       calendar_record_h instance = data->instance;
+
+       Evas_Object *box = cal_dialogue_get_box(dialogue);
+
+       data->title = __cal_detail_ug_add_title(box, record);
+
+       if (!instance)
+               instance = record;
+
+       if (!_calendar_is_task_record(instance)) {
+               data->from = __cal_detail_ug_add_start_time(box, instance);
+
+               data->to = __cal_detail_ug_add_end_time(box, instance);
+       } else
+               data->due = __cal_detail_ug_add_due_time(box, instance);
+
+       data->reminder = __cal_detail_ug_add_reminder(box, record);
+
+       if (!_calendar_is_task_record(record))
+               data->recurrence = __cal_detail_ug_add_recurrence(box, record);
+
+       data->note = __cal_detail_ug_add_note(box, record);
+
+       if (_calendar_is_eas_record(record)) {
+               if (!_calendar_is_task_record(record))
+                       data->attendee = __cal_detail_ug_add_attendee(box, record, data);
+
+       }
+
+       data->save_to = __cal_detail_ug_add_save_to(box, record);
+}
+
+static Evas_Object * __cal_detail_ug_create_dialogue(cal_detail_ug_data *data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!data, NULL);
+
+       Evas_Object *parent = data->naviframe;
+
+       Evas_Object *dialogue = cal_dialogue_create(parent);
+
+       data->dialogue = dialogue;
+
+       __cal_detail_ug_add_dialogue_item(data);
+
+       return dialogue;
+}
+
+static void inline __cal_detail_ug_clone_record(const calendar_record_h source_record, calendar_record_h *target_record)
+{
+       CAL_FN_START;
+
+       c_ret_if(!source_record);
+       c_ret_if(!target_record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_clone(source_record, target_record);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+}
+
+static inline void __cal_detail_ug_update_record(calendar_record_h *record)
+{
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int record_index = _calendar_get_record_index(*record);
+       c_ret_if(record_index < 0);
+
+       error = calendar_record_destroy(*record, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+
+       *record = _calendar_get_record_with_index(record_index);
+}
+
+static void __cal_detail_update_view(const char* view_uri, void* user_data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!user_data);
+
+       cal_detail_ug_data *data = user_data;
+
+       __cal_detail_ug_update_record(&data->record);
+
+       Evas_Object *dialogue = data->dialogue;
+
+       cal_dialogue_delete_all_items(dialogue);
+
+       __cal_detail_ug_add_dialogue_item(data);
+}
+
+static void __cal_detail_remove_db_changed_callback(cal_detail_ug_data *data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_remove_changed_cb(_calendar_event._uri, __cal_detail_update_view, data);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);
+
+       error = calendar_db_remove_changed_cb(_calendar_todo._uri, __cal_detail_update_view, data);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);
+}
+
+static void __cal_detail_add_db_changed_callback(cal_detail_ug_data *data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_add_changed_cb(_calendar_event._uri, __cal_detail_update_view, data);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);
+
+       error = calendar_db_add_changed_cb(_calendar_todo._uri, __cal_detail_update_view, data);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);
+}
+
+static void __cal_detail_ug_edit_ug_result_callback(ui_gadget_h ug, service_h result, void *priv)
+{
+       CAL_FN_START;
+
+       c_ret_if(!result);
+       c_ret_if(!priv);
+
+       int record_index = 0;
+       long long int base_time = 0;
+
+       char *value = NULL;
+
+       int ret = service_get_extra_data(result, "record_index", &value);
+       c_warn_if(ret != SERVICE_ERROR_NONE, "service_get_extra_data() is failed(%x)", ret);
+
+       if (CAL_STRLEN(value))
+               record_index = atoi(value);
+
+       CAL_FREE(value);
+
+       ret = service_get_extra_data(result, "base_time", &value);
+       c_warn_if(ret != SERVICE_ERROR_NONE, "service_get_extra_data() is failed(%x)", ret);
+
+       base_time = strtoll(value, NULL, 10);
+
+       CAL_FREE(value);
+
+       cal_detail_ug_data *data = priv;
+
+       calendar_error_e error = calendar_record_destroy(data->record, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+
+       data->record = _calendar_get_record_with_index(record_index);
+
+       if (data->instance) {
+               error = calendar_record_destroy(data->instance, true);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+
+               data->instance = NULL;
+       }
+
+       if(!_calendar_is_task_record(data->record))
+       {
+               struct tm tm_start = {0};
+
+               cal_util_convert_lli_to_tm(NULL, base_time, &tm_start);
+
+               struct tm tm_end = tm_start;
+
+               cal_util_update_tm_day(&tm_end, 1);
+
+               data->instance = _calendar_get_instance_from_record(data->record, &tm_start, &tm_end);
+               c_ret_if(!data->instance);
+       }
+
+       Evas_Object *dialogue = data->dialogue;
+
+       cal_dialogue_delete_all_items(dialogue);
+
+       __cal_detail_ug_add_dialogue_item(data);
+
+       __cal_detail_add_db_changed_callback(data);
+}
+
+static void __cal_detail_ug_edit_ug_destroy_callback(ui_gadget_h ug, void *priv)
+{
+       CAL_FN_START;
+
+       c_ret_if(!priv);
+
+       cal_detail_ug_data *data = priv;
+
+       Evas_Object *edit_button = elm_object_item_part_content_get(data->navi_item, "toolbar_button1");
+       if(elm_object_disabled_get(edit_button))
+               elm_object_disabled_set(edit_button, EINA_FALSE);
+
+       ug_destroy(ug);
+}
+
+static void __cal_detail_launch_edit_ug(cal_detail_ug_data *data, calendar_record_h record)
+{
+       c_ret_if(!data);
+
+       calendar_record_h cloned_record = NULL;
+
+       __cal_detail_ug_clone_record(record, &cloned_record);
+
+       char record_address[16] = {0};
+
+       snprintf(record_address, sizeof(record_address), "%p", (void *)cloned_record);
+
+       struct ug_cbs cbs = {0};
+
+       cbs.result_cb = __cal_detail_ug_edit_ug_result_callback;
+       cbs.destroy_cb = __cal_detail_ug_edit_ug_destroy_callback;
+       cbs.priv = data;
+
+       cal_launch_ug_with_var(data->ug, "calendar-edit-efl", &cbs, "record", record_address, NULL);
+
+       __cal_detail_remove_db_changed_callback(data);
+}
+
+static void __cal_detail_event_edit_popup_response_callback(void *user_data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!user_data);
+       c_ret_if(!obj);
+
+       Evas_Object *popup = user_data;
+       Evas_Object *button = obj;
+
+       cal_detail_ug_data *data = evas_object_data_get(popup, "data");
+
+       if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_BODY_ONLY_THIS_EVENT")))
+               __cal_detail_launch_edit_ug(data, data->instance);
+       else if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"))
+               || !strcmp(elm_object_text_get(button), S_("IDS_COM_SK_OK")))
+               __cal_detail_launch_edit_ug(data, data->record);
+
+       evas_object_del(popup);
+}
+
+static void __cal_detail_edit_button_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!user_data);
+
+       cal_detail_ug_data *data = user_data;
+
+       calendar_record_h record = data->record;
+
+       if (_calendar_is_recurrent_record(record)) {
+               cal_util_add_popup(data->window, "verticalbuttonstyle", NULL, C_("IDS_CLD_HEADER_EDIT_EVENT"), __cal_detail_event_edit_popup_response_callback, data,
+                       C_("IDS_CLD_BODY_ONLY_THIS_EVENT"), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"),
+                       S_("IDS_COM_SK_CANCEL"), NULL);
+       } else {
+               __cal_detail_launch_edit_ug(data, record);
+               elm_object_disabled_set(obj, EINA_TRUE);
+       }
+}
+
+static void __cal_detail_save_button_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!user_data);
+
+       cal_detail_ug_data *data = user_data;
+
+       calendar_record_h record = data->record;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_insert_record(record, NULL);
+       if (error != CALENDAR_ERROR_NONE) {
+               ERR("calendar_db_insert_record() is failed(%x)", error);
+       }
+}
+
+static void __cal_detail_delete_event(cal_detail_ug_data *data, Eina_Bool is_delete_all)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       calendar_record_h record = data->record;
+
+       if (!is_delete_all)
+               _calendar_delete_recurrence_instance(data->instance);
+       else
+               _calendar_delete_record(record);
+
+       ug_destroy_me(data->ug);
+}
+
+static void __cal_detail_delete_popup_response_event_callback(void *user_data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!user_data);
+       c_ret_if(!obj);
+
+       Evas_Object *popup = user_data;
+       Evas_Object *button = obj;
+
+       cal_detail_ug_data *data = evas_object_data_get(popup, "data");
+       c_ret_if(!data);
+
+       if (NULL != strstr(elm_object_text_get(button), S_("IDS_COM_BODY_DELETE")))
+               __cal_detail_delete_event(data, EINA_TRUE);
+       else if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_BODY_ONLY_THIS_EVENT")))
+               __cal_detail_delete_event(data, EINA_FALSE);
+       else if (!strcmp(elm_object_text_get(button), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS")))
+               __cal_detail_delete_event(data, EINA_TRUE);
+
+       evas_object_del(popup);
+}
+
+static inline void __cal_detail_show_task_delete_popup(cal_detail_ug_data *data, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       cal_util_add_popup(data->window, NULL, NULL, S_("IDS_COM_POP_DELETE_Q"), __cal_detail_delete_popup_response_event_callback, data,
+                               S_("IDS_COM_BODY_DELETE"), S_("IDS_COM_SK_CANCEL"), NULL);
+}
+
+static inline void __cal_detail_show_event_delete_popup(cal_detail_ug_data *data, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       if (_calendar_is_recurrent_record(record)) {
+               cal_util_add_popup(data->window, "verticalbuttonstyle", NULL, C_("IDS_CLD_OPT_DELETE_EVENT"), __cal_detail_delete_popup_response_event_callback, data,
+                       C_("IDS_CLD_BODY_ONLY_THIS_EVENT"), C_("IDS_CLD_POP_ALL_REPETITIVE_EVENTS"),S_("IDS_COM_SK_CANCEL"), NULL);
+       }
+       else {
+               cal_util_add_popup(data->window, NULL, NULL, S_("IDS_COM_POP_DELETE_Q"), __cal_detail_delete_popup_response_event_callback, data,
+                       S_("IDS_COM_BODY_DELETE"), S_("IDS_COM_SK_CANCEL"), NULL);
+       }
+}
+
+static void __cal_detail_delete_button_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!user_data);
+       c_ret_if(!obj);
+
+       cal_detail_ug_data *data = user_data;
+
+       Evas_Object *ctx_popup = obj;
+
+       calendar_record_h record = data->record;
+       c_ret_if(!record);
+
+       evas_object_del(ctx_popup);
+
+       if (_calendar_is_task_record(record))
+               __cal_detail_show_task_delete_popup(data, record);
+       else
+               __cal_detail_show_event_delete_popup(data, record);
+}
+
+static void  __cal_detail_share_popup_hide_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+
+       Evas_Object *popup = data;
+
+       evas_object_del(popup);
+}
+
+static void __cal_detail_via_message_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!user_data);
+       c_ret_if(!obj);
+
+       cal_detail_ug_data *data = user_data;
+
+       _calendar_export_record_to_vcs(data->record, CAL_MESSAGE_VCS);
+
+       cal_launch_ug_with_var(data->ug, CAL_MESSAGE_COMPOSER_UG, NULL, "ATTACHFILE", CAL_MESSAGE_VCS, NULL);
+
+       evas_object_del(obj);
+}
+
+static void __cal_detail_via_email_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!user_data);
+       c_ret_if(!obj);
+
+       cal_detail_ug_data *data = user_data;
+
+       _calendar_export_record_to_vcs(data->record, CAL_EMAIL_VCS);
+
+       cal_launch_ug_with_var(data->ug, CAL_EMAIL_COMPOSER_UG, (struct ug_cbs *)data, "RUN_TYPE", "5", "ATTACHMENT", CAL_EMAIL_VCS, NULL);
+
+       evas_object_del(obj);
+}
+
+static void __cal_detail_via_bluetooth_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!user_data);
+       c_ret_if(!obj);
+
+       cal_detail_ug_data *data = user_data;
+
+       _calendar_export_record_to_vcs(data->record, CAL_BLUETOOTH_VCS);
+
+       cal_launch_ug_with_var(data->ug, CAL_BLUETOOTH_UG, NULL, "launch-type", "send", "filecount", "1", "files", CAL_BLUETOOTH_VCS, NULL);
+
+       evas_object_del(obj);
+}
+
+static void __cal_detail_share_button_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!user_data);
+       c_ret_if(!obj);
+
+       cal_detail_ug_data *data = user_data;
+
+       Evas_Object *ctx_popup = obj;
+
+       evas_object_del(ctx_popup);
+
+       Evas_Object *popup = cal_util_add_popup(data->window, NULL, S_("IDS_COM_BUTTON_SHARE"), NULL, __cal_detail_share_popup_hide_callback, data, S_("IDS_COM_BODY_CLOSE"), NULL);
+       c_ret_if(!popup);
+
+       evas_object_data_set(popup, "priv", data);
+
+       Elm_Object_Item *popup_item = elm_popup_item_append(popup, S_("IDS_COM_BODY_MESSAGE"), NULL, __cal_detail_via_message_callback, data);
+       c_ret_if(!popup_item);
+
+       popup_item = elm_popup_item_append(popup, S_("IDS_COM_BODY_EMAIL"), NULL, __cal_detail_via_email_callback, data);
+       c_ret_if(!popup_item);
+
+       popup_item = elm_popup_item_append(popup, S_("IDS_COM_BODY_BLUETOOTH"), NULL, __cal_detail_via_bluetooth_callback, data);
+       c_ret_if(!popup_item);
+}
+
+static void __cal_detail_more_button_callback(void *user_data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!user_data);
+       c_ret_if(!obj);
+
+       cal_detail_ug_data *data = user_data;
+
+       Evas_Object *ctx_popup = elm_ctxpopup_add(data->naviframe);
+       c_ret_if(!ctx_popup);
+
+       elm_ctxpopup_direction_priority_set(ctx_popup, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP, ELM_CTXPOPUP_DIRECTION_UP);
+
+       Elm_Object_Item *item = NULL;
+
+       item = elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BODY_DELETE"), NULL, __cal_detail_delete_button_callback, data);
+       c_ret_if(!item);
+
+       item = elm_ctxpopup_item_append(ctx_popup, S_("IDS_COM_BUTTON_SHARE"), NULL, __cal_detail_share_button_callback, data);
+       c_ret_if(!item);
+
+       Evas_Coord_Rectangle r = {0};
+
+       cal_util_get_geometry(&r, obj);
+
+       evas_object_move(ctx_popup, r.x + r.w/2, r.y + r.h/2);
+
+       evas_object_show(ctx_popup);
+}
+
+static Evas_Object *__cal_detail_ug_create_layout(Evas_Object *parent, cal_detail_ug_data *data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!parent, NULL);
+       c_retv_if(!data, NULL);
+
+       Evas_Object *base_layout = cal_util_add_layout(parent, NULL);
+       c_retv_if(!base_layout, NULL);
+
+       Evas_Object *naviframe = elm_naviframe_add(base_layout);
+       if (!naviframe) {
+               ERR("elm_naviframe_add() is failed");
+
+               evas_object_del(base_layout);
+
+               return NULL;
+       }
+
+       evas_object_show(naviframe);
+
+       Evas_Object *bg = cal_util_add_bg(base_layout, EINA_FALSE);
+       if (!bg) {
+               ERR("cal_util_add_bg() is failed");
+
+               evas_object_del(base_layout);
+
+               return NULL;
+       }
+
+       data->base_layout = base_layout;
+       data->naviframe = naviframe;
+
+       cal_util_initialize_timezone();
+
+       Evas_Object *dialogue = __cal_detail_ug_create_dialogue(data);
+
+       Evas_Object *back_button = __cal_detail_ug_add_back_button(data);
+
+       Elm_Object_Item *item = NULL;
+
+       if (_calendar_is_task_record(data->record))
+               item = elm_naviframe_item_push(naviframe, C_("IDS_CLD_BODY_TASK_DETAILS"), back_button, NULL, dialogue, NULL);
+       else
+               item = elm_naviframe_item_push(naviframe, C_("IDS_CLD_BODY_EVENT_DETAILS"), back_button, NULL, dialogue, NULL);
+       c_warn_if(!item, "elm_naviframe_item_push() is failed");
+       data->navi_item = item;
+
+       cal_util_add_toolbar_button(naviframe, "toolbar_button1", S_("IDS_COM_BODY_EDIT"), __cal_detail_edit_button_callback, data);
+
+       if (0 < _calendar_get_record_index(data->record)) {
+
+               Evas_Object *more_button = cal_util_add_toolbar_button(naviframe, "toolbar_more_btn", NULL, __cal_detail_more_button_callback, data);
+               elm_object_style_set(more_button, "naviframe/more/default");
+       } else {
+               cal_util_add_toolbar_button(naviframe, "toolbar_button1", S_("IDS_COM_OPT_SAVE"), __cal_detail_save_button_callback, data);
+       }
+
+       elm_object_part_content_set(base_layout, "elm.swallow.content", naviframe);
+       elm_object_part_content_set(base_layout, "elm.swallow.bg", bg);
+
+       return base_layout;
+
+}
+
+static calendar_record_h inline __cal_detail_ug_get_origin_record(const calendar_record_h instance)
+{
+       CAL_FN_START;
+
+       c_retv_if(!instance, NULL);
+
+       int index = _calendar_get_record_index(instance);
+
+       return _calendar_get_record_with_index(index);
+}
+
+static void *__cal_detail_ug_create_callback(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ug, NULL);
+       c_retv_if(!service, NULL);
+       c_retv_if(!priv, NULL);
+       c_retv_if(mode != UG_MODE_FULLVIEW, NULL);
+
+       cal_detail_ug_data *data = priv;
+
+       data->ug = ug;
+
+       int cid = 0;
+       char *item_type = NULL;
+       char *index = NULL;
+       char *path = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int r = service_get_extra_data(service, "index", &index);
+       if (r == SERVICE_ERROR_NONE)
+               cid = atoi(index);
+
+       r = service_get_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, &item_type);
+       if (r == SERVICE_ERROR_NONE) {
+
+               if (!CAL_STRCMP(item_type, CAL_APPCONTROL_ITEM_TYPE_EVENT)) {
+
+                       r = service_get_extra_data(service, CAL_APPCONTROL_EVENT_ID, &index);
+                       if (r != SERVICE_ERROR_NONE) {
+                               ERR("service_get_extra_data(%s) is failed(%x)", CAL_APPCONTROL_EVENT_ID, r);
+
+                               CAL_FREE(index);
+
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       cid = atoi(index);
+                       calendar_record_h record = _calendar_get_record_with_index(cid);
+                       c_retv_if(!record, NULL);
+
+                       calendar_record_destroy(record, true);
+
+               } else if (!CAL_STRCMP(item_type, CAL_APPCONTROL_ITEM_TYPE_TODO)) {
+
+                       r = service_get_extra_data(service, CAL_APPCONTROL_TODO_ID, &index);
+                       if (r != SERVICE_ERROR_NONE) {
+                               ERR("service_get_extra_data(%s) is failed(%x)", CAL_APPCONTROL_TODO_ID, r);
+
+                               CAL_FREE(index);
+
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       cid = atoi(index);
+                       calendar_record_h record = _calendar_get_record_with_index(cid);
+                       c_retv_if(!record, NULL);
+
+                       calendar_record_destroy(record, true);
+
+               } else if (!CAL_STRCMP(item_type, CAL_APPCONTROL_ITEM_TYPE_VCS)) {
+
+                       r = service_get_extra_data(service, CAL_APPCONTROL_VCS_PATH, &path);
+                       if (r != SERVICE_ERROR_NONE) {
+                               ERR("service_get_extra_data(%s) is failed(%x)", CAL_APPCONTROL_VCS_PATH, r);
+
+                               CAL_FREE(path);
+
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       FILE * file = fopen(path, "r");
+                       if (!file) {
+                               ERR("fopen(%s) is failed.", path);
+
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       struct stat st;
+                       r = stat(path, &st);
+                       c_warn_if(r == -1, "stat(%s) is failed(%d)", path, errno);
+
+                       int size = st.st_size;
+                       char *raw_data = calloc(size + 1, sizeof(char));
+                       if (!raw_data) {
+                               ERR("calloc is failed.");
+
+                               fclose( file );
+
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       r = fread(raw_data, 1, size, file);
+                       fclose( file );
+                       c_retv_if(r < 0, NULL);
+
+                       calendar_list_h list = NULL;
+
+                       error = calendar_vcalendar_parse_to_calendar(raw_data, &list);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_vcalendar_parse_to_calendar() is failed(%x)", error);
+
+                       if (list) {
+                               calendar_record_h record = NULL;
+                               error = calendar_list_get_current_record_p(list, &record);
+                               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+                               error = calendar_record_clone(record, &data->record);
+                               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+
+                               error = calendar_list_destroy(list, true);
+                       }
+
+                       free(raw_data);
+               }
+       }
+
+       if (!data->record) {
+               if (0 < cid)
+                       data->record = _calendar_get_record_with_index(cid);
+               else {
+                       char *record_address = NULL;
+
+                       r = service_get_extra_data(service, "record", &record_address);
+                       if (r != SERVICE_ERROR_NONE) {
+                               ERR("service_get_extra_data(record) is failed(%x)", r);
+                       } else {
+                               data->record = (calendar_record_h)strtoul(record_address, NULL, 16);
+                               c_warn_if(!data->record, "strtol(%s, NULL, 16) is failed", record_address);
+                       }
+
+                       _calendar_record_type record_type = _calendar_get_record_type(data->record);
+
+                       if (record_type != _CALENDAR_RECORD_TYPE_EVENT && record_type != _CALENDAR_RECORD_TYPE_TODO) {
+                               data->instance = data->record;
+                               data->record = __cal_detail_ug_get_origin_record(data->instance);
+                       }
+
+                       CAL_FREE(record_address);
+               }
+
+       }
+
+       CAL_FREE(item_type);
+
+       CAL_FREE(index);
+
+       CAL_FREE(path);
+
+       Evas_Object *parent = ug_get_parent_layout(ug);
+       c_retv_if(!parent, NULL);
+
+       data->window = ug_get_window();
+       c_retv_if(!data->window, NULL);
+
+       elm_theme_extension_add(NULL, "/usr/apps/"CALENDAR_PACKAGE"/res/edje/theme.edj");
+
+       Evas_Object *base = __cal_detail_ug_create_layout(parent, data);
+       c_retv_if(!base, NULL);
+
+       __cal_detail_add_db_changed_callback(data);
+
+       return base;
+}
+
+static void __cal_detail_ug_destroy_callback(ui_gadget_h ug, service_h service, void *priv)
+{
+       CAL_FN_START;
+
+       c_ret_if(!priv);
+
+       cal_detail_ug_data *data = priv;
+
+       __cal_detail_remove_db_changed_callback(data);
+
+       if (data->mouse_down_event_handler)
+               ecore_event_handler_del(data->mouse_down_event_handler);
+
+       cal_util_delete_evas_object(&data->base_layout);
+}
+
+static void __cal_detail_ug_key_callback(ui_gadget_h ug, enum ug_key_event evt, service_h data, void *priv)
+{
+       c_ret_if(!ug);
+
+       switch (evt) {
+       case UG_KEY_EVENT_END:
+               ug_destroy_me(ug);
+               break;
+       default:
+               break;
+       }
+}
+
+static void __cal_detail_ug_update_button_language(Evas_Object *naviframe, calendar_record_h record)
+{
+       c_ret_if(!naviframe);
+
+       Elm_Object_Item *item = elm_naviframe_top_item_get(naviframe);
+       c_ret_if(!item);
+
+       Evas_Object *button = elm_object_item_part_content_get(item, "toolbar_button1");
+       c_ret_if(!button);
+
+       elm_object_text_set(button, S_("IDS_COM_BODY_EDIT"));
+
+       if (_calendar_get_record_index(record) <= 0)
+               elm_object_text_set(button, S_("IDS_COM_OPT_SAVE"));
+}
+
+static void __cal_detail_ug_update_language(cal_detail_ug_data *data)
+{
+       c_ret_if(!data);
+       c_ret_if(!data->record);
+
+
+
+       calendar_record_h record = data->record;
+
+       __cal_detail_ug_update_title_language(data->title, record);
+
+       Eina_Bool is_task_record = _calendar_is_task_record(record);
+
+       if (!is_task_record) {
+
+               __cal_detail_ug_update_from_language(data->from);
+
+               __cal_detail_ug_update_to_language(data->to);
+
+       } else
+               __cal_detail_ug_update_due_language(data->due);
+
+       __cal_detail_ug_update_reminder_language(data->reminder, record);
+
+       if (!is_task_record)
+               __cal_detail_ug_update_recurrence_language(data->recurrence, record);
+
+       __cal_detail_ug_update_saveto_language(data->save_to, record);
+
+}
+
+static void __cal_detail_ug_update_region(cal_detail_ug_data *data)
+{
+       c_ret_if(!data);
+       c_ret_if(!data->record);
+
+       calendar_record_h record = data->record;
+
+       if (!_calendar_is_task_record(data->record)) {
+
+               __cal_detail_ug_update_from_region(data->from, record);
+
+               __cal_detail_ug_update_to_region(data->to, record);
+
+       } else
+               __cal_detail_ug_update_due_region(data->to, record);
+}
+
+static void __cal_detail_ug_event_callback(ui_gadget_h ug, enum ug_event event, service_h service, void *priv)
+{
+       c_ret_if(!ug);
+       c_ret_if(!priv);
+
+       switch (event) {
+       case UG_EVENT_LANG_CHANGE:
+               __cal_detail_ug_update_language((cal_detail_ug_data *)priv);
+               break;
+       case UG_EVENT_REGION_CHANGE:
+               __cal_detail_ug_update_region((cal_detail_ug_data *)priv);
+               break;
+
+       case UG_EVENT_ROTATE_PORTRAIT:
+       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+               break;
+       case UG_EVENT_ROTATE_LANDSCAPE:
+       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+               break;
+
+       default:
+               break;
+       }
+}
+
+API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ops, -1);
+
+       cal_detail_ug_data *data = calloc(1, sizeof(cal_detail_ug_data));
+
+       ops->create = __cal_detail_ug_create_callback;
+       ops->destroy = __cal_detail_ug_destroy_callback;
+       ops->key_event = __cal_detail_ug_key_callback;
+       ops->event = __cal_detail_ug_event_callback;
+       ops->priv = data;
+       ops->opt = UG_OPT_INDICATOR_PORTRAIT_ONLY;
+
+       const char *path = bindtextdomain(CALENDAR, LOCALEDIR);
+       c_warn_if(!path, "bindtextdomain(%s, %s) is failed.", CALENDAR, LOCALEDIR);
+
+       __cal_detail_ug_initialize(data);
+
+       return 0;
+}
+
+API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ops);
+
+       __cal_detail_ug_finish();
+
+       cal_detail_ug_data *data = ops->priv;
+
+       free(data);
+}
diff --git a/ug/edit/CMakeLists.txt b/ug/edit/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..bfe1765
--- /dev/null
@@ -0,0 +1,16 @@
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(NEW_UG_EDIT_SRCS
+       edit-ug.c
+       edit-alarm.c
+       edit-repeat.c
+)
+
+ADD_DEFINITIONS("-DUGLOCALE=\"${UG_LOCALE}\"")
+
+SET(NEW_UGEDIT "ug-calendar-edit-efl")
+ADD_LIBRARY(${NEW_UGEDIT} SHARED ${NEW_UG_EDIT_SRCS})
+SET_TARGET_PROPERTIES(${NEW_UGEDIT} PROPERTIES COMPILE_FLAGS "${UG_CFLAGS}")
+TARGET_LINK_LIBRARIES(${NEW_UGEDIT} ${COMMON_LIB} ${UG_PKGS_LDFLAGS})
+
+INSTALL(TARGETS ${NEW_UGEDIT} DESTINATION ${UG_LIB})
diff --git a/ug/edit/edit-alarm.c b/ug/edit/edit-alarm.c
new file mode 100755 (executable)
index 0000000..bb41d71
--- /dev/null
@@ -0,0 +1,752 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include "edit-alarm.h"
+#include "radio-group.h"
+#include "reminder.h"
+#include "gi-radio-timepicker.h"
+#include "save-cancel.h"
+
+typedef struct {
+       Evas_Object *naviframe;
+       Evas_Object *ly; // self
+
+       cal_edit_alarm_changed_callback alarm_changed_callback;
+       void* alarm_changed_callback_data;
+
+       Evas_Object *sc; // scroller
+       Evas_Object *bx; // box
+
+       cal_radio_group_h radio_group;
+
+       Elm_Object_Item* on_a_day;
+
+       cal_save_cancel_h save_cancel;
+
+       Evas_Object *e_custom;
+       Evas_Object *b_custom;
+       int bt_idx;
+
+       Elm_Object_Item *pre_selected_it;
+
+       Cal_Reminder reminder;
+
+       Evas_Object *ctx;
+
+       cal_edit_alarm_type alarm_type;
+} cal_edit_alarm_data;
+
+struct __cal_edit_alarm_button {
+       const char *label;
+       const char *plural_label;
+       int unit;
+};
+static struct __cal_edit_alarm_button cal_edit_alarm_button[] = {
+       { NULL, NULL, 1, },
+       { NULL, NULL, _HOUR, },
+       { NULL, NULL, _DAY, },
+       { NULL, NULL, _WEEK, },
+};
+
+static Elm_Entry_Filter_Limit_Size _limit_2char = {
+       .max_char_count = 2,
+};
+static Elm_Entry_Filter_Accept_Set _digit_only = {
+       .accepted = "0123456789",
+};
+
+static Elm_Genlist_Item_Class itc_seperator, itc_1text_1icon, itc_custom;
+
+typedef struct
+{
+       cal_edit_alarm_data *p;
+       int type;
+       int data;
+} cal_edit_alarm_item_data;
+
+enum cal_edit_alarm_genlist_item_type{
+       _GTYPE_SPEA = -1,
+       _GTYPE_OFF,
+       _GTYPE_ON_TIME,
+       _GTYPE_5_MIN,
+       _GTYPE_15_MIN,
+       _GTYPE_1_HOUR,
+       _GTYPE_1_DAY,
+       _GTYPE_1_WEEK,
+       _GTYPE_CUSTOMIZE,
+       _GTYPE_ON_A_DAY,
+       _GTYPE_MAX
+};
+
+static void __cal_edit_alarm_custom_ctx_selected_callback(void *data, Evas_Object *obj, void *ei);
+
+static void __cal_edit_alarm_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       cal_edit_alarm_data *p = data;
+
+       cal_radio_group_destroy(p->radio_group);
+       if (p->save_cancel)
+               cal_save_cancel_destroy(p->save_cancel);
+
+       if (p->ctx) {
+               evas_object_del(p->ctx);
+       }
+
+       free(p);
+}
+
+static void __cal_edit_alarm_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       cal_edit_alarm_data *p;
+       Evas_Event_Mouse_Up *ev = ei;
+       int val = (int)data;
+
+       if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+
+       cal_radio_group_select_radio(p->radio_group, val);
+}
+
+static void __cal_edit_alarm_set_custom(cal_edit_alarm_data *p)
+{
+       elm_object_focus_set(p->e_custom, EINA_TRUE);
+       elm_entry_cursor_end_set(p->e_custom);
+}
+
+static inline void __cal_edit_alarm_set_button_label(cal_edit_alarm_data *p)
+{
+       if (1 < p->reminder.alarm_value)
+               elm_object_text_set(p->b_custom, _(cal_edit_alarm_button[p->bt_idx].plural_label));
+       else
+               elm_object_text_set(p->b_custom, _(cal_edit_alarm_button[p->bt_idx].label));
+}
+
+static void __cal_edit_alarm_custom_popup_hide_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj,  "obj is null");
+
+       cal_edit_alarm_data* p = data;
+       p->ctx = NULL;
+       evas_object_del(obj);
+}
+
+static void __cal_edit_create_ctx_popup(cal_edit_alarm_data* p)
+{
+       c_retm_if(!p, "p is NULL.");
+
+       Evas_Object *ctx = p->ctx;
+
+       if (ctx)
+               evas_object_del(ctx);
+
+       p->ctx = elm_ctxpopup_add(p->naviframe);
+       c_retm_if(!p->ctx, "elm_ctxpopup_add(p->ad->naviframe) returned null");
+       elm_object_focus_allow_set(p->ctx, EINA_FALSE);
+
+       ctx = p->ctx;
+       evas_object_data_set(ctx, "priv", p);
+
+       evas_object_smart_callback_add(ctx, "dismissed", __cal_edit_alarm_custom_popup_hide_callback, p);
+       elm_ctxpopup_item_append(ctx, S_("IDS_COM_BODY_MINUTE_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)0);
+       elm_ctxpopup_item_append(ctx, S_("IDS_COM_POP_HOUR_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)1);
+       elm_ctxpopup_item_append(ctx, C_("IDS_COM_POP_DAY_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)2);
+       elm_ctxpopup_item_append(ctx, C_("IDS_COM_POP_WEEK_LC"), NULL, __cal_edit_alarm_custom_ctx_selected_callback, (const void *)3);
+}
+
+static void __cal_edit_alarm_custom_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       cal_edit_alarm_data* p = data;
+       c_retm_if(!p, "p is null");
+
+       __cal_edit_create_ctx_popup(p);
+       c_retm_if(!p->ctx, "p is NULL.");
+       Evas_Coord x, y, w, h;
+       evas_object_geometry_get(p->b_custom, &x, &y, &w, &h);
+       evas_object_move(p->ctx, x+w/2, y);
+       evas_object_show(p->ctx);
+}
+
+static void __cal_edit_alarm_custom_ctx_selected_callback(void *data, Evas_Object *obj, void *ei)
+{
+       cal_edit_alarm_data* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is NULL.");
+
+       int index = (int)data;
+       p->bt_idx = index;
+       __cal_edit_alarm_set_button_label(p);
+
+       __cal_edit_alarm_set_custom(p);
+       cal_radio_group_select_radio(p->radio_group, _GTYPE_CUSTOMIZE);
+       __cal_edit_alarm_custom_popup_hide_callback(p,p->ctx,ei);
+}
+
+static Evas_Object* __cal_edit_alarm_add_button(Evas_Object *parent, cal_edit_alarm_data *p)
+{
+       Evas_Object *bt;
+
+       bt = elm_button_add(parent);
+       if (!bt)
+               return NULL;
+
+       elm_object_focus_allow_set(bt, EINA_FALSE);
+       evas_object_propagate_events_set(bt, EINA_FALSE);
+       evas_object_smart_callback_add(bt, "clicked", __cal_edit_alarm_custom_button_callback, p);
+
+       return bt;
+}
+
+static char *__cal_edit_alarm_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data*)data;
+       int type = (int)item_data->type;
+       char buf[1024] = {0};
+
+       if (!CAL_STRCMP(part, "elm.text"))
+       {
+               Cal_Reminder reminder;
+               switch (type)
+               {
+               case _GTYPE_OFF:
+                       reminder.tick_unit = CALENDAR_ALARM_NONE;
+                       reminder.alarm_value = 0;
+                       cal_reminder_get_string(&reminder, buf, sizeof(buf));
+                       break;
+               case _GTYPE_ON_TIME:
+               case _GTYPE_5_MIN:
+               case _GTYPE_15_MIN:
+               case _GTYPE_1_HOUR:
+               case _GTYPE_1_DAY:
+               case _GTYPE_1_WEEK:
+                       reminder.tick_unit = CALENDAR_ALARM_TIME_UNIT_MINUTE;
+                       reminder.alarm_value = item_data->data;
+                       cal_reminder_get_string(&reminder, buf, sizeof(buf));
+                       break;
+               case _GTYPE_CUSTOMIZE:
+                       break;
+               case _GTYPE_ON_A_DAY:
+               default:
+                       // error
+                       break;
+               }
+       }
+
+       return strdup(buf);
+}
+
+static char *__cal_edit_alarm_get_genlist_item_custom_label(void *data, Evas_Object *obj, const char *part)
+{
+       return strdup(C_("IDS_CLD_BODY_BEFORE_LC"));
+}
+
+static void __cal_edit_alarm_genlist_item_delete_callback(void *data, Evas_Object *obj)
+{
+       CAL_ASSERT(data);
+       cal_edit_alarm_item_data*item_data = (cal_edit_alarm_item_data*)data;
+
+       CAL_ASSERT(item_data->p);
+
+       free(item_data);
+}
+
+static Eina_Bool __cal_edit_alarm_get_genlist_item_state(void *data, Evas_Object *obj, const char *part)
+{
+       return EINA_FALSE;
+}
+
+static Evas_Object* __cal_edit_alarm_add_radio(Evas_Object *dg, int val, cal_edit_alarm_data *p, cal_edit_alarm_item_data *item_data)
+{
+       Evas_Object *rd;
+
+       rd = elm_radio_add(dg);
+       c_retvm_if(!rd, NULL, "rd is NULL");
+
+       elm_object_part_content_set(rd, "content", rd);
+       cal_radio_group_set_radio_object(p->radio_group, val, rd);
+
+       evas_object_show(rd);
+       evas_object_data_set(rd, "priv", p);
+       evas_object_event_callback_add(rd, EVAS_CALLBACK_MOUSE_UP, __cal_edit_alarm_clicked_callback, (void *)val);
+
+       return rd;
+}
+
+static void __cal_edit_alarm_entry_unfocused(void *data, Evas_Object *obj, void *event_info)
+{
+       cal_edit_alarm_data *p = (cal_edit_alarm_data *)data;
+
+       char min[8] = {0,};
+       snprintf(min, 7, "%d", p->reminder.alarm_value);
+       elm_entry_entry_set(p->e_custom, min);
+}
+
+static Evas_Object* __cal_edit_alarm_add_entry(Evas_Object *parent, cal_edit_alarm_data *p, cal_edit_alarm_item_data *item_data)
+{
+       Evas_Object *e;
+       Ecore_IMF_Context *ic;
+
+       e = elm_entry_add(parent);
+       if (!e)
+               return NULL;
+
+       elm_object_style_set(e, "font_color_black");
+       elm_entry_single_line_set(e, EINA_TRUE);
+       elm_entry_markup_filter_append(e, elm_entry_filter_limit_size, &_limit_2char);
+       elm_entry_markup_filter_append(e, elm_entry_filter_accept_set, &_digit_only);
+       elm_entry_input_panel_layout_set(e, ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
+       elm_entry_context_menu_disabled_set(e, EINA_TRUE);
+
+       ic = elm_entry_imf_context_get(e);
+       if (!ic)
+               return NULL;
+
+       cal_save_cancel_set_input_panel_callback_for_ug(p->save_cancel, e);
+
+       evas_object_smart_callback_add(e, "unfocused", __cal_edit_alarm_entry_unfocused, p);
+
+       elm_entry_text_style_user_push(e, "DEFAULT='align=center'");
+
+       return e;
+}
+
+static void __cal_edit_alarm_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data *)data;
+       cal_edit_alarm_data *p = item_data->p;
+       const char *s = elm_entry_entry_get(p->e_custom);
+       p->reminder.alarm_value = atoi(s);
+
+       __cal_edit_alarm_set_button_label(p);
+}
+
+static void __cal_edit_alarm_customize_radio_changed_cb(unsigned int index, bool selected, void* data)
+{
+       cal_edit_alarm_data *p = (cal_edit_alarm_data*)data;
+       if (selected) {
+               elm_object_focus_set(p->e_custom, EINA_TRUE);
+               elm_entry_cursor_end_set(p->e_custom);
+       } else {
+               elm_object_focus_set(p->e_custom, EINA_FALSE);
+       }
+}
+
+static Evas_Object* __cal_edit_alarm_get_genlist_item_custom_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!obj, NULL, "obj is null");
+
+       cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data*)data;
+       cal_edit_alarm_data *p = item_data->p;
+
+       if (!CAL_STRCMP(part, "radio")) {
+               Evas_Object *rd = elm_radio_add(obj);
+               c_retv_if(!rd, NULL);
+               cal_radio_group_set_radio_object(p->radio_group, item_data->type, rd);
+               cal_radio_group_set_changed_callback(p->radio_group, item_data->type, __cal_edit_alarm_customize_radio_changed_cb, p);
+               return rd;
+       } else if (!CAL_STRCMP(part, "button")) {
+               Evas_Object *bt = __cal_edit_alarm_add_button(obj, p);
+               c_retv_if(!bt, NULL);
+               elm_object_style_set(bt, "sweep");
+               elm_object_part_content_set(obj, "", bt);
+               p->b_custom = bt;
+               __cal_edit_alarm_set_button_label(p);
+               return bt;
+       } else if (!CAL_STRCMP(part, "input_sw")) {
+               Evas_Object *entry = __cal_edit_alarm_add_entry(obj, p, item_data);
+               c_retv_if(!entry, NULL);
+               evas_object_smart_callback_add(entry, "changed", __cal_edit_alarm_entry_changed_callback, item_data);
+               char buf[16];
+               if (cal_radio_group_get_selected_radio(p->radio_group) == _GTYPE_CUSTOMIZE)
+                       snprintf(buf, sizeof(buf), "%d", p->reminder.alarm_value);
+               else
+                       snprintf(buf, sizeof(buf), "%d", 0);
+               elm_entry_entry_set(entry, buf);
+               p->e_custom = entry;
+               return entry;
+       } else {
+               c_retvm_if(1, NULL, "part %s unattended for", part);
+       }
+       return NULL;
+}
+
+static Evas_Object *__cal_edit_alarm_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!obj, NULL, "obj is null");
+
+       Evas_Object *e_obj = NULL;
+       cal_edit_alarm_item_data *item_data = (cal_edit_alarm_item_data*)data;
+       cal_edit_alarm_data *p = item_data->p;
+
+       if (!CAL_STRCMP(part, "elm.icon")) {
+               e_obj = __cal_edit_alarm_add_radio(obj, item_data->type, p, item_data);
+       }
+
+       return e_obj;
+}
+
+static void __cal_edit_alarm_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       cal_edit_alarm_item_data *item_data;
+       Elm_Object_Item *it = elm_genlist_selected_item_get(obj);
+
+       if (it)
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       item_data = (cal_edit_alarm_item_data *)elm_object_item_data_get(it);
+
+       int type = item_data->type;
+       cal_edit_alarm_data *p = item_data->p;
+
+       switch ( type )
+       {
+       case _GTYPE_OFF:
+       case _GTYPE_ON_TIME:
+       case _GTYPE_5_MIN:
+       case _GTYPE_15_MIN:
+       case _GTYPE_1_HOUR:
+       case _GTYPE_1_DAY:
+       case _GTYPE_1_WEEK:
+       case _GTYPE_CUSTOMIZE:
+               cal_radio_group_select_radio(p->radio_group, type);
+               break;
+       default:
+               break;
+       }
+
+       return;
+}
+
+static void __cal_edit_alarm_append_genlist_item_event(
+                               Evas_Object *genlist, cal_edit_alarm_data *p, int type, int data)
+{
+       cal_edit_alarm_item_data *item_data;
+       CAL_CALLOC(item_data, 1, cal_edit_alarm_item_data);
+
+       item_data->p = p;
+       item_data->type = type;
+       item_data->data = data;
+
+       if(_GTYPE_SPEA == type) {
+               Elm_Object_Item *it = elm_genlist_item_append(genlist, &itc_seperator, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+               elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       } else {
+               if(_GTYPE_CUSTOMIZE == item_data->type)
+                       elm_genlist_item_append(genlist, &itc_custom, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+               else
+                       elm_genlist_item_append(genlist, &itc_1text_1icon, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+       }
+}
+
+static void __cal_edit_alarm_append_genlist_item_todo(Evas_Object *genlist, cal_edit_alarm_data *p, int type, int data)
+{
+       cal_edit_alarm_item_data *item_data;
+       CAL_CALLOC(item_data, 1, cal_edit_alarm_item_data);
+
+       item_data->p = p;
+       item_data->type = type;
+       item_data->data = data;
+
+       if(_GTYPE_SPEA == item_data->type) {
+               Elm_Object_Item *it = elm_genlist_item_append(genlist, &itc_seperator, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+               elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       } else {
+               if(p->alarm_type == ALARM_TYPE_TODO_CUSTOM_ONLY) {
+                       if(_GTYPE_OFF == item_data->type)
+                               elm_genlist_item_append(genlist, &itc_1text_1icon, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+                       else
+                               free(item_data);
+               }
+               else {
+                       if(_GTYPE_CUSTOMIZE == item_data->type)
+                               elm_genlist_item_append(genlist, &itc_custom, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+                       else if(_GTYPE_5_MIN == item_data->type || _GTYPE_15_MIN == item_data->type || _GTYPE_1_HOUR == item_data->type)
+                               free(item_data);
+                       else
+                               elm_genlist_item_append(genlist, &itc_1text_1icon, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_alarm_genlist_item_select_callback, NULL);
+               }
+       }
+}
+
+static void __cal_edit_alarm_genlist_realized_callback(void *data, Evas_Object *obj, void *ei)
+{
+       cal_edit_alarm_item_data *item_data = elm_object_item_data_get((Elm_Object_Item *)ei);
+       c_ret_if(!item_data);
+
+       if (item_data->type == _GTYPE_OFF) {
+               elm_object_item_signal_emit((Elm_Object_Item *)ei, "elm,state,top", "");
+               return;
+       }
+
+       cal_edit_alarm_data *p = item_data->p;
+
+       if (p && p->alarm_type == ALARM_TYPE_EVENT) {
+               if (item_data->type == _GTYPE_CUSTOMIZE)
+                       elm_object_item_signal_emit((Elm_Object_Item *)ei, "elm,state,bottom", "");
+               else
+                       elm_object_item_signal_emit((Elm_Object_Item *)ei, "elm,state,center", "");
+       } else {
+               if (item_data->type == _GTYPE_ON_A_DAY)
+                       elm_object_item_signal_emit((Elm_Object_Item *)ei, "elm,state,bottom", "");
+               else
+                       elm_object_item_signal_emit((Elm_Object_Item *)ei, "elm,state,center", "");
+       }
+}
+
+static int __cal_edit_alarm_add_alarm_content(cal_edit_alarm_data *p)
+{
+       CAL_ASSERT(p);
+
+       p->sc = elm_genlist_add(p->ly);
+       CAL_ASSERT(p->sc);
+
+       evas_object_smart_callback_add(p->sc, "realized", __cal_edit_alarm_genlist_realized_callback, NULL);
+
+       itc_seperator.item_style = "dialogue/separator/21/with_line";
+       itc_seperator.func.text_get = NULL;
+       itc_seperator.func.state_get = __cal_edit_alarm_get_genlist_item_state;
+       itc_seperator.func.del = __cal_edit_alarm_genlist_item_delete_callback;
+
+       itc_1text_1icon.item_style = "dialogue/1text.1icon.2";
+       itc_1text_1icon.func.del = __cal_edit_alarm_genlist_item_delete_callback;
+       itc_1text_1icon.func.content_get = __cal_edit_alarm_get_genlist_item_icon;
+       itc_1text_1icon.func.text_get = __cal_edit_alarm_get_genlist_item_label;
+
+       itc_custom.item_style = "dialogue/3icon.1text.custom";
+       itc_custom.func.del = __cal_edit_alarm_genlist_item_delete_callback;
+       itc_custom.func.content_get = __cal_edit_alarm_get_genlist_item_custom_icon;
+       itc_custom.func.text_get = __cal_edit_alarm_get_genlist_item_custom_label;
+
+       if(p->alarm_type == ALARM_TYPE_EVENT) {
+               p->radio_group = cal_radio_group_create(_GTYPE_MAX - 1, p->sc);
+               __cal_edit_alarm_append_genlist_item_event(p->sc, p, _GTYPE_SPEA, 0);
+               __cal_edit_alarm_append_genlist_item_event(p->sc, p, _GTYPE_OFF, -1);
+               __cal_edit_alarm_append_genlist_item_event(p->sc, p, _GTYPE_ON_TIME, 0);
+               __cal_edit_alarm_append_genlist_item_event(p->sc, p, _GTYPE_5_MIN, 5);
+               __cal_edit_alarm_append_genlist_item_event(p->sc, p, _GTYPE_15_MIN, 15);
+               __cal_edit_alarm_append_genlist_item_event(p->sc, p, _GTYPE_1_HOUR, _HOUR);
+               __cal_edit_alarm_append_genlist_item_event(p->sc, p, _GTYPE_1_DAY, _DAY);
+               __cal_edit_alarm_append_genlist_item_event(p->sc, p, _GTYPE_1_WEEK, _WEEK);
+               __cal_edit_alarm_append_genlist_item_event(p->sc, p, _GTYPE_CUSTOMIZE, 0);
+       } else {
+               p->radio_group = cal_radio_group_create(_GTYPE_MAX, p->sc);
+               __cal_edit_alarm_append_genlist_item_todo(p->sc, p, _GTYPE_SPEA, 0);
+               __cal_edit_alarm_append_genlist_item_todo(p->sc, p, _GTYPE_OFF, -1);
+               __cal_edit_alarm_append_genlist_item_todo(p->sc, p, _GTYPE_ON_TIME, 0);
+               __cal_edit_alarm_append_genlist_item_todo(p->sc, p, _GTYPE_5_MIN, 5);
+               __cal_edit_alarm_append_genlist_item_todo(p->sc, p, _GTYPE_15_MIN, 15);
+               __cal_edit_alarm_append_genlist_item_todo(p->sc, p, _GTYPE_1_HOUR, _HOUR);
+               __cal_edit_alarm_append_genlist_item_todo(p->sc, p, _GTYPE_1_DAY, _DAY);
+               __cal_edit_alarm_append_genlist_item_todo(p->sc, p, _GTYPE_1_WEEK, _WEEK);
+               __cal_edit_alarm_append_genlist_item_todo(p->sc, p, _GTYPE_CUSTOMIZE, 0);
+               p->on_a_day = cal_genlist_item_radio_timepicker_add(p->sc, p->radio_group, _GTYPE_ON_A_DAY,
+                                               p->reminder.tick_unit == CALENDAR_ALARM_TIME_UNIT_SPECIFIC, &p->reminder.datetime, p);
+       }
+
+       elm_object_part_content_set(p->ly, "sw", p->sc);
+
+       return 0;
+}
+
+static void __cal_edit_alarm_set_radio(cal_edit_alarm_data *p, const Cal_Reminder* reminder)
+{
+       CAL_ASSERT(p);
+
+       p->reminder = *reminder;
+
+       switch(reminder->tick_unit)
+       {
+       case CALENDAR_ALARM_NONE:
+               cal_radio_group_select_radio(p->radio_group, _GTYPE_OFF);
+               return;
+       case CALENDAR_ALARM_TIME_UNIT_SPECIFIC:
+               cal_radio_group_select_radio(p->radio_group, _GTYPE_ON_A_DAY);
+               return;
+       case CALENDAR_ALARM_TIME_UNIT_MINUTE:
+               break;
+       default:
+               // error
+               return;
+       }
+
+       switch(reminder->alarm_value)
+       {
+       case 0:
+               cal_radio_group_select_radio(p->radio_group, _GTYPE_ON_TIME);
+               return;
+       case 5:
+               cal_radio_group_select_radio(p->radio_group, _GTYPE_5_MIN);
+               return;
+       case 15:
+               cal_radio_group_select_radio(p->radio_group, _GTYPE_15_MIN);
+               return;
+       case _HOUR:
+               cal_radio_group_select_radio(p->radio_group, _GTYPE_1_HOUR);
+               return;
+       case _DAY:
+               cal_radio_group_select_radio(p->radio_group, _GTYPE_1_DAY);
+               return;
+       case _WEEK:
+               cal_radio_group_select_radio(p->radio_group, _GTYPE_1_WEEK);
+               return;
+       default:
+               cal_radio_group_select_radio(p->radio_group, _GTYPE_CUSTOMIZE);
+               break;
+       }
+
+       int min = reminder->alarm_value;
+
+       if ((min % _WEEK) == 0)
+       {
+               p->bt_idx = 3;
+               min = min / _WEEK;
+       }
+       else if ((min % _DAY) == 0)
+       {
+               p->bt_idx = 2;
+               min = min / _DAY;
+       }
+       else if ((min % _HOUR) == 0)
+       {
+               p->bt_idx = 1;
+               min = min / _HOUR;
+       }
+       else
+               p->bt_idx = 0;
+
+       p->reminder.alarm_value = min;
+}
+
+static void __cal_edit_alarm_save_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       cal_edit_alarm_data *p = data;
+
+       if (p->alarm_changed_callback) {
+
+               int selected = cal_radio_group_get_selected_radio(p->radio_group);
+
+               p->reminder.tick_unit = CALENDAR_ALARM_TIME_UNIT_MINUTE;
+               switch (selected) {
+               case _GTYPE_OFF:
+                       p->reminder.tick_unit = CALENDAR_ALARM_NONE;
+                       break;
+               case _GTYPE_ON_TIME:
+                       p->reminder.alarm_value = 0;
+                       break;
+               case _GTYPE_5_MIN:
+                       p->reminder.alarm_value = 5;
+                       break;
+               case _GTYPE_15_MIN:
+                       p->reminder.alarm_value = 15;
+                       break;
+               case _GTYPE_1_HOUR:
+                       p->reminder.alarm_value = _HOUR;
+                       break;
+               case _GTYPE_1_DAY:
+                       p->reminder.alarm_value = _DAY;
+                       break;
+               case _GTYPE_1_WEEK:
+                       p->reminder.alarm_value = _WEEK;
+                       break;
+               case _GTYPE_ON_A_DAY:
+                       p->reminder.tick_unit = CALENDAR_ALARM_TIME_UNIT_SPECIFIC;
+                       cal_genlist_item_radio_timepicker_get_time(p->on_a_day, &p->reminder.datetime);
+                       break;
+               case _GTYPE_CUSTOMIZE:
+                       p->reminder.alarm_value *= cal_edit_alarm_button[p->bt_idx].unit;
+                       break;
+               default:
+                       // error
+                       break;
+               }
+
+               p->alarm_changed_callback(&p->reminder, p->alarm_changed_callback_data);
+       }
+       elm_naviframe_item_pop(p->naviframe);
+}
+
+static void __cal_edit_alarm_cancel_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+}
+
+Evas_Object *cal_edit_alarm_create_view(Evas_Object *naviframe, const Cal_Reminder* reminder, cal_edit_alarm_type alarm_type,
+                                                                                                                                                       cal_edit_alarm_changed_callback alarm_changed_callback, void* callback_data)
+{
+       c_retvm_if(!naviframe, NULL, "naviframe is null");
+
+       cal_edit_alarm_data *p;
+       Evas_Object *ly;
+       int r;
+
+       p = calloc(1, sizeof(cal_edit_alarm_data));
+       c_retvm_if(!p, NULL, "p is null");
+
+       p->naviframe = naviframe;
+       p->alarm_changed_callback = alarm_changed_callback;
+       p->alarm_changed_callback_data = callback_data;
+       p->alarm_type = alarm_type;
+
+       ly = cal_util_add_layout(naviframe, "edit");
+       if (!ly) {
+               free(p);
+               return NULL;
+       }
+       p->ly = ly;
+
+       evas_object_data_set(ly, "priv", p);
+
+       Elm_Object_Item* navi_item = elm_naviframe_item_push(p->naviframe, C_("IDS_CLD_BODY_REMINDER"), NULL, NULL, ly, NULL);
+       c_retv_if(!navi_item, NULL);
+
+       p->save_cancel = cal_save_cancel_create(p->naviframe, NULL,
+                                       __cal_edit_alarm_save_button_callback,
+                                       __cal_edit_alarm_cancel_button_callback, p);
+
+       cal_edit_alarm_button[0].plural_label = C_("IDS_TMR_BODY_MINS_LC_ABB");
+       cal_edit_alarm_button[1].plural_label = C_("IDS_CHATON_BODY_HOURS_LC_ABB");
+       cal_edit_alarm_button[2].plural_label = C_("IDS_CHATON_BODY_DAYS_LC_ABB");
+       cal_edit_alarm_button[3].plural_label = C_("IDS_COM_POP_WEEKS_LC");
+
+       cal_edit_alarm_button[0].label = C_("IDS_TMR_OPT_MIN_LC_ABB");
+       cal_edit_alarm_button[1].label = C_("IDS_CLD_BODY_HOUR_LC_ABB");
+       cal_edit_alarm_button[2].label = C_("IDS_CLD_BODY_DAY_LC_ABB");
+       cal_edit_alarm_button[3].label = C_("IDS_CLD_BODY_WEEK_LC_ABB");
+
+       r = __cal_edit_alarm_add_alarm_content(p);
+       if (r) {
+               evas_object_del(ly);
+               free(p);
+               return NULL;
+       }
+
+       __cal_edit_alarm_set_radio(p, reminder);
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_edit_alarm_delete_layout, p);
+
+       return ly;
+}
diff --git a/ug/edit/edit-alarm.h b/ug/edit/edit-alarm.h
new file mode 100755 (executable)
index 0000000..d2760e5
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_EDIT_ALARM_H__
+#define __CALENDAR_EDIT_ALARM_H__
+
+#include "cld.h"
+#include "reminder.h"
+
+typedef enum {
+       ALARM_TYPE_EVENT = 0,
+       ALARM_TYPE_TODO,
+       ALARM_TYPE_TODO_CUSTOM_ONLY,
+}cal_edit_alarm_type;
+
+typedef void (*cal_edit_alarm_changed_callback)(const Cal_Reminder* reminder, void* data);
+
+Evas_Object *cal_edit_alarm_create_view(Evas_Object *naviframe, const Cal_Reminder* reminder,  cal_edit_alarm_type alarm_type, cal_edit_alarm_changed_callback alarm_changed_callback, void* callback_data);
+
+#endif /* __CALENDAR_EDIT_ALARM_H__ */
diff --git a/ug/edit/edit-attendee.c b/ug/edit/edit-attendee.c
new file mode 100755 (executable)
index 0000000..d186ccc
--- /dev/null
@@ -0,0 +1,265 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <ui-gadget.h>
+
+#include "external-ug.h"
+#include "edit-attendee.h"
+
+void cal_edit_attendee_free_list(Eina_List **h)
+{
+       Eina_List *l = NULL;
+       cal_participant *participant = NULL;
+
+       EINA_LIST_FOREACH(*h, l, participant) {
+               if (participant->image)
+                       free(participant->image);
+
+               if (participant->name)
+                       free(participant->name);
+
+               if (participant->email)
+                       free(participant->email);
+
+               if (participant->number)
+                       free(participant->number);
+
+               free(participant);
+       }
+
+       *h = eina_list_free(*h);
+}
+
+void cal_edit_attendee_get_person_id_by_email_id(int email_id, int *person_id)
+{
+       c_ret_if(email_id < 0);
+       c_ret_if(!person_id);
+
+       contacts_record_h email = NULL;
+
+       contacts_error_e error = contacts_db_get_record(_contacts_email._uri, email_id, &email);
+       c_retm_if(error != CONTACTS_ERROR_NONE, "contacts_db_get_record(%d) is failed(%x)", email_id, error);
+
+       int contact_id = 0;
+
+       error = contacts_record_get_int(email, _contacts_email.contact_id, &contact_id);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_int() is failed(%x)", error);
+
+       contacts_record_h contact = NULL;
+
+       error = contacts_db_get_record(_contacts_contact._uri, contact_id, &contact);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_db_get_record(%d) is failed(%x)", contact_id, error);
+
+       error = contacts_record_get_int(contact, _contacts_contact.person_id, person_id);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_int() is failed(%x)", error);
+
+       error = contacts_record_destroy(contact, true);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_destroy() is failed(%x)", error);
+
+       error = contacts_record_destroy(email, true);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_destroy() is failed(%x)", error);
+}
+
+Eina_Bool cal_edit_attendee_check_is_exist(Evas_Object *mbe, const char *label, Elm_Object_Item *cur)
+{
+       Elm_Object_Item *it;
+       const char *l;
+
+       // TODO: check contact id??
+       it = elm_multibuttonentry_first_item_get(mbe);
+       while (it)
+       {
+               if (cur != it)
+               {
+                       l = elm_object_item_text_get(it);
+                       if (l && !CAL_STRCMP(l, label))
+                               return EINA_TRUE;
+               }
+
+               it = elm_multibuttonentry_item_next_get(it);
+       }
+
+       return EINA_FALSE;
+}
+
+void cal_edit_attendee_get_email_by_person_id(char *buf, int size, int person_id)
+{
+       c_retm_if(!buf, "buf is null");
+       c_retm_if(size < 1, "size is smaller than 1");
+       c_retm_if(person_id < 0, "email id is invalid.");
+
+       contacts_record_h person = NULL;
+
+       contacts_error_e error = contacts_db_get_record(_contacts_person._uri, person_id, &person);
+       c_retm_if(error != CONTACTS_ERROR_NONE, "contacts_db_get_record(%d) is failed(%x)", person_id, error);
+
+       int contact_id = 0;
+
+       error = contacts_record_get_int(person, _contacts_person.display_contact_id, &contact_id);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_int() is failed(%x)", error);
+
+       contacts_record_h contact = NULL;
+
+       error = contacts_db_get_record(_contacts_contact._uri, contact_id, &contact);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_db_get_record() is failed(%x)", error);
+
+       contacts_record_h email = NULL;
+
+       error = contacts_record_get_child_record_at_p(contact, _contacts_contact.email, 0, &email);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_child_record_at_p() is failed(%x)", error);
+
+       char *email_address = NULL;
+
+       error = contacts_record_get_str_p(email, _contacts_email.email, &email_address);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_str_p() is failed(%x)", error);
+
+       if (CAL_STRLEN(email_address))
+               snprintf(buf, size, "%s", email_address);
+
+       error = contacts_record_destroy(contact, true);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_destroy() is failed(%x)", error);
+
+       error = contacts_record_destroy(person, true);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_destroy() is failed(%x)", error);
+}
+
+void cal_edit_attendee_get_name_by_person_id(char *buf, int sz, int person_id)
+{
+       c_retm_if(!buf, "buf is null");
+       c_retm_if(sz < 1, "size is smaller than 1");
+       c_retm_if(person_id < 1, "person_id is smaller than 1");
+
+       contacts_record_h person = NULL;
+
+       contacts_error_e error = contacts_db_get_record(_contacts_person._uri, person_id, &person);
+       c_retm_if(error != CONTACTS_ERROR_NONE, "contacts_db_get_record(%d) is failed(%x)", person_id, error);
+
+       char *display_name = NULL;
+
+       error = contacts_record_get_str_p(person, _contacts_person.display_name, &display_name);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_str_p(%d) is failed(%x)", person_id, error);
+
+       if (CAL_STRLEN(display_name))
+               snprintf(buf, sz, "%s", display_name);
+
+       error = contacts_record_destroy(person, true);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_destroy() is failed(%x)", error);
+}
+
+Eina_Bool cal_edit_attendee_check_email_vailidity(const char* email)
+{
+       c_retvm_if(!email, EINA_FALSE, "email is null");
+
+       const char* temp = strchr(email, '@');
+       c_retvm_if(!temp, EINA_FALSE, "%s is invalid address", email);
+       c_retvm_if(*(temp+1) == '.', EINA_FALSE, "%s is invalid address", email);
+
+       temp = strchr(temp, '.');
+       c_retvm_if(!temp, EINA_FALSE, "%s is invalid address", email);
+       c_retvm_if(strlen(temp) <= 1, EINA_FALSE, "%s is invalid address", email);
+
+       return EINA_TRUE;
+}
+
+int cal_edit_attendee_check_email_is_in_contact(const char *email)
+{
+       c_retv_if(!CAL_STRLEN(email), 0);
+
+       contacts_error_e error = CONTACTS_ERROR_NONE;
+
+       contacts_query_h query = NULL;
+
+       error = contacts_query_create(_contacts_person_email._uri, &query);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_query_create() is failed(%x)", error);
+
+       contacts_filter_h filter = NULL;
+
+       error = contacts_filter_create(_contacts_person_email._uri, &filter);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_filter_create() is failed(%x)", error);
+
+       error = contacts_filter_add_str(filter, _contacts_person_email.email, CONTACTS_MATCH_CONTAINS, email);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_filter_add_str() is failed(%x)", error);
+
+       error = contacts_query_set_filter(query, filter);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_query_set_filter() is failed(%x)", error);
+
+       contacts_list_h list = NULL;
+
+       error = contacts_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_db_get_records_with_query() is failed(%x)", error);
+
+       error = contacts_list_first(list);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_list_first() is failed(%x)", error);
+
+       contacts_record_h person = NULL;
+
+       error = contacts_list_get_current_record_p(list, &person);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_list_get_current_record_p() is failed(%x)", error);
+
+       int person_id = 0;
+
+       error = contacts_record_get_int(person, _contacts_person.id, &person_id);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "contacts_record_get_int() is failed(%x)", error);
+
+       error = contacts_list_destroy(list, true);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = contacts_filter_destroy(filter);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = contacts_query_destroy(query);
+       c_warn_if(error != CONTACTS_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return person_id;
+}
+
+static Eina_Bool __cal_edit_attendee_check_list_exist(Eina_List *list, const char *label)
+{
+       Eina_List* l;
+       cal_participant* part;
+
+       EINA_LIST_FOREACH(list, l, part) {
+               if(part)
+                       if(!CAL_STRCMP(part->name, label))
+                               return EINA_TRUE;
+       }
+
+       return EINA_FALSE;
+}
+
+void cal_edit_attendee_copy_items_from_mbe(Evas_Object *from, Eina_List **to)
+{
+       Elm_Object_Item *it;
+       const char *label;
+       cal_participant* part;
+
+       it = elm_multibuttonentry_first_item_get(from);
+       while (it) {
+               label = elm_object_item_text_get(it);
+               if (label) {
+                       if (!__cal_edit_attendee_check_list_exist(*to, label)) {
+
+                               part = elm_object_item_data_get(it);
+                               c_retm_if(!part, "part is null");
+
+                               *to = eina_list_append(*to, part);
+                       }
+               }
+
+               it = elm_multibuttonentry_item_next_get(it);
+       }
+}
diff --git a/ug/edit/edit-attendee.h b/ug/edit/edit-attendee.h
new file mode 100755 (executable)
index 0000000..e43f72e
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#ifndef __CALENDAR_EDIT_ATTENDEE_H__
+#define __CALENDAR_EDIT_ATTENDEE_H__
+
+#include "cld.h"
+
+void cal_edit_attendee_free_list(Eina_List **h);
+void cal_edit_attendee_get_person_id_by_email_id(int email_id, int *person_id);
+Eina_Bool cal_edit_attendee_check_is_exist(Evas_Object *mbe, const char *label, Elm_Object_Item *cur);
+void cal_edit_attendee_get_email_by_person_id(char *buf, int size, int person_id);
+void cal_edit_attendee_get_name_by_person_id(char *buf, int sz, int person_id);
+Eina_Bool cal_edit_attendee_check_email_vailidity(const char* email);
+int cal_edit_attendee_check_email_is_in_contact(const char *email);
+void cal_edit_attendee_copy_items_from_mbe(Evas_Object *from, Eina_List **to);
+
+#endif /* __CALENDAR_EDIT_ATTENDEE_H__ */
diff --git a/ug/edit/edit-repeat.c b/ug/edit/edit-repeat.c
new file mode 100755 (executable)
index 0000000..1ef897b
--- /dev/null
@@ -0,0 +1,844 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include "edit-repeat.h"
+#include "radio-group.h"
+#include "save-cancel.h"
+
+enum __cal_edit_repeat_freq {
+       CAL_EDIT_REPEAT_FREQ_OFF = 0,
+       CAL_EDIT_REPEAT_FREQ_EVERY_DAY,
+       CAL_EDIT_REPEAT_FREQ_EVERY_3_DAY,
+       CAL_EDIT_REPEAT_FREQ_EVERY_WEEK,
+       CAL_EDIT_REPEAT_FREQ_EVERY_2_WEEK,
+       CAL_EDIT_REPEAT_FREQ_EVERY_MONTH,
+       CAL_EDIT_REPEAT_FREQ_EVERY_YEAR,
+       CAL_EDIT_REPEAT_FREQ_MAX
+};
+
+typedef struct {
+       Evas_Object *parent;
+       Evas_Object *ly; // self
+       Evas_Object *genlist;
+
+       cal_radio_group_h freq_radio_group;
+       cal_radio_group_h range_radio_group;
+
+       Evas_Object *day_selector;
+       Evas_Object *repeat_occurrence_entry;
+       Evas_Object *end_date;
+
+       struct tm *start_date_time;
+
+       int count;
+       struct tm until;
+
+       int selected_freq_radio;
+       int prev_selected_freq_radio;
+       int selected_range_radio;
+
+       cal_edit_repeat_destroy_callback callback_func;
+       void *callback_data;
+
+       cal_save_cancel_h save_cancel;
+
+} cal_edit_repeat_data;
+
+static int __cal_edit_repeat_get_radio_index(int freq)
+{
+       switch (freq) {
+       case CALENDAR_RECURRENCE_NONE:
+               return CAL_EDIT_REPEAT_FREQ_OFF;
+       case CALENDAR_RECURRENCE_DAILY:
+               return CAL_EDIT_REPEAT_FREQ_EVERY_DAY;
+       case CAL_REPEAT_EVERY_3_DAY:
+               return CAL_EDIT_REPEAT_FREQ_EVERY_3_DAY;
+       case CALENDAR_RECURRENCE_WEEKLY:
+               return CAL_EDIT_REPEAT_FREQ_EVERY_WEEK;
+       case CAL_REPEAT_EVERY_2_WEEK:
+               return CAL_EDIT_REPEAT_FREQ_EVERY_2_WEEK;
+       case CALENDAR_RECURRENCE_MONTHLY:
+               return CAL_EDIT_REPEAT_FREQ_EVERY_MONTH;
+       case CALENDAR_RECURRENCE_YEARLY:
+               return CAL_EDIT_REPEAT_FREQ_EVERY_YEAR;
+       default:
+               ERR("Invalid value : %d", freq);
+               return 0;
+       }
+}
+
+static int __cal_edit_repeat_get_freq(int radio_index)
+{
+       switch (radio_index) {
+       case CAL_EDIT_REPEAT_FREQ_OFF:
+               return CALENDAR_RECURRENCE_NONE;
+       case CAL_EDIT_REPEAT_FREQ_EVERY_DAY:
+               return CALENDAR_RECURRENCE_DAILY;
+       case CAL_EDIT_REPEAT_FREQ_EVERY_3_DAY:
+               return CAL_REPEAT_EVERY_3_DAY;
+       case CAL_EDIT_REPEAT_FREQ_EVERY_WEEK:
+               return CALENDAR_RECURRENCE_WEEKLY;
+       case CAL_EDIT_REPEAT_FREQ_EVERY_2_WEEK:
+               return CAL_REPEAT_EVERY_2_WEEK;
+       case CAL_EDIT_REPEAT_FREQ_EVERY_MONTH:
+               return CALENDAR_RECURRENCE_MONTHLY;
+       case CAL_EDIT_REPEAT_FREQ_EVERY_YEAR:
+               return CALENDAR_RECURRENCE_YEARLY;
+       default:
+               ERR("Invalid value : %d", radio_index);
+               return CALENDAR_RECURRENCE_NONE;
+       }
+}
+
+static int __cal_edit_repeat_range_index[] = {
+       CALENDAR_RANGE_NONE,
+       CALENDAR_RANGE_COUNT,
+       CALENDAR_RANGE_UNTIL,
+};
+
+typedef enum {
+       CAL_EDIT_REPEAT_SEPARATOR_FREQ,
+       CAL_EDIT_REPEAT_ITEM_FREQ,
+       CAL_EDIT_REPEAT_SEPARATOR_RANGE,
+       CAL_EDIT_REPEAT_ITEM_RANGE,
+}cal_edit_repeat_item_type;
+
+static Elm_Entry_Filter_Limit_Size _limit_2char = {
+       .max_char_count = 2,
+};
+static Elm_Entry_Filter_Accept_Set _digit_only = {
+       .accepted = "0123456789",
+};
+
+static Elm_Genlist_Item_Class itc_seperator, itc_1icon_1text, itc_1icon, itc_2icon_1text;
+
+typedef struct __cal_edit_repeat_item_data cal_edit_repeat_item_data;
+struct __cal_edit_repeat_item_data
+{
+       cal_edit_repeat_data *p;
+       int index;
+       cal_edit_repeat_item_type type;
+       Elm_Object_Item *it;
+       Evas_Object *radio;
+};
+
+#define is_leap_year_tm(y)  (((y+1900)%4 == 0 && ((y+1900)%100 != 0 || (y+1900)%400 == 0))? 1 : 0)
+
+static void __cal_edit_repeat_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       cal_edit_repeat_data *p = data;
+
+       cal_radio_group_destroy(p->freq_radio_group);
+       cal_radio_group_destroy(p->range_radio_group);
+
+       if (p->save_cancel)
+               cal_save_cancel_destroy(p->save_cancel);
+
+       free(p);
+}
+
+static void __cal_edit_repeat_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       cal_edit_repeat_data *p;
+       Evas_Event_Mouse_Up *ev = ei;
+       int val = (int)data;
+
+       if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       p = CAL_UTIL_GET_PRIV_DATA(obj);
+       cal_radio_group_select_radio(p->freq_radio_group, val);
+       p->prev_selected_freq_radio = p->selected_freq_radio;
+       p->selected_freq_radio = val;
+}
+
+static void __cal_edit_repeat_entry_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!ei);
+       c_ret_if(!data);
+
+       Evas_Event_Mouse_Up *ev = ei;
+       int val = (int)data;
+
+       if (ev && ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       cal_edit_repeat_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       cal_radio_group_select_radio(p->range_radio_group, val);
+
+       if (CALENDAR_RANGE_COUNT == val) {
+               elm_object_focus_set(p->repeat_occurrence_entry, EINA_TRUE);
+               elm_entry_cursor_end_set(p->repeat_occurrence_entry);
+       }
+
+       p->selected_range_radio = val;
+
+       const char* str = elm_entry_entry_get(p->repeat_occurrence_entry);
+       c_ret_if(!CAL_STRLEN(str));
+
+       p->count = atoi(str);
+}
+
+int cal_edit_repeat_get_repeat(Evas_Object *ly, calendar_range_type_e *range, struct tm *until, int *count)
+{
+       c_retvm_if(!ly, CALENDAR_RECURRENCE_NONE, "ly is null");
+
+       const char* text = NULL;
+
+       cal_edit_repeat_data *p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retvm_if(!p, CALENDAR_RECURRENCE_NONE, "p is null");
+
+       c_retvm_if(!p->freq_radio_group, CALENDAR_RECURRENCE_NONE, "p->freq_radio_group is null");
+       c_retvm_if(!p->range_radio_group, CALENDAR_RECURRENCE_NONE, "p->range_radio_group is null");
+
+       *range = __cal_edit_repeat_range_index[p->selected_range_radio];
+
+       switch (*range) {
+               case CALENDAR_RANGE_NONE:
+                       *count = 10;
+
+                       *until = *p->start_date_time;
+                       cal_util_update_tm_month(until, 1);
+                       break;
+
+               case CALENDAR_RANGE_COUNT:
+                       text = elm_entry_entry_get(p->repeat_occurrence_entry);
+                       c_retvm_if(!text, CALENDAR_RECURRENCE_NONE, "text is null");
+
+                       *count = atoi(text);
+
+                       *until = *p->start_date_time;
+                       cal_util_update_tm_month(until, 1);
+
+                       break;
+
+               case CALENDAR_RANGE_UNTIL:
+                       *count = 10;
+
+                       *until = p->until;
+                       break;
+
+               default:
+                       break;
+       }
+
+       return __cal_edit_repeat_get_freq(p->selected_freq_radio);
+}
+
+void _cal_edit_repeat_get_freq_str(int freq, char *buf, int size)
+{
+       c_ret_if(!buf);
+
+       char *format = NULL;
+
+       switch (freq) {
+
+               case CALENDAR_RECURRENCE_DAILY:
+
+                       snprintf(buf, size, "%s", C_("IDS_KC_BODY_EVERY_DAY"));
+                       break;
+
+               case CAL_REPEAT_EVERY_3_DAY:
+
+                       format = C_("IDS_CLD_BODY_EVERY_PD_DAYS");
+                       snprintf(buf, size, format, 3);
+                       break;
+
+               case CALENDAR_RECURRENCE_WEEKLY:
+
+                       snprintf(buf, size, "%s", C_("IDS_CLD_BODY_EVERY_WEEK"));
+                       break;
+
+               case CAL_REPEAT_EVERY_2_WEEK:
+
+                       format = C_("IDS_CLD_BODY_EVERY_PD_WEEKS");
+                       snprintf(buf, size, format, 2);
+                       break;
+
+               case CALENDAR_RECURRENCE_MONTHLY:
+
+                       snprintf(buf, size, "%s", C_("IDS_CLD_BODY_EVERY_MONTH"));
+                       break;
+
+               case CALENDAR_RECURRENCE_YEARLY:
+
+                       snprintf(buf, size, "%s", C_("IDS_CLD_BODY_EVERY_YEAR"));
+                       break;
+
+               default:
+
+                       snprintf(buf, size, "%s", S_("IDS_COM_BODY_OFF"));
+                       break;
+
+       }
+
+       buf[size-1] = '\0';
+}
+
+static char *__cal_edit_repeat_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       CAL_FN_START;
+
+       c_retv_if(!data, NULL);
+
+       cal_edit_repeat_item_data *item_data = data;
+
+       char string[32] = {0};
+
+       if (!CAL_STRCMP(part, "elm.text")) {
+               switch (item_data->type) {
+                       case CAL_EDIT_REPEAT_SEPARATOR_FREQ:
+                               return strdup(C_("IDS_CLD_BODY_REPEAT"));
+
+                       case CAL_EDIT_REPEAT_ITEM_FREQ:
+                               _cal_edit_repeat_get_freq_str(__cal_edit_repeat_get_freq(item_data->index), string, sizeof(string));
+                               return strdup(string);
+
+                       case CAL_EDIT_REPEAT_SEPARATOR_RANGE:
+                               return strdup(C_("IDS_CLD_BODY_REPEAT_UNTIL"));
+
+                       case CAL_EDIT_REPEAT_ITEM_RANGE:
+                               if (__cal_edit_repeat_range_index[item_data->index] == CALENDAR_RANGE_NONE)
+                                       return strdup(S_("IDS_COM_BODY_NONE"));
+
+                       default:
+                               return NULL;
+               }
+       } else if (!CAL_STRCMP(part, "text")) {
+               return strdup(C_("IDS_COM_POP_TIMES_LC"));
+       }
+
+       return NULL;
+}
+
+static void __cal_edit_repeat_genlist_item_delete_callback(void *data, Evas_Object *obj)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+       cal_edit_repeat_item_data *item_data = data;
+
+       free(item_data);
+}
+
+static Eina_Bool __cal_edit_repeat_get_genlist_item_state(void *data, Evas_Object *obj, const char *part)
+{
+       return EINA_FALSE;
+}
+
+static Evas_Object* __cal_edit_repeat_add_radio(Evas_Object *obj, cal_edit_repeat_item_data *item_data)
+{
+       c_retvm_if(!obj, NULL, "dg is NULL.");
+       c_retvm_if(!item_data, NULL, "item_data is NULL.");
+
+       cal_edit_repeat_data *p = item_data->p;
+       c_retv_if(!p, NULL);
+
+       Evas_Object *rd = elm_radio_add(obj);
+       c_retv_if(!rd, NULL);
+
+       evas_object_propagate_events_set(rd, EINA_TRUE);
+
+       cal_edit_repeat_item_type type = item_data->type;
+
+       if (type == CAL_EDIT_REPEAT_ITEM_FREQ)
+               cal_radio_group_set_radio_object(p->freq_radio_group, item_data->index, rd);
+       else if (type == CAL_EDIT_REPEAT_ITEM_RANGE)
+               cal_radio_group_set_radio_object(p->range_radio_group, item_data->index, rd);
+
+       item_data->radio = rd;
+
+       evas_object_show(rd);
+       evas_object_data_set(rd, "priv", p);
+
+       if (item_data->type == CAL_EDIT_REPEAT_ITEM_FREQ)
+               evas_object_event_callback_add(rd, EVAS_CALLBACK_MOUSE_UP, __cal_edit_repeat_clicked_callback, (void *)item_data->index);
+       else if (0 == item_data->index || 1 == item_data->index)
+                       evas_object_event_callback_add(rd, EVAS_CALLBACK_MOUSE_UP, __cal_edit_repeat_entry_clicked_callback, (void *)item_data->index);
+
+       return rd;
+}
+
+static void __cal_edit_repeat_entry_unfocused(void *data, Evas_Object *obj, void *event_info)
+{
+       cal_edit_repeat_data *p = (cal_edit_repeat_data *)data;
+
+       char times[8] = {0,};
+       snprintf(times, 7, "%d", p->count);
+       elm_entry_entry_set(p->repeat_occurrence_entry, times);
+
+}
+
+static void __cal_edit_repeat_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_ASSERT(data);
+       cal_edit_repeat_data *p = data;
+
+       const char *s = elm_entry_entry_get(p->repeat_occurrence_entry);
+       if (s != NULL)
+               p->count = atoi(s);
+}
+
+static Evas_Object* __cal_edit_repeat_add_entry(Evas_Object *parent, cal_edit_repeat_data *p)
+{
+       Evas_Object *e;
+       Ecore_IMF_Context *ic;
+
+       e = elm_entry_add(parent);
+       if (!e)
+               return NULL;
+
+       elm_object_style_set(e, "font_color_black");
+       elm_entry_single_line_set(e, EINA_TRUE);
+       elm_entry_markup_filter_append(e, elm_entry_filter_limit_size, &_limit_2char);
+       elm_entry_markup_filter_append(e, elm_entry_filter_accept_set, &_digit_only);
+       elm_entry_input_panel_layout_set(e, ELM_INPUT_PANEL_LAYOUT_NUMBERONLY);
+       elm_entry_context_menu_disabled_set(e, EINA_TRUE);
+
+       ic = elm_entry_imf_context_get(e);
+       if (!ic)
+               return NULL;
+
+       cal_save_cancel_set_input_panel_callback_for_ug(p->save_cancel, e);
+
+       evas_object_smart_callback_add(e, "unfocused", __cal_edit_repeat_entry_unfocused, p);
+       evas_object_smart_callback_add(e, "changed", __cal_edit_repeat_entry_changed_callback, p);
+
+       elm_entry_text_style_user_push(e, "DEFAULT='align=center'");
+
+       return e;
+}
+
+static void __cal_edit_repeat_end_date_changed_callback(void *data, Evas_Object *obj, void *ei)
+{
+       cal_edit_repeat_data *p = data;
+
+       elm_datetime_value_get(obj, &p->until);
+}
+
+static Evas_Object* __cal_edit_repeat_add_radio_tm(Evas_Object *obj, cal_edit_repeat_item_data *item_data)
+{
+       c_retv_if(!obj, NULL);
+       c_retv_if(!item_data, NULL);
+
+       cal_edit_repeat_data *p = item_data->p;
+       c_retv_if(!p, NULL);
+
+       Evas_Object *ly = cal_util_add_layout(obj, "dialoguegroup/tm");
+       c_retvm_if(!ly, NULL, "ly is null");
+
+       evas_object_show(ly);
+       evas_object_data_set(ly, "priv", p);
+
+       Evas_Object *rd = elm_radio_add(obj);
+       if (!rd) {
+               evas_object_del(ly);
+               return NULL;
+       }
+
+       evas_object_propagate_events_set(rd, EINA_TRUE);
+
+       elm_object_part_content_set(ly, "content", rd);
+       item_data->radio = rd;
+
+       cal_radio_group_set_radio_object(p->range_radio_group, item_data->index, rd);
+
+       Evas_Object *datetime = cal_util_add_datetime(ly, NULL, &p->until);
+       c_retvm_if(!datetime, NULL, "datetime is null");
+
+       evas_object_propagate_events_set(datetime, EINA_TRUE);
+
+       elm_datetime_field_visible_set(datetime, ELM_DATETIME_HOUR, EINA_FALSE);
+       elm_datetime_field_visible_set(datetime, ELM_DATETIME_MINUTE, EINA_FALSE);
+       elm_datetime_field_visible_set(datetime, ELM_DATETIME_AMPM, EINA_FALSE);
+
+       elm_datetime_field_limit_set(datetime, ELM_DATETIME_YEAR, 70, 137);
+
+       evas_object_smart_callback_add(datetime,"changed", __cal_edit_repeat_end_date_changed_callback, p);
+
+       elm_object_part_content_set(ly, "datefield", datetime);
+
+       return ly;
+}
+
+static Evas_Object* __cal_edit_repeat_add_radio_group(Evas_Object *obj, cal_edit_repeat_item_data *item_data)
+{
+       CAL_FN_START;
+
+       cal_edit_repeat_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retv_if(!p, NULL);
+
+       if (item_data->type == CAL_EDIT_REPEAT_ITEM_FREQ) {
+
+               return __cal_edit_repeat_add_radio(obj,  item_data);
+
+       } else if (item_data->type == CAL_EDIT_REPEAT_ITEM_RANGE){
+
+               switch (__cal_edit_repeat_range_index[item_data->index]) {
+
+               case CALENDAR_RANGE_NONE:
+                       return __cal_edit_repeat_add_radio(obj, item_data);
+
+               case CALENDAR_RANGE_UNTIL:
+                       return __cal_edit_repeat_add_radio_tm(obj, item_data);
+
+               default:
+                       return NULL;
+               }
+       } else {
+
+               ERR("Error!!");
+
+               return NULL;
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_edit_repeat_set_selected_freq_state(cal_edit_repeat_data *p)
+{
+       cal_radio_group_select_radio(p->freq_radio_group, p->selected_freq_radio);
+}
+
+static void __cal_edit_repeat_set_selected_range_state(cal_edit_repeat_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       char times[10] = {0};
+
+       snprintf(times,sizeof(times),"%d", p->count);
+       elm_entry_entry_set(p->repeat_occurrence_entry, times);
+       cal_radio_group_select_radio(p->range_radio_group, p->selected_range_radio);
+
+       CAL_FN_END;
+}
+
+static Evas_Object *__cal_edit_repeat_get_genlist_times_content(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+       c_retv_if(!obj, NULL);
+       c_retv_if(!part, NULL);
+
+       cal_edit_repeat_item_data *item_data = data;
+
+       cal_edit_repeat_data *p = item_data->p;
+       c_retv_if(!p, NULL);
+
+       if (!CAL_STRCMP(part, "radio")) {
+
+               Evas_Object* radio = elm_radio_add(obj);
+               c_retv_if(!radio, NULL);
+
+               if (item_data->type == CAL_EDIT_REPEAT_ITEM_FREQ)
+                       cal_radio_group_set_radio_object(p->freq_radio_group, item_data->index, radio);
+               else if (item_data->type == CAL_EDIT_REPEAT_ITEM_RANGE)
+                       cal_radio_group_set_radio_object(p->range_radio_group, item_data->index, radio);
+
+               item_data->radio = radio;
+               return radio;
+
+       } else if (!CAL_STRCMP(part, "input_sw")) {
+
+               Evas_Object* entry = __cal_edit_repeat_add_entry(obj, p);
+               c_retv_if(!entry, NULL);
+
+               char times[8] = {0};
+               snprintf(times, sizeof(times), "%d", p->count);
+               elm_entry_entry_set(entry, times);
+
+               p->repeat_occurrence_entry = entry;
+               return entry;
+       }
+
+       return NULL;
+}
+
+static Evas_Object *__cal_edit_repeat_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       CAL_FN_START;
+
+       c_retv_if(!data, NULL);
+       c_retv_if(!obj, NULL);
+
+       Evas_Object *e_obj = NULL;
+
+       if (!CAL_STRCMP(part, "elm.icon")) {
+               cal_edit_repeat_item_data *item_data = data;
+
+               cal_edit_repeat_data *p = item_data->p;
+               cal_edit_repeat_item_type type = item_data->type;
+
+               if (type == CAL_EDIT_REPEAT_ITEM_FREQ) {
+
+                       e_obj = __cal_edit_repeat_add_radio_group(obj, item_data);
+
+                       __cal_edit_repeat_set_selected_freq_state(p);
+
+               } else if (type == CAL_EDIT_REPEAT_ITEM_RANGE){
+
+                       e_obj = __cal_edit_repeat_add_radio_group(obj, item_data);
+
+                       __cal_edit_repeat_set_selected_range_state(p);
+
+               } else {
+
+                       ERR("!Error");
+
+                       return NULL;
+               }
+       }
+
+       CAL_FN_END;
+
+       return e_obj;
+
+}
+
+static void __cal_edit_repeat_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_ret_if(!obj);
+
+       Elm_Object_Item *it = elm_genlist_selected_item_get(obj);
+       c_ret_if(!it);
+
+       elm_genlist_item_selected_set(it, EINA_FALSE);
+
+       cal_edit_repeat_item_data *item_data = elm_object_item_data_get(it);
+       c_ret_if(!item_data);
+
+       cal_edit_repeat_data *p = item_data->p;
+       c_ret_if(!p);
+
+       cal_edit_repeat_item_type type = item_data->type;
+       int index = item_data->index;
+
+       if (type == CAL_EDIT_REPEAT_ITEM_FREQ) {
+
+               p->selected_freq_radio = index;
+               cal_radio_group_select_radio(p->freq_radio_group, index);
+               elm_object_focus_set(p->repeat_occurrence_entry, EINA_FALSE);
+
+       } else if (type == CAL_EDIT_REPEAT_ITEM_RANGE){
+
+               cal_radio_group_select_radio(p->range_radio_group, index);
+               p->selected_range_radio = index;
+
+               if (index != __cal_edit_repeat_range_index[CALENDAR_RANGE_COUNT])
+                       elm_object_focus_set(p->repeat_occurrence_entry, EINA_FALSE);
+       } else {
+
+               ERR("Error!!");
+
+               return;
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_edit_repeat_add_separator(Evas_Object *genlist, cal_edit_repeat_data *p, cal_edit_repeat_item_type type)
+{
+       CAL_FN_START;
+
+       cal_edit_repeat_item_data *item_data = calloc(1, sizeof(cal_edit_repeat_item_data));
+       c_ret_if(!item_data);
+
+       item_data->type = type;
+       item_data->p = p;
+
+       item_data->it = elm_genlist_item_append(genlist, &itc_seperator, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_repeat_genlist_item_select_callback, NULL);
+
+       elm_genlist_item_select_mode_set(item_data->it, ELM_OBJECT_SELECT_MODE_NONE);
+
+       CAL_FN_END;
+}
+
+static void __cal_edit_repeat_add_freq(Evas_Object *genlist, cal_edit_repeat_data *p)
+{
+       CAL_FN_START;
+
+       int i;
+       for (i = 0; i < CAL_EDIT_REPEAT_FREQ_MAX; i++) {
+               cal_edit_repeat_item_data *item_data = calloc(1, sizeof(cal_edit_repeat_item_data));
+               c_ret_if(!item_data);
+
+               item_data->p = p;
+               item_data->index = i;
+               item_data->type = CAL_EDIT_REPEAT_ITEM_FREQ;
+
+               item_data->it = elm_genlist_item_append(genlist, &itc_1icon_1text, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_repeat_genlist_item_select_callback, item_data);
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_edit_repeat_add_range(Evas_Object *genlist, cal_edit_repeat_data *p)
+{
+       CAL_FN_START;
+
+       int i;
+       for (i = 0; i < sizeof(__cal_edit_repeat_range_index)/sizeof(__cal_edit_repeat_range_index[0]); i++) {
+               cal_edit_repeat_item_data *item_data = calloc(1, sizeof(cal_edit_repeat_item_data));
+               c_ret_if(!item_data);
+
+               item_data->p = p;
+               item_data->index = i;
+               item_data->type = CAL_EDIT_REPEAT_ITEM_RANGE;
+
+               if (__cal_edit_repeat_range_index[item_data->index] == CALENDAR_RANGE_COUNT)
+                       item_data->it = elm_genlist_item_append(genlist, &itc_2icon_1text, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_repeat_genlist_item_select_callback, item_data);
+               else
+                       item_data->it = elm_genlist_item_append(genlist, &itc_1icon_1text, (void*)item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_repeat_genlist_item_select_callback, item_data);
+       }
+
+       CAL_FN_END;
+}
+
+static void __cal_edit_repeat_add_genlist_item(Evas_Object *genlist, cal_edit_repeat_data *p)
+{
+       CAL_FN_START;
+
+       __cal_edit_repeat_add_separator(genlist, p, CAL_EDIT_REPEAT_SEPARATOR_FREQ);
+
+       __cal_edit_repeat_add_freq(genlist, p);
+
+       __cal_edit_repeat_add_separator(genlist, p, CAL_EDIT_REPEAT_SEPARATOR_RANGE);
+
+       __cal_edit_repeat_add_range(genlist, p);
+
+       CAL_FN_END;
+}
+
+static int __cal_edit_repeat_add_content(cal_edit_repeat_data *p)
+{
+       CAL_FN_START;
+
+       p->genlist = elm_genlist_add(p->ly);
+       c_retv_if(!p->genlist, -1);
+
+       evas_object_data_set(p->genlist, "priv", p);
+
+       itc_seperator.item_style = "dialogue/title";
+       itc_seperator.func.text_get = __cal_edit_repeat_get_genlist_item_label;
+       itc_seperator.func.state_get = __cal_edit_repeat_get_genlist_item_state;
+       itc_seperator.func.del = __cal_edit_repeat_genlist_item_delete_callback;
+
+       itc_1icon_1text.item_style = "dialogue/1text.1icon.2";
+       itc_1icon_1text.func.text_get = __cal_edit_repeat_get_genlist_item_label;
+       itc_1icon_1text.func.del = __cal_edit_repeat_genlist_item_delete_callback;
+       itc_1icon_1text.func.content_get = __cal_edit_repeat_get_genlist_item_icon;
+
+       itc_2icon_1text.item_style = "dialogue/2icon.1text.custom";
+       itc_2icon_1text.func.text_get = __cal_edit_repeat_get_genlist_item_label;
+       itc_2icon_1text.func.del = __cal_edit_repeat_genlist_item_delete_callback;
+       itc_2icon_1text.func.content_get = __cal_edit_repeat_get_genlist_times_content;
+
+       itc_1icon.item_style = "dialogue/1icon";
+       itc_1icon.func.text_get = __cal_edit_repeat_get_genlist_item_label;
+       itc_1icon.func.del = __cal_edit_repeat_genlist_item_delete_callback;
+       itc_1icon.func.content_get = __cal_edit_repeat_get_genlist_item_icon;
+
+       __cal_edit_repeat_add_genlist_item(p->genlist, p);
+
+       elm_object_part_content_set(p->ly, "sw", p->genlist);
+
+       CAL_FN_END;
+
+       return 0;
+}
+
+static void __cal_edit_repeat_set_state(cal_edit_repeat_data *p, int freq, calendar_range_type_e range, struct tm* until, int* occurrency)
+{
+       p->selected_freq_radio = __cal_edit_repeat_get_radio_index(freq);
+       p->prev_selected_freq_radio = __cal_edit_repeat_get_radio_index(freq);
+       p->selected_range_radio = __cal_edit_repeat_range_index[range];
+}
+
+static void __cal_edit_repeat_save_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_edit_repeat_data *p = data;
+
+       p->callback_func(p->callback_data);
+       elm_naviframe_item_pop(p->parent);
+}
+
+static void __cal_edit_repeat_cancel_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+}
+
+
+Evas_Object *cal_edit_repeat_create_view(Evas_Object *parent, int freq, calendar_range_type_e range, struct tm* start_date_time, struct tm* until, int* count,
+                                                                                                                                                               cal_edit_repeat_destroy_callback callback_func, void *callback_data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!parent, NULL, "parent is null");
+
+       cal_edit_repeat_data *p = calloc(1, sizeof(cal_edit_repeat_data));
+       c_retvm_if(!p, NULL, "p is null");
+
+       p->parent = parent;
+
+       Evas_Object *ly = cal_util_add_layout(parent, "edit");
+       if (!ly) {
+               ERR("ly is null");
+               free(p);
+               return NULL;
+       }
+
+       p->ly = ly;
+       p->count = *count;
+       p->start_date_time = start_date_time;
+       p->until = *until;
+       p->callback_func = callback_func;
+       p->callback_data = callback_data;
+
+       p->freq_radio_group = cal_radio_group_create(CAL_EDIT_REPEAT_FREQ_MAX, ly);
+       p->range_radio_group = cal_radio_group_create(3, ly);;
+
+       evas_object_data_set(ly, "priv", p);
+
+       Elm_Object_Item *navi_item = NULL;
+       navi_item = elm_naviframe_item_push(p->parent, C_("IDS_CLD_BODY_REPEAT"), NULL, NULL, ly, NULL);
+       c_retv_if(!navi_item, NULL);
+
+       p->save_cancel = cal_save_cancel_create(p->parent, NULL, __cal_edit_repeat_save_button_callback, __cal_edit_repeat_cancel_button_callback, p);
+
+       __cal_edit_repeat_set_state(p, freq, range, until, count);
+
+       int r = __cal_edit_repeat_add_content(p);
+       if (r) {
+               evas_object_del(ly);
+               free(p);
+               return NULL;
+       }
+
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_edit_repeat_delete_layout, p);
+
+       return ly;
+}
diff --git a/ug/edit/edit-repeat.h b/ug/edit/edit-repeat.h
new file mode 100755 (executable)
index 0000000..c174ae3
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_EDIT_REPEAT_H__
+#define __CALENDAR_EDIT_REPEAT_H__
+
+#include "cld.h"
+
+typedef void (*cal_edit_repeat_destroy_callback)(void *data);
+
+/* Return layout */
+Evas_Object *edit_repeat_create(Evas_Object *parent, Evas_Object *nv, int term, int num, struct tm* until, int* occurrency, int flag, Evas_Object *win);
+Evas_Object *cal_edit_repeat_create_view(Evas_Object *parent, int freq, calendar_range_type_e range, struct tm* start_date_time, struct tm* until, int* occurrency,
+                                                                                                                                                               cal_edit_repeat_destroy_callback callback_func, void *callback_data);
+
+/* return term: enum cals_freq, flag is for weekly */
+int cal_edit_repeat_get_repeat(Evas_Object *ly, calendar_range_type_e *range, struct tm *until, int *occurrency);
+
+void _cal_edit_repeat_get_freq_str(int freq, char *buf, int size);
+
+
+#endif /* __CALENDAR_EDIT_REPEAT_H__ */
+
diff --git a/ug/edit/edit-ug.c b/ug/edit/edit-ug.c
new file mode 100755 (executable)
index 0000000..9f4438e
--- /dev/null
@@ -0,0 +1,3741 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+#include <ui-gadget-module.h>
+#include <vconf.h>
+#include <libintl.h>
+
+#include "view.h"
+#include "dialogue.h"
+#include "edit-alarm.h"
+#include "edit-repeat.h"
+#include "reminder.h"
+#include "acct-svc.h"
+#include "gi-timepicker.h"
+#include "save-cancel.h"
+#include "external-ug.h"
+#include "cld-images.h"
+#include "dialogue.h"
+
+#define INVALID_TIMEZONE_VALUE (100)
+#define CAL_EDIT_UG_MAX_ATTACHMENT_COUNT 6
+
+typedef struct {
+
+       ui_gadget_h ug;
+       cal_appcontrol_item_type item_type;
+
+       struct tm base_time;
+       Evas_Object *base_layout;
+       Evas_Object *naviframe;
+       Evas_Object *window;
+
+       Evas_Object *parent;
+       Evas_Object *popup;
+       Ecore_Idler *idler;
+
+       calendar_record_h event;
+       calendar_record_h todo;
+       calendar_record_h record;
+       calendar_record_h instance;
+
+       Eina_Bool is_edit_mode;
+
+       Evas_Object *dialogue;
+
+       Evas_Object *title_entry;
+       Evas_Object *title;
+       Evas_Object *start_date;
+       Evas_Object *start_date_title;
+       Evas_Object *end_date;
+       Evas_Object *end_date_title;
+       Evas_Object *allday;
+       Evas_Object *timezone;
+       Evas_Object *location;
+       Evas_Object *location_entry;
+
+       Evas_Object *note;
+       Evas_Object *note_entry;
+       Eina_List *alarm_item_list;
+       Evas_Object *alarm_plus_button;
+
+       Evas_Object *repeat;
+       Evas_Object *repeat_layout;
+
+       Evas_Object *saveto;
+
+       Evas_Object *multibuttonentry; // entry participants
+
+       Evas_Object *due_date;
+       Evas_Object *due_date_title;
+       Evas_Object *no_due_date;
+       Evas_Object *priority;
+
+       cal_save_cancel_h save_cancel;
+       Evas_Object *tabbar;
+
+       int repeat_freq; // repeat_freq off, daily, ...
+       calendar_range_type_e repeat_range;
+       int repeat_count;
+       struct tm repeat_until;
+
+       GList  *alarm_list;
+
+       int account_id;
+
+       ui_gadget_h ug_worldclock;
+
+       Eina_Bool is_selected_timezone;
+       char * timezone_path;           /* Asia/Seoul */
+       char * timezone_city;           /* IDS_WCL_BODY_CITYNAME_SEOUL */
+       char * timezone_offset; /* GMT+9 */
+
+       Eina_List *calendar_book_list; //For save to
+
+       Elm_Object_Item *event_item;
+       Elm_Object_Item *todo_item;
+
+       char *title_str;
+       char *address;
+       double latitude;
+       double longitude;
+       char *note_str;
+
+       struct tm stm; // start
+       struct tm etm; // end
+
+       Eina_Bool is_no_due_date;
+
+}cal_edit_ug_data;
+
+enum __cal_edit_wday {
+       CAL_EDIT_WDAY_SUNDAY,
+       CAL_EDIT_WDAY_MONDAY,
+       CAL_EDIT_WDAY_TUESDAY,
+       CAL_EDIT_WDAY_WEDNESDAY,
+       CAL_EDIT_WDAY_THURSDAY,
+       CAL_EDIT_WDAY_FRIDAY,
+       CAL_EDIT_WDAY_SATURDAY,
+       CAL_EDIT_WDAY_NODAY,
+};
+
+static int __cal_edit_ug_initialize(cal_edit_ug_data *data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!data, -1);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_connect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_connect() is failed(%x)", error);
+
+       _calendar_init_hash();
+
+       const char *path = bindtextdomain(CALENDAR, LOCALEDIR);
+       c_warn_if(!path, "bindtextdomain(%s, %s) is failed.", CALENDAR, LOCALEDIR);
+
+       cal_util_connect_pattern_generator();
+
+       return 0;
+}
+
+static int __cal_edit_ug_finish(cal_edit_ug_data *data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!data, -1);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_disconnect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_disconnect() is failed(%x)", error);
+
+       elm_theme_extension_del(NULL, EDJDIR "/calendar_theme.edj");
+       elm_theme_extension_del(NULL, EDJDIR "/calendar_theme2.edj");
+
+       cal_util_disconnect_pattern_generator();
+
+       int ret = 0;
+
+       if(data->item_type == ITEM_TYPE_TODO)
+               ret = vconf_set_int(CAL_VCONFKEY_CREATE_EVENT_MODE, 0);
+       else
+               ret = vconf_set_int(CAL_VCONFKEY_CREATE_EVENT_MODE, 1);
+       c_warn_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_CREATE_EVENT_MODE, %d) is failed(%d)", 0, ret);
+
+       return 0;
+
+}
+
+static inline void __cal_edit_ug_set_record_title(calendar_record_h record, const char *title_str)
+{
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_is_task_record(record)) {
+               error = calendar_record_set_str(record, _calendar_todo.summary, title_str);
+       } else {
+               error = calendar_record_set_str(record, _calendar_event.summary, title_str);
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+}
+
+static inline void __cal_edit_ug_set_record_location(calendar_record_h record, const char *address, double latitude, double longitude)
+{
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_is_task_record(record)) {
+
+               if (CAL_STRLEN(address))
+                       error = calendar_record_set_str(record, _calendar_todo.location, address);
+               else
+                       error = calendar_record_set_str(record, _calendar_todo.location, "");
+
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+
+               error = calendar_record_set_double(record, _calendar_todo.latitude, latitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_double() is failed(%x)", error);
+
+               error = calendar_record_set_double(record, _calendar_todo.longitude, longitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_double() is failed(%x)", error);
+       } else {
+
+               if (CAL_STRLEN(address))
+                       error = calendar_record_set_str(record, _calendar_event.location, address);
+               else
+                       error = calendar_record_set_str(record, _calendar_event.location, "");
+
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+
+
+               error = calendar_record_set_double(record, _calendar_event.latitude, latitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_double() is failed(%x)", error);
+
+               error = calendar_record_set_double(record, _calendar_event.longitude, longitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_double() is failed(%x)", error);
+       }
+}
+
+static inline void __cal_edit_ug_set_record_note(calendar_record_h record, const char *note_str)
+{
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_is_task_record(record))
+               error = calendar_record_set_str(record, _calendar_todo.description, note_str);
+       else
+               error = calendar_record_set_str(record, _calendar_event.description, note_str);
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+}
+
+static void __cal_edit_ug_set_record_time(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_ret_if(!p);
+       c_ret_if(!record);
+
+       if (!p->timezone_path)
+               cal_util_get_timezone(&p->timezone_path, &p->timezone_city, &p->timezone_offset);
+
+       c_ret_if(!p->timezone_path);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_set_str(record, _calendar_event.start_tzid, p->timezone_path);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+
+       error = calendar_record_set_str(record, _calendar_event.end_tzid, p->timezone_path);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+
+       calendar_time_s start_time = {0};
+
+       _calendar_get_start_time(record, &start_time);
+
+       calendar_time_s end_time = {0};
+
+       _calendar_get_end_time(record, &end_time);
+
+       if (_calendar_is_allday_record(record)) {
+
+               start_time.time.date.year = p->stm.tm_year + 1900;
+               start_time.time.date.month = p->stm.tm_mon + 1;
+               start_time.time.date.mday = p->stm.tm_mday;
+
+               end_time.time.date.year = p->stm.tm_year + 1900;
+               end_time.time.date.month = p->stm.tm_mon + 1;
+               end_time.time.date.mday = p->stm.tm_mday;
+
+       } else {
+               cal_util_convert_tm_to_lli(NULL, &p->stm, &start_time.time.utime);
+               cal_util_convert_tm_to_lli(NULL, &p->etm, &end_time.time.utime);
+       }
+
+       error = calendar_record_set_caltime(record, _calendar_event.start_time, start_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() is failed(%x)", error);
+
+       error = calendar_record_set_caltime(record, _calendar_event.end_time, end_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() is failed(%x)", error);
+}
+
+static void __cal_edit_ug_set_rrule_wday(calendar_record_h record, enum __cal_edit_wday tm_wday)
+{
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       switch (tm_wday) {
+       case CAL_EDIT_WDAY_SUNDAY:
+               error = calendar_record_set_str(record, _calendar_event.byday, "SU");
+               break;
+
+       case CAL_EDIT_WDAY_MONDAY:
+               error = calendar_record_set_str(record, _calendar_event.byday, "MO");
+               break;
+
+       case CAL_EDIT_WDAY_TUESDAY:
+               error = calendar_record_set_str(record, _calendar_event.byday, "TU");
+               break;
+
+       case CAL_EDIT_WDAY_WEDNESDAY:
+               error = calendar_record_set_str(record, _calendar_event.byday, "WE");
+               break;
+
+       case CAL_EDIT_WDAY_THURSDAY:
+               error = calendar_record_set_str(record, _calendar_event.byday, "TH");
+               break;
+
+       case CAL_EDIT_WDAY_FRIDAY:
+               error = calendar_record_set_str(record, _calendar_event.byday, "FR");
+               break;
+
+       case CAL_EDIT_WDAY_SATURDAY:
+               error = calendar_record_set_str(record, _calendar_event.byday, "SA");
+               break;
+       default:
+               ERR("Error!!");
+               error = calendar_record_set_str(record, _calendar_event.byday, "SU");
+               break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+}
+
+static void __cal_edit_ug_set_rrule_month(calendar_record_h record, int tm_mon)
+{
+       c_ret_if(!record);
+
+       char buffer[8] = {0};
+
+       snprintf(buffer, sizeof(buffer), "%d", tm_mon + 1);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_set_str(record, _calendar_event.bymonth, buffer);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+}
+
+static void __cal_edit_ug_set_rrule_mday(calendar_record_h record, int tm_mday)
+{
+       c_ret_if(!record);
+
+       char buffer[8] = {0};
+
+       snprintf(buffer, sizeof(buffer), "%d", tm_mday);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_set_str(record, _calendar_event.bymonthday, buffer);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+}
+
+static int __cal_edit_ug_g_list_compare(const void* data1, const void* data2)
+{
+       const Cal_Reminder* reminder1 = (Cal_Reminder*)data1;
+       const Cal_Reminder* reminder2 = (Cal_Reminder*)data2;
+
+       if (reminder1->tick_unit == CALENDAR_ALARM_TIME_UNIT_SPECIFIC) {
+               if (reminder2->tick_unit == CALENDAR_ALARM_TIME_UNIT_SPECIFIC) {
+                       long long int dt1, dt2;
+                       cal_util_convert_tm_to_lli(NULL, &reminder1->datetime, &dt1);
+                       cal_util_convert_tm_to_lli(NULL, &reminder2->datetime, &dt2);
+                       if (dt1 > dt2)
+                               return 1;
+                       else if (dt1 < dt2)
+                               return -1;
+                       else
+                               return 0;
+               } else {
+                       return 1;
+               }
+       } else {
+               if (reminder2->tick_unit == CALENDAR_ALARM_TIME_UNIT_SPECIFIC)
+                       return -1;
+               else
+                       return reminder1->alarm_value - reminder2->alarm_value;
+       }
+}
+
+static int __cal_edit_ug_g_list_compare_with_data(const void* data1, const void* data2, void* user_data)
+{
+       return __cal_edit_ug_g_list_compare(data1, data2);
+}
+
+
+static void __cal_edit_ug_set_record_alarm(cal_edit_ug_data *p, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+       c_retm_if(!record, "record is null");
+
+       GList *temp  = NULL;
+
+       Eina_Bool is_task = _calendar_is_task_record(record);
+
+       if (is_task)
+               _calendar_clear_child_record(record, _calendar_todo.calendar_alarm);
+       else
+               _calendar_clear_child_record(record, _calendar_event.calendar_alarm);
+
+
+       Eina_List* list = NULL;
+       Evas_Object *item = NULL;
+       EINA_LIST_FOREACH(p->alarm_item_list, list, item)       {
+               if(item)        {
+                       Cal_Reminder* reminder = evas_object_data_get(item, "data");
+
+                       if (g_list_find_custom(temp, reminder, __cal_edit_ug_g_list_compare))
+                               continue;
+
+                       temp = g_list_insert_sorted_with_data(temp, reminder, __cal_edit_ug_g_list_compare_with_data, NULL);
+
+                       calendar_record_h calendar_alarm = cal_reminder_get_cal_val(reminder);
+
+                       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+                       if (is_task)
+                               error = calendar_record_add_child_record(record, _calendar_todo.calendar_alarm, calendar_alarm);
+                       else
+                               error = calendar_record_add_child_record(record, _calendar_event.calendar_alarm, calendar_alarm);
+
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_add_child_record() is failed(%x)", error);
+               }
+       }
+}
+
+static void __cal_edit_ug_set_record_repeat(cal_edit_ug_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       switch (p->repeat_freq) {
+               case CALENDAR_RECURRENCE_NONE:
+                       break;
+
+               case CALENDAR_RECURRENCE_DAILY:
+                       error = calendar_record_set_int(p->event, _calendar_event.interval, 1);
+                       break;
+
+               case CAL_REPEAT_EVERY_3_DAY:
+                       p->repeat_freq = CALENDAR_RECURRENCE_DAILY;
+                       error = calendar_record_set_int(p->event, _calendar_event.interval, 3);
+                       break;
+
+               case CALENDAR_RECURRENCE_WEEKLY:
+                       __cal_edit_ug_set_rrule_wday(p->event, p->stm.tm_wday);
+                       error = calendar_record_set_int(p->event, _calendar_event.interval, 1);
+                       break;
+
+               case CAL_REPEAT_EVERY_2_WEEK:
+                       p->repeat_freq = CALENDAR_RECURRENCE_WEEKLY;
+                       __cal_edit_ug_set_rrule_wday(p->event, p->stm.tm_wday);
+                       error = calendar_record_set_int(p->event, _calendar_event.interval, 2);
+                       break;
+
+               case CALENDAR_RECURRENCE_YEARLY:
+                       __cal_edit_ug_set_rrule_month(p->event, p->stm.tm_mon);
+               case CALENDAR_RECURRENCE_MONTHLY:
+                       __cal_edit_ug_set_rrule_mday(p->event, p->stm.tm_mday);
+                       error = calendar_record_set_int(p->event, _calendar_event.interval, 1);
+                       break;
+
+               default:
+                       break;
+       }
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+       error = calendar_record_set_int(p->event, _calendar_event.freq, p->repeat_freq);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+       error = calendar_record_set_int(p->event, _calendar_event.range_type, p->repeat_range);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+       if (CALENDAR_RECURRENCE_NONE != p->repeat_freq) {
+
+               if (p->repeat_range == CALENDAR_RANGE_COUNT) {
+                       error = calendar_record_set_int(p->event, _calendar_event.count, p->repeat_count);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+               } else if (p->repeat_range == CALENDAR_RANGE_UNTIL) {
+
+                       error = calendar_record_set_int(p->event, _calendar_event.count, 0);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+                       calendar_time_s until_time = {0};
+
+                       until_time.type = CALENDAR_TIME_UTIME;
+                       cal_util_convert_tm_to_lli(NULL, &p->repeat_until, &until_time.time.utime);
+
+                       error = calendar_record_set_caltime(p->event, _calendar_event.until_time, until_time);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+               }
+       }
+}
+
+static void __cal_edit_ug_set_record_save_to( calendar_record_h record, int calendar_book_id)
+{
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_is_task_record(record)) {
+               error = calendar_record_set_int(record, _calendar_todo.calendar_book_id, calendar_book_id);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+       } else {
+               error = calendar_record_set_int(record, _calendar_event.calendar_book_id, calendar_book_id);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+               calendar_record_h calendar_book = NULL;
+
+               error = calendar_db_get_record(_calendar_book._uri, calendar_book_id, &calendar_book);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record() is failed(%x)", error);
+
+               char *organizer_name = NULL;
+
+               error = calendar_record_get_str(calendar_book, _calendar_book.description, &organizer_name);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+               error = calendar_record_set_str(record, _calendar_event.organizer_name, organizer_name);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+
+               CAL_FREE(organizer_name);
+
+               error = calendar_record_destroy(calendar_book, true);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+       }
+}
+
+static void  __cal_edit_ug_set_record_due_time(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!record, "record is null");
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_time_s due_time = {0};
+
+       _calendar_get_end_time(record, &due_time);
+
+       error = calendar_record_set_str(record, _calendar_todo.due_tzid, p->timezone_path);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_str() is failed(%x)", error);
+
+       if (p->is_no_due_date)  {
+               due_time.time.utime = CALENDAR_TODO_NO_DUE_DATE;
+       } else {
+               cal_util_convert_tm_to_lli(NULL, &p->etm, &due_time.time.utime);
+       }
+
+       error = calendar_record_set_caltime(record, _calendar_todo.due_time, due_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() is failed(%x)", error);
+}
+
+static void __cal_edit_ug_set_record_priority(calendar_record_h record, int priority)
+{
+       c_retm_if(!record, "record is null");
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_set_int(record, _calendar_todo.priority, priority);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+}
+
+static void __cal_edit_ug_initialize_event_record(cal_edit_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if(!p->event) {
+               error = calendar_record_create(_calendar_event._uri, &p->event);
+               c_retm_if(error != CALENDAR_ERROR_NONE, "calendar_record_create() is failed(%x)", error);
+       }
+
+       p->stm = p->base_time;
+       p->stm.tm_min = p->stm.tm_sec = 0;
+
+       if (0 <= p->base_time.tm_hour)
+               p->stm.tm_hour = p->base_time.tm_hour;
+       else
+               cal_util_update_tm_hour(&p->stm,1);
+
+       p->etm = p->stm;
+       cal_util_update_tm_hour(&p->etm,1);
+
+       calendar_time_s start_time = {0};
+       calendar_time_s end_time = {0};
+
+       start_time.type = CALENDAR_TIME_UTIME;
+       end_time.type = CALENDAR_TIME_UTIME;
+
+       cal_util_convert_tm_to_lli(NULL, &p->stm, &start_time.time.utime);
+       cal_util_convert_tm_to_lli(NULL, &p->etm, &end_time.time.utime);
+
+       error = calendar_record_set_caltime(p->event, _calendar_event.start_time, start_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() is failed(%x)", error);
+
+       error = calendar_record_set_caltime(p->event, _calendar_event.end_time, end_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() is failed(%x)", error);
+
+       cal_util_get_timezone(&p->timezone_path, &p->timezone_city, &p->timezone_offset);
+        __cal_edit_ug_set_record_time(p, p->event);
+
+       struct tm repeat_until = p->stm;
+       cal_util_update_tm_month (&repeat_until, 1);
+       p->repeat_freq = CALENDAR_RECURRENCE_NONE;
+       p->repeat_range = CALENDAR_RANGE_NONE;
+       p->repeat_count = 10;
+       __cal_edit_ug_set_record_repeat(p);
+
+       __cal_edit_ug_set_record_save_to(p->event, DEFAULT_EVENT_CALENDAR_BOOK_ID);
+
+       p->title_str = NULL;
+       p->note_str = NULL;
+       p->address = NULL;
+}
+
+static void __cal_edit_ug_initialize_todo_record(cal_edit_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if(!p->todo) {
+               error = calendar_record_create(_calendar_todo._uri, &p->todo);
+               c_retm_if(error != CALENDAR_ERROR_NONE, "calendar_record_create() is failed(%x)", error);
+       }
+
+       p->stm = p->base_time;
+       p->stm.tm_min = p->stm.tm_sec = 0;
+
+       if (0 <= p->base_time.tm_hour)
+               p->stm.tm_hour = p->base_time.tm_hour;
+       else
+               cal_util_update_tm_hour(&p->stm,1);
+
+       p->etm = p->stm;
+       cal_util_update_tm_hour(&p->etm,1);
+
+       calendar_time_s end_time = {0};
+       end_time.type = CALENDAR_TIME_UTIME;
+
+       cal_util_convert_tm_to_lli(NULL, &p->etm, &end_time.time.utime);
+
+       error = calendar_record_set_caltime(p->todo, _calendar_todo.due_time, end_time);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_caltime() is failed(%x)", error);
+
+       __cal_edit_ug_set_record_save_to(p->todo, DEFAULT_TODO_CALENDAR_BOOK_ID);
+
+       __cal_edit_ug_set_record_priority(p->todo, CALENDAR_TODO_PRIORITY_NORMAL);
+
+       p->title_str = NULL;
+       p->note_str = NULL;
+       p->address = NULL;
+}
+
+static inline char * __cal_edit_ug_get_record_title(calendar_record_h record)
+{
+       c_retvm_if(!record, NULL, "record is null");
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       char *summary = NULL;
+
+       if (_calendar_is_task_record(record))
+               error = calendar_record_get_str(record, _calendar_todo.summary, &summary);
+       else
+               error = calendar_record_get_str(record, _calendar_event.summary, &summary);
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       return summary;
+}
+
+static inline void __cal_edit_ug_get_record_location(cal_edit_ug_data *p, calendar_record_h record)
+{
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       p->address = _calendar_get_location(record);
+
+       if (_calendar_is_task_record(record))
+       {
+               error = calendar_record_get_double(record, _calendar_todo.latitude, &p->latitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_double() is failed(%x)", error);
+               error = calendar_record_get_double(record, _calendar_todo.longitude, &p->longitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_double() is failed(%x)", error);
+       }
+       else
+       {
+               error = calendar_record_get_double(record, _calendar_event.latitude, &p->latitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_double() is failed(%x)", error);
+               error = calendar_record_get_double(record, _calendar_event.longitude, &p->longitude);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_double() is failed(%x)", error);
+       }
+}
+
+static inline char * __cal_edit_ug_get_record_note(calendar_record_h record)
+{
+       c_retvm_if(!record, NULL, "record is null");
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       char *note = NULL;
+
+       if (_calendar_is_task_record(record))
+               error = calendar_record_get_str(record, _calendar_todo.description, &note);
+       else
+               error = calendar_record_get_str(record, _calendar_event.description, &note);
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       return note;
+}
+
+static int __cal_edit_ug_get_timezone_offset_with_standard_name(const char *standard_name)
+{
+       int timezone_offset = 0;
+
+       c_retv_if(!CAL_STRLEN(standard_name), timezone_offset);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_query_h query = NULL;
+
+       error = calendar_query_create(_calendar_timezone._uri, &query);
+       c_retvm_if(error != CALENDAR_ERROR_NONE, timezone_offset, "calendar_query_create() is failed(%x)", error);
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_filter_create(_calendar_timezone._uri, &filter);
+       if (error != CALENDAR_ERROR_NONE) {
+
+               ERR("calendar_filter_create() is failed(%x)", error);
+               calendar_query_destroy(query);
+               return 0;
+       }
+
+       error = calendar_filter_add_str(filter, _calendar_timezone.standard_name, CALENDAR_MATCH_EXACTLY, standard_name);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_str() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_set_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 1, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       calendar_record_h timezone = NULL;
+
+       error = calendar_list_get_current_record_p(list, &timezone);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+       error = calendar_record_get_int(timezone, _calendar_timezone.tz_offset_from_gmt, &timezone_offset);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       return timezone_offset;
+}
+
+static void __cal_edit_ug_get_timezone_for_eas(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_ret_if(!p);
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       char *standard_name = NULL;
+
+       if (_calendar_is_task_record(record))
+               error = calendar_record_get_str_p(record, _calendar_todo.due_tzid, &standard_name);
+       else
+               error = calendar_record_get_str_p(record, _calendar_event.start_tzid, &standard_name);
+
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       c_ret_if(!CAL_STRLEN(standard_name));
+
+       int timezone_offset = __cal_edit_ug_get_timezone_offset_with_standard_name(standard_name);
+
+       cal_util_get_timezone_id(timezone_offset, &p->timezone_path);
+}
+
+static void  __cal_edit_ug_get_record_time_zone(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_ret_if(!p);
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (_calendar_is_eas_record(record))
+               __cal_edit_ug_get_timezone_for_eas(p, record);
+       else {
+               if (_calendar_is_task_record(record))
+                       error = calendar_record_get_str(record, _calendar_todo.due_tzid, &p->timezone_path);
+               else
+                       error = calendar_record_get_str(record, _calendar_event.start_tzid, &p->timezone_path);
+
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+       }
+
+       c_ret_if(!CAL_STRLEN(p->timezone_path));
+
+       cal_util_get_timezone(&p->timezone_path, &p->timezone_city, &p->timezone_offset);
+}
+
+static void  __cal_edit_ug_get_record_alarm(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!record, "record is null");
+
+       if (p->alarm_list) {
+               g_list_free(p->alarm_list);
+               p->alarm_list = NULL;
+       }
+
+       int alarm_count = 0;
+
+       Eina_Bool is_task = _calendar_is_task_record(record);
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (is_task)
+       {
+               error = calendar_record_get_child_record_count(record, _calendar_todo.calendar_alarm, (unsigned int *)&alarm_count);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_count() is failed(%x)", error);
+       }
+       else
+       {
+               error = calendar_record_get_child_record_count(record, _calendar_event.calendar_alarm, (unsigned int *)&alarm_count);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_count() is failed(%x)", error);
+       }
+
+       int i = 0;
+       for (i = 0; i < alarm_count; i++) {
+               calendar_record_h calendar_alarm = NULL;
+
+               if (is_task)
+               {
+                       error = calendar_record_get_child_record_at_p(record, _calendar_todo.calendar_alarm, i, &calendar_alarm);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_at_p() is failed(%x)", error);
+               }
+               else
+               {
+                       error = calendar_record_get_child_record_at_p(record, _calendar_event.calendar_alarm, i, &calendar_alarm);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_child_record_at_p() is failed(%x)", error);
+               }
+
+               Cal_Reminder* reminder = cal_reminder_create(calendar_alarm);
+               p->alarm_list = g_list_append(p->alarm_list,(void *)reminder);
+       }
+
+       p->alarm_list = g_list_first(p->alarm_list);
+}
+
+static void  __cal_edit_ug_get_record_repeat(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_ret_if(!p);
+       c_ret_if(!record);
+
+       calendar_record_h original_record = NULL;
+       int original_event_id = 0;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_get_int(record, _calendar_event.original_event_id, &original_event_id);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (0 < original_event_id) {
+
+               error = calendar_db_get_record(_calendar_event._uri, original_event_id, &original_record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record() is failed(%x)", error);
+       }
+
+       if (!original_record)
+               original_record = record;
+
+       error = calendar_record_get_int(record, _calendar_event.freq, &p->repeat_freq);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (p->repeat_freq == CALENDAR_RECURRENCE_WEEKLY) {
+
+               int interval = 0;
+
+               error = calendar_record_get_int(record, _calendar_event.interval, &interval);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (2 == interval)
+                       p->repeat_freq = CAL_REPEAT_EVERY_2_WEEK;
+
+       } else if (p->repeat_freq == CALENDAR_RECURRENCE_DAILY) {
+
+               int interval = 0;
+
+               error = calendar_record_get_int(record, _calendar_event.interval, &interval);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (3 == interval)
+                       p->repeat_freq = CAL_REPEAT_EVERY_3_DAY;
+       }
+
+       error = calendar_record_get_int(record, _calendar_event.range_type, (int *)&p->repeat_range);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (p->repeat_range == CALENDAR_RANGE_NONE) {
+               p->repeat_count = 10;
+
+               p->repeat_until = p->stm;
+               cal_util_update_tm_month (&p->repeat_until, 1);
+
+       } else {
+               error = calendar_record_get_int(record, _calendar_event.count, &p->repeat_count);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               calendar_time_s until_utime = {0};
+
+               error = calendar_record_get_caltime(record, _calendar_event.until_time, &until_utime);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_caltime() is failed(%x)", error);
+
+               cal_util_convert_lli_to_tm(NULL, until_utime.time.utime, &p->repeat_until);
+       }
+
+       if (original_record != record) {
+               error = calendar_record_destroy(original_record, true);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+       }
+}
+
+static int  __cal_edit_ug_get_record_priority(calendar_record_h record)
+{
+       c_retv_if(!record, 0);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int priority;
+
+       error = calendar_record_get_int(record, _calendar_todo.priority, (int *)&priority);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       return priority;
+}
+
+static void __cal_edit_ug_get_record_due_time(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!record, "record is null");
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_time_s due_time = {0};
+
+       _calendar_get_end_time(record, &due_time);
+
+       cal_util_convert_lli_to_tm(NULL, due_time.time.utime, &p->etm);
+
+       if (due_time.time.utime == CALENDAR_TODO_NO_DUE_DATE) {
+               p->is_no_due_date = EINA_TRUE;
+               //p->etm = p->base_time;
+       }
+
+       error = calendar_record_get_str(record, _calendar_todo.due_tzid, &p->timezone_path);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       c_ret_if(!p->timezone_path);
+
+       cal_util_get_timezone(&p->timezone_path, &p->timezone_city, &p->timezone_offset);
+}
+
+static void __cal_edit_ug_update_title_item(Evas_Object *entry, calendar_record_h record)
+{
+       c_retm_if(!entry, "entry is null");
+       c_retm_if(!record, "record is null");
+
+       char* title = __cal_edit_ug_get_record_title(record);
+
+       elm_entry_entry_set(entry, title);
+
+       CAL_FREE(title);
+}
+
+static void __cal_edit_ug_update_note_item(Evas_Object *entry, calendar_record_h record)
+{
+       c_retm_if(!entry, "entry is null");
+       c_retm_if(!record, "record is null");
+
+       char* note = __cal_edit_ug_get_record_note(record);
+
+       elm_entry_entry_set(entry, note);
+
+       CAL_FREE(note);
+}
+
+static void __cal_edit_ug_update_location_item(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!record, "record is null");
+
+       __cal_edit_ug_get_record_location(p, record);
+       elm_entry_entry_set(p->location_entry, p->address);
+}
+
+static void __cal_edit_ug_get_save_to_str(int calid, char *buf, int sz);
+
+static void __cal_edit_ug_update_save_to_item(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_retm_if(!p, "p is null");
+
+       int calendar_book_id = _calendar_get_calendar_index(record);
+
+       char buf[1024];
+       char* saveto_text = NULL;
+       if (calendar_book_id == DEFAULT_EVENT_CALENDAR_BOOK_ID)
+               saveto_text =  strdup(C_("IDS_CLD_BODY_MY_CALENDAR"));
+       else if (calendar_book_id == DEFAULT_TODO_CALENDAR_BOOK_ID)
+               saveto_text =  strdup(C_("IDS_TASK_BODY_MY_TASK"));
+       else {
+               __cal_edit_ug_get_save_to_str(calendar_book_id, buf, sizeof(buf));
+               saveto_text = strdup(buf);
+       }
+
+       elm_object_part_text_set(p->saveto, "elm.text.1", saveto_text);
+
+       CAL_FREE(saveto_text);
+}
+
+static void __cal_edit_ug_update_priority_item(cal_edit_ug_data *p, calendar_record_h record)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(!record, "record is null");
+
+       char* priority_text = NULL;
+       int priority = __cal_edit_ug_get_record_priority(record);
+       switch (priority) {
+               case CALENDAR_TODO_PRIORITY_LOW:
+                       priority_text = strdup(S_("IDS_COM_BODY_LOW"));
+                       break;
+               case CALENDAR_TODO_PRIORITY_NORMAL:
+                       priority_text =strdup(C_("IDS_IDLE_BODY_NORMAL"));
+                       break;
+               case CALENDAR_TODO_PRIORITY_HIGH:
+                       priority_text =strdup(S_("IDS_COM_OPT_HIGH_M_QUALITY"));
+                       break;
+               default:
+                       break;
+       }
+
+       elm_object_part_text_set(p->priority, "elm.text.1", priority_text);
+       CAL_FREE(priority_text);
+
+}
+
+static void __cal_edit_ug_update_start_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text", C_("IDS_CLD_BODY_FROM"));
+}
+
+static void __cal_edit_ug_update_end_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text", C_("IDS_CLD_BODY_TO"));
+}
+
+static void __cal_edit_ug_update_due_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text", C_("IDS_CLD_BODY_DUE_DATE"));
+}
+
+static Evas_Object *__cal_edit_ug_insert_padding_after(cal_edit_ug_data* p, const char* title, Evas_Object *after)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!after, NULL);
+
+       Evas_Object *item = cal_dialogue_insert_item_after(p->dialogue, "title", after, NULL, NULL);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       if (CAL_STRLEN(title))
+               elm_object_part_text_set(item, "elm.text", title);
+
+       return item;
+}
+
+static void __cal_edit_ug_title_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       const char *str;
+       cal_edit_ug_data* p = (cal_edit_ug_data *)data;
+
+       free(p->title_str);
+
+       str = elm_entry_entry_get(p->title_entry);
+       if (!str || str[0] == '\0')
+               p->title_str = NULL;
+       else
+               p->title_str = elm_entry_markup_to_utf8(str);
+
+       if(p->item_type == ITEM_TYPE_TODO)
+               __cal_edit_ug_set_record_title(p->todo, p->title_str);
+       else
+               __cal_edit_ug_set_record_title(p->event, p->title_str);
+}
+
+static Evas_Object * __cal_edit_ug_title_icon(cal_edit_ug_data* p, Evas_Object *obj)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!obj, NULL);
+
+       Evas_Object *ef = cal_util_add_edit_field(obj, S_("IDS_COM_BODY_DETAILS_TITLE"), EINA_FALSE, EINA_TRUE);
+       c_retvm_if(!ef, NULL, "ef is null");
+
+       Evas_Object *entry = elm_object_part_content_get(ef, "elm.swallow.content");
+       c_retvm_if(!entry, ef, "entry is null");
+
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+
+       p->title_entry = entry;
+
+       if (p->item_type == ITEM_TYPE_TODO)
+               __cal_edit_ug_update_title_item(p->title_entry, p->todo);
+       else
+               __cal_edit_ug_update_title_item(p->title_entry, p->event);
+
+       evas_object_smart_callback_add(p->title_entry, "changed", __cal_edit_ug_title_entry_changed_callback, p);
+       evas_object_smart_callback_add(p->title_entry, "preedit,changed", __cal_edit_ug_title_entry_changed_callback, p);
+
+       cal_save_cancel_set_input_panel_callback_for_ug(p->save_cancel, p->title_entry);
+
+       return ef;
+
+}
+
+static void __cal_edit_ug_update_title_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       Evas_Object *edit_field = elm_object_part_content_get(item, "elm.icon");
+       c_ret_if(!edit_field);
+
+       elm_object_part_text_set(edit_field, "elm.guidetext", S_("IDS_COM_BODY_DETAILS_TITLE"));
+}
+
+static Evas_Object *__cal_edit_ug_add_title(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(p->dialogue, "1icon", NULL, NULL);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       Evas_Object *editfield = __cal_edit_ug_title_icon(p, item);
+       c_retvm_if(!editfield, NULL, "__cal_edit_ug_title_icon() is failed");
+
+       elm_object_part_content_set(item, "elm.icon", editfield);
+
+       return item;
+}
+
+static void __cal_edit_ug_location_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+
+       cal_edit_ug_data *p = data;
+       c_ret_if(!p);
+
+       CAL_FREE(p->address);
+
+       p->address = elm_entry_markup_to_utf8(elm_entry_entry_get(p->location_entry));
+
+       if (!CAL_STRLEN(p->address)) {
+
+               p->longitude = p->latitude = CALENDAR_RECORD_NO_COORDINATE;
+
+       }
+
+       if (p->item_type == ITEM_TYPE_TODO)
+               __cal_edit_ug_set_record_location(p->todo, p->address, p->latitude, p->longitude);
+       else
+               __cal_edit_ug_set_record_location(p->event, p->address, p->latitude, p->longitude);
+}
+
+static Evas_Object * __cal_edit_ug_location_icon(cal_edit_ug_data* p, Evas_Object *obj)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!obj, NULL);
+
+       Evas_Object *ly = NULL;
+
+       Evas_Object *ef = cal_util_add_edit_field(obj, C_("IDS_COM_BODY_DETAILS_LOCATION"), EINA_FALSE, EINA_TRUE);
+       ly = ef;
+
+       p->location_entry = elm_object_part_content_get(ef, "elm.swallow.content");
+       c_retv_if(!p->location_entry, ly);
+
+       evas_object_smart_callback_add(p->location_entry, "changed", __cal_edit_ug_location_entry_changed_callback, p);
+       evas_object_smart_callback_add(p->location_entry, "preedit,changed", __cal_edit_ug_location_entry_changed_callback, p);
+       cal_save_cancel_set_input_panel_callback_for_ug(p->save_cancel, p->location_entry);
+
+       elm_entry_cnp_mode_set(p->location_entry, ELM_CNP_MODE_PLAINTEXT);
+
+       if (p->item_type == ITEM_TYPE_TODO)
+               __cal_edit_ug_update_location_item(p, p->todo);
+       else
+               __cal_edit_ug_update_location_item(p, p->event);
+
+       return ly;
+}
+
+static void __cal_edit_ug_update_location_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       Evas_Object *layout = elm_object_part_content_get(item, "elm.icon");
+       c_ret_if(!layout);
+
+       Evas_Object *edit_field = elm_object_part_content_get(layout, "editfield/sw");
+       c_ret_if(!edit_field);
+
+       elm_object_part_text_set(edit_field, "elm.guidetext", C_("IDS_COM_BODY_DETAILS_LOCATION"));
+
+       Evas_Object *button = elm_object_part_content_get(layout, "button/sw");
+       c_ret_if(!button);
+
+       elm_object_text_set(button, C_("IDS_LBS_BODY_MAP"));
+}
+
+static Evas_Object *__cal_edit_ug_add_location(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(p->dialogue, "1icon", NULL, NULL);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       Evas_Object *editfield = __cal_edit_ug_location_icon(p, item);
+       c_retvm_if(!editfield, NULL, "__cal_edit_ug_note_icon() is failed");
+
+       elm_object_part_content_set(item, "elm.icon", editfield);
+
+       __cal_edit_ug_insert_padding_after(p, NULL, item);
+
+       return item;
+}
+
+static void __cal_edit_ug_note_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       char *email_link = NULL;
+       cal_edit_ug_data *p = data;
+       char *str = elm_entry_markup_to_utf8(elm_entry_entry_get(p->note_entry));
+
+       if (CAL_STRLEN(p->note_str))
+               email_link = strstr(p->note_str, EMAIL_LINK_FLAG);
+
+       if ((NULL != email_link)  && CAL_STRLEN(str) && (NULL != strstr(p->note_str, str))) {
+               char *strnote = NULL;
+               int strnote_len = 0;
+               strnote_len = strlen(str) + strlen(email_link);
+               CAL_CALLOC(strnote, strnote_len+1, char);
+               if (NULL != strnote)
+               {
+                       snprintf(strnote, strnote_len + 1, "%s%s", str, email_link);
+                       p->note_str = strdup(strnote);
+
+                       free(strnote);
+               }
+               else
+               {
+                       p->note_str = NULL;
+               }
+
+       } else {
+               p->note_str = CAL_STRDUP(str);
+       }
+
+       free(str);
+
+       if(p->item_type == ITEM_TYPE_TODO)
+               __cal_edit_ug_set_record_note(p->todo, p->note_str);
+       else
+               __cal_edit_ug_set_record_note(p->event, p->note_str);
+}
+
+
+static Evas_Object * __cal_edit_ug_note_icon(cal_edit_ug_data* p, Evas_Object *obj)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!obj, NULL);
+
+       Evas_Object *ef = cal_util_add_edit_field(obj, C_("IDS_CLD_BODY_CREATE_DESCRITION"), EINA_FALSE, EINA_TRUE );
+
+       if (ef) {
+               Evas_Object *entry = elm_object_part_content_get(ef, "elm.swallow.content");
+               c_retvm_if(!entry, ef, "entry is null");
+
+               evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_EXPAND);
+               //elm_entry_autocapital_type_set(entry, EINA_TRUE);
+               elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+
+               p->note_entry = entry;
+
+               if (p->note_str) {
+
+                       char *email_link = NULL;
+                       email_link = strstr(p->note_str, EMAIL_LINK_FLAG);
+                       if(!email_link)
+                               elm_entry_entry_set(p->note_entry, elm_entry_utf8_to_markup(p->note_str));
+                       else {
+
+                               char *snote_display = NULL;
+                               int nsize = email_link - p->note_str + 1;
+                               snote_display = calloc(nsize, sizeof(char));
+                               c_retvm_if(!snote_display , NULL, "calloc(nsize, sizeof(char)) is failed");
+
+                               CAL_STRNCPY(snote_display, p->note_str, nsize-1);
+
+                               elm_entry_entry_set(p->note_entry, elm_entry_utf8_to_markup(snote_display));
+                               free(snote_display);
+                       }
+               }
+
+               if (p->item_type == ITEM_TYPE_TODO)
+                       __cal_edit_ug_update_note_item(p->note_entry, p->todo);
+               else
+                       __cal_edit_ug_update_note_item(p->note_entry, p->event);
+
+               evas_object_smart_callback_add(p->note_entry, "changed", __cal_edit_ug_note_entry_changed_callback, p);
+               evas_object_smart_callback_add(p->note_entry, "preedit,changed", __cal_edit_ug_note_entry_changed_callback, p);
+               cal_save_cancel_set_input_panel_callback_for_ug(p->save_cancel, p->note_entry);
+
+               return ef;
+       }
+
+       return NULL;
+}
+
+static void __cal_edit_ug_update_description_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       Evas_Object *edit_field = elm_object_part_content_get(item, "elm.icon");
+       c_ret_if(!edit_field);
+
+       elm_object_part_text_set(edit_field, "elm.guidetext", C_("IDS_CLD_BODY_CREATE_DESCRITION"));
+}
+
+static Evas_Object *__cal_edit_ug_add_note(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(p->dialogue, "1icon",  NULL, NULL);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       Evas_Object *editfield = __cal_edit_ug_note_icon(p, item);
+       c_retvm_if(!editfield, NULL, "__cal_edit_ug_location_icon() is failed");
+
+
+       elm_object_part_content_set(item, "elm.icon", editfield);
+
+       return item;
+}
+
+static Evas_Object * __cal_edit_ug_edit_time_icon(Evas_Object *obj, struct tm* value, Eina_Bool allday)
+{
+       c_retvm_if(!obj, NULL, "obj is null");
+
+       Evas_Object* icon_obj = cal_util_add_datetime(obj, NULL, value);
+       c_retvm_if(!icon_obj, NULL, "icon_obj is null");
+
+       elm_object_part_content_set(obj, "datefield", icon_obj);
+
+       if (is_hour24)
+               elm_datetime_format_set(icon_obj, "%b %d , %Y %H : %M");
+       else
+               elm_datetime_format_set(icon_obj, "%b %d , %Y %I : %M %p");
+
+       if (!allday)
+       {
+               elm_datetime_field_visible_set(icon_obj, ELM_DATETIME_HOUR, EINA_TRUE);
+               elm_datetime_field_visible_set(icon_obj, ELM_DATETIME_MINUTE, EINA_TRUE);
+               if (is_hour24)
+                       elm_datetime_field_visible_set(icon_obj, ELM_DATETIME_AMPM, EINA_FALSE);
+               else
+                       elm_datetime_field_visible_set(icon_obj, ELM_DATETIME_AMPM, EINA_TRUE);
+       }
+       else
+       {
+               elm_datetime_field_visible_set(icon_obj, ELM_DATETIME_HOUR, EINA_FALSE);
+               elm_datetime_field_visible_set(icon_obj, ELM_DATETIME_MINUTE, EINA_FALSE);
+               elm_datetime_field_visible_set(icon_obj, ELM_DATETIME_AMPM, EINA_FALSE);
+       }
+
+       elm_datetime_field_limit_set(icon_obj, ELM_DATETIME_YEAR, 70, 136);
+
+       return icon_obj;
+}
+
+static Eina_Bool __cal_edit_ug_check_date_validity(void *data)
+{
+       c_retv_if(!data, EINA_FALSE);
+       cal_edit_ug_data* p = data;
+
+       time_t start_t = mktime(&p->stm);
+       time_t end_t = mktime(&p->etm);
+
+       if(start_t > end_t)
+               return EINA_FALSE;
+
+       return EINA_TRUE;
+}
+
+static void __cal_edit_ug_start_date_changed_callback(void *data, Evas_Object* obj, void *ei)
+{
+       c_retm_if(data == NULL, "data is null");
+       cal_edit_ug_data *p = data;
+
+       struct tm value;
+       time_t t = time(NULL);
+       localtime_r(&t, &value); // to fill hidden field
+
+       elm_datetime_value_get(obj, &value);
+
+       // Remember the time difference in before updating start time
+       time_t start_t = mktime(&p->stm);
+       time_t end_t = mktime(&p->etm);
+       time_t diff = end_t - start_t;
+
+       // Update start time variable
+       p->stm = value;
+
+       Eina_Bool result =__cal_edit_ug_check_date_validity(p);
+       if(!result)     {
+               // Calculate end time from start time to retain the time difference
+               end_t = mktime(&p->stm) + diff;
+               localtime_r(&end_t, &p->etm);
+
+               // Update end time on the screen
+               Evas_Object *end_date_obj = elm_object_part_content_get(p->end_date, "elm.icon");
+               elm_datetime_value_set(end_date_obj, &p->etm);
+       }
+
+       __cal_edit_ug_set_record_time(p, p->event);
+}
+
+static void __cal_edit_ug_end_date_changed_callback(void *data, Evas_Object* obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       cal_edit_ug_data *p = data;
+
+       struct tm value;
+       time_t t = time(NULL);
+       localtime_r(&t, &value); // to fill hidden field
+
+       elm_datetime_value_get(obj, &value);
+
+       p->etm = value;
+
+       __cal_edit_ug_set_record_time(p, p->event);
+}
+
+static void __cal_edit_ug_due_date_changed_callback(void *data, Evas_Object* obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+       cal_edit_ug_data *p = data;
+
+       struct tm value;
+       time_t t = time(NULL);
+       localtime_r(&t, &value); // to fill hidden field
+
+       elm_datetime_value_get(obj, &value);
+
+       p->etm = value;
+
+       __cal_edit_ug_set_record_due_time(p, p->todo);
+
+}
+
+static void __cal_edit_ug_update_datetime_region(Evas_Object *item, struct tm *tm, Eina_Bool is_allday, Evas_Smart_Cb callback, void *callback_data)
+{
+       c_ret_if(!item);
+
+       Evas_Object *datetime = NULL;
+
+       datetime = elm_object_part_content_unset(item, "elm.icon");
+       if (datetime)
+               evas_object_del(datetime);
+
+       datetime = __cal_edit_ug_edit_time_icon(item, tm, is_allday);
+       c_ret_if(!datetime);
+
+       elm_object_part_content_set(item, "elm.icon", datetime);
+
+       evas_object_smart_callback_add(datetime, "changed", callback, callback_data);
+}
+
+static Evas_Object *__cal_edit_ug_insert_timepicker_after(cal_edit_ug_data* p, struct tm* value, Eina_Bool allday, Evas_Object *after, Evas_Smart_Cb callback)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!after, NULL);
+
+       Evas_Object *item = cal_dialogue_insert_item_after(p->dialogue, "1icon", after, NULL, NULL);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       __cal_edit_ug_update_datetime_region(item, value, allday, callback, p);
+
+       return item;
+}
+
+static void __cal_edit_ug_all_day_update(Evas_Object* date_obj, Eina_Bool allday)
+{
+       Evas_Object *edit_time_obj = elm_object_part_content_get(date_obj, "elm.icon");
+
+       if (!allday) {
+               elm_datetime_field_visible_set(edit_time_obj, ELM_DATETIME_HOUR, EINA_TRUE);
+               elm_datetime_field_visible_set(edit_time_obj, ELM_DATETIME_MINUTE, EINA_TRUE);
+               if (!is_hour24)
+                       elm_datetime_field_visible_set(edit_time_obj, ELM_DATETIME_AMPM, EINA_TRUE);
+       } else {
+               elm_datetime_field_visible_set(edit_time_obj, ELM_DATETIME_HOUR, EINA_FALSE);
+               elm_datetime_field_visible_set(edit_time_obj, ELM_DATETIME_MINUTE, EINA_FALSE);
+               elm_datetime_field_visible_set(edit_time_obj, ELM_DATETIME_AMPM, EINA_FALSE);
+       }
+}
+
+static void __cal_edit_ug_set_record_allday(calendar_record_h record, Eina_Bool is_allday, cal_edit_ug_data *p)
+{
+       c_ret_if(!record);
+       c_ret_if(!p);
+
+       if (is_allday == _calendar_is_allday_record(record))
+               return;
+
+       calendar_time_s start_time = {0};
+
+       _calendar_get_start_time(record, &start_time);
+
+       calendar_time_s end_time = {0};
+
+       _calendar_get_end_time(record, &end_time);
+
+       struct tm start_tm = {0};
+       struct tm end_tm = {0};
+
+       if (is_allday) {
+
+               cal_util_convert_lli_to_tm(NULL, start_time.time.utime, &start_tm);
+               cal_util_convert_lli_to_tm(NULL, end_time.time.utime, &end_tm);
+
+               start_time.type = CALENDAR_TIME_LOCALTIME;
+               end_time.type = CALENDAR_TIME_LOCALTIME;
+
+               start_time.time.date.year = start_tm.tm_year + 1900;
+               start_time.time.date.month = start_tm.tm_mon + 1;
+               start_time.time.date.mday = start_tm.tm_mday;
+
+               end_time.time.date.year = end_tm.tm_year + 1900;
+               end_time.time.date.month = end_tm.tm_mon + 1;
+               end_time.time.date.mday = end_tm.tm_mday;
+
+       } else {
+
+               start_time.type = CALENDAR_TIME_UTIME;
+               end_time.type = CALENDAR_TIME_UTIME;
+
+               cal_util_convert_tm_to_lli(NULL, &p->stm, &start_time.time.utime);
+               cal_util_convert_tm_to_lli(NULL, &p->etm, &end_time.time.utime);
+       }
+
+       _calendar_set_start_time(record, &start_time);
+
+       _calendar_set_end_time(record, &end_time);
+}
+
+static void __cal_edit_ug_all_day_clicked_callback(Evas_Object *obj, void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_edit_ug_data *p = data;
+
+       Evas_Object *all_obj = elm_object_part_content_get(p->allday, "elm.icon");
+       c_ret_if(!all_obj);
+
+       Eina_Bool is_allday = !elm_check_state_get(all_obj);
+
+       elm_check_state_set(all_obj, is_allday);
+
+       __cal_edit_ug_all_day_update(p->start_date, is_allday);
+       __cal_edit_ug_all_day_update(p->end_date, is_allday);
+
+       __cal_edit_ug_set_record_allday(p->event, is_allday, p);
+
+}
+
+static void __cal_edit_ug_all_day_changed_callback(void *data, Evas_Object* obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_edit_ug_data *p = data;
+
+       Eina_Bool is_allday = elm_check_state_get(obj);
+
+       __cal_edit_ug_all_day_update(p->start_date, is_allday);
+       __cal_edit_ug_all_day_update(p->end_date, is_allday);
+
+       __cal_edit_ug_set_record_allday(p->event, is_allday, p);
+}
+
+static void __cal_edit_ug_update_allday_language(Evas_Object *item)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text", C_("IDS_COM_BODY_ALL_DAY"));
+}
+
+static Evas_Object *__cal_edit_ug_add_all_day(cal_edit_ug_data* p, Eina_Bool allday)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *item = cal_dialogue_insert_item_after(p->dialogue, "1text.1icon", p->timezone, __cal_edit_ug_all_day_clicked_callback, p);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       Evas_Object *check_obj;
+       check_obj = elm_check_add(item);
+       elm_check_state_set(check_obj, allday);
+       elm_object_style_set(check_obj, "on&off");
+       evas_object_smart_callback_add(check_obj, "changed", __cal_edit_ug_all_day_changed_callback, p);
+       elm_check_state_set(check_obj, allday);
+       evas_object_propagate_events_set(check_obj, EINA_FALSE);
+
+       elm_object_part_content_set(item, "elm.icon", check_obj);
+
+       __cal_edit_ug_update_allday_language(item);
+
+       return item;
+}
+
+static void __cal_edit_ug_worldclock_ug_destroy_callback(ui_gadget_h ug, void *priv)
+{
+       CAL_FN_START;
+
+       cal_edit_ug_data* p = (cal_edit_ug_data*) priv;
+
+       if (p->ug_worldclock) {
+               ug_destroy(p->ug_worldclock);
+               p->ug_worldclock= NULL;
+       }
+
+       Elm_Object_Item* navi_item = elm_naviframe_top_item_get(p->naviframe);
+       Evas_Object *back_btn = elm_object_item_part_content_get(navi_item, "prev_btn");
+       if (back_btn != NULL) {
+               elm_object_style_set(back_btn, "naviframe/back_btn/default");   /* take into effect */
+       }
+}
+
+static void __cal_edit_ug_worldclock_ug_result_callback(ui_gadget_h ug, service_h result, void *priv)
+{
+       CAL_FN_START;
+
+       c_retm_if(!priv, "priv is null");
+       c_retm_if(!result, "result is null");
+
+       cal_edit_ug_data *p = priv;
+
+       if (p->timezone_city) {
+               free(p->timezone_city);
+               p->timezone_city = NULL;
+       }
+
+       if (p->timezone_path) {
+               free(p->timezone_path);
+               p->timezone_path = NULL;
+       }
+
+       if (p->timezone_offset) {
+               free(p->timezone_offset);
+               p->timezone_offset = NULL;
+       }
+
+       char *tzpath = NULL;
+
+       int r = service_get_extra_data(result, "tzpath", &tzpath);
+       c_ret_if(r != SERVICE_ERROR_NONE);
+
+       p->timezone_path= tzpath;
+
+       cal_util_get_timezone(&p->timezone_path, &p->timezone_city, &p->timezone_offset);
+
+       p->is_selected_timezone = EINA_TRUE;
+
+       //update
+       char* timezone_text = NULL;
+       timezone_text = g_strdup_printf("%s, %s", S_(p->timezone_city), p->timezone_offset);
+       elm_object_part_text_set(p->timezone, "elm.text.1", timezone_text);
+       CAL_FREE(timezone_text);
+}
+
+static void __cal_edit_ug_worldclock_ug_layout_callback(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ug, "ug is null");
+
+       Evas_Object *base = ug_get_layout(ug);
+       if (!base) {
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode)
+       {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
+                               EVAS_HINT_EXPAND);
+               evas_object_show(base);
+               break;
+       default:
+               DBG("Unsupported ug layout");
+               break;
+       }
+
+}
+
+static void __cal_edit_ug_timezone_select_callback(Evas_Object *obj, void *data)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_edit_ug_data *p = data;
+       struct ug_cbs uc;
+       ui_gadget_h ug;
+       memset(&uc, 0, sizeof(struct ug_cbs));
+       uc.destroy_cb = __cal_edit_ug_worldclock_ug_destroy_callback;
+       uc.layout_cb = __cal_edit_ug_worldclock_ug_layout_callback;
+       uc.result_cb = __cal_edit_ug_worldclock_ug_result_callback;
+       uc.priv = p;
+
+       ug = ug_create(NULL, "worldclock-efl", UG_MODE_FULLVIEW, NULL, &uc);
+       p->ug_worldclock = ug;
+}
+
+static void __cal_edit_ug_update_time_zone_language(Evas_Object *item, const char *timezone_city, const char *timezone_offset)
+{
+       elm_object_part_text_set(item, "elm.text.2", C_("IDS_CLD_BODY_TIME_ZONE"));
+
+       char buffer[128] = {0};
+
+       snprintf(buffer, sizeof(buffer), "%s, %s", S_(timezone_city), timezone_offset);
+
+       elm_object_part_text_set(item, "elm.text.1", buffer);
+}
+
+static Evas_Object *__cal_edit_ug_add_time_zone(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *item = __cal_edit_ug_insert_padding_after(p, NULL, p->end_date);
+       c_retvm_if(!item, NULL, "__cal_edit_ug_insert_padding_after() is failed");
+
+       item = cal_dialogue_insert_item_after(p->dialogue, "2text.2", item, __cal_edit_ug_timezone_select_callback, p);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       __cal_edit_ug_get_record_time_zone(p, p->event);
+
+       __cal_edit_ug_update_time_zone_language(item, p->timezone_city, p->timezone_offset);
+
+       return item;
+}
+
+static void __cal_edit_ug_alarm_changed_callback(const Cal_Reminder* reminder, void* data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *obj = data;
+
+       char* alarm_text = NULL;
+       char buf[128] = {0};
+       cal_reminder_get_string(reminder, buf, sizeof(buf));
+       alarm_text = strdup(buf);
+
+       elm_object_part_text_set(obj, "elm.text.1", alarm_text);
+       CAL_FREE(alarm_text);
+
+       Cal_Reminder* reminder_temp = evas_object_data_get(obj, "data");
+       reminder_temp->alarm_value = reminder->alarm_value;
+       reminder_temp->datetime = reminder->datetime;
+       reminder_temp->tick_unit = reminder->tick_unit;
+}
+
+static void __cal_edit_ug_alarm_select_callback(Evas_Object *obj, void *data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_edit_ug_data* p = data;
+       Cal_Reminder* reminder = (Cal_Reminder*)evas_object_data_get(obj, "data");
+       cal_edit_alarm_type alarm_type = ALARM_TYPE_EVENT;
+
+       if(p->item_type == ITEM_TYPE_EVENT)
+               alarm_type = ALARM_TYPE_EVENT;
+       else if(p->item_type == ITEM_TYPE_TODO && p->is_no_due_date)
+               alarm_type = ALARM_TYPE_TODO_CUSTOM_ONLY;
+       else
+               alarm_type = ALARM_TYPE_TODO;
+
+       cal_edit_alarm_create_view(p->naviframe, reminder, alarm_type, __cal_edit_ug_alarm_changed_callback, obj);
+
+}
+
+static Evas_Object *__cal_edit_ug_add_alarm(cal_edit_ug_data* p, Cal_Reminder* reminder, Eina_Bool is_add_mode, Evas_Object *after);
+
+static void __cal_edit_ug_delete_reminder_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       free(data);
+}
+
+
+static void __cal_edit_ug_alarm_plus_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_edit_ug_data* p = data;
+
+       if (eina_list_count(p->alarm_item_list)>=4) {
+               evas_object_del(p->alarm_plus_button);
+               p->alarm_plus_button = NULL;
+       }
+
+       Cal_Reminder* reminder = calloc(1, sizeof(Cal_Reminder));
+       c_retm_if(!reminder, "reminder is null");
+       reminder->tick_unit = CALENDAR_ALARM_TIME_UNIT_MINUTE;
+       reminder->datetime = p->stm;
+
+       Eina_List *list = eina_list_last(p->alarm_item_list);
+       Evas_Object *last_item = eina_list_data_get(list);
+        __cal_edit_ug_add_alarm(p, reminder, EINA_FALSE, last_item);
+
+}
+
+static Evas_Object * __cal_edit_ug_alarm_plus_button_icon(cal_edit_ug_data* p, Evas_Object *obj)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!obj, NULL);
+
+       Evas_Object *button = NULL;
+
+       button = elm_button_add(obj);
+       c_retvm_if(!button, NULL, "elm_button_add() is failed");
+
+       elm_object_style_set(button, "icon_plus");
+       evas_object_propagate_events_set(button, EINA_FALSE);
+       evas_object_smart_callback_add(button, "clicked", __cal_edit_ug_alarm_plus_button_callback, p);
+       evas_object_show(button);
+       p->alarm_plus_button = button;
+
+       return button;
+}
+
+static void __cal_edit_ug_alarm_minus_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_edit_ug_data* p = data;
+
+       if (!p->alarm_plus_button) {
+               Evas_Object *first_item = eina_list_nth(p->alarm_item_list, 0);
+               p->alarm_plus_button = __cal_edit_ug_alarm_plus_button_icon(p, first_item);
+               elm_object_part_content_set(first_item, "elm.icon", p->alarm_plus_button);
+       }
+
+       evas_object_smart_callback_del(obj, "clicked", __cal_edit_ug_alarm_minus_button_callback);
+
+       Evas_Object *parent_item = evas_object_data_get(obj, "button");
+       p->alarm_item_list = eina_list_remove(p->alarm_item_list, parent_item);
+
+       cal_dialogue_delete_item(p->dialogue, parent_item);
+       evas_object_del(obj);
+
+
+}
+
+
+static Evas_Object * __cal_edit_ug_alarm_minus_button_icon(cal_edit_ug_data* p, Evas_Object *obj)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!obj, NULL);
+
+       Evas_Object *button = NULL;
+
+       button = elm_button_add(obj);
+       c_retvm_if(!button, NULL, "elm_button_add() is failed");
+
+       elm_object_style_set(button, "icon_minus");
+       evas_object_data_set(button, "button", obj);
+       evas_object_propagate_events_set(button, EINA_FALSE);
+       evas_object_smart_callback_add(button, "clicked", __cal_edit_ug_alarm_minus_button_callback, p);
+       evas_object_show(button);
+
+       return button;
+}
+
+static void __cal_edit_ug_update_reminder_language(Eina_List *item_list)
+{
+       c_ret_if(!item_list);
+
+       Eina_List *cursor = NULL;
+       Evas_Object *item = NULL;
+
+       EINA_LIST_FOREACH(item_list, cursor, item) {
+               if (!item)
+                       continue;
+
+               elm_object_part_text_set(item, "elm.text.2", C_("IDS_CLD_BODY_REMINDER"));
+
+               Cal_Reminder *reminder = NULL;
+
+               reminder = evas_object_data_get(item, "data");
+
+               char buffer[128] = {0};
+               cal_reminder_get_string(reminder, buffer, sizeof(buffer));
+
+               elm_object_part_text_set(item, "elm.text.1", buffer);
+       }
+}
+
+static Evas_Object *__cal_edit_ug_add_alarm(cal_edit_ug_data* p, Cal_Reminder* reminder, Eina_Bool is_add_mode, Evas_Object *after)
+{
+       c_retv_if(!p, NULL);
+       Evas_Object *item = NULL;
+       if(after) {
+               item = cal_dialogue_insert_item_after(p->dialogue, "2text.1icon.5", after,  __cal_edit_ug_alarm_select_callback, p);
+               c_retvm_if(!item, NULL, "cal_dialogue_insert_item_after() is failed");
+       }
+       else {
+               item = cal_dialogue_append_item(p->dialogue, "2text.1icon.5",  __cal_edit_ug_alarm_select_callback, p);
+               c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+       }
+
+       elm_object_part_text_set(item, "elm.text.2", C_("IDS_CLD_BODY_REMINDER"));
+
+       const char* alarm_text = NULL;
+       char buf[128] = {0};
+       cal_reminder_get_string(reminder, buf, sizeof(buf));
+       alarm_text = strdup(buf);
+
+       elm_object_part_text_set(item, "elm.text.1", alarm_text);
+       p->alarm_item_list = eina_list_append(p->alarm_item_list, (void*)item);
+
+       if(p->item_type == ITEM_TYPE_EVENT)     {
+               Evas_Object *button_obj = NULL;
+               if(is_add_mode)
+                       button_obj = __cal_edit_ug_alarm_plus_button_icon(p, item);
+               else
+                       button_obj = __cal_edit_ug_alarm_minus_button_icon(p, item);
+
+               elm_object_part_content_set(item, "elm.icon", button_obj);
+       }
+
+       evas_object_data_set(item, "data", reminder);
+       evas_object_event_callback_add(item, EVAS_CALLBACK_DEL, __cal_edit_ug_delete_reminder_callback, reminder);
+
+       return item;
+}
+
+static void __cal_edit_ug_add_multi_alarm(cal_edit_ug_data* p)
+{
+       c_retm_if(!p, "p is null");
+
+       Cal_Reminder* reminder = NULL;
+       reminder = calloc(1, sizeof(Cal_Reminder));
+       c_retm_if(!reminder, "reminder is null");
+
+       reminder->tick_unit = CALENDAR_ALARM_TIME_UNIT_MINUTE;
+       reminder->datetime = p->stm;
+       Evas_Object *after = NULL;
+       Evas_Object *item = NULL;
+
+       if(p->is_edit_mode)     {
+               if (p->item_type == ITEM_TYPE_EVENT)
+                       __cal_edit_ug_get_record_alarm(p, p->event);
+               else
+                       __cal_edit_ug_get_record_alarm(p, p->todo);
+
+               if(!p->alarm_list) {
+                       reminder->tick_unit = CALENDAR_ALARM_NONE;\
+               }
+       }
+
+       GList *temp = p->alarm_list;
+       if (!temp) {
+                __cal_edit_ug_add_alarm(p, reminder, EINA_TRUE, NULL);
+       }
+       else {
+               free(reminder);
+
+               while (temp) {
+                       if(!after)      {
+                               item = __cal_edit_ug_add_alarm( p, (Cal_Reminder*)temp->data, EINA_TRUE, after);
+                       }
+                       else    {
+                               item = __cal_edit_ug_add_alarm( p, (Cal_Reminder*)temp->data, EINA_FALSE, after);
+                       }
+                       c_retm_if(!item, "item is null");
+                       after = item;
+                       temp = g_list_next(temp);
+               }
+       }
+}
+
+static void __cal_edit_ug_reponse_event_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *popup = data;
+       evas_object_del(popup);
+}
+
+static void __cal_edit_ug_repeat_callback(void *data)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_edit_ug_data *p = data;
+
+       calendar_range_type_e range = CALENDAR_RANGE_NONE;
+       struct tm until = {0};
+       int count = 0;
+
+       int repeat = cal_edit_repeat_get_repeat(p->repeat_layout, &range, &until, &count);
+
+       if (CALENDAR_RECURRENCE_NONE != repeat) {
+
+               if (range == CALENDAR_RANGE_UNTIL) {
+
+                       if (timegm(&until) <= timegm(&p->stm)) {
+                               cal_util_add_popup(p->window, NULL, S_("IDS_COM_POP_WARNING"), C_("IDS_CLD_BODY_REPEAT_WARNING"),
+                                       __cal_edit_ug_reponse_event_callback, NULL, NULL);
+                               return;
+                       }
+               }
+               else if (range == CALENDAR_RANGE_COUNT) {
+
+                       if (!count) {
+                               cal_util_add_popup(p->window, NULL, S_("IDS_COM_POP_WARNING"), C_("IDS_CLD_BODY_REPEAT_WARNING"),
+                                       __cal_edit_ug_reponse_event_callback, NULL, NULL);
+                               return;
+                       }
+               }
+       }
+
+       p->repeat_freq = repeat;
+       p->repeat_range = range;
+       p->repeat_until = until;
+       p->repeat_count = count;
+
+       char buf[1024] = {0};
+       _cal_edit_repeat_get_freq_str(p->repeat_freq, buf, sizeof(buf));
+       elm_object_part_text_set(p->repeat, "elm.text.1", buf);
+
+       __cal_edit_ug_set_record_repeat(p);
+
+}
+
+static void __cal_edit_ug_repeat_select_callback(Evas_Object *obj, void *data)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_edit_ug_data* p = data;
+
+       p->repeat_layout = cal_edit_repeat_create_view(p->naviframe, p->repeat_freq, p->repeat_range, &(p->stm), &(p->repeat_until),&(p->repeat_count),
+                       (cal_edit_repeat_destroy_callback)__cal_edit_ug_repeat_callback, p);
+       c_retm_if(!p->repeat_layout, "p->repeat_layout is null");
+
+}
+
+static void __cal_edit_ug_update_recurrence_language(Evas_Object *item, int repeat_frequency)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text.2", C_("IDS_CLD_BODY_REPEAT"));
+
+       char buffer[128] = {0};
+
+       _cal_edit_repeat_get_freq_str(repeat_frequency, buffer, sizeof(buffer));
+
+       elm_object_part_text_set(item, "elm.text.1", buffer);
+}
+
+static Evas_Object *__cal_edit_ug_add_repeat(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Eina_List *list = eina_list_last(p->alarm_item_list);
+       Evas_Object *last_item = eina_list_data_get(list);
+
+       Evas_Object *item = NULL;
+
+       if (p->instance) {
+
+               item = cal_dialogue_insert_item_after(p->dialogue, "2text.2", last_item, NULL, NULL);
+               elm_object_signal_emit(item, "elm,state,disabled", "elm");
+
+       } else
+               item = cal_dialogue_insert_item_after(p->dialogue, "2text.2", last_item, __cal_edit_ug_repeat_select_callback, p);
+
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       __cal_edit_ug_get_record_repeat(p, p->event);
+
+       __cal_edit_ug_update_recurrence_language(item, p->repeat_freq);
+
+       return item;
+}
+
+static void  __cal_edit_ug_popup_hide_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+
+       cal_edit_ug_data *p = evas_object_data_get(popup, "data");
+
+       evas_object_del(popup);
+
+       c_retm_if(!p, "p is null");
+
+       p->popup = NULL;
+}
+
+static char *__cal_edit_ug_get_genlist_save_to_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!part, NULL, "part is null");
+
+       calendar_record_h record = (calendar_record_h)data;
+       char *name;
+       int cid;
+       char* description;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_record_h calendar_book = NULL;
+
+       _calendar_record_type record_type = _calendar_get_record_type(record);
+
+       if (record_type == _CALENDAR_RECORD_TYPE_CALENDARBOOK)
+               calendar_book = record;
+       else {
+               error = calendar_record_get_int(record, _calendar_event.calendar_book_id, &cid);
+               c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_record_get_int() is failed(%x)", error);
+
+               error = calendar_db_get_record(_calendar_book._uri, cid, &calendar_book);
+               c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_db_get_record() is failed(%x)", error);
+       }
+
+       error = calendar_record_get_int(record, _calendar_book.id, &cid);
+       c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_record_get_int() is failed(%x)", error);
+
+       if (!CAL_STRCMP(part,"elm.text.1")) {
+
+               if (cid == DEFAULT_EVENT_CALENDAR_BOOK_ID)
+                       return strdup(C_("IDS_CLD_BODY_MY_CALENDAR"));
+               else if (cid == DEFAULT_TODO_CALENDAR_BOOK_ID)
+                       return strdup(C_("IDS_TASK_BODY_MY_TASK"));
+
+               error = calendar_record_get_str(calendar_book, _calendar_book.name, &name);
+               c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_record_get_str() is failed(%x)", error);
+
+               if (record != calendar_book) {
+                       error = calendar_record_destroy(calendar_book, true);
+                       c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_record_destroy() is failed(%x)", error);
+               }
+
+               if (CAL_STRLEN(name))
+                       return name;
+               else
+                       CAL_FREE(name);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+
+       } else if (!CAL_STRCMP(part,"elm.text.2")) {
+
+               if (cid == DEFAULT_EVENT_CALENDAR_BOOK_ID || cid == DEFAULT_TODO_CALENDAR_BOOK_ID)
+                       return strdup(C_("IDS_CLD_POP_MY_PHONE"));
+
+               error = calendar_record_get_str(calendar_book, _calendar_book.description, &description);
+               c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_record_get_str() is failed(%x)", error);
+
+               if (record != calendar_book) {
+                       error = calendar_record_destroy(calendar_book, true);
+                       c_retvm_if(error != CALENDAR_ERROR_NONE, NULL, "calendar_record_destroy() is failed(%x)", error);
+               }
+
+               if (CAL_STRLEN(description))
+                       return description;
+               else
+                       CAL_FREE(description);
+
+               return strdup(S_("IDS_COM_POP_NO_ACCOUNTS"));
+       }
+
+       return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+}
+
+static Evas_Object* __cal_edit_ug_add_save_to_icon(void *item_data, Evas_Object *obj, const char *part)
+{
+       if (!item_data)
+       {
+               ERR("item_data is null");
+               return NULL;
+       }
+
+       Evas_Object *icon = NULL;
+       char* icon_path = NULL;
+       calendar_record_h record = (calendar_record_h)item_data;
+       Eina_Bool r = EINA_FALSE;
+       int cid = _calendar_get_calendar_index(record);
+       int aid = _calendar_get_account_id(record);
+
+       if (!CAL_STRCMP(part, "elm.icon"))
+       {
+               icon = elm_icon_add(obj);
+
+               if (!icon)
+               {
+                       ERR("elm_icon_add fail");
+                       return NULL;
+               }
+
+               if ( cid == DEFAULT_EVENT_CALENDAR_BOOK_ID || cid == DEFAULT_TODO_CALENDAR_BOOK_ID) {
+                       r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_PHONE);
+                       c_warn_if(!r, "elm_icon_file_set(%s) is failed", CAL_IMAGES_PHONE);
+               } else {
+                       icon_path = cal_account_svc_get_account_icon_path(aid);
+                       if (icon_path) {
+                               r = elm_icon_file_set(icon, icon_path, NULL);
+                               c_warn_if(!r, "elm_icon_file_set(%s) is failed", CAL_IMAGES_PHONE);
+                               free(icon_path);
+                       }
+                       else {
+                               r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_PHONE);
+                               c_warn_if(!r, "elm_icon_file_set(%s) is failed", CAL_IMAGES_PHONE);
+                       }
+
+               }
+
+               if (!r) {
+                       ERR("");
+                       evas_object_del(icon);
+                       icon = NULL;
+               }
+               else
+                       evas_object_show(icon);
+       }
+
+       return icon;
+}
+
+static Eina_Bool __cal_edit_ug_popup_idler_callback(void *data)
+{
+       c_retv_if(!data, ECORE_CALLBACK_CANCEL);
+
+       cal_edit_ug_data *p = data;
+
+       if (p->popup) {
+               evas_object_del(p->popup);
+               p->popup = NULL;
+       }
+
+       p->idler = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __cal_edit_ug_save_to_popup_list_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       calendar_record_h calendar_book = data;
+       int calendar_book_id = 0;
+
+       cal_edit_ug_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is null");
+
+       Elm_Object_Item *item = elm_genlist_selected_item_get(obj);
+       c_retm_if(!item, "elm_genlist_selected_item_get() returned null");
+
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_get_int(calendar_book, _calendar_book.id, &calendar_book_id);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (p->item_type == ITEM_TYPE_TODO)     {
+               __cal_edit_ug_set_record_save_to(p->todo, calendar_book_id);
+               __cal_edit_ug_update_save_to_item(p, p->todo);
+       }
+       else    {
+               __cal_edit_ug_set_record_save_to(p->event, calendar_book_id);
+               __cal_edit_ug_update_save_to_item(p, p->event);
+       }
+
+       if (p->idler) {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       p->idler = ecore_idler_add(__cal_edit_ug_popup_idler_callback, p);
+       c_ret_if(!p->idler);
+
+}
+
+static Elm_Genlist_Item_Class itc_2text_1icon_2 = {
+       .item_style = "dialogue/2text.1icon.2",
+       .func.text_get = __cal_edit_ug_get_genlist_save_to_item_label,
+       .func.content_get = __cal_edit_ug_add_save_to_icon,
+};
+
+static Evas_Object* __cal_edit_ug_create_save_to_popup(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *popup = NULL;
+       Evas_Object *genlist = NULL;
+
+       Eina_List *l;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (!p->calendar_book_list)
+       {
+               p->calendar_book_list = _calendar_get_calendar_book_list_with_account_id(_CALENDAR_ALL_ACCOUNT_ID);
+       }
+
+       popup = cal_util_add_popup(p->window, "liststyle", C_("IDS_ST_BODY_SAVE_TO"), NULL,
+                       __cal_edit_ug_popup_hide_callback, p, S_("IDS_COM_BODY_CLOSE"), NULL);
+       c_retvm_if(!popup, NULL, "popup is null");
+
+       genlist = elm_genlist_add(popup);
+       if (!genlist) {
+               ERR("elm_genlist_add(popup) returned null");
+               evas_object_del(popup);
+               return NULL;
+       }
+
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_data_set(genlist, "priv", p);
+
+       calendar_record_h calendar_book = NULL;
+
+       EINA_LIST_FOREACH(p->calendar_book_list, l, calendar_book) {
+
+               int store_type = 0;
+
+               error = calendar_record_get_int(calendar_book, _calendar_book.store_type, &store_type);
+               if (error != CALENDAR_ERROR_NONE) {
+                       ERR("calendar_record_get_int() is failed(%x)", calendar_book);
+                       continue;
+               }
+
+               int sync_event = 0;
+               error = calendar_record_get_int(calendar_book, _calendar_book.sync_event, &sync_event);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+               if(!sync_event)
+                       continue;
+
+               if (p->item_type == ITEM_TYPE_TODO) {
+                       if (store_type == CALENDAR_BOOK_TYPE_TODO)
+                               elm_genlist_item_append(genlist, &itc_2text_1icon_2, calendar_book, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_ug_save_to_popup_list_sel, calendar_book);
+               } else {
+                       if (store_type == CALENDAR_BOOK_TYPE_EVENT)
+                               elm_genlist_item_append(genlist, &itc_2text_1icon_2, calendar_book, NULL, ELM_GENLIST_ITEM_NONE, __cal_edit_ug_save_to_popup_list_sel, calendar_book);
+               }
+
+       }
+
+       elm_object_content_set(popup, genlist);
+       evas_object_show(genlist);
+
+       return popup;
+}
+
+static void __cal_edit_ug_saveto_select_callback(Evas_Object *obj, void *data)
+{
+       c_retm_if(!data, "data is null");
+
+       cal_edit_ug_data* p = data;
+       Evas_Object *popup = __cal_edit_ug_create_save_to_popup(p);
+       c_retm_if(!popup, "popup is NULL");
+
+       p->popup = popup;
+}
+
+static void __cal_edit_ug_get_save_to_str(int calid, char *buf, int sz)
+{
+       calendar_record_h calendar_book = NULL;
+       char *str;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_get_record(_calendar_book._uri, calid, &calendar_book);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_record() is failed(%x)", error);
+
+       if (calid == DEFAULT_EVENT_CALENDAR_BOOK_ID)
+               str = C_("IDS_CLD_OPT_PHONE_CALENDAR");
+       else
+       {
+               error = calendar_record_get_str(calendar_book, _calendar_book.name, &str);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+       }
+
+       snprintf(buf, sz, "%s", str);
+
+       if (str)
+               free(str);
+
+       error = calendar_record_destroy(calendar_book, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+}
+
+static void __cal_edit_ug_update_saveto_language(Evas_Object *item, calendar_record_h record)
+{
+       c_ret_if(!item);
+
+       elm_object_part_text_set(item, "elm.text.2", C_("IDS_ST_BODY_SAVE_TO"));
+
+       int calendar_book_id = _calendar_get_calendar_index(record);
+
+       if (calendar_book_id == DEFAULT_EVENT_CALENDAR_BOOK_ID)
+               elm_object_part_text_set(item, "elm.text.1", C_("IDS_CLD_BODY_MY_CALENDAR"));
+       else if (calendar_book_id == DEFAULT_TODO_CALENDAR_BOOK_ID)
+               elm_object_part_text_set(item, "elm.text.1", C_("IDS_TASK_BODY_MY_TASK"));
+}
+
+static Evas_Object *__cal_edit_ug_add_saveto(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *item = cal_dialogue_append_item(p->dialogue, "2text.2", __cal_edit_ug_saveto_select_callback, p);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       elm_object_part_text_set(item, "elm.text.2", C_("IDS_ST_BODY_SAVE_TO"));
+
+       char buf[1024];
+       char* saveto_text = NULL;
+       int calendar_book_id = 0;
+       if(p->item_type == ITEM_TYPE_TODO)      {
+               calendar_book_id = _calendar_get_calendar_index(p->todo);
+               p->account_id = _calendar_get_account_id(p->todo);
+       }
+       else    {
+               calendar_book_id = _calendar_get_calendar_index(p->event);
+               p->account_id = _calendar_get_account_id(p->event);
+       }
+       if (calendar_book_id == DEFAULT_EVENT_CALENDAR_BOOK_ID)
+               saveto_text =  strdup(C_("IDS_CLD_BODY_MY_CALENDAR"));
+       else if (calendar_book_id == DEFAULT_TODO_CALENDAR_BOOK_ID)
+               saveto_text =  strdup(C_("IDS_TASK_BODY_MY_TASK"));
+       else {
+               __cal_edit_ug_get_save_to_str(calendar_book_id, buf, sizeof(buf));
+               saveto_text = strdup(buf);
+       }
+
+       elm_object_part_text_set(item, "elm.text.1", saveto_text);
+       CAL_FREE(saveto_text);
+
+       if (p->instance)
+               elm_object_signal_emit(item, "elm,state,disabled", "elm");
+
+       return item;
+}
+
+static void __cal_edit_ug_no_due_date_clicked_callback(Evas_Object *obj, void *data)
+{
+       c_retm_if(!data, "data is NULL.");
+       c_retm_if(!obj, "obj is NULL.");
+
+       cal_edit_ug_data *p = data;
+
+       Evas_Object *check_obj = elm_object_part_content_get(p->no_due_date, "elm.icon");
+
+       if(p->is_no_due_date)
+       {
+               elm_check_state_set(check_obj, EINA_FALSE);
+               p->is_no_due_date = elm_check_state_get(check_obj);
+               elm_object_signal_emit(p->due_date, "elm,state,enabled", "elm");
+       }
+       else
+       {
+               elm_check_state_set(check_obj, EINA_TRUE);
+               p->is_no_due_date = elm_check_state_get(check_obj);
+               __cal_edit_ug_set_record_due_time(p, p->todo);
+               elm_object_signal_emit(p->due_date, "elm,state,disabled", "elm");
+       }
+
+       Evas_Object *edit_time_obj = elm_object_part_content_get(p->due_date, "elm.icon");
+       elm_object_disabled_set(edit_time_obj, p->is_no_due_date);
+}
+
+static void __cal_edit_ug_no_due_date_changed_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is NULL.");
+       c_retm_if(!obj, "obj is NULL.");
+
+       cal_edit_ug_data *p = data;
+
+       p->is_no_due_date = elm_check_state_get(obj);
+
+       Evas_Object *edit_time_obj = elm_object_part_content_get(p->due_date, "elm.icon");
+       elm_object_disabled_set(edit_time_obj, p->is_no_due_date);
+       if(p->is_no_due_date)
+       {
+               __cal_edit_ug_set_record_due_time(p, p->todo);
+               elm_object_signal_emit(p->due_date, "elm,state,disabled", "elm");
+       }
+       else
+       {
+               elm_object_signal_emit(p->due_date, "elm,state,enabled", "elm");
+       }
+}
+
+static void __cal_edit_ug_update_no_due_date_language(Evas_Object *item)
+{
+       elm_object_part_text_set(item, "elm.text", C_("IDS_TASK_MBODY_NO_DUE_DATE"));
+}
+
+static Evas_Object *__cal_edit_ug_add_no_due_date(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *item = cal_dialogue_insert_item_after(p->dialogue, "1text.1icon.2", p->due_date, __cal_edit_ug_no_due_date_clicked_callback, p);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       Evas_Object *check_obj;
+       check_obj = elm_check_add(item);
+       __cal_edit_ug_get_record_due_time(p, p->todo);
+       elm_check_state_set(check_obj, p->is_no_due_date);
+
+       evas_object_smart_callback_add(check_obj, "changed", __cal_edit_ug_no_due_date_changed_callback, p);
+       elm_check_state_set(check_obj, p->is_no_due_date);
+       evas_object_propagate_events_set(check_obj, EINA_FALSE);
+
+       __cal_edit_ug_update_no_due_date_language(item);
+
+       elm_object_part_content_set(item, "elm.icon", check_obj);
+
+       return item;
+}
+
+static void __cal_edit_ug_priority_popup_list_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       int priority = (int)data;
+
+       cal_edit_ug_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!p);
+
+       __cal_edit_ug_set_record_priority(p->todo, priority);
+       __cal_edit_ug_update_priority_item(p, p->todo);
+
+       evas_object_del(p->popup);
+       p->popup = NULL;
+}
+
+static Evas_Object* __cal_edit_ug_create_priority_popup(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *popup = cal_util_add_popup(p->window, NULL, C_("IDS_CLD_BODY_PRIORITY"), NULL,
+               __cal_edit_ug_popup_hide_callback, p, S_("IDS_COM_BODY_CLOSE"), NULL);
+       c_retv_if(!popup, NULL);
+
+       evas_object_data_set(popup, "priv", p);
+
+       Elm_Object_Item *popup_item = elm_popup_item_append(popup, S_("IDS_COM_OPT_HIGH_M_QUALITY"), NULL, __cal_edit_ug_priority_popup_list_sel, (const void *)CALENDAR_TODO_PRIORITY_HIGH);
+       c_retv_if(!popup_item, NULL);
+
+       popup_item = elm_popup_item_append(popup, S_("IDS_IDLE_BODY_NORMAL"), NULL, __cal_edit_ug_priority_popup_list_sel, (const void *)CALENDAR_TODO_PRIORITY_NORMAL);
+       c_retv_if(!popup_item, NULL);
+
+       popup_item = elm_popup_item_append(popup, S_("IDS_COM_BODY_LOW"), NULL, __cal_edit_ug_priority_popup_list_sel, (const void *)CALENDAR_TODO_PRIORITY_LOW);
+       c_retv_if(!popup_item, NULL);
+
+       return popup;
+}
+
+static void __cal_edit_ug_priority_select_callback(Evas_Object *obj, void *data)
+{
+       c_retm_if(!data, "data is null");
+       cal_edit_ug_data* p = data;
+
+       Evas_Object *popup = __cal_edit_ug_create_priority_popup(p);
+       c_retm_if(!popup, "popup is NULL");
+
+       p->popup = popup;
+
+}
+
+static void __cal_edit_ug_update_priority_language(Evas_Object *item, calendar_record_h record)
+{
+       elm_object_part_text_set(item, "elm.text.2", C_("IDS_CLD_BODY_PRIORITY"));
+
+       char* priority_text = NULL;
+       int priority = __cal_edit_ug_get_record_priority(record);
+       switch (priority) {
+               case CALENDAR_TODO_PRIORITY_LOW:
+                       priority_text = strdup(S_("IDS_COM_BODY_LOW"));
+                       break;
+               case CALENDAR_TODO_PRIORITY_NORMAL:
+                       priority_text =strdup(C_("IDS_IDLE_BODY_NORMAL"));
+                       break;
+               case CALENDAR_TODO_PRIORITY_HIGH:
+                       priority_text =strdup(S_("IDS_COM_OPT_HIGH_M_QUALITY"));
+                       break;
+               default:
+                       break;
+       }
+
+       elm_object_part_text_set(item, "elm.text.1", priority_text);
+       CAL_FREE(priority_text);
+}
+
+static Evas_Object *__cal_edit_ug_add_priority(cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *item = cal_dialogue_insert_item_after(p->dialogue, "2text.2", p->no_due_date, __cal_edit_ug_priority_select_callback, p);
+       c_retvm_if(!item, NULL, "cal_dialogue_append_item() is failed");
+
+       __cal_edit_ug_update_priority_language(item, p->todo);
+
+       return item;
+}
+
+static void __cal_edit_ug_show_result_popup(cal_edit_ug_data *p, calendar_error_e error)
+{
+       char buf[100]={0,};
+
+       // TODO: i18n
+       switch(error) {
+       case CALENDAR_ERROR_DB_FAILED:
+               cal_util_add_popup(p->window, NULL, S_("IDS_COM_POP_WARNING"), C_("IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"),
+                       __cal_edit_ug_reponse_event_callback, NULL, NULL);
+               break;
+
+       case CALENDAR_ERROR_OUT_OF_MEMORY:
+               cal_util_add_popup(p->window, NULL, S_("IDS_COM_POP_WARNING"), C_("IDS_CLD_POP_CALENDAR_SYNC_IN_PROGRESS"),
+                               __cal_edit_ug_reponse_event_callback, NULL, NULL);
+               break;
+
+       case CALENDAR_ERROR_INVALID_PARAMETER:
+               cal_util_add_popup(p->window, NULL, S_("IDS_COM_POP_WARNING"), C_("IDS_CLD_POP_INVALID_TIME"),
+                               __cal_edit_ug_reponse_event_callback, NULL, NULL);
+               break;
+
+       default:
+               snprintf(buf,100,"not saved(internal error-%x)!",error);
+               cal_util_add_popup(p->window, NULL, S_("IDS_COM_POP_WARNING"), buf,
+                               __cal_edit_ug_reponse_event_callback, NULL, NULL);
+               break;
+       }
+}
+
+int __cal_edit_ug_save(cal_edit_ug_data *p, calendar_record_h record)
+{
+       CAL_FN_START;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int record_index = 0;
+
+       calendar_record_type_e record_type = CALENDAR_RECORD_TYPE_EVENT;
+
+       if (_calendar_is_task_record(record))
+               record_type = CALENDAR_RECORD_TYPE_TODO;
+
+       __cal_edit_ug_set_record_alarm(p, record);
+
+       if (p->is_edit_mode) {
+               if (p->instance) {
+
+                       calendar_record_h exception_record = NULL;
+                       error = calendar_record_clone(record, &exception_record);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_create() is failed(%x)", error);
+
+                       int index = _calendar_get_record_index(record);
+                       error = calendar_record_set_int(exception_record, _calendar_event.original_event_id, index);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_set_int() is failed(%x)", error);
+
+                       __cal_edit_ug_set_record_time(p, exception_record);
+                       _calendar_edit_recurrence_instance(exception_record, index);
+
+                       error = calendar_db_insert_record(exception_record, &record_index);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_insert_record() is failed(%x)", error);
+
+                       if (error != CALENDAR_ERROR_NONE) {
+                               __cal_edit_ug_show_result_popup(p, error);
+
+                               error = calendar_record_destroy(exception_record, true);
+                               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+
+                               return -1;
+                       }
+
+                       error = calendar_record_destroy(exception_record, true);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+
+               } else {
+
+                       if (p->account_id == _calendar_get_account_id(record))
+                       {
+                               error = calendar_db_update_record(record);
+                               if (error != CALENDAR_ERROR_NONE) {
+
+                                       ERR("calendar_db_update_record() is failed(%x)", error);
+
+                                       __cal_edit_ug_show_result_popup(p, error);
+
+                                       return -1;
+                               }
+                               record_index = _calendar_get_record_index(record);
+                       }
+                       else
+                       {
+                               _calendar_delete_record(record);
+
+                               error = calendar_db_insert_record(record, &record_index);
+                               if (error != CALENDAR_ERROR_NONE) {
+
+                                       ERR("calendar_db_insert_record() is failed(%x)", error);
+                                       __cal_edit_ug_show_result_popup(p, error);
+
+                                       return -1;
+                               }
+                       }
+               }
+
+       } else {
+
+               error = calendar_db_insert_record(record, &record_index);
+               if (error != CALENDAR_ERROR_NONE) {
+
+                       ERR("calendar_db_insert_record() is failed(%x)", error);
+
+                       __cal_edit_ug_show_result_popup(p, error);
+
+                       return -1;
+               }
+       }
+
+       return record_index;
+}
+
+static void __cal_edit_ug_send_result_to_detail_ug(cal_edit_ug_data *p, int record_index)
+{
+       c_retm_if(!p, "p is null");
+       c_retm_if(record_index < 0, "record_index < 0");
+
+       service_h service = NULL;
+
+       int ret = service_create(&service);
+       c_ret_if(ret != SERVICE_ERROR_NONE);
+
+       char value[64] = {0};
+       snprintf(value, sizeof(value), "%d", record_index);
+
+       ret = service_add_extra_data(service, "record_index", value);
+       c_warn_if(ret != SERVICE_ERROR_NONE, "service_add_extra_data() is failed(%x)", ret);
+
+       memset(value, 0x00, sizeof(value));
+
+       long long int lli_time = 0;
+       cal_util_convert_tm_to_lli(NULL, &p->stm, &lli_time);
+
+       snprintf(value, sizeof(value), "%lli", lli_time);
+
+       ret = service_add_extra_data(service, "base_time", value);
+       c_warn_if(ret != SERVICE_ERROR_NONE, "service_add_extra_data() is failed(%x)", ret);
+
+       ug_send_result(p->ug, service);
+
+       ret = service_destroy(service);
+       c_warn_if(ret != SERVICE_ERROR_NONE, "service_destroy() is failed(%x)", ret);
+}
+
+static void __cal_edit_ug_save_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_edit_ug_data* p = data;
+       int record_index;
+
+       Eina_Bool result = __cal_edit_ug_check_date_validity(p);
+       if(!result)     {
+               cal_util_add_popup(p->window, NULL, S_("IDS_COM_POP_WARNING"), C_("IDS_CLD_POP_END_TIME_SHOULD_BE_SET_AFTER_START_TIME"),
+                               __cal_edit_ug_reponse_event_callback, NULL, NULL);
+               return;
+       }
+
+       if (p->item_type == ITEM_TYPE_TODO)
+               record_index = __cal_edit_ug_save(p, p->todo);
+       else
+               record_index = __cal_edit_ug_save(p, p->event);
+
+       c_retm_if(record_index < 0, "cal_edit_save() is failed");
+
+       __cal_edit_ug_send_result_to_detail_ug(p, record_index);
+
+       ug_destroy_me(p->ug);
+
+}
+
+
+static void __cal_edit_ug_back_button_callback(void *user_data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!user_data);
+
+       cal_edit_ug_data *data = user_data;
+
+       c_ret_if(!data->ug);
+
+       ug_destroy_me(data->ug);
+}
+
+static void __cal_edit_ug_show_multi_alarms (cal_edit_ug_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       Evas_Object *first_item = eina_list_nth(p->alarm_item_list, 0);
+
+       if(eina_list_count(p->alarm_item_list)<5){
+                       p->alarm_plus_button = __cal_edit_ug_alarm_plus_button_icon(p, first_item);
+                       elm_object_part_content_set(first_item, "elm.icon", p->alarm_plus_button);
+       }
+       Eina_List *list = eina_list_next(p->alarm_item_list);
+       Eina_List *l;
+       Evas_Object *item = NULL;
+
+       EINA_LIST_FOREACH(list, l, item)        {
+               if(item){
+                       cal_dialogue_show_item_after(p->dialogue, item, first_item);
+                       first_item = item;
+               }
+       }
+}
+
+static void __cal_edit_ug_show_event_items (cal_edit_ug_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       if (!p->start_date_title)
+               p->start_date_title = __cal_edit_ug_insert_padding_after(p, C_("IDS_CLD_BODY_FROM"), p->title);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->start_date_title, p->title);
+
+       Eina_Bool is_allday = EINA_FALSE;
+
+       if (!p->start_date) {
+
+               is_allday = _calendar_is_allday_record(p->event);
+
+               p->start_date = __cal_edit_ug_insert_timepicker_after(p, &p->stm, is_allday, p->start_date_title, __cal_edit_ug_start_date_changed_callback);
+
+       } else
+               cal_dialogue_show_item_after(p->dialogue, p->start_date, p->start_date_title);
+
+       if (!p->end_date_title)
+               p->end_date_title = __cal_edit_ug_insert_padding_after(p, C_("IDS_CLD_BODY_TO"), p->start_date);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->end_date_title, p->start_date);
+
+       if (!p->end_date)
+               p->end_date = __cal_edit_ug_insert_timepicker_after(p, &p->etm, is_allday, p->end_date_title, __cal_edit_ug_end_date_changed_callback);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->end_date, p->end_date_title);
+
+       if (!p->timezone)
+               p->timezone = __cal_edit_ug_add_time_zone(p);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->timezone, p->end_date);
+
+       if (!p->allday)
+               p->allday = __cal_edit_ug_add_all_day(p, is_allday);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->allday, p->timezone);
+
+       __cal_edit_ug_show_multi_alarms(p);
+
+       Eina_List *list = eina_list_last(p->alarm_item_list);
+       Evas_Object *last_item = eina_list_data_get(list);
+
+       if (!p->repeat)
+               p->repeat = __cal_edit_ug_add_repeat(p);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->repeat, last_item);
+
+}
+
+static void __cal_edit_ug_show_todo_items (cal_edit_ug_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       if (!p->due_date_title)
+               p->due_date_title = __cal_edit_ug_insert_padding_after(p, C_("IDS_CLD_BODY_DUE_DATE"), p->title);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->due_date_title, p->title);
+
+       if (!p->due_date)
+               p->due_date = __cal_edit_ug_insert_timepicker_after(p, &p->etm, EINA_FALSE, p->due_date_title, __cal_edit_ug_due_date_changed_callback);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->due_date, p->due_date_title);
+
+       if (!p->no_due_date)
+               p->no_due_date = __cal_edit_ug_add_no_due_date(p);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->no_due_date, p->due_date);
+
+       Evas_Object *first_item = eina_list_nth(p->alarm_item_list, 0);
+       if (!p->priority)
+               p->priority = __cal_edit_ug_add_priority(p);
+       else
+               cal_dialogue_show_item_after(p->dialogue, p->priority, first_item);
+}
+
+static void __cal_edit_ug_hide_multi_alarms (cal_edit_ug_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       Evas_Object *first_item = eina_list_nth(p->alarm_item_list, 0);
+       Evas_Object *button_obj = elm_object_part_content_get(first_item, "elm.icon");
+       if(button_obj)  {
+               evas_object_del(button_obj);
+               button_obj = NULL;
+       }
+
+       Eina_List *list = p->alarm_item_list;
+       list = eina_list_next(list);
+       Eina_List *l;
+       Evas_Object *item = NULL;
+
+       EINA_LIST_FOREACH(list, l, item)        {
+               if(item){
+                       cal_dialogue_hide_item(p->dialogue, item);
+               }
+       }
+}
+
+static void __cal_edit_ug_hide_event_items (cal_edit_ug_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       cal_dialogue_hide_item(p->dialogue, p->start_date_title);
+       cal_dialogue_hide_item(p->dialogue, p->start_date);
+       cal_dialogue_hide_item(p->dialogue, p->end_date_title);
+       cal_dialogue_hide_item(p->dialogue, p->end_date);
+       cal_dialogue_hide_item(p->dialogue, p->allday);
+       cal_dialogue_hide_item(p->dialogue, p->timezone);
+       cal_dialogue_hide_item(p->dialogue, p->repeat);
+       __cal_edit_ug_hide_multi_alarms(p);
+
+}
+
+static void __cal_edit_ug_hide_todo_items (cal_edit_ug_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       cal_dialogue_hide_item(p->dialogue, p->due_date_title);
+       cal_dialogue_hide_item(p->dialogue, p->due_date);
+       cal_dialogue_hide_item(p->dialogue, p->no_due_date);
+       cal_dialogue_hide_item(p->dialogue, p->priority);
+
+}
+
+static void __cal_edit_ug_update_event_info (cal_edit_ug_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       __cal_edit_ug_update_title_item(p->title_entry, p->event);
+       __cal_edit_ug_update_note_item(p->note_entry, p->event);
+       __cal_edit_ug_update_location_item(p, p->event);
+
+       __cal_edit_ug_update_save_to_item(p, p->event);
+}
+
+static void __cal_edit_ug_update_todo_info (cal_edit_ug_data *p)
+{
+       c_retm_if(!p, "p is null");
+
+       __cal_edit_ug_update_title_item(p->title_entry, p->todo);
+       __cal_edit_ug_update_note_item(p->note_entry, p->todo);
+       __cal_edit_ug_update_location_item(p, p->todo);
+
+       __cal_edit_ug_update_save_to_item(p, p->todo);
+
+}
+
+static void __cal_edit_ug_new_event_clicked_callback (void *data, Evas_Object * obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data null");
+
+       cal_edit_ug_data *p = data;
+
+       if(p->item_type == ITEM_TYPE_EVENT)
+               return;
+
+       p->item_type = ITEM_TYPE_EVENT;
+
+       __cal_edit_ug_hide_todo_items(p);
+       __cal_edit_ug_show_event_items(p);
+       __cal_edit_ug_update_event_info(p);
+
+}
+
+static void __cal_edit_ug_new_todo_clicked_callback (void *data, Evas_Object * obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data null");
+
+       cal_edit_ug_data *p = data;
+
+       if(p->item_type == ITEM_TYPE_TODO)
+               return;
+
+       p->item_type = ITEM_TYPE_TODO;
+
+       __cal_edit_ug_hide_event_items(p);
+       __cal_edit_ug_show_todo_items(p);
+       __cal_edit_ug_update_todo_info(p);
+
+}
+
+static void __cal_edit_ug_add_dialogue_items(cal_edit_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_retm_if(!p, "p is null");
+
+       p->title = __cal_edit_ug_add_title(p);
+
+       calendar_time_s time = {0};
+
+       if (p->item_type == ITEM_TYPE_TODO) {
+
+               p->due_date_title = __cal_edit_ug_insert_padding_after(p, C_("IDS_CLD_BODY_DUE_DATE"), p->title);
+
+               _calendar_get_end_time(p->todo, &time);
+               _calendar_convert_calendar_time_to_tm(&time, &p->etm);
+//             __cal_edit_ug_get_record_due_time(p, p->todo);
+
+               p->due_date = __cal_edit_ug_insert_timepicker_after(p, &p->etm, EINA_FALSE, p->due_date_title, __cal_edit_ug_due_date_changed_callback);
+
+               p->no_due_date = __cal_edit_ug_add_no_due_date(p);
+
+               p->priority = __cal_edit_ug_add_priority(p);
+       } else {
+
+               p->start_date_title = __cal_edit_ug_insert_padding_after(p, C_("IDS_CLD_BODY_FROM"), p->title);
+
+               if (p->instance)
+                       _calendar_get_start_time(p->instance, &time);
+               else
+                       _calendar_get_start_time(p->event, &time);
+
+               _calendar_convert_calendar_time_to_tm(&time, &p->stm);
+               Eina_Bool allday = _calendar_is_allday_record(p->event);
+
+               p->start_date = __cal_edit_ug_insert_timepicker_after(p, &p->stm, allday, p->start_date_title, __cal_edit_ug_start_date_changed_callback);
+
+               p->end_date_title = __cal_edit_ug_insert_padding_after(p, C_("IDS_CLD_BODY_TO"), p->start_date);
+
+               if (p->instance)
+                       _calendar_get_end_time(p->instance, &time);
+               else
+                       _calendar_get_end_time(p->event, &time);
+
+               _calendar_convert_calendar_time_to_tm(&time, &p->etm);
+               p->end_date = __cal_edit_ug_insert_timepicker_after(p, &p->etm, allday, p->end_date_title, __cal_edit_ug_end_date_changed_callback);
+
+               p->timezone = __cal_edit_ug_add_time_zone(p);
+
+               p->allday = __cal_edit_ug_add_all_day(p, allday);
+
+       }
+
+       p->note = __cal_edit_ug_add_note(p);
+
+       p->location = __cal_edit_ug_add_location(p);
+
+       __cal_edit_ug_add_multi_alarm(p);
+
+       if (p->item_type == ITEM_TYPE_EVENT) {
+               p->repeat = __cal_edit_ug_add_repeat(p);
+       }
+
+       p->saveto = __cal_edit_ug_add_saveto(p);
+}
+
+static void __cal_edit_ug_update_naviframe_language(cal_edit_ug_data *data)
+{
+       c_ret_if(!data->naviframe);
+
+       Elm_Object_Item *item = elm_naviframe_top_item_get(data->naviframe);
+       c_ret_if(!item);
+
+       if (data->is_edit_mode) {
+
+               if (data->item_type == ITEM_TYPE_TODO)
+                       elm_object_item_part_text_set(item, "default", C_("IDS_TASK_HEADER_EDIT_TASK"));
+               else
+                       elm_object_item_part_text_set(item, "default", C_("IDS_CLD_HEADER_EDIT_EVENT"));
+
+       } else
+               elm_object_item_part_text_set(item, "default", S_("IDS_COM_BODY_CREATE"));
+}
+
+static void __cal_edit_ug_update_tabbar_language(cal_edit_ug_data *data)
+{
+       if (data->is_edit_mode)
+               return;
+
+       c_ret_if(!data->event_item);
+       c_ret_if(!data->todo_item);
+
+       elm_object_item_part_text_set(data->event_item, "default", C_("IDS_CLD_SK3_CREATE_EVENT"));
+       elm_object_item_part_text_set(data->todo_item, "default", C_("IDS_TASK_SK_CREATE_TASK"));
+}
+
+static void __cal_edit_ug_add_toolbar(cal_edit_ug_data *data, Evas_Object *scroller)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       Elm_Object_Item *navi_item = NULL;
+
+       if (data->is_edit_mode) {
+               navi_item = elm_naviframe_item_push(data->naviframe, NULL, NULL, NULL, scroller, NULL);
+               c_warn_if(!navi_item, "elm_naviframe_item_push() is failed");
+       } else {
+               navi_item = elm_naviframe_item_push(data->naviframe, NULL, NULL, NULL, scroller, "tabbar");
+               c_warn_if(!navi_item, "elm_naviframe_item_push() is failed");
+
+               data->tabbar = elm_toolbar_add(data->naviframe);
+               c_ret_if(!data->tabbar);
+
+               elm_object_item_part_content_set(navi_item, "tabbar", data->tabbar);
+               elm_toolbar_reorder_mode_set(data->tabbar, EINA_FALSE);
+               elm_toolbar_transverse_expanded_set(data->tabbar, EINA_TRUE);
+               elm_toolbar_shrink_mode_set(data->tabbar, ELM_TOOLBAR_SHRINK_EXPAND);
+               elm_object_style_set(data->tabbar, "tabbar");
+
+               if (data->item_type == ITEM_TYPE_TODO) {
+                       data->todo_item = elm_toolbar_item_append(data->tabbar, NULL, NULL, __cal_edit_ug_new_todo_clicked_callback, data);
+
+                       elm_toolbar_select_mode_set(data->tabbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
+
+                       data->event_item = elm_toolbar_item_insert_before(data->tabbar, data->todo_item, NULL, NULL, __cal_edit_ug_new_event_clicked_callback, data);
+               } else {
+                       data->event_item = elm_toolbar_item_append(data->tabbar, NULL,  NULL, __cal_edit_ug_new_event_clicked_callback, data);
+                       data->todo_item = elm_toolbar_item_append(data->tabbar, NULL, NULL, __cal_edit_ug_new_todo_clicked_callback, data);
+
+                       elm_toolbar_select_mode_set(data->tabbar, ELM_OBJECT_SELECT_MODE_ALWAYS);
+               }
+
+               if (data->item_type == ITEM_TYPE_TODO)
+                       elm_toolbar_item_selected_set(data->todo_item, EINA_TRUE);
+               else
+                       elm_toolbar_item_selected_set(data->event_item, EINA_TRUE);
+
+               __cal_edit_ug_update_tabbar_language(data);
+
+       }
+
+       __cal_edit_ug_update_naviframe_language(data);
+
+       data->save_cancel = cal_save_cancel_create(data->naviframe, NULL, __cal_edit_ug_save_button_callback, __cal_edit_ug_back_button_callback, data);
+
+}
+
+static void __cal_edit_ug_dialogue_item_clicked_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_edit_ug_data* p = data;
+}
+
+static Evas_Object *__cal_edit_ug_create_dialogue(Evas_Object *parent, cal_edit_ug_data* p)
+{
+       c_retv_if(!p, NULL);
+
+       Evas_Object *scroller = cal_dialogue_create(parent);
+       c_retvm_if(!scroller, NULL, "cal_dialogue_create() is failed");
+       __cal_edit_ug_add_toolbar(p, scroller);
+
+       Evas_Object *dialogue = cal_dialogue_get_box(scroller);
+
+       evas_object_event_callback_add(dialogue, EVAS_CALLBACK_MOUSE_UP, __cal_edit_ug_dialogue_item_clicked_callback, p);
+       evas_object_event_callback_add(dialogue, EVAS_CALLBACK_MOUSE_DOWN, __cal_edit_ug_dialogue_item_clicked_callback, p);
+       evas_object_event_callback_add(dialogue, EVAS_CALLBACK_MOUSE_MOVE, __cal_edit_ug_dialogue_item_clicked_callback, p);
+
+       return dialogue;
+
+}
+
+static Evas_Object *__cal_edit_ug_create_layout(Evas_Object *parent, cal_edit_ug_data *data)
+{
+       CAL_FN_START;
+
+       c_retv_if(!parent, NULL);
+       c_retv_if(!data, NULL);
+
+       data->parent = parent;
+
+       if (data->item_type == ITEM_TYPE_TODO)
+               data->todo = data->record;
+       else
+               data->event = data->record;
+
+       if(!data->is_edit_mode)
+       {
+               __cal_edit_ug_initialize_todo_record(data);
+               __cal_edit_ug_initialize_event_record(data);
+       }
+
+       Evas_Object *base_layout = cal_util_add_layout(parent, NULL);
+       c_retv_if(!base_layout, NULL);
+
+       Evas_Object *naviframe = elm_naviframe_add(base_layout);
+       if (!naviframe) {
+               ERR("elm_naviframe_add() is failed");
+
+               evas_object_del(base_layout);
+
+               return NULL;
+       }
+
+       evas_object_show(naviframe);
+
+       Evas_Object *bg = cal_util_add_bg(base_layout, EINA_FALSE);
+       if (!bg) {
+               ERR("cal_util_add_bg() is failed");
+
+               evas_object_del(base_layout);
+
+               return NULL;
+       }
+
+       data->base_layout = base_layout;
+       data->naviframe = naviframe;
+
+       cal_util_initialize_timezone();
+
+       data->dialogue = __cal_edit_ug_create_dialogue(naviframe, data);
+       c_warn_if(!data->dialogue, "__cal_edit_ug_create_dialogue() is failed");
+
+       __cal_edit_ug_add_dialogue_items(data);
+
+
+       elm_object_part_content_set(base_layout, "elm.swallow.content", naviframe);
+       elm_object_part_content_set(base_layout, "elm.swallow.bg", bg);
+
+       return base_layout;
+}
+
+static calendar_record_h inline __cal_edit_ug_get_origin_record(const calendar_record_h instance)
+{
+       CAL_FN_START;
+
+       c_retv_if(!instance, NULL);
+
+       int index = _calendar_get_record_index(instance);
+
+       return _calendar_get_record_with_index(index);
+}
+
+static void *__cal_edit_ug_create_callback(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ug, NULL);
+       c_retv_if(!service, NULL);
+       c_retv_if(!priv, NULL);
+       c_retv_if(mode != UG_MODE_FULLVIEW, NULL);
+
+       cal_edit_ug_data *data = priv;
+
+       data->ug = ug;
+
+       int cid = 0;
+       char *item_type = NULL;
+       char *index = NULL;
+       char *path = NULL;
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       int r = service_get_extra_data(service, "index", &index);
+
+       if (r == SERVICE_ERROR_NONE)
+               cid = atoi(index);
+
+       r = service_get_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, &item_type);
+       if (r == SERVICE_ERROR_NONE) {
+
+               if (!CAL_STRCMP(item_type, CAL_APPCONTROL_ITEM_TYPE_EVENT)) {
+                       data->item_type = ITEM_TYPE_EVENT;
+                       data->is_edit_mode = EINA_TRUE;
+
+                       r = service_get_extra_data(service, CAL_APPCONTROL_EVENT_ID, &index);
+                       if (r != SERVICE_ERROR_NONE) {
+                               ERR("service_get_extra_data(%s) is failed(%x)", CAL_APPCONTROL_EVENT_ID, r);
+
+                               CAL_FREE(index);
+
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       cid = atoi(index);
+                       calendar_record_h record = _calendar_get_record_with_index(cid);
+                       c_retv_if(!record, NULL);
+
+                       calendar_record_destroy(record, true);
+
+               } else if (!CAL_STRCMP(item_type, CAL_APPCONTROL_ITEM_TYPE_TODO)) {
+
+                       data->item_type = ITEM_TYPE_TODO;
+                       data->is_edit_mode = EINA_TRUE;
+
+                       r = service_get_extra_data(service, CAL_APPCONTROL_TODO_ID, &index);
+                       if (r != SERVICE_ERROR_NONE) {
+                               ERR("service_get_extra_data(%s) is failed(%x)", CAL_APPCONTROL_TODO_ID, r);
+
+                               CAL_FREE(index);
+
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       cid = atoi(index);
+                       calendar_record_h record = _calendar_get_record_with_index(cid);
+                       c_retv_if(!record, NULL);
+
+                       calendar_record_destroy(record, true);
+
+               }
+               else if (!CAL_STRCMP(item_type, CAL_APPCONTROL_ITEM_TYPE_VCS)) {
+
+                       data->item_type = ITEM_TYPE_VCS;
+
+                       r = service_get_extra_data(service, CAL_APPCONTROL_VCS_PATH, &path);
+                       if (r != SERVICE_ERROR_NONE) {
+                               ERR("service_get_extra_data(%s) is failed(%x)", CAL_APPCONTROL_VCS_PATH, r);
+
+                               CAL_FREE(path);
+
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       FILE * file = fopen(path, "r");
+                       if (!file) {
+                               ERR("fopen(%s) is failed.", path);
+
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       struct stat st;
+                       if (stat(path, &st) != 0) {
+                               ERR("Getting file information Error!");
+                               fclose(file);
+                               CAL_FREE(path);
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       int size = st.st_size;
+                       char *raw_data = calloc(size + 1, sizeof(char));
+                       if(!raw_data){
+                               ERR("raw_data is NULL!");
+                               fclose(file);
+                               free(raw_data);
+                               CAL_FREE(path);
+                               ug_destroy_me(ug);
+
+                               return NULL;
+                       }
+
+                       r = fread(raw_data, 1, size, file);
+                       fclose( file );
+                       c_retv_if(r < 0, NULL);
+
+                       calendar_list_h list = NULL;
+
+                       error = calendar_vcalendar_parse_to_calendar(raw_data, &list);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_vcalendar_parse_to_calendar() is failed(%x)", error);
+
+                       if (list) {
+                               calendar_record_h record = NULL;
+                               error = calendar_list_get_current_record_p(list, &record);
+                               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+                               error = calendar_record_clone(record, &data->record);
+                               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+
+                               error = calendar_list_destroy(list, true);
+                       }
+
+                       free(raw_data);
+               }
+       }
+
+       if (!data->record) {
+               if (0 < cid) {
+                       data->is_edit_mode = EINA_TRUE;
+                       data->record = _calendar_get_record_with_index(cid);
+               }
+               else {
+                       data->is_edit_mode = EINA_FALSE;
+                       char *record_address = NULL;
+
+                       r = service_get_extra_data(service, "record", &record_address);
+                       if(record_address){
+                               data->record = (calendar_record_h)strtoul(record_address, NULL, 16);
+                               c_warn_if(!data->record, "strtol(%s, NULL, 16) is failed", record_address);
+                       }
+                       else    {
+                               char *note_str = NULL;
+                               r = service_get_extra_data(service, "note", &note_str);
+
+                               if(note_str){
+                                       calendar_record_h record = NULL;
+                                       calendar_error_e error = CALENDAR_ERROR_NONE;
+                                       error = calendar_record_create(_calendar_event._uri, &record);
+                                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_create() is failed(%x)", error);
+
+                                       data->record = record;
+                                       __cal_edit_ug_set_record_note(data->record, note_str);
+
+                                       time_t now = time(NULL);
+                                       localtime_r(&now, &data->base_time);
+
+                                       CAL_FREE(note_str);
+                               }
+                       }
+
+                       int index = _calendar_get_record_index(data->record);
+                       if(index>0)     {
+                               data->is_edit_mode = EINA_TRUE;
+                       }
+                       _calendar_record_type record_type = _calendar_get_record_type(data->record);
+                       ERR("record_type=%d", record_type);
+
+                       if (record_type != _CALENDAR_RECORD_TYPE_EVENT && record_type != _CALENDAR_RECORD_TYPE_TODO &&  record_type != _CALENDAR_RECORD_TYPE_SEARCH_TODO_CALENDAR) {
+                               data->instance = data->record;
+                               data->record = __cal_edit_ug_get_origin_record(data->instance);
+                       }
+
+                       if(record_address)
+                               CAL_FREE(record_address);
+               }
+
+               if (_calendar_is_task_record(data->record))
+                       data->item_type = ITEM_TYPE_TODO;
+               else
+                       data->item_type = ITEM_TYPE_EVENT;
+       }
+
+
+       //base_time
+       char *base_time = NULL;
+       r = service_get_extra_data(service, "base_time", &base_time);
+       c_warn_if(SERVICE_ERROR_NONE != r,"service_get_extra_data is failed(%d).", r);
+
+       if(base_time){
+               long long int lli_time = strtoll(base_time, NULL, 10);
+               cal_util_convert_lli_to_tm(NULL, lli_time, &data->base_time);
+               CAL_FREE(base_time);
+       }
+
+       if (error != CALENDAR_ERROR_NONE || data->item_type == ITEM_TYPE_UNKNOWN) {
+               ERR("ERROR!! Invaild parameter!!");
+               ug_destroy_me(ug);
+       }
+
+       CAL_FREE(item_type);
+
+       CAL_FREE(index);
+
+       CAL_FREE(path);
+
+       Evas_Object *parent = ug_get_parent_layout(ug);
+       c_retv_if(!parent, NULL);
+
+       data->window = ug_get_window();
+       c_retv_if(!data->window, NULL);
+
+       elm_theme_extension_add(NULL, "/usr/apps/"CALENDAR_PACKAGE"/res/edje/theme.edj");
+       elm_theme_extension_add(NULL, "/usr/apps/"CALENDAR_PACKAGE"/res/edje/theme2.edj");
+
+       Evas_Object *base = __cal_edit_ug_create_layout(parent, data);
+       c_retv_if(!base, NULL);
+
+       return base;
+}
+
+static void __cal_edit_ug_destroy_callback(ui_gadget_h ug, service_h service, void *priv)
+{
+       CAL_FN_START;
+       c_ret_if(!priv);
+
+       cal_edit_ug_data *data = priv;
+
+       cal_util_delete_evas_object(&data->base_layout);
+
+       if (data->timezone_city)
+               free(data->timezone_city);
+       if (data->timezone_path)
+               free(data->timezone_path);
+       if (data->timezone_offset)
+               free(data->timezone_offset);
+
+       _calendar_free_record_list(&data->calendar_book_list);
+
+       if (data->alarm_list) {
+               g_list_free(data->alarm_list);
+               data->alarm_list = NULL;
+       }
+
+       if (data->alarm_item_list) {
+               eina_list_free(data->alarm_item_list);
+               data->alarm_item_list = NULL;
+       }
+
+       CAL_FREE(data->title_str);
+       CAL_FREE(data->address);
+       CAL_FREE(data->note_str);
+
+       if (data->save_cancel)
+               cal_save_cancel_destroy(data->save_cancel);
+
+       if (data->tabbar)
+               evas_object_del(data->tabbar);
+
+       if (data->event)
+               calendar_record_destroy(data->event, true);
+
+       if (data->todo)
+               calendar_record_destroy(data->todo, true);
+
+       if (data->instance)
+               calendar_record_destroy(data->instance, true);
+
+}
+
+static void __cal_edit_ug_key_callback(ui_gadget_h ug, enum ug_key_event evt, service_h data, void *priv)
+{
+       c_ret_if(!ug);
+
+       DBG("UG: key event %d", evt);
+
+       switch (evt) {
+       case UG_KEY_EVENT_END:
+               ug_destroy_me(ug);
+               break;
+       default:
+               break;
+       }
+}
+
+static void __cal_edit_ug_update_language(cal_edit_ug_data *data)
+{
+       c_ret_if(!data);
+
+       __cal_edit_ug_update_naviframe_language(data);
+
+       __cal_edit_ug_update_tabbar_language(data);
+
+       cal_save_cancel_set_button_text(data->save_cancel, S_("IDS_COM_OPT_SAVE"), NULL);
+
+       __cal_edit_ug_update_title_language(data->title);
+
+       if (data->item_type == ITEM_TYPE_EVENT) {
+
+               __cal_edit_ug_update_start_language(data->start_date_title);
+
+               __cal_edit_ug_update_end_language(data->end_date_title);
+       } else
+               __cal_edit_ug_update_due_language(data->due_date_title);
+
+       __cal_edit_ug_update_time_zone_language(data->timezone, data->timezone_city, data->timezone_offset);
+
+       if (data->item_type == ITEM_TYPE_TODO) {
+
+               __cal_edit_ug_update_no_due_date_language(data->no_due_date);
+
+               __cal_edit_ug_update_priority_language(data->priority, data->todo);
+       }
+
+       if (data->item_type == ITEM_TYPE_EVENT)
+               __cal_edit_ug_update_allday_language(data->allday);
+
+       __cal_edit_ug_update_description_language(data->note);
+
+       __cal_edit_ug_update_location_language(data->location);
+
+       __cal_edit_ug_update_reminder_language(data->alarm_item_list);
+
+       if (data->item_type == ITEM_TYPE_EVENT)
+               __cal_edit_ug_update_recurrence_language(data->repeat, data->repeat_freq);
+
+       if (data->item_type == ITEM_TYPE_EVENT)
+               __cal_edit_ug_update_saveto_language(data->saveto, data->event);
+       else
+               __cal_edit_ug_update_saveto_language(data->saveto, data->todo);
+}
+
+static void __cal_edit_ug_update_region(cal_edit_ug_data *data)
+{
+       c_ret_if(!data);
+
+       if (data->item_type == ITEM_TYPE_EVENT) {
+
+               Eina_Bool is_allday = _calendar_is_allday_record(data->event);
+
+               __cal_edit_ug_update_datetime_region(data->start_date, &data->stm, is_allday, __cal_edit_ug_start_date_changed_callback, data);
+
+               __cal_edit_ug_update_datetime_region(data->end_date, &data->etm, is_allday, __cal_edit_ug_end_date_changed_callback, data);
+
+       } else
+               __cal_edit_ug_update_datetime_region(data->due_date, &data->etm, _calendar_is_allday_record(data->todo), __cal_edit_ug_due_date_changed_callback, data);
+}
+
+static void __cal_edit_ug_event_callback(ui_gadget_h ug, enum ug_event event, service_h service, void *priv)
+{
+       c_ret_if(!ug);
+       c_ret_if(!priv);
+
+       switch (event) {
+       case UG_EVENT_LANG_CHANGE:
+               __cal_edit_ug_update_language((cal_edit_ug_data *)priv);
+               break;
+       case UG_EVENT_REGION_CHANGE:
+               __cal_edit_ug_update_region((cal_edit_ug_data *)priv);
+               break;
+       default:
+               break;
+       }
+}
+
+API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ops, -1);
+
+       cal_edit_ug_data *data = calloc(1, sizeof(cal_edit_ug_data));
+
+       ops->create = __cal_edit_ug_create_callback;
+       ops->destroy = __cal_edit_ug_destroy_callback;
+       ops->key_event = __cal_edit_ug_key_callback;
+       ops->event = __cal_edit_ug_event_callback;
+       ops->priv = data;
+       ops->opt = UG_OPT_INDICATOR_PORTRAIT_ONLY;
+
+       const char *path = bindtextdomain(CALENDAR, LOCALEDIR);
+       c_warn_if(!path, "bindtextdomain(%s, %s) is failed.", CALENDAR, LOCALEDIR);
+
+       __cal_edit_ug_initialize(data);
+
+       return 0;
+}
+
+API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       CAL_FN_START;
+
+       c_ret_if(!ops);
+
+       cal_edit_ug_data *data = ops->priv;
+
+       __cal_edit_ug_finish(data);
+
+       free(data);
+}
diff --git a/ug/list/CMakeLists.txt b/ug/list/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..48ceafe
--- /dev/null
@@ -0,0 +1,14 @@
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(UG_LIST_SRCS
+               ug.c
+               ug-list.c
+)
+
+ADD_DEFINITIONS("-DUGLOCALE=\"${UG_LOCALE}\"")
+
+ADD_LIBRARY(${UGNAME} SHARED ${UG_LIST_SRCS})
+SET_TARGET_PROPERTIES(${UGNAME} PROPERTIES COMPILE_FLAGS "${UG_CFLAGS}")
+TARGET_LINK_LIBRARIES(${UGNAME} ${COMMON_LIB} ${UG_PKGS_LDFLAGS})
+
+INSTALL(TARGETS ${UGNAME} DESTINATION ${UG_LIB})
diff --git a/ug/list/ug-list.c b/ug/list/ug-list.c
new file mode 100755 (executable)
index 0000000..86445ee
--- /dev/null
@@ -0,0 +1,1218 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <fcntl.h>
+#include <vconf.h>
+#include "cld.h"
+#include "ug.h"
+
+static const char *_name = "list/base";
+
+///TODO: get full path from caller
+#define VFILE_PATH "/opt/usr/media/Others"
+
+static Elm_Entry_Filter_Limit_Size _limit_20char = {
+       .max_char_count = 20,
+};
+
+#define MAX_FETCH_COUNT 10
+
+#define ACCOUNT_LABLE_STRING_LENGTH 128
+
+typedef struct {
+       const char *name;
+       struct ug_data *ugd;
+       Evas_Object *parent;
+       Evas_Object *ly;
+       Evas_Object *no_contents;
+       Evas_Object *bg;
+
+       Evas_Object *bt;
+
+       Evas_Object *genlist;
+
+       Eina_List *event_list;
+       Eina_List *search_list;
+
+       Evas_Object *box;
+
+       Ecore_Idler* idler;
+
+       int checked_event_count;
+       int added_event_count;
+       Evas_Object* searchbar;
+       const char * searchtext;
+       Elm_Object_Item *navi_item;
+}cal_list_ug_data;
+
+typedef struct {
+       Elm_Object_Item *it;  // Genlist Item pointer
+       Eina_Bool checked;     // Check status
+       char *label;
+       calendar_record_h record;
+       struct tm* tm;
+       Elm_Genlist_Item_Type it_flag;
+}cal_list_ug_item_data;
+
+static void __cal_list_ug_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_update_callback(const char* view_uri, void *data);
+static void __cal_list_ug_searchbar_entry_changed_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_cancel_button_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_searchbar_entry_unfocused_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_searchbar_clicked_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_list_ug_create_searchbar(cal_list_ug_data *p);
+static char* __cal_list_ug_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__cal_list_ug_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);
+
+static Elm_Genlist_Item_Class itc = {
+       .item_style = "3text.5icon",
+       .func.text_get = __cal_list_ug_get_genlist_item_label,
+       .func.content_get = __cal_list_ug_get_genlist_item_icon,
+       .decorate_all_item_style = "edit_default",
+};
+
+static _calendar_book_color calendar_color;
+
+//TODO
+#define ELM_GENLIST_ITEM_GROUP (1<<1)
+
+static void __cal_list_ug_update_selection_info(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       if (!p->checked_event_count) {
+               cal_util_hide_small_information(p->ly);
+               return;
+       }
+
+       char lable_str[128] = { '\0'};
+
+       snprintf(lable_str, sizeof(lable_str), "%s (%d)", S_("IDS_COM_POP_SELECTED"), p->checked_event_count);
+
+       cal_util_show_small_information(p->ly, lable_str, 0.0);
+}
+
+static inline void __cal_list_ug_update_button_state(cal_list_ug_data *p)
+{
+       if (0 < p->checked_event_count)
+               elm_object_disabled_set(p->bt, EINA_FALSE);
+       else
+               elm_object_disabled_set(p->bt, EINA_TRUE);
+}
+
+static inline void __cal_list_ug_update_realized_genlist_item(cal_list_ug_data *p)
+{
+       Eina_List *realized_list = elm_genlist_realized_items_get(p->genlist);
+       c_ret_if(!realized_list);
+
+       Eina_List *l = NULL;
+       Elm_Object_Item *it = NULL;
+
+       EINA_LIST_FOREACH(realized_list, l, it) {
+               if (it)
+                       elm_genlist_item_update(it);
+       }
+}
+
+static void __cal_list_ug_genlist_item_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       cal_list_ug_item_data *item_data = data;
+
+       cal_list_ug_data* p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!p);
+
+       item_data->checked = elm_check_state_get(obj);
+
+       if (item_data->checked)
+               p->checked_event_count++;
+       else
+               p->checked_event_count--;
+
+       __cal_list_ug_update_button_state(p);
+
+       __cal_list_ug_update_realized_genlist_item(p);
+
+       __cal_list_ug_update_selection_info(p);
+}
+
+static Evas_Object *__cal_list_ug_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!part, NULL);
+       c_retv_if(!obj, NULL);
+       c_retv_if(!data, NULL);
+
+       cal_list_ug_item_data *item_data = data;
+
+       if (!CAL_STRCMP(part, "elm.edit.icon.1")) {
+
+               cal_list_ug_data* p = CAL_UTIL_GET_PRIV_DATA(obj);
+               c_retv_if(!p, NULL);
+
+               Evas_Object *checkbox = elm_check_add(obj);
+               c_retv_if(!checkbox, NULL);
+
+               elm_check_state_pointer_set(checkbox, &item_data->checked);
+               evas_object_smart_callback_add(checkbox, "changed", __cal_list_ug_genlist_item_check_changed_callback, item_data);
+               evas_object_propagate_events_set(checkbox, EINA_FALSE);
+               evas_object_data_set(checkbox, "priv", p);
+
+               return checkbox;
+
+       } else if (!CAL_STRCMP(part, "elm.swallow.colorbar")) {
+
+               Evas_Object *rect = evas_object_rectangle_add(evas_object_evas_get(obj));
+               c_retv_if(!rect, NULL);
+
+               evas_object_size_hint_align_set(rect, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+               _calendar_get_calendar_color(item_data->record, &calendar_color);
+
+               evas_object_color_set(rect, calendar_color.red, calendar_color.green, calendar_color.blue, calendar_color.alpha);
+
+               return rect;
+       }
+
+       return NULL;
+}
+
+static void __cal_list_ug_delete_idler(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       if (!p->idler)
+               return;
+
+       ecore_idler_del(p->idler);
+       p->idler = NULL;
+}
+
+static void __cal_list_ug_delete_no_contents(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!p->ly);
+
+       if (!p->no_contents)
+               return;
+
+       elm_object_part_content_unset(p->ly, "sw");
+
+       evas_object_del(p->no_contents);
+
+       p->no_contents = NULL;
+}
+
+static void __cal_list_ug_delete_layout(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+
+       cal_list_ug_data *p = data;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_db_remove_changed_cb(_calendar_event._uri, __cal_list_ug_update_callback, p);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_remove_changed_cb() is failed(%x)", error);
+
+       __cal_list_ug_delete_idler(p);
+
+       _calendar_free_record_list(&p->event_list);
+
+       free(p);
+}
+
+static char* __cal_list_ug_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!part, NULL);
+       c_retv_if(!data, NULL);
+
+       cal_list_ug_item_data *item = data;
+       calendar_record_h record = item->record;
+       c_retv_if(!record, NULL);
+
+       if (!CAL_STRCMP(part, "elm.text.1")) {
+
+               return _calendar_get_summary(record);
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.2")) {
+
+               return _calendar_get_location(record);
+       }
+
+       if (!CAL_STRCMP(part, "elm.text.3"))
+               return _calendar_get_time_str_for_genlist(record);
+
+       return NULL;
+}
+
+static void __cal_list_ug_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Elm_Object_Item* it;
+       cal_list_ug_item_data* item = data;
+       cal_list_ug_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_retm_if(!p, "p is null");
+
+       if (p->ugd->selection_mode == SELECTION_MODE_SINGLE) {
+
+               int cid = _calendar_get_record_index(item->record);
+               c_retm_if(cid < 0, "CALENDAR_SVC_STRUCT_GET_INT return error!");
+
+               service_h service;
+
+               service_create(&service);
+
+               char ** value = calloc(1, sizeof(char *));
+               if(!value)      {
+                       ERR("value is NULL!");
+                       service_destroy(service);
+                       return;
+               }
+
+
+               char path[FILENAME_MAX] = {0};
+               char *vcs_data = NULL;
+
+               snprintf(path, sizeof(path), "%s/Calendar_%d.vcs", VFILE_PATH, cid);
+
+               calendar_list_h list = NULL;
+
+               calendar_error_e error = CALENDAR_ERROR_NONE;
+
+               error = calendar_list_create(&list);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_create() is failed(%x)");
+
+               error = calendar_list_add(list, item->record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_add() is failed(%x)");
+
+               error = calendar_vcalendar_make_from_records(list, &vcs_data);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_vcalendar_make_from_records() is failed(%x)");
+
+
+               int fd = open(path, O_WRONLY|O_CREAT|O_TRUNC, 0644);
+               if(fd < 0)
+               {
+                       ERR("Failed to open file %s.", path);
+
+                       free(value);
+                       service_destroy(service);
+                       error = calendar_list_destroy(list, false);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)");
+
+                       return;
+               }
+
+               if (vcs_data) {
+                       int ret = write(fd, vcs_data, strlen(vcs_data));
+                       if (ret == -1)
+                               ERR("write() is failed.");
+                       else
+                               cal_util_update_media_db(path);
+
+                       free(vcs_data);
+               }
+
+               fsync(fd);
+               close(fd);
+
+               error = calendar_list_destroy(list, false);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)");
+
+               value[0] = strdup(path);
+
+               service_add_extra_data_array(service, CAL_APPCONTROL_PATH, (const char **)value, 1);
+
+               free(value[0]);
+               free(value);
+
+               service_add_extra_data(service, CAL_APPCONTROL_RESULT, CAL_APPCONTROL_RESULT_SUCCESS);
+
+               if (p->ugd->item_type == ITEM_TYPE_EVENT)
+                       service_add_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, CAL_APPCONTROL_ITEM_TYPE_EVENT);
+               else
+                       service_add_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, CAL_APPCONTROL_ITEM_TYPE_TODO);
+
+               ug_send_result(p->ugd->ug, service);
+               service_destroy(service);
+
+               ug_destroy_me(p->ugd->ug);
+
+               return;
+       }
+
+       if (p->added_event_count <= 0) {
+               return;
+       }
+
+       item->checked = !(item->checked);
+       if (item->checked) {
+               p->checked_event_count++;
+       } else {
+               p->checked_event_count--;
+       }
+
+       if (item->checked || 0 < p->checked_event_count) {
+               elm_object_disabled_set(p->bt, EINA_FALSE);
+       } else if (p->checked_event_count <= 0) {
+               elm_object_disabled_set(p->bt, EINA_TRUE);
+       }
+
+       it = elm_genlist_selected_item_get(obj);
+       if (it) {
+               elm_genlist_item_selected_set(it, EINA_FALSE);
+       }
+
+       __cal_list_ug_update_realized_genlist_item(p);
+
+       __cal_list_ug_update_selection_info(p);
+}
+
+static void __cal_list_ug_get_event_list(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+
+       struct tm tm_start = {0};
+       struct tm tm_end = {0};
+
+       tm_start.tm_year = 70;
+       tm_end.tm_year = 137;
+
+       if (p->ugd->item_type == ITEM_TYPE_EVENT)
+               p->event_list = _calendar_get_all_instance_list(&tm_start,&tm_end);
+       else
+               p->event_list = _calendar_get_all_task_list2(&tm_start, &tm_end, EINA_TRUE, _CALENDAR_TASK_SORT_TYPE_DUEDATE_ASC);
+}
+
+static void __cal_list_ug_add_event_to_genlist(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!p->event_list);
+
+       Eina_List *l = NULL;
+       calendar_record_h record = NULL;
+
+       int added_event_count = 0;
+
+       Eina_List *event_list = eina_list_nth_list(p->event_list, p->added_event_count);
+       c_ret_if(!event_list);
+
+       EINA_LIST_FOREACH(event_list, l, record) {
+               if (record) {
+                       cal_list_ug_item_data *item_data = calloc(1, sizeof(cal_list_ug_item_data));
+                       c_ret_if(!item_data);
+
+                       item_data->record = record;
+
+                       item_data->it = elm_genlist_item_append(p->genlist, &itc, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_list_ug_genlist_item_select_callback, item_data);
+
+                       added_event_count++;
+
+                       if (10 < added_event_count)
+                               break;
+               }
+       }
+
+       p->added_event_count += added_event_count;
+}
+
+static Eina_Bool __cal_list_ug_check_idler_condition(cal_list_ug_data *p)
+{
+       c_retv_if(!p, ECORE_CALLBACK_CANCEL);
+
+       if (p->added_event_count < eina_list_count(p->event_list)) {
+
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if (p->idler) {
+               ecore_idler_del(p->idler);
+               p->idler = NULL;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+Eina_Bool __cal_list_ug_idler_callback(void* data)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "data is null.");
+
+       cal_list_ug_data *p = data;
+
+       c_retv_if(!p->idler, ECORE_CALLBACK_CANCEL);
+
+       __cal_list_ug_add_event_to_genlist(p);
+
+       CAL_FN_END;
+
+       return __cal_list_ug_check_idler_condition(p);
+}
+
+static void __cal_list_ug_add_idler(cal_list_ug_data *p)
+{
+       c_ret_if(!p);
+
+       if (p->added_event_count < eina_list_count(p->event_list)) {
+
+               if (p->idler)
+                       ecore_idler_del(p->idler);
+
+               p->idler = ecore_idler_add(__cal_list_ug_idler_callback, p);
+               c_ret_if(!p->idler);
+       }
+}
+
+static void __cal_list_ug_create_searchbar(cal_list_ug_data *p)
+{
+       c_ret_if(!p);
+       c_ret_if(!p->ly);
+
+       if (p->searchbar)
+               return;
+
+       Evas_Object *searchbar = cal_util_add_searchbar(p->ly, NULL, NULL, EINA_TRUE, NULL, NULL);
+       c_ret_if(!searchbar);
+
+       Evas_Object *entry = elm_object_part_content_get(searchbar, "elm.swallow.content");
+       c_ret_if(!entry);
+
+       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_NORMAL);
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &_limit_20char);
+
+       evas_object_size_hint_weight_set(searchbar, EVAS_HINT_EXPAND, 0.1);
+       evas_object_size_hint_align_set(searchbar, EVAS_HINT_FILL, 0.6);
+
+       evas_object_smart_callback_add(entry, "changed", __cal_list_ug_searchbar_entry_changed_callback, p);
+       evas_object_smart_callback_add(entry, "unfocused", __cal_list_ug_searchbar_entry_unfocused_callback, p);
+       evas_object_smart_callback_add(searchbar, "clicked", __cal_list_ug_searchbar_clicked_callback, p);
+       evas_object_smart_callback_add(searchbar, "cancel,clicked", __cal_list_ug_cancel_button_callback, p);
+
+       evas_object_show(searchbar);
+
+       edje_object_signal_emit(CAL_UTIL_GET_EDJ_DATA(p->ly), "searchbar,show", "prog");
+
+       elm_object_part_content_set(p->ly, "searchbar", searchbar);
+
+       p->searchbar = searchbar;
+}
+
+static void __cal_list_ug_create_box(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!p->ly);
+
+       if (p->box)
+               return;
+
+       Evas_Object *box = elm_box_add(p->ly);
+       c_ret_if(!box);
+
+       evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_part_content_set(p->ly, "sw", box);
+       p->box = box;
+}
+
+static void __cal_list_ug_append_list_with_iter(Eina_List **event_list, calendar_list_h list)
+{
+       c_ret_if(!event_list);
+       c_ret_if(!list);
+
+       calendar_record_h record = NULL;
+
+       int i = 0;
+
+       int count = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       for (i = 0; i < count; i++) {
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               *event_list = eina_list_append(*event_list, record);
+
+               calendar_list_next(list);
+       }
+}
+
+
+static void __cal_list_ug_update_event_list_with_keyword(cal_list_ug_data *p)
+{
+       c_ret_if(!p);
+
+       calendar_list_h list = NULL;
+       if (p->ugd->item_type == ITEM_TYPE_EVENT) {
+               list = _calendar_search_event(p->searchtext);
+               c_ret_if(!list);
+       }
+       else {
+               list = _calendar_search_task(p->searchtext);
+               c_ret_if(!list);
+       }
+
+       __cal_list_ug_append_list_with_iter(&p->search_list, list);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_list_destroy(list, false);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+}
+
+static void __cal_list_ug_update_event_list(cal_list_ug_data *p)
+{
+       c_ret_if(!p);
+
+       p->checked_event_count = 0;
+
+       p->added_event_count = 0;
+
+       _calendar_free_record_list(&p->event_list);
+
+       if (CAL_STRLEN(p->searchtext))
+               __cal_list_ug_update_event_list_with_keyword(p);
+       else
+               __cal_list_ug_get_event_list(p);
+}
+
+static void __cal_list_ug_create_genlist(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!p->box);
+
+       if (p->genlist) {
+
+               elm_genlist_clear(p->genlist);
+
+               return;
+       }
+
+       Evas_Object *genlist = elm_genlist_add(p->box);
+       c_ret_if(!genlist);
+
+       if (p->ugd->selection_mode == SELECTION_MODE_SINGLE)
+               itc.decorate_all_item_style = NULL;
+       else
+               elm_genlist_decorate_mode_set(genlist, EINA_TRUE);
+
+       evas_object_data_set(genlist, "priv", p);
+       elm_genlist_scroller_policy_set(genlist, ELM_SCROLLER_POLICY_OFF,ELM_SCROLLER_POLICY_OFF);
+       elm_genlist_block_count_set(genlist, 20);
+       elm_genlist_homogeneous_set(genlist, EINA_TRUE);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(genlist);
+       elm_box_pack_end(p->box, genlist);
+
+       p->genlist = genlist;
+}
+
+static void __cal_list_ug_create_no_contents(cal_list_ug_data *p)
+{
+       CAL_FN_START;
+
+       c_ret_if(!p);
+       c_ret_if(!p->ly);
+
+       p->no_contents = cal_util_add_nocontents(p->ly, C_("IDS_CLD_BODY_NO_EVENTS"));
+       c_ret_if(!p->no_contents);
+
+       elm_object_part_content_set(p->ly, "sw", p->no_contents);
+
+       evas_object_show(p->no_contents);
+}
+
+static void __cal_list_ug_update_callback(const char* view_uri, void *data)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+       cal_list_ug_data *p = data;
+
+       __cal_list_ug_delete_idler(p);
+
+       __cal_list_ug_update_event_list(p);
+
+       if (p->event_list && eina_list_count(p->event_list)) {
+
+               __cal_list_ug_delete_no_contents(p);
+
+               __cal_list_ug_create_searchbar(p);
+
+               __cal_list_ug_create_box(p);
+
+               __cal_list_ug_create_genlist(p);
+
+               __cal_list_ug_add_event_to_genlist(p);
+
+               __cal_list_ug_add_idler(p);
+
+       } else {
+
+               p->searchbar = NULL;
+
+               p->box = NULL;
+
+               p->genlist = NULL;
+
+               __cal_list_ug_create_no_contents(p);
+
+               elm_object_disabled_set(p->bt, EINA_TRUE);
+
+       }
+}
+
+static Evas_Object* __cal_list_ug_create_layout(Evas_Object *parent, struct ug_data *ugd)
+{
+       CAL_FN_START;
+
+       c_retvm_if(!parent, NULL, "parent is null");
+       c_retvm_if(!ugd, NULL, "ugd is null");
+
+       cal_list_ug_data *p = calloc(1, sizeof(cal_list_ug_data));
+       c_retvm_if(!p, NULL, "p is null");
+
+       p->name = _name;
+       p->ugd = ugd;
+       p->parent = parent;
+
+       Evas_Object *ly = cal_util_add_layout(parent, p->name);
+       if (!ly)
+       {
+               ERR("cal_util_add_layout returned null");
+               free(p);
+               return NULL;
+       }
+       p->ly = ly;
+       evas_object_data_set(ly, "priv", p);
+
+       p->bg = cal_util_add_bg(ly,EINA_FALSE);
+       if (!p->bg) {
+               ERR("cal_util_add_bg returned null");
+               evas_object_del(ly);
+               free(p);
+               ERR("bg is null");
+               return NULL;
+       }
+       elm_object_part_content_set(ly, "base", p->bg);
+
+       __cal_list_ug_update_callback(_calendar_event._uri, p);
+
+       evas_object_show(ly);
+       evas_object_event_callback_add(ly, EVAS_CALLBACK_DEL, __cal_list_ug_delete_layout, p);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+       error = calendar_db_add_changed_cb(_calendar_event._uri, __cal_list_ug_update_callback, p);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_add_changed_cb() is failed(%x)", error);
+
+       return ly;
+}
+
+static void __cal_list_ug_get_message_content(calendar_record_h record, char *body , int nsize)
+{
+       c_ret_if(!record);
+       c_ret_if(!body);
+
+       char *title = _calendar_get_summary(record);
+
+       strncat(body, title, nsize - CAL_STRLEN(body));
+       strncat(body, "\n", nsize - CAL_STRLEN(body));
+
+       char *location = _calendar_get_location(record);
+
+       if (CAL_STRLEN(location)) {
+               strncat(body, location, nsize - CAL_STRLEN(body));
+               strncat(body, "\n", nsize - CAL_STRLEN(body));
+       }
+
+       char text[64] = {0};
+
+       const char *time_format = NULL;
+       if (is_hour24)
+               time_format = CAL_UTIL_TIME_FORMAT_6;
+       else
+               time_format = CAL_UTIL_TIME_FORMAT_1;
+
+       struct tm tm_start, tm_end;
+       calendar_time_s start_time = {0};
+       calendar_time_s end_time = {0};
+       _calendar_get_start_time(record, &start_time);
+       _calendar_get_end_time(record, &end_time);
+
+       if (_calendar_is_allday_record(record)) {
+               long long int lli_time = time(NULL);
+
+               cal_util_convert_lli_to_tm(NULL, lli_time, &tm_start);
+
+               tm_end = tm_start;
+
+               tm_start.tm_year = start_time.time.date.year - 1900;
+               tm_start.tm_mon = start_time.time.date.month - 1;
+               tm_start.tm_mday = start_time.time.date.mday;
+
+               tm_end.tm_year = end_time.time.date.year - 1900;
+               tm_end.tm_mon = end_time.time.date.month - 1;
+               tm_end.tm_mday = end_time.time.date.mday;
+
+               if (tm_start.tm_year == tm_end.tm_year
+                       && tm_start.tm_mon == tm_end.tm_mon
+                       && tm_start.tm_mday == tm_end.tm_mday) {
+                       cal_util_get_time_text(text, sizeof(text), CAL_UTIL_DATE_FORMAT_1, NULL, &tm_start);
+                       strncat(body, text, nsize - CAL_STRLEN(body));
+               } else {
+                       cal_util_get_time_text(text, sizeof(text), CAL_UTIL_DATE_FORMAT_1, NULL, &tm_start);
+                       strncat(body, text, nsize - CAL_STRLEN(body));
+
+                       strncat(body, " ~ ", nsize - CAL_STRLEN(body));
+
+                       cal_util_get_time_text(text, sizeof(text), CAL_UTIL_DATE_FORMAT_1, NULL, &tm_end);
+                       strncat(body, text, nsize - CAL_STRLEN(body));
+               }
+
+       } else {
+
+               cal_util_convert_lli_to_tm(NULL, start_time.time.utime, &tm_start);
+               cal_util_convert_lli_to_tm(NULL, end_time.time.utime, &tm_end);
+
+               cal_util_get_time_text(text, sizeof(text), CAL_UTIL_DATE_FORMAT_1, time_format, &tm_start);
+               strncat(body, text, nsize - CAL_STRLEN(body));
+
+               strncat(body, " ~ " , nsize - CAL_STRLEN(body));
+
+               cal_util_get_time_text(text, sizeof(text), CAL_UTIL_DATE_FORMAT_1, time_format, &tm_end);
+               strncat(body, text, nsize - CAL_STRLEN(body));
+       }
+
+       free(title);
+       CAL_FREE(location);
+}
+
+
+static void __cal_list_ug_add_bundle_event_content(service_h service, int record_index, int result_index)
+{
+       c_ret_if(!service);
+       c_ret_if(record_index <= 0);
+
+       char key[16] = {0};
+       char value[1024*5] = {0};
+
+       calendar_record_h record = NULL;
+
+       record = _calendar_get_record_with_index(record_index);
+       c_ret_if(!record);
+
+       __cal_list_ug_get_message_content(record, value, sizeof(value));
+
+       snprintf(key, sizeof(key), "text%d", result_index);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_destroy(record, true);
+       c_retm_if(error != CALENDAR_ERROR_NONE, "calendar_record_destroy() is failed(%x)", error);
+
+       int r = service_add_extra_data(service, key, value);
+       c_ret_if(r != SERVICE_ERROR_NONE);
+}
+
+static void __cal_list_ug_add_bundle_vcs(service_h service, int record_index, int result_index)
+{
+       c_ret_if(!service);
+       c_ret_if(record_index <= 0);
+
+       calendar_record_h record = NULL;
+
+       record = _calendar_get_record_with_index(record_index);
+       c_ret_if(!record);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_list_h list = NULL;
+
+       error = calendar_list_create(&list);
+       if (error != CALENDAR_ERROR_NONE) {
+               ERR("calendar_list_create() is failed(%x)", error);
+
+               calendar_record_destroy(record, true);
+
+               return;
+       }
+
+       error = calendar_list_add(list, record);
+       if (error != CALENDAR_ERROR_NONE) {
+               ERR("calendar_list_add() is failed(%x)", error);
+
+               calendar_list_destroy(list, false);
+
+               calendar_record_destroy(record, true);
+
+               return;
+       }
+
+       char *vcs_data = NULL;
+
+       error = calendar_vcalendar_make_from_records(list, &vcs_data);
+       if (error != CALENDAR_ERROR_NONE) {
+               ERR("calendar_vcalendar_make_from_records() is failed(%x)", error);
+
+               calendar_list_destroy(list, true);
+
+               return;
+       }
+
+       if (!CAL_STRLEN(vcs_data)) {
+               ERR("vcs_data is empty");
+
+               calendar_list_destroy(list, true);
+
+               return;
+       }
+
+       char key[128] = {0};
+       char value[FILENAME_MAX] = {0};
+
+       snprintf(key, sizeof(key), "vfile%d", result_index);
+       snprintf(value, sizeof(value), "%s/Calendar_%d.vcs", VFILE_PATH, record_index);
+
+       int fd = open(value, O_WRONLY|O_CREAT|O_TRUNC, 0644);
+       if (fd < 0) {
+               ERR("open() is failed.");
+
+               calendar_list_destroy(list, true);
+
+               CAL_FREE(vcs_data);
+
+               return;
+       }
+
+       int r = write(fd, vcs_data, strlen(vcs_data));
+       if (r == -1) {
+               ERR("write() is failed.");
+       } else
+               cal_util_update_media_db(value);
+
+       free(vcs_data);
+
+       fsync(fd);
+       close(fd);
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)");
+
+       r = service_add_extra_data(service, key, value);
+       c_ret_if(r != SERVICE_ERROR_NONE);
+}
+
+static void __cal_list_ug_add_bundle(service_h service, GList *record_index_list, struct ug_data *ugd)
+{
+       c_ret_if(!service);
+       c_ret_if(!record_index_list);
+       c_ret_if(!ugd);
+
+       record_index_list = g_list_first(record_index_list);
+
+       int result_index = 0;
+
+       while (record_index_list && record_index_list->data) {
+
+               int record_index = (int)record_index_list->data;
+
+               switch (ugd->mode) {
+               case _MODE_GET_EVT:
+                       __cal_list_ug_add_bundle_event_content(service, record_index, ++result_index);
+                       break;
+               case _MODE_GET_VCS:
+                       __cal_list_ug_add_bundle_vcs(service, record_index, ++result_index);
+                       break;
+               default:
+                       // do nothing
+                       break;
+               }
+
+               record_index_list = g_list_next(record_index_list);
+       }
+}
+
+static service_h __cal_list_ug_make_bundle(cal_list_ug_data *p, struct ug_data *ugd)
+{
+       c_retv_if(!p, NULL);
+       c_retv_if(!ugd, NULL);
+
+       char buf[32] = {'\0'};
+
+       service_h service;
+       int r = service_create(&service);
+       c_retv_if(r != SERVICE_ERROR_NONE, NULL);
+
+       Elm_Object_Item* item = elm_genlist_first_item_get(p->genlist);
+       if (!item) {
+               ERR("item is null");
+               service_destroy(service);
+               return NULL;
+       }
+
+       GList *record_index_list = NULL;
+
+       while (item) {
+
+               cal_list_ug_item_data* item_data = elm_object_item_data_get(item);
+               if(!item_data)
+               {
+                       ERR("elm_object_item_data_get() is failed!");
+                       service_destroy(service);
+                       return NULL;
+               }
+
+               if (item_data->checked)
+                       record_index_list = g_list_append(record_index_list, (void *)_calendar_get_record_index(item_data->record));
+
+               item = elm_genlist_item_next_get(item);
+       }
+
+       int count = 0;
+
+       if (record_index_list) {
+               __cal_list_ug_add_bundle(service, record_index_list, ugd);
+
+               count = g_list_length(record_index_list);
+
+               g_list_free(record_index_list);
+       }
+
+       snprintf(buf, sizeof(buf), "%d", count);
+
+       r = service_add_extra_data(service, "count", buf);
+       if(r != SERVICE_ERROR_NONE)
+       {
+               ERR("service_add_extra_data_array() is failed(%d)", r);
+               service_destroy(service);
+               return NULL;
+       }
+
+       char **value = calloc(count, sizeof(char *));
+       if(!value)      {
+               ERR("value is NULL!");
+               service_destroy(service);
+               return NULL;
+       }
+
+       int i = 0;
+       char key[32] = {0};
+
+       for (i = 0; i < count; i++) {
+               snprintf(key, sizeof(key), "vfile%d", i + 1);
+               service_get_extra_data(service, key, &value[i]);
+       }
+
+       r = service_add_extra_data_array(service, CAL_APPCONTROL_PATH, (const char **)value, count);
+       if(r != SERVICE_ERROR_NONE)
+       {
+               ERR("service_add_extra_data_array() is failed(%d)", r);
+               free(value);
+               service_destroy(service);
+               return NULL;
+       }
+
+       if (ugd->item_type == ITEM_TYPE_EVENT)
+               r = service_add_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, CAL_APPCONTROL_ITEM_TYPE_EVENT);
+       else
+               r = service_add_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, CAL_APPCONTROL_ITEM_TYPE_TODO);
+
+       c_warn_if(r != SERVICE_ERROR_NONE, "service_add_extra_data() is failed(%d)", r);
+
+       r = service_add_extra_data(service, "result", "success");
+       c_warn_if(r != SERVICE_ERROR_NONE, "service_add_extra_data() is failed(%d)", r);
+
+       if(value)
+               free(value);
+
+       return service;
+}
+
+static void __cal_list_ug_attach(void *data, Evas_Object *obj, void *ei)
+{
+       c_retm_if(!data, "data is null");
+
+       Evas_Object *ly = data;
+       cal_list_ug_data *p;
+       struct ug_data *ugd;
+       service_h service = NULL;
+
+       p = CAL_UTIL_GET_PRIV_DATA(ly);
+       c_retm_if(!p, "p is null");
+
+       ugd = p->ugd;
+       c_retm_if(!ugd, "ugd is null");
+
+       cal_util_hide_small_information(p->ly);
+
+       switch (ugd->mode) {
+       case _MODE_GET_EVT:
+       case _MODE_GET_VCS:
+               service = __cal_list_ug_make_bundle(p, ugd);
+               c_ret_if(!service);
+               break;
+       default:
+               break;
+       }
+
+       if (service) {
+
+               ug_send_result(ugd->ug, service);
+               service_destroy(service);
+       }
+
+       ug_destroy_me(ugd->ug);
+}
+
+static void __cal_list_ug_add_controlbar( struct ug_data *ugd, Evas_Object *ly, const char* title)
+{
+       Elm_Object_Item* navi_item = NULL;
+
+       cal_list_ug_data* p = evas_object_data_get(ly,"priv");
+       c_retm_if(!p, "p is null");
+
+       navi_item = elm_naviframe_item_push(ugd->naviframe, title, NULL, NULL, ly, NULL);
+       if (!navi_item)
+       {
+               ERR("elm_naviframe_item_push returned null");
+               return;
+       }
+
+       if (ugd->selection_mode == SELECTION_MODE_MULTIPLE) {
+               Evas_Object * attach_button = cal_util_add_toolbar_button(ugd->naviframe, "toolbar_button1", S_("IDS_COM_POP_ATTACH"), __cal_list_ug_attach, ly);
+               c_retm_if(!attach_button, "elm_toolbar_item_append returned null");
+
+               p->bt = attach_button;
+
+               elm_object_disabled_set(p->bt, EINA_TRUE);
+       }
+}
+
+void cal_list_ug_create(const char *title, struct ug_data *ugd)
+{
+       Evas_Object *ly = __cal_list_ug_create_layout(ugd->naviframe, ugd);
+       if (!ly)
+               return;
+
+       ugd->cont = ly;
+
+       __cal_list_ug_add_controlbar(ugd, ly, title);
+}
+
+static void __cal_list_ug_searchbar_entry_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       cal_list_ug_data *p = data;
+       c_ret_if(!p);
+
+       p->searchtext = elm_object_text_get(elm_object_part_content_get(p->searchbar, "elm.swallow.content"));
+
+// TODO: Show search result
+       __cal_list_ug_update_callback(_calendar_event._uri, p);
+
+       if (0 < p->checked_event_count)
+               elm_object_disabled_set(p->bt, EINA_FALSE);
+       else
+               elm_object_disabled_set(p->bt, EINA_TRUE);
+
+       __cal_list_ug_update_selection_info(p);
+}
+
+static void __cal_list_ug_cancel_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       CAL_FN_START;
+
+       c_retm_if(!data, "data is null");
+       cal_list_ug_data *p = data;
+       Eina_List *l = NULL;
+       cal_list_ug_item_data *item =NULL;
+
+       Evas_Object *en = elm_object_part_content_get(p->searchbar, "elm.swallow.content");
+       c_retm_if(!en, "elm_object_part_content_get returned null");
+
+       Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(en);
+       c_retm_if(!imf_context, "elm_entry_imf_context_get returned null");
+
+       if (imf_context)
+               ecore_imf_context_input_panel_hide(imf_context);
+
+       if (0 < p->checked_event_count)
+               elm_object_disabled_set(p->bt, EINA_FALSE);
+       else
+               elm_object_disabled_set(p->bt, EINA_TRUE);
+
+       p->checked_event_count = 0;
+
+       EINA_LIST_FOREACH(p->event_list, l, item) {
+               if (item != NULL && item->checked) {
+                       p->checked_event_count++;
+               }
+       }
+
+       __cal_list_ug_update_selection_info(p);
+}
+
+static void __cal_list_ug_searchbar_entry_unfocused_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null.");
+       cal_list_ug_data *p = data;
+
+       if (p->checked_event_count <= 0) {
+               elm_object_disabled_set(p->bt, EINA_TRUE);
+       } else {
+               elm_object_disabled_set(p->bt, EINA_FALSE);
+       }
+
+       __cal_list_ug_update_selection_info(p);
+}
+
+static void __cal_list_ug_searchbar_clicked_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null.");
+       cal_list_ug_data *p = data;
+
+       elm_object_disabled_set(p->bt, EINA_TRUE);
+}
diff --git a/ug/list/ug.c b/ug/list/ug.c
new file mode 100755 (executable)
index 0000000..02ae2ba
--- /dev/null
@@ -0,0 +1,381 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <libintl.h>
+#include <vconf.h>
+
+#include "cld.h"
+#include "ug.h"
+
+// TODO: get full path from caller
+#define VFILE_PATH "/opt/usr/media/Others"
+
+static char* __cal_ug_get_caller(service_h b, const char *key)
+{
+       char *v;
+
+       int r = service_get_extra_data(b, key, &v);
+       c_retv_if(r != SERVICE_ERROR_NONE, NULL);
+
+       if (!v || v[0] == '\0')
+               return strdup("Unknown");
+
+       return v;
+}
+
+static char* __cal_ug_get_file_name(service_h b, const char *key)
+{
+       char *v;
+       char path[FILENAME_MAX];
+
+       int r = service_get_extra_data(b, key, &v);
+       c_retv_if(r != SERVICE_ERROR_NONE, NULL);
+
+       // TODO: check full path or not
+
+       snprintf(path, sizeof(path), "%s/%s", VFILE_PATH, v);
+
+       free(v);
+
+       r = access(path, R_OK);
+       if (r == -1)
+       {
+               ERR("UG: Access failed: %s", path);
+               return NULL;
+       }
+
+       return strdup(path);
+}
+
+static char* __cal_ug_get_file_path(service_h b, const char *key)
+{
+       char *path = NULL;
+
+       int r = service_get_extra_data(b, key, &path);
+       c_retv_if(r != SERVICE_ERROR_NONE, NULL);
+
+       r = access(path, R_OK);
+       if (r == -1)
+       {
+               ERR("UG: Access failed: %s", path);
+               CAL_FREE(path);
+               return NULL;
+       }
+
+       return path;
+}
+
+static enum cld_ug_mode __cal_ug_get_mode(service_h service, const char *key)
+{
+       c_retv_if(!service, _MODE_UNKNOWN);
+       c_retv_if(!key, _MODE_UNKNOWN);
+
+       char *value = NULL;
+
+       int r = service_get_extra_data(service, key, &value);
+       c_retvm_if(r != SERVICE_ERROR_NONE, _MODE_GET_VCS, "%d", r);
+
+       enum cld_ug_mode ret;
+
+       if (!CAL_STRCMP(value, "text"))
+               ret =  _MODE_GET_EVT;
+       else if (!CAL_STRCMP(value, "view"))
+               ret =  _MODE_VIEW_VCS;
+
+       else
+               ret =  _MODE_GET_VCS;
+       free(value);
+
+       return ret;
+}
+
+static inline int __cal_ug_set_ug_data(struct ug_data *ugd, service_h service)
+{
+       c_retv_if(!service, -1);
+       int val;
+
+       ugd->mode = __cal_ug_get_mode(service, "mode");
+
+       char *selection_mode = NULL;
+       char *item_type = NULL;
+
+       service_get_extra_data(service, CAL_APPCONTROL_SELECTION_MODE, &selection_mode);
+
+       if (!CAL_STRCMP(selection_mode, CAL_APPCONTROL_SELECTION_MODE_SINGLE))
+               ugd->selection_mode = SELECTION_MODE_SINGLE;
+       else
+               ugd->selection_mode = SELECTION_MODE_MULTIPLE;
+
+       service_get_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, &item_type);
+
+       if (!CAL_STRCMP(item_type, CAL_APPCONTROL_ITEM_TYPE_TODO))
+               ugd->item_type = ITEM_TYPE_TODO;
+       else
+               ugd->item_type = ITEM_TYPE_EVENT;
+
+       int r = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &val);
+       if (r < 0)
+               is_hour24 = 0;
+       else if( val == 1 || val == 2)
+               is_hour24 = val -1;
+       else
+               ERR("vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &val); error");
+
+       switch (ugd->mode) {
+       case _MODE_GET_VCS:
+               ugd->caller = __cal_ug_get_caller(service, "caller");
+               break;
+       case _MODE_VIEW_VCS:
+               ugd->vcs_file = __cal_ug_get_file_name(service, "file");
+               if (!ugd->vcs_file)
+               {
+                       ERR("UG: Invalid filename");
+                       return -1;
+               }
+               break;
+       default:
+               // do nothing
+               break;
+       }
+
+       if (selection_mode)
+               free(selection_mode);
+
+       if (item_type)
+               free(item_type);
+
+       return 0;
+}
+
+static void __cal_ug_back_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       c_ret_if(!data);
+
+       struct ug_data *ugd = data;
+
+       c_ret_if(!ugd->ug);
+
+       service_h service;
+
+       service_create(&service);
+
+       service_add_extra_data(service, CAL_APPCONTROL_RESULT, CAL_APPCONTROL_RESULT_CANCEL);
+
+       if (ugd->item_type == ITEM_TYPE_EVENT)
+               service_add_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, CAL_APPCONTROL_ITEM_TYPE_EVENT);
+       else
+               service_add_extra_data(service, CAL_APPCONTROL_ITEM_TYPE, CAL_APPCONTROL_ITEM_TYPE_TODO);
+
+       ug_send_result(ugd->ug, service);
+
+       service_destroy(service);
+
+       ug_destroy_me(ugd->ug);
+}
+
+static void __cal_ug_add_back_button(struct ug_data *ugd)
+{
+       Evas_Object *bt;
+
+       bt = elm_button_add(ugd->naviframe);
+       if (!bt)
+               return;
+
+       elm_object_style_set(bt, "naviframe/back_btn/default");
+       // TODO: i18n
+       elm_object_text_set(bt, "Back");
+       evas_object_show(bt);
+
+       Elm_Object_Item* navi_item = elm_naviframe_top_item_get(ugd->naviframe);
+
+       elm_object_item_part_content_set(navi_item, "prev_btn", bt);
+
+       evas_object_smart_callback_add(bt, "clicked", __cal_ug_back_button_callback, ugd);
+}
+
+extern         void cal_vcs_viewer_ug_create(struct ug_data *ugd);
+
+static Evas_Object *__cal_ug_create(Evas_Object *parent, struct ug_data *ugd)
+{
+       CAL_FN_START;
+
+       ugd->base = cal_util_add_layout(parent, NULL);
+       CAL_ASSERT(ugd->base);
+
+       ugd->naviframe = elm_naviframe_add(parent);
+       CAL_ASSERT(ugd->naviframe);
+
+       ugd->bg = cal_util_add_bg(ugd->base, EINA_FALSE);
+       CAL_ASSERT(ugd->bg);
+
+       elm_object_theme_set(ugd->naviframe, ugd->theme);
+       elm_object_part_content_set(ugd->base, "elm.swallow.content", ugd->naviframe);
+       elm_object_part_content_set(ugd->base, "elm.swallow.bg", ugd->bg);
+
+       switch (ugd->mode) {
+       case _MODE_GET_EVT:
+       case _MODE_GET_VCS:
+
+               cal_list_ug_create(S_("IDS_COM_BODY_CALENDAR"), ugd);
+               break;
+       case _MODE_VIEW_VCS:
+               cal_vcs_viewer_ug_create(ugd);
+               break;
+       default:
+               // do nothing
+               break;
+       }
+
+       if (!ugd->cont) {
+               evas_object_del(ugd->base);
+               return NULL;
+       }
+
+       __cal_ug_add_back_button(ugd);
+
+       return ugd->base;
+}
+
+static void __cal_ug_free_data(struct ug_data *ugd)
+{
+       free(ugd->caller);
+
+       free(ugd->vcs_file);
+}
+
+static void *__cal_ug_create_callback(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv)
+{
+       CAL_FN_START;
+
+       c_retv_if(!ug, NULL);
+       c_retv_if(!service, NULL);
+       c_retv_if(!priv, NULL);
+
+       struct ug_data *ugd;
+       int r = 0;
+       Evas_Object *base;
+
+       ugd = priv;
+       ugd->ug = ug;
+
+       cal_util_connect_pattern_generator();
+
+       if (mode != UG_MODE_FULLVIEW)
+               return NULL;
+
+       Evas_Object *parent = ug_get_parent_layout(ug);
+       c_retv_if(!parent, NULL);
+
+       r = __cal_ug_set_ug_data(ugd, service);
+       c_retv_if(r, NULL);
+       calendar_error_e err = CALENDAR_ERROR_NONE;
+       err = calendar_connect();
+       c_warn_if(err != CALENDAR_ERROR_NONE, "calendar_connect is failed(%d)", err);
+
+       _calendar_init_hash();
+
+       if (err != CALENDAR_ERROR_NONE) {
+               ERR("UG: calendar service connect failed");
+               __cal_ug_free_data(ugd);
+               return NULL;
+       }
+
+       base = __cal_ug_create(parent, ugd);
+       if (!base) {
+               calendar_error_e error = CALENDAR_ERROR_NONE;
+
+               error = calendar_disconnect();
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_disconnect() is failed(%x)", error);
+               __cal_ug_free_data(ugd);
+               return NULL;
+       }
+
+       return base;
+}
+
+static void __cal_ug_destroy_callback(ui_gadget_h ug, service_h data, void *priv)
+{
+       struct ug_data *ugd;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = priv;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_disconnect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_disconnect() is failed(%x)", error);
+
+       cal_util_disconnect_pattern_generator();
+
+       __cal_ug_free_data(ugd);
+
+       cal_util_delete_evas_object(&ugd->base);
+}
+
+static void __cal_ug_key_callback(ui_gadget_h ug, enum ug_key_event evt,       service_h data, void *priv)
+{
+       if (!ug)
+               return;
+
+       DBG("UG: key event %d", evt);
+
+       switch (evt)
+       {
+       case UG_KEY_EVENT_END:
+               ug_destroy_me(ug);
+               break;
+       default:
+               break;
+       }
+}
+
+API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       CAL_FN_START;
+
+       struct ug_data *ugd;
+
+       if (!ops)
+               return -1;
+
+       CAL_CALLOC(ugd, 1, struct ug_data);
+
+       ops->create = __cal_ug_create_callback;
+       ops->destroy = __cal_ug_destroy_callback;
+       ops->key_event = __cal_ug_key_callback;
+       ops->priv = ugd;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       const char *path = bindtextdomain(CALENDAR, LOCALEDIR);
+       c_warn_if(!path, "bindtextdomain(%s, %s) is failed.", CALENDAR, LOCALEDIR);
+
+       return 0;
+}
+
+API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       struct ug_data *ugd;
+
+       if (!ops)
+               return;
+
+       ugd = ops->priv;
+       free(ugd);
+}
diff --git a/ug/list/ug.h b/ug/list/ug.h
new file mode 100755 (executable)
index 0000000..6c04303
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_UG_H__
+#define __CALENDAR_UG_H__
+
+#include <ui-gadget-module.h>
+#include "cld.h"
+
+#define CAL_APPCONTROL_SELECTION_MODE "selectionMode"
+#define CAL_APPCONTROL_SELECTION_MODE_SINGLE "single"
+#define CAL_APPCONTROL_SELECTION_MODE_MULTIPLE "multiple"
+
+#define CAL_APPCONTROL_RESULT "result"
+#define CAL_APPCONTROL_RESULT_SUCCESS "success"
+#define CAL_APPCONTROL_RESULT_CANCEL "cancel"
+#define CAL_APPCONTROL_RESULT_FAIL "fail"
+
+#define CAL_APPCONTROL_PATH "path"
+
+enum cld_ug_mode {
+       _MODE_UNKNOWN = 0,
+       _MODE_GET_EVT,
+       _MODE_GET_VCS,
+       _MODE_VIEW_VCS,
+       _MODE_SET_SNOTE,
+};
+
+typedef enum {
+       SELECTION_MODE_UNKNOWN = 0,
+       SELECTION_MODE_SINGLE,
+       SELECTION_MODE_MULTIPLE,
+       SELECTION_MODE_MAX,
+}cal_appcontrol_selection_mode;
+
+struct ug_data {
+       Evas_Object *base;
+       ui_gadget_h ug;
+
+       Evas_Object *naviframe;
+       Evas_Object *cont;
+       Evas_Object *bg;
+
+       enum cld_ug_mode mode;
+       char *caller;
+       char *vcs_file;
+
+       Elm_Theme *theme;
+
+       cal_appcontrol_selection_mode selection_mode;
+       cal_appcontrol_item_type item_type;
+};
+
+void cal_list_ug_create(const char *title, struct ug_data *ugd);
+
+#endif /* __CALENDAR_UG_H__ */
diff --git a/ug/settings/CMakeLists.txt b/ug/settings/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..48f25af
--- /dev/null
@@ -0,0 +1,15 @@
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(UG_SETTINS_SRCS
+               ug-settings.c
+               ug-settings-view.c
+               ug-setting-export.c
+)
+
+ADD_DEFINITIONS("-DUGLOCALE=\"${UG_LOCALE}\"")
+
+ADD_LIBRARY(${UGSETTINGS} SHARED ${UG_SETTINS_SRCS})
+SET_TARGET_PROPERTIES(${UGSETTINGS} PROPERTIES COMPILE_FLAGS "${UG_CFLAGS}")
+TARGET_LINK_LIBRARIES(${UGSETTINGS} ${COMMON_LIB} ${UG_PKGS_LDFLAGS})
+
+INSTALL(TARGETS ${UGSETTINGS} DESTINATION ${UG_LIB})
diff --git a/ug/settings/ug-setting-export.c b/ug/settings/ug-setting-export.c
new file mode 100755 (executable)
index 0000000..50801f5
--- /dev/null
@@ -0,0 +1,685 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <fcntl.h>
+#include <vconf.h>
+
+#include "cld.h"
+#include "acct-svc.h"
+#include "ug-settings.h"
+#include "cld-images.h"
+
+#define CAL_SETTING_EXPORT_ACCOUNT_LABLE_STRING_LENGTH 128
+
+typedef struct {
+       struct ug_data *ugd;
+       Evas_Object *ly;
+       Evas_Object *genlist;
+       Evas_Object *box;
+
+       Evas_Object *select_all_layout;
+       Eina_Bool is_select_all_checked;
+       Evas_Object *select_all_check;
+
+       Eina_List *account_list;
+
+       Evas_Object *export_bt;
+
+       int checked_count;
+} cal_setting_export_data;
+
+typedef struct {
+       Eina_Bool is_checked;
+       Elm_Object_Item *item;
+       calendar_record_h calendar_book;
+       struct _acct *at;
+       Eina_Bool is_group_item;
+} cal_setting_export_item_data;
+
+static char *__cal_setting_get_export_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Evas_Object* __cal_setting_get_export_genlist_icon(void *item_data, Evas_Object *obj, const char *part);
+static void __cal_setting_gl_export_genlist_del(void *data, Evas_Object *obj);
+static char* __cal_setting_get_export_genlist_group_item_label(void *data, Evas_Object *obj, const char *part);
+static void __cal_setting_del_export_genlist_group_item(void *data, Evas_Object *obj);
+static char *__cal_setting_ug_export_account_guide_item_label(void *data, Evas_Object *obj, const char *part);
+static void __cal_setting_del_export_genlist_group_item(void *data, Evas_Object *obj);
+static void __cal_setting_check_changed_callback(void *data, Evas_Object *obj, void *event_info);
+extern void cal_setting_export_calendar_myfile_ug(struct ug_data *ugd);
+
+static Elm_Genlist_Item_Class itc_1text_2icon_2 = {
+       .item_style = "dialogue/1text.3icon.2",
+       .func.text_get = __cal_setting_get_export_genlist_item_label,
+       .func.content_get = __cal_setting_get_export_genlist_icon,
+       .func.del = __cal_setting_gl_export_genlist_del,
+};
+
+static Elm_Genlist_Item_Class it_group = {
+       .item_style = "grouptitle",
+       .func.text_get = __cal_setting_get_export_genlist_group_item_label,
+       .func.del = __cal_setting_del_export_genlist_group_item,
+};
+
+static Elm_Genlist_Item_Class itc_export_account_guide = {
+       .item_style = "multiline/1text",
+       .func.text_get = __cal_setting_ug_export_account_guide_item_label,
+       .func.content_get = NULL,
+       .func.state_get = NULL,
+       .func.del = __cal_setting_del_export_genlist_group_item,
+};
+
+static struct _acct def_at = { _CALENDAR_LOCAL_ACCOUNT_ID, "Local account", CAL_IMAGES_PHONE, NULL, NULL, };
+
+static void __cal_setting_export_update_small_info(cal_setting_export_data *data)
+{
+       c_ret_if(!data);
+
+       cal_setting_export_data *p = data;
+
+       if (!p->checked_count) {
+               cal_util_hide_small_information(p->ly);
+               return;
+       }
+
+       char lable_str[128] = { '\0'};
+
+       snprintf(lable_str, sizeof(lable_str), "%s (%d)", S_("IDS_COM_POP_SELECTED"), p->checked_count);
+
+       cal_util_show_small_information(p->ly, lable_str, 0.0);
+}
+
+static Evas_Object* __cal_setting_get_export_genlist_icon(void *item_data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!item_data, NULL);
+       c_retv_if(!obj, NULL);
+
+       cal_setting_export_item_data *export_item_data = item_data;
+       Evas_Object *icon = NULL;
+       char* icon_path = NULL;
+
+       calendar_record_h calendar_book = export_item_data->calendar_book;
+       c_retvm_if(!calendar_book, NULL, "calendar_book is NULL");
+
+       Eina_Bool r = EINA_FALSE;
+       int cid = 0;
+       int aid = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_get_int(calendar_book, _calendar_book.id, &cid);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       error = calendar_record_get_int(calendar_book, _calendar_book.account_id, &aid);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+       if (!CAL_STRCMP(part, "elm.icon.1")) {
+
+               icon = elm_check_add(obj);
+               c_retvm_if(icon == NULL, NULL, "elm_check_add returned null");
+
+               evas_object_data_set(icon, "item_data", export_item_data);
+
+               elm_check_state_pointer_set(icon, &export_item_data->is_checked);
+               evas_object_propagate_events_set(icon, EINA_FALSE);
+
+               evas_object_smart_callback_add(icon, "changed", __cal_setting_check_changed_callback, obj);
+       }
+
+       if (!CAL_STRCMP(part, "elm.icon.2")) {
+               icon = elm_icon_add(obj);
+
+               c_retvm_if(!icon, NULL, "elm_icon_add fail");
+
+               if ( aid == _CALENDAR_LOCAL_ACCOUNT_ID) {
+                       r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_PHONE);
+               } else {
+                       icon_path = cal_account_svc_get_account_icon_path(aid);
+                       if(icon_path) {
+                               r = elm_icon_file_set(icon, icon_path, NULL);
+                               free(icon_path);
+                       }
+               }
+
+               if (!r) {
+                       ERR("the return value of elm_icon_file_set is %d", r);
+                       evas_object_del(icon);
+                       icon = NULL;
+               } else {
+                       evas_object_show(icon);
+               }
+       }
+
+       return icon;
+}
+
+static char* __cal_setting_get_export_genlist_group_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+
+       cal_setting_export_item_data *item_data = data;
+
+       if (!CAL_STRCMP(part, "elm.text")) {
+               struct _acct *at = item_data->at;
+
+               if (at->id == _CALENDAR_LOCAL_ACCOUNT_ID)
+                       return strdup(C_("IDS_CLD_POP_MY_PHONE"));
+
+               return CAL_STRDUP(at->name);
+       }
+
+       return NULL;
+}
+
+static char *__cal_setting_get_export_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!part, NULL, "part is null");
+
+       cal_setting_export_item_data *item_data = data;
+
+       calendar_record_h calendar_book = item_data->calendar_book;
+       c_retvm_if(!calendar_book, NULL, "calendar_book is null");
+
+       char *name = NULL;
+       int cid = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (!CAL_STRCMP(part,"elm.text")) {
+               if (!calendar_book) {
+                       ERR("calendar_book is null");
+                       return strdup(C_("IDS_CLD_OPT_PHONE_CALENDAR"));
+               }
+
+               error = calendar_record_get_int(calendar_book, _calendar_book.id, &cid);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (cid == DEFAULT_EVENT_CALENDAR_BOOK_ID)
+                       return strdup(C_("IDS_CLD_BODY_MY_CALENDAR"));
+               else if (cid == DEFAULT_TODO_CALENDAR_BOOK_ID)
+                       return strdup(C_("IDS_TASK_BODY_MY_TASK"));
+               else if (cid == DEFAULT_BIRTHDAY_CALENDAR_BOOK_ID)
+                       return strdup(C_("IDS_CLD_MBODY_CONTACTS_BIRTHDAY"));
+
+               error = calendar_record_get_str(calendar_book, _calendar_book.name, &name);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is failed(%x)", error);
+
+               if (CAL_STRLEN(name))
+                       return name;
+               else
+                       CAL_FREE(name);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+       }
+
+       return NULL;
+}
+
+static void __cal_setting_del_export_genlist_group_item(void *data, Evas_Object *obj)
+{
+       c_retm_if(!data, "data is null.");
+
+       cal_setting_export_item_data *data_item = data;
+
+       free(data_item);
+}
+
+static void __cal_setting_export_update_select_all(Evas_Object *genlist)
+{
+       c_retm_if(!genlist, "genlist is null");
+
+       cal_setting_export_data *p = CAL_UTIL_GET_PRIV_DATA(genlist);
+       c_ret_if(!p);
+
+       Elm_Object_Item *item = elm_genlist_first_item_get(genlist);
+
+       p->is_select_all_checked = EINA_TRUE;
+
+       while (item) {
+               cal_setting_export_item_data *item_data = elm_object_item_data_get(item);
+               c_ret_if(!item_data);
+
+               if (item_data->is_group_item) {
+                       item = elm_genlist_item_next_get(item);
+                       continue;
+               }
+
+               if (!item_data->is_checked) {
+                       p->is_select_all_checked = EINA_FALSE;
+                       break;
+               }
+
+               item = elm_genlist_item_next_get(item);
+       }
+
+       elm_check_state_set(p->select_all_check, p->is_select_all_checked);
+}
+
+static void __cal_setting_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_setting_export_data *p = evas_object_data_get(data, "priv");
+       c_ret_if(!p);
+
+       cal_setting_export_item_data *item_data = evas_object_data_get(obj, "item_data");
+       c_ret_if(!item_data);
+
+       item_data->is_checked = elm_check_state_get(obj);
+
+       if (item_data->is_checked) {
+               p->checked_count++;
+       } else {
+               p->checked_count--;
+       }
+
+       if (0 < p->checked_count) {
+               elm_object_disabled_set(p->export_bt, EINA_FALSE);
+       } else {
+               elm_object_disabled_set(p->export_bt, EINA_TRUE);
+       }
+
+       __cal_setting_export_update_select_all(data);
+
+       __cal_setting_export_update_small_info(p);
+}
+
+static void __cal_setting_gl_export_genlist_del(void *data, Evas_Object *obj)
+{
+       c_retm_if(!data, "data is NULL");
+       cal_setting_export_item_data *info = data;
+
+       free(info);
+}
+
+static char *__cal_setting_ug_export_account_guide_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       return strdup(C_("IDS_CLD_BODY_EXPORT_S_PLANNER_DATA_FROM_YOUR_PHONE"));
+}
+
+static void __cal_setting_export_popup_list_sel(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       cal_setting_export_item_data *item_data = data;
+
+       cal_setting_export_data *p = CAL_UTIL_GET_PRIV_DATA(obj);
+       c_ret_if(!p);
+
+       Elm_Object_Item *item = elm_genlist_selected_item_get(obj);
+       c_retm_if(!item, "elm_genlist_selected_item_get() returned null");
+
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       item_data->is_checked = !item_data->is_checked;
+       if (item_data->is_checked) {
+               p->checked_count++;
+       } else {
+               p->checked_count--;
+       }
+       if (item_data->item)
+               elm_genlist_item_update(item_data->item);
+
+       __cal_setting_export_update_select_all(obj);
+
+       if (p->checked_count) {
+               elm_object_disabled_set(p->export_bt, EINA_FALSE);
+       } else {
+               elm_object_disabled_set(p->export_bt, EINA_TRUE);
+       }
+
+       __cal_setting_export_update_small_info(p);
+
+}
+
+static void __cal_setting_select_all(cal_setting_export_data *data)
+{
+       c_ret_if(!data);
+
+       cal_setting_export_data *p = data;
+       Elm_Object_Item *item;
+       cal_setting_export_item_data *item_data;
+
+       p->checked_count = 0;
+
+       item = elm_genlist_first_item_get(p->genlist);
+       while (item) {
+               item_data = elm_object_item_data_get(item);
+               if (item_data->is_group_item) {
+                       item = elm_genlist_item_next_get(item);
+                       continue;
+               }
+
+               item_data->is_checked = p->is_select_all_checked;
+               if (item_data->is_checked) {
+                       p->checked_count++;
+               } else {
+                       p->checked_count = 0;
+               }
+               item = elm_genlist_item_next_get(item);
+       }
+       elm_genlist_realized_items_update(p->genlist);
+
+       if (0 < p->checked_count) {
+               elm_object_disabled_set(p->export_bt, EINA_FALSE);
+       } else {
+               elm_object_disabled_set(p->export_bt, EINA_TRUE);
+       }
+
+       __cal_setting_export_update_small_info(p);
+}
+
+static void __cal_setting_select_all_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+       c_ret_if(!obj);
+
+       int x, y, w, h;
+       cal_setting_export_data *p = data;
+       Evas_Event_Mouse_Up *ev = event_info;
+
+       if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
+               return;
+
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+       if (ev->output.y < y || y + h < ev->output.y)
+               return;
+
+       p->is_select_all_checked = !p->is_select_all_checked;
+       elm_check_state_set(p->select_all_check, p->is_select_all_checked);
+       __cal_setting_select_all(p);
+       __cal_setting_export_update_small_info(p);
+}
+
+static void __cal_setting_select_all_check_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       c_ret_if(!data);
+
+       __cal_setting_select_all(data);
+}
+
+static void __cal_setting_export_clear_list(cal_setting_export_data *p)
+{
+       c_ret_if(!p);
+
+       struct _acct *at = eina_list_data_get(p->account_list);
+       if (at && at->data) {
+               _calendar_free_record_list((Eina_List **)&at->data);
+               at->data = NULL;
+       }
+
+       Eina_List *list = eina_list_next(p->account_list);
+       if (list) {
+
+               Eina_List *l = NULL;
+               at = NULL;
+               EINA_LIST_FOREACH(list, l, at) {
+                       if (at && at->data)
+                               _calendar_free_record_list((Eina_List **)&at->data);
+               }
+
+               cal_account_svc_free_account_list(&list);
+               p->account_list = list;
+       }
+
+       p->checked_count = 0;
+}
+
+static void __cal_setting_export_layout_delete_callback(void *data, Evas *e, Evas_Object *obj, void *ei)
+{
+       cal_setting_export_data *p = data;
+       c_ret_if(!p);
+
+       __cal_setting_export_clear_list(p);
+
+       free(p);
+}
+static void __cal_setting_export_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       cal_setting_export_data *p = data;
+       c_ret_if(!p->ugd);
+
+       Evas_Object *genlist = p->genlist;
+       c_retm_if(!genlist, "genlist is null");
+
+       Elm_Object_Item *item = NULL;
+       cal_setting_export_item_data *export_item_data = NULL;
+       item = elm_genlist_first_item_get(genlist);
+       while (item) {
+               export_item_data = elm_object_item_data_get(item);
+               c_retm_if(!export_item_data, "export_item_data is null");
+
+               if (export_item_data->is_checked) {
+                       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+                       calendar_record_h calendar_book = NULL;
+
+                       error = calendar_record_clone(export_item_data->calendar_book, &calendar_book);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_clone() is failed(%x)", error);
+
+                       p->ugd->checked_calendar_list = eina_list_append(p->ugd->checked_calendar_list, calendar_book);
+               }
+
+               item = elm_genlist_item_next_get(item);
+       }
+
+       if (p->ugd->checked_calendar_list)
+               cal_setting_export_calendar_myfile_ug(p->ugd);
+
+       CAL_FN_END;
+}
+
+static void __cal_setting_export_cancel_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       c_ret_if(!data);
+
+       cal_setting_export_data *p = data;
+       c_ret_if(!p->ugd);
+
+       p->is_select_all_checked = EINA_FALSE;
+       p->checked_count = 0;
+
+       elm_object_signal_emit(p->ly, "hide,selection,info", "elm");
+
+       CAL_FN_END;
+}
+
+static void __cal_setting_export_create_select_all(cal_setting_export_data *p)
+{
+       c_ret_if(!p);
+
+       p->select_all_layout = elm_layout_add(p->ugd->naviframe);
+       if (!p->select_all_layout) {
+               ERR("elm_genlist_add(popup) returned null");
+               evas_object_del(p->box);
+               return;
+       }
+
+       elm_layout_theme_set(p->select_all_layout, "genlist", "item", "select_all/default");
+       evas_object_size_hint_weight_set(p->select_all_layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
+       evas_object_size_hint_align_set(p->select_all_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_event_callback_add(p->select_all_layout, EVAS_CALLBACK_MOUSE_UP, __cal_setting_select_all_mouse_up_cb, p);
+
+       p->select_all_check = elm_check_add(p->select_all_layout);
+       if (!p->select_all_check) {
+               ERR("elm_genlist_add(popup) returned null");
+               evas_object_del(p->box);
+               evas_object_del(p->select_all_layout);
+               return;
+       }
+
+       elm_check_state_pointer_set(p->select_all_check, &p->is_select_all_checked);
+       evas_object_smart_callback_add(p->select_all_check, "changed", __cal_setting_select_all_check_cb, p);
+       evas_object_propagate_events_set(p->select_all_check, EINA_FALSE);
+       elm_object_part_content_set(p->select_all_layout, "elm.icon", p->select_all_check);
+
+       elm_object_part_text_set(p->select_all_layout, "elm.text", S_("IDS_COM_BODY_SELECT_ALL"));
+       elm_box_pack_start(p->box, p->select_all_layout);
+       evas_object_show(p->select_all_layout);
+}
+
+static inline void __cal_setting_export_set_default_account(cal_setting_export_data *p)
+{
+       c_ret_if(!p);
+
+       p->account_list = eina_list_append(p->account_list, &def_at);
+}
+
+static void __cal_setting_export_get_list(cal_setting_export_data *p)
+{
+       c_ret_if(!p);
+
+       Eina_List *l;
+       struct _acct *at;
+
+       l = cal_account_svc_get_account_list();
+       if (l)
+               p->account_list = eina_list_merge(p->account_list, l);
+
+       EINA_LIST_FOREACH(p->account_list, l, at)
+               at->data = _calendar_get_calendar_book_list_with_account_id(at->id);
+}
+
+static void __cal_setting_export_update_genlist(cal_setting_export_data *p)
+{
+       c_ret_if(!p);
+
+       Eina_List* l, *ll;
+       struct _acct *at;
+
+       cal_setting_export_item_data *export_item_data = NULL;
+
+       __cal_setting_export_clear_list(p);
+
+       elm_genlist_clear(p->genlist);
+
+       __cal_setting_export_set_default_account(p);
+
+       __cal_setting_export_get_list(p);
+
+       EINA_LIST_FOREACH(p->account_list, l, at) {
+               if (at) {
+                       export_item_data = calloc(1, sizeof(cal_setting_export_item_data));
+                       c_ret_if(!export_item_data);
+
+                       export_item_data->is_checked = EINA_FALSE;
+                       export_item_data->at = at;
+                       export_item_data->is_group_item = EINA_TRUE;
+                       export_item_data->item = elm_genlist_item_append(p->genlist, &it_group, export_item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+                       c_ret_if(!export_item_data->item);
+
+                       elm_genlist_item_select_mode_set(export_item_data->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+                       calendar_record_h calendar_book = NULL;
+
+                       EINA_LIST_FOREACH(at->data, ll, calendar_book) {
+                               if (calendar_book) {
+                                       export_item_data = calloc(1, sizeof(cal_setting_export_item_data));
+                                       c_ret_if(!export_item_data);
+
+                                       export_item_data->is_checked = EINA_FALSE;
+                                       export_item_data->calendar_book = calendar_book;
+                                       export_item_data->is_group_item = EINA_FALSE;
+                                       export_item_data->item = elm_genlist_item_append(p->genlist, &itc_1text_2icon_2, export_item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_setting_export_popup_list_sel, export_item_data);
+                               }
+                       }
+               }
+       }
+
+       export_item_data = calloc(1, sizeof(cal_setting_export_item_data));
+       c_ret_if(!export_item_data);
+
+       export_item_data->is_group_item = EINA_TRUE;
+       export_item_data->item = elm_genlist_item_append(p->genlist, &itc_export_account_guide, export_item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       elm_genlist_item_select_mode_set(export_item_data->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+}
+
+void cal_setting_export_create_view(struct ug_data *data)
+{
+       c_ret_if(!data);
+
+       struct ug_data *ugd = data;
+
+       cal_setting_export_data *p = calloc(1, sizeof(cal_setting_export_data));
+       c_ret_if(!p);
+
+       p->ugd = ugd;
+
+       p->ly = cal_util_add_layout(p->ugd->naviframe, "selectioninfo");
+       if(!p->ly)              {
+               ERR("p->ly is NULL!");
+               free(p);
+               return;
+       }
+
+       evas_object_event_callback_add(p->ly, EVAS_CALLBACK_DEL, __cal_setting_export_layout_delete_callback, p);
+
+       p->box = elm_box_add(p->ly);
+       if(!p->box)
+       {
+               ERR("elm_box_add is failed!");
+               evas_object_del(p->ly);
+               free(p);
+               return;
+       }
+       evas_object_size_hint_weight_set(p->box, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
+       evas_object_size_hint_align_set(p->box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       __cal_setting_export_create_select_all(p);
+
+       p->genlist = elm_genlist_add(p->box);
+       if (!p->genlist) {
+               ERR("elm_genlist_add(popup) returned null");
+               evas_object_del(p->box);
+               evas_object_del(p->select_all_layout);
+               return;
+       }
+
+       elm_genlist_mode_set(p->genlist, ELM_LIST_COMPRESS);
+
+       evas_object_size_hint_weight_set(p->genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(p->genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_data_set(p->genlist, "check", p->select_all_check);
+       evas_object_data_set(p->genlist, "priv", p);
+
+       evas_object_show(p->genlist);
+       elm_box_pack_end(p->box, p->genlist);
+       evas_object_show(p->box);
+
+       elm_object_part_content_set(p->ly, "gen.swallow.contents", p->box);
+
+       __cal_setting_export_update_genlist(p);
+
+       Elm_Object_Item* navi_item = elm_naviframe_item_push(ugd->naviframe, C_("IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"), NULL, NULL, p->ly, NULL);
+       c_ret_if(!navi_item);
+
+       p->export_bt = cal_util_add_toolbar_button(ugd->naviframe, "toolbar_button1", C_("IDS_RSSR_OPT_EXPORT"), __cal_setting_export_button_callback, p);
+       elm_object_disabled_set(p->export_bt, EINA_TRUE);
+
+       Evas_Object *back_button = elm_object_item_part_content_get(navi_item, "prev_btn");
+       c_ret_if(!back_button);
+
+       evas_object_smart_callback_add(back_button, "clicked",  __cal_setting_export_cancel_callback, p);
+}
diff --git a/ug/settings/ug-settings-view.c b/ug/settings/ug-settings-view.c
new file mode 100755 (executable)
index 0000000..bc52175
--- /dev/null
@@ -0,0 +1,1406 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <fcntl.h>
+#include <vconf.h>
+
+#include "cld.h"
+#include "acct-svc.h"
+#include "ug-settings.h"
+#include "external-ug.h"
+#include "cld-images.h"
+
+#define PROGRESS_BAR_TIMER_INTERVAL 0.1
+
+typedef enum {
+       UI_SEPARATOR_TOP,
+       UI_SEPARATOR_MIDDLE,
+       UI_SEPARATOR_BOTTOM
+}ui_separator;
+
+typedef enum{
+       FOCUS_IN_DAILY = 1,
+       FOCUS_IN_WEEKLY
+}focus_in_month_view_type;
+
+typedef enum{
+       ITEM_LOCK_TIMEZONE_ON_OFF = 0,
+       ITEM_LOCK_TIMEZONE_GUIDE_TEXT,
+       ITEM_TIMEZONE,
+       ITEM_FIRST_DAY_OF_WEEK,
+       ITEM_SUNDAY,
+       ITEM_LOCALE_DEFAULT,
+       ITEM_MONDAY,
+       ITEM_SATURDAY,
+       ITEM_WEEK_NUMBER_ON_OFF,
+       ITEM_COMPLETED_TO_DO_ON_OFF,
+       ITEM_IMPORT_CALENDARS,
+       ITEM_EXPORT_CALENDARS,
+       ITEM_NONE
+}item_type;
+
+typedef struct
+{
+       item_type  index;
+       int check_status;
+       Elm_Object_Item *item;
+       Evas_Object *rgd;
+       int chk_status;
+       struct ug_data *ugd;
+       Evas_Object *check;
+       char *city;
+       char *timezone;
+}Item_data;
+
+enum
+{
+       SETTING_EXPORT_CALENDAR,
+       SETTING_IMPORT_CALENDAR
+};
+
+static Elm_Genlist_Item_Class itc_seperator = {
+       .item_style = "dialogue/separator/21/with_line",
+       .func.text_get = NULL,
+       .func.content_get = NULL,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static char *__cal_setting_ug_get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Evas_Object *__cal_setting_ug_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part);
+static char *__cal_setting_get_import_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Evas_Object* __cal_setting_get_import_genlist_icon(void *item_data, Evas_Object *obj, const char *part);
+static void __cal_setting_gl_insert_genlist_item(struct ug_data *ugd, Evas_Object *genlist, Elm_Object_Item *item_after, int index);
+static void __cal_setting_complete_todo_on_off_changed_callback(void *data, Evas_Object *obj, void *event_info);
+static void __cal_setting_week_number_on_off_changed_callback(void *data, Evas_Object *obj, void *event_info);
+
+extern void cal_setting_export_create_view(struct ug_data *data);
+
+static Elm_Genlist_Item_Class itc_2text_1icon_2 = {
+       .item_style = "dialogue/2text.1icon.2",
+       .func.text_get = __cal_setting_get_import_genlist_item_label,
+       .func.content_get = __cal_setting_get_import_genlist_icon,
+};
+
+static Elm_Genlist_Item_Class itc_lock_tz = {
+       .item_style = "dialogue/1text.1icon",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = __cal_setting_ug_get_genlist_item_icon,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static Elm_Genlist_Item_Class itc_import = {
+       .item_style = "dialogue/1text",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = NULL,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static Elm_Genlist_Item_Class itc_tz = {
+       .item_style = "dialogue/2text.3",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = NULL,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static Elm_Genlist_Item_Class itc = {
+       .item_style = "dialogue/2text.3/expandable",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = NULL,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static Elm_Genlist_Item_Class itc_radio = {
+       .item_style = "dialogue/1text.1icon.2/expandable2",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = __cal_setting_ug_get_genlist_item_icon,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static Elm_Genlist_Item_Class itc_lock_tz_guide = {
+       .item_style = "multiline/1text",
+       .func.text_get = __cal_setting_ug_get_genlist_item_label,
+       .func.content_get = NULL,
+       .func.state_get = NULL,
+       .func.del = NULL,
+};
+
+static char *__cal_setting_get_import_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retv_if(!data, NULL);
+       c_retv_if(!part, NULL);
+
+       calendar_record_h calendar_book = data;
+       char *name = NULL;
+       int cid = 0;
+       char* description = NULL;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       if (!CAL_STRCMP(part,"elm.text.1")) {
+
+               cid = _calendar_get_calendar_index(calendar_book);
+               if (cid == DEFAULT_EVENT_CALENDAR_BOOK_ID)
+                       return strdup(C_("IDS_CLD_BODY_MY_CALENDAR"));
+               else if (cid == DEFAULT_TODO_CALENDAR_BOOK_ID)
+                       return strdup(C_("IDS_TASK_BODY_MY_TASK"));
+               else if (cid == DEFAULT_BIRTHDAY_CALENDAR_BOOK_ID)
+                       return strdup(C_("IDS_CLD_MBODY_CONTACTS_BIRTHDAY"));
+
+               error = calendar_record_get_str(calendar_book, _calendar_book.name, &name);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is faile(%x)", error);
+
+               if (CAL_STRLEN(name))
+                       return name;
+               else
+                       CAL_FREE(name);
+
+               return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+
+       } else if (!CAL_STRCMP(part,"elm.text.2")) {
+
+               error = calendar_record_get_int(calendar_book, _calendar_book.account_id, &cid);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is faile(%x)", error);
+
+               if (cid == _CALENDAR_LOCAL_ACCOUNT_ID)
+                       return strdup(C_("IDS_CLD_POP_MY_PHONE"));
+
+               error = calendar_record_get_str(calendar_book, _calendar_book.description, &description);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_str() is faile(%x)", error);
+
+               if (CAL_STRLEN(description))
+                       return description;
+               else
+                       CAL_FREE(description);
+
+               return strdup(S_("IDS_COM_POP_NO_ACCOUNTS"));
+       }
+
+       return strdup(C_("IDS_CLD_BODY_NO_TITLE"));
+}
+
+static Evas_Object* __cal_setting_get_import_genlist_icon(void *item_data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!item_data, NULL, "item_data is null");
+       c_retvm_if(!obj, NULL, "obj is null");
+
+       Evas_Object *icon = NULL;
+       char* icon_path = NULL;
+       calendar_record_h calendar_book = item_data;
+       Eina_Bool r = EINA_FALSE;
+       int cid = 0;
+       int aid = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_record_get_int(calendar_book, _calendar_book.id, &cid);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is faile(%x)", error);
+
+       error = calendar_record_get_int(calendar_book, _calendar_book.account_id, &aid);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is faile(%x)", error);
+
+       if (!CAL_STRCMP(part, "elm.icon")) {
+               icon = elm_icon_add(obj);
+
+               if (!icon) {
+                       ERR("elm_icon_add fail");
+                       return NULL;
+               }
+
+               if ( aid == _CALENDAR_LOCAL_ACCOUNT_ID) {
+                       r = elm_icon_file_set(icon, CAL_IMAGES_EDJ, CAL_IMAGES_PHONE);
+               } else {
+                       icon_path = cal_account_svc_get_account_icon_path(aid);
+                       if(icon_path) {
+                               r = elm_icon_file_set(icon, icon_path, NULL);
+                               free(icon_path);
+                       }
+               }
+
+               if (!r) {
+                       ERR("");
+                       evas_object_del(icon);
+                       icon = NULL;
+               } else {
+                       evas_object_show(icon);
+               }
+       }
+
+       return icon;
+}
+
+static char *__cal_setting_ug_get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!obj, NULL, "part is null");
+
+       Item_data *item_data = data;
+       item_type type = item_data->index;
+       struct tm tm;
+       time_t t;
+
+       t = time(NULL);
+       localtime_r(&t, &tm);
+
+       switch (type) {
+       case ITEM_TIMEZONE:
+               if (!CAL_STRCMP(part, "elm.text.1")) {
+                       return strdup(C_("IDS_CLD_BODY_TIME_ZONE"));
+               } else if (!CAL_STRCMP(part, "elm.text.2")) {
+                       return g_strdup_printf("%s, %s", S_(item_data->ugd->city), item_data->ugd->time_zone);
+               }
+               break;
+
+       case ITEM_LOCK_TIMEZONE_ON_OFF:
+               if (!CAL_STRCMP(part, "elm.text"))
+                       return strdup(C_("IDS_CLD_MBODY_LOCK_TIME_ZONE"));
+               break;
+
+       case ITEM_LOCK_TIMEZONE_GUIDE_TEXT:
+               return strdup(C_("IDS_CLD_BODY_LOCK_TIME_ZONE_DESCRIPTION_MSG"));
+               break;
+
+       case ITEM_FIRST_DAY_OF_WEEK:
+               if (!CAL_STRCMP(part, "elm.text.1")) {
+                       return strdup(C_("IDS_CLD_BODY_FIRST_DAY_OF_WEEK"));
+               } else if (!CAL_STRCMP(part, "elm.text.2")) {
+                       if (FIRST_DAY_LOCALE_DEFAULT == item_data->ugd->first_day_of_week) {
+                               return strdup(C_("IDS_CLD_BODY_LOCALE_DEFAULT"));
+                       } else if (FIRST_DAY_SUNDAY == item_data->ugd->first_day_of_week) {
+                               return strdup(C_("IDS_ST_BODY_SUNDAY"));
+                       } else if (FIRST_DAY_MONDAY == item_data->ugd->first_day_of_week) {
+                               return strdup(C_("IDS_ST_BODY_MONDAY"));
+                       } else if (FIRST_DAY_SATURDAY == item_data->ugd->first_day_of_week) {
+                               return strdup(S_("IDS_COM_BODY_SATURDAY"));
+                       }
+               }
+               break;
+
+       case ITEM_WEEK_NUMBER_ON_OFF:
+               if (!CAL_STRCMP(part, "elm.text"))
+                       return strdup(C_("IDS_CLD_BODY_SHOW_WEEK_NUMBER"));
+               break;
+
+       case ITEM_COMPLETED_TO_DO_ON_OFF:
+               if (!CAL_STRCMP(part, "elm.text"))
+                       return strdup(C_("IDS_CLD_BODY_SHOW_COMPLETED_TASKS"));
+               break;
+
+       case ITEM_LOCALE_DEFAULT:
+               return strdup(C_("IDS_CLD_BODY_LOCALE_DEFAULT"));
+               break;
+       case ITEM_SUNDAY:
+               return strdup(C_("IDS_ST_BODY_SUNDAY"));
+               break;
+       case ITEM_MONDAY:
+               return strdup(C_("IDS_ST_BODY_MONDAY"));
+               break;
+       case ITEM_SATURDAY:
+               return strdup(S_("IDS_COM_BODY_SATURDAY"));
+               break;
+       case ITEM_IMPORT_CALENDARS:
+               if (!CAL_STRCMP(part, "elm.text"))
+                       return strdup(C_("IDS_CLD_BODY_IMPORT_EVENTS_TASKS_ABB"));
+               break;
+
+       case ITEM_EXPORT_CALENDARS:
+               if (!CAL_STRCMP(part, "elm.text"))
+                       return strdup(C_("IDS_CLD_BODY_EXPORT_EVENTS_TASKS_ABB"));
+               break;
+       default:
+               break;
+       }
+
+       return NULL;
+}
+
+static void __cal_setting_ug_radio_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "part is null");
+
+       Eina_List *l;
+       Eina_List *realized_list;
+       Elm_Object_Item *it;
+       Item_data *item_data = data;
+       item_type type = item_data->index;
+       int ret;
+
+       switch (type) {
+       case ITEM_LOCALE_DEFAULT:
+               item_data->ugd->first_day_of_week = FIRST_DAY_LOCALE_DEFAULT;
+               ret = vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, item_data->ugd->first_day_of_week);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, 0) is failed(%d)", ret);
+               break;
+       case ITEM_SUNDAY:
+               item_data->ugd->first_day_of_week = FIRST_DAY_SUNDAY;
+               ret = vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, item_data->ugd->first_day_of_week);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, 0) is failed(%d)", ret);
+               break;
+       case ITEM_MONDAY:
+               item_data->ugd->first_day_of_week = FIRST_DAY_MONDAY;
+               ret = vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, item_data->ugd->first_day_of_week);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, 1) is failed(%d)", ret);
+               break;
+       case ITEM_SATURDAY:
+               item_data->ugd->first_day_of_week = FIRST_DAY_SATURDAY;
+               ret = vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, item_data->ugd->first_day_of_week);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, 1) is failed(%d)", ret);
+               break;
+       default:
+               break;
+       }
+
+
+       elm_genlist_item_selected_set(item_data->item,0);
+
+       realized_list = elm_genlist_realized_items_get(item_data->ugd->genlist);
+       EINA_LIST_FOREACH(realized_list, l, it)
+       {
+               item_data = elm_object_item_data_get(it);
+               if (!item_data)
+                       continue;
+
+               if ( type == ITEM_FIRST_DAY_OF_WEEK ||
+                               type == ITEM_LOCALE_DEFAULT ||
+                               type == ITEM_SUNDAY ||
+                               type == ITEM_MONDAY ||
+                               type == ITEM_SATURDAY) {
+                       if ( item_data->index == ITEM_FIRST_DAY_OF_WEEK ||
+                                       item_data->index == ITEM_LOCALE_DEFAULT ||
+                                       item_data->index == ITEM_SUNDAY ||
+                                       item_data->index == ITEM_MONDAY ||
+                                       item_data->index == ITEM_SATURDAY)
+                               elm_genlist_item_update(it);
+               }
+       }
+}
+
+static void __cal_setting_ug_lock_time_zone_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is NULL");
+       c_retm_if(!obj, "obj is NULL");
+
+       Item_data *item_data = data;
+
+       c_retm_if(!item_data->ugd, "item_data->ugd is NULL");
+       c_retm_if(!item_data->ugd->genlist, "item_data->ugd->genlist is NULL");
+       c_retm_if(!item_data->ugd->item_time_zone_on_off, "item_data->ugd->item_time_zone_on_off is NULL");
+
+       int  ret;
+
+       if (item_data->ugd->item_time_zone) {
+               elm_object_item_del(item_data->ugd->item_time_zone);
+               item_data->ugd->item_time_zone = NULL;
+       }
+
+       if (item_data->ugd->item_time_zone_guide) {
+               elm_object_item_del(item_data->ugd->item_time_zone_guide);
+               item_data->ugd->item_time_zone_guide = NULL;
+       }
+
+       if(elm_check_state_get(item_data->check)) {
+               item_data->ugd->is_on = 1;
+
+               ret = vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF,item_data->ugd->is_on);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, 0) is failed(%d)", ret);
+
+               __cal_setting_gl_insert_genlist_item(item_data->ugd, item_data->ugd->genlist, item_data->ugd->item_time_zone_on_off, ITEM_TIMEZONE);
+       } else {
+               item_data->ugd->is_on = 0;
+
+               ret = vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF,item_data->ugd->is_on);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, 0) is failed(%d)", ret);
+
+               __cal_setting_gl_insert_genlist_item(item_data->ugd, item_data->ugd->genlist, item_data->ugd->item_time_zone_on_off, ITEM_LOCK_TIMEZONE_GUIDE_TEXT);
+       }
+}
+
+static void __cal_setting_ug_lock_time_zone_check_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is NULL");
+       c_retm_if(!obj, "obj is NULL");
+
+       Item_data *item_data = data;
+
+       elm_check_state_set(item_data->check, !elm_check_state_get(item_data->check));
+
+       __cal_setting_ug_lock_time_zone_check_changed_callback(data, elm_object_item_widget_get(item_data->item), event_info);
+
+       elm_genlist_item_selected_set(item_data->item,0);
+}
+
+static void __cal_setting_ug_show_week_num_check_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is NULL");
+       c_retm_if(!obj, "obj is NULL");
+
+       Item_data *item_data = data;
+
+       elm_check_state_set(item_data->check, !elm_check_state_get(item_data->check));
+
+       __cal_setting_week_number_on_off_changed_callback(data, elm_object_item_widget_get(item_data->item), event_info);
+
+       elm_genlist_item_selected_set(item_data->item,0);
+}
+
+static void __cal_setting_ug_show_complete_task_check_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is NULL");
+       c_retm_if(!obj, "obj is NULL");
+
+       Item_data *item_data = data;
+
+       elm_check_state_set(item_data->check, !elm_check_state_get(item_data->check));
+
+       __cal_setting_complete_todo_on_off_changed_callback(data, elm_object_item_widget_get(item_data->item), event_info);
+
+       elm_genlist_item_selected_set(item_data->item,0);
+}
+
+static void __cal_setting_genlist_item_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is NULL");
+       c_retm_if(!obj, "obj is NULL");
+
+       Item_data *item_data = data;
+       elm_genlist_item_selected_set(item_data->item,0);
+       if(0 == elm_genlist_item_expanded_get(item_data->item)) {
+               elm_genlist_item_expanded_set(item_data->item, 1);
+       } else {
+               elm_genlist_item_expanded_set(item_data->item, 0);
+       }
+}
+
+static void __cal_setting_get_filename(char *fullpath, char *dest, int size_dest)
+{
+       c_retm_if(!fullpath, "fullpath is NULL");
+       c_retm_if(!dest, "dest is NULL");
+
+       char* index;
+       index = strrchr(fullpath, '/');
+       snprintf(dest, size_dest, "%s", index + 1);
+}
+
+static void * __cal_setting_import_calendars(void* data)
+{
+       c_retvm_if(!data, NULL,  "parameter(data) is NULL");
+
+       struct ug_data *ugd = data;
+       int ret;
+       cal_progress_info *p_info = ugd->p_info;
+       c_retvm_if(!p_info, NULL, "p_info is NULL");
+
+       char *vcalendar_stream = NULL;
+       int size = 0;
+       struct stat st = {0};
+
+       FILE * file = fopen(ugd->path, "r");
+       if (!file) {
+               free(vcalendar_stream);
+               ERR("Failed to open file!");
+               p_info->completed = true;
+               pthread_exit(NULL);
+               return NULL;
+       }
+
+       if(stat(ugd->path, &st) != 0) {
+               ERR("stat(ugd->path, &st) is fail!");
+               p_info->completed = true;
+               pthread_exit(NULL);
+               return NULL;
+       }
+       size = st.st_size;
+
+       vcalendar_stream = calloc(size + 1, sizeof(char));
+       if (!vcalendar_stream) {
+               ERR("vcalendar_stream is null");
+               p_info->completed = true;
+               pthread_exit(NULL);
+               return NULL;
+       }
+
+       ret = fread(vcalendar_stream, 1, size, file);
+       if (ret < 0) {
+               free(vcalendar_stream);
+               ERR("Failed to read file!");
+               p_info->completed = true;
+               pthread_exit(NULL);
+               fclose(file);
+
+               return NULL;
+       }
+
+       fclose(file);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_list_h list = NULL;
+
+       error = calendar_vcalendar_parse_to_calendar(vcalendar_stream, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_vcalendar_parse_to_calendar() is failed(%x)", error);
+
+       CAL_FREE(vcalendar_stream);
+
+       error = calendar_db_insert_records(list, NULL, NULL);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_insert_records() is failed(%x)", error);
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       p_info->completed = true;
+       pthread_exit(NULL);
+
+       return NULL;
+}
+
+static void __cal_setting_process_end(struct ug_data *ugd )
+{
+       c_retm_if(!ugd, "parameter(ugd) is NULL");
+
+       cal_progress_info *p_info = ugd->p_info;
+       c_retm_if(!p_info, "p_info is NULL");
+
+       free(p_info);
+       ugd->p_info = NULL;
+}
+
+static Eina_Bool __cal_setting_backup_import_timer_cb(void *data)
+{
+       c_retvm_if(!data, ECORE_CALLBACK_CANCEL, "parameter(data) is NULL");
+
+       struct ug_data *ugd  = data;
+       cal_progress_info *p_info;
+
+       p_info = ugd->p_info;
+       c_retvm_if(NULL == p_info , ECORE_CALLBACK_CANCEL, "p_info is NULL");
+
+
+       if (!p_info->completed) {
+
+               if (!p_info->alive) {
+                       p_info->result = FALSE;
+                       p_info->completed = true;
+                       return ECORE_CALLBACK_RENEW;
+               }
+
+               return ECORE_CALLBACK_RENEW;
+       } else {
+               const char *message;
+
+               pthread_join(p_info->thread, NULL);
+
+               if (p_info->result) {
+                       if (SETTING_IMPORT_CALENDAR== ugd->setting_mode) {
+                               message = C_("IDS_CLD_POP_IMPORTED");
+                       } else {
+                               message = C_("IDS_CLD_POP_EXPORTED");
+                       }
+               } else {
+                       message = S_("IDS_COM_POP_FAILED");
+               }
+
+               evas_object_del(ugd->popup);
+
+               __cal_setting_process_end(ugd);
+
+               cal_util_show_small_information(ugd->layout, message, 1.0);
+
+               return ECORE_CALLBACK_CANCEL;
+       }
+}
+
+static void __cal_setting_progress_popup_hide_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!obj, "obj is null");
+
+       Evas_Object *popup = data;
+
+       if (!strcmp(elm_object_text_get(obj), S_("IDS_COM_SK_CANCEL"))) {
+               bool *is_alive = evas_object_data_get(popup, "data");
+               *is_alive = false;
+       }
+
+       evas_object_del(popup);
+}
+
+Evas_Object* __cal_setting_progressbar_popup(Evas_Object *parent, cal_progress_info *p_info)
+{
+       c_retvm_if(!parent, NULL, "parent is null");
+       c_retvm_if(!p_info, NULL, "p_info is null");
+
+       Evas_Object *popup;
+       Evas_Object *layout;
+       Evas_Object *title;
+       Evas_Object *progressbar;
+
+       popup = cal_util_add_popup(parent, NULL, NULL, NULL,
+               __cal_setting_progress_popup_hide_cb, &p_info->alive, S_("IDS_COM_SK_CANCEL"), NULL);
+       c_retvm_if(!popup, NULL, "cal_util_add_popup() return NULL");
+
+       layout = cal_util_add_layout(popup, "popup_center_text_progressview");
+
+       p_info->layout = layout;
+
+       title = elm_label_add(layout);
+       c_retvm_if(NULL == title, NULL, "elm_label_add() return NULL");
+
+       elm_object_style_set(title, "popup_description/default");
+       elm_label_line_wrap_set(title, EINA_TRUE);
+       evas_object_size_hint_weight_set(title, EVAS_HINT_EXPAND, 0.0);
+       evas_object_size_hint_align_set(title, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(title);
+       p_info->label = title;
+
+       progressbar = elm_progressbar_add(layout);
+       c_retvm_if(NULL == progressbar, NULL, "elm_progressbar_add() return NULL");
+
+       p_info->progressbar= progressbar;
+
+       elm_object_part_content_set(layout, "elm.swallow.content", title);
+       elm_object_part_content_set(layout, "elm.swallow.end", progressbar);
+       evas_object_size_hint_align_set(progressbar, 0.5, 0.5);
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_progressbar_pulse(progressbar, EINA_TRUE);
+
+       evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_show(progressbar);
+       elm_object_content_set(popup, layout);
+
+       return popup;
+}
+
+static void __cal_setting_import_calendar_ug_result(ui_gadget_h ug, service_h result, void *data)
+{
+       c_retm_if(!ug, "parameter(ug) is NULL");
+       c_retm_if(!data, "parameter(data) is NULL");
+       c_retm_if(!result, "parameter(result) is NULL");
+
+       ug_destroy(ug);
+
+       int ret;
+       char *val;
+       struct ug_data *ugd = data;
+       cal_progress_info *p_info;
+       char title[CAL_TEXT_MAX_LEN];
+       char filepath[CAL_TEXT_SHORT_LEN];
+
+       ret = service_get_extra_data(result, "result", &val);
+       c_ret_if(ret != SERVICE_ERROR_NONE);
+
+       if (ugd->path) {
+               free(ugd->path);
+               ugd->path = NULL;
+       }
+       ugd->path = strdup((char *)val);
+       c_retm_if(NULL == ugd->path, "strdup() return NULL");
+
+       free(val);
+
+       p_info = calloc(1, sizeof(cal_progress_info));
+       c_retm_if(!p_info, "calloc() return NULL");
+
+       ugd->p_info = p_info;
+
+       p_info->alive = true;
+       p_info->result = TRUE;
+       p_info->completed = false;
+       __cal_setting_get_filename(ugd->path, filepath, sizeof(filepath));
+
+       snprintf(title, sizeof(title), "%s<br>%s", C_("IDS_CLD_POP_IMPORTING_ING"), filepath);
+
+       ret = pthread_create(&p_info->thread, NULL, __cal_setting_import_calendars, ugd);
+       if (0 != ret) {
+               ERR("Thread creation failed(%d)", ret);
+               free(p_info);
+               ugd->p_info = NULL;
+               return;
+       }
+
+       p_info->timer = ecore_timer_add(0.1, __cal_setting_backup_import_timer_cb, ugd);
+       if (NULL == p_info->timer) {
+               ERR("ecore_timer_ada() return NULL");
+
+               p_info->alive = false;
+               pthread_join(p_info->thread, NULL);
+
+               free(p_info);
+               ugd->p_info = NULL;
+
+               return;
+       }
+
+       ugd->popup = __cal_setting_progressbar_popup(ugd->naviframe, p_info);
+       elm_object_text_set(p_info->label, title);
+
+       evas_object_smart_callback_add(ugd->popup, "response", __cal_setting_progress_popup_hide_cb, &p_info->alive);
+
+}
+
+static void __cal_setting_import_calendar_myfile_ug(struct ug_data *ugd)
+{
+       c_retm_if(!ugd, "ugd is null");
+
+       struct ug_cbs cbs = {0};
+       cbs.result_cb = __cal_setting_import_calendar_ug_result;
+       cbs.priv = ugd;
+
+       cal_launch_ug_with_var(ugd->ug, CAL_MYFILES_UG, &cbs, "path", "/opt/usr/media/Backup/Calendar", "select_type", "IMPORT", "file_type", "vcs", NULL);
+}
+
+static inline void __cal_setting_progress_fail(cal_progress_info *p_info)
+{
+       c_retm_if(!p_info, "parameter(p_info) is NULL");
+
+       p_info->completed = true;
+       p_info->result = false;
+
+       pthread_exit(NULL);
+}
+
+static void * __cal_setting_export_calendars(void *data)
+{
+       c_retvm_if(!data, NULL,  "parameter(data) is NULL");
+
+       Eina_Bool ret = EINA_TRUE;
+       int fd;
+       Eina_List *cursor;
+       calendar_record_h calendar_book;
+       struct ug_data *ugd  = data;
+       cal_progress_info *p_info = ugd->p_info;
+       char *vcs_data = NULL;
+
+       fd = open(ugd->path, O_WRONLY|O_CREAT|O_TRUNC, 0644);
+       if (fd < 0) {
+               ERR("open(%s) Failed(%d)", ugd->path, errno);
+               __cal_setting_progress_fail(p_info);
+               return NULL;
+       }
+
+       if (ugd->checked_calendar_list == NULL) {
+               c_warn_if(1, "ugd->calendar_list is NULL");
+               close(fd);
+               return NULL;
+       }
+
+       int r;
+       int cid = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       calendar_filter_h filter = NULL;
+
+       error = calendar_filter_create(_calendar_event._uri, &filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_create() is failed(%x)", error);
+
+       EINA_LIST_FOREACH(ugd->checked_calendar_list, cursor, calendar_book) {
+               if (calendar_book) {
+                       error = calendar_record_get_int(calendar_book, _calendar_book.id, &cid);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+                       error = calendar_filter_add_int(filter, _calendar_event.calendar_book_id, CALENDAR_MATCH_EQUAL, cid);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_int() is failed(%x)", error);
+
+                       if (eina_list_next(cursor)) {
+                               error = calendar_filter_add_operator(filter, CALENDAR_FILTER_OPERATOR_OR);
+                               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_add_operator() is failed(%x)", error);
+                       }
+               }
+       }
+
+       calendar_query_h query = NULL;
+
+       error = calendar_query_create(_calendar_event._uri, &query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_create() is failed(%x)", error);
+
+       error = calendar_query_set_filter(query, filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_add_filter() is failed(%x)", error);
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_records_with_query(query, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_records_with_query() is failed(%x)", error);
+
+       error = calendar_vcalendar_make_from_records(list, &vcs_data);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_vcalendar_make_from_records() is failed(%x)", error);
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       error = calendar_query_destroy(query);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_query_destroy() is failed(%x)", error);
+
+       error = calendar_filter_destroy(filter);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_filter_destroy() is failed(%x)", error);
+
+       if (vcs_data) {
+               r = write(fd, vcs_data, strlen(vcs_data));
+               if (r == -1) {
+                       ERR("write() is failed.");
+               } else
+                       cal_util_update_media_db(ugd->path);
+
+               p_info->completed = true;
+               p_info->result = true;
+
+       } else {
+               __cal_setting_progress_fail(p_info);
+       }
+
+       CAL_FREE(vcs_data);
+
+       r = fsync(fd);
+       if (0 != r) {
+               ERR("fsync() failed(%d)", r);
+               __cal_setting_progress_fail(p_info);
+       }
+       close(fd);
+
+       if (!p_info->result) {
+               ret = unlink(ugd->path);
+               if (0 != ret) {
+                       ERR("unlink(%s) failed(%d)", ugd->path, ret);
+                       __cal_setting_progress_fail(p_info);
+               }
+       }
+
+       pthread_exit(NULL);
+
+       return NULL;
+}
+
+static void __cal_setting_export_myfile_ug_result(ui_gadget_h ug, service_h result, void *data)
+{
+       c_retm_if(!ug, "parameter(ug) is NULL");
+       c_retm_if(!data, "parameter(data) is NULL");
+       c_retm_if(!result, "parameter(result) is NULL");
+
+       int ret;
+       char *val;
+       char path[CAL_TEXT_MAX_LEN];
+       char title[CAL_TEXT_MAX_LEN];
+       char filepath[CAL_TEXT_SHORT_LEN];
+       cal_progress_info *p_info;
+       struct ug_data *ugd  = data;
+
+       elm_naviframe_item_pop(ugd->naviframe);
+
+       c_retm_if(ugd->p_info, "thread is running");
+
+       ug_destroy(ug);
+
+       ret = service_get_extra_data(result, "result", &val);
+       c_ret_if(ret != SERVICE_ERROR_NONE);
+
+       p_info = calloc(1, sizeof(cal_progress_info));
+       c_retm_if(NULL == p_info, "calloc() return NULL");
+
+       ugd->p_info = p_info;
+
+       free(ugd->path);
+       snprintf(path, sizeof(path), "%s/calendars.vcs", (char *)val);
+
+       free(val);
+
+       ugd->path = strdup(path);
+
+       p_info->alive = true;
+       p_info->result = TRUE;
+       __cal_setting_get_filename(ugd->path, filepath, sizeof(filepath));
+       snprintf(title, sizeof(title), "%s<br>%s", C_("IDS_CLD_POP_EXPORTING_ING"), filepath);
+
+       ret = pthread_create(&p_info->thread, NULL, __cal_setting_export_calendars, ugd );
+       if (0 != ret) {
+               ERR("Thread creation failed(%d)", ret);
+               free(p_info);
+               ugd->p_info = NULL;
+               return;
+       }
+
+       p_info->timer = ecore_timer_add(PROGRESS_BAR_TIMER_INTERVAL, __cal_setting_backup_import_timer_cb, ugd);
+       if (NULL == p_info->timer) {
+               ERR("ecore_timer_ada() return NULL");
+               p_info->alive = false;
+               pthread_join(p_info->thread, NULL);
+               free(p_info);
+               ugd->p_info = NULL;
+               return;
+       }
+
+       ugd->popup = __cal_setting_progressbar_popup(ugd->naviframe, p_info);
+       elm_object_text_set(p_info->label, title);
+}
+
+void cal_setting_export_calendar_myfile_ug(struct ug_data *ugd)
+{
+       CAL_FN_START;
+       c_retm_if(!ugd, "ugd is null");
+
+       struct ug_cbs cbs = {0};
+       cbs.result_cb = __cal_setting_export_myfile_ug_result;
+       cbs.priv = ugd;
+
+       cal_launch_ug_with_var(ugd->ug, CAL_MYFILES_UG, &cbs, "path", "/opt/usr/media/Backup/Calendar", "select_type", "EXPORT", "file_type", "FOLDER", NULL);
+}
+
+static void __cal_setting_show_export_view(Item_data *item_data)
+{
+       CAL_FN_START;
+
+       c_retm_if(!item_data, "item_data is null");
+
+       struct ug_data *ugd = item_data->ugd;
+       c_retm_if(!ugd, "ugd is null");
+
+       cal_setting_export_create_view(ugd);
+}
+
+static void __cal_setting_genlist_item_import_export_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       Item_data *item_data = data;
+       elm_genlist_item_selected_set(item_data->item,0);
+       item_type type = item_data->index;
+       switch (type) {
+               case ITEM_IMPORT_CALENDARS:
+
+                       item_data->ugd->setting_mode = SETTING_IMPORT_CALENDAR;
+
+                       __cal_setting_import_calendar_myfile_ug(item_data->ugd);
+                       break;
+               case ITEM_EXPORT_CALENDARS:
+
+                       item_data->ugd->setting_mode = SETTING_EXPORT_CALENDAR;
+
+                       __cal_setting_show_export_view(item_data);
+                       break;
+               default:
+                       break;
+       }
+}
+
+static void __cal_setting_complete_todo_on_off_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       Item_data *item_data = data;
+       int  ret;
+       if (elm_check_state_get(item_data->check)) {
+               item_data->ugd->is_complete_todo = 1;
+               ret = vconf_set_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF,item_data->ugd->is_complete_todo);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, 0) is failed(%d)", ret);
+       } else {
+               item_data->ugd->is_complete_todo = 0;
+               ret = vconf_set_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF,item_data->ugd->is_complete_todo);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, 0) is failed(%d)", ret);
+       }
+}
+
+static void __cal_setting_week_number_on_off_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       Item_data *item_data = data;
+       int  ret;
+
+       c_retm_if(!item_data->check, "item_data->check is null");
+
+       if (elm_check_state_get(item_data->check)) {
+               item_data->ugd->is_display_weeknumber= 1;
+               ret = vconf_set_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF ,item_data->ugd->is_display_weeknumber);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, 0) is failed(%d)", ret);
+       } else {
+               item_data->ugd->is_display_weeknumber= 0;
+               ret = vconf_set_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF,item_data->ugd->is_display_weeknumber);
+               c_retm_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, 0) is failed(%d)", ret);
+       }
+}
+
+static Evas_Object *__cal_setting_ug_get_genlist_item_icon(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!obj, NULL, "obj is null");
+
+       Evas_Object *eo_begin = NULL;
+       Item_data *item_data = data;
+       item_type type = item_data->index;
+
+       if (!CAL_STRCMP(part, "elm.icon")) {
+               eo_begin = elm_radio_add(obj);
+               switch (type) {
+               case ITEM_LOCK_TIMEZONE_ON_OFF:
+                       eo_begin = elm_check_add(obj);
+                       elm_check_state_set(eo_begin, item_data->ugd->is_on);
+                       elm_object_style_set(eo_begin, "on&off");
+                       evas_object_propagate_events_set(eo_begin, EINA_FALSE);
+                       item_data->check = eo_begin;
+                       evas_object_smart_callback_add(eo_begin, "changed", __cal_setting_ug_lock_time_zone_check_changed_callback, item_data);
+                       break;
+               case ITEM_LOCALE_DEFAULT:
+                       if (FIRST_DAY_LOCALE_DEFAULT == item_data->ugd->first_day_of_week) {
+                               elm_radio_state_value_set(eo_begin, 0);
+                       } else {
+                               elm_radio_state_value_set(eo_begin, -1);
+                       }
+                       break;
+               case ITEM_SUNDAY:
+                       if (FIRST_DAY_SUNDAY == item_data->ugd->first_day_of_week) {
+                               elm_radio_state_value_set(eo_begin, 0);
+                       } else {
+                               elm_radio_state_value_set(eo_begin, -1);
+                       }
+                       break;
+               case ITEM_MONDAY:
+                       if (FIRST_DAY_MONDAY == item_data->ugd->first_day_of_week) {
+                               elm_radio_state_value_set(eo_begin, 0);
+                       } else {
+                               elm_radio_state_value_set(eo_begin, -1);
+                       }
+                       break;
+               case ITEM_SATURDAY:
+                       if (FIRST_DAY_SATURDAY == item_data->ugd->first_day_of_week) {
+                               elm_radio_state_value_set(eo_begin, 0);
+                       } else {
+                               elm_radio_state_value_set(eo_begin, -1);
+                       }
+                       break;
+               case ITEM_WEEK_NUMBER_ON_OFF:
+                       eo_begin = elm_check_add(obj);
+                       c_retvm_if(!eo_begin , NULL, "eo_begin is null");
+
+                       elm_check_state_set(eo_begin, item_data->ugd->is_display_weeknumber);
+                       elm_object_style_set(eo_begin, "on&off");
+                       evas_object_propagate_events_set(eo_begin, EINA_FALSE);
+                       item_data->check = eo_begin;
+                       evas_object_smart_callback_add(eo_begin, "changed", __cal_setting_week_number_on_off_changed_callback,  item_data);
+                       break;
+               case ITEM_COMPLETED_TO_DO_ON_OFF:
+                       eo_begin = elm_check_add(obj);
+                       elm_check_state_set(eo_begin, item_data->ugd->is_complete_todo);
+                       elm_object_style_set(eo_begin, "on&off");
+                       evas_object_propagate_events_set(eo_begin, EINA_FALSE);
+                       item_data->check = eo_begin;
+                       evas_object_smart_callback_add(eo_begin, "changed", __cal_setting_complete_todo_on_off_changed_callback, item_data);
+                       break;
+               default:
+                       break;
+               }
+               elm_radio_group_add(eo_begin, item_data->rgd);
+
+               item_data->check = eo_begin;
+       }
+       return eo_begin;
+}
+
+static void __cal_setting_ug_time_zone_ug_destroy_callback(ui_gadget_h ug, void *priv)
+{
+       CAL_FN_START;
+       c_retm_if(!priv, "priv is null");
+
+       Item_data *item_data = priv;
+       elm_genlist_item_selected_set(item_data->item,0);
+       if (ug)
+               ug_destroy(ug);
+}
+
+static void __cal_setting_ug_time_zone_ug_result_callback(ui_gadget_h ug, service_h result, void *priv)
+{
+       CAL_FN_START;
+
+       c_retm_if(!priv, "priv is null");
+
+       Item_data *item_data = priv;
+
+       char *city = NULL;
+
+       int ret = service_get_extra_data(result, "city", &city);
+       c_ret_if(ret != SERVICE_ERROR_NONE);
+
+       char *timezone = NULL;
+
+       ret = service_get_extra_data(result, "timezone", &timezone);
+       c_ret_if(ret != SERVICE_ERROR_NONE);
+
+       char *tzpath = NULL;
+
+       ret = service_get_extra_data(result, "tzpath", &tzpath);
+       c_ret_if(ret != SERVICE_ERROR_NONE);
+
+       if (item_data->ugd->city)
+               free(item_data->ugd->city);
+
+       item_data->ugd->city = strdup(city);
+       c_retm_if(!item_data->ugd->city, "item_data->ugd->city is null");
+
+       item_data->ugd->time_zone = g_strdup_printf("GMT%s", timezone);
+       c_retm_if(!item_data->ugd->time_zone, "item_data->ugd->time_zone is null");
+
+       elm_genlist_item_update(item_data->item);
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, tzpath);
+       c_warn_if(ret, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, tzpath) is failed");
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY, city);
+       c_warn_if(ret, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY, tzpath) is failed");
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET, timezone);
+       c_warn_if(ret, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET, tzpath) is failed");
+
+       free(city);
+       free(timezone);
+       free(tzpath);
+}
+
+static void __cal_setting_ug_time_zone_ug_layout_callback(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       CAL_FN_START;
+       c_retm_if(!ug, "ug is null");
+
+       Evas_Object *base;
+
+       base = ug_get_layout(ug);
+       if (!base) {
+               ug_destroy(ug);
+               return;
+       }
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               evas_object_show(base);
+               break;
+       default:
+               DBG("Unsupported ug layout");
+               break;
+       }
+}
+
+static void __cal_setting_ug_create_time_zone_ug(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       Item_data *item_data = data;
+
+       struct ug_cbs uc;
+
+       memset(&uc, 0, sizeof(struct ug_cbs));
+       uc.destroy_cb = __cal_setting_ug_time_zone_ug_destroy_callback;
+       uc.layout_cb = __cal_setting_ug_time_zone_ug_layout_callback;
+       uc.result_cb = __cal_setting_ug_time_zone_ug_result_callback;
+       uc.priv = item_data;
+
+       ug_create(NULL, "worldclock-efl", UG_MODE_FULLVIEW, NULL, &uc);
+
+}
+
+static Elm_Object_Item *__cal_setting_ug_add_genlist_item(struct ug_data *ugd, Evas_Object *genlist,Eina_Bool is_seperator,int index)
+{
+       c_retvm_if(!ugd, NULL, "ugd is null");
+       c_retvm_if(!genlist, NULL, "genlist is null");
+
+       Elm_Object_Item *item = NULL;
+       Item_data *item_data = NULL;
+
+       if(is_seperator) {
+               item = elm_genlist_item_append(genlist, &itc_seperator, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       } else {
+               item_data = calloc(1, sizeof(Item_data));
+               c_retvm_if(!item_data, NULL, "item_data is null");
+
+               item_data->ugd = ugd;
+
+               switch (index) {
+               case ITEM_LOCK_TIMEZONE_ON_OFF:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc_lock_tz, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_lock_time_zone_check_select_callback, item_data);
+                       ugd->item_time_zone_on_off = item_data->item;
+                       break;
+               case ITEM_LOCK_TIMEZONE_GUIDE_TEXT:
+                       if (!ugd->is_on) {
+                               item_data->index = index;
+                               item_data->item = elm_genlist_item_append(genlist, &itc_lock_tz_guide, item_data, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+                               elm_genlist_item_select_mode_set(item_data->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+                               ugd->item_time_zone_guide = item_data->item;
+                       } else {
+                               free(item_data);
+                               return NULL;
+                       }
+                       break;
+               case ITEM_TIMEZONE:
+                       if (ugd->is_on) {
+                               item_data->index = index;
+                               item_data->item = elm_genlist_item_append(genlist, &itc_tz, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_create_time_zone_ug, item_data);
+                               ugd->item_time_zone = item_data->item;
+                       } else {
+                               free(item_data);
+                               return NULL;
+                       }
+                       break;
+               case ITEM_FIRST_DAY_OF_WEEK:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc, item_data, NULL, ELM_GENLIST_ITEM_TREE, __cal_setting_genlist_item_select_callback, item_data);
+                       ugd->rgd_first_day = elm_radio_add((Evas_Object *)(item_data->item));
+                       elm_radio_state_value_set(ugd->rgd_first_day, -1);
+                       break;
+               case ITEM_SUNDAY:
+               case ITEM_MONDAY:
+               case ITEM_SATURDAY:
+               case ITEM_LOCALE_DEFAULT:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc_radio, item_data, ugd->item_first_day_of_week, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_radio_changed_callback, item_data);
+                       item_data->rgd = ugd->rgd_first_day;
+                       break;
+               case ITEM_WEEK_NUMBER_ON_OFF:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc_lock_tz, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_show_week_num_check_select_callback, item_data);
+                       break;
+               case ITEM_COMPLETED_TO_DO_ON_OFF:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc_lock_tz, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_show_complete_task_check_select_callback, item_data);
+                       break;
+               case ITEM_IMPORT_CALENDARS:
+               case ITEM_EXPORT_CALENDARS:
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_append(genlist, &itc_import, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_setting_genlist_item_import_export_select_callback, item_data);
+                       break;
+               default:
+                       free(item_data);
+                       return NULL;
+               }
+
+               if (item_data)
+                       item = item_data->item;
+       }
+
+       return item;
+
+}
+
+static void __cal_setting_ug_genlist_item_expand_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+       c_retm_if(!event_info, "event_info is null");
+
+       struct ug_data *ugd = data;
+       Elm_Object_Item *it = event_info;
+       Evas_Object *gl = elm_object_item_widget_get(it);
+
+       if (it == ugd->item_first_day_of_week) {
+
+               __cal_setting_ug_add_genlist_item(ugd, gl, EINA_FALSE, ITEM_LOCALE_DEFAULT);
+               __cal_setting_ug_add_genlist_item(ugd, gl, EINA_FALSE, ITEM_SATURDAY);
+               __cal_setting_ug_add_genlist_item(ugd, gl, EINA_FALSE, ITEM_SUNDAY);
+               __cal_setting_ug_add_genlist_item(ugd, gl, EINA_FALSE, ITEM_MONDAY);
+       }
+}
+
+static void __cal_setting_ug_genlist_item_contract_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!event_info, "event_info is null");
+
+       Elm_Object_Item *item = event_info;
+       elm_genlist_item_subitems_clear(item);
+}
+
+Evas_Object* cal_setting_ug_create_view(Evas_Object *navi, struct ug_data *ugd)
+{
+       c_retv_if(!navi, NULL);
+       c_retv_if(!ugd, NULL);
+
+       Evas_Object *layout = cal_util_add_layout(navi, "selectioninfo");
+       c_retv_if(!layout, NULL);
+
+       Evas_Object *genlist = elm_genlist_add(layout);
+       c_retvm_if(!genlist, NULL, "genlist is null");
+
+       elm_genlist_clear(genlist);
+       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
+
+       ugd->genlist = genlist;
+
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_TRUE, 0);
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_LOCK_TIMEZONE_ON_OFF);
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_LOCK_TIMEZONE_GUIDE_TEXT);
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_TIMEZONE);
+
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_TRUE,0);
+       ugd->item_first_day_of_week = __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_FIRST_DAY_OF_WEEK);
+
+       __cal_setting_ug_add_genlist_item(ugd, genlist, EINA_TRUE, 0);
+       __cal_setting_ug_add_genlist_item(ugd,genlist, EINA_FALSE, ITEM_WEEK_NUMBER_ON_OFF);
+
+       __cal_setting_ug_add_genlist_item(ugd, genlist, EINA_TRUE, 0);
+       __cal_setting_ug_add_genlist_item(ugd,genlist, EINA_FALSE, ITEM_COMPLETED_TO_DO_ON_OFF);
+
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_TRUE, 0);
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_IMPORT_CALENDARS);
+       __cal_setting_ug_add_genlist_item(ugd,genlist,EINA_FALSE,ITEM_EXPORT_CALENDARS);
+
+       __cal_setting_ug_add_genlist_item(ugd, genlist, EINA_TRUE, 0);
+
+       evas_object_smart_callback_add(genlist, "expanded", __cal_setting_ug_genlist_item_expand_callback, ugd);
+       evas_object_smart_callback_add(genlist, "contracted", __cal_setting_ug_genlist_item_contract_callback, ugd);
+
+       elm_object_part_content_set(layout, "gen.swallow.contents", genlist);
+
+       return layout;
+}
+
+static void __cal_setting_gl_insert_genlist_item(struct ug_data *ugd, Evas_Object *genlist, Elm_Object_Item *item_after, int index)
+{
+       c_retm_if(!ugd, "ugd is NULL");
+       c_retm_if(!genlist, "genlist is NULL");
+       c_retm_if(!item_after, "item_after is NULL");
+
+       Item_data *item_data = calloc(1, sizeof(Item_data));
+       c_retm_if(!item_data, "item_data is NULL");
+
+       item_data->ugd = ugd;
+
+       switch (index) {
+       case ITEM_TIMEZONE:
+               if (ugd->is_on) {
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_insert_after(genlist, &itc_tz, item_data, NULL, item_after, ELM_GENLIST_ITEM_NONE, __cal_setting_ug_create_time_zone_ug, item_data);
+                       ugd->item_time_zone = item_data->item;
+               } else {
+                       free(item_data);
+               }
+               break;
+       case ITEM_LOCK_TIMEZONE_GUIDE_TEXT:
+               if (!ugd->is_on) {
+                       item_data->index = index;
+                       item_data->item = elm_genlist_item_insert_after(genlist, &itc_lock_tz_guide, item_data, NULL, item_after, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+                       elm_genlist_item_select_mode_set(item_data->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+                       ugd->item_time_zone_guide = item_data->item;
+               } else {
+                       free(item_data);
+               }
+               break;
+       default:
+               free(item_data);
+               break;
+       }
+}
diff --git a/ug/settings/ug-settings-view.h b/ug/settings/ug-settings-view.h
new file mode 100755 (executable)
index 0000000..48c5c17
--- /dev/null
@@ -0,0 +1,25 @@
+/*\r
+  *\r
+  *  Copyright 2012  Samsung Electronics Co., Ltd\r
+  *\r
+  *  Licensed under the Flora License, Version 1.0 (the "License");\r
+  *  you may not use this file except in compliance with the License.\r
+  *  You may obtain a copy of the License at\r
+  *\r
+  *      http://floralicense.org/license/\r
+  *\r
+  *  Unless required by applicable law or agreed to in writing, software\r
+  *  distributed under the License is distributed on an "AS IS" BASIS,\r
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+  *  See the License for the specific language governing permissions and\r
+  *  limitations under the License.\r
+  */\r
+\r
+\r
+#ifndef __CALENDAR_UG_SETTING_VIEW_H__\r
+#define __CALENDAR_UG_SETTING_VIEW_H__\r
+\r
+Evas_Object *cal_setting_ug_create_view(Evas_Object *navi, struct ug_data *ugd);\r
+\r
+#endif /* __CALENDAR_UG_SETTING_VIEW_H__ */\r
+\r
diff --git a/ug/settings/ug-settings.c b/ug/settings/ug-settings.c
new file mode 100755 (executable)
index 0000000..8a8ed34
--- /dev/null
@@ -0,0 +1,411 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <ui-gadget-module.h>
+#include <libintl.h>
+#include <vconf.h>
+
+#include "cld.h"
+#include "ug-settings.h"
+#include "ug-settings-view.h"
+
+static void __cal_setting_ug_back_button_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       struct ug_data *ugd = data;
+       evas_object_hide(ugd->bg);
+       ug_destroy_me(ugd->ug);
+}
+
+static void __cal_setting_ug_initialize(struct ug_data *ugd)
+{
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_connect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_connect() is failed(%x)", error);
+
+       _calendar_init_hash();
+
+       char *text = vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY);
+       c_warn_if(!text, "vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY) is failed");
+
+       if (text) {
+               ugd->city = strdup(text);
+               free(text);
+       }
+       else {
+               ERR("tz_city is null");
+               ugd->city = strdup("IDS_WCL_BODY_CITYNAME_SEOUL");
+               c_warn_if(!ugd->city, "ugd->city is null");
+       }
+
+       text = vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET);
+       c_warn_if(!text, "vconf_get_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET) is failed");
+
+       if (text) {
+               ugd->time_zone = g_strdup_printf("GMT%s",text);
+               free(text);
+       }
+       else {
+               ERR("tz_offset is null");
+               ugd->time_zone = strdup("GMT+9");
+               c_warn_if(!ugd->time_zone, "ugd->city is null");
+       }
+
+       int ret = 0;
+
+       ret = vconf_get_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, &ugd->is_on);
+       c_warn_if(ret, "vconf_get_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, &ugd->is_on) is failed");
+
+       ret = vconf_get_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, &ugd->is_display_weeknumber);
+       c_warn_if(ret, "vconf_get_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, &ugd->is_display_weeknumber) is failed");
+
+       ret = vconf_get_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, &ugd->is_complete_todo);
+       c_warn_if(ret, "vconf_get_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, &ugd->is_complete_todo) is failed");
+
+       if (0 != vconf_get_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK,&ugd->first_day_of_week)) {
+               ret = vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, FIRST_DAY_MONDAY);
+               c_warn_if(ret != 0,"vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, 1) is failed(%d)", ret);
+       }
+
+}
+
+static Evas_Object *__cal_setting_ug_create_layout(Evas_Object *parent, struct ug_data *ugd)
+{
+       Evas_Object *bt_back = NULL;
+       Elm_Object_Item* navi_item = NULL;
+
+       ugd->base = cal_util_add_layout(parent, NULL);
+       CAL_ASSERT(ugd->base);
+
+       ugd->bg = cal_util_add_bg(ugd->base, EINA_FALSE);
+       CAL_ASSERT(ugd->bg);
+
+       ugd->naviframe = elm_naviframe_add(ugd->base);
+       CAL_ASSERT(ugd->naviframe);
+
+       ugd->layout = cal_setting_ug_create_view(ugd->naviframe, ugd);
+       CAL_ASSERT(ugd->layout);
+
+       navi_item = elm_naviframe_item_push(ugd->naviframe, S_("IDS_COM_BODY_CALENDAR"), NULL, NULL, ugd->layout, NULL);
+
+       bt_back = elm_object_item_part_content_get(navi_item, "prev_btn");
+       if (!bt_back)
+       {
+               bt_back = elm_button_add(ugd->naviframe);
+               elm_object_item_part_content_set(navi_item, "prev_btn", bt_back);
+       }
+       elm_object_style_set(bt_back, "naviframe/back_btn/default");
+       evas_object_smart_callback_add(bt_back, "clicked", __cal_setting_ug_back_button_callback, ugd);
+
+       elm_object_part_content_set(ugd->base, "elm.swallow.content", ugd->naviframe);
+       elm_object_part_content_set(ugd->base, "elm.swallow.bg", ugd->bg);
+
+       return ugd->base;
+}
+
+static void *__cal_setting_ug_create_callback(ui_gadget_h ug, enum ug_mode mode, service_h data, void *priv)
+{
+       Evas_Object *parent;
+       struct ug_data *ugd;
+       Evas_Object *base;
+
+       if (!ug || !priv)
+               return NULL;
+
+       cal_util_connect_pattern_generator();
+
+       ugd = priv;
+       ugd->ug = ug;
+       __cal_setting_ug_initialize(ugd);
+       if (mode != UG_MODE_FULLVIEW)
+               return NULL;
+       parent = ug_get_parent_layout(ug);
+       if (!parent)
+               return NULL;
+
+       base = __cal_setting_ug_create_layout(parent, ugd);
+       if (!base) {
+               calendar_error_e error = CALENDAR_ERROR_NONE;
+
+               error = calendar_disconnect();
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_disconnect() is failed(%x)", error);
+               return NULL;
+       }
+       return base;
+}
+
+static void __cal_setting_ug_destroy_callback(ui_gadget_h ug, service_h data, void *priv)
+{
+       struct ug_data *ugd;
+
+       if (!ug || !priv)
+               return;
+
+       ugd = priv;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_disconnect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_disconnect() is failed(%x)", error);
+
+       cal_util_delete_evas_object(&ugd->base);
+
+       if (ugd->idler) {
+               ecore_idler_del(ugd->idler);
+               ugd->idler = NULL;
+       }
+
+       _calendar_free_record_list(&ugd->my_phone_calendar_list);
+
+       _calendar_free_record_list(&ugd->checked_calendar_list);
+}
+
+static void __cal_setting_ug_key_callback(ui_gadget_h ug, enum ug_key_event evt,
+               service_h data, void *priv)
+{
+       if (!ug)
+               return;
+
+       DBG("UG: key event %d", evt);
+
+       switch (evt) {
+       case UG_KEY_EVENT_END:
+               ug_destroy_me(ug);
+               break;
+       default:
+               break;
+       }
+}
+
+static int * __cal_setting_get_arrary_from_list(Eina_List *list)
+{
+       c_retv_if(!list, NULL);
+
+       int *array = NULL;
+
+       array = calloc(eina_list_count(list), sizeof(int));
+
+       Eina_List *cursor = NULL;
+
+       int index = 0;
+
+       void *data = 0;
+
+       EINA_LIST_FOREACH(list, cursor, data) {
+               *(array + index++) = (int)data;
+       }
+
+       return array;
+}
+
+API int setting_plugin_reset(service_h data, void *priv)
+{
+       CAL_FN_START;
+
+       int ret;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_connect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_connect() is failed(%x)", error);
+
+       _calendar_init_hash();
+
+       ret = vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, FIRST_DAY_MONDAY);
+       c_warn_if(ret != 0, "vconf_set_int(CAL_VCONFKEY_FIRST_DAY_OF_WEEK, 1) is failed(%d)", ret);
+
+       ret = vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW, 0);
+       c_warn_if(ret != 0, "vconf_set_int(CAL_VCONFKEY_FOCUS_VIEW, 0) is failed(%d)", ret);
+
+       ret = vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, 0);
+       c_warn_if(ret != 0, "vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_ON_OFF, 0) is failed(%d)", ret);
+
+       ret = vconf_set_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, 0);
+       c_warn_if(ret != 0, "vconf_set_int(CAL_VCONFKEY_WEEK_NMUBER_ON_OFF, 0) is failed(%d)", ret);
+
+       ret = vconf_set_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, 1);
+       c_warn_if(ret != 0, "vconf_set_int(CAL_VCONFKEY_COMPLETE_TODO_ON_OFF, 1) is failed(%d)", ret);
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, "Asia/Seoul");
+       c_warn_if(ret != 0, "vconf_set_int(CAL_VCONFKEY_LOCK_TIMEZONE_PATH, 'Seoul') is failed(%d)", ret);
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY, "IDS_WCL_BODY_CITYNAME_SEOUL");
+       c_warn_if(ret != 0, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_CITY, tzpath) is failed");
+
+       ret = vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET, "+9");
+       c_warn_if(ret != 0, "vconf_set_str(CAL_VCONFKEY_LOCK_TIMEZONE_OFFSET, tzpath) is failed");
+
+       calendar_list_h list = NULL;
+
+       error = calendar_db_get_all_records(_calendar_book._uri, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_all_records() is failed(%x)", error);
+
+       int count = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       int i = 0;
+
+       calendar_record_h record = NULL;
+
+       int index = 0;
+
+       Eina_List *index_list = NULL;
+
+       for (i = 0; i < count; i++) {
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               error = calendar_record_get_int(record, _calendar_book.id, &index);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               if (index != DEFAULT_EVENT_CALENDAR_BOOK_ID && index != DEFAULT_TODO_CALENDAR_BOOK_ID)
+                       index_list = eina_list_append(index_list, (void *)index);
+       }
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       int *index_array = __cal_setting_get_arrary_from_list(index_list);
+
+       error = calendar_db_delete_records(_calendar_book._uri, index_array, eina_list_count(index_list));
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_delete_records() is failed(%x)", error);
+
+       CAL_FREE(index_array);
+
+       eina_list_free(index_list);
+
+       error = calendar_db_get_all_records(_calendar_event._uri, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_all_records() is failed(%x)", error);
+
+       count = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       i = 0;
+
+       record = NULL;
+
+       index = 0;
+
+       index_list = NULL;
+
+       for (i = 0; i < count; i++) {
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               error = calendar_record_get_int(record, _calendar_event.id, &index);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               index_list = eina_list_append(index_list, (void *)index);
+       }
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       index_array = __cal_setting_get_arrary_from_list(index_list);
+
+       error = calendar_db_delete_records(_calendar_event._uri, index_array, eina_list_count(index_list));
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_delete_records() is failed(%x)", error);
+
+       CAL_FREE(index_array);
+
+       eina_list_free(index_list);
+
+       error = calendar_db_get_all_records(_calendar_todo._uri, 0, 0, &list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_get_all_records() is failed(%x)", error);
+
+       count = 0;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       i = 0;
+
+       record = NULL;
+
+       index = 0;
+
+       index_list = NULL;
+
+       for (i = 0; i < count; i++) {
+
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               error = calendar_record_get_int(record, _calendar_todo.id, &index);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_record_get_int() is failed(%x)", error);
+
+               index_list = eina_list_append(index_list, (void *)index);
+       }
+
+       error = calendar_list_destroy(list, true);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+       index_array = __cal_setting_get_arrary_from_list(index_list);
+
+       error = calendar_db_delete_records(_calendar_todo._uri, index_array, eina_list_count(index_list));
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_db_delete_records() is failed(%x)", error);
+
+       CAL_FREE(index_array);
+
+       eina_list_free(index_list);
+
+       error = calendar_disconnect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_disconnect() is failed(%x)", error);
+
+       return 0;
+}
+
+API int UG_MODULE_INIT(struct ug_module_ops *ops)
+{
+       struct ug_data *ugd;
+
+       if (!ops)
+               return -1;
+
+       CAL_CALLOC(ugd, 1, struct ug_data);
+
+       ops->create = __cal_setting_ug_create_callback;
+       ops->destroy = __cal_setting_ug_destroy_callback;
+       ops->key_event = __cal_setting_ug_key_callback;
+       ops->priv = ugd;
+       ops->opt = UG_OPT_INDICATOR_ENABLE;
+
+       const char *path = bindtextdomain(CALENDAR, LOCALEDIR);
+       c_warn_if(!path, "bindtextdomain(%s, %s) is failed.", CALENDAR, LOCALEDIR);
+
+       return 0;
+}
+
+API void UG_MODULE_EXIT(struct ug_module_ops *ops)
+{
+       struct ug_data *ugd;
+
+       cal_util_disconnect_pattern_generator();
+
+       if (!ops)
+               return;
+
+       ugd = ops->priv;
+       free(ugd);
+}
diff --git a/ug/settings/ug-settings.h b/ug/settings/ug-settings.h
new file mode 100755 (executable)
index 0000000..ad6c53a
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#ifndef __CALENDAR_UG_H__
+#define __CALENDAR_UG_H__
+
+#include <Elementary.h>
+#include <ui-gadget-module.h>
+
+#define CAL_TEXT_MAX_LEN 1024
+#define CAL_TEXT_SHORT_LEN 256
+
+enum cld_ug_mode {
+       _MODE_UNKNOWN = 0,
+       _MODE_GET_EVT,
+       _MODE_GET_VCS,
+       _MODE_VIEW_VCS,
+};
+
+typedef enum{
+       FIRST_DAY_LOCALE_DEFAULT = -1,
+       FIRST_DAY_SUNDAY = 0,
+       FIRST_DAY_MONDAY = 1,
+       FIRST_DAY_SATURDAY = 6,
+} cld_first_day_type;
+
+typedef struct {
+       int cnt;
+       int cnt_loop;
+       int cnt_checked_total;
+       int result;
+       bool alive;
+       bool completed;
+       pthread_t thread;
+       Ecore_Timer *timer;
+       Evas_Object *progressbar;
+       Evas_Object *layout;
+       Evas_Object *label;
+} cal_progress_info;
+
+struct ug_data {
+       Evas_Object *base;
+       Evas_Object *layout;
+       ui_gadget_h ug;
+
+       Evas_Object *naviframe;
+       Evas_Object *cont;
+       Evas_Object *bg;
+
+       enum cld_ug_mode mode;
+       char *caller;
+       char *vcs_file;
+
+       Elm_Object_Item *item_time_zone_on_off;
+       Elm_Object_Item *item_time_zone_guide;
+       Elm_Object_Item *item_time_zone;
+       Elm_Object_Item *item_first_day_of_week;
+       Evas_Object *rgd_first_day;
+
+       Evas_Object *genlist;
+
+       int is_on;
+       cld_first_day_type first_day_of_week;
+       int is_complete_todo;
+       int is_display_weeknumber;
+
+       char *city;
+       char *time_zone;
+
+       Evas_Object *popup;
+       Eina_List *my_phone_calendar_list;
+       Eina_List *checked_calendar_list;
+       Evas_Object *notify;
+
+       char *path;
+       cal_progress_info *p_info;
+       int setting_mode;
+
+       Ecore_Idler *idler;
+};
+
+void cal_list_ug_create(const char *title, struct ug_data *ugd);
+
+// TODO: get full path from caller
+#define VFILE_PATH "/opt/usr/media/Others"
+
+#endif /* __CALENDAR_UG_H__ */
diff --git a/viewer/CMakeLists.txt b/viewer/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..d88affd
--- /dev/null
@@ -0,0 +1,47 @@
+LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
+
+SET(VIEWER calendar-viewer)
+
+SET(SRCS viewer.c
+       ${CMAKE_SOURCE_DIR}/src/detail-view.c
+)
+
+SET(VC_PKGNAME "${VENDOR}.${VIEWER}")
+SET(VC_PREFIX "/usr/apps/${VC_PKGNAME}")
+SET(VC_BINDIR "${VC_PREFIX}/bin")
+SET(VC_RESDIR "${VC_PREFIX}/res")
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(viewer_pkgs REQUIRED 
+       elementary 
+       calendar-service2
+       contacts-service2
+       icu-i18n 
+       capi-appfw-application 
+       appsvc
+       ui-gadget-1
+)
+
+FOREACH(flag ${viewer_pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(viewer_pkgs_LDFLAGS "${pkgs_LDFLAGS} ${viewer_pkgs_LDFLAGS}")
+
+ADD_DEFINITIONS("-DVC_PACKAGE=\"${VIEWER}\"")
+ADD_DEFINITIONS("-DVC_PACKAGE_NAME=\"${VC_PKGNAME}\"")
+
+ADD_EXECUTABLE(${VIEWER} ${SRCS})
+SET_TARGET_PROPERTIES(${VIEWER} PROPERTIES COMPILE_FLAGS "${EXTRA_CFLAGS}")
+#TARGET_LINK_LIBRARIES(${VIEWER} ug-calendar-detail-efl ug-calendar-edit-efl ${viewer_pkgs_LDFLAGS} "-fpie")
+TARGET_LINK_LIBRARIES(${VIEWER} ${COMMON_LIB} ${viewer_pkgs_LDFLAGS} "-pie -lm")
+
+INSTALL(TARGETS ${VIEWER} DESTINATION ${VC_BINDIR})
+
+# install desktop file & icon
+CONFIGURE_FILE(${VIEWER}.xml ${CMAKE_BINARY_DIR}/${VC_PKGNAME}.xml)
+INSTALL(FILES ${CMAKE_BINARY_DIR}/${VC_PKGNAME}.xml DESTINATION "/usr/share/packages")
+
+INSTALL(FILES ${CMAKE_BINARY_DIR}/LICENSE.Flora DESTINATION /usr/share/license RENAME ${VC_PKGNAME})
diff --git a/viewer/calendar-viewer.xml b/viewer/calendar-viewer.xml
new file mode 100644 (file)
index 0000000..a194ba3
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.calendar-viewer" version="0.1.2">
+       <label>Calendar Viewer</label>
+       <author email="jiwony.park@samsung.com" href="www.samsung.com">Jiwon Park</author>
+       <description>Tizen Calendar app</description>
+       <ui-application appid="org.tizen.calendar-viewer" exec="@VC_PREFIX@/bin/@VIEWER@" nodisplay="true" multiple="false" type="capp" taskmanage="true">
+               <label>Calendar Viewer</label>
+               <icon>${PKGNAME}.png</icon>
+               <application-service>
+               <operation name="http://tizen.org/appcontrol/operation/view"/>
+                   <mime name="text/calendar"/>
+               </application-service>
+       </ui-application>
+</manifest>
+
diff --git a/viewer/org.tizen.calendar-viewer.manifest b/viewer/org.tizen.calendar-viewer.manifest
new file mode 100644 (file)
index 0000000..2d6e79c
--- /dev/null
@@ -0,0 +1,9 @@
+<manifest>
+       <request>
+               <domain name="org.tizen.calendar"/>
+       </request>
+       <assign>
+               <filesystem path="/usr/share/applications/org.tizen.calendar-viewer.desktop" label="_"/>
+               <filesystem path="/usr/share/icons/default/small/org.tizen.calendar.png" label="_"/>
+       </assign>
+</manifest>
diff --git a/viewer/viewer.c b/viewer/viewer.c
new file mode 100755 (executable)
index 0000000..54cb8b2
--- /dev/null
@@ -0,0 +1,552 @@
+
+
+/*
+  *
+  *  Copyright 2012  Samsung Electronics Co., Ltd
+  *
+  *  Licensed under the Flora License, Version 1.0 (the "License");
+  *  you may not use this file except in compliance with the License.
+  *  You may obtain a copy of the License at
+  *
+  *      http://floralicense.org/license/
+  *
+  *  Unless required by applicable law or agreed to in writing, software
+  *  distributed under the License is distributed on an "AS IS" BASIS,
+  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  *  See the License for the specific language governing permissions and
+  *  limitations under the License.
+  */
+
+
+#include <stdio.h>
+#include <aul.h>
+#include <Ecore_X.h>
+#include <ui-gadget.h>
+#include <app.h>
+
+#include "detail-view.h"
+
+#define SERVICE_CALENDAR_VIEWER_CAL_ID_NAME "cal_id"
+#define SERVICE_CALENDAR_VIEWER_MIME_NAME AUL_K_MIME_CONTENT
+#define VCALENDAR_LABLE_STRING_LENGTH 128
+
+#if !defined(CV_PACKAGE)
+#  define CV_PACKAGE "calendar-viewer"
+#endif
+
+typedef struct {
+       struct appdata *ad;
+       Evas_Object *layout;
+       Evas_Object *genlist;
+       Evas_Object *save_to_calendar;
+       int selected_item_count;
+}cal_viewer_data;
+
+typedef struct {
+       calendar_record_h record;
+       Eina_Bool checked;
+}vcs_item_data;
+
+static char *__cal_viewer_get_vcs_genlist_item_label(void *data, Evas_Object *obj, const char *part);
+static Evas_Object* __cal_viewer_get_vcs_genlist_icon(void *item_data, Evas_Object *obj, const char *part);
+static void __cal_viewer_create_view(struct appdata *ad, Evas_Object *parent, calendar_list_h list);
+static void __cal_viewer_update_small_info(cal_viewer_data *p, int count);
+
+static Elm_Genlist_Item_Class itc_3text_1icon_2 = {
+       .item_style = "3text.1icon.2",
+       .func.text_get = __cal_viewer_get_vcs_genlist_item_label,
+       .func.content_get = __cal_viewer_get_vcs_genlist_icon,
+       .func.del = NULL,
+       .decorate_all_item_style = "edit_default",
+};
+
+static char* __cal_viewer_vcs_get_time_str(calendar_record_h record)
+{
+       c_retv_if(!record, NULL);
+
+       char stime[512] = {0};
+
+       struct tm tm = {0};
+       const char* time = CAL_UTIL_TIME_FORMAT_1;
+
+       calendar_time_s start_time = {0};
+
+       _calendar_get_start_time(record, &start_time);
+
+       cal_util_convert_lli_to_tm(NULL, start_time.time.utime, &tm);
+
+       cal_util_get_time_text(stime, sizeof(stime), NULL, time, &tm);
+
+       return g_strdup_printf("%s", stime);
+}
+
+static char *__cal_viewer_get_vcs_genlist_item_label(void *data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!data, NULL, "data is null");
+       c_retvm_if(!part, NULL, "part is null");
+
+       vcs_item_data *item_data = (vcs_item_data*)data;
+       c_retv_if(!item_data->record, NULL);
+
+       if (!CAL_STRCMP(part,"elm.text.1")) {
+               return _calendar_get_summary(item_data->record);
+
+       } else if (!CAL_STRCMP(part,"elm.text.2")) {
+               return _calendar_get_location(item_data->record);
+
+       } else if (!CAL_STRCMP(part, "elm.text.3")) {
+
+               return __cal_viewer_vcs_get_time_str(item_data->record);
+       }
+
+       return NULL;
+}
+
+static void __cal_viewer_update_small_info(cal_viewer_data *p, int count)
+{
+       c_retm_if(!p, "p is null");
+
+       if (count <= 0) {
+               cal_util_hide_small_information(p->layout);
+               return;
+       }
+
+       struct appdata *ad = p->ad;
+       c_retm_if(!ad, "ad is null");
+
+       Evas_Object *nv = ad->naviframe;
+       c_retm_if(!nv, "nv is null");
+
+       char lable_str[VCALENDAR_LABLE_STRING_LENGTH] = { '\0'};
+
+       snprintf(lable_str, sizeof(lable_str), "%s (%d)", S_("IDS_COM_POP_SELECTED"), count);
+
+       cal_util_show_small_information(p->layout, lable_str, 0.0);
+}
+
+static void __cal_viewer_vcs_check_changed_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       vcs_item_data *item_data= data;
+
+       Evas_Object *genlist = elm_object_parent_widget_get(obj);
+       c_retm_if(!genlist, "genlist is null");
+
+       cal_viewer_data *p = evas_object_data_get(genlist, "priv");
+       c_retm_if(!p, "p is null");
+
+       Eina_Bool checked = elm_check_state_get(obj);
+       if (checked) {
+               p->selected_item_count++;
+               item_data->checked = EINA_TRUE;
+       } else {
+               p->selected_item_count--;
+               item_data->checked = EINA_FALSE;
+       }
+
+       if (0 < p->selected_item_count)
+               elm_object_disabled_set(p->save_to_calendar, EINA_FALSE);
+       else
+               elm_object_disabled_set(p->save_to_calendar, EINA_TRUE);
+
+       __cal_viewer_update_small_info(p, p->selected_item_count);
+}
+
+static Evas_Object* __cal_viewer_get_vcs_genlist_icon(void *item_data, Evas_Object *obj, const char *part)
+{
+       c_retvm_if(!part, NULL, "part is null");
+       c_retvm_if(!obj, NULL, "obj is null");
+       c_retvm_if(!item_data, NULL, "data is null");
+
+       Evas_Object *icon = NULL;
+       vcs_item_data *item = item_data;
+       c_retvm_if(!item->record, NULL, "item->record is null");
+
+       if (!CAL_STRCMP(part, "elm.icon") ) {
+               icon = elm_check_add(obj);
+               c_retvm_if(!icon, NULL, "elm_check_add returned null");
+
+               elm_check_state_pointer_set(icon, &item->checked);
+               evas_object_smart_callback_add(icon, "changed", __cal_viewer_vcs_check_changed_callback, item);
+               evas_object_propagate_events_set(icon, EINA_FALSE);
+               return icon;
+       }
+
+       return NULL;
+}
+
+static bool viewer_create(void *data)
+{
+       struct appdata *ad = data;
+       Evas_Object *win;
+       Evas_Object *bg;
+       Evas_Object *nv;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_connect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_connect() is failed(%x)", error);
+
+       _calendar_init_hash();
+
+       elm_theme_extension_add(NULL, "/usr/apps/"CALENDAR_PACKAGE"/res/edje/theme.edj");
+
+       /* create window */
+       win = cal_util_add_window(CV_PACKAGE, NULL, NULL);
+       c_retvm_if(!win, false, "cal_util_add_window() Failed");
+       ad->win = win;
+
+       bg = cal_util_add_bg(win, EINA_TRUE);
+       c_retvm_if(NULL == bg, false, "cal_util_add_bg() Failed");
+
+       Evas_Object *conformant = elm_conformant_add(win);
+       c_retv_if(!conformant, false);
+
+       evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(win, conformant);
+       evas_object_show(conformant);
+
+       Evas_Object *base_layout = elm_layout_add(conformant);
+       c_retv_if(!base_layout, false);
+
+       Eina_Bool r = elm_layout_theme_set(base_layout, "layout", "application", "default");
+       c_warn_if(!r, "elm_layout_theme_set is failed");
+
+       evas_object_size_hint_weight_set(base_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       elm_object_content_set(conformant, base_layout);
+
+       ad->base = base_layout;
+
+       nv = elm_naviframe_add(ad->base);
+       c_retvm_if(NULL == win, false, "elm_naviframe_add() Failed");
+       ad->naviframe = nv;
+       elm_object_part_content_set(ad->base, "elm.swallow.content", ad->naviframe);
+
+       const char *path = bindtextdomain(CALENDAR, LOCALEDIR);
+       c_warn_if(!path, "bindtextdomain(%s, %s) is failed.", CALENDAR, LOCALEDIR);
+
+       cal_util_connect_pattern_generator();
+
+       evas_object_show(win);
+
+       UG_INIT_EFL(ad->win, UG_OPT_INDICATOR_PORTRAIT_ONLY);
+
+       return true;
+}
+
+static void viewer_terminate(void *data)
+{
+       struct appdata *ad = data;
+
+       cal_util_disconnect_pattern_generator();
+
+       ug_destroy_all();
+
+       if (ad->win)
+               evas_object_del(ad->win);
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_disconnect();
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_disconnect() is failed(%x)", error);
+
+       return;
+}
+
+static void viewer_pause(void *data)
+{
+       ug_pause();
+
+       return;
+}
+
+static void viewer_resume(void *data)
+{
+       ug_resume();
+
+       return;
+}
+
+static void viewer_service(service_h service, void *data)
+{
+       c_retm_if(!service, "service is null.");
+       c_retm_if(!data, "data is null.");
+
+       int cal_id;
+       int r;
+       char *operation = NULL;
+       char *val_cal_id = NULL;
+       char *val_ical = NULL;
+       struct appdata *ad = data;
+
+       if (NULL == ad->win) {
+               ERR("win is NULL");
+               elm_exit();
+               return;
+       }
+
+       r = service_get_extra_data(service, SERVICE_CALENDAR_VIEWER_CAL_ID_NAME, &val_cal_id);
+       c_warn_if(SERVICE_ERROR_NONE != r, "service_get_extra_data is failed(%d).", r);
+
+       if (val_cal_id && *val_cal_id) {
+               cal_id = atoi(val_cal_id);
+               if (cal_id <= 0) {
+                       ERR("bundle value(cal_id) is wrong(%d)", cal_id);
+               }
+               else {
+                       ad->cid= cal_id;
+
+                       calendar_record_h record = _calendar_get_record_with_index(cal_id);
+
+                       cal_detail_create_view(ad, record, NULL, NULL);
+               }
+
+               free(val_cal_id);
+               val_cal_id = NULL;
+       } else {
+               r = service_get_operation(service, &operation);
+               c_retm_if(SERVICE_ERROR_NONE != r, "service_get_operation is failed.");
+
+               r = service_get_uri(service, &val_ical);
+               c_retm_if(SERVICE_ERROR_NONE != r, "service_get_uri is failed.");
+
+               /*MIME CONTENT FOR VCS*/
+               if (val_ical) {
+                       char *raw_data = NULL;
+                       int size = 0;
+                       struct stat st;
+
+                       FILE * file = fopen(val_ical, "r");
+                       if(!file) {
+                               free(raw_data);
+                               ERR("Failed to open file!");
+                               return;
+                       }
+
+                       if(stat(val_ical, &st) != 0) {
+                               free(raw_data);
+                               ERR("stat() is failed!");
+                               fclose( file );
+                               return;
+                       }
+
+                       size = st.st_size;
+                       CAL_CALLOC(raw_data, (size+1), char);
+                       CAL_ASSERT(raw_data);
+                       memset(raw_data,0,(size+1));
+
+                       r = fread(raw_data, 1, size, file);
+                       if (r < 0) {
+                               free(raw_data);
+                               ERR("Failed to read file!");
+                               return;
+                       }
+
+                       fclose( file );
+
+                       ad->is_aul = EINA_TRUE;
+                       ad->request_view = CV_DETAIL;
+
+                       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+                       calendar_list_h list = NULL;
+
+                       error = calendar_vcalendar_parse_to_calendar(raw_data, &list);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_vcalendar_parse_to_calendar() is failed(%x)", error);
+
+                       __cal_viewer_create_view(ad, ad->naviframe, list);
+
+                       error = calendar_list_destroy(list, false);
+                       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_destroy() is failed(%x)", error);
+
+                       free(raw_data);
+                       free(val_ical);
+                       val_ical = NULL;
+               }
+               else {
+                       ERR("bundle value is NULL");
+                       elm_exit();
+                       return;
+               }
+       }
+
+       elm_win_activate(ad->win);
+       return;
+}
+
+static void __cal_viewer_genlist_select_callback(void *data, Evas_Object *obj, void *event_info)
+{
+       c_retm_if(!data, "data is null");
+
+       vcs_item_data *item = data;
+       c_retm_if(!item->record, "__cal_viewer_genlist_sel param error");
+
+       cal_viewer_data *p = evas_object_data_get(obj, "priv");
+       c_retm_if(!p || !p->ad, "p is null");
+
+       elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
+
+       cal_detail_create_view(p->ad, item->record, NULL, NULL);
+}
+
+static void __cal_viewer_save_to_calendar_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       cal_viewer_data *p = data;
+       c_retm_if(!p, "p is null");
+
+       Elm_Object_Item *it = NULL;
+       Elm_Object_Item *temp = NULL;
+       vcs_item_data *item = NULL;
+       it = elm_genlist_first_item_get(p->genlist);
+
+       int saved_item_count = 0;
+
+       while (it) {
+               item = elm_object_item_data_get(it);
+               temp = elm_genlist_item_next_get(it);
+               if (NULL == item) {
+                       it = temp;
+                       continue;
+               }
+
+               if (item && item->record && EINA_TRUE == item->checked) {
+                       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+                       error = calendar_db_insert_record(item->record, NULL);
+                       if (error == CALENDAR_ERROR_NONE)
+                               saved_item_count++;
+                       else
+                               ERR("calendar_db_insert_record() is failed(%x)", error);
+               }
+               it = temp;
+       }
+
+}
+
+static void __cal_viewer_back_button_callback(void *data, Evas_Object *obj, void *ei)
+{
+       CAL_FN_START;
+
+       cal_viewer_data *p = data;
+       c_retm_if(!p || !p->genlist,  "p is null");
+
+       elm_genlist_clear(p->genlist);
+       elm_exit();
+}
+
+static void __cal_viewer_create_view(struct appdata *ad, Evas_Object *parent, calendar_list_h list)
+{
+       CAL_FN_START;
+
+       c_retm_if(!ad || !parent || !list, "Input parameter is null");
+
+       cal_viewer_data *p = calloc(1, sizeof(cal_viewer_data));
+       c_retm_if(!p, "calloc is null");
+
+       p->ad = ad;
+
+       Evas_Object *layout = cal_util_add_layout(parent, "selectioninfo");
+       if (!layout){
+               ERR("layout is NULL!");
+               free(p);
+               return;
+       }
+
+       p->layout = layout;
+
+       Evas_Object *genlist = elm_genlist_add(layout);
+       if(!genlist){
+               ERR("genlist is NULL!");
+               evas_object_del(p->layout);
+               free(p);
+               return;
+       }
+
+       elm_object_part_content_set(layout, "gen.swallow.contents", genlist);
+
+       Evas_Object *back_button;
+       Elm_Object_Item* navi_item;
+
+       int i = 0;
+       int count = 0;
+
+       calendar_error_e error = CALENDAR_ERROR_NONE;
+
+       error = calendar_list_get_count(list, &count);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_count() is failed(%x)", error);
+
+       error = calendar_list_first(list);
+       c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_first() is failed(%x)", error);
+
+       calendar_record_h record = NULL;
+
+       for (i = 0; i < count; i++) {
+               error = calendar_list_get_current_record_p(list, &record);
+               c_warn_if(error != CALENDAR_ERROR_NONE, "calendar_list_get_current_record_p() is failed(%x)", error);
+
+               vcs_item_data *item_data = calloc(1, sizeof(vcs_item_data));
+               if(!item_data)
+               {
+                       ERR("calloc is null!");
+                       free(p);
+                       return;
+               }
+
+               item_data->checked = EINA_FALSE;
+               item_data->record = record;
+               elm_genlist_item_append(genlist, &itc_3text_1icon_2, item_data, NULL, ELM_GENLIST_ITEM_NONE, __cal_viewer_genlist_select_callback, item_data);
+
+               calendar_list_next(list);
+       }
+
+       evas_object_data_set(genlist, "priv", p);
+       p->genlist = genlist;
+
+       //TODO: i18n
+       navi_item = elm_naviframe_item_push(ad->naviframe, _("VCS Viewer"), NULL, NULL, layout, NULL);
+       if (!navi_item) {
+               ERR("elm_naviframe_item_push is failed");
+               evas_object_del(genlist);
+               return;
+       }
+
+       p->save_to_calendar = cal_util_add_toolbar_button(ad->naviframe, "toolbar_button1", S_("IDS_COM_OPT_SAVE"), __cal_viewer_save_to_calendar_button_callback, p);
+       elm_object_disabled_set(p->save_to_calendar, EINA_TRUE);
+
+       back_button = elm_object_item_part_content_get(navi_item, "prev_btn");
+       if (!back_button) {
+               back_button = elm_button_add(ad->naviframe);
+               c_retm_if(!back_button, "elm_button_add is failed.");
+
+               elm_object_style_set(back_button, "naviframe/back_btn/default");
+               elm_object_item_part_content_set(navi_item, "prev_btn", back_button);
+       }
+       elm_object_style_set(back_button, "naviframe/back_btn/default");
+       evas_object_smart_callback_add(back_button, "clicked",  __cal_viewer_back_button_callback, p);
+}
+
+API int main(int argc, char *argv[])
+{
+       struct appdata ad;
+
+       app_event_callback_s event_callback;
+
+       event_callback.create = viewer_create;
+       event_callback.terminate = viewer_terminate;
+       event_callback.pause = viewer_pause;
+       event_callback.resume = viewer_resume;
+       event_callback.service = viewer_service;
+       event_callback.low_memory = NULL;
+       event_callback.low_battery = NULL;
+       event_callback.device_orientation = NULL;
+       event_callback.language_changed = NULL;
+       event_callback.region_format_changed = NULL;
+
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       return app_efl_main(&argc, &argv, &event_callback, &ad);
+}