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