Merge ode app and ode-gui app
[platform/core/security/ode.git] / tools / apps / ode / src / ode-app-widget.c
1 /*
2  *
3  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
4  *
5  * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
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 "ode-app.h"
20
21 Evas_Object* dpm_encryption_create_layout(Evas_Object* parent, const char* file, const char* group)
22 {
23         Evas_Object* layout = NULL;
24
25         if (parent == NULL) {
26                 dlog_print(DLOG_ERROR, LOG_TAG, "parent is null");
27                 return NULL;
28         }
29
30         layout = elm_layout_add(parent);
31         if (layout == NULL) {
32                 dlog_print(DLOG_ERROR, LOG_TAG, "Cannot add layout");
33                 return NULL;
34         }
35
36         if ((file != NULL) && (group != NULL))
37                 elm_layout_file_set(layout, file, group);
38         else
39                 elm_layout_theme_set(layout, "layout", "application", "default");
40
41         evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
42         evas_object_show(layout);
43
44         return layout;
45 }
46
47 Evas_Object* dpm_encryption_create_navigation(Evas_Object* parent)
48 {
49         Evas_Object* navi_bar = NULL;
50
51         if (parent == NULL) {
52                 dlog_print(DLOG_ERROR, LOG_TAG, "parent is null");
53                 return NULL;
54         }
55
56         navi_bar = elm_naviframe_add(parent);
57         eext_object_event_callback_add(navi_bar, EEXT_CALLBACK_BACK, eext_naviframe_back_cb, NULL);
58         elm_object_part_content_set(parent, "elm.swallow.content", navi_bar);
59         evas_object_show(navi_bar);
60
61         return navi_bar;
62 }
63
64 Evas_Object* dpm_encryption_create_button(Evas_Object* parent, const char* text, const char* style)
65 {
66         Evas_Object* btn = elm_button_add(parent);
67
68         evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
69         elm_object_text_set(btn, text);
70
71         if (style != NULL)
72                 elm_object_style_set(btn, style);
73
74         evas_object_show(btn);
75
76         return btn;
77 }
78
79 Evas_Object* dpm_encryption_create_textblock(Evas_Object* parent, const char* text, Evas_Textblock_Style* style)
80 {
81         Evas_Object* txt = evas_object_textblock_add(parent);
82
83         if (style != NULL)
84                 evas_object_textblock_style_set(txt, style);
85         evas_object_textblock_text_markup_set(txt, text);
86         evas_object_show(txt);
87
88         return txt;
89
90 }
91
92 static void __win_delete_request_cb(void *data , Evas_Object *obj , void *event_info)
93 {
94         ui_app_exit();
95 }
96
97 Evas_Object *_create_win(const char *package)
98 {
99         Evas_Object *win;
100
101         elm_app_base_scale_set(1.8);
102
103         win = elm_win_add(NULL, package, ELM_WIN_BASIC);
104         elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW);
105         elm_win_indicator_opacity_set(win, ELM_WIN_INDICATOR_BG_TRANSPARENT);
106
107         elm_win_conformant_set(win, EINA_TRUE);
108         elm_win_autodel_set(win, EINA_TRUE);
109         elm_win_alpha_set(win, EINA_TRUE);
110
111         evas_object_smart_callback_add(win, "delete,request", __win_delete_request_cb, NULL);
112
113         return win;
114 }
115
116 Evas_Object *_create_conformant(Evas_Object *parent)
117 {
118         Evas_Object *conform = elm_conformant_add(parent);
119
120         evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
121         elm_win_resize_object_add(parent, conform);
122
123         evas_object_show(conform);
124
125         return conform;
126 }
127
128 Evas_Object *_create_layout(Evas_Object *parent, char *file, const char *group)
129 {
130         Evas_Object *layout = elm_layout_add(parent);
131
132         evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
133
134         if (file == NULL)
135                 elm_layout_theme_set(layout, "layout", "application", "default");
136         else
137                 elm_layout_file_set(layout, file, group);
138
139         evas_object_show(layout);
140
141         return layout;
142 }
143
144 Evas_Object *_create_button(Evas_Object *parent, const char *text, Evas_Smart_Cb callback, void *user_data)
145 {
146         Evas_Object *btn = elm_button_add(parent);
147
148         evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
149         elm_object_text_set(btn, text);
150         elm_object_style_set(btn, "bottom");
151         evas_object_smart_callback_add(btn, "clicked", callback, user_data);
152
153         evas_object_show(btn);
154
155         return btn;
156 }
157
158 Evas_Object *_create_textblock(Evas_Object *parent, const char *text, char *style)
159 {
160         Evas_Object *txt = evas_object_textblock_add(parent);
161         Evas_Textblock_Style *text_st = NULL;
162
163         if (style != NULL) {
164                 text_st = evas_textblock_style_new();
165                 evas_textblock_style_set(text_st, style);
166                 evas_object_textblock_style_set(txt, text_st);
167         }
168
169         evas_object_textblock_text_markup_set(txt, text);
170         evas_object_show(txt);
171
172         if (text_st != NULL)
173                 evas_textblock_style_free(text_st);
174
175         return txt;
176 }
177
178 Evas_Object *_create_progressbar(Evas_Object *parent, const char *style)
179 {
180         Evas_Object *progressbar = elm_progressbar_add(parent);
181
182         if (style != NULL)
183                 elm_object_style_set(progressbar, style);
184
185         evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, 0.5);
186         evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
187         elm_progressbar_pulse(progressbar, EINA_TRUE);
188         elm_progressbar_pulse_set(progressbar, EINA_TRUE);
189         evas_object_show(progressbar);
190
191         return progressbar;
192 }