2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.1 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
25 REPOSITION_SIDE_TO_LEFT,
26 REPOSITION_SIDE_TO_RIGHT
30 * @brief gets data model of the application
32 extern Tree_node_t *data_model_get_data(void);
35 * @brief gets data model for the all apps view.
37 extern Tree_node_t *data_model_get_all_apps(void);
40 * @brief gets data model for the home view.
42 extern Tree_node_t *data_model_get_home(void);
45 * @brief Get applications from app manager
47 extern void data_model_load_app_mgr(void);
50 * @brief Get applications from database
52 extern Eina_Bool data_model_load_db(void);
55 * @brief free entire memory allocated for model structure
58 extern void data_model_free(void);
61 * @brief Creates folder in the data model/
63 extern Tree_node_t *data_model_create_folder(app_item_t *node);
66 * @brief Appends an item into the folder.
68 extern void data_model_append_node_to_folder(Tree_node_t *folder,
72 * @brief Removes empty pages from the all apps view in the data model.
74 extern void data_model_free_empty_pages(Tree_node_t *folder_or_some_other_root);
77 * @brief Delete folder and move apps to all apps
79 extern void data_model_delete_folder(Tree_node_t *node);
82 * @brief Append an newly installed application to the data model.
84 extern Tree_node_t *data_model_install_application(
85 app_mgr_item_t *app_mgr_item);
88 * @brief Uninstall an application
90 extern void data_model_uninstall_application(Tree_node_t *node);
93 * @brief set checked state to all icons
95 extern void data_model_check_all_apps(Tree_node_t *node, bool checked);
98 * @brief returns count of checked applications in the all apps edit mode view.
100 extern int data_model_get_app_check_state(void);
103 * @brief change position of an application
105 extern void data_model_reposition_item(Tree_node_t *node,
106 Tree_node_t *destinations_parent, Tree_node_t *destination,
107 reposition_side_t side, int page_limit);
110 * @brief set the view type of the data models items
112 extern void data_model_set_view_mode(homescreen_view_t view);
115 * @brief iterates over the whole tree and applies func_cb over each node
116 * @param node - tree node, pass NULL if You want
117 * to start from the root of the model tree
118 * @param func_cb - function to call on each node
119 * @param data - data - to be passed to func_cb
120 * @details [long description]
122 extern void data_model_iterate(Tree_node_t *node, tree_browse_cb_t func_cb,
126 * @brief This one takes pages abstraction into account.
127 * Iterates through pages, and it's items.
128 * @param node - tree node, pass NULL if You want
129 * to start from the root of the model tree
130 * @param item_func - function to call on each item
131 * @param page_func - function to call on each page
132 * @param data - data - to be passed to func_cb
134 extern void data_model_iterate_pages(Tree_node_t *node,
135 tree_browse_cb_t page_func, tree_browse_cb_t item_func, void *data);
138 * @brief sorts in place using sort_compare_function
140 extern void data_model_sort(Eina_Compare_Cb sort_compare_function);
143 * @brief Creates new page
144 * @details Creates new page node, adds it to the tree structure and
145 * returns the created page
146 * @return new page node
148 extern Tree_node_t *data_model_add_widget_page(void);
151 * @brief Creates new widget and adds it to @p page
152 * @param page Page the new widget will be added to
153 * @param widget_id Created widget
154 * @param col column to put widget in
155 * @param row row to put widget in
156 * @param col_span column span of widget
157 * @param row_span row span of widget
158 * @return New widget node
160 extern Tree_node_t *data_model_add_widget(Tree_node_t *page,
161 const char *widget_id, int col, int row, int col_span, int row_span,
162 const char *content_info);
165 * @brief [brief description]
166 * @details [long description]
168 extern void data_model_reposition_widget(Tree_node_t *page_node,
169 Tree_node_t *obj_node);
172 * @brief [brief description]
173 * @details [long description]
175 extern void data_model_resize_widget(Tree_node_t *item_node, int col, int row,
176 int col_span, int row_span);
178 extern void data_model_update_content_info(Tree_node_t *item_node, const char *content_info);
181 * @brief [brief description]
182 * @details [long description]
184 extern void data_model_insert_after(Tree_node_t *prev_node,
185 Tree_node_t *item_node);
188 * @brief [brief description]
189 * @details [long description]
191 extern void data_model_del_item(Tree_node_t *node);
194 * @brief [brief description]
195 * @details [long description]
197 extern void data_model_update_item(Tree_node_t *node);
200 * @brief Unpin a repositioned node from the folder.
202 * @param folder_node Folder node pointer.
203 * @param node repositioned node pointer.
205 extern void data_model_detach_from_folder(Tree_node_t *folder_node,
209 #endif /* DATA_MODEL_H_ */