Change memo menu icon
[apps/home/memo.git] / src / memo_edit_list.c
1 /*
2 *
3 * Copyright 2012  Samsung Electronics Co., Ltd
4 *
5 * Licensed under the Flora License, Version 1.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *    http://www.tizenopensource.org/license
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 */
18
19 #include <stdlib.h>
20 #include <stdio.h>
21 #include <appcore-efl.h>
22 #include <Elementary.h>
23 #include <stdint.h>
24 #include <math.h>
25 #include <sys/stat.h>
26 #include <vconf.h>
27
28 #include <memo.h>
29 #include "memo_ug.h"
30
31 typedef struct __edit_list_view_t {
32     appdata *ad;
33     Evas_Object *navigator;
34     Elm_Object_Item *navi_it;
35     Evas_Object *body_main;
36     Elm_Object_Item *delete_btn;
37     Elm_Object_Item *share_btn;
38     Evas_Object *control_bar;
39     void *viewer;
40 } edit_list_view_t;
41
42 static void on_delete_btn_clicked(void *data, Evas_Object *obj, void *event_info)
43 {
44     edit_list_view_t *elv = (edit_list_view_t *)data;
45     memo_list_editor_delete_records(elv->viewer);
46 }
47
48 static void _on_cancel_btn_clicked(void *data, Evas_Object *obj, void *event_info)
49 {
50     edit_list_view_t *elv = (edit_list_view_t *)data;
51     memo_navigator_pop(elv->navigator);
52 }
53
54 static void _elv_on_send_btn_clicked(void *data, Evas_Object *obj, void *event_info)
55 {
56     edit_list_view_t *elv = (edit_list_view_t *)data;
57     memo_list_editor_share_records(elv->viewer);
58 }
59
60 static void _list_editor_callback(void *data, const char *msg, void *event)
61 {
62     edit_list_view_t *elv = (edit_list_view_t *)data;
63     if (strcmp(msg, "layout") == 0) {
64         elm_object_part_content_set(elv->body_main, "elm.swallow.content", (Evas_Object *)event);
65     } else if (strcmp(msg, "title") == 0) {
66         elm_object_item_text_set(elv->navi_it, (const char *)event);
67     } else if (strcmp(msg, "count") == 0) {
68         elm_object_item_disabled_set(elv->delete_btn, ((int)event == 0) ? EINA_TRUE : EINA_FALSE);
69         elm_object_item_disabled_set(elv->share_btn, ((int)event != 1) ? EINA_TRUE : EINA_FALSE);
70     } else if (strcmp(msg, "delete_done") == 0) {
71         memo_navigator_pop(elv->navigator);
72     }
73 }
74
75 void _on_delete(void *data, Evas *e, Evas_Object *obj, void *event_info)
76 {
77     edit_list_view_t *elv = (edit_list_view_t *)data;
78     elm_object_part_content_unset(elv->body_main, "elm.swallow.content");
79     memo_destroy_list_editor(elv->viewer);
80     elv->viewer = NULL;
81     SFREE(elv);
82 }
83
84 static void _on_update(void *data, Evas_Object *obj, void *event_info)
85 {
86     edit_list_view_t *elv = (edit_list_view_t *)data;
87     if (elv->viewer != NULL) {
88         elm_object_part_content_unset(elv->body_main, "elm.swallow.content");
89         memo_destroy_list_editor(elv->viewer);
90     }
91     elv->viewer = memo_load_list_editor(elv->body_main, elv->ad->win_main, NULL, _list_editor_callback, elv);
92 }
93
94 void *memo_load_edit_list_view(appdata *ad)
95 {
96     edit_list_view_t *elv = SMALLOC(edit_list_view_t);
97     RETVIF(elv == NULL, NULL);
98
99     elv->ad = ad;
100     elv->navigator = ad->navigator;
101
102     /* body main */
103     elv->body_main = elm_layout_create(elv->navigator, EDJ_FILE, "empty_layout");
104     Elm_Object_Item *navi_it = memo_naviframe_item_push(elv->navigator, MEMO_I18N_SELECT_MEMO, NULL, NULL, elv->body_main, NULL);
105     elv->navi_it = navi_it;
106     evas_object_event_callback_add(elv->body_main, EVAS_CALLBACK_DEL, _on_delete, elv);
107     evas_object_data_set(elv->body_main, "time_format_update_cb", _on_update);
108     evas_object_data_set(elv->body_main, "time_format_update_data", elv);
109     /* delete "<-" button */
110     Evas_Object *btn = elm_object_item_part_content_get(navi_it, MEMO_NAVIFRAME_ITEM_PREV_BTN);
111     if (btn != NULL) {
112         evas_object_del(btn);
113     }
114     /* control bar */
115     Evas_Object *ctrl_bar = memo_controlbar_add(elv->navigator);
116     elm_toolbar_item_append(ctrl_bar, NULL, MEMO_I18N_CANCEL, _on_cancel_btn_clicked, elv);
117     elv->delete_btn = elm_toolbar_item_append(ctrl_bar, NULL, MEMO_I18N_DELETE, on_delete_btn_clicked, elv);
118     elv->share_btn = elm_toolbar_item_append(ctrl_bar, NULL, MEMO_I18N_SHARE, _elv_on_send_btn_clicked, elv);
119     elm_object_item_part_content_set(navi_it, "controlbar", ctrl_bar);
120     /* custom body main here */
121     elv->viewer = memo_load_list_editor(elv->body_main, elv->ad->win_main, NULL, _list_editor_callback, elv);
122     return elv;
123 }
124