3 * Copyright 2012 Samsung Electronics Co., Ltd
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
9 * http://www.tizenopensource.org/license
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.
21 #include <appcore-efl.h>
22 #include <Elementary.h>
31 typedef struct __edit_list_view_t {
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;
42 static void on_delete_btn_clicked(void *data, Evas_Object *obj, void *event_info)
44 edit_list_view_t *elv = (edit_list_view_t *)data;
45 memo_list_editor_delete_records(elv->viewer);
48 static void _on_cancel_btn_clicked(void *data, Evas_Object *obj, void *event_info)
50 edit_list_view_t *elv = (edit_list_view_t *)data;
51 memo_navigator_pop(elv->navigator);
54 static void _elv_on_send_btn_clicked(void *data, Evas_Object *obj, void *event_info)
56 edit_list_view_t *elv = (edit_list_view_t *)data;
57 memo_list_editor_share_records(elv->viewer);
60 static void _list_editor_callback(void *data, const char *msg, void *event)
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);
75 void _on_delete(void *data, Evas *e, Evas_Object *obj, void *event_info)
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);
84 static void _on_update(void *data, Evas_Object *obj, void *event_info)
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);
91 elv->viewer = memo_load_list_editor(elv->body_main, elv->ad->win_main, NULL, _list_editor_callback, elv);
94 void *memo_load_edit_list_view(appdata *ad)
96 edit_list_view_t *elv = SMALLOC(edit_list_view_t);
97 RETVIF(elv == NULL, NULL);
100 elv->navigator = ad->navigator;
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);
112 evas_object_del(btn);
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);