2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
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 * @author Jaroslaw Osmanski (j.osmanski@samsung.com)
20 * @brief Window data header file.
23 #ifndef WINDOW_INITIALIZE_H_
24 #define WINDOW_INITIALIZE_H_
26 #include <dpl/framework_efl.h>
30 #include <dpl/noncopyable.h>
34 * Current layout structure
37 * m_platform_layout (elm_layout)
38 * m_navigation (elm_navigation)
39 * m_user_layout (elm_layout)
40 * widget_area (elm_webview)
44 const char *const WRT_OPTION_LABEL_BACKWARD = "Backward";
45 const char *const WRT_OPTION_LABEL_FORWARD = "Forward";
46 const char *const WRT_OPTION_LABEL_RELOAD = "Reload";
47 const char *const WRT_OPTION_LABEL_FULLVIEW = "Full view";
49 const char *const WRT_OPTION_ICON_BACKWARD = "/usr/etc/wrt/icon_left_arrow.png";
50 const char *const WRT_OPTION_ICON_FORWARD = "/usr/etc/wrt/icon_right_arrow.png";
51 const char *const WRT_OPTION_ICON_RELOAD = "/usr/etc/wrt/icon_refresh.png";
52 const char *const WRT_OPTION_ICON_WINDOWVIEW = "/usr/etc/wrt/mp_stop.png";
55 class WindowData : private DPL::Noncopyable
58 typedef void (*CallbackType)(
59 void* data, Evas_Object* obj, void* event_info);
60 typedef void (*EvasCallbackType)(
61 void* data, Evas* evas, Evas_Object* obj, void* event_info);
63 struct EventWithFunction
65 CallbackType function;
66 std::string eventName;
67 EventWithFunction(CallbackType a_function,
68 const char * a_eventName) :
70 eventName(a_eventName)
74 typedef std::vector<EventWithFunction> EventWithFunctionVector;
78 Evas_Object* m_user_layout;
86 Evas_Smart_Cb callback;
89 typedef std::list<CtxMenuItem> CtxMenuItems;
91 explicit WindowData(unsigned long pid, bool manualInit=false);
92 virtual ~WindowData();
95 void setEvasObjectForLayout(Evas_Object* evas_object);
96 void unsetEvasObjectForLayout();
97 void addNaviBackButtonCallback(
99 CallbackType callback,
101 void* delNaviBackButtonCallback(
103 CallbackType callBack);
104 void userlayoutCallbackAdd(
105 const Evas_Callback_Type event,
106 EvasCallbackType callback,
108 void* userlayoutCallbackDel(
109 const Evas_Callback_Type event,
110 EvasCallbackType callback);
111 void emitSignalForUserLayout(
112 const char* emission,
115 void changeViewMode();
116 void createTitleToolbar(CtxMenuItems ctxMenuItems);
117 void createToolbar(CtxMenuItems ctxMenuItems);
120 void createOptionButton();
121 void destroyOptionButton();
126 CtxMenuItems ctxMenuItems);
127 void initFullViewMode();
129 static void moreButtonCallback(void *data,
132 static void changeViewModeCallback(void *data,
135 static void controlHiddenOptionCallback(void *data,
137 const char *emission,
139 static Eina_Bool hideToolbarCallback(void *data);
140 void toggleFullscreen(bool fullscreen);
143 Evas_Object* m_conformant;
144 Evas_Object* m_platform_layout;
145 Evas_Object* m_navigation;
146 Evas_Object* m_naviBackButton;
147 bool optionheaderClose;
149 CtxMenuItems m_ctxMenuItems;
150 Ecore_Timer *m_toolbarTimer;
154 Evas_Object* createWindow(unsigned long pid);
155 Evas_Object* createPlatformLayout(Evas_Object* parent);
156 Evas_Object* createNavigationBar(Evas_Object* parent);
157 Evas_Object* createUserLayout(Evas_Object* parent);
158 Evas_Object* createConformant(Evas_Object* parent);
159 Evas_Object* createProgress(Evas_Object* parent);
160 void showHiddenOption(Evas_Object* parent);
161 void hideHiddenOption(Evas_Object* parent);
163 void alignProgressPosition();
164 void createTitle(const char* data, CtxMenuItems ctxMenuItems);
165 void showTitle(const char* data);
167 void createMoreButton();
168 void createTitleButton();
169 void updateTitleButton(const bool display);
170 void toggleIndicator(bool indicator);
173 #endif /* WINDOW_INITIALIZE_H_ */