2 * Copyright 2012 Samsung Electronics Co., Ltd
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
8 * http://www.tizenopensource.org/license
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.
18 #ifndef BROWSER_DATA_MANAGER_H
19 #define BROWSER_DATA_MANAGER_H
23 #include "browser-config.h"
25 typedef enum _view_stack_status {
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
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;
47 class Browser_Geolocation_DB;
49 class Browser_Data_Manager {
51 Browser_Data_Manager(void);
52 ~Browser_Data_Manager(void);
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.
59 Eina_Bool is_in_view_stack(view_stack_status view);
61 Browser_View *get_browser_view(void) { return m_browser_view; }
62 void set_browser_view(Browser_View *browser_view);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
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;
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;
125 Browser_Bookmark_DB *m_bookmark_db;
126 Browser_History_DB *m_history_db;
127 Browser_Geolocation_DB *m_geolocation_db;
129 unsigned int m_stack_status;
132 #endif /* BROWSER_DATA_MANAGER_H */