app_icon: Do not show checkbox on folder icon
[apps/native/home/homescreen-efl.git] / inc / folder_panel.h
1 /*
2  * Copyright 2012  Samsung Electronics Co., Ltd
3  *
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
7  *
8  * http://floralicense.org/license/
9  *
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.
15  */
16
17 #ifndef __FOLDER_PANEL_H__
18 #define __FOLDER_PANEL_H__
19
20 #include <stdbool.h>
21 #include "homescreen-efl.h"
22 #include "app_item.h"
23 #include "dynamic_index.h"
24 #include "tree.h"
25
26 typedef struct {
27         Eina_List *miniatures;
28         Evas_Object *folder_scroller;
29 } folder_data_t;
30
31 typedef enum {
32         FOLDER_PANEL_CHECKED_NONE = 0,
33         FOLDER_PANEL_CHECKED_ANY,
34         FOLDER_PANEL_CHECKED_ALL,
35 } folder_checked_t;
36
37 /**
38  * @brief Initializes folder module
39  */
40 void folder_panel_init_module(void);
41
42 /**
43  * @brief Frees all data initialized before.
44  */
45 void folder_panel_deinit_module(void);
46
47 /**
48  * @brief Creates folder panel.
49  * @param data folder parent in data model
50  * @return app_item_t pointer
51  */
52 extern app_item_t *folder_panel_create(Tree_node_t *data);
53
54 /**
55  * @brief Ignores folder click action if ignore is true.
56 */
57 extern void folder_panel_set_click_ignore_state(bool ignore);
58
59 /**
60  * @brief Enables or disables folder entry editing.
61  * @param state the state to put folder entry in
62  */
63 extern void folder_panel_enable_entry(bool state);
64
65 /**
66  * @brief Attaches icon object to grid of currently opened folder.
67  * @param icon - app_item_t->layout
68  */
69 extern Elm_Object_Item *folder_panel_attach_to_grid(Evas_Object *icon,
70         folder_data_t *folder_data);
71
72 /**
73  * @brief Shows folder panel layout on screen
74  * @param folder pointer to app_item_t object
75  * @param keypad_show imf keyboard visibility flatg
76  *
77  * @return true if no errors.
78  */
79 extern bool folder_panel_open_folder(app_item_t *folder, bool keypad_show);
80
81 /**
82  * @brief Closes folder panel view.
83  */
84 extern void folder_panel_close_folder(void);
85
86 /**
87  * @brief Cancels appending new items into the folder by add icon press.
88  */
89 extern void folder_panel_cancel_add_icon(void);
90
91 /**
92  * @brief Returns folder visibility state
93  * @return true if folder is visible otherwise returns false
94  */
95 extern bool folder_panel_is_folder_visible(void);
96
97 /**
98  * @brief Shows checkboxes on the folder icon.
99  */
100 extern folder_checked_t folder_panel_set_content_checked(Tree_node_t *node);
101
102 /**
103  * @brief Function returns pointer to data node of the opened folder
104  * @return Tree_Node_t pointer.
105  */
106 extern Tree_node_t *folder_panel_get_opened_folder_node(void);
107
108 /**
109  * @brief Function returns pointer to app_item of opened folder
110  */
111 extern const app_item_t *folder_panel_get_opened_folder_item(void);
112
113 /**
114  * @brief Return number of items inserted into the folder.
115  */
116 extern int folder_panel_get_items_count(Tree_node_t *folder);
117
118 /**
119  * @brief Removes empty folder after reposition.
120  */
121 extern void folder_panel_remove_empty_folder(Tree_node_t *folder);
122
123 /**
124  * @brief Return folder popup geometry
125  *
126  * @param x position
127  * @param y position
128  * @param w width
129  * @param h height
130  */
131 extern void folder_panel_get_folder_geometry(int *x, int *y, int *w, int *h);
132
133 /**
134  * @brief Function close entry input panel connected with folder name entry
135  * widget
136  */
137 extern void folder_panel_hide_input_panel(void);
138
139 #endif /* FOLDER_PANEL_H_ */