ee36913549a6f1585077d55c3ba9b839ec5e7eaa
[apps/home/draglock.git] / src / draglock.c
1 /*
2   * Copyright 2012  Samsung Electronics Co., Ltd
3   * 
4   * Licensed under the Flora License, Version 1.0 (the License);
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   * 
8   *     http://www.tizenopensource.org/license
9   * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an AS IS BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16
17
18 #include <stdio.h>
19 #include <app.h>
20 #include <Ecore_X.h>
21 #include "draglock.h"
22 #include "draglock-ui.h"
23 #include "draglock-util.h"
24
25 static void device_orientation(app_device_orientation_e orientation,
26                 void *user_data) {
27         struct appdata *ad = (struct appdata *) user_data;
28
29         if (ad == NULL || ad->win == NULL)
30                 return;
31 }
32
33 static bool app_create(void *user_data) {
34         struct appdata *ad = (struct appdata *) user_data;
35         Evas_Object *win;
36         Evas_Object *bg;
37         char *name;
38
39         DRAGLOCK_DBG("launching draglock");
40
41         if (ad == NULL) {
42                 return FALSE;
43         }
44
45         ecore_x_window_size_get(ecore_x_window_root_first_get(), &ad->win_w,
46                         &ad->win_h);
47         DRAGLOCK_DBG("window size(%d,%d)", ad->win_w, ad->win_h);
48
49         /* create window */
50         app_get_name(&name);
51
52         win = draglock_util_add_window(name);
53         if (win == NULL)
54                 return FALSE;
55         ad->win = win;
56
57         evas_object_show(win);
58
59         ad->scale = elm_scale_get();
60
61         bg = draglock_util_add_bg(win);
62
63         draglock_ui_create(ad);
64
65         free(name);
66
67         return TRUE;
68 }
69
70 static void app_terminate(void *user_data) {
71         struct appdata *ad = (struct appdata *) user_data;
72
73         if (ad == NULL) {
74                 return;
75         }
76
77         draglock_ui_destroy(ad);
78
79         if (ad->win)
80                 evas_object_del(ad->win);
81 }
82
83 static void app_pause(void *user_data) {
84         struct appdata *ad = (struct appdata *) user_data;
85         (void) ad;
86 }
87
88 static void app_resume(void *user_data) {
89         struct appdata *ad = (struct appdata *) user_data;
90         (void) ad;
91 }
92
93 static void app_service(service_h service, void *user_data) {
94         struct appdata *ad = (struct appdata *) user_data;
95
96         if (ad == NULL) {
97                 return;
98         }
99
100         if (ad->win)
101                 elm_win_activate(ad->win);
102 }
103
104 int main(int argc, char *argv[]) {
105         struct appdata ad;
106
107         app_event_callback_s event_callback;
108
109         event_callback.create = app_create;
110         event_callback.terminate = app_terminate;
111         event_callback.pause = app_pause;
112         event_callback.resume = app_resume;
113         event_callback.service = app_service;
114         event_callback.low_memory = NULL;
115         event_callback.low_battery = NULL;
116         event_callback.device_orientation = device_orientation;
117         event_callback.language_changed = NULL;
118         event_callback.region_format_changed = NULL;
119
120         memset(&ad, 0x0, sizeof(struct appdata));
121
122         return app_efl_main(&argc, &argv, &event_callback, &ad);
123 }