3 * Copyright 2012 Samsung Electronics Co., Ltd
5 * Licensed under the Flora License, Version 1.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://floralicense.org/license/
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 #include "base-data.h"
19 #include "day-event-data.h"
21 cal_base_data_h cal_base_data_new(cal_base_type type, void *data)
23 cal_base_data_s *base_data = NULL;
26 case _CAL_BASE_TYPE_EVENT:
27 base_data = cal_day_event_data_create(data);
36 cal_base_data_h cal_base_data_create(cal_base_data_operations *base_operations, void *data)
38 c_retv_if(!base_operations, NULL);
39 c_retv_if(!base_operations->new_func_ptr, NULL);
41 cal_base_data_h base_data = base_operations->new_func_ptr(data);
42 c_retv_if(!base_data , NULL);
44 cal_base_data_s *p = (cal_base_data_s *)base_data;
46 p->base_operations.new_func_ptr = base_operations->new_func_ptr;
47 p->base_operations.delete_func_ptr = base_operations->delete_func_ptr;
48 p->base_operations.load_func_ptr = base_operations->load_func_ptr;
49 p->base_operations.create_data_list_ptr = base_operations->create_data_list_ptr;
50 p->base_operations.destory_data_list_ptr = base_operations->destory_data_list_ptr;
55 void cal_base_data_delete(cal_base_data_h base_data)
59 cal_base_data_s *p = (cal_base_data_s *)base_data;
60 c_ret_if(!p->base_operations.delete_func_ptr);
62 p->base_operations.delete_func_ptr(base_data);
65 void cal_base_data_load(cal_base_data_h base_data)
69 cal_base_data_s *p = (cal_base_data_s *)base_data;
70 c_ret_if(!p->base_operations.load_func_ptr);
72 p->base_operations.load_func_ptr(base_data);
75 void cal_base_data_create_data_list(cal_base_data_h base_data)
79 cal_base_data_s *p = (cal_base_data_s *)base_data;
80 c_ret_if(!p->base_operations.create_data_list_ptr);
82 p->base_operations.create_data_list_ptr(base_data);
85 void cal_base_data_destroy_data_list(cal_base_data_h base_data)
89 cal_base_data_s *p = (cal_base_data_s *)base_data;
90 c_ret_if(!p->base_operations.destory_data_list_ptr);
92 p->base_operations.destory_data_list_ptr(base_data);
96 int cal_base_data_foreach_items (cal_base_data_foreach_items_func_ptr callback, cal_base_data_item_h base_data, void *usr_data)
98 c_retv_if(!base_data, -1);
99 cal_base_data_s *p = (cal_base_data_s *)base_data;
102 c_retv_if(!p->base_data_list, -1);
104 cal_base_data_item_h item_data = NULL;
107 EINA_LIST_FOREACH(p->base_data_list, l, item_data) {
109 Eina_Bool is_continue = (*callback)((cal_base_data_item_h)item_data, usr_data);
118 char *cal_base_data_get_item_text(cal_base_data_item_h base_item)
120 c_retv_if(!base_item, NULL);
122 cal_base_data_item *item_data = (cal_base_data_item*)base_item;
124 return item_data->text;
127 void cal_base_data_get_item_color(cal_base_data_item_h base_item, _calendar_book_color *color)
129 c_ret_if(!base_item);
132 cal_base_data_item *item_data = (cal_base_data_item*)base_item;
134 color->red = item_data->color.red;
135 color->blue = item_data->color.blue;
136 color->green = item_data->color.green;
137 color->alpha= item_data->color.alpha;
140 int cal_base_data_get_item_width_devider(cal_base_data_item_h base_item)
142 c_retv_if(!base_item, -1);
144 cal_base_data_item *item_data = (cal_base_data_item*)base_item;
146 return item_data->width_devider;
149 int cal_base_data_get_item_cloumn_index(cal_base_data_item_h base_item)
151 c_retv_if(!base_item, -1);
153 cal_base_data_item *item_data = (cal_base_data_item*)base_item;
155 return item_data->column_index;
158 int cal_base_data_get_item_height(cal_base_data_item_h base_item)
160 c_retv_if(!base_item, -1);
162 cal_base_data_item *item_data = (cal_base_data_item *)base_item;
164 return item_data->height;
167 int cal_base_data_get_item_line_index(cal_base_data_item_h base_item)
169 c_retv_if(!base_item, -1);
171 cal_base_data_item *item_data = (cal_base_data_item *)base_item;
173 return item_data->line_index;
176 void cal_base_data_set_item_height(cal_base_data_item_h base_item, int height)
178 c_ret_if(!base_item);
180 cal_base_data_item* base_item_data = (cal_base_data_item*)base_item;
182 base_item_data->height = height;
185 void cal_base_data_set_item_line_index(cal_base_data_item_h base_item, int line_index)
187 c_ret_if(!base_item);
189 cal_base_data_item* base_item_data = (cal_base_data_item*)base_item;
191 base_item_data->line_index = line_index;