3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
\r
5 // Licensed under the Flora License, Version 1.0 (the License);
\r
6 // you may not use this file except in compliance with the License.
\r
7 // You may obtain a copy of the License at
\r
9 // http://floralicense.org/license/
\r
11 // Unless required by applicable law or agreed to in writing, software
\r
12 // distributed under the License is distributed on an AS IS BASIS,
\r
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
14 // See the License for the specific language governing permissions and
\r
15 // limitations under the License.
\r
18 //!Internet MainForm class
\r
20 *@brief: The %MainForm provides the common functionalities for the Main View of the Browser including the addressbar,
\r
21 * loading,handling events etc.
\r
24 #ifndef _INT_MAIN_FORM_H_
\r
25 #define _INT_MAIN_FORM_H_
\r
31 #include "IntAddressbar.h"
\r
32 #include "IntHistoryData.h"
\r
33 #include "IntHistoryPresentationModel.h"
\r
34 #include "IntIAddressbarEventListener.h"
\r
35 #include "IntISettingChangeListener.h"
\r
36 #include "IntMultipleWindowPresentationModel.h"
\r
37 #include "IntSharePopup.h"
\r
40 : public Tizen::Ui::Controls::Form
\r
41 , public Tizen::Ui::Controls::IListViewItemEventListener
\r
42 , public Tizen::Ui::Controls::IListViewItemProvider
\r
43 , public Tizen::Ui::IActionEventListener
\r
44 , public IAddressbarEventListener
\r
45 , public Tizen::Ui::Controls::IFormBackEventListener
\r
46 , public Tizen::Ui::IKeypadEventListener
\r
47 , public Tizen::Web::Controls::ILoadingListener
\r
48 , public Tizen::Ui::IOrientationEventListener
\r
49 , public Tizen::Ui::ITextEventListener
\r
50 , public Tizen::Ui::ITouchEventListener
\r
51 , public Tizen::Ui::Scenes::ISceneEventListener
\r
52 , public ISettingChangeEventListener
\r
53 , public Tizen::Web::Controls::IWebKeypadEventListener
\r
54 , public Tizen::Web::Controls::IWebUiEventListener
\r
55 , public Tizen::Web::Controls::ITextSearchListener
\r
59 *@brief Default constructor
\r
64 *@brief Default destructor
\r
66 virtual ~MainForm(void);
\r
69 * @brief The method initializes the screen variables and controls to be used by the user.
\r
72 bool Initialize(void);
\r
75 * @brief Initializes this instance of %MainForm.
\r
78 result InitWebControl();
\r
81 * @brief Initializes this instance of Reader Panel.
\r
83 result CreateReaderPanel(void);
\r
85 Tizen::Base::String GetImagePath(void);
\r
87 void LoadUrl(Tizen::Base::String& url);
\r
89 virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
\r
91 virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
\r
93 //IAddressbarEventListener
\r
94 void OnAddressCancelledClicked(const Addressbar&);
\r
96 void OnAddressBarKeypadClosed(const Addressbar&);
\r
98 void OnAddressBarKeypadOpened(const Addressbar&);
\r
100 void OnAddressBarKeypadWillOpen(const Addressbar&);
\r
102 void OnAddressBarModeChanged(const Addressbar&);
\r
104 void OnBackClicked(const Addressbar&);
\r
106 void OnForwardClicked(const Addressbar&);
\r
108 void OnReaderClicked(const Addressbar&);
\r
110 void OnRefreshClicked(const Addressbar&){}
\r
112 void OnSearchClicked(const Addressbar&){}
\r
114 void OnStopClicked(Addressbar&);
\r
116 void OnUrlSubmitted(Addressbar&);
\r
118 //ILoadingeventListener
\r
119 virtual void OnEstimatedProgress(int progress);
\r
121 virtual bool OnHttpAuthenticationRequestedN(const Tizen::Base::String& host, const Tizen::Base::String& realm, const Tizen::Web::Controls::AuthenticationChallenge& authentication);
\r
123 virtual void OnHttpAuthenticationCanceled(void);
\r
125 virtual result OnInitializing(void);
\r
127 virtual void OnKeypadWillOpen(Tizen::Ui::Control& source);
\r
129 virtual void OnKeypadOpened(Tizen::Ui::Control& source){}
\r
131 virtual void OnKeypadClosed(Tizen::Ui::Control& source);;
\r
133 virtual void OnKeypadActionPerformed(Tizen::Ui::Control& source, Tizen::Ui::KeypadAction keypadAction){}
\r
135 void OnLoadingErrorOccurred(Tizen::Web::Controls::LoadingErrorType error, const Tizen::Base::String& reason);
\r
137 virtual void OnLoadingStarted(void);
\r
139 virtual void OnLoadingCanceled(void);
\r
141 virtual void OnLoadingCompleted(void);
\r
143 bool OnLoadingRequested(const Tizen::Base::String& url, Tizen::Web::Controls::WebNavigationType type);
\r
145 virtual void OnPageTitleReceived(const Tizen::Base::String& title);
\r
147 virtual Tizen::Web::Controls::DecisionPolicy OnWebDataReceived(const Tizen::Base::String& mime, const Tizen::Net::Http::HttpHeader& httpHeader);
\r
149 //IOrientationEventListener
\r
150 virtual void OnOrientationChanged (const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus);
\r
152 //ISceenEventListener
\r
153 virtual void OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs);
\r
155 virtual void OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, const Tizen::Ui::Scenes::SceneId& nextSceneId);
\r
157 virtual result OnTerminating(void);
\r
159 void SetImageLoadEnabled(void);
\r
161 void SetJavascriptEnabled(void);
\r
163 // IListViewItemEventListener
\r
165 *Called when the state of an element in the ListContextItem is changed.
\r
167 virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state);
\r
170 *Called when the state of an element in the ListViewItem in the ListView or GroupedListView is changed.
\r
172 virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
\r
175 *Called when the ListItem is swept.
\r
177 virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);
\r
180 *Called when the item or the element is long pressed.
\r
182 virtual void OnListViewItemLongPressed(Tizen::Ui::Controls::ListView& listView, int index, int elementId, bool& invokeListViewItemCallback){};
\r
185 //IListViewItemProvider
\r
186 virtual Tizen::Ui::Controls::ListItemBase * CreateItem (int index, int itemWidth);
\r
187 virtual bool DeleteItem (int index, Tizen::Ui::Controls::ListItemBase *pItem, int itemWidth);
\r
188 virtual int GetItemCount (void);
\r
190 //IWebUiEventListener
\r
191 virtual void OnWebPageBlockSelected(Tizen::Web::Controls::Web& source, Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint);
\r
192 virtual void OnWebPageShowRequested(Tizen::Web::Controls::Web& source);
\r
193 virtual Tizen::Web::Controls::Web* OnWebWindowCreateRequested(void);
\r
194 virtual void OnWebWindowCloseRequested(Tizen::Web::Controls::Web& source) {AppLog("acdaqsc");}
\r
196 //IWebKeypadEventListener
\r
197 virtual void OnWebKeypadClosed(Tizen::Web::Controls::Web& source);
\r
198 virtual void OnWebKeypadOpened(Tizen::Web::Controls::Web& source);
\r
199 virtual void OnWebKeypadWillOpen(Tizen::Web::Controls::Web& source);
\r
201 //ITouchEventListener
\r
202 virtual void OnTouchDoublePressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
\r
203 virtual void OnTouchFocusIn(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
\r
204 virtual void OnTouchFocusOut(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo){}
\r
205 virtual void OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
\r
206 virtual void OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
\r
207 virtual void OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
\r
208 virtual void OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo);
\r
210 virtual void OnTextFound(int totalCount, int currentOrdinal);
\r
212 //ISettingsChangeListener
\r
213 void OnClearCache(void);
\r
214 void OnClearCookie(void);
\r
215 void OnSettingsChange(int settingvalue);
\r
216 void OnSettingsReset(void);
\r
218 virtual void OnTextValueChangeCanceled (const Tizen::Ui::Control &source){}
\r
219 virtual void OnTextValueChanged (const Tizen::Ui::Control &source);
\r
221 void UpdateImageContent(Tizen::Base::ByteBuffer* aBuffer, Tizen::Base::String imageName);
\r
223 double findDistance(int x1,int y1,int x2, int y2);
\r
224 void FindNextWord(bool next = true);
\r
225 result InitAddressbar(void);
\r
226 result InitFooter(void);
\r
227 result InitContextMenu(Tizen::Graphics::Point& p);
\r
228 result InitFindWordPanel(void);
\r
229 result InitImageContextMenu(Tizen::Graphics::Point p);
\r
230 result InitSelectTextContextMenu(Tizen::Graphics::Point p, bool pasteOption, bool onlyPasteOption);
\r
231 result InitMostVisitedSitesPanel(Tizen::Ui::OrientationStatus orientationStatus);
\r
232 result InitMostVisitedSitesView(Tizen::Ui::OrientationStatus orientationStatus);
\r
233 void MoveUiControls(void);
\r
234 void UpdateFavicon(void);
\r
235 void RelayoutControls(bool showAddressbar);
\r
236 void ShowFindWordPanel(bool show = true, bool isTouchPressed = false);
\r
237 void ShowMostVisitedSitesPanel(void);
\r
238 void StartWordSearch();
\r
242 static const int IDA_FORMAT_BITMAP;
\r
243 static const int IDA_FORMAT_DELETE_BITMAP;
\r
244 static const int IDA_FORMAT_TITLE_STRING;
\r
245 static const int IDA_FORMAT_URL_STRING;
\r
246 static const int IDA_CONTEXT_ITEM_DELETE;
\r
248 Tizen::Graphics::Point __adressPanelPosition;
\r
249 AddressBarMode __curAddressBarMode;
\r
250 Tizen::Base::String __currentSearchStr;
\r
251 Tizen::Base::String __currentSelectedStr;
\r
252 int __distanceMoved;
\r
253 int __webControlHeight;
\r
254 float __previousZoomLevel;
\r
255 int __maxOccurrances;
\r
256 int __currentWordIndex;
\r
258 bool __inputEventToBeSupressed;
\r
259 Addressbar* __pAddressbar;
\r
260 Tizen::Graphics::Point __contextMenuPosition;
\r
261 Tizen::Ui::Controls::Label* __pArticleReaderLabel;
\r
262 Tizen::Ui::Controls::Panel* __pArticleReaderPanel;
\r
263 Tizen::Ui::Controls::Panel* __pBlankPanel;
\r
264 Tizen::Ui::Controls::Label * __pFindWordBgLabel;
\r
265 Tizen::Ui::Controls::Button* __pFindWordClear;
\r
266 Tizen::Ui::Controls::Label* __pFindWordCountLabel;
\r
267 Tizen::Ui::Controls::Panel* __pFindWordControl;
\r
268 Tizen::Ui::Controls::EditField* __pFindWordEditField;
\r
269 Tizen::Ui::Controls::Button* __pFindWordNext;
\r
270 Tizen::Ui::Controls::Button* __pFindWordPrev;
\r
271 Tizen::Ui::Controls::Panel* __pFindWordPanel;
\r
272 Tizen::Ui::Controls::Panel* __pFooterPanel;
\r
273 Tizen::Web::Controls::HitElementResult* __pHitElementResult;
\r
274 Tizen::Ui::Controls::ContextMenu* __pImageMenu;
\r
275 Tizen::Ui::Controls::ContextMenu* __pMenu;
\r
276 Tizen::Ui::Controls::Button* __pMoreButton;
\r
277 Tizen::Ui::Controls::Button* __pMultiWindowButton;
\r
278 Tizen::Ui::Controls::Button* __pNewWindowButton;
\r
279 SharePopup* __pPopUp;
\r
280 AddressBarMode __prevAddressBarMode;
\r
281 Tizen::Ui::Controls::Button* __pReaderCloseBtn;
\r
282 Tizen::Base::String* __pReaderData;
\r
283 Tizen::Media::Image* __pSaveImage;
\r
284 Tizen::Web::Controls::Web* __pWebReader;
\r
285 Tizen::Web::Controls::Web* __pWebViewer;
\r
286 WindowInfo* __pWindowInfo;
\r
287 Tizen::Ui::Controls::ListView* __pMostVisitedListView;
\r
289 Tizen::Graphics::Point __touchPoint1;
\r
290 Tizen::Graphics::Point __touchPoint2;
\r
291 Tizen::Graphics::Point __webControlPosition;
\r
293 Tizen::Ui::Controls::ListContextItem* __pItemContext;
\r
294 Tizen::Base::Collection::ArrayList* __pMostVisitedSites;
\r
297 #endif //_INT_MAIN_FORM_H_
\r