Revert "edc: indicator paddings and scover code removed."
[apps/core/preloaded/indicator-win.git] / inc / indicator.h
1 /*
2  *  Indicator
3  *
4  * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20
21 #ifndef __INDICATOR_H__
22 #define __INDICATOR_H__
23
24 #include <Elementary.h>
25 //#include <Ecore_X.h>
26 #include <Ecore_File.h>
27 #include <Eina.h>
28 #include <stdbool.h>
29
30 #define VCONFKEY_APPTRAY_STATE "file/private/org.tizen.app-tray/is_top"
31
32 #define FIXED_COUNT     11
33 #define INDICATOR_HEIGHT 36
34
35 #define _INDICATOR_FEATURE_LITE
36 #define _INDICATOR_REMOVE_SEARCH
37
38 #define DATA_KEY_IMG_ICON "i_i"
39 #define DATA_KEY_BASE_RECT "dkbr"
40 #define DATA_KEY_TICKER_TEXT "dktt"
41
42 #define INDICATOR_MORE_NOTI "indicator_more_noti"
43
44 enum indicator_win_mode{
45         INDICATOR_WIN_PORT = 0,
46 };
47
48
49 enum {
50         /* Value is allocated from Left side in status bar */
51         INDICATOR_PRIORITY_FIXED_MIN = 0,
52         INDICATOR_PRIORITY_FIXED1 = INDICATOR_PRIORITY_FIXED_MIN,/* Always */
53         INDICATOR_PRIORITY_FIXED2,              /* RSSI1 (elm.swallow.fixed1) */
54         INDICATOR_PRIORITY_FIXED3,              /* RSSI2 (elm.swallow.fixed2) */
55         INDICATOR_PRIORITY_FIXED4,              /* SimCard-Icon(DualSim) (elm.swallow.fixed3) */
56         INDICATOR_PRIORITY_FIXED5,              /* Connection (elm.swallow.fixed4) */
57         INDICATOR_PRIORITY_FIXED6,              /* Wifi (elm.swallow.fixed5) */
58         INDICATOR_PRIORITY_FIXED7,              /* CONNECTION1 - BT (elm.swallow.fixed6) */
59         INDICATOR_PRIORITY_FIXED8,              /* CONNECTION2 - WIFI DIRECT (elm.swallow.fixed7)*/
60         INDICATOR_PRIORITY_FIXED9,              /* Battery (elm.swallow.fixed8)*/
61         INDICATOR_PRIORITY_FIXED10,        /* Search*/
62         INDICATOR_PRIORITY_FIXED11,        /* more */
63         INDICATOR_PRIORITY_FIXED_MAX = INDICATOR_PRIORITY_FIXED11,
64
65         /* Right Side */
66         INDICATOR_PRIORITY_SYSTEM_MIN,
67         INDICATOR_PRIORITY_SYSTEM_1 = INDICATOR_PRIORITY_SYSTEM_MIN, /* SYSTEM - Alarm */
68         INDICATOR_PRIORITY_SYSTEM_2, /* SYSTEM - Call divert */
69         INDICATOR_PRIORITY_SYSTEM_3, /* SYSTEM - MMC */
70         INDICATOR_PRIORITY_SYSTEM_4,  /* SYSTEM - GPS */
71         INDICATOR_PRIORITY_SYSTEM_5,  /* SYSTEM - Private mode */
72         INDICATOR_PRIORITY_SYSTEM_6,  /* SYSTEM - Sound profile */
73         INDICATOR_PRIORITY_SYSTEM_MAX = INDICATOR_PRIORITY_SYSTEM_6,
74
75         INDICATOR_PRIORITY_MINICTRL_MIN,
76         INDICATOR_PRIORITY_MINICTRL1 = INDICATOR_PRIORITY_MINICTRL_MIN, /* MINICTRL - Voice recorder */
77         INDICATOR_PRIORITY_MINICTRL2, /* MINICTRL - Music/FM Radio */
78         INDICATOR_PRIORITY_MINICTRL3, /* MINICTRL - Call *//* MINICTRL - Voice recorder */
79         INDICATOR_PRIORITY_MINICTRL_MAX = INDICATOR_PRIORITY_MINICTRL3,
80
81         INDICATOR_PRIORITY_NOTI_MIN,
82         INDICATOR_PRIORITY_NOTI_1 = INDICATOR_PRIORITY_NOTI_MIN,
83         INDICATOR_PRIORITY_NOTI_2, /* Ongoing/Normal notification */
84         INDICATOR_PRIORITY_NOTI_MAX = INDICATOR_PRIORITY_NOTI_2
85 };
86
87 enum indicator_icon_type {
88         INDICATOR_IMG_ICON = 0,
89         INDICATOR_TXT_ICON,
90         INDICATOR_TXT_WITH_IMG_ICON,
91         INDICATOR_DIGIT_ICON,
92 };
93
94 enum indicator_icon_area_type {
95         INDICATOR_ICON_AREA_FIXED = 0,
96         INDICATOR_ICON_AREA_SYSTEM,
97         INDICATOR_ICON_AREA_MINICTRL,
98         INDICATOR_ICON_AREA_NOTI,
99         INDICATOR_ICON_AREA_ALARM
100 };
101
102 typedef enum indicator_icon_ani {
103         ICON_ANI_NONE = 0,
104         ICON_ANI_BLINK,
105         ICON_ANI_ROTATE,
106         ICON_ANI_METRONOME,
107         ICON_ANI_DOWNLOADING,
108         ICON_ANI_UPLOADING,
109         ICON_ANI_MAX
110 } Icon_Ani_Type;
111
112 enum indicator_digit_area {
113         DIGIT_UNITY = 0,
114         DIGIT_DOZENS,
115         DIGIT_DOZENS_UNITY,
116         DIGIT_HUNDREDS
117 };
118
119 /* Upload/download animation states 0-6 */
120 enum ud_indicator_icon_ani_state
121 {
122         UD_ICON_ANI_STATE_0 = 0,
123         UD_ICON_ANI_STATE_1,
124         UD_ICON_ANI_STATE_2,
125         UD_ICON_ANI_STATE_3,
126         UD_ICON_ANI_STATE_4,
127         UD_ICON_ANI_STATE_5,
128         UD_ICON_ANI_STATE_6,
129         UD_ICON_ANI_STATE_MAX
130 };
131
132 enum {
133         TRANSFER_MIN = 0,
134         TRANSFER_NONE = TRANSFER_MIN,
135         TRANSFER_UP,
136         TRANSFER_DOWN,
137         TRANSFER_UPDOWN,
138         TRANSFER_MAX
139 };
140
141 typedef struct _Text_Icon_Info {
142         char *data;
143         Evas_Object *obj;
144         int width;
145 } Text_Icon_Info;
146
147 typedef struct _Img_Icon_Info {
148         const char *data;
149         Evas_Object *obj;
150         int width;
151         int height;
152 } Img_Icon_Info;
153
154 typedef struct _ind_win_info
155 {
156         Evas *evas;
157         Evas_Object* win;
158         Evas_Object* layout;
159         int w;
160         int h;
161         int port_w;
162         int land_w;
163         int angle;
164         Evas_Object *_fixed_box[FIXED_COUNT];
165         Evas_Object *_non_fixed_box;
166         Evas_Object *_minictrl_box;
167         Evas_Object *_noti_box;
168         Evas_Object *_dynamic_box;
169         Evas_Object *_dynamic_box_noti;
170         Evas_Object *_alarm_box;
171         Evas_Object *_digit_box;
172
173         struct {
174                 int x;
175                 int y;
176         } mouse_event;
177
178         void* data;
179 }win_info;
180
181 typedef struct Indicator_Icon {
182         char *name;
183         enum indicator_icon_type type;
184         enum indicator_icon_area_type area;
185         int priority;
186         Eina_Bool always_top;   /* Only for SOS messsage */
187
188         enum ud_indicator_icon_ani_state animation_state;
189         Eina_Bool animation_in_progress;
190         Ecore_Timer *p_animation_timer;
191         char signal_to_emit_prefix [32];
192         double last_animation_timestamp;
193
194         /* Func */
195         int (*init) (void *);
196         int (*fini) (void);
197         int (*lang_changed) (void *);
198         int (*region_changed) (void *);
199         int (*minictrl_control) (int, const char *, void *);
200         int (*wake_up) (void *);
201
202         /* do not modify this area */
203         /* internal data */
204         void *ad;
205         Eina_Bool obj_exist;
206         Img_Icon_Info img_obj;
207         Eina_Bool wish_to_show;
208         Eina_Bool exist_in_view;
209         enum indicator_icon_ani ani;
210
211 #ifdef _SUPPORT_SCREEN_READER
212         int (*register_tts) (void*, int);
213         char *(*access_cb)(void *, Evas_Object *);
214         int tts_enable;
215 #endif
216         int digit_area;
217         Eina_Bool initialized; /* TRUE is module was correctly intiialized */
218 } icon_s;
219
220 //int rssi_get_sim_number(TapiHandle *handle_obj);
221
222 #endif /*__INDICATOR_H__*/