006a786b9168e2492cb4e0219f2965852b7e9d53
[apps/core/preloaded/calendar.git] / src / base-data.h
1 /*\r
2   *\r
3   *  Copyright 2012  Samsung Electronics Co., Ltd\r
4   *\r
5   *  Licensed under the Flora License, Version 1.0 (the "License");\r
6   *  you may not use this file except in compliance with the License.\r
7   *  You may obtain a copy of the License at\r
8   *\r
9   *       http://floralicense.org/license/\r
10   *\r
11   *  Unless required by applicable law or agreed to in writing, software\r
12   *  distributed under the License is distributed on an "AS IS" BASIS,\r
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14   *  See the License for the specific language governing permissions and\r
15   *  limitations under the License.\r
16   */\r
17 \r
18 #ifndef __CALENDAR_BASE_DATA_H__\r
19 #define __CALENDAR_BASE_DATA_H__\r
20 #include "cld.h"\r
21 \r
22 #define EVENT_SLICE_COUNT 48\r
23 \r
24 typedef void* cal_base_data_h;\r
25 typedef void* cal_base_data_item_h;\r
26 \r
27 typedef enum {
28         _CAL_BASE_TYPE_NULL = 0,\r
29         _CAL_BASE_TYPE_EVENT,\r
30         _CAL_BASE_TYPE_PARTICIPANTS,\r
31         _CAL_BASE_TYPE_MAX\r
32 } cal_base_type;\r
33 \r
34 \r
35 typedef Eina_Bool(* cal_base_data_foreach_items_func_ptr)(cal_base_data_h event_data, void *user_data);\r
36 typedef cal_base_data_h(* cal_base_data_new_func_ptr)(void *data);\r
37 typedef void(* cal_base_data_delete_func_ptr)(cal_base_data_h base_data);\r
38 typedef void(* cal_base_data_load_func_ptr)(cal_base_data_h base_data);\r
39 typedef void(* cal_base_data_create_data_list_func_ptr)(cal_base_data_h base_data);\r
40 typedef void(* cal_base_data_destroy_data_list_func_ptr)(cal_base_data_h base_data);\r
41 \r
42 typedef struct {\r
43         cal_base_data_new_func_ptr new_func_ptr;\r
44         cal_base_data_delete_func_ptr delete_func_ptr;\r
45         cal_base_data_load_func_ptr load_func_ptr;\r
46         cal_base_data_create_data_list_func_ptr create_data_list_ptr;\r
47         cal_base_data_destroy_data_list_func_ptr destory_data_list_ptr;\r
48 } cal_base_data_operations;\r
49 \r
50 typedef struct {\r
51         char *text;\r
52         int line_index;\r
53         int height;\r
54         _calendar_book_color color;\r
55         int width_devider;\r
56         int column_index;\r
57 } cal_base_data_item;\r
58 \r
59 typedef struct {\r
60         Eina_List *base_data_list;\r
61         cal_base_data_operations base_operations;\r
62 } cal_base_data_s;\r
63 \r
64 cal_base_data_h cal_base_data_new(cal_base_type type, void *data);\r
65 cal_base_data_h cal_base_data_create(cal_base_data_operations *base_operations, void *data);\r
66 void cal_base_data_delete(cal_base_data_h base_data);\r
67 void cal_base_data_load(cal_base_data_h base_data);\r
68 void cal_base_data_create_data_list(cal_base_data_h base_data);\r
69 void cal_base_data_destroy_data_list(cal_base_data_h base_data);\r
70 int  cal_base_data_foreach_items (cal_base_data_foreach_items_func_ptr callback, cal_base_data_item_h base_data, void *usr_data);\r
71 \r
72 char *cal_base_data_get_item_text(cal_base_data_item_h base_item);\r
73 void cal_base_data_get_item_color(cal_base_data_item_h base_item, _calendar_book_color *color);\r
74 int cal_base_data_get_item_width_devider(cal_base_data_item_h base_item);\r
75 int cal_base_data_get_item_cloumn_index(cal_base_data_item_h base_item);\r
76 int cal_base_data_get_item_height(cal_base_data_item_h base_item);\r
77 int cal_base_data_get_item_line_index(cal_base_data_item_h base_item);\r
78 \r
79 void cal_base_data_set_item_height(cal_base_data_item_h base_item, int height);\r
80 void cal_base_data_set_item_line_index(cal_base_data_item_h base_item, int line_index);\r
81 \r
82 #endif\r