used boolean defines from stdbool.h
[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 enum indicator_win_mode{
43         INDICATOR_WIN_PORT = 0,
44 };
45
46
47 enum {
48         /* Value is allocated from Left side in status bar */
49         INDICATOR_PRIORITY_FIXED_MIN = 0,
50         INDICATOR_PRIORITY_FIXED1 = INDICATOR_PRIORITY_FIXED_MIN,/* Always */
51         INDICATOR_PRIORITY_FIXED2,              /* RSSI1 (elm.swallow.fixed1) */
52         INDICATOR_PRIORITY_FIXED3,              /* RSSI2 (elm.swallow.fixed2) */
53         INDICATOR_PRIORITY_FIXED4,              /* SimCard-Icon(DualSim) (elm.swallow.fixed3) */
54         INDICATOR_PRIORITY_FIXED5,              /* Connection (elm.swallow.fixed4) */
55         INDICATOR_PRIORITY_FIXED6,              /* Wifi (elm.swallow.fixed5) */
56         INDICATOR_PRIORITY_FIXED7,              /* CONNECTION1 - BT (elm.swallow.fixed6) */
57         INDICATOR_PRIORITY_FIXED8,              /* CONNECTION2 - WIFI DIRECT (elm.swallow.fixed7)*/
58         INDICATOR_PRIORITY_FIXED9,              /* Battery (elm.swallow.fixed8)*/
59         INDICATOR_PRIORITY_FIXED10,        /* Search*/
60         INDICATOR_PRIORITY_FIXED11,        /* more */
61         INDICATOR_PRIORITY_FIXED_MAX = INDICATOR_PRIORITY_FIXED11,
62
63         /* Right Side */
64         INDICATOR_PRIORITY_SYSTEM_MIN,
65         INDICATOR_PRIORITY_SYSTEM_1 = INDICATOR_PRIORITY_SYSTEM_MIN, /* SYSTEM - Alarm */
66         INDICATOR_PRIORITY_SYSTEM_2, /* SYSTEM - Call divert */
67         INDICATOR_PRIORITY_SYSTEM_3, /* SYSTEM - MMC */
68         INDICATOR_PRIORITY_SYSTEM_4,  /* SYSTEM - GPS */
69         INDICATOR_PRIORITY_SYSTEM_5,  /* SYSTEM - Private mode */
70         INDICATOR_PRIORITY_SYSTEM_6,  /* SYSTEM - Sound profile */
71         INDICATOR_PRIORITY_SYSTEM_MAX = INDICATOR_PRIORITY_SYSTEM_6,
72
73         INDICATOR_PRIORITY_MINICTRL_MIN,
74         INDICATOR_PRIORITY_MINICTRL1 = INDICATOR_PRIORITY_MINICTRL_MIN, /* MINICTRL - Voice recorder */
75         INDICATOR_PRIORITY_MINICTRL2, /* MINICTRL - Music/FM Radio */
76         INDICATOR_PRIORITY_MINICTRL3, /* MINICTRL - Call *//* MINICTRL - Voice recorder */
77         INDICATOR_PRIORITY_MINICTRL_MAX = INDICATOR_PRIORITY_MINICTRL3,
78
79         INDICATOR_PRIORITY_NOTI_MIN,
80         INDICATOR_PRIORITY_NOTI_1 = INDICATOR_PRIORITY_NOTI_MIN,
81         INDICATOR_PRIORITY_NOTI_2, /* Ongoing/Normal notification */
82         INDICATOR_PRIORITY_NOTI_MAX = INDICATOR_PRIORITY_NOTI_2
83 };
84
85 enum indicator_icon_type {
86         INDICATOR_IMG_ICON = 0,
87         INDICATOR_TXT_ICON,
88         INDICATOR_TXT_WITH_IMG_ICON,
89         INDICATOR_DIGIT_ICON,
90 };
91
92 enum indicator_icon_area_type {
93         INDICATOR_ICON_AREA_FIXED = 0,
94         INDICATOR_ICON_AREA_SYSTEM,
95         INDICATOR_ICON_AREA_MINICTRL,
96         INDICATOR_ICON_AREA_NOTI,
97         INDICATOR_ICON_AREA_ALARM
98 };
99
100 typedef enum indicator_icon_ani {
101         ICON_ANI_NONE = 0,
102         ICON_ANI_BLINK,
103         ICON_ANI_ROTATE,
104         ICON_ANI_METRONOME,
105         ICON_ANI_DOWNLOADING,
106         ICON_ANI_UPLOADING,
107         ICON_ANI_MAX
108 } Icon_Ani_Type;
109
110 enum indicator_digit_area {
111         DIGIT_UNITY = 0,
112         DIGIT_DOZENS,
113         DIGIT_DOZENS_UNITY,
114         DIGIT_HUNDREDS
115 };
116
117 /* Upload/download animation states 0-6 */
118 enum ud_indicator_icon_ani_state
119 {
120         UD_ICON_ANI_STATE_0 = 0,
121         UD_ICON_ANI_STATE_1,
122         UD_ICON_ANI_STATE_2,
123         UD_ICON_ANI_STATE_3,
124         UD_ICON_ANI_STATE_4,
125         UD_ICON_ANI_STATE_5,
126         UD_ICON_ANI_STATE_6,
127         UD_ICON_ANI_STATE_MAX
128 };
129
130 enum {
131         TRANSFER_MIN = 0,
132         TRANSFER_NONE = TRANSFER_MIN,
133         TRANSFER_UP,
134         TRANSFER_DOWN,
135         TRANSFER_UPDOWN,
136         TRANSFER_MAX
137 };
138
139 typedef struct _Text_Icon_Info {
140         char *data;
141         Evas_Object *obj;
142         int width;
143 } Text_Icon_Info;
144
145 typedef struct _Img_Icon_Info {
146         const char *data;
147         Evas_Object *obj;
148         int width;
149         int height;
150 } Img_Icon_Info;
151
152 typedef struct _ind_win_info
153 {
154         Evas *evas;
155         Evas_Object* win;
156         Evas_Object* layout;
157         int w;
158         int h;
159         int port_w;
160         int land_w;
161         int angle;
162         Evas_Object *_fixed_box[FIXED_COUNT];
163         Evas_Object *_non_fixed_box;
164         Evas_Object *_minictrl_box;
165         Evas_Object *_noti_box;
166         Evas_Object *_dynamic_box;
167         Evas_Object *_dynamic_box_noti;
168         Evas_Object *_alarm_box;
169         Evas_Object *_digit_box;
170
171         struct {
172                 int x;
173                 int y;
174         } mouse_event;
175
176         void* data;
177 }win_info;
178
179 typedef struct Indicator_Icon {
180         char *name;
181         enum indicator_icon_type type;
182         enum indicator_icon_area_type area;
183         int priority;
184         Eina_Bool always_top;   /* Only for SOS messsage */
185
186         enum ud_indicator_icon_ani_state animation_state;
187         Eina_Bool animation_in_progress;
188         Ecore_Timer *p_animation_timer;
189         char signal_to_emit_prefix [32];
190         double last_animation_timestamp;
191
192         /* Func */
193         int (*init) (void *);
194         int (*fini) (void);
195         int (*lang_changed) (void *);
196         int (*region_changed) (void *);
197         int (*minictrl_control) (int, const char *, void *);
198         int (*wake_up) (void *);
199
200         /* do not modify this area */
201         /* internal data */
202         void *ad;
203         Eina_Bool obj_exist;
204         Img_Icon_Info img_obj;
205         Eina_Bool wish_to_show;
206         Eina_Bool exist_in_view;
207         enum indicator_icon_ani ani;
208
209 #ifdef _SUPPORT_SCREEN_READER
210         int (*register_tts) (void*, int);
211         char *(*access_cb)(void *, Evas_Object *);
212         int tts_enable;
213 #endif
214         int digit_area;
215 } icon_s;
216
217 //int rssi_get_sim_number(TapiHandle *handle_obj);
218
219 #endif /*__INDICATOR_H__*/