The source code moved from the SPIN with license changed to Flora 1.1
[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 /**
32  * @brief Initializes folder module
33  */
34 void folder_panel_init_module(void);
35
36 /**
37  * @brief Frees all data initialized before.
38  */
39 void folder_panel_deinit_module(void);
40
41 /**
42  * @brief Creates folder panel.
43  * @param data folder parent in data model
44  * @return app_item_t pointer
45  */
46 extern app_item_t *folder_panel_create(Tree_node_t *data);
47
48 /**
49  * @brief Ignores folder click action if ignore is true.
50 */
51 extern void folder_panel_set_click_ignore_state(bool ignore);
52
53 /**
54  * @brief Enables or disables folder entry editing.
55  * @param state the state to put folder entry in
56  */
57 extern void folder_panel_enable_entry(bool state);
58
59 /**
60  * @brief Attaches icon object to grid of currently opened folder.
61  * @param icon - app_item_t->layout
62  */
63 extern Elm_Object_Item *folder_panel_attach_to_grid(Evas_Object *icon,
64         folder_data_t *folder_data);
65
66 /**
67  * @brief Shows folder panel layout on screen
68  * @param folder pointer to app_item_t object
69  * @param keypad_show imf keyboard visibility flatg
70  *
71  * @return true if no errors.
72  */
73 extern bool folder_panel_open_folder(app_item_t *folder, bool keypad_show);
74
75 /**
76  * @brief Closes folder panel view.
77  */
78 extern void folder_panel_close_folder(void);
79
80 /**
81  * @brief Cancels appending new items into the folder by add icon press.
82  */
83 extern void folder_panel_cancel_add_icon(void);
84
85 /**
86  * @brief Returns folder visibility state
87  * @return true if folder is visible otherwise returns false
88  */
89 extern bool folder_panel_is_folder_visible(void);
90
91 /**
92  * @brief Shows checkboxes on the folder icon.
93  */
94 extern bool folder_panel_set_content_checked(Tree_node_t *node);
95
96 /**
97  * @brief Function returns pointer to data node of the opened folder
98  * @return Tree_Node_t pointer.
99  */
100 extern Tree_node_t *folder_panel_get_opened_folder_node(void);
101
102 /**
103  * @brief Function returns pointer to app_item of opened folder
104  */
105 extern const app_item_t *folder_panel_get_opened_folder_item(void);
106
107 /**
108  * @brief Return number of items inserted into the folder.
109  */
110 extern int folder_panel_get_items_count(Tree_node_t *folder);
111
112 /**
113  * @brief Removes empty folder after reposition.
114  */
115 extern void folder_panel_remove_empty_folder(Tree_node_t *folder);
116
117 /**
118  * @brief Return folder popup geometry
119  *
120  * @param x position
121  * @param y position
122  * @param w width
123  * @param h height
124  */
125 extern void folder_panel_get_folder_geometry(int *x, int *y, int *w, int *h);
126
127 /**
128  * @brief Function close entry input panel connected with folder name entry
129  * widget
130  */
131 extern void folder_panel_hide_input_panel(void);
132
133 #endif /* FOLDER_PANEL_H_ */