[Title] Modify to use soft refresh when reload.
[profile/ivi/org.tizen.browser.git] / src / browser-data-manager.h
1 /*
2  * Copyright 2012  Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.0 (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://www.tizenopensource.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
18 #ifndef BROWSER_DATA_MANAGER_H
19 #define BROWSER_DATA_MANAGER_H
20
21 using namespace std;
22
23 #include "browser-config.h"
24
25 typedef enum _view_stack_status {
26         BR_BROWSER_VIEW = 1,
27         BR_BOOKMARK_VIEW = 1 << 1,
28         BR_ADD_TO_BOOKMARK_VIEW = 1 << 2,
29         BR_EDIT_BOOKMARK_VIEW = 1 << 3,
30         BR_NEW_FOLDER_VIEW = 1 << 4,
31         BR_SELECT_FOLDER_VIEW = 1 << 5,
32         BR_MULTI_WINDOW_VIEW = 1 << 6,
33         ADD_TO_MOST_VISITED_SITES_VIEW = 1 << 7
34 } view_stack_status;
35
36 class Browser_Add_To_Bookmark_View;
37 class Add_To_Most_Visited_Sites_View;
38 class Browser_Bookmark_DB;
39 class Browser_Bookmark_View;
40 class Browser_History_DB;
41 class Browser_History_Layout;
42 class Browser_Multi_Window_View;
43 class Browser_New_Folder_View;
44 class Browser_Select_Folder_View;
45 class Most_Visited_Sites;
46 class Browser_View;
47 class Browser_Geolocation_DB;
48
49 class Browser_Data_Manager {
50 public:
51         Browser_Data_Manager(void);
52         ~Browser_Data_Manager(void);
53
54         /* Must be.
55           * When create some view, it should be created by create_xxx method of Browser_Data_Manager.
56           * When leave that view (using elm_navigationbar_pop), the destroy_xxx method also called.
57           * The create_xxx, destroy_xxx methods control the view stack.
58           */
59         Eina_Bool is_in_view_stack(view_stack_status view);
60
61         Browser_View *get_browser_view(void) { return m_browser_view; }
62         void set_browser_view(Browser_View *browser_view);
63
64         Browser_Bookmark_View *get_bookmark_view(void) { return m_bookmark_view; }
65         Browser_Bookmark_View *create_bookmark_view(void);
66         void destroy_bookmark_view(void);
67
68         Browser_Bookmark_DB *get_bookmark_db(void) { return m_bookmark_db; }
69         Browser_Bookmark_DB *create_bookmark_db(void);
70         void destroy_bookmark_db(void);
71
72         Browser_Add_To_Bookmark_View *get_add_to_bookmark_view(void) { return m_add_to_bookmark_view; }
73         Browser_Add_To_Bookmark_View *create_add_to_bookmark_view(string title,
74                                                                 string url, int current_folder_id = BROWSER_BOOKMARK_MAIN_FOLDER_ID);
75         void destroy_add_to_bookmark_view(void);
76
77         Browser_Add_To_Bookmark_View *get_edit_bookmark_view(void) { return m_edit_bookmark_view; }
78         Browser_Add_To_Bookmark_View *create_edit_bookmark_view(string title,
79                                                                 string url, int current_folder_id = BROWSER_BOOKMARK_MAIN_FOLDER_ID);
80         void destroy_edit_bookmark_view(void);
81
82 #if defined(FEATURE_MOST_VISITED_SITES)
83         Add_To_Most_Visited_Sites_View *get_add_to_most_visited_sites_view(void) { return m_add_to_most_visited_sites_view; }
84         Add_To_Most_Visited_Sites_View *create_add_to_most_visited_sites_view(Most_Visited_Sites *most_visited_sites);
85         void destroy_add_to_most_visited_sites_view(void);
86 #endif
87
88         Browser_New_Folder_View *get_new_folder_view(void) { return m_new_folder_view; }
89         Browser_New_Folder_View *create_new_folder_view(void);
90         void destroy_new_folder_view(void);
91
92         Browser_Select_Folder_View *get_select_folder_view(void) { return m_select_folder_view; }
93         Browser_Select_Folder_View *create_select_folder_view(int current_folder_id);
94         void destroy_select_folder_view(void);
95
96         Browser_Multi_Window_View *get_multi_window_view(void) { return m_multi_window_view; }
97         Browser_Multi_Window_View *create_multi_window_view(void);
98         void destroy_multi_window_view(void);
99
100         Browser_History_Layout *get_history_layout(void) { return m_history_layout; }
101         Browser_History_Layout *create_history_layout(void);
102         void destroy_history_layout(void);
103
104         Browser_History_DB *get_history_db(void) { return m_history_db; }
105         Browser_History_DB *create_history_db(void);
106         void destroy_history_db(void);
107
108         Browser_Geolocation_DB *get_geolocation_db(void) { return m_geolocation_db; }
109         Browser_Geolocation_DB *create_geolocation_db(void);
110         void destroy_geolocation_db(void);
111
112 private:
113         Browser_View *m_browser_view;
114         Browser_Bookmark_View *m_bookmark_view;
115         Browser_Add_To_Bookmark_View *m_add_to_bookmark_view;
116 #if defined(FEATURE_MOST_VISITED_SITES)
117         Add_To_Most_Visited_Sites_View *m_add_to_most_visited_sites_view;
118 #endif
119         Browser_Add_To_Bookmark_View *m_edit_bookmark_view;
120         Browser_New_Folder_View *m_new_folder_view;
121         Browser_Select_Folder_View *m_select_folder_view;
122         Browser_History_Layout *m_history_layout;
123         Browser_Multi_Window_View *m_multi_window_view;
124
125         Browser_Bookmark_DB *m_bookmark_db;
126         Browser_History_DB *m_history_db;
127         Browser_Geolocation_DB *m_geolocation_db;
128
129         unsigned int m_stack_status;
130 };
131
132 #endif /* BROWSER_DATA_MANAGER_H */
133