summaryrefslogtreecommitdiff
path: root/include/notification_type.h
blob: 3b3d1545e90469979745a50fcb0a5ef44cc70fb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
/*
 *  libnotification
 *
 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
 *
 * Contact: Seungtaek Chung <seungtaek.chung@samsung.com>, Mi-Ju Lee <miju52.lee@samsung.com>, Xi Zhichan <zhichan.xi@samsung.com>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

#ifndef __NOTIFICATION_TYPE_H__
#define __NOTIFICATION_TYPE_H__

#ifdef __cplusplus
extern "C" {
#endif

#ifndef NOTIFICATION_DEPRECATED_API
#if 0//__GNUC__
#define NOTIFICATION_DEPRECATED_API __attribute__((deprecated))
#else
#define NOTIFICATION_DEPRECATED_API
#endif
#endif

/**
 * @file notification_type.h
 * @brief This file contains type definitions and enumerations for Notification API.
 */

/**
 * @addtogroup NOTIFICATION_MODULE
 * @{
 */

#define NOTIFICATION_DO_NOT_SHOW_TIME_STAMP -1  /**< Do not show time stamp on the notificaion. Could be passed as a argument of notification_set_time() */

/**
 * @brief Enumeration for notification layout type.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_ly_type {
	NOTIFICATION_LY_NONE = 0,
		/**< Default */
	NOTIFICATION_LY_NOTI_EVENT_SINGLE,
        /**< Layout for notification. Used to inform single event*/
	NOTIFICATION_LY_NOTI_EVENT_MULTIPLE,
        /**< Layout for notification. Used to inform multiple event*/
	NOTIFICATION_LY_NOTI_THUMBNAIL,
        /**< Layout for notification. Used to display images*/
	NOTIFICATION_LY_ONGOING_EVENT,
        /**< Layout for ongoing notification. Used to display text message.
         * notifications with NOTIFICATION_LY_ONGOING_EVENT can not be protected from removing by user since tizen 2.4 */
	NOTIFICATION_LY_ONGOING_PROGRESS,
        /**< Layout for ongoing notification. Used to display progress*/
	NOTIFICATION_LY_MAX,
		/**< TBD */
} notification_ly_type_e;

/**
 * @brief Enumeration for notification lauch option type.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum  _notification_launch_option_type {
	NOTIFICATION_LAUNCH_OPTION_APP_CONTROL = 1,
					/**< launching with app control */
} notification_launch_option_type;

/**
 * @brief Enumeration for event type on notification.
 * @since_tizen 2.4
 */
typedef enum _notification_event_type {
	NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_1  = 0,  /** < Event type : Click on button 1 */
	NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_2  = 1,  /** < Event type : Click on button 2 */
	NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_3  = 2,  /** < Event type : Click on button 3 */
	NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_4  = 3,  /** < Event type : Click on button 4 */
	NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_5  = 4,  /** < Event type : Click on button 5 */
	NOTIFICATION_EVENT_TYPE_CLICK_ON_BUTTON_6  = 5,  /** < Event type : Click on button 6 */
	NOTIFICATION_EVENT_TYPE_CLICK_ON_ICON      = 6,  /** < Event type : Click on icon */
	NOTIFICATION_EVENT_TYPE_CLICK_ON_THUMBNAIL = 7,  /** < Event type : Click on thumbnail */
	NOTIFICATION_EVENT_TYPE_MAX,
} notification_event_type_e;

/**
 * @brief Enumeration for notification sound type.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_sound_type {
	NOTIFICATION_SOUND_TYPE_NONE = -1,
					/**< Default value. no sound */
	NOTIFICATION_SOUND_TYPE_DEFAULT = 0,
					/**< Default sound */
	NOTIFICATION_SOUND_TYPE_USER_DATA,
					/**< User sound data */
	NOTIFICATION_SOUND_TYPE_MAX,
} notification_sound_type_e;

/**
 * @brief Enumeration for notification vibration type.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_vibration_type {
	NOTIFICATION_VIBRATION_TYPE_NONE = -1,
                    /**< Default value. No vibration */
	NOTIFICATION_VIBRATION_TYPE_DEFAULT = 0,/**< Default vibrate pattern */
	NOTIFICATION_VIBRATION_TYPE_USER_DATA,
					/**< User vibration data */
	NOTIFICATION_VIBRATION_TYPE_MAX,
} notification_vibration_type_e;

/**
 * @brief Enumeration for notification LED operation.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_led_op {
	NOTIFICATION_LED_OP_OFF = -1,
					/**< Default value. Disable the LED notification */
	NOTIFICATION_LED_OP_ON = 0,/**< Turn on the LED with default color */
	NOTIFICATION_LED_OP_ON_CUSTOM_COLOR,
					/**< Turn on the LED with custom color */
	NOTIFICATION_LED_OP_MAX,/**< Max flag */
} notification_led_op_e;

/**
 * @deprecated Deprecated since 2.3.1
 * @brief Enumeration for setting display type of count
 * @since_tizen 2.3
 */
typedef enum _notification_count_display_type {
	NOTIFICATION_COUNT_DISPLAY_TYPE_NONE = -1,
	NOTIFICATION_COUNT_DISPLAY_TYPE_LEFT = 0,	/**< The number is placed to left */
	NOTIFICATION_COUNT_DISPLAY_TYPE_IN,	/**< The number is placed to center */
	NOTIFICATION_COUNT_DISPLAY_TYPE_RIGHT,	/**< The number is placed to right */
	NOTIFICATION_COUNT_DISPLAY_TYPE_MAX,
} notification_count_display_type_e;

/**
 * @brief Enumeration for button
 * @since_tizen 2.4
 */
typedef enum _notification_button_index {
	NOTIFICATION_BUTTON_1 = 1, /**< button 1 */
	NOTIFICATION_BUTTON_2 = 2, /**< button 2 */
	NOTIFICATION_BUTTON_3 = 3, /**< button 3 */
	NOTIFICATION_BUTTON_4 = 4, /**< button 4 */
	NOTIFICATION_BUTTON_5 = 5, /**< button 5 */
	NOTIFICATION_BUTTON_6 = 6, /**< button 6 */
} notification_button_index_e;

/**
 * @brief Enumeration for notification text type.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_text_type {
	NOTIFICATION_TEXT_TYPE_NONE = -1,
	NOTIFICATION_TEXT_TYPE_TITLE = 0,
					/**< Title */
	NOTIFICATION_TEXT_TYPE_CONTENT,
				/**< Content */
	NOTIFICATION_TEXT_TYPE_CONTENT_FOR_DISPLAY_OPTION_IS_OFF,
								/**< Content for content display option is off of the Settings */
	NOTIFICATION_TEXT_TYPE_EVENT_COUNT,
								/**< Text to display event count */
	NOTIFICATION_TEXT_TYPE_INFO_1,
								/**< Box contents 1 */
	NOTIFICATION_TEXT_TYPE_INFO_SUB_1,
								/**< Box contents 1-1 */
	NOTIFICATION_TEXT_TYPE_INFO_2,
								/**< Box contents 2 */
	NOTIFICATION_TEXT_TYPE_INFO_SUB_2,
								/**< Box contents 2-1 */
	NOTIFICATION_TEXT_TYPE_INFO_3,
								/**< Box contents 3 */
	NOTIFICATION_TEXT_TYPE_INFO_SUB_3,
								/**< Box contents 3-1 */
	NOTIFICATION_TEXT_TYPE_GROUP_TITLE,
					/**< Group title */
	NOTIFICATION_TEXT_TYPE_GROUP_CONTENT,
					/**< Group content */
	NOTIFICATION_TEXT_TYPE_GROUP_CONTENT_FOR_DISPLAY_OPTION_IS_OFF,
								/**< Group content for content display option is off of the Settings */
	NOTIFICATION_TEXT_TYPE_BUTTON_1,
								/**< Text on button 1 */
	NOTIFICATION_TEXT_TYPE_BUTTON_2,
								/**< Text on button 2 */
	NOTIFICATION_TEXT_TYPE_BUTTON_3,
								/**< Text on button 3 */
	NOTIFICATION_TEXT_TYPE_BUTTON_4,
								/**< Text on button 4 */
	NOTIFICATION_TEXT_TYPE_BUTTON_5,
								/**< Text on button 5 */
	NOTIFICATION_TEXT_TYPE_BUTTON_6,
								/**< Text on button 6 */
	NOTIFICATION_TEXT_TYPE_MAX,
} notification_text_type_e;

/**
 * @brief Enumeration for image type.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_image_type {
	NOTIFICATION_IMAGE_TYPE_NONE = -1,
	NOTIFICATION_IMAGE_TYPE_ICON = 0,
					/**< Icon */
	NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR,
						/**< Indicator icon */
	NOTIFICATION_IMAGE_TYPE_ICON_FOR_LOCK,
					/**< Lock screen icon */
	NOTIFICATION_IMAGE_TYPE_THUMBNAIL,
					/**< Thumbnail */
	NOTIFICATION_IMAGE_TYPE_THUMBNAIL_FOR_LOCK,
						/**< Lock screen thumbnail */
	NOTIFICATION_IMAGE_TYPE_ICON_SUB,
					/**< Icon */
	NOTIFICATION_IMAGE_TYPE_BACKGROUND,
						/**< image displayed on background */
	NOTIFICATION_IMAGE_TYPE_LIST_1,
						/**< Image for thumbnail list */
	NOTIFICATION_IMAGE_TYPE_LIST_2,
						/**< Image for thumbnail list */
	NOTIFICATION_IMAGE_TYPE_LIST_3,
						/**< Image for thumbnail list */
	NOTIFICATION_IMAGE_TYPE_LIST_4,
						/**< Image for thumbnail list */
	NOTIFICATION_IMAGE_TYPE_LIST_5,
						/**< Image for thumbnail list */
	NOTIFICATION_IMAGE_TYPE_BUTTON_1,
						/**< Image for button 1 */
	NOTIFICATION_IMAGE_TYPE_BUTTON_2,
						/**< Image for button 2 */
	NOTIFICATION_IMAGE_TYPE_BUTTON_3,
						/**< Image for button 3 */
	NOTIFICATION_IMAGE_TYPE_BUTTON_4,
						/**< Image for button 4 */
	NOTIFICATION_IMAGE_TYPE_BUTTON_5,
						/**< Image for button 5 */
	NOTIFICATION_IMAGE_TYPE_BUTTON_6,
						/**< Image for button 6 */
	NOTIFICATION_IMAGE_TYPE_MAX,
} notification_image_type_e;

/**
 * @brief Enumeration for application execution type.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_execute_type {
	NOTIFICATION_EXECUTE_TYPE_NONE = -1,
					/**< No operation */
	NOTIFICATION_EXECUTE_TYPE_RESPONDING = 0,
						/**< Responding action*/
	NOTIFICATION_EXECUTE_TYPE_SINGLE_LAUNCH,/**< Launching when notification data is single */
	NOTIFICATION_EXECUTE_TYPE_MULTI_LAUNCH,
					/**< Launching when notification data is grouping(multi) */
	NOTIFICATION_EXECUTE_TYPE_MAX,
				/**< Max flag */
} notification_execute_type_e;

/**
 * @brief Enumeration for notification type.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_type {
	NOTIFICATION_TYPE_NONE = -1,
				/**< None */
	NOTIFICATION_TYPE_NOTI = 0,
				/**< Notification type */
	NOTIFICATION_TYPE_ONGOING,
				/**< Ongoing type */
	NOTIFICATION_TYPE_MAX,
			/**< Max flag */
} notification_type_e;

/**
 * @brief Enumeration for Group ID.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
enum _notification_group_id {
	NOTIFICATION_GROUP_ID_NONE = -1,/**< Not Grouping */
	NOTIFICATION_GROUP_ID_DEFAULT = 0,
					/**< Notification that has same title is grouping */
};

/**
 * @brief Enumeration for Private ID.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
enum _notification_priv_id {
	NOTIFICATION_PRIV_ID_NONE = -1,
				/**< Internally set priv_id */
};

/**
 * @brief Enumeration for notification property.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
enum _notification_property {
	NOTIFICATION_PROP_DISPLAY_ONLY_SIMMODE = 0x00000001,
							/**< Display only SIM card inserted */
	NOTIFICATION_PROP_DISABLE_APP_LAUNCH = 0x00000002,
							/**< Disable application launch when it selected */
	NOTIFICATION_PROP_DISABLE_AUTO_DELETE = 0x00000004,
							/**< Disable auto delete when it selected */
	NOTIFICATION_PROP_LAUNCH_UG = 0x00000008,
						/**< Notification Tray should launch application using appsvc API (Deprecated since 2.3.1) */
	NOTIFICATION_PROP_DISABLE_TICKERNOTI = 0x00000010,
							/**< Use notification_set_display_applist API (Deprecated since 2.3.1) */
	NOTIFICATION_PROP_PERMANENT_DISPLAY = 0x00000020,
							/**< The notification will not be removed (Deprecated since 2.3.1) */
	NOTIFICATION_PROP_DISABLE_UPDATE_ON_INSERT = 0x00000040,/**< Disable update when it inserted. */
	NOTIFICATION_PROP_DISABLE_UPDATE_ON_DELETE = 0x00000080,/**< Disable update when it deleted. */
	NOTIFICATION_PROP_VOLATILE_DISPLAY = 0x00000100,/**< Deleted when device is rebooted eventhough NOTIFICATION_TYPE_NOTI type */
};

/**
 * @brief Enumeration for display application list.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
enum _notificaton_display_applist {
	NOTIFICATION_DISPLAY_APP_NOTIFICATION_TRAY = 0x00000001, /**< Notification Tray(Quickpanel) */
	NOTIFICATION_DISPLAY_APP_TICKER = 0x00000002, /**< Ticker notification */
	NOTIFICATION_DISPLAY_APP_LOCK = 0x00000004, /**< Lock screen */
	NOTIFICATION_DISPLAY_APP_INDICATOR = 0x00000008,/**< Indicator */
	NOTIFICATION_DISPLAY_APP_ACTIVE = 0x00000010,/**< Active notification */
	NOTIFICATION_DISPLAY_APP_ALL = 0x0000000f, /**< All display application except active notification*/
};

/**
 * @brief Enumeration for notification operation code.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_op_type {
	NOTIFICATION_OP_NONE = 0,	/**< Default */
	NOTIFICATION_OP_INSERT = 1,	/**< Notification inserted */
	NOTIFICATION_OP_UPDATE,	/**< Notification updated */
	NOTIFICATION_OP_DELETE,	/**< Notification deleted */
	NOTIFICATION_OP_DELETE_ALL,	/**< Notifications deleted */
	NOTIFICATION_OP_REFRESH,	/**< (Deprecated Since 2.3.1) */
	NOTIFICATION_OP_SERVICE_READY,	/**< Notification service is ready  */
} notification_op_type_e;

/**
 * @brief Enumeration for notification operation data code
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_op_data_type {
	NOTIFICATION_OP_DATA_MIN = 0,	/**< Default */
	NOTIFICATION_OP_DATA_TYPE,	/**< Operation type */
	NOTIFICATION_OP_DATA_PRIV_ID,	/**< Private ID */
	NOTIFICATION_OP_DATA_NOTI,	/**< Notification handler */
	NOTIFICATION_OP_DATA_EXTRA_INFO_1,	/**< Reserved */
	NOTIFICATION_OP_DATA_EXTRA_INFO_2,	/**< Reserved */
	NOTIFICATION_OP_DATA_MAX,	/**< Max flag */
} notification_op_data_type_e;

/**
 * @brief Enumeration for notification count position in the text.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notifcation_count_pos_type {
	NOTIFICATION_COUNT_POS_NONE = -1,
					/**< Count data is not displaying in the text */
	NOTIFICATION_COUNT_POS_LEFT = 0,/**< Count data is displaying at the left of the text */
	NOTIFICATION_COUNT_POS_IN,
				/**< Count data is displaying in the text */
	NOTIFICATION_COUNT_POS_RIGHT,
				/**< Count data is displaying at the right of the text */
	NOTIFICATION_COUNT_POS_MAX,
				/**< Max flag */
} notification_count_pos_type_e;

/**
 * @brief Enumeration for notification variable parameter type.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef enum _notification_variable_type {
	NOTIFICATION_VARIABLE_TYPE_NONE = -1,
					/**< Variable parameter type is NONE */
	NOTIFICATION_VARIABLE_TYPE_INT = 0,
					/**< Variable parameter type is int */
	NOTIFICATION_VARIABLE_TYPE_DOUBLE,
					/**< Variable parameter type is double */
	NOTIFICATION_VARIABLE_TYPE_STRING,
					/**< Variable parameter type is string */
	NOTIFICATION_VARIABLE_TYPE_COUNT,
					/**< Variable parameter type is count */
	NOTIFICATION_VARIABLE_TYPE_MAX,
				/**< Max flag */
} notification_variable_type_e;

/**
 * @brief Notification handle.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef struct _notification *notification_h;

/**
 * @brief The structure for notification operation.
 * @since_tizen @if WEARABLE 2.3.1 @elseif MOBILE 2.3 @endif
 */
typedef struct _notification_op {
	notification_op_type_e type;	/**< Notification operation type */
	int priv_id;	/**< private ID */
	int extra_info_1;	/**< Reserved */
	int extra_info_2;	/**< Reserved */
	notification_h noti;	/**< Notification handler */
} notification_op;

/**
 * @brief Enumeration for permission.
 * @since_tizen 2.4
 */
typedef enum notification_permission_type {
    NOTIFICATION_PERMISSION_TYPE_NONE = 0,
    NOTIFICATION_PERMISSION_TYPE_DELETE = 1,
    NOTIFICATION_PERMISSION_TYPE_UPDATE = 2,
} notification_permission_type_e;
/**
 * @}
 */

#ifdef __cplusplus
}
#endif
#endif				/* __NOTIFICATION_TYPE_H__ */