c2e2afdb71bd71c2c6fe457756452b3f2cd841ba
[apps/native/home/homescreen-efl.git] / inc / homescreen-efl.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 __HOMESCREEN_EFL_H__
18 #define __HOMESCREEN_EFL_H__
19
20 #include <app.h>
21 #include <Elementary.h>
22
23 #include <system_settings.h>
24 #include <dlog.h>
25
26 #include "conf.h"
27 #include "app_item.h"
28 #include "tree.h"
29
30 #if !defined(PACKAGE)
31 #define PACKAGE "org.tizen.homescreen-efl"
32 #endif
33
34
35 typedef enum {
36         HOMESCREEN_VIEW_HOME = 0,
37         HOMESCREEN_VIEW_HOME_EDIT,
38         HOMESCREEN_VIEW_HOME_ALL_PAGES,
39         HOMESCREEN_VIEW_ALL_APPS,
40         HOMESCREEN_VIEW_ALL_APPS_EDIT,
41         HOMESCREEN_VIEW_ALL_APPS_CHOOSE,
42         HOMESCREEN_VIEW_UNKNOWN,
43 } homescreen_view_t;
44
45 typedef enum {
46         INDICE_NEXT_PAGE_ON = 0,
47         INDICE_PREV_PAGE_ON,
48         INDICE_OFF,
49 } indice_type_t;
50
51 /**
52  * @return returns screen width
53  */
54 extern int home_screen_get_root_width(void);
55
56 /**
57  * @return returns screen height
58  */
59 extern int home_screen_get_root_height(void);
60
61 /**
62  * @brief Returns homescreen window pointer.
63  * @return Evas_Object pointer to elm_win widget or NULL if falsse
64  */
65 extern Evas_Object *home_screen_get_win(void);
66
67 /**
68  * @brief Returns elm_win main layout.
69  * @details Function returns pointer to elm_layout widget with is a parent
70  * for other views used in home
71  * @return Evas_Object pointer to elm_layout widget
72  */
73 extern Evas_Object *home_screen_get_layout(void);
74
75 /**
76  * @brief Returns homescreen view type
77  * @details Possible types :
78  *
79  *HOMESCREEN_VIEW_HOME,
80  *HOMESCREEN_VIEW_HOME_EDIT,
81  *HOMESCREEN_VIEW_HOME_ALL_PAGES,
82  *HOMESCREEN_VIEW_ALL_APPS,
83  *HOMESCREEN_VIEW_ALL_APPS_EDIT,
84  *HOMESCREEN_VIEW_ALL_APPS_CREATE_FOLDER,
85  *HOMESCREEN_VIEW_UNKNOWN,
86  *
87  * @return homescreen_view_t value
88  */
89 extern homescreen_view_t home_screen_get_view_type(void);
90
91 /**
92  * @brief set homescreen view type
93  * @param view homescreen_view_t type
94  */
95 extern void home_screen_set_view_type(homescreen_view_t view);
96
97 /**
98  * @brief Function sets indice state
99  * @details During page switching left or right side of the screen should be
100  * highlighted. This function is repsponsible for this logic.
101  *
102  * @param indice type of performed action
103  */
104 extern void home_screen_set_indice_state(indice_type_t indice);
105
106 /**
107  * @brief Update the view after application uninstall
108  */
109 extern void home_screen_mvc_item_uninstall_cb(Tree_node_t *item);
110
111 /**
112  * @brief Update view after folder name change
113  */
114 extern void home_screen_mvc_update_view(void);
115
116 /**
117  * @brief Update view after move an item into the folder
118  */
119 extern void home_screen_mvc_drag_item_to_folder_cb(Tree_node_t *dragged_item,
120         Tree_node_t *folder);
121
122 /**
123  * @brief home branch test function
124  * @details Function for debug purpose only. Displays
125  * the data stored in home branch of the data model tree
126  */
127 extern void home_screen_print_tree(void);
128
129 /**
130  * @brief Function updates the view after drag an item from the folder.
131  */
132 extern void home_screen_mvc_drag_item_from_folder_cb(void);
133
134 /**
135  * @brief Multi resolution support function for texts in edje.
136  *
137  * @param layout Elm_Layout Pointer
138  */
139 extern void home_screen_mvc_set_ly_scale(Evas_Object *layout);
140
141 /**
142  * @brief Close all apps choose view.
143  *
144  */
145 extern void home_screen_close_all_apps_choose_view(void);
146
147 #endif /* __homescreen-efl_H__ */