Fixed Nabi Issues
[apps/osp/Internet.git] / src / IntMainForm.cpp
1 //
2 // Copyright (c) 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 //!Internet MainForm class
18 /*@file:        MainForm.cpp
19  *@brief:       The %MainForm provides the common functionalities for the Main View of the Browser including the addressbar,
20  *                      loading,handling events etc.
21  */
22
23 #include <FApp.h>
24 #include <FGraphics.h>
25 #include <FMedia.h>
26 #include <FUi.h>
27 #include <FContent.h>
28 #include <FShell.h>
29 //#include <FShellNotificationManager.h>
30
31 #include "IntBookmarkData.h"
32 #include "IntBookmarkPresentationModel.h"
33 #include "IntCommonLib.h"
34 #include "IntFaviconManager.h"
35 #include "IntInternetApp.h"
36 #include "IntMainForm.h"
37 #include "IntSceneRegister.h"
38 #include "IntSettingPresentationModel.h"
39
40 using namespace Tizen::App;
41 using namespace Tizen::Base;
42 using namespace Tizen::Base::Collection;
43 using namespace Tizen::Base::Runtime;
44 using namespace Tizen::Base::Utility;
45 using namespace Tizen::Graphics;
46 using namespace Tizen::Io;
47 using namespace Tizen::Locales;
48 using namespace Tizen::Media;
49 using namespace Tizen::Shell;
50 using namespace Tizen::Ui;
51 using namespace Tizen::Ui::Controls;
52 using namespace Tizen::Content;
53 using namespace Tizen::Ui::Scenes;
54 using namespace Tizen::System;
55 using namespace Tizen::Web;
56 using namespace Tizen::Web::Controls;
57
58 static const wchar_t* IDB_SEARCH_INPUT_FIELD_BG = L"I01_toolbar_input_field.#.png";
59 static const wchar_t* IDB_FINDWORD_INPUT_FIELD_BG = L"I01_toolbar_input_field_findword.#.png";
60 static const wchar_t* IDB_BTN_BACK = L"I01_icon_Back.png";
61 static const wchar_t* IDB_BTN_BACK_PRESS = L"I01_icon_Back_press.png";
62 static const wchar_t* IDB_CONTRLBAR_ICON_BOOKMARK = L"I01_search_list_icon_favorite.png";
63 static const wchar_t* IDB_CONTRLBAR_ICON_BOOKMARK_PRESS = L"I01_search_list_icon_favorite_press.png";
64 static const wchar_t* IDB_CONTRLBAR_ICON_MORE = L"I01_icon_more.png";
65 static const wchar_t* IDB_CONTRLBAR_ICON_MORE_PRESS = L"I01_icon_more_press.png";
66 static const wchar_t* IDB_CONTRLBAR_ICON_NEW_WINDOW = L"I01_icon_plus.png";
67 static const wchar_t* IDB_CONTRLBAR_ICON_NEW_WINDOW_PRESS = L"I01_icon_plus_press.png";
68 static const wchar_t* IDB_CONTROLBAR_ICON_CREATE_DISABLE = L"I01_controlbar_icon_create_disable.png";
69 static const wchar_t* IDB_BUTTON_ON = L"00_button_on.png";
70 static const wchar_t* IDB_BUTTON_OFF = L"00_button_off.png";
71 static const wchar_t* IDB_ICON_BOOKMARK_OFF_TEMP =L"00_icon_favorite_off_74x74.png";
72 static const wchar_t* IDB_ICON_BOOKMARK_ON_TEMP = L"00_icon_favorite_on_74x74.png";
73 static const wchar_t* IDS_TIZEN_SERVICE = L"tizen-service";
74 static const wchar_t* IDS_APPID = L"AppID";
75 static const wchar_t* IDS_KEY = L"key";
76 static const wchar_t* IDS_VALUE = L"value";
77 static const wchar_t* IDB_TITLE_PROGRESS_BAR_BG = L"I01_title_progress_bar_bg.png";
78 static const wchar_t* IDB_TITLE_PROGRESS_BAR = L"I01_title_progress_bar.png";
79 //static const wchar_t* IDB_ADDRESS_BAR_BACKGROUND = L"I01_toolbar_bg_02.9.png";
80
81 const int IDA_BACKBTN_CLICKED = 101;
82 const int IDA_BOOKMARKBTN_CLICKED = 102;
83 const int IDA_MOREBTN_CLICKED = 103;
84 const int IDA_MULTIWINDOWBTN_CLICKED = 104;
85 const int IDA_NEWWINDOWBTN_CLICKED = 105;
86 const int IDA_FORWARD_CLICKED = 106;
87 const int IDA_ADDTOBOOKMARK_CLICKED = 107;
88 const int IDA_SHARE_CLICKED = 108;
89 const int IDA_FINDONPAGE_CLICKED = 109;
90 const int IDA_PRIVATEON_CLICKED = 110;
91 const int IDA_SETTINGS_CLICKED = 111;
92 const int IDA_READER_CLOSE_CLICKED = 112;
93 const int IDA_SMALLFONT_BTN_CLICKED = 113;
94 const int IDA_LARGEFONT_BTN_CLICKED = 114;
95 const int IDA_BRIGHTNESS_BTN_CLICKED = 115;
96 const int IDA_HISTORY_CLICKED = 116;
97 const int IDA_ADD_TO_BOOKMARKBTN_CLICKED = 117;
98 const int IDA_ADD_TO_HOME_CLICKED = 118;
99 const int IDA_SAVED_PAGES_CLICKED = 119;
100 const int IDA_DESKTOP_VIEW_CLICKED = 120;
101 const int IDA_SAVE_CLICKED = 121;
102 const int IDA_PRINT_CLICKED = 122;
103
104 const int IDA_FINDWORD_SEARCH_CLICKED = 201;
105 const int IDA_FINDWORD_NEXT_CLICKED = 202;
106 const int IDA_FINDWORD_PREV_CLICKED = 203;
107 const int IDA_FINDWORD_CLEAR_CLICKED = 204;
108 const int IDA_FINDWORD_CANCEL_CLICKED = 205;
109
110 const int IDA_COPY_IMAGE_CLICKED = 206;
111 const int IDA_VIEW_IMAGE_CLICKED = 207;
112 const int IDA_SAVE_IMAGE_CLICKED = 208;
113 const int IDA_SHARE_IMAGE_CLICKED = 209;
114
115 const int IDA_COPY_TEXT_CLICKED = 210;
116 const int IDA_PASTE_TEXT_CLICKED = 211;
117 const int IDA_FIND_TEXT__CLICKED = 212;
118 const int IDA_SHARE_TEXT_CLICKED = 213;
119
120 const int IDA_GO_BACK = 214;
121 const int IDA_GO_FORWARD = 215;
122 const int IDA_REFRESH_BTN_CLICKED = 216;
123 const int IDA_STOP_BTN_CLICKED = 217;
124 const int IDA_CLEAR_URL = 218;
125 const int IDA_READER_BTN_CLICKED = 219;
126
127
128 const int IDA_HYPERLINK_OPEN_CLICKED = 220;
129 const int IDA_HYPERLINK_COPY_LINK_CLICKED = 221;
130 const int IDA_HYPERLINK_SAVE_IMAGE_CLICKED = 222;
131 const int IDA_HYPERLINK_SHARE_IMAGE_CLICKED = 223;
132
133 const int IDA_FINDWORD_CLEAR_RIGHT_TO_LEFT_CLICKED = 224;
134
135 const int DEFAULT_PROGRESS_PERCENTAGE = 10;
136
137 const int MainForm::IDA_FORMAT_BITMAP = 500;
138 const int MainForm::IDA_FORMAT_DELETE_BITMAP = 501;
139 const int MainForm::IDA_FORMAT_TITLE_STRING = 502;
140 const int MainForm::IDA_FORMAT_URL_STRING = 503;
141 const int MainForm::IDA_CONTEXT_ITEM_DELETE = 504;
142
143 static const int WIDTH_CONTEXT_MENU_BUTTON_PORTRAIT = 336;
144 static const int WIDTH_CONTEXT_MENU_BUTTON_LANDSCAPE = 800;
145 static const int HEIGHT_CONTEXT_MENU_BUTTON = 72;
146
147 static const wchar_t* APPCONTROL_OPERATION_ID_IMAGE_VIEWER = L"http://tizen.org/appcontrol/operation/view";
148 MainForm::MainForm(void)
149 {
150         __isLongPressedDone = false;
151         __pHistory = null;
152         __pAddressbar = null;
153         //      __pMostVisitedSitesPanel = null;
154         __pMostVisitedListView = null;
155         __pFooterPanel = null;
156         __pHitElementResult = null;
157         __pWindowInfo = null;
158         __pWebViewer = null;
159         __pImageMenu = null;
160         __pOptionMenu = null;
161         __pFindWordControl = null;
162         __pFindWordPanelLeftToRight = null;
163         __pFindWordPanelRightToLeft = null;
164         __pFindWordBgLabel = null;
165         __pFindWordBgLabelRightToLeft = null;
166         __pFindWordEditField = null;
167         __pFindWordEditFieldRightToLeft = null;
168         __pFindWordClear = null;
169         __pFindWordClearRightToLeft = null;
170         __pFindWordCountLabel = null;
171         __pFindWordClearRightToLeft = null;
172         __pFindWordNext = null;
173         __pFindWordPrev = null;
174         __previousZoomLevel = 1.0;
175         __pSaveImage = null;
176         __currentAddMode = ADDRESSBAR_MODE_LOADING_COMPLETE;
177         __displayUrl = L"";
178         __editTextUrl = L"";
179         __currentSearchStr = L"";
180         __currentSelectedStr = L"";
181         __maxOccurrances = 0;
182         __currentWordIndex = 0;
183         __distanceMoved = 0;
184         __isLoaded = false;
185         //__inputEventToBeSupressed = false;
186         __isLoadingData = false;
187         __isLoadingCompleted = false;
188         __progressPercentage = 0;
189         __touchPoint1 = Point(-1,-1);
190         __touchPoint2 = Point(-1,-1);
191         __longPressPoint = Point(-1,-1);
192         __pWebReader = null;
193         //      __pReaderPopup = null;
194         __pReaderData = null;
195         __pPopUp = null;
196         __pReaderCloseBtn = null;
197         //__pNewWindowButton = null;
198         __pMoreButton = null;
199         __pMultiWindowButton = null;
200         __pArticleReaderPanel = null;
201         __pBlankPanel = null;
202         __pArticleReaderLabel = null;
203         __webControlHeight = 0;
204         __prevAddressBarMode = ADDRESSBAR_MODE_INVALID;
205         __curAddressBarMode = ADDRESSBAR_MODE_INVALID;
206         __pMostVisitedSites = null;
207         __pFooterUrlField = null;
208         __pGoBackBtn = null;
209         __pGoForwardBtn = null;
210         __pRefreshBtn = null;
211         __pProgressbarLabel = null;
212         __pFooterLabel = null;
213         __pStopBtn = null;
214         __pClearBtn = null;
215         __pReaderBtn = null;
216         __isKeypadOpened = false;
217         __fontSize = 44;
218         __pNotification = null;
219 }
220
221 MainForm::~MainForm(void)
222 {
223         SettingPresentationModel::GetInstance()->RemoveSettingsEventListener(*this);
224
225         if(__pAddressbar)
226         {
227                 __pAddressbar->SetAddressbarEventListener(null);
228         }
229
230         if(__pHistory != null)
231         {
232                 delete __pHistory;
233                 __pHistory = null;
234         }
235
236         if (__pReaderData != null)
237         {
238                 delete __pReaderData;
239                 __pReaderData = null;
240         }
241
242         if (__pPopUp != null)
243         {
244                 delete __pPopUp;
245                 __pPopUp = null;
246         }
247
248         if (__pHitElementResult != null)
249         {
250                 delete __pHitElementResult;
251                 __pHitElementResult = null;
252         }
253         if(__pOptionMenu)
254         {
255                 delete __pOptionMenu;
256                 __pOptionMenu = null;
257         }
258
259         String* pSelectedScene = NULL;
260         Object* pValue = NULL;
261         MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &pValue);
262         pSelectedScene = (String*) pValue;
263
264         /*if (pSelectedScene != null)
265         {
266                 delete pSelectedScene;
267         }
268         MultiWindowPresentationModel::SetValue(SELECTED_SCENE_ID, null);*/
269 }
270
271 bool
272 MainForm::Initialize(void)
273 {
274         Construct(L"IDL_FORM");
275
276 //      SetFormStyle(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_FOOTER);
277         return true;
278 }
279
280 result
281 MainForm::OnInitializing(void)
282 {
283         AppLog("get client area width = %d",GetClientAreaBounds().width);
284         AppLog("get client area height = %d",GetClientAreaBounds().height);
285         const int WIDTH_CONTEXT_MENU_BUTTON = 336;
286         const int HEIGHT_CONTEXT_MENU_BUTTON = 72;
287
288         __fontSize = CommonUtil::GetFontSize();
289         Panel* pFooterPanel = null;
290
291         __pSaveImage = new Image();
292         __pSaveImage->Construct();
293
294         // Setup back event listener
295         SettingPresentationModel::GetInstance()->AddSettingsEventListener(*this);
296         SceneManager::GetInstance()->AddSceneEventListener(IDSCN_MAIN_VIEW, *this);
297         AddOrientationEventListener(*this);
298
299         AppLogDebug(" MainForm::OnInitializing ended");
300         if (__pMostVisitedSites == null)
301         {
302                 __pMostVisitedSites = new(std::nothrow) ArrayList();
303                 __pMostVisitedSites->Construct();
304         }
305         HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);
306
307         __pItemContext= new(std::nothrow) ListContextItem();
308         __pItemContext->Construct();
309
310         __pItemContext->AddElement(IDA_CONTEXT_ITEM_DELETE, CommonUtil::GetString(L"IDS_BR_SK_DELETE_ABB"),true);
311
312
313         __pItemContext->SetElementBackgroundColor(IDA_CONTEXT_ITEM_DELETE,LIST_CONTEXT_ITEM_ELEMENT_STATUS_NORMAL , CONTEXT_ITEM_DELETE_COLOR);
314         __pItemContext->SetElementBackgroundColor(IDA_CONTEXT_ITEM_DELETE,LIST_CONTEXT_ITEM_ELEMENT_STATUS_HIGHLIGHTED , CONTEXT_ITEM_DELETE_COLOR);
315         __pItemContext->SetElementBackgroundColor(IDA_CONTEXT_ITEM_DELETE,LIST_CONTEXT_ITEM_ELEMENT_STATUS_PRESSED , CONTEXT_ITEM_DELETE_COLOR);
316
317         __pItemContextLandscape= new(std::nothrow) ListContextItem();
318         __pItemContextLandscape->Construct();
319
320         __pItemContextLandscape->AddElement(IDA_CONTEXT_ITEM_DELETE, CommonUtil::GetString(L"IDS_BR_SK_DELETE_ABB"), true);
321         __pItemContextLandscape->SetElementBackgroundColor(IDA_CONTEXT_ITEM_DELETE,LIST_CONTEXT_ITEM_ELEMENT_STATUS_NORMAL , CONTEXT_ITEM_DELETE_COLOR);
322         __pItemContextLandscape->SetElementBackgroundColor(IDA_CONTEXT_ITEM_DELETE,LIST_CONTEXT_ITEM_ELEMENT_STATUS_HIGHLIGHTED , CONTEXT_ITEM_DELETE_COLOR);
323         __pItemContextLandscape->SetElementBackgroundColor(IDA_CONTEXT_ITEM_DELETE,LIST_CONTEXT_ITEM_ELEMENT_STATUS_PRESSED , CONTEXT_ITEM_DELETE_COLOR);
324         SetFormMenuEventListener(this);
325         AppLog("SetFormMenuEventListener result %s",GetErrorMessage(GetLastResult()));
326         return E_SUCCESS;
327 }
328
329 result
330 MainForm::InitAddressbar(void)
331 {
332         AppLogDebug("MainForm::InitAddressbar entered");
333
334         result r = E_SUCCESS;
335
336         if (__pAddressbar != null)
337         {
338                 return E_SUCCESS;
339         }
340         __pAddressbar = new(std::nothrow) Addressbar();
341         AppLog("MainForm::InitAddressbar GetClientAreaBounds().width %d",GetClientAreaBounds().width);
342         r = __pAddressbar->Initialize(Tizen::Graphics::Rectangle(0, 0, GetClientAreaBounds().width, 82));
343         if (r != E_SUCCESS)
344         {
345                 AppLogDebug("Addressbar init failed with %s", GetErrorMessage(r));
346                 return r;
347         }
348         __pAddressbar->SetAddressbarEventListener(this);
349         AddControl(__pAddressbar);
350         __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));
351         SetControlAlwaysOnTop(*__pAddressbar, true);
352         __adressPanelPosition = __pAddressbar->GetPosition();
353
354         AppLogDebug("MainForm::InitAddressbar exit");
355
356         return E_SUCCESS;
357 }
358
359 result
360 MainForm::CreateReaderPanel(void)
361 {
362         AppLogDebug("CreateReaderPanel() width %d",GetClientAreaBounds().width);
363         result r = E_FAILURE;
364         WebSetting settings;
365         Button *pSmallFontBtn = null;
366         Button *pLargeFontBtn = null;
367
368         __pBlankPanel = new (std::nothrow) Panel();
369         __pBlankPanel->Construct(L"IDL_BLANK_PANEL");
370
371         __pArticleReaderPanel = new (std::nothrow) Panel();
372         __pArticleReaderPanel->Construct(L"IDL_ARTICLE_READER");
373
374         __pReaderCloseBtn =  static_cast<Button*>(__pArticleReaderPanel->GetControl(L"IDC_CLOSE_READER",true));
375         if (__pReaderCloseBtn)
376         {
377                 AppLogDebug("CreateReaderPanel() 6");
378                 __pReaderCloseBtn->AddActionEventListener(*this);
379                 __pReaderCloseBtn->SetActionId(IDA_READER_CLOSE_CLICKED);
380         }
381
382         __pWebReader = new (std::nothrow) Web();
383         __pWebReader->Construct(Rectangle(2,2, __pArticleReaderPanel->GetWidth()-2,__pArticleReaderPanel->GetHeight() - 96 -2));
384
385         settings.SetInputStyle(INPUT_STYLE_OVERLAY);
386         settings.SetFontSize(SettingPresentationModel::GetInstance()->GetReaderFontSize());
387
388         r = __pWebReader->SetSetting(settings);
389         if (IsFailed(r))
390                 AppLogDebug("Web setting add failed with %s", GetErrorMessage(r));
391
392
393         __pArticleReaderLabel = new Label();
394         __pArticleReaderLabel->Construct(Rectangle(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight()),L"");
395
396         __pBlankPanel->AddControl(__pArticleReaderLabel);
397         __pBlankPanel->AddControl(__pArticleReaderPanel);
398         AddControl(__pBlankPanel);
399
400         __pBlankPanel->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height);
401         __pArticleReaderPanel->SetBounds((GetClientAreaBounds().width - __pArticleReaderPanel->GetWidth())/2,(GetClientAreaBounds().height - __pArticleReaderPanel->GetHeight())/2, __pArticleReaderPanel->GetWidth(), __pArticleReaderPanel->GetHeight());
402         __pArticleReaderLabel->SetBounds(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
403
404         __pArticleReaderPanel->AddControl(__pWebReader);
405         __pWebReader->SetBounds(Rectangle(2,2, __pArticleReaderPanel->GetWidth()-2,__pArticleReaderPanel->GetHeight() - 96 -2));
406         Bitmap* pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
407         Bitmap* pSrcBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bottom_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
408
409         if (pBitmap != null && pSrcBitmap != null)
410         {
411                 pBitmap->Merge(Point(0,__pArticleReaderPanel->GetHeight() - 96),*pSrcBitmap,Rectangle(0,0,pSrcBitmap->GetWidth(),pSrcBitmap->GetHeight()));
412         }
413         __pArticleReaderLabel->SetBackgroundBitmap(*pBitmap);
414
415         pSmallFontBtn =  static_cast<Button*>(__pArticleReaderPanel->GetControl(L"IDC_SMALL_FONT",true));
416         if (pSmallFontBtn)
417         {
418                 pSmallFontBtn->AddActionEventListener(*this);
419                 pSmallFontBtn->SetActionId(IDA_SMALLFONT_BTN_CLICKED);
420         }
421
422         pLargeFontBtn =  static_cast<Button*>(__pArticleReaderPanel->GetControl(L"IDC_LARGE_FONT",true));
423         if (pLargeFontBtn)
424         {
425                 pLargeFontBtn->AddActionEventListener(*this);
426                 pLargeFontBtn->SetActionId(IDA_LARGEFONT_BTN_CLICKED);
427         }
428
429
430         if (pBitmap != null)
431         {
432                 delete pBitmap;
433                 pBitmap = null;
434         }
435         if (pSrcBitmap != null)
436         {
437                 delete pSrcBitmap;
438                 pSrcBitmap = null;
439         }
440
441         SetControlAlwaysOnTop(*__pBlankPanel, true);
442         //__pBlankPanel->SetControlAlwaysAtBottom(*__pArticleReaderPanel, true);
443         Invalidate(true);
444
445         return E_SUCCESS;
446 }
447
448 result
449 MainForm::InitWebControl()
450 {
451         AppLogDebug("MainForm::InitWebControl enter");
452         result r = E_SUCCESS;
453         AppLogDebug("InitWebControl");
454
455         if (__pAddressbar == null || __pFooterPanel == null)
456                 return E_FAILURE;
457
458         const int Y_WEBCONTROL_POSITION = 0;
459
460         __webControlHeight = GetHeight() - __pFooterPanel->GetHeight();
461
462         if (__pMostVisitedListView)
463         {
464                 __pMostVisitedListView->SetShowState(false);
465         }
466         if (__pWebViewer != null)
467         {
468                 AppLogDebug("Already initialized");
469                 return E_SUCCESS;
470         }
471         __pWebViewer = new(std::nothrow) Web();
472         if(__pWebViewer == NULL)
473         {
474                 AppLogDebug("Initialization failed");
475                 return E_FAILURE;
476         }
477         r = __pWebViewer->Construct(Rectangle(0, Y_WEBCONTROL_POSITION, GetClientAreaBounds().width,__webControlHeight + 12));
478
479         if (IsFailed(r))
480         {
481                 AppLogDebug("Web construct failed with %s", GetErrorMessage(r));
482                 delete __pWebViewer;
483                 __pWebViewer = null;
484                 return r;
485         }
486         else
487         {
488                 r = AddControl(__pWebViewer);
489                 if (IsFailed(r))
490                 {
491                         __pWebViewer->Destroy();
492                         __pWebViewer = null;
493                         AppLogDebug("Web addcontrol failed with %s", GetErrorMessage(r));
494                         return r;
495                 }
496                 __webControlPosition = __pWebViewer->GetPosition();
497                 r = __pWebViewer->SetSetting(SettingPresentationModel::GetInstance()->GetWebSettings());
498                 if (IsFailed(r))
499                 {
500                         AppLogDebug("Web setting add failed with %s", GetErrorMessage(r));
501                         return r;
502                 }
503
504                 __pWebViewer->SetLoadingListener(this);
505                 __pWebViewer->SetWebUiEventListenerF(this);
506                 __pWebViewer->SetWebKeypadEventListener(this);
507                 __pWebViewer->SetFocus();
508                 __pWebViewer->AddTouchEventListener(*this);
509
510                 __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());
511                 __pWebViewer->SetTextSearchListener(this);
512         }
513
514         AppLogDebug("MainForm :before return");
515         Invalidate(true);
516         AppLogDebug("MainForm::InitWebControl Exit");
517
518         return r;
519 }
520
521 void
522 MainForm::SetJavascriptEnabled()
523 {
524         WebSetting settings = __pWebViewer->GetSetting();
525         settings.SetJavascriptEnabled(SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled());
526         __pWebViewer->SetSetting(settings);
527 }
528
529 void
530 MainForm::SetImageLoadEnabled()
531 {
532         WebSetting settings = __pWebViewer->GetSetting();
533         settings.SetAutoImageLoadEnabled(SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());
534         __pWebViewer->SetSetting(settings);
535 }
536
537 result
538 MainForm::InitFooter(void)
539 {
540         AppLogDebug("MainForm::InitFooter entered");
541         Button* pBackButton = null;
542         Button* pBookmarkButton = null;
543         Button* pMultiWindowButton = null;
544         Bitmap *pIconBitmap = null;
545         Bitmap *pBGBitmap = null;
546         Label *pBGLabel = null;
547
548         if (__pFooterPanel == null)
549         {
550                 __pFooterPanel = static_cast< Panel* >(GetControl(L"IDC_FOOTER_PANEL", true));
551         }
552
553         if (__pFooterPanel == null)
554         {
555                 return E_FAILURE;
556         }
557
558         SetControlAlwaysOnTop(*__pFooterPanel, true);
559
560         __pFooterLabel = static_cast< Label* >(GetControl(L"IDC_FOOTER_LABEL", true));
561         if ( __pFooterLabel == NULL )
562         {
563                 return E_FAILURE;
564         }
565         //__pFooterPanel->SetBackgroundColor(CUSTOM_COLOR_TRANSPARENT);
566         Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pFooterLabel->GetWidth(), __pFooterLabel->GetHeight());
567         if (pBitmap != null)
568         {
569                 __pFooterLabel->SetBackgroundBitmap(*pBitmap);
570                 delete pBitmap;
571         }
572
573         __pMultiWindowButton = static_cast< Button* >(GetControl(L"IDC_MULTIWINDOW_BUTTON", true));
574
575         if ( __pMultiWindowButton == NULL )
576         {
577                 return E_FAILURE;
578         }
579
580
581         SetFormBackEventListener(this);
582         AppLog("SetFormBackEventListener result  %s",GetErrorMessage(GetLastResult()));
583         if (__pMultiWindowButton != null)
584         {
585                 Bitmap* pBitmap = null;
586                 Bitmap* pPressedBitmap = null;
587                 String imagePath = "I01_toolbar_icon_windows_manager_0";
588                 String pressedImagePath = "I01_toolbar_icon_windows_manager_0";
589                 int totalCount = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList()->GetCount();
590                 imagePath.Append(totalCount);
591                 imagePath.Append(".png");
592
593                 pressedImagePath.Append(totalCount);
594                 pressedImagePath.Append("_press.png");
595
596                 pBitmap = AppResource::GetInstance()->GetBitmapN(imagePath);
597                 pPressedBitmap = AppResource::GetInstance()->GetBitmapN(pressedImagePath);
598                 if ( pBitmap == null )
599                 {
600                         return E_FAILURE;
601                 }
602
603                 Point startPoint = Point((__pMultiWindowButton->GetWidth() - pBitmap->GetWidth())/2,(__pMultiWindowButton->GetHeight() - pBitmap->GetHeight())/2);
604                 if (pBitmap != null)
605                 {
606                         __pMultiWindowButton->SetNormalBitmap(startPoint, *pBitmap);
607                         __pMultiWindowButton->SetPressedBitmap(startPoint, *pPressedBitmap);
608
609                         delete pBitmap;
610                 }
611
612                 __pMultiWindowButton->AddActionEventListener(*this);
613                 __pMultiWindowButton->SetActionId(IDA_MULTIWINDOWBTN_CLICKED);
614                 if(pPressedBitmap)
615                 {
616                         delete pPressedBitmap;
617                         pPressedBitmap = null;
618                 }
619         }
620
621         if (__pMoreButton)
622         {
623                 Bitmap* pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_MORE);
624                 Bitmap* pPressedBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_MORE_PRESS);
625                 if (pBitmap != null)
626                 {
627                         Point startPoint((__pMoreButton->GetWidth() - pBitmap->GetWidth())/2,(__pMoreButton->GetHeight() - pBitmap->GetHeight())/2 );
628                         __pMoreButton->SetNormalBitmap(startPoint, *pBitmap);
629                         __pMoreButton->SetPressedBitmap(startPoint, *pPressedBitmap);
630
631                         delete pBitmap;
632                 }
633                 __pMoreButton->AddActionEventListener(*this);
634                 __pMoreButton->SetActionId(IDA_MOREBTN_CLICKED);
635         }
636
637         //Add the editfield for url
638         __pFooterUrlField =  static_cast<EditField*> (GetControl(L"IDC_URL_EDIT_FIELD",true));
639         if (__pFooterUrlField == NULL)
640         {
641                 return E_INVALID_KEY;
642         }
643
644         __pFooterUrlField->SetOverlayKeypadCommandButtonVisible(false);
645         __pFooterUrlField->SetKeypadAction(KEYPAD_ACTION_GO);
646         __pFooterUrlField->AddKeypadEventListener(*this);
647         __pFooterUrlField->SetPropagatedTouchEventListener(this);
648         __pFooterUrlField->AddFocusEventListener(*this);
649
650         if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
651         {
652                 __pFooterUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
653         }
654         else if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
655         {
656                 __pFooterUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_BLANK_PAGE"));
657         }
658         else
659         {
660                 //__pUrlField->SetText(SettingPresentationModel::GetInstance()->GetFavoriteURL());
661                 __pFooterUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
662         }
663
664
665         //Add the go Back Button
666         __pGoBackBtn = static_cast<Button*> (GetControl(L"IDC_PAGEBACK_BUTTON",true));
667         if (__pGoBackBtn == NULL)
668         {
669                 AppLogDebug("__pGoBackBtn Control not found returning E_INVALID_KEY");
670                 return E_INVALID_KEY;
671         }
672         __pGoBackBtn->SetActionId(IDA_GO_BACK);
673         __pGoBackBtn->AddActionEventListener(*this);
674
675         //Add the go forward Button
676         __pGoForwardBtn = static_cast<Button*> (GetControl(L"IDC_PAGEFORWARD_BUTTON",true));
677         if (__pGoForwardBtn == NULL)
678         {
679                 AppLogDebug("Control not found returning E_INVALID_KEY");
680                 return E_INVALID_KEY;
681         }
682         __pGoForwardBtn->SetActionId(IDA_GO_FORWARD);
683         __pGoForwardBtn->AddActionEventListener(*this);
684         if (__pWebViewer && __pWebViewer->CanGoForward())
685         {
686                 SetForwardButtonEnabled(true);
687         }
688         else
689         {
690                 SetForwardButtonEnabled(false);
691         }
692
693         __pRefreshBtn = static_cast<Button*> (GetControl(L"IDC_REFRESH_BUTTON",true));
694         if (__pRefreshBtn == NULL)
695         {
696                 AppLogDebug("Control not found returning E_INVALID_KEY");
697                 return E_INVALID_KEY;
698         }
699
700         __pRefreshBtn->SetActionId(IDA_REFRESH_BTN_CLICKED);
701         __pRefreshBtn->AddActionEventListener(*this);
702         __pRefreshBtn->SetShowState(true);
703
704         //Add the backround label for displaying progressbar
705         __pProgressbarLabel = static_cast<Label*> (GetControl(L"IDC_PROGRESS_BAR_LABEL",true));
706         if (__pProgressbarLabel == NULL)
707         {
708                 AppLogDebug("__pProgressbarLabel Control not found returning E_INVALID_KEY");
709                 return E_INVALID_KEY;
710         }
711         __pProgressbarLabel->SetShowState(false);
712
713         __pStopBtn = static_cast<Button*> (GetControl(L"IDC_STOP_BUTTON",true));
714         if (__pStopBtn == NULL)
715         {
716                 AppLogDebug("Control not found returning E_INVALID_KEY");
717                 return E_INVALID_KEY;
718         }
719         __pStopBtn->SetActionId(IDA_STOP_BTN_CLICKED);
720         __pStopBtn->AddActionEventListener(*this);
721         __pStopBtn->SetShowState(false);
722
723         __pClearBtn = static_cast<Button*> (GetControl(L"IDC_CLEAR_BUTTON",true));
724         if (__pClearBtn == NULL)
725         {
726                 AppLogDebug("Control not found returning E_INVALID_KEY");
727                 return E_INVALID_KEY;
728         }
729         __pClearBtn->SetActionId(IDA_CLEAR_URL);
730         __pClearBtn->AddActionEventListener(*this);
731         __pClearBtn->SetShowState(false);
732
733         __pReaderBtn = static_cast<Button*> (GetControl(L"IDC_READER_BUTTON",true));
734         if (__pReaderBtn == NULL)
735         {
736                 AppLogDebug("Control not found returning E_INVALID_KEY");
737                 return E_INVALID_KEY;
738         }
739         __pReaderBtn->SetActionId(IDA_READER_BTN_CLICKED);
740         __pReaderBtn->AddActionEventListener(*this);
741         __pReaderBtn->SetShowState(false);
742
743         //      __pFooterPanel->Invalidate(true);
744         if(__isKeypadOpened == false && __pAddressbar && __pAddressbar->GetShowState() == false)
745         {
746 //              AppLog("asdasdasdasda");
747                 __pFooterPanel->SetShowState(true);
748         }
749         else if(__pAddressbar == null)
750         {
751                 __pFooterPanel->SetShowState(true);
752         }
753         else
754                 __pFooterPanel->SetShowState(false);
755
756         SetAddressbarMode(GetAddressbarMode());
757         AppLogDebug("MainForm::InitFooter exit");
758         return E_SUCCESS;
759 }
760
761 result
762 MainForm::InitOptionMenu()
763 {
764         result r = E_SUCCESS;
765         bool isPrivateBrowsing = false;
766         Bitmap* pBitmap = null;
767
768         if (__pOptionMenu != null)
769         {
770                 __pOptionMenu->SetFocusable(true);
771                 __pOptionMenu->Invalidate(true);
772                 return r;
773         }
774
775         __pOptionMenu = new(std::nothrow) OptionMenu();
776         r = __pOptionMenu->Construct();
777         TryCatch(!IsFailed(r),,"Contextmenu creation failed with%s",GetErrorMessage(r));
778
779         __pOptionMenu->SetFocusable(true);
780         isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();
781
782
783         if (isPrivateBrowsing == true)
784         {
785                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_ON);
786         }
787         else
788         {
789                 pBitmap  = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_OFF);
790         }
791
792         r = __pOptionMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_BOOKMARK"), IDA_BOOKMARKBTN_CLICKED);
793
794         if ( pBitmap != NULL)
795         {
796                 __pOptionMenu->AddItem(CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB"), IDA_PRIVATEON_CLICKED,*pBitmap);
797                 delete pBitmap;
798         }
799         r = __pOptionMenu->AddItem(CommonUtil::GetString(L"IDS_BR_TAB_HISTORY"), IDA_HISTORY_CLICKED);
800         r = __pOptionMenu->AddItem(CommonUtil::GetString(L"IDS_COM_OPT_BRIGHTNESS"), IDA_BRIGHTNESS_BTN_CLICKED);
801         r = __pOptionMenu->AddItem(CommonUtil::GetString(L"IDS_COM_BODY_SETTINGS"), IDA_SETTINGS_CLICKED);
802
803
804         __pOptionMenu->SetMaxVisibleItemsCount(6);
805         __pOptionMenu->SetShowState(false);
806         __pOptionMenu->AddActionEventListener(*this);
807         SetControlAlwaysOnTop(*__pOptionMenu, true);
808
809         CATCH:
810         return r;
811 }
812
813 result MainForm::InitImageContextMenu(Tizen::Graphics::Point p)
814 {
815         result r = E_SUCCESS;
816         ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_AUTO;
817
818         AppLog("MainForm::InitImageContextMenu clicked on image");
819         if (__pImageMenu != null)
820         {
821                 delete __pImageMenu;
822                 __pImageMenu = null;
823         }
824         if(GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT || GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT_REVERSE)
825         {
826                 p.y = p.y + 54;
827         }
828
829         __pImageMenu = new (std::nothrow) ContextMenu();
830         r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_LIST, direction);
831         TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));
832
833         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_COPY_IMAGE"),IDA_COPY_IMAGE_CLICKED);
834         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_VIEW_IMAGE"),IDA_VIEW_IMAGE_CLICKED);
835         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SAVE_IMAGE"),IDA_SAVE_IMAGE_CLICKED);
836         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SHARE"),IDA_SHARE_IMAGE_CLICKED);
837         __pImageMenu->SetMaxVisibleItemsCount(4);
838         __pImageMenu->AddActionEventListener(*this);
839         SetControlAlwaysOnTop(*__pImageMenu, true);
840         __pImageMenu->SetFocusable(true);
841
842         CATCH: return r;
843 }
844
845 result
846 MainForm::InitImageLinkContextMenu(Tizen::Graphics::Point p)
847 {
848         result r = E_SUCCESS;
849         ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_AUTO;
850
851         AppLog("MainForm::InitImageContextMenu clicked on image");
852         if (__pImageMenu != null)
853         {
854                 delete __pImageMenu;
855                 __pImageMenu = null;
856         }
857
858 //      if(__pAddressbar->GetShowState() == true)
859 //              p.y = p.y + __pAddressbar->GetHeight();
860         if(GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT || GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT_REVERSE)
861         {
862                 p.y = p.y + 54;
863         }
864
865         __pImageMenu = new (std::nothrow) ContextMenu();
866         r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_LIST, direction);
867         TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));
868
869         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_BODY_OPEN_IN_NEW_WINDOW"),IDA_HYPERLINK_OPEN_CLICKED);
870         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_COPY_LINK_URL"),IDA_HYPERLINK_COPY_LINK_CLICKED);
871         //r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SAVE_IMAGE"),IDA_HYPERLINK_SAVE_IMAGE_CLICKED);
872         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SHARE"),IDA_HYPERLINK_SHARE_IMAGE_CLICKED);
873
874         __pImageMenu->SetMaxVisibleItemsCount(3);
875         __pImageMenu->AddActionEventListener(*this);
876         SetControlAlwaysOnTop(*__pImageMenu, true);
877         __pImageMenu->SetFocusable(true);
878
879         CATCH: return r;
880
881 }
882
883 result
884 MainForm::InitSelectTextContextMenu(Point p, bool pasteOption, bool onlyPasteOption = false)
885 {
886         result r = E_SUCCESS;
887         bool clipboardAvailable = true;
888         ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_AUTO;
889
890         AppLog("MainForm::InitSelectTextContextMenu clicked on text");
891         if (__pImageMenu != null)
892         {
893                 delete __pImageMenu;
894                 __pImageMenu = null;
895         }
896 //      Point q(0,0);
897 //      __pWebViewer->GetBlockRange(p,q);
898
899         if(p.y < 150)
900         {
901                 p.y = p.y + 50;
902                 direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD;
903         }
904         else
905         {
906                 direction = CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD;
907         }
908
909
910         Clipboard* pClipboard = Clipboard::GetInstance();
911
912         if(pClipboard == null)
913         {
914                 clipboardAvailable = false;
915         }
916         else
917         {
918                 // Retrieves a latest item
919                 ClipboardItem* pItem = pClipboard->RetrieveLatestItemN(CLIPBOARD_DATA_TYPE_TEXT | CLIPBOARD_DATA_TYPE_HTML);
920
921                 if(pItem == null)
922                 {
923                         clipboardAvailable = false;
924                 }
925                 else
926                 {
927                         //Gets data from the clipboard item
928                         String* pString = dynamic_cast<String*>(pItem->GetData());
929
930                         if(pString == null)
931                         {
932                                 clipboardAvailable = false;
933                         }
934                 }
935         }
936         if(clipboardAvailable == false && onlyPasteOption == true)
937         {
938                 return E_FAILURE;
939         }
940
941         __pImageMenu = new (std::nothrow) ContextMenu();
942         r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_GRID, direction);
943         TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));
944
945         if(onlyPasteOption == false)
946         {
947                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_OPT_COPY"),IDA_COPY_TEXT_CLICKED);
948         }
949         if ((pasteOption || onlyPasteOption) && clipboardAvailable == true)
950         {
951                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_BODY_PASTE"),IDA_PASTE_TEXT_CLICKED);
952         }
953         if(onlyPasteOption == false)
954         {
955                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"),IDA_FIND_TEXT__CLICKED);
956                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SHARE"),IDA_SHARE_TEXT_CLICKED);
957         }
958
959         __pImageMenu->SetMaxVisibleItemsCount(3);
960         __pImageMenu->AddActionEventListener(*this);
961         SetControlAlwaysOnTop(*__pImageMenu, true);
962         __pImageMenu->SetFocusable(true);
963
964         CATCH: return r;
965
966 }
967
968 result
969 MainForm::InitSelectTextContextMenuF(FloatPoint p, bool pasteOption, bool onlyPasteOption = false)
970 {
971         result r = E_SUCCESS;
972         bool clipboardAvailable = true;
973         ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_AUTO;
974
975         AppLog("MainForm::InitSelectTextContextMenu clicked on text");
976         if (__pImageMenu != null)
977         {
978                 delete __pImageMenu;
979                 __pImageMenu = null;
980         }
981 //      FloatPoint q(0.0,0.0);
982 //              __pWebViewer->GetBlockRange(p,q);
983         if(p.y < 150)
984         {
985                 p.y = p.y + 50;
986                 direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD;
987         }
988         else if(__pWebViewer != null && (p.y > (__pWebViewer->GetHeight() + __pWebViewer->GetY())))
989         {
990                 p.y = __pWebViewer->GetHeight() + __pWebViewer->GetY();
991         }
992         else
993         {
994                 if(GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE )
995                 {
996                         AppLog("asdasdafdsfdgfd");
997                         p.y = p.y - 50;
998                 }
999                 direction = CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD;
1000         }
1001
1002
1003         Clipboard* pClipboard = Clipboard::GetInstance();
1004
1005         if(pClipboard == null)
1006         {
1007                 clipboardAvailable = false;
1008         }
1009         else
1010         {
1011                 // Retrieves a latest item
1012                 ClipboardItem* pItem = pClipboard->RetrieveLatestItemN(CLIPBOARD_DATA_TYPE_TEXT | CLIPBOARD_DATA_TYPE_HTML);
1013
1014                 if(pItem == null)
1015                 {
1016                         clipboardAvailable = false;
1017                 }
1018                 else
1019                 {
1020                         //Gets data from the clipboard item
1021                         String* pString = dynamic_cast<String*>(pItem->GetData());
1022
1023                         if(pString == null)
1024                         {
1025                                 clipboardAvailable = false;
1026                         }
1027                 }
1028         }
1029         if(clipboardAvailable == false && onlyPasteOption == true)
1030         {
1031                 return E_FAILURE;
1032         }
1033         __pImageMenu = new (std::nothrow) ContextMenu();
1034         r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_GRID, direction);
1035         TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));
1036
1037
1038
1039
1040
1041         if(onlyPasteOption == false)
1042         {
1043                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_OPT_COPY"),IDA_COPY_TEXT_CLICKED);
1044         }
1045         if ((pasteOption || onlyPasteOption) && clipboardAvailable == true)
1046         {
1047                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_BODY_PASTE"),IDA_PASTE_TEXT_CLICKED);
1048         }
1049         if(onlyPasteOption == false)
1050         {
1051                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"),IDA_FIND_TEXT__CLICKED);
1052                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SHARE"),IDA_SHARE_TEXT_CLICKED);
1053         }
1054
1055         __pImageMenu->SetMaxVisibleItemsCount(3);
1056         __pImageMenu->AddActionEventListener(*this);
1057         SetControlAlwaysOnTop(*__pImageMenu, true);
1058         __pImageMenu->SetFocusable(true);
1059
1060         CATCH: return r;
1061
1062 }
1063
1064 result
1065 MainForm::InitFindWordPanel(void)
1066 {
1067         result r = E_SUCCESS;
1068         Bitmap *pIconBitmap = null;
1069
1070         if (__pFindWordControl != null)
1071         {
1072                 AppLogDebug("Findword panel already initialized");
1073                 if (__pFindWordBgLabel != null)
1074                 {
1075                         Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_FINDWORD_INPUT_FIELD_BG, __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());
1076                         if (pBitmap != null)
1077                         {
1078                                 __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);
1079                                 delete pBitmap;
1080                         }
1081                 }
1082                 if (__pFindWordBgLabelRightToLeft != null)
1083                 {
1084                         Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_FINDWORD_INPUT_FIELD_BG, __pFindWordBgLabelRightToLeft->GetWidth(), __pFindWordBgLabelRightToLeft->GetHeight());
1085                         if (pBitmap != null)
1086                         {
1087                                 __pFindWordBgLabelRightToLeft->SetBackgroundBitmap(*pBitmap);
1088                                 delete pBitmap;
1089                         }
1090                 }
1091                 if(__pAddressbar)
1092                         __pAddressbar->SetShowState(false);
1093
1094                 if(__isKeypadOpened == false)
1095                         __pFooterPanel->SetShowState(true);
1096                 return r;
1097         }
1098
1099         __pFindWordControl = new (std::nothrow) Panel();
1100         r = __pFindWordControl->Construct(L"IDL_FIND_ON_PAGE");
1101         if (IsFailed(r))
1102         {
1103                 AppLogException("There is some problem in the xml file. Please check.");
1104                 return E_FAILURE;
1105         }
1106         AddControl(__pFindWordControl);
1107         __pFindWordControl->SetBounds(0,0, __pFindWordControl->GetWidth(), __pFindWordControl->GetHeight());
1108         SetControlAlwaysOnTop(*__pFindWordControl,true);
1109         __pFindWordControl->SetShowState(false);
1110         __pFindWordControl->Invalidate(false);
1111
1112         __pFindWordPanelLeftToRight = static_cast<Panel*>(__pFindWordControl->GetControl(L"IDC_PANEL1", true));
1113         __pFindWordPanelLeftToRight->SetShowState(true);
1114
1115         __pFindWordPanelRightToLeft = static_cast<Panel*>(__pFindWordControl->GetControl(L"IDC_PANEL2", true));
1116         __pFindWordPanelRightToLeft->SetShowState(false);
1117
1118         __pFindWordBgLabel = static_cast<Label*>(__pFindWordControl->GetControl(L"IDC_LABEL1", true));
1119         if (__pFindWordBgLabel != null)
1120         {
1121                 Panel* pPanel1 = static_cast<Panel*>(__pFindWordControl->GetControl(L"IDC_PANEL1", true));
1122                 Rectangle pRect = pPanel1->GetBounds();
1123                 pRect.x = pRect.y = 0;
1124                 __pFindWordBgLabel->SetBounds(pRect);
1125                 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_search_input_field_bg.9.png", __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());
1126                 if (pBitmap != null)
1127                 {
1128                         AppLogDebug("InitFindWordPanel: Coming here");
1129                         __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);
1130                         delete pBitmap;
1131                 }
1132                 else
1133                 {
1134                         AppLogDebug("InitFindWordPanel: shouldn't Come here");
1135                 }
1136         }
1137
1138         __pFindWordBgLabelRightToLeft = static_cast<Label*>(__pFindWordControl->GetControl(L"IDC_LABEL2", true));
1139                 if (__pFindWordBgLabelRightToLeft != null)
1140                 {
1141                         Panel* pPanel1 = static_cast<Panel*>(__pFindWordControl->GetControl(L"IDC_PANEL1", true));
1142                         Rectangle pRect = pPanel1->GetBounds();
1143                         pRect.x = pRect.y = 0;
1144                         __pFindWordBgLabelRightToLeft->SetBounds(pRect);
1145                         Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_search_input_field_bg.9.png", __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());
1146                         if (pBitmap != null)
1147                         {
1148                                 AppLogDebug("InitFindWordPanel: Coming here");
1149                                 __pFindWordBgLabelRightToLeft->SetBackgroundBitmap(*pBitmap);
1150                                 delete pBitmap;
1151                         }
1152                         else
1153                         {
1154                                 AppLogDebug("InitFindWordPanel: shouldn't Come here");
1155                         }
1156                 }
1157
1158         Button* pfindWordCancel = null;
1159         pfindWordCancel = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_CANCEL", true));
1160         if (pfindWordCancel == null)
1161         {
1162                 AppLogException("There is some problem in the xml file. Please check.");
1163                 return E_FAILURE;
1164         }
1165         pfindWordCancel->SetActionId(IDA_FINDWORD_CANCEL_CLICKED);
1166         pfindWordCancel->AddActionEventListener(*this);
1167
1168         __pFindWordClear = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_CLEAR", true));
1169         if (__pFindWordClear == null)
1170         {
1171                 AppLogException("There is some problem in the xml file. Please check.");
1172                 return E_FAILURE;
1173         }
1174
1175         __pFindWordClearRightToLeft = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_CLEAR2", true));
1176                 if (__pFindWordClearRightToLeft == null)
1177                 {
1178                         AppLogException("There is some problem in the xml file. Please check.");
1179                         return E_FAILURE;
1180                 }
1181
1182         __pFindWordClear->SetActionId(IDA_FINDWORD_CLEAR_CLICKED);
1183         __pFindWordClear->AddActionEventListener(*this);
1184
1185         __pFindWordClearRightToLeft->SetActionId(IDA_FINDWORD_CLEAR_RIGHT_TO_LEFT_CLICKED);
1186         __pFindWordClearRightToLeft->AddActionEventListener(*this);
1187
1188         __pFindWordNext = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_NEXT", true));
1189         if (__pFindWordNext == null)
1190         {
1191                 AppLogException("There is some problem in the xml file. Please check.");
1192                 return E_FAILURE;
1193         }
1194
1195         __pFindWordNext->SetActionId(IDA_FINDWORD_NEXT_CLICKED);
1196         __pFindWordNext->AddActionEventListener(*this);
1197
1198         __pFindWordPrev = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_PREV", true));
1199         if (__pFindWordPrev == null)
1200         {
1201                 AppLogException("There is some problem in the xml file. Please check.");
1202                 return E_FAILURE;
1203         }
1204
1205         __pFindWordPrev->SetActionId(IDA_FINDWORD_PREV_CLICKED);
1206         __pFindWordPrev->AddActionEventListener(*this);
1207
1208         __pFindWordNext->SetEnabled(false);
1209         __pFindWordPrev->SetEnabled(false);
1210
1211         __pFindWordCountLabel = static_cast<Label*>(__pFindWordControl->GetControl(L"IDC_FIND_COUNT_LABEL", true));
1212         if (__pFindWordCountLabel == null)
1213         {
1214                 AppLogException("There is some problem in the xml file. Please check.");
1215                 return E_FAILURE;
1216         }
1217
1218         __pFindWordCountLabelRightToLeft = static_cast<Label*>(__pFindWordControl->GetControl(L"IDC_FIND_COUNT_LABEL2", true));
1219         if (__pFindWordCountLabelRightToLeft == null)
1220         {
1221                 AppLogException("There is some problem in the xml file. Please check.");
1222                 return E_FAILURE;
1223         }
1224
1225         __pFindWordEditField = static_cast<EditField*>(__pFindWordControl->GetControl(L"IDC_FIND_WORD_EDITFIELD", true));
1226         if (__pFindWordEditField == null)
1227         {
1228                 AppLogException("There is some problem in the xml file. Please check.");
1229                 return E_FAILURE;
1230         }
1231         __pFindWordEditField->AddTextEventListener(*this);
1232         __pFindWordEditField->AddKeypadEventListener(*this);
1233         __pFindWordEditField->SetOverlayKeypadCommandButtonVisible(false);
1234         __pFindWordEditField->SetColor(EDIT_STATUS_HIGHLIGHTED, Color(0x00, 0x00, 0x00, 0x00));
1235
1236         __pFindWordEditFieldRightToLeft = static_cast<EditField*>(__pFindWordControl->GetControl(L"IDC_FIND_WORD_EDITFIELD2", true));
1237         if (__pFindWordEditFieldRightToLeft == null)
1238         {
1239                 AppLogException("There is some problem in the xml file. Please check.");
1240                 return E_FAILURE;
1241         }
1242         __pFindWordEditFieldRightToLeft->AddTextEventListener(*this);
1243         __pFindWordEditFieldRightToLeft->AddKeypadEventListener(*this);
1244         __pFindWordEditFieldRightToLeft->SetOverlayKeypadCommandButtonVisible(false);
1245         __pFindWordEditFieldRightToLeft->SetColor(EDIT_STATUS_HIGHLIGHTED, Color(0x00, 0x00, 0x00, 0x00));
1246
1247         if(__pAddressbar)
1248                 __pAddressbar->SetShowState(false);
1249
1250         if(__isKeypadOpened == false)
1251                 __pFooterPanel->SetShowState(true);
1252         return r;
1253 }
1254
1255 ListItemBase*
1256 MainForm::CreateItem (int index, int itemWidth)
1257 {
1258         Rectangle listImageRect;
1259         Rectangle pagetTitleRect;
1260         Rectangle pageURLRect;
1261         Rectangle deleteImageRect;
1262         String pageTitle(L"");
1263         String pageURL(L"");
1264         result r = E_SUCCESS;
1265         Bitmap* pListIconImage = null;
1266
1267
1268         History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index));
1269         if(pHistory == null)
1270         {
1271                 return null;
1272         }
1273         AppResource* pAppResource = Application::GetInstance()->GetAppResource();
1274         if ( pAppResource == NULL )
1275         {
1276                 return null;
1277         }
1278         ListAnnexStyle style = LIST_ANNEX_STYLE_NORMAL;
1279
1280         CustomItem* pItem = new(std::nothrow) CustomItem();
1281         pageTitle = pHistory->GetHistoryTitle();
1282         pageURL = pHistory->GetHistoryUrl();
1283
1284         if (pageURL.GetLength() == 0)
1285         {
1286                 String nourl;
1287                 pAppResource->GetString(L"IDS_BR_BODY_BLANK_PAGE", nourl);
1288                 pageURL = L"<"+ nourl +">";
1289
1290         }
1291
1292         Rectangle screenBounds = GetBounds();
1293         if (pItem != null)
1294         {
1295                 r = pItem->Construct(Dimension(itemWidth, 128 + (__fontSize - 44)), style);
1296         }
1297         if (IsFailed(r))
1298         {
1299                 delete pItem;
1300                 return NULL;
1301         }
1302
1303
1304         Bitmap* pBitmap = pHistory->GetFavIconBitmap();
1305
1306         if ( pBitmap != NULL)
1307         {
1308                 pListIconImage = new Bitmap();
1309                 pListIconImage->Construct(*pBitmap,Rectangle(0,0,pBitmap->GetWidth(),pBitmap->GetHeight()));
1310                 delete pBitmap;
1311         }
1312
1313         if(pListIconImage == null)
1314         {
1315                 pListIconImage = pAppResource->GetBitmapN(L"I01_icon_default_favicon.png");
1316         }
1317
1318         if ( pListIconImage != NULL)
1319         {
1320                 listImageRect.SetBounds(screenBounds.x + 16, screenBounds.y + 28  + (__fontSize - 44)/2 , 72, 72);
1321                 pagetTitleRect.SetBounds(listImageRect.x + 72 + 16,10, screenBounds.width - 2 * pListIconImage->GetWidth() - 120, 72  + (__fontSize - 44));
1322                 pageURLRect.SetBounds(pagetTitleRect.x, pagetTitleRect.y + pagetTitleRect.height, screenBounds.width - 2 * pListIconImage->GetWidth() - 120, 48);
1323
1324
1325                 if (pItem != null && pListIconImage != NULL)
1326                 {
1327                         pItem->AddElement(listImageRect, IDA_FORMAT_BITMAP, *pListIconImage, null, null);
1328                 }
1329         }
1330
1331         if (pageTitle.CompareTo(L"") != 0)
1332         {
1333                 if (pItem != null)
1334                 {
1335                         pItem->AddElement(pagetTitleRect, IDA_FORMAT_TITLE_STRING, pageTitle, __fontSize, CUSTOM_COLOR_TRANSPARENT, CUSTOM_COLOR_TRANSPARENT, CUSTOM_COLOR_TRANSPARENT, true);
1336                 }
1337         }
1338
1339         if (pageURL.CompareTo(L"") != 0)
1340         {
1341                 if (pItem != null)
1342                 {
1343                         pItem->AddElement(pageURLRect, IDA_FORMAT_URL_STRING, pageURL, 32, CUSTOM_COLOR_GREY, CUSTOM_COLOR_GREY, CUSTOM_COLOR_GREY, true);
1344                 }
1345         }
1346
1347
1348         if(GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT || GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT_REVERSE)
1349         {
1350                 if ( __pItemContext!= NULL)
1351                 {
1352                         if (pItem != null)
1353                         {
1354                                 pItem->SetContextItem(__pItemContext);
1355                         }
1356                 }
1357         }
1358         else
1359         {
1360                 if ( __pItemContextLandscape!= NULL)
1361                 {
1362                         if (pItem != null)
1363                         {
1364                                 pItem->SetContextItem(__pItemContextLandscape);
1365                         }
1366                 }
1367         }
1368         if( pListIconImage != NULL)
1369         {
1370                 delete pListIconImage;
1371                 pListIconImage = null;
1372         }
1373
1374         return pItem;
1375 }
1376
1377 bool
1378 MainForm::DeleteItem (int index, Tizen::Ui::Controls::ListItemBase *pItem, int itemWidth)
1379 {
1380         delete pItem;
1381         return true;
1382 }
1383
1384 int
1385 MainForm::GetItemCount (void)
1386 {
1387         if(__pMostVisitedSites != null)
1388         {
1389                 __pMostVisitedSites->RemoveAll(true);
1390         }
1391         HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);
1392         if(__pMostVisitedSites != null)
1393         {
1394                 return __pMostVisitedSites->GetCount();
1395         }
1396         else
1397                 return 0;
1398 }
1399
1400 void
1401 MainForm::OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state)
1402 {
1403         AppLog("MainForm::OnListViewContextItemStateChanged called");
1404         if(__pMostVisitedSites != null)
1405         {
1406                 History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index));
1407                 if (pHistory != null)
1408                 {
1409                         String url = pHistory->GetHistoryUrl();
1410
1411                         HistoryPresentationModel::GetInstance()->DeleteHistory(url);
1412                         __pMostVisitedListView->UpdateList();
1413                 }
1414         }
1415 }
1416
1417 void
1418 MainForm::OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status)
1419 {
1420         History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index));
1421         String url = pHistory->GetHistoryUrl();
1422         if (url != null)
1423         {
1424                 LoadUrl(url);
1425         }
1426 }
1427
1428 void
1429 MainForm::OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction)
1430 {
1431
1432 }
1433
1434 result
1435 MainForm::OnTerminating(void)
1436 {
1437         result r = E_SUCCESS;
1438
1439         RemoveOrientationEventListener(*this);
1440
1441         if(__pAddressbar)
1442         {
1443                 __pAddressbar->SetAddressbarEventListener(null);
1444         }
1445
1446         if(__pWebViewer)
1447         {
1448                 __pWebViewer->RemoveTouchEventListener(*this);
1449                 __pWebViewer->SetWebUiEventListenerF(null);
1450                 __pWebViewer->SetWebKeypadEventListener(null);
1451                 __pWebViewer->SetTextSearchListener(null);
1452         }
1453
1454
1455         if (__pItemContext)
1456         {
1457                 delete __pItemContext;
1458         }
1459         if (__pItemContextLandscape)
1460         {
1461                 delete __pItemContextLandscape;
1462         }
1463         if (__pSaveImage)
1464         {
1465                 delete __pSaveImage;
1466         }
1467         if (__pMostVisitedSites)
1468         {
1469                 __pMostVisitedSites->RemoveAll(true);
1470                 delete __pMostVisitedSites;
1471         }
1472         return r;
1473 }
1474
1475 void
1476 MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
1477 {
1478         result r = E_SUCCESS;
1479
1480         AppLogDebug("Clicked : %d", actionId);
1481         switch (actionId)
1482         {
1483         case IDA_BACKBTN_CLICKED:
1484         {
1485                 if(__pImageMenu && __pImageMenu->GetShowState() == true)
1486                 {
1487                         AppLog("Hiding the menu");
1488                         __pImageMenu->SetShowState(false);
1489                 }
1490                 if (__pWebViewer && __pWebViewer->CanGoBack())
1491                 {
1492                         __pWebViewer->GoBack();
1493                 }
1494                 else if(__pWindowInfo->isJavascriptInitiated == false)
1495                 {
1496                         UiApp* pApp = null;
1497                         pApp = UiApp::GetInstance();
1498                         if (pApp != null)
1499                         {
1500                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
1501                                 if (IsFailed(r))
1502                                 {
1503                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1504                                         return;
1505                                 }
1506                         }
1507                 }
1508                 else
1509                 {
1510                         UiApp* pApp = null;
1511                         WindowInfo* pWindowInfo = null;
1512                         int totalCount = 0;
1513                         SceneManager* pSceneManager = SceneManager::GetInstance();
1514                         if (pSceneManager == null)
1515                         {
1516                                 return;
1517                         }
1518                         ArrayList* pAllWindowList = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList();
1519                         if (pAllWindowList == NULL)
1520                         {
1521                                 pApp = UiApp::GetInstance();
1522                                 if (pApp != null)
1523                                 {
1524                                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
1525                                         if (IsFailed(r))
1526                                         {
1527                                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1528                                                 return;
1529                                         }
1530                                 }
1531                         }
1532                         if (pAllWindowList != null)
1533                         {
1534                                 totalCount = pAllWindowList->GetCount();
1535                         }
1536                         for (int count = 0; count < totalCount; count++)
1537                         {
1538                                 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count));
1539                                 if (pWindowInfo == null)
1540                                 {
1541                                         pApp = UiApp::GetInstance();
1542                                         if (pApp != null)
1543                                         {
1544                                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
1545                                                 if (IsFailed(r))
1546                                                 {
1547                                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1548                                                         return;
1549                                                 }
1550                                         }
1551                                 }
1552                                 else
1553                                 {
1554                                         if (pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID && pWindowInfo->isJavascriptInitiated == true)
1555                                         {
1556                                                 r = SceneRegister::DestroyAndUnRegisterScene(pWindowInfo->sceneID);
1557                                                 if (IsFailed(r))
1558                                                 {
1559                                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1560                                                         return;
1561                                                 }
1562                                                 r = pAllWindowList->RemoveAt(count, true);
1563                                                 __pWindowInfo = null;
1564                                                 if (IsFailed(r))
1565                                                 {
1566                                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1567                                                         return;
1568                                                 }
1569                                                 if(count > 0)
1570                                                 {
1571                                                         pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count - 1));
1572                                                 }
1573                                                 else
1574                                                 {
1575                                                         pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1));
1576                                                 }
1577                                                 if (pWindowInfo == null)
1578                                                 {
1579                                                         pApp = UiApp::GetInstance();
1580                                                         if (pApp != null)
1581                                                         {
1582                                                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
1583                                                                 return;
1584                                                         }
1585                                                 }
1586                                                 else
1587                                                 {
1588                                                         r = pSceneManager->GoForward(ForwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_HISTORY_OPTION_ADD_HISTORY,SCENE_DESTROY_OPTION_DESTROY));
1589 //                                                      r = pSceneManager->GoBackward(BackwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE));
1590                                                         if (IsFailed(r))
1591                                                         {
1592                                                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1593                                                                 return;
1594                                                         }
1595                                                 }
1596                                                 break;
1597                                         }
1598                                 }
1599                         }
1600                 }
1601         }
1602                 break;
1603
1604         case IDA_FORWARD_CLICKED:
1605                 if (__pWebViewer == null)
1606                         return;
1607
1608                 if (__pWebViewer->CanGoForward())
1609                 {
1610                         __pWebViewer->GoForward();
1611                 }
1612                 __pOptionMenu->SetShowState(false);
1613                 __pOptionMenu->Invalidate(false);
1614                 break;
1615
1616         case IDA_FINDONPAGE_CLICKED:
1617         {
1618                 AppLogDebug("MainForm::OnActionPerformed findword clicked");
1619                 __currentSearchStr.Clear();
1620
1621                 InitFindWordPanel();
1622                 __pOptionMenu->SetShowState(false);
1623                 __pOptionMenu->Invalidate(false);
1624
1625                 ShowFindWordPanel(true);
1626
1627                 if(__pFindWordPanelLeftToRight && __pFindWordPanelLeftToRight->GetShowState() == true)
1628                 {
1629                         __pFindWordEditField->SetFocus();
1630 //                      __pFindWordCountLabel->SetShowState(false);
1631                 }
1632                 else
1633                 {
1634                         __pFindWordEditFieldRightToLeft->SetFocus();
1635                         __pFindWordCountLabelRightToLeft->SetShowState(false);
1636                 }
1637         }
1638         break;
1639         case IDA_PRIVATEON_CLICKED:
1640         {
1641                 result r = E_SUCCESS;
1642                 int itemIndex = 0;
1643                 bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();
1644                 Bitmap* pBitmap = null;
1645                 if (isPrivateBrowsing == true)
1646                 {
1647                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_OFF);
1648                         if (IsFailed(r))
1649                         {
1650                                 AppLogException("Contextmenu additem:Find on page failed with %s", GetErrorMessage(r));
1651                                 return ;
1652                         }
1653
1654                         if (__pWebViewer != NULL)
1655                         {
1656                                 __pWebViewer->SetPrivateBrowsingEnabled(false);
1657                         }
1658
1659                         SettingPresentationModel::GetInstance()->SetPrivateOn(false);
1660
1661                         if (__pAddressbar != null)
1662                         {
1663                                 __pAddressbar->UpdateFaviconBitmap(false);
1664                         }
1665
1666                 }
1667                 else
1668                 {
1669                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_ON);
1670                         if (IsFailed(r))
1671                         {
1672                                 AppLogException("Contextmenu additem:Find on page failed with %s", GetErrorMessage(r));
1673                                 return ;
1674                         }
1675
1676                         if (__pWebViewer != NULL)
1677                         {
1678                                 __pWebViewer->SetPrivateBrowsingEnabled(true);
1679                         }
1680
1681                         SettingPresentationModel::GetInstance()->SetPrivateOn(true);
1682
1683                         if (__pAddressbar != null)
1684                         {
1685                                 __pAddressbar->UpdateFaviconBitmap(true);
1686                         }
1687                 }
1688
1689                 itemIndex = __pOptionMenu->GetItemIndexFromActionId(IDA_PRIVATEON_CLICKED);
1690                 r = __pOptionMenu->SetItemAt(itemIndex,CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB"),IDA_PRIVATEON_CLICKED,*pBitmap);
1691                 AppLog("Result:: %s for index = %d", GetErrorMessage(r),itemIndex);
1692                 __pOptionMenu->Invalidate(true);
1693                 if ( pBitmap != NULL )
1694                 {
1695                         delete pBitmap;
1696                 }
1697
1698         }
1699         break;
1700         case IDA_SETTINGS_CLICKED:
1701         {
1702
1703                 ArrayList* pArgList = new(std::nothrow) ArrayList();
1704                 if (pArgList)
1705                 {
1706                         pArgList->Construct();
1707                         pArgList->Add(*__pWindowInfo);
1708                         SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_SETTINGS), pArgList);
1709                 }
1710                 __pOptionMenu->SetShowState(false);
1711                 __pOptionMenu->Invalidate(false);
1712
1713                 if (pArgList != null)
1714                 {
1715                         delete pArgList;
1716                         pArgList = null;
1717                 }
1718
1719         }
1720         break;
1721
1722         case IDA_ADDTOBOOKMARK_CLICKED:
1723         {
1724
1725                 if (__pWindowInfo != NULL && __pWindowInfo->pageUrl != NULL)
1726                 {
1727                         int bookmarkCount=0;
1728                         bool exist = false;
1729                         String url=L"";
1730                         url=__pWindowInfo->pageUrl;
1731                         result r = E_SUCCESS;
1732                         Bitmap* pBitmap = null;
1733                         r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist);
1734
1735                         if (IsFailed(r))
1736                         {
1737                                 return;
1738                         }
1739                         if ( exist == true)
1740                         {
1741                                 String message = CommonUtil::GetString(L"IDS_BR_POP_BOOKMARK_REMOVED");
1742                                 BookmarkPresentationModel::GetInstance()->DeleteBookmark(url);
1743                                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_OFF_TEMP);
1744
1745                                 if(__pNotification != null)
1746                                 {
1747                                         RemoveControl(__pNotification);
1748                                         __pNotification = null;
1749                                 }
1750                                 __pNotification = new (std::nothrow) NotificationPanel(*this);
1751                                 if (__pNotification != null)
1752                                 {
1753                                         __pNotification->SetText(message);
1754                                         __pNotification->SetPositionDiff(__pFooterPanel->GetHeight() - 12);
1755                                         __pNotification->ShowNotification();
1756                                 }
1757                         }
1758                         else
1759                         {
1760                                 String title=__pWindowInfo->pageTitle;
1761                                 String message = CommonUtil::GetString(L"IDS_BR_POP_BOOKMARK_ADDED");
1762                                 BookmarkData* pBookmark=new (std::nothrow) BookmarkData();
1763
1764                                 pBookmark->SetBookmarkTitle(title);
1765                                 pBookmark->SetUrl(url);
1766                                 if (__pWebViewer != null && __pWebViewer->GetFaviconN() != null)
1767                                 {
1768                                         pBookmark->SetFavIconBitmap(*(__pWebViewer->GetFaviconN()));
1769                                 }
1770                                 String id = FaviconManager::GetInstance()->SaveFavicon(*__pWindowInfo->pFavicon, __pWindowInfo->faviconUrl);
1771                                 pBookmark->SetFaviconId(id);
1772                                 //r = BookmarkPresentationModel::GetInstance()->SaveBookmark(*pBookmark);
1773                                 r = BookmarkPresentationModel::GetInstance()->SaveTempBookmark(*pBookmark);
1774                                 delete pBookmark;
1775                                 if(__pNotification != null)
1776                                 {
1777                                         RemoveControl(__pNotification);
1778                                         __pNotification = null;
1779                                 }
1780                                 __pNotification = new (std::nothrow) NotificationPanel(*this);
1781                                 if (__pNotification != null)
1782                                 {
1783                                         __pNotification->SetText(message);
1784                                         __pNotification->SetPositionDiff(__pFooterPanel->GetHeight() - 12);
1785                                         __pNotification->ShowNotification();
1786                                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_ON_TEMP);
1787                                 }
1788                         }
1789                         if (pBitmap != null)
1790                         {
1791                                 r = __pOptionMenu->SetItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
1792                                 delete pBitmap;
1793                         }
1794
1795
1796                         __pOptionMenu->Invalidate(true);
1797                 }
1798
1799         }
1800         break;
1801         case IDA_PRINT_CLICKED:
1802         {
1803                 r = __pWebViewer->SavePageAsPdf(UiApp::GetInstance()->GetAppRootPath()+"//shared//data//test.pdf");
1804                 AppLog("SavePageAsPdf result %s",GetErrorMessage(r));
1805
1806                 AppLog("RequestPrint called!");
1807                 AppControl* pAc = Tizen::App::AppManager::FindAppControlN(L"org.tizen.mobileprint", L"http://tizen.org/appcontrol/operation/print");
1808                 result nResult = E_FAILURE;
1809                 if (pAc)
1810                 {
1811                         AppLog("TestPrint if (pAc) == true");
1812
1813                         HashMap map;
1814                         map.Construct();
1815
1816                         String fileType = L"service_print_files_type";
1817                         String typeVal = L"DOC";
1818
1819                         String fileCount = L"service_print_files_count";
1820                         String countVal = L"1";
1821                         String fileFolder= L"service_print_files_folder_name";
1822                         String folderVal = UiApp::GetInstance()->GetAppRootPath()+"//shared//data";
1823
1824                         map.Add(&fileCount, &countVal);
1825                         map.Add(&fileFolder, &folderVal);
1826                         map.Add(&fileType, &typeVal);
1827
1828                         String fileName = L"service_print_files_files_name";
1829
1830                         ArrayList fileNameList;
1831                         fileNameList.Construct();
1832                         String file1 = L"test.pdf";
1833
1834                         fileNameList.Add(&file1);
1835                         map.Add(&fileName, &fileNameList);
1836
1837                         nResult = pAc->Start(NULL, NULL, &map, NULL);
1838
1839                         if (nResult == E_SUCCESS) AppLog("TestPrint ret == E_SUCCESS");
1840                         else if (nResult == E_MAX_EXCEEDED)
1841                                 AppLog("TestPrint ret == E_MAX_EXCEEDED");
1842                         else if (nResult == E_OBJ_NOT_FOUND)
1843                                 AppLog("TestPrint ret == E_OBJ_NOT_FOUND");
1844                         else if (nResult == E_IN_PROGRESS)
1845                                 AppLog("TestPrint ret == E_IN_PROGRESS");
1846                         else if (nResult == E_PRIVILEGE_DENIED)
1847                                 AppLog("TestPrint ret == E_PRIVILEGE_DENIED");
1848                         else if(nResult == E_SYSTEM)
1849                                 AppLog("TestPrint ret == E_SYSTEM");
1850
1851                         delete pAc;
1852                 }
1853                 else
1854                 {
1855                         int __modalMsgBoxResult;
1856                         MessageBox* pMsgBox = new MessageBox();
1857                         pMsgBox->Construct("Not Supported","Not Supported",MSGBOX_STYLE_OK,3000);
1858                         pMsgBox->ShowAndWait(__modalMsgBoxResult);
1859                         delete pMsgBox;
1860                         pMsgBox = null;
1861                         __modalMsgBoxResult = 0;
1862                 }
1863         }
1864         break;
1865         case IDA_SHARE_CLICKED:
1866         {
1867                 if(__pPopUp != null)
1868                 {
1869                         delete __pPopUp;
1870                         __pPopUp = null;
1871                 }
1872                 if(__pAddressbar)
1873                 {
1874                         __pAddressbar->HideKeypad();
1875                 }
1876                 __pPopUp = new(std::nothrow) SharePopup();
1877                 __pPopUp->Initialize();
1878                 if (__pWindowInfo != null)
1879                 {
1880                         ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();
1881                         pShareInfo->SetPageTitle(__pWindowInfo->pageTitle);
1882                         pShareInfo->SetPageUrl(__pWindowInfo->pageUrl);
1883                         pShareInfo->SetImageAttached(false);
1884                         __pPopUp->RemoveAllShareInfo();
1885                         __pPopUp->AddShareInfo(pShareInfo);
1886                 }
1887                 __pPopUp->SetShowState(true);
1888                 __pPopUp->Show();
1889         }
1890         break;
1891         case IDA_BOOKMARKBTN_CLICKED:
1892         {
1893                 AppLogDebug("ONACTION_PERFORMED:IDA_BOOKMARKBTN_CLICKED");
1894                 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_BOOKMARK_VIEW, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
1895         }
1896         break;
1897         case IDA_ADD_TO_BOOKMARKBTN_CLICKED:
1898         {
1899
1900         }
1901         break;
1902         case IDA_MOREBTN_CLICKED:
1903         {
1904                 AppLog("IDA_MOREBTN_CLICKED");
1905                 InitOptionMenu();
1906                 if (__pWindowInfo != NULL && __pWindowInfo->pageUrl != NULL && __pWebViewer->GetShowState() == true)
1907                 {
1908                         int bookmarkCount=0;
1909                         bool exist = false;
1910                         String url=L"";
1911                         url=__pWindowInfo->pageUrl;
1912                         result r = E_SUCCESS;
1913                         Bitmap* pBitmap = null;
1914
1915                         r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist);
1916                         if (IsFailed(r))
1917                         {
1918                                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED failed");
1919                                 return;
1920                         }
1921                         if ( exist == true)
1922                         {
1923                                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_ON_TEMP);
1924                         }
1925                         else
1926                         {
1927                                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_OFF_TEMP);
1928                         }
1929                         AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 3");
1930
1931                         if (__pOptionMenu->GetItemCount() == 9)
1932                         {
1933                                 r = __pOptionMenu->SetItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
1934                         }
1935                         else
1936                         {
1937                                 r = __pOptionMenu->InsertItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
1938                         }
1939
1940                         if (IsFailed(r))
1941                         {
1942                                 AppLogException("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED Add to Bookmark failed with %s", GetErrorMessage(r));
1943                                 delete pBitmap;
1944                                 return ;
1945                         }
1946                         AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 4");
1947                         if (__pOptionMenu->GetItemCount() != 9)
1948                         {
1949                                 __pOptionMenu->InsertItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED);
1950                                 __pOptionMenu->InsertItemAt(2,CommonUtil::GetString(L"IDS_BR_BODY_PRINT"), IDA_PRINT_CLICKED);
1951         //                              __pOptionMenu->InsertItemAt(2,L"Add to Home"/*CommonUtil::GetString(L"IDS_BR_OPT_SHARE")*/, IDA_ADD_TO_HOME_CLICKED);
1952                                 __pOptionMenu->InsertItemAt(3,CommonUtil::GetString(L"IDS_BR_OPT_SHARE"), IDA_SHARE_CLICKED);
1953                                 __pOptionMenu->InsertItemAt(4,CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"), IDA_FINDONPAGE_CLICKED);
1954                                 __pOptionMenu->SetMaxVisibleItemsCount(6);
1955                         }
1956                         if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
1957                         {
1958                                 AppLog(" Orientation landscape");
1959                                 __pOptionMenu->SetMaxVisibleItemsCount(5);
1960                         }
1961                         else
1962                         {
1963                                 AppLog(" Orientation potrait");
1964                                 __pOptionMenu->SetMaxVisibleItemsCount(6);
1965                         }
1966
1967                         AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 5");
1968                         delete pBitmap;
1969                 }
1970                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED end");
1971                 __pOptionMenu->SetShowState(true);
1972                 __pOptionMenu->Invalidate(true);
1973                 __pOptionMenu->Show();
1974
1975 }
1976         break;
1977         case IDA_HISTORY_CLICKED:
1978         {
1979                 AppLogDebug("ONACTION_PERFORMED:IDA_HISTORYBTN_CLICKED");
1980                 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_HISTORY_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
1981         }
1982         break;
1983         case IDA_SAVED_PAGES_CLICKED:
1984         {
1985
1986         }
1987         break;
1988         case IDA_DESKTOP_VIEW_CLICKED:
1989         {
1990
1991         }
1992         break;
1993         case IDA_SAVE_CLICKED:
1994         {
1995
1996         }
1997         break;
1998         case IDA_MULTIWINDOWBTN_CLICKED:
1999         {
2000                 result r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_MULTIPLE_WINDOW, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
2001                 AppLog("IDA_MULTIWINDOWBTN_CLICKED result %s",GetErrorMessage(r));
2002         }
2003         break;
2004
2005         case IDA_NEWWINDOWBTN_CLICKED:
2006         {
2007                 WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN();
2008
2009                 if (pNewWindowInfo == null)
2010                 {
2011                         return;
2012                 }
2013                 result r = E_SUCCESS;
2014                 SceneManager* pSceneManager = SceneManager::GetInstance();
2015
2016                 if (pSceneManager == NULL)
2017                 {
2018                         return;
2019                 }
2020                 ArrayList* pArgList = new(std::nothrow) ArrayList();
2021                 if (pArgList == NULL)
2022                 {
2023                         return;
2024                 }
2025                 r = pArgList->Construct();
2026                 if (r == E_SUCCESS)
2027                 {
2028                         pArgList->Add(*pNewWindowInfo);
2029                         r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
2030                 } 
2031                 delete pArgList;
2032                 pArgList = null;
2033                 if (IsFailed(r))
2034                 {
2035                         AppLogDebug("MainForm::OnActionPerformed Failed to GoBackward %s",GetErrorMessage(r));
2036                         return;
2037                 }
2038         }
2039         break;
2040         case IDA_SMALLFONT_BTN_CLICKED:
2041         {
2042                 WebSetting setting = __pWebReader->GetSetting();
2043                 setting.SetFontSize(15);
2044                 __pWebReader->SetSetting(setting);
2045         }
2046         break;
2047         case IDA_LARGEFONT_BTN_CLICKED:
2048         {
2049                 WebSetting setting = __pWebReader->GetSetting();
2050                 setting.SetFontSize(25);
2051                 __pWebReader->SetSetting(setting);
2052         }
2053         break;
2054         case IDA_READER_CLOSE_CLICKED:
2055         {
2056                 if (__pArticleReaderPanel != null && __pBlankPanel != null)
2057                 {
2058                         RemoveControl(__pBlankPanel);
2059                         __pArticleReaderPanel = null;
2060                         __pBlankPanel = null;
2061                         __pArticleReaderLabel = null;
2062                 }
2063                 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
2064         }
2065         break;
2066         case IDA_FINDWORD_CANCEL_CLICKED:
2067         {
2068                 __currentSearchStr = L"";
2069                 __currentWordIndex = 0;
2070                 __maxOccurrances = 0;
2071
2072                 if (__pFindWordPanelLeftToRight && __pFindWordPanelLeftToRight->GetShowState() == true)
2073                 {
2074                         __pFindWordEditField->SetText(L"");
2075                         __pFindWordCountLabel->SetText(L"0/0");
2076                 }
2077                 else if (__pFindWordPanelRightToLeft && __pFindWordPanelRightToLeft->GetShowState() == true)
2078                 {
2079                         __pFindWordEditFieldRightToLeft->SetText(L"");
2080                         __pFindWordCountLabelRightToLeft->SetText(L"0/0");
2081                 }
2082
2083                 __pFindWordNext->SetEnabled(false);
2084                 __pFindWordPrev->SetEnabled(false);
2085                 __pFindWordCountLabel->SetText(L"0/0");
2086                 __pWebViewer->SearchTextAllAsync(L"",true);
2087                 AppLog("akjshdasd 1");
2088                 if(__isKeypadOpened == false)
2089                         __pFooterPanel->SetShowState(true);
2090                 ShowFindWordPanel(false);
2091         }
2092         break;
2093         case IDA_FINDWORD_SEARCH_CLICKED:
2094         {
2095                 if (__pFindWordPanelLeftToRight && __pFindWordPanelLeftToRight->GetShowState() == true)
2096                 {
2097                         __currentSearchStr = __pFindWordEditField->GetText();
2098                 }
2099                 else if (__pFindWordPanelRightToLeft && __pFindWordPanelRightToLeft->GetShowState() == true)
2100                 {
2101                         __currentSearchStr = __pFindWordEditFieldRightToLeft->GetText();
2102                 }
2103
2104                 if (__currentSearchStr.GetLength() > 0)
2105                 {
2106                         StartWordSearch();
2107                 }
2108                 else
2109                 {
2110                         AppLogDebug("Enter something");
2111                 }
2112         }
2113         break;
2114         case IDA_FINDWORD_CLEAR_CLICKED:
2115         {
2116                 __pFindWordCountLabel->SetText(L"0/0");
2117                 __pFindWordEditField->SetText(L"");
2118                 __currentSearchStr = L"aaaaaabbbbbbccccccc";
2119                 StartWordSearch();
2120                 __currentSearchStr = L"";
2121                 __pFindWordNext->SetEnabled(false);
2122                 __pFindWordPrev->SetEnabled(false);
2123 //              __pFindWordCountLabel->SetShowState(false);
2124                 __pFindWordControl->Invalidate(true);
2125         }
2126         break;
2127         case IDA_FINDWORD_CLEAR_RIGHT_TO_LEFT_CLICKED:
2128         {
2129                 __pFindWordCountLabelRightToLeft->SetText(L"0/0");
2130                 __pFindWordEditFieldRightToLeft->SetText(L"");
2131                 __currentSearchStr = L"aaaaaabbbbbbccccccc";
2132                 StartWordSearch();
2133                 __currentSearchStr = L"";
2134                 __pFindWordNext->SetEnabled(false);
2135                 __pFindWordPrev->SetEnabled(false);
2136 //              __pFindWordCountLabelRightToLeft->SetShowState(false);
2137                 __pFindWordControl->Invalidate(true);
2138         }
2139         break;
2140         case IDA_FINDWORD_NEXT_CLICKED:
2141         {
2142                 FindNextWord(true);
2143         }
2144         break;
2145         case IDA_FINDWORD_PREV_CLICKED:
2146         {
2147                 FindNextWord(false);
2148         }
2149         break;
2150         case IDA_BRIGHTNESS_BTN_CLICKED:
2151         {
2152                 AppLogDebug("IDA_BRIGHTNESS_BTN_CLICKED");
2153                 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_BRIGHTNESS, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
2154         }
2155         break;
2156         case IDA_COPY_IMAGE_CLICKED:
2157         {
2158                 AppLogDebug("IDA_COPY_IMAGE_CLICKED");
2159                 AppLogDebug("IDA_COPY_IMAGE_CLICKED");
2160                 ClipboardItem item;
2161                 const Bitmap* pBitmap = null;
2162                 if (__pHitElementResult != null && __pHitElementResult->HasImage())
2163                 {
2164                         pBitmap = __pHitElementResult->GetImage();
2165                 }
2166
2167                 String resourcePath = App::GetInstance()->GetAppResourcePath();
2168                 r = item.Construct(CLIPBOARD_DATA_TYPE_IMAGE , *pBitmap);
2169                 AppLog("Platofrm construct failed result %s",GetErrorMessage(r));
2170                 // copying the item to clipboard
2171                 Clipboard* pClipboard = Clipboard::GetInstance();
2172                 if (pClipboard != null)
2173                 {
2174                         r = pClipboard->CopyItem(item);
2175                         AppLog("Platofrm copy failed result %s",GetErrorMessage(r));
2176                 }
2177         }
2178         break;
2179         case IDA_VIEW_IMAGE_CLICKED:
2180         {
2181                 AppLogDebug("IDA_VIEW_IMAGE_CLICKED");
2182                 WindowInfo* pNewWindowInfo = null;
2183                 if (__pHitElementResult != null)
2184                 {
2185                         String srcUrl = __pHitElementResult->GetAttributeValue(L"src");
2186                         AppLog("MainForm::OnTouchLongPressed srcUrl is %ls",srcUrl.GetPointer());
2187                         LoadUrl(srcUrl);
2188
2189                 }
2190         }
2191         break;
2192         case IDA_SAVE_IMAGE_CLICKED:
2193         {
2194                 AppLogDebug("IDA_SAVE_IMAGE_CLICKED");
2195                 const Bitmap* pSaveBitmap = null;
2196                 String imageName = GetImagePath();
2197                 AppLog("Content manager image name %ls",imageName.GetPointer());
2198                 String imagePath;
2199                 imagePath.Clear();
2200                 imagePath.Append(imageName);
2201                 imagePath.Format(100, L"%ls/Downloads/%ls.jpg",Tizen::System::Environment::GetMediaPath().GetPointer(),  imageName.GetPointer());
2202                 AppLog("Content manager image path %ls",imagePath.GetPointer());
2203                 if (__pHitElementResult != null)
2204                 {
2205                         pSaveBitmap = __pHitElementResult->GetImage();
2206                 }
2207                 ByteBuffer* pBuffer = __pSaveImage->EncodeToBufferN(*pSaveBitmap, IMG_FORMAT_JPG);
2208
2209                 if(pBuffer)
2210                 {
2211                         UpdateImageContent(pBuffer, imageName);
2212                         delete pBuffer;
2213                         if(__pNotification != null)
2214                         {
2215                                 RemoveControl(__pNotification);
2216                                 __pNotification = null;
2217                         }
2218                         __pNotification = new NotificationPanel(*this);
2219                         String msg;
2220                         AppResource::GetInstance()->GetString("IDS_COM_SK_SAVE", msg);
2221                         msg.Append(imagePath);
2222                         if (__pNotification != null)
2223                         {
2224                                 __pNotification->SetText(msg);
2225                                 if (__pFooterPanel->GetShowState() == true)
2226                                 {
2227                                         __pNotification->SetPositionDiff(__pFooterPanel->GetHeight());
2228                                 }
2229                                 else
2230                                 {
2231                                         __pNotification->SetPositionDiff(0);
2232                                 }
2233                                 __pNotification->ShowNotification();
2234                         }
2235                 }
2236                 else
2237                 {
2238                         int __modalMsgBoxResult;
2239                         MessageBox* pMsgBox = new MessageBox();
2240                         pMsgBox->Construct(CommonUtil::GetString(L"IDS_IMGE_POP_UNABLE_TO_SAVE_IMAGE"),CommonUtil::GetString(L"IDS_IMGE_POP_UNABLE_TO_SAVE_IMAGE"),MSGBOX_STYLE_OK,3000);
2241                         pMsgBox->ShowAndWait(__modalMsgBoxResult);
2242                         delete pMsgBox;
2243                         pMsgBox = null;
2244                         __modalMsgBoxResult = 0;
2245                 }
2246         }
2247         break;
2248         case IDA_SHARE_IMAGE_CLICKED:
2249         {
2250                 AppLogDebug("IDA_SHARE_IMAGE_CLICKED");
2251                 if (__pPopUp != null)
2252                 {
2253                         delete __pPopUp;
2254                         __pPopUp = null;
2255                 }
2256                 if(__pAddressbar)
2257                 {
2258                         __pAddressbar->HideKeypad();
2259                 }
2260                 __pPopUp = new(std::nothrow) SharePopup();
2261                 __pPopUp->Initialize();
2262                 if (__pHitElementResult != null)
2263                 {
2264                         const Bitmap* pSaveBitmap = null;
2265                         String imageName = GetImagePath();
2266                         AppLog("Content manager image name %ls",imageName.GetPointer());
2267                         String imagePath;
2268                         imagePath.Clear();
2269                         imagePath.Append(imageName);
2270                         imagePath.Format(100, L"%lsDownloads/%ls.jpg",Tizen::System::Environment::GetMediaPath().GetPointer(),  imageName.GetPointer());
2271                         AppLog("Content manager image path %ls",imagePath.GetPointer());
2272                         if (__pHitElementResult != null)
2273                         {
2274                                 pSaveBitmap = __pHitElementResult->GetImage();
2275                         }
2276                         __pSaveImage->EncodeToFile(*pSaveBitmap, IMG_FORMAT_JPG, imagePath, true);
2277
2278                         String srcUrl = __pHitElementResult->GetAttributeValue(L"src");
2279                         AppLog("MainForm::OnTouchLongPressed srcUrl is %ls",srcUrl.GetPointer());
2280
2281                         ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();
2282                         pShareInfo->SetPageTitle(L"");
2283                         pShareInfo->SetPageUrl(srcUrl);
2284                         pShareInfo->SetImageAttached(true);
2285                         pShareInfo->SetImagePath(imagePath);
2286                         __pPopUp->RemoveAllShareInfo();
2287                         __pPopUp->AddShareInfo(pShareInfo);
2288                         __pPopUp->SetShowState(true);
2289                         __pPopUp->Show();
2290                 }
2291         }
2292         break;
2293         case IDA_HYPERLINK_OPEN_CLICKED:
2294         {
2295                 if (__pHitElementResult != null)
2296                 {
2297                         String srcUrl = __pHitElementResult->GetUrl();
2298
2299                         WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN(srcUrl);
2300
2301                         if (pNewWindowInfo == null)
2302                         {
2303                                 return;
2304                         }
2305                         pNewWindowInfo->isJavascriptInitiated = true;
2306                         result r = E_SUCCESS;
2307                         SceneManager* pSceneManager = SceneManager::GetInstance();
2308                         if (pSceneManager == NULL)
2309                         {
2310                                 return;
2311                         }
2312                         ArrayList* pArgList = new(std::nothrow) ArrayList();
2313                         if (pArgList == NULL)
2314                         {
2315                                 return;
2316                         }
2317                         pArgList->Construct();
2318
2319                         pArgList->Add(*pNewWindowInfo);
2320                         r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
2321                         if (pArgList != null)
2322                         {
2323                                 delete pArgList;
2324                                 pArgList = null;
2325                         }
2326                         if(IsFailed(r))
2327                         {
2328                                 AppLogDebug("MultipleWindowForm::OnActionPerformed GoForward failed %s",GetErrorMessage(r));
2329                                 return;
2330                         }
2331                 }
2332         }
2333         break;
2334         case IDA_HYPERLINK_SHARE_IMAGE_CLICKED:
2335         {
2336                 if (__pHitElementResult == null)
2337                 {
2338                         return;
2339                 }
2340
2341                 if(__pPopUp != null)
2342                 {
2343                         delete __pPopUp;
2344                         __pPopUp = null;
2345                 }
2346                 if(__pAddressbar)
2347                 {
2348                         __pAddressbar->HideKeypad();
2349                 }
2350                 __pPopUp = new(std::nothrow) SharePopup();
2351                 __pPopUp->Initialize();
2352
2353                 ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();
2354                 pShareInfo->SetPageUrl(__pHitElementResult->GetUrl());
2355                 pShareInfo->SetImageAttached(false);
2356                 __pPopUp->RemoveAllShareInfo();
2357                 __pPopUp->AddShareInfo(pShareInfo);
2358
2359                 __pPopUp->SetShowState(true);
2360                 __pPopUp->Show();
2361         }
2362         break;
2363         case IDA_HYPERLINK_COPY_LINK_CLICKED:
2364         {
2365                 ClipboardItem item;
2366                 String url;
2367                 if (__pHitElementResult != null)
2368                 {
2369                         url = __pHitElementResult->GetUrl();
2370                 }
2371
2372                 String resourcePath = App::GetInstance()->GetAppResourcePath();
2373                 item.Construct(CLIPBOARD_DATA_TYPE_TEXT , url);
2374
2375                 // copying the item to clipboard
2376                 Clipboard* pClipboard = Clipboard::GetInstance();
2377                 if (pClipboard != null)
2378                 {
2379                         pClipboard->CopyItem(item);
2380                 }
2381         }
2382         break;
2383         case IDA_FIND_TEXT__CLICKED:
2384         {
2385 //              AddressBarCancelledClicked(*__pAddressbar);
2386                 RelayoutControls(false);
2387 //              __pFooterPanel->SetShowState(false);
2388                 AppLogDebug("MainForm::OnActionPerformed find word clicked");
2389                 __currentSearchStr.Clear();
2390                 __currentSearchStr.Append(__currentSelectedStr);
2391                 InitFindWordPanel();
2392                 __pFindWordEditField->SetText(__currentSearchStr);
2393
2394                 if(__pOptionMenu != null)
2395                 {
2396                         __pOptionMenu->SetShowState(false);
2397                         __pOptionMenu->Invalidate(false);
2398                 }
2399                 __adressPanelPosition.y = 0;
2400
2401                 if (__pAddressbar != null && __pWebViewer != NULL)
2402                 {
2403                         __webControlPosition.y = __pAddressbar->GetHeight() - 12;
2404                         __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight() - ( /*__pAddressbar->GetY() +*/ __pAddressbar->GetHeight() - 12);
2405
2406                         if (__pFooterPanel->GetShowState() == false)
2407                                 __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, GetClientAreaBounds().height - ( /*__pAddressbar->GetY() +*/ __pAddressbar->GetHeight() - 12)));
2408                         else
2409                                 __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, __webControlHeight));
2410                         __pWebViewer->Invalidate(true);
2411                 }
2412
2413                 ShowFindWordPanel(true);
2414                 if (__pFindWordPanelLeftToRight && __pFindWordPanelLeftToRight->GetShowState() == true)
2415                 {
2416                         __pFindWordEditField->SetText(__currentSearchStr);
2417                         __pFindWordEditField->SetFocus();
2418                 }
2419                 else if(__pFindWordPanelRightToLeft && __pFindWordPanelRightToLeft->GetShowState() == true)
2420                 {
2421                         __pFindWordEditFieldRightToLeft->SetText(__currentSearchStr);
2422                         __pFindWordEditFieldRightToLeft->SetFocus();
2423                 }
2424
2425                 if (__currentSearchStr.GetLength() > 0)
2426                 {
2427                         StartWordSearch();
2428                 }
2429                 else
2430                 {
2431                         AppLogDebug("Enter something");
2432                 }
2433
2434                 if (__pWebViewer != null)
2435                 {
2436                         // releasing the set block
2437                         __pWebViewer->ReleaseBlock();
2438                 }
2439
2440         }
2441         break;
2442         case IDA_SHARE_TEXT_CLICKED:
2443         {
2444                 __pWebViewer->ReleaseBlock();
2445                 AppLogDebug("IDA_SHARE_TEXT_CLICKED");
2446                 if(__pPopUp != null)
2447                 {
2448                         delete __pPopUp;
2449                         __pPopUp = null;
2450                 }
2451                 if(__pAddressbar)
2452                 {
2453                         __pAddressbar->HideKeypad();
2454                 }
2455                 __pPopUp = new(std::nothrow) SharePopup();
2456                 __pPopUp->Initialize();
2457                 if (__pHitElementResult != null)
2458                 {
2459                         ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();
2460                         pShareInfo->SetPageTitle(L"");
2461                         pShareInfo->SetPageUrl(__currentSelectedStr);
2462                         pShareInfo->SetImageAttached(false);
2463                         __pPopUp->RemoveAllShareInfo();
2464                         __pPopUp->AddShareInfo(pShareInfo);
2465                         __pPopUp->SetShowState(true);
2466                         __pPopUp->Show();
2467                 }
2468         }
2469         break;
2470         case IDA_COPY_TEXT_CLICKED:
2471         {
2472                 __pWebViewer->ReleaseBlock();
2473                 // need to implement
2474                 //__currentSelectedStr
2475                 // Sets data to a clip board item
2476                 ClipboardItem item;
2477                 String resourcePath = App::GetInstance()->GetAppResourcePath();
2478                 item.Construct(CLIPBOARD_DATA_TYPE_TEXT, __currentSelectedStr);
2479
2480                 // copying the item to clipboard
2481                 Clipboard* pClipboard = Clipboard::GetInstance();
2482                 if (pClipboard != null)
2483                 {
2484                         pClipboard->CopyItem(item);
2485                 }
2486         }
2487         break;
2488         case IDA_PASTE_TEXT_CLICKED:
2489         {
2490                 __pWebViewer->ReleaseBlock();
2491                 Clipboard* pClipboard = Clipboard::GetInstance();
2492
2493                 if(pClipboard == null)
2494                 {
2495                         return;
2496                 }
2497                 // Retrieves a latest item
2498                 ClipboardItem* pItem = pClipboard->RetrieveLatestItemN(CLIPBOARD_DATA_TYPE_TEXT | CLIPBOARD_DATA_TYPE_HTML);
2499
2500                 if(pItem == null)
2501                 {
2502                         return;
2503                 }
2504                 //Gets data from the clipboard item
2505                 String* pString = dynamic_cast<String*>(pItem->GetData());
2506
2507                 if (pString != null)
2508                 {
2509                         String idElement = __pHitElementResult->GetAttributeValue(L"id");
2510                         String nameElement = __pHitElementResult->GetAttributeValue(L"name");
2511                         String tagElement  = __pHitElementResult->GetTagName();
2512                         AppLog("MainForm::IDA_PASTE_TEXT_CLICKED id is %ls",idElement.GetPointer());
2513                         String str = L"document.getElementsByName('";
2514                         str.Append(nameElement);
2515                         str.Append("').length");
2516                         String* pCount = __pWebViewer->EvaluateJavascriptN(str);
2517
2518                         String script;
2519                         if(idElement.GetLength() != 0)
2520                         {
2521                                 script = L"function insertAtCursor(myField, myValue) {  if (document.selection) {   document.getElementById(myField).focus();   sel = document.selection.createRange();   sel.text = myValue;  }   else if (document.getElementById(myField).selectionStart || document.getElementById(myField).selectionStart == '0'){   var startPos = document.getElementById(myField).selectionStart;   var endPos = document.getElementById(myField).selectionEnd;   document.getElementById(myField).value = document.getElementById(myField).value.substring(0, startPos)+ myValue + document.getElementById(myField).value.substring(endPos, document.getElementById(myField).value.length);   } else {    document.getElementById(myField).value += myValue;   }  } ";
2522                                 script.Append("insertAtCursor('");
2523                                 script.Append(idElement);
2524                                 script.Append("',");
2525                                 script.Append("\"");
2526                                 script.Append(*pString);
2527                                 script.Append("\");");
2528                         }
2529                         else if (nameElement.GetLength() != 0 && pCount->Equals("1",false) == true)
2530                         {
2531                                 script = L"function insertAtCursor(myField, myValue) {  if (document.selection) {   myField.focus();   sel = document.selection.createRange();   sel.text = myValue;  }   else if (myField.selectionStart || myField.selectionStart == '0'){   var startPos = myField.selectionStart;   var endPos = myField.selectionEnd;   myField.value = myField.value.substring(0, startPos)+ myValue + myField.value.substring(endPos, myField.value.length);   } else {    myField.value += myValue;   }  } ";
2532                                 script.Append("insertAtCursor(document.getElementsByName('");
2533                                 script.Append(nameElement);
2534                                 script.Append("')[0],");
2535                                 script.Append("\"");
2536                                 script.Append(*pString);
2537                                 script.Append("\");");
2538                         }
2539                         else if(tagElement.GetLength() != 0) //adding for twitter post page
2540                         {
2541                                 script = L"function insertAtCursor(myField, myValue) {  if (document.selection) {   myField.focus();   sel = document.selection.createRange();   sel.text = myValue;  }   else if (myField.selectionStart || myField.selectionStart == '0'){   var startPos = myField.selectionStart;   var endPos = myField.selectionEnd;   myField.value = myField.value.substring(0, startPos)+ myValue + myField.value.substring(endPos, myField.value.length);   } else {    myField.value += myValue;   }  } ";
2542
2543                                 script.Append("insertAtCursor(document.activeElement,");
2544                                 script.Append("\"");
2545                                 script.Append(*pString);
2546                                 script.Append("\");");
2547                         }
2548                         AppLog("MainForm::OnTouchLongPressed script is %ls",script.GetPointer());
2549                         String* pStr = __pWebViewer->EvaluateJavascriptN(script);
2550                         delete pStr;
2551                         delete pCount;
2552                 }
2553                 delete pItem;
2554         }
2555         break;
2556         case IDA_GO_BACK:
2557         {
2558                 OnBackClicked();
2559         }
2560         break;
2561         case IDA_GO_FORWARD:
2562         {
2563                 OnForwardClicked();
2564         }
2565         break;
2566         case IDA_REFRESH_BTN_CLICKED:
2567         {
2568                 __isLoadingCompleted = false;
2569                 __isLoadingData = true;
2570                 __progressPercentage = 0;
2571                 __displayUrl = __pFooterUrlField->GetText();
2572
2573                 String url = __pFooterUrlField->GetText();
2574                 AppLog("MainForm::OnUrlSubmitted url is %ls", url.GetPointer());
2575 //              LoadUrl(url);
2576                 if (__pWebViewer != null && __pAddressbar != null)
2577                 {
2578                         LoadUrl(url);
2579                         //__pWebViewer->Reload();
2580                         SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
2581                 }
2582
2583                 //OnUrlSubmitted();
2584                 UpdateProgressBitmap();
2585         }
2586         break;
2587         case IDA_STOP_BTN_CLICKED:
2588         {
2589                 __isLoadingCompleted = false;
2590                 __isLoadingData = false;
2591                 __progressPercentage = 0;
2592                 __pFooterUrlField->HideKeypad();
2593                 __displayUrl = __pFooterUrlField->GetText();
2594
2595                 if (__pWebViewer)
2596                 {
2597                         //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
2598                         SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
2599                         __pWebViewer->StopLoading();
2600                         RequestRedraw(true);
2601                 }
2602
2603                 UpdateProgressBitmap();
2604         }
2605         break;
2606         case IDA_CLEAR_URL:
2607         {
2608                 if (__pFooterUrlField->GetText().IsEmpty() == false)
2609                 {
2610                         //__displayUrl = __pUrlField->GetText();
2611                         __pFooterUrlField->Clear();
2612
2613                 }
2614         }
2615         break;
2616         case IDA_READER_BTN_CLICKED:
2617         {
2618                 ReaderClicked();
2619         }
2620         break;
2621         default:
2622                 break;
2623         }
2624 }
2625
2626 void
2627 MainForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)
2628 {
2629         AppLog("MainForm::OnFormBackRequested entered");
2630         result r = E_FAILURE;
2631         if(__pImageMenu && __pImageMenu->GetShowState() == true)
2632         {
2633                 AppLog("Hiding the menu");
2634                 __pImageMenu->SetShowState(false);
2635         }
2636         if (__pWebViewer && __pWebViewer->CanGoBack())
2637         {
2638                 __pWebViewer->GoBack();
2639         }
2640         else if(__pWindowInfo && __pWindowInfo->isJavascriptInitiated == false)
2641         {
2642                 UiApp* pApp = null;
2643                 pApp = UiApp::GetInstance();
2644                 if (pApp != null)
2645                 {
2646                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
2647                         if (IsFailed(r))
2648                         {
2649                                 AppLogException("MainForm::OnFormBackRequested failed with %s", GetErrorMessage(r));
2650                                 return;
2651                         }
2652                 }
2653         }
2654         else
2655         {
2656                 UiApp* pApp = null;
2657                 WindowInfo* pWindowInfo = null;
2658                 int totalCount = 0;
2659                 SceneManager* pSceneManager = SceneManager::GetInstance();
2660                 if (pSceneManager == null)
2661                 {
2662                         return;
2663                 }
2664                 ArrayList* pAllWindowList = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList();
2665                 if (pAllWindowList == NULL)
2666                 {
2667                         pApp = UiApp::GetInstance();
2668                         if (pApp != null)
2669                         {
2670                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
2671                                 if (IsFailed(r))
2672                                 {
2673                                         AppLogException("MainForm::OnFormBackRequested failed with %s", GetErrorMessage(r));
2674                                         return;
2675                                 }
2676                         }
2677                 }
2678                 if (pAllWindowList != null)
2679                 {
2680                         totalCount = pAllWindowList->GetCount();
2681                 }
2682                 for (int count = 0; count < totalCount; count++)
2683                 {
2684                         pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count));
2685                         if (pWindowInfo == null)
2686                         {
2687                                 pApp = UiApp::GetInstance();
2688                                 if (pApp != null)
2689                                 {
2690                                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
2691                                         if (IsFailed(r))
2692                                         {
2693                                                 AppLogException("MainForm::OnFormBackRequested failed with %s", GetErrorMessage(r));
2694                                                 return;
2695                                         }
2696                                 }
2697                         }
2698                         else
2699                         {
2700                                 if (pWindowInfo && pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID && pWindowInfo->isJavascriptInitiated == true)
2701                                 {
2702                                         r = SceneRegister::DestroyAndUnRegisterScene(pWindowInfo->sceneID);
2703                                         if (IsFailed(r))
2704                                         {
2705                                                 AppLogException("MainForm::OnFormBackRequested failed with %s", GetErrorMessage(r));
2706                                                 return;
2707                                         }
2708                                         r = pAllWindowList->RemoveAt(count, true);
2709                                         __pWindowInfo = null;
2710                                         if (IsFailed(r))
2711                                         {
2712                                                 AppLogException("MainForm::OnFormBackRequested failed with %s", GetErrorMessage(r));
2713                                                 return;
2714                                         }
2715                                         if(count > 0)
2716                                         {
2717                                                 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count - 1));
2718                                         }
2719                                         else
2720                                         {
2721                                                 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1));
2722                                         }
2723                                         if (pWindowInfo == null)
2724                                         {
2725                                                 pApp = UiApp::GetInstance();
2726                                                 if (pApp != null)
2727                                                 {
2728                                                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
2729                                                         return;
2730                                                 }
2731                                         }
2732                                         else
2733                                         {
2734                                                 if(pWindowInfo != null)
2735                                                         r = pSceneManager->GoForward(ForwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_HISTORY_OPTION_ADD_HISTORY,SCENE_DESTROY_OPTION_DESTROY));
2736                                                 if (IsFailed(r))
2737                                                 {
2738                                                         AppLogException("MainForm::OnFormBackRequested failed with %s", GetErrorMessage(r));
2739                                                         return;
2740                                                 }
2741                                         }
2742                                         break;
2743                                 }
2744 //                              else if (pWindowInfo && pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID && pWindowInfo->isJavascriptInitiated == false)
2745 //                              {
2746 //                                      UiApp* pApp = null;
2747 //                                      pApp = UiApp::GetInstance();
2748 //                                      if (pApp != null)
2749 //                                      {
2750 //                                              r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
2751 //                                              if (IsFailed(r))
2752 //                                              {
2753 //                                                      AppLogException("MainForm::OnFormBackRequested failed with %s", GetErrorMessage(r));
2754 //                                                      return;
2755 //                                              }
2756 //                                      }
2757 //                              }
2758                         }
2759                 }
2760         }
2761         AppLog("MainForm::OnFormBackRequested exit");
2762 }
2763
2764 void
2765 MainForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
2766                 const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs)
2767 {
2768
2769         AppLog("MainForm::OnSceneActivatedN called");
2770         String* pSelectedScene = NULL;
2771         Object* pValue = NULL;
2772         String* pUrl = null;
2773         MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &pValue);
2774         pSelectedScene = (String*) pValue;
2775
2776         if (pSelectedScene != null)
2777         {
2778                 delete pSelectedScene;
2779         }
2780         MultipleWindowPresentationModel::GetInstance()->SetValue(SELECTED_SCENE_ID, null);
2781         String* selectedSceneID = new(std::nothrow) String(currentSceneId);
2782         AppLogDebug("current scene id is %ls", currentSceneId.GetPointer());
2783         AppLogDebug("selected scene id is %ls", currentSceneId.GetPointer());
2784
2785         // setting the current scene ID
2786         MultipleWindowPresentationModel::GetInstance()->SetCurrentSceneID(currentSceneId);
2787
2788         MultipleWindowPresentationModel::GetInstance()->SetValue(SELECTED_SCENE_ID, (Object*) selectedSceneID);
2789
2790         if(pArgs != null && pArgs->GetCount() > 0 && pArgs->GetCount() == 2)
2791         {
2792                 __pWindowInfo = dynamic_cast< WindowInfo* >(pArgs->GetAt(0));
2793                 if(__pWindowInfo == null)
2794                         return;
2795                 //              if(__pWindowInfo == null)
2796                 {
2797                         pUrl = dynamic_cast< String* >(pArgs->GetAt(1));
2798                 }
2799         }
2800         else if ( pArgs != null && pArgs->GetCount() == 1)
2801         {
2802                 __pWindowInfo = dynamic_cast< WindowInfo* >(pArgs->GetAt(0));
2803         }
2804
2805         InitFooter();
2806         InitAddressbar();
2807
2808         __pFooterPanel->SetBounds(0, GetClientAreaBounds().height - __pFooterPanel->GetHeight(), GetClientAreaBounds().width, __pFooterPanel->GetHeight());
2809
2810         // hiding the address bar
2811         //      __pAddressbar->SetBounds(__pAddressbar->GetX(), __pAddressbar->GetY() - __pAddressbar->GetHeight(), __pAddressbar->GetWidth(), __pAddressbar->GetHeight());
2812         __pAddressbar->SetShowState(false);
2813 //      if(__pWebViewer != null)
2814 //      {
2815 //              __pWebViewer->Resume();
2816 //      }
2817
2818         if(pUrl != null && pUrl->GetLength() > 0)
2819         {
2820                 LoadUrl(*pUrl);
2821         }
2822         else if(__pWindowInfo != null)
2823         {
2824                 if(__pWindowInfo->pageUrl.GetLength() > 0 &&previousSceneId != IDSCN_BRIGHTNESS && previousSceneId != IDSCN_HISTORY_LIST && previousSceneId != IDSCN_MULTIPLE_WINDOW && previousSceneId != IDSCN_MULTIPLE_WINDOW_GRID && previousSceneId != IDSCN_BOOKMARK_VIEW && previousSceneId != IDSCN_SETTINGS && previousSceneId.Contains(IDSCN_MAIN_VIEW) == false)
2825                 {
2826                         LoadUrl(__pWindowInfo->pageUrl);
2827                 }
2828                 else if(__pWindowInfo->pageUrl.GetLength() > 0 && __pWindowInfo->isAppcontrolTriggered == true)
2829                 {
2830                         LoadUrl(__pWindowInfo->pageUrl);
2831                         __pWindowInfo->isAppcontrolTriggered = false;
2832                 }
2833                 else if (__pWindowInfo->isJavascriptInitiated == true && __pWindowInfo->isFirstLaunch == true)
2834                 {
2835                         __pWindowInfo->isFirstLaunch = false;
2836                         AppLog("Called");
2837                         InitWebControl();
2838                         __pWindowInfo->pCurrentWeb = __pWebViewer;
2839                         if(__pWindowInfo->pageUrl.GetLength() > 0)
2840                                 LoadUrl(__pWindowInfo->pageUrl);
2841                 }
2842         }
2843
2844         String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
2845         AppLog("Homepage Value in Onsceneactivated is %ls",homePage.GetPointer());
2846         if(homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
2847         {
2848                 InitMostVisitedSitesView(GetOrientationStatus());
2849         }
2850         else if (homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
2851         {
2852                 if(__pMostVisitedListView != null)
2853                 {
2854                         __pMostVisitedListView->SetShowState(false);
2855                 }
2856         }
2857
2858         if (__pAddressbar != null && pArgs != null && (previousSceneId == IDSCN_BOOKMARK_VIEW || previousSceneId == IDSCN_HISTORY_LIST))
2859         {
2860                 String* pBookmarkUrl = dynamic_cast< String* >(pArgs->GetAt(0));
2861
2862                 if (pBookmarkUrl == null)
2863                         return;
2864                 AppLogDebug("bookmarkUrl = %ls",pBookmarkUrl->GetPointer());
2865                 //__pAddressbar->SetUrl(*pBookmarkUrl);
2866                 SetUrl(*pBookmarkUrl);
2867
2868                 if (__pWebViewer != null && homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) != 0)
2869                         __pWebViewer->LoadUrl(*pBookmarkUrl);
2870                 delete pBookmarkUrl;
2871         }
2872
2873         bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();
2874         Bitmap* pBitmap = null;
2875         if (isPrivateBrowsing == true)
2876         {
2877                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_ON);
2878
2879                 if (__pWebViewer != null)
2880                 {
2881                         __pWebViewer->SetPrivateBrowsingEnabled(true);
2882                 }
2883
2884                 if (__pAddressbar != null)
2885                 {
2886                         //      __pAddressbar->UpdateFaviconBitmap(true);
2887                 }
2888
2889         }
2890         else
2891         {
2892                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_OFF);
2893
2894                 if (__pWebViewer != null)
2895                 {
2896                         __pWebViewer->SetPrivateBrowsingEnabled(false);
2897                 }
2898
2899                 if (__pAddressbar != null)
2900                 {
2901                         //      __pAddressbar->UpdateFaviconBitmap(false);
2902                 }
2903         }
2904
2905         if (__pOptionMenu != null && __pOptionMenu->GetItemCount() != 9)
2906         {
2907                 __pOptionMenu->SetItemAt(1,CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB"),IDA_PRIVATEON_CLICKED,*pBitmap);
2908         }
2909         else if (__pOptionMenu != null )
2910         {
2911                 __pOptionMenu->SetItemAt(5,CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY_AND_SECURITY_ABB"),IDA_PRIVATEON_CLICKED,*pBitmap);
2912         }
2913
2914         if (pBitmap != null)
2915         {
2916                 delete pBitmap;
2917         }
2918
2919         RelayoutControls(false);
2920         AppLog("ABC: OnSceneActivatedN started exit");
2921
2922 }
2923
2924 void
2925 MainForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
2926                 const Tizen::Ui::Scenes::SceneId& nextSceneId)
2927 {
2928         Canvas* pWebCanvas = null;
2929         if (__pWebViewer != null)
2930         {
2931                 pWebCanvas = __pWebViewer->GetCanvasN();
2932
2933         }
2934         if (pWebCanvas == null)
2935         {
2936                 return;
2937         }
2938         if (__pWindowInfo != null)
2939         {
2940                 if (__pWindowInfo->pWebCanvasBitmap != null)
2941                 {
2942                         delete __pWindowInfo->pWebCanvasBitmap;
2943                 }
2944                 __pWindowInfo->pWebCanvasBitmap = new(std::nothrow) Bitmap();
2945                 result r = __pWindowInfo->pWebCanvasBitmap->Construct(*pWebCanvas,Rectangle(0,0,pWebCanvas->GetBounds().width,pWebCanvas->GetBounds().height));
2946                 AppLog("Bitmap Construction result %s",GetErrorMessage(r));
2947         }
2948         Bitmap* pBitmap = GetCapturedBitmapN();
2949         AppLog("Coming here");
2950         Canvas* pCanvas = new(std::nothrow) Canvas();
2951         pCanvas->Construct(GetClientAreaBounds());
2952         if(pBitmap != null)
2953         {
2954                 pCanvas->DrawBitmap(Point(0,0),*pBitmap);
2955                 delete pBitmap;
2956         }
2957         if(__pWebViewer != null && __pWindowInfo != null && __pWindowInfo->pWebCanvasBitmap != null)
2958                 pCanvas->DrawBitmap(__pWebViewer->GetPosition(),*__pWindowInfo->pWebCanvasBitmap);
2959
2960         WindowInfo::pFormCanvasBitmap = new(std::nothrow) Bitmap();
2961         if (__pFooterPanel)
2962         {
2963                 WindowInfo::pFormCanvasBitmap->Construct(*pCanvas,Rectangle(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height - __pFooterPanel->GetHeight()));
2964         }
2965         delete pCanvas;
2966         delete pWebCanvas;
2967         if(__pAddressbar)
2968                 __pAddressbar->SetShowState(false);
2969         AppLog("Coming here");
2970 }
2971
2972 bool
2973 MainForm::OnHttpAuthenticationRequestedN(const Tizen::Base::String& host,
2974                 const Tizen::Base::String& realm,
2975                 const Tizen::Web::Controls::AuthenticationChallenge& authentication)
2976 {
2977         return false;
2978 }
2979
2980 void
2981 MainForm::OnHttpAuthenticationCanceled(void)
2982 {
2983 }
2984
2985 void
2986 MainForm::OnLoadingStarted(void)
2987 {
2988         AppLogDebug("MainForm::OnLoadingStarted entered");
2989         __isLoaded = true;
2990         if(__pAddressbar == NULL || __pWebViewer == null)
2991         {
2992                 return;
2993         }
2994
2995         // this is added in case if menu is opened and user load the page
2996         if(__pOptionMenu != null && __pOptionMenu->GetShowState() == true)
2997         {
2998                 __pOptionMenu->SetShowState(false);
2999                 __pOptionMenu->Invalidate(true);
3000         }
3001
3002
3003
3004         if(__pImageMenu != null && __pImageMenu->GetShowState() == true)
3005         {
3006                 __pImageMenu->SetShowState(false);
3007                 __pImageMenu->Invalidate(true);
3008         }
3009         String url = __pWebViewer->GetUrl();
3010         if(url.Contains(IDS_TIZEN_SERVICE))
3011         {
3012                 String appId;
3013                 String delim(L":;,");
3014
3015                 // Creates a StringTokenizer instance
3016                 StringTokenizer strTok(url, delim);
3017
3018                 int count = strTok.GetTokenCount();     // count == 4
3019
3020                 HashMap *pMap = new HashMap();
3021                 pMap->Construct();
3022                 String token;
3023                 String key;
3024                 String value;
3025                 while (strTok.HasMoreTokens())
3026                 {
3027                         AppLog("Token: %ls", token.GetPointer());
3028                         strTok.GetNextToken(token);         // Tizen, StringTokenizer, Sample, code
3029                         if(token.Contains(IDS_APPID))
3030                         {
3031                                 token.SubString(6, appId);
3032                                 AppLog("AppID:%ls", appId.GetPointer());
3033                         }
3034                         else if(token.Contains(IDS_KEY))
3035                         {
3036                                 token.SubString(4, key);
3037                                 AppLog("key:%ls", key.GetPointer());
3038                         }
3039                         else if(token.Contains(IDS_VALUE))
3040                         {
3041                                 token.SubString(6, value);
3042                                 AppLog("value:%ls", value.GetPointer());
3043                         }
3044                 }
3045                 pMap->Add(key, value);
3046
3047                 if(appId != "")
3048                 {
3049                         AppControl *pAppControl = null;
3050                         String operationId = L"http://tizen.org/appcontrol/operation/main";
3051                         pAppControl = dynamic_cast<AppControl*>(AppManager::FindAppControlN(appId, operationId));
3052                         if(pAppControl)
3053                         {
3054                                 AppLog("Starting AppControl");
3055                                 result r = pAppControl->Start(null, null, pMap, null);
3056                                 AppLog("Result of Start %s", GetErrorMessage(r));
3057                         }
3058                         else
3059                         {
3060                                 AppLogException("AppControl not found");
3061                         }
3062                         return;
3063                 }
3064         }
3065         if ( __pAddressbar != null && __pAddressbar->GetShowState() == true)
3066         {
3067                 __pAddressbar->SetShowState(false);
3068                 AddressBarCancelledClicked(*__pAddressbar);
3069                 __pAddressbar->Invalidate(true);
3070         }
3071         Bitmap* pBitmap = FaviconManager::GetInstance()->GetDefaultFaviconN();
3072         if(pBitmap != null)
3073         {
3074                 __pAddressbar->SetFaviconBitmap(*pBitmap);
3075         }
3076         delete pBitmap;
3077         if (__adressPanelPosition.y < (0 - __pAddressbar->GetHeight() + 12))
3078         {
3079                 // updating the address bar position with respect to web control
3080                 __adressPanelPosition.y = 0 - __pAddressbar->GetHeight() + 12; //-12 is for the progress label
3081                 __distanceMoved = 0;
3082                 MoveUiControls();
3083         }
3084
3085         //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
3086         SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
3087         if (__pWebViewer != null)
3088         {
3089                 AppLog("MainForm::OnLoadingStarted __pWebViewer->GetUrl() %ls",__pWebViewer->GetUrl().GetPointer());
3090                 //__pAddressbar->SetUrl(__pWebViewer->GetUrl());
3091                 SetUrl(__pWebViewer->GetUrl());
3092                 if (__pWindowInfo != NULL)
3093                 {
3094                         // resetting the page title to blank, it will be received in OnPageTitleReceived()
3095                         __pWindowInfo->pageTitle = L"";
3096                         __pWindowInfo->pageUrl = __pWebViewer->GetUrl();
3097                 }
3098                 __pAddressbar->Invalidate(true);
3099         }
3100
3101 }
3102
3103 void
3104 MainForm::OnLoadingCanceled(void)
3105 {
3106
3107 }
3108
3109 void
3110 MainForm::OnKeypadWillOpen(Tizen::Ui::Control& source)
3111 {
3112         AppLog("XYZ::MainForm::OnKeypadWillOpen");
3113
3114 }
3115
3116 void
3117 MainForm::OnKeypadOpened(Tizen::Ui::Control& source)
3118 {
3119         AppLog("XYZ::MainForm::OnKeypadOpened");
3120         __isKeypadOpened = true;
3121         __pFooterPanel->SetShowState(false);
3122         RelayoutControls(false);
3123 }
3124
3125 void
3126 MainForm::OnKeypadClosed(Tizen::Ui::Control& source)
3127 {
3128         AppLog("XYZ::MainForm::OnKeypadClosed");
3129         __isKeypadOpened = false;
3130         __pFooterPanel->SetShowState(true);
3131         RelayoutControls(true);
3132 }
3133
3134 void
3135 MainForm::OnKeypadBoundsChanged(Tizen::Ui::Control &source)
3136 {
3137         AppLog("XYZ::KeypadBoundsChanged");
3138         RelayoutControls(false);
3139 }
3140
3141 void
3142 MainForm::OnLoadingErrorOccurred(LoadingErrorType error,
3143                 const Tizen::Base::String& reason)
3144 {
3145         AppLogDebug("Error: %d, %ls", error, reason.GetPointer());
3146 }
3147
3148 void
3149 MainForm::OnLoadingCompleted(void)
3150 {
3151         AppLog("MainForm::OnLoadingCompleted start");
3152         DateTime date;
3153         result r = E_SUCCESS;
3154
3155         if (__pWebViewer == null)
3156         {
3157                 return;
3158         }
3159
3160         if (__pAddressbar == null)
3161         {
3162                 return;
3163         }
3164
3165         if(__pImageMenu && __pImageMenu->GetShowState())
3166         {
3167                 __pImageMenu->SetShowState(false);
3168                 __pImageMenu->Invalidate(true);
3169         }
3170
3171         if (__pWebViewer->CanGoForward())
3172         {
3173                 //__pAddressbar->SetForwardButtonEnabled(true);
3174                 SetForwardButtonEnabled(true);
3175         }
3176         else
3177         {
3178                 //__pAddressbar->SetForwardButtonEnabled(false);
3179                 SetForwardButtonEnabled(false);
3180         }
3181
3182         /*if (__pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_EDIT)
3183         {
3184                 __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
3185
3186                 //__pAddressbar->UpdateProgress(0);
3187                 UpdateProgress(0);
3188         }*/
3189
3190         if(GetAddressbarMode() != ADDRESSBAR_MODE_EDIT)
3191         {
3192                 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
3193                 UpdateProgress(0);
3194         }
3195
3196         AppLog("PrivateBrowsing %d",__pWebViewer->IsPrivateBrowsingEnabled());
3197         bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();
3198         if (isPrivateBrowsing == false)
3199         {
3200                 if(__pHistory != null)
3201                 {
3202                         delete __pHistory;
3203                         __pHistory = null;
3204                 }
3205
3206                 __pHistory = new(std::nothrow) History;
3207                 HistoryPresentationModel::GetCurrentDateTime(date);
3208                 if (__pWindowInfo)
3209                 {
3210                         __pHistory->SetHistoryTitle(__pWindowInfo->pageTitle);
3211                         AppLogDebug("MainForm::OnLoadingCompleted pagetitle = %ls", __pWindowInfo->pageTitle.GetPointer());
3212
3213                         __pHistory->SetHistoryUrl(__pWindowInfo->pageUrl);
3214                         AppLogDebug("MainForm::OnLoadingCompleted pageUrl = %ls", __pWindowInfo->pageUrl.GetPointer());
3215                 }
3216                 __pHistory->SetVisitedTime(date);
3217
3218                 if (__pWebViewer != null)
3219                 {
3220                         AppLog("MainForm::OnLoadingCompleted setting the fav icon 0");
3221
3222                         Bitmap* pTempBitmap = __pWebViewer->GetFaviconN();
3223                         if (pTempBitmap != null)
3224                         {
3225                                 AppLog("MainForm::OnLoadingCompleted setting the fav icon 1");
3226                                 __pHistory->SetFavIconBitmap(*pTempBitmap);
3227                         }
3228
3229                         AppLog("MainForm::OnLoadingCompleted setting the fav icon 2");
3230                 }
3231
3232                 Canvas* pCanvas = __pWebViewer->GetCanvasN();
3233                 Bitmap* pBitmap = new(std::nothrow) Bitmap();
3234                 if ( pCanvas != null &&  pCanvas != null && pBitmap != null)
3235                 {
3236                         pBitmap->Construct(*pCanvas, pCanvas->GetBounds());
3237                         pBitmap->Scale(Dimension(pBitmap->GetWidth()/4, pBitmap->GetHeight()/4));
3238                         __pHistory->SetThumbnail(pBitmap);
3239                 }
3240                 Bitmap *pFavIcon = __pWebViewer->GetFaviconN();
3241                 if (pFavIcon)
3242                 {
3243                         __pHistory->SetFavIconBitmap(*pFavIcon);
3244                         delete pFavIcon;
3245                 }
3246
3247                 HistoryPresentationModel::GetInstance()->SaveTempHistory(*__pHistory);
3248                 //delete pHistory;
3249         }
3250         else
3251         {
3252                 return;
3253         }
3254 //      if (__pWindowInfo && __pWindowInfo->faviconUrl == "")
3255         {
3256                 // temperary fixed (webpage can be not loaded)
3257                 UpdateFavicon();
3258         }
3259
3260         bool isReaderEnabled = SettingPresentationModel::GetInstance()->IsRunReaderEnabled();
3261         if (isReaderEnabled == true)
3262         {
3263                 if (__pReaderData)
3264                 {
3265                         delete __pReaderData;
3266                         __pReaderData = null;
3267                 }
3268                 String filePath = Tizen::App::UiApp::GetInstance()->GetAppRootPath();
3269                 filePath.Append(L"data/reader.js");
3270                 File file;
3271                 char buffer[10];
3272                 char buffer2[5];
3273                 int i;
3274                 int readCnt;
3275                 result r = E_SUCCESS;
3276                 FileAttributes attr;
3277
3278                 File::GetAttributes(filePath,attr);
3279                 // Creates file
3280                 r = file.Construct(filePath, L"r+");
3281                 if (IsFailed(r))
3282                 {
3283                         AppLogDebug("File construct failed with %s", GetErrorMessage(r));
3284                         return;
3285                 }
3286                 char* pScript = new(std::nothrow) char[attr.GetFileSize()+1];
3287                 if(pScript == null)
3288                 {
3289                         AppLogDebug("Memory allocation for file failed %s", GetErrorMessage(r));
3290                         return;
3291                 }
3292 //              file.Read(pScript,attr.GetFileSize());
3293 //
3294 //              AppLogDebug("scipt length %d",strlen(pScript));
3295                 String strScript = L"";
3296 //              strScript.Append(pScript);
3297 //              for(int i=0; i<25; i++)
3298                 {
3299                         file.Read(pScript,attr.GetFileSize());
3300 //                      AppLog("xyzz tell %d",file.Tell());
3301 //                      r = strScript.Append(pScript);
3302 //                      AppLog("xyzz append result %s",GetErrorMessage(r));
3303 //                      AppLog("xyzz strScript length %d",strScript.GetLength());
3304                 }
3305 //              AppLog("xyzz final strScript length %d",strScript.GetLength());
3306
3307                 __pReaderData = __pWebViewer->EvaluateJavascriptN(pScript);
3308                 if (__pReaderData == null)
3309                 {
3310                         AppLog("MainScene::data is null Error :%s",GetErrorMessage(GetLastResult()));
3311                         __pReaderData = new String(L"<meta name=\"viewport\" content=\"width=0, initial-scale=1.0, maximum-scale=2.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi\">      <h1>Chinese PM Li Keqiang vows to open up markets to India</h1><div><span class=\"arttle\"><h1>Chinese PM Li Keqiang vows to open up markets to India</h1></span></div>");
3312 //                      return;
3313                 }
3314                 AppLogDebug("evaluateJavascript result %s , __pReaderData %ls",GetErrorMessage(GetLastResult()),__pReaderData->GetPointer());
3315                 if (__pReaderData->CompareTo(L"undefined") != 0 && __pReaderData->CompareTo(L"") != 0)
3316                 {
3317                         //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_READER);
3318                         SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_READER);
3319                 }
3320                 delete[] pScript;
3321         }
3322
3323
3324         AppLog("MainForm::OnLoadingCompleted done");
3325 }
3326
3327 void
3328 MainForm::OnEstimatedProgress(int progress)
3329 {
3330         AppLogDebug("MainForm::OnEstimatedProgress entered %d",progress);
3331
3332         if (progress < DEFAULT_PROGRESS_PERCENTAGE)
3333                 progress = DEFAULT_PROGRESS_PERCENTAGE;
3334         //if(__pAddressbar)
3335         //      __pAddressbar->UpdateProgress(progress);
3336         UpdateProgress(progress);
3337 }
3338
3339 void MainForm::OnFaviconReceived(const Tizen::Graphics::Bitmap& favicon)
3340 {
3341         AppLog("MainForm::OnFaviconReceived");
3342         if (__pWebViewer != null && __pHistory != null && __pWindowInfo != null && (__pWindowInfo->pageUrl.CompareTo(__pHistory->GetHistoryUrl()) == 0))
3343         {
3344                 Bitmap* favIcon = __pWebViewer->GetFaviconN();
3345                 if(favIcon != null)
3346                 {
3347                         HistoryPresentationModel::GetInstance()->UpdateHistoryFavIcon(*__pHistory, *favIcon);
3348                         delete favIcon;
3349                 }
3350         }
3351 }
3352
3353 void
3354 MainForm::OnUrlValueChanged(Addressbar&)
3355 {
3356         Invalidate(true);
3357 }
3358
3359 void
3360 MainForm::OnUrlSubmitted(Addressbar& addBar)
3361 {
3362         AppLog("MainForm::OnUrlSubmitted");
3363         String url = addBar.GetUrl();
3364         AppLog("MainForm::OnUrlSubmitted url is %ls", url.GetPointer());
3365
3366         if(__pFooterUrlField)
3367                 __pFooterUrlField->SetCursorPosition(__pFooterUrlField->GetTextLength());
3368         AddressBarCancelledClicked(*__pAddressbar);
3369         LoadUrl(url);
3370 }
3371
3372 void
3373 MainForm::LoadUrl(String& url)
3374 {
3375         url.Trim();
3376         String encodedUrl;
3377 //      UrlEncoder::Encode(url, L"UTF-8", encodedUrl);
3378         AppLogDebug("MainForm::LoadUrl enter");
3379
3380         if (__pWebViewer != null)
3381         {
3382                 __pWebViewer->SetShowState(true);
3383                 __pWebViewer->Invalidate(true);
3384         }
3385
3386         if (url.CompareTo(L"") == 0)
3387         {
3388                 return;
3389         }
3390         if(__pFooterPanel != null)
3391         {
3392                 __pFooterPanel->SetShowState(true);
3393                 __pFooterPanel->Invalidate(true);
3394         }
3395         InitWebControl();
3396
3397         bool ret = false;
3398         bool flag = false;
3399
3400         String firstPattern(L"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");
3401         String secondPattern(L"^[A-Za-z0-9\.\+-:#@%/;$~?]+\\.[A-Za-z0-9!\+-=:#@%/;$~()_?\\\.&]{2,}$");   // URL of type  abc.com (i.e without protocol in front of it)
3402
3403         RegularExpression firstRegex;
3404         RegularExpression secondRegex;
3405
3406         firstRegex.Construct(firstPattern, REGEX_CASELESS);
3407         secondRegex.Construct(secondPattern, REGEX_CASELESS);
3408
3409         // Match
3410         ret = firstRegex.Match(url, false); // This returns true value
3411         flag = secondRegex.Match(url, false);  // Checks whether URL typed is of type  abc.com (i.e without protocol in front of it)
3412
3413         if (ret == true && __pWebViewer != null)
3414         {
3415                 SetUrl(url);
3416                 __pWebViewer->LoadUrl(url);
3417         }
3418         else if(__pWebViewer != null)
3419         {
3420                 String tempUrl = L"http://";
3421                 tempUrl.Append(url);
3422
3423                 if (flag == true)
3424                 {
3425                         __pWebViewer->LoadUrl(tempUrl);
3426                 }
3427                 else
3428                 {
3429                                 UrlEncoder::Encode(url, L"UTF-8", encodedUrl);
3430                         __pWebViewer->LoadUrl(SettingPresentationModel::GetInstance()->GetSearchUrl(encodedUrl));
3431                 }
3432         }
3433         if (__pAddressbar != null)
3434         {
3435                 //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
3436                 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
3437         }
3438
3439         AppLogDebug("MainForm::LoadUrl exit");
3440
3441         return;
3442
3443 }
3444
3445 void
3446 MainForm::OnFocusGained(const Tizen::Ui::Control& source)
3447 {
3448         AppLog("MainForm::OnFocusGained");
3449         if(__pFooterPanel)
3450         {
3451                 __pFooterPanel->SetShowState(false);
3452         }
3453
3454         if(__pAddressbar)
3455         {
3456                 __pAddressbar->SetShowState(true);
3457                 __pAddressbar->SetAddressbarURLFocus();
3458         }
3459         if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
3460         {
3461                 __currentSearchStr = L"";
3462                 __currentWordIndex = 0;
3463                 __maxOccurrances = 0;
3464
3465                 if (__pFindWordPanelLeftToRight && __pFindWordPanelLeftToRight->GetShowState() == true)
3466                 {
3467                         __pFindWordEditField->SetText(L"");
3468                         __pFindWordEditField->HideKeypad();
3469                         __pFindWordControl->SetShowState(false);
3470                         __pFindWordCountLabel->SetText(L"0/0");
3471                 }
3472                 else if(__pFindWordPanelRightToLeft && __pFindWordPanelRightToLeft->GetShowState() == true)
3473                 {
3474                         __pFindWordEditFieldRightToLeft->SetText(L"");
3475                         __pFindWordEditFieldRightToLeft->HideKeypad();
3476                         __pFindWordControl->SetShowState(false);
3477                         __pFindWordCountLabelRightToLeft->SetText(L"0/0");
3478                 }
3479
3480                 __pFindWordNext->SetEnabled(false);
3481                 __pFindWordPrev->SetEnabled(false);
3482
3483                 __pWebViewer->SearchTextAllAsync(L"",true);
3484                 __pFindWordControl->SetShowState(false);
3485         }
3486         RelayoutControls(false);
3487 }
3488
3489 void
3490 MainForm::OnFocusLost(const Tizen::Ui::Control& source)
3491 {
3492         AppLog("MainForm::OnFocusLost called");
3493 }
3494
3495 void
3496 MainForm::OnStopClicked(Addressbar& addBar)
3497 {
3498         AppLogDebug("MainForm::OnStopClicked called");
3499         if (__pWebViewer)
3500         {
3501                 //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
3502                 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
3503                 __pWebViewer->StopLoading();
3504                 RequestRedraw(true);
3505         }
3506 }
3507
3508 void
3509 MainForm::OnBackClicked(/*const Addressbar& addBar*/)
3510 {
3511         //      AppLog("MainForm::OnBackClicked");
3512         result r = E_FAILURE;
3513         if(__pImageMenu && __pImageMenu->GetShowState() == true)
3514         {
3515                 AppLog("Hiding the menu");
3516                 __pImageMenu->SetShowState(false);
3517         }
3518
3519         if (__pWebViewer && __pWebViewer->CanGoBack())
3520         {
3521                 __pWebViewer->GoBack();
3522         }
3523         else if(__pWindowInfo && __pWindowInfo->isJavascriptInitiated == false)
3524         {
3525                 UiApp* pApp = null;
3526                 pApp = UiApp::GetInstance();
3527                 if (pApp != null)
3528                 {
3529                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3530                         if (IsFailed(r))
3531                         {
3532                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3533                                 return;
3534                         }
3535                 }
3536         }
3537         else
3538         {
3539                 UiApp* pApp = null;
3540                 WindowInfo* pWindowInfo = null;
3541                 int totalCount = 0;
3542                 SceneManager* pSceneManager = SceneManager::GetInstance();
3543                 if (pSceneManager == null)
3544                 {
3545                         return;
3546                 }
3547                 ArrayList* pAllWindowList = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList();
3548                 if (pAllWindowList == NULL)
3549                 {
3550                         pApp = UiApp::GetInstance();
3551                         if (pApp != null)
3552                         {
3553                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3554                                 if (IsFailed(r))
3555                                 {
3556                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3557                                         return;
3558                                 }
3559                         }
3560                 }
3561                 if (pAllWindowList != null)
3562                 {
3563                         totalCount = pAllWindowList->GetCount();
3564                 }
3565                 for (int count = 0; count < totalCount; count++)
3566                 {
3567                         pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count));
3568                         if (pWindowInfo == null)
3569                         {
3570                                 pApp = UiApp::GetInstance();
3571                                 if (pApp != null)
3572                                 {
3573                                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3574                                         if (IsFailed(r))
3575                                         {
3576                                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3577                                                 return;
3578                                         }
3579                                 }
3580                         }
3581                         if (pSceneManager != null && pWindowInfo != null && pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID && pWindowInfo->isJavascriptInitiated == true)
3582                         {
3583                                 r = SceneRegister::DestroyAndUnRegisterScene(pWindowInfo->sceneID);
3584                                 if (IsFailed(r))
3585                                 {
3586                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3587                                         return;
3588                                 }
3589                                 r = pAllWindowList->RemoveAt(count, true);
3590                                 __pWindowInfo = null;
3591                                 if (IsFailed(r))
3592                                 {
3593                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3594                                         return;
3595                                 }
3596                                 if(count > 0)
3597                                 {
3598                                         pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count - 1));
3599                                 }
3600                                 else if(pAllWindowList->GetCount() > 0)
3601                                 {
3602                                         pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1));
3603                                 }
3604                                 else
3605                                 {
3606                                         pApp = UiApp::GetInstance();
3607                                         if (pApp != null)
3608                                         {
3609                                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3610                                                 return;
3611                                         }
3612
3613                                 }
3614                                 if (pWindowInfo == null)
3615                                 {
3616                                         pApp = UiApp::GetInstance();
3617                                         if (pApp != null)
3618                                         {
3619                                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3620                                                 return;
3621                                         }
3622                                 }
3623                                 else
3624                                 {
3625                                         r = pSceneManager->GoForward(ForwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_HISTORY_OPTION_ADD_HISTORY,SCENE_DESTROY_OPTION_DESTROY));
3626 //                                      r = pSceneManager->GoBackward(BackwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE));
3627                                         if (IsFailed(r))
3628                                         {
3629                                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3630                                                 return;
3631                                         }
3632                                 }
3633                                 break;
3634                         }
3635
3636                 }
3637
3638         }
3639
3640 }
3641
3642 void
3643 MainForm::OnForwardClicked(/*const Addressbar& addBar*/)
3644 {
3645         AppLog("MainForm::OnForwardClicked");
3646         if (__pWebViewer == null)
3647                 return;
3648
3649         if (__pWebViewer->CanGoForward())
3650         {
3651                 __pWebViewer->GoForward();
3652         }
3653 }
3654
3655 void
3656 MainForm::OnAddressBarFocusGained(const Addressbar& addBar)
3657 {
3658         AppLog("XYZ::MainForm::OnAddressBarFocusGained");
3659         if(__pFooterPanel != null)
3660         {
3661                 __pFooterPanel->SetShowState(false);
3662         }
3663
3664         if (__pAddressbar != null && __pAddressbar->GetShowState() == false)
3665         {
3666                 __pAddressbar->SetShowState(true);
3667                 __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));
3668         }
3669
3670         RelayoutControls(false);
3671 }
3672
3673 void
3674 MainForm::OnAddressBarFocusLost(const Addressbar& addBar, bool addressbarKeyPadState)
3675 {
3676         AppLog("XYZ::MainForm::OnAddressBarFocusLost");
3677
3678         int Height = GetClientAreaBounds().height;
3679         AppLog("MainForm::OnAddressBarFocusLost height is %d",Height);
3680
3681         RelayoutControls(false);
3682 }
3683
3684 void
3685 MainForm::OnAddressCancelledClicked(const Addressbar& addBar)
3686 {
3687         AddressBarCancelledClicked(addBar);
3688 }
3689
3690 void
3691 MainForm::OnAddressBarModeChanged(/*const Addressbar& addBar*/)
3692 {
3693         __prevAddressBarMode = __curAddressBarMode;
3694
3695         if (__pAddressbar != null)
3696         {
3697                 __curAddressBarMode = GetAddressbarMode();
3698         }
3699
3700         if (__curAddressBarMode == ADDRESSBAR_MODE_EDIT)
3701         {
3702                 __adressPanelPosition.y = 0;
3703                 if (__pAddressbar != null)
3704                 {
3705                         __webControlPosition.y = __pAddressbar->GetHeight() - 12;
3706                         __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));
3707                         __pAddressbar->Invalidate(true);
3708                 }
3709                 if (__pWebViewer != null)
3710                 {
3711                         __pWebViewer->StopLoading();
3712                 }
3713         }
3714         else if(__curAddressBarMode == ADDRESSBAR_MODE_LOADING)
3715         {
3716                 __adressPanelPosition.y = 0;
3717                 if (__pAddressbar != null)
3718                 {
3719                         __webControlPosition.y = 0;
3720                         __pAddressbar->SetBounds(Rectangle(0, __pAddressbar->GetY() - __pAddressbar->GetHeight(), GetClientAreaBounds().width, __pAddressbar->GetHeight()));
3721                         __pAddressbar->Invalidate(true);
3722                 }
3723         }
3724 }
3725
3726 void
3727 MainForm::OnClipboardClosed(const Addressbar& addBar)
3728 {
3729         AppLog("XYZ::MainForm::OnClipboardClosed");
3730         if (__pFooterPanel && __pAddressbar->GetShowState() == false)
3731         {
3732                 AppLog("akjshdasd 3");
3733                 __pFooterPanel->SetShowState(true);
3734         }
3735         __isKeypadOpened = false;
3736         RelayoutControls(false);
3737 }
3738
3739 void
3740 MainForm::OnAddressBarKeypadClosed(const Addressbar& addBar, bool footerState)
3741 {
3742         AppLog("XYZ::MainForm::OnAddressBarKeypadClosed");
3743         if (__pFooterPanel && __pAddressbar->GetShowState() == false)
3744         {
3745                 AppLog("akjshdasd 3");
3746                 __pFooterPanel->SetShowState(true);
3747         }
3748         __isKeypadOpened = false;
3749         if(__pNotification && __pNotification->GetShowState())
3750         {
3751                 __pNotification->SetPosition(0,GetClientAreaBounds().height - __pNotification->GetHeight());
3752         }
3753
3754         RelayoutControls(false,footerState);
3755 }
3756
3757 void
3758 MainForm::OnAddressBarKeypadOpened(const Addressbar& addBar)
3759 {
3760         AppLog("XYZ::MainForm::OnAddressBarKeypadOpened");
3761         __isKeypadOpened = true;
3762         if(__pNotification && __pNotification->GetShowState())
3763         {
3764                 __pNotification->SetPosition(0,GetClientAreaBounds().height - __pNotification->GetHeight());
3765         }
3766         RelayoutControls(false);
3767 }
3768
3769 void
3770 MainForm::OnAddressBarKeypadWillOpen(const Addressbar& addBar)
3771 {
3772         __isKeypadOpened = true;
3773         __pFooterPanel->SetShowState(false);
3774 }
3775
3776 void
3777 MainForm::OnAddressBarKeypadBoundsChanged(const Addressbar& addBar)
3778 {
3779         AppLog("XYZ::MainForm::OnAddressBarKeypadBoundsChanged");
3780         RelayoutControls(false);
3781 }
3782
3783 void
3784 MainForm::OnPageTitleReceived(const Tizen::Base::String& title)
3785 {
3786         AppLog("MainForm::OnPageTitleReceived %ls",title.GetPointer());
3787         if (__pWindowInfo)
3788         {
3789                 __pWindowInfo->pageTitle = title;
3790                 if (__pWebViewer != null)
3791                 {
3792                         __pWindowInfo->pageUrl = __pWebViewer->GetUrl();
3793                         AppLog("MainForm::OnPageTitleReceived url %ls",__pWindowInfo->pageUrl.GetPointer());
3794                 }
3795         }
3796         if (__pAddressbar != null && __pWebViewer != null)
3797         {
3798                 SetUrl(__pWebViewer->GetUrl());
3799                 __pAddressbar->Invalidate(true);
3800         }
3801 }
3802
3803 void
3804 MainForm::UpdateFavicon(void)
3805 {
3806         bool urlImageType = false;
3807         String *tempPath = null;
3808         if(__pWebViewer)
3809                 tempPath = __pWebViewer->EvaluateJavascriptN(L"var getFavicon = function() {      var favicon = '/favicon.ico';      var nodeList = document.getElementsByTagName('link');    if(nodeList) {  for (var i = 0; i < nodeList.length; i++)      {          if ((nodeList[i].getAttribute('rel') == 'icon')||(nodeList[i].getAttribute('rel') == 'shortcut icon'))         {              favicon = nodeList[i].getAttribute('href');          }      } }     return favicon;          };  getFavicon();");
3810         Bitmap* pBitmap = null;
3811
3812         if (tempPath && tempPath->GetLength() > 0 && tempPath->CompareTo(L"undefined") != 0)
3813         {
3814                 if (__pWindowInfo != null)
3815                 {
3816                         Uri url;
3817                         url.SetUri(*tempPath);
3818                         if (url.GetHost().GetLength() == 0)
3819                         {
3820                                 Uri webUrl;
3821                                 if(__pWebViewer)
3822                                         webUrl.SetUri(__pWebViewer->GetUrl());
3823                                 result r = url.SetHost(webUrl.GetHost());
3824                                 if(IsFailed(r))
3825                                 {
3826                                         delete tempPath;
3827                                         return;
3828                                 }
3829                         }
3830                         if (url.GetScheme().GetLength() == 0)
3831                         {
3832                                 Uri webUrl;
3833                                 if(__pWebViewer)
3834                                         webUrl.SetUri(__pWebViewer->GetUrl());
3835                                 url.SetScheme(webUrl.GetScheme());
3836                         }
3837                         __pWindowInfo->faviconUrl = url.ToString();
3838
3839                         pBitmap = __pWebViewer->GetFaviconN();
3840
3841                         if (pBitmap != null)
3842                         {
3843                                 if (__pWindowInfo->pFavicon != NULL)
3844                                 {
3845                                         __pWindowInfo->pFavicon = null;
3846                                 }
3847                                 __pWindowInfo->pFavicon = new(std::nothrow) Bitmap();
3848                                 __pWindowInfo->pFavicon->Construct(*pBitmap,Rectangle(0,0,pBitmap->GetWidth(),pBitmap->GetHeight()));
3849
3850                                 __pAddressbar->SetFaviconBitmap(*__pWindowInfo->pFavicon);
3851
3852                                 FaviconManager::GetInstance()->SaveFavicon(*__pWindowInfo->pFavicon, __pWindowInfo->faviconUrl);
3853                         }
3854                         else if(__pWindowInfo->pFavicon != null)
3855                         {
3856                                 __pAddressbar->SetFaviconBitmap(*__pWindowInfo->pFavicon);
3857                         }
3858                         else
3859                         {
3860                                 Bitmap *pDefaultBmp = FaviconManager::GetInstance()->GetDefaultFaviconN();
3861                                 if(pDefaultBmp != null)
3862                                 {
3863                                         __pAddressbar->SetFaviconBitmap(*pDefaultBmp);
3864                                 }
3865                         }
3866                         if(pBitmap)
3867                         {
3868                                 delete pBitmap;
3869                                 pBitmap = null;
3870                         }
3871                 }
3872                 delete tempPath;
3873         }
3874         else
3875         {
3876                 // do not remove
3877                 if(tempPath != null)
3878                 {
3879                         delete tempPath;
3880                 }
3881                 AppLogDebug("Error occured: %s", GetErrorMessage(GetLastResult()));
3882         }
3883
3884 }
3885
3886 bool
3887 MainForm::OnLoadingRequested(const Tizen::Base::String& url,
3888                 Tizen::Web::Controls::WebNavigationType type)
3889 {
3890         AppLog("urlk %ls",url.GetPointer());
3891         // when load new page if find word panel is open its show state is false
3892         if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
3893         {
3894                 __currentSearchStr = L"";
3895                 __currentWordIndex = 0;
3896                 __maxOccurrances = 0;
3897                 __pFindWordEditField->SetText(L"");
3898                 __pFindWordNext->SetEnabled(false);
3899                 __pFindWordPrev->SetEnabled(false);
3900                 __pFindWordCountLabel->SetText(L"0/0");
3901                 __pFindWordControl->SetShowState(false);
3902                 __pFindWordEditField->HideKeypad();
3903                 RelayoutControls(false);
3904         }
3905
3906         __pFooterPanel->Invalidate(true);
3907
3908         Uri uriInfo;
3909         uriInfo.SetUri(url);
3910
3911         if(url.Contains(IDS_TIZEN_SERVICE))
3912         {
3913                 String appId;
3914                 String delim(L":;,");
3915
3916                 // Creates a StringTokenizer instance
3917                 StringTokenizer strTok(url, delim);
3918
3919                 int count = strTok.GetTokenCount();     // count == 4
3920
3921                 HashMap *pMap = new HashMap();
3922                 pMap->Construct();
3923
3924                 String token;
3925                 String key;
3926                 String value;
3927                 while (strTok.HasMoreTokens())
3928                 {
3929                         AppLog("Token: %ls", token.GetPointer());
3930                         strTok.GetNextToken(token);         // Tizen, StringTokenizer, Sample, code
3931                         if(token.Contains(IDS_APPID))
3932                         {
3933                                 token.SubString(6, appId);
3934                                 AppLog("AppID:%ls", appId.GetPointer());
3935                         }
3936                         else if(token.Contains(IDS_KEY))
3937                         {
3938                                 token.SubString(4, key);
3939                                 AppLog("key:%ls", key.GetPointer());
3940                         }
3941                         else if(token.Contains(IDS_VALUE))
3942                         {
3943                                 token.SubString(6, value);
3944                                 AppLog("value:%ls", value.GetPointer());
3945                         }
3946                 }
3947                 pMap->Add(key, value);
3948
3949                 if(appId != "")
3950                 {
3951                         AppControl *pAppControl = null;
3952                         String operationId = L"http://tizen.org/appcontrol/operation/main";
3953                         pAppControl = dynamic_cast<AppControl*>(AppManager::FindAppControlN(appId, operationId));
3954                         if(pAppControl)
3955                         {
3956                                 result r = pAppControl->Start(null, null, pMap, null);
3957                         }
3958                         else
3959                         {
3960                                 AppLogException("AppControl not found");
3961                         }
3962                         return true;
3963                 }
3964         }
3965
3966         return false;
3967 }
3968
3969 DecisionPolicy
3970 MainForm::OnWebDataReceived(const Tizen::Base::String& mime,
3971                 const Tizen::Net::Http::HttpHeader& httpHeader)
3972 {
3973         return Tizen::Web::Controls::WEB_DECISION_CONTINUE;
3974 }
3975
3976 void
3977 MainForm::OnWebPageBlockSelected(Web& source, FloatPoint& startPoint, FloatPoint& endPoint)
3978 {
3979         AppLog("MainForm::OnWebPageBlockSelected");
3980 //      if(__isLongPressedDone == false)
3981 //              return;
3982
3983         if (__pHitElementResult != null)
3984         {
3985                 delete __pHitElementResult;
3986                 __pHitElementResult = null;
3987         }
3988
3989         if (__pWebViewer != null)
3990         {
3991                 AppLog("MainForm::OnWebPageBlockSelected web not null");
3992                 __pHitElementResult = __pWebViewer->GetElementByPointN(startPoint);
3993
3994                 if(GetLastResult() == E_INVALID_ARG || (__pHitElementResult->GetTagName().Equals(L"INPUT",false) == false && __pHitElementResult->GetTagName().Equals(L"TEXTAREA",false) == false))
3995                 {
3996                         AppLog("datafirst startpoint error %s",GetErrorMessage(GetLastResult()));
3997                         __pHitElementResult = __pWebViewer->GetElementByPointN(endPoint);
3998                         if(GetLastResult() == E_INVALID_ARG || (__pHitElementResult->GetTagName().Equals(L"INPUT",false) == false && __pHitElementResult->GetTagName().Equals(L"TEXTAREA",false) == false))
3999                         {
4000                                 __pHitElementResult = __pWebViewer->GetElementByPointN(__longPressPoint);
4001                         }
4002                         AppLog("datafirst endpoint error %s",GetErrorMessage(GetLastResult()));
4003                 }
4004         }
4005
4006         if (__pHitElementResult == null)
4007         {
4008                 return;
4009         }
4010
4011         if (__pHitElementResult->HasImage() != true)
4012         {
4013                 String tagName = __pHitElementResult->GetTagName();
4014                 String type = __pHitElementResult->GetAttributeValue("type");
4015
4016
4017                 AppLog("TagName %ls",tagName.GetPointer());
4018                 __currentSelectedStr.Clear();
4019                 AppLog("__currentSelectedStr after clear %ls",__currentSelectedStr.GetPointer());
4020                 __currentSelectedStr = __pWebViewer->GetTextFromBlock();
4021                 AppLog("__currentSelectedStr after GetTextFromBlock %ls",__currentSelectedStr.GetPointer());
4022                 if(tagName.Equals(L"TEXTAREA",false) == true)
4023                 {
4024                         AppLog("Tagnameseemstobe TEXTAREA");
4025                 }
4026                 else if(tagName.Equals(L"INPUT",false) == true)
4027                 {
4028                         AppLog("Tagnameseemstobe INPUT");
4029                 }
4030
4031                 if (((tagName.Equals(L"INPUT",false) == true)  || tagName.Equals(L"TEXTAREA",false) == true) /*&& __isLongPressedDone == true*/ && __currentSelectedStr.CompareTo(L"") !=0)
4032                 {
4033                         AppLog("MainForm::OnWebPageBlockSelected show paste option");
4034
4035                         InitSelectTextContextMenuF(FloatPoint(endPoint.x,endPoint.y + __pWebViewer->GetY()),true);
4036                         if(__pImageMenu)
4037                         {
4038                                 __pImageMenu->SetShowState(true);
4039                                 __pImageMenu->Show();
4040                                 __pImageMenu->Invalidate(true);
4041                         }
4042                 }
4043                 else /*if(__isLongPressedDone == true)*/
4044                 {
4045                         AppLog("MainForm::OnWebPageBlockSelected no paste option");
4046
4047                         if(__pHitElementResult->GetUrl().GetLength() > 0)
4048                         {
4049                                 __currentSelectedStr.Clear();
4050                                 __currentSelectedStr = __pHitElementResult->GetUrl();
4051                         }
4052                         InitSelectTextContextMenuF(FloatPoint(endPoint.x,endPoint.y + __pWebViewer->GetY()),false);
4053                         if(__pImageMenu)
4054                         {
4055                                 __pImageMenu->SetShowState(true);
4056                                 __pImageMenu->Show();
4057                                 __pImageMenu->Invalidate(true);
4058                         }
4059                 }
4060
4061                 AppLog("MainForm::OnWebPageBlockSelected block text is %ls",__currentSelectedStr.GetPointer());
4062                 AppLog("MainForm::OnWebPageBlockSelected tag name is %ls",tagName.GetPointer());
4063                 AppLog("MainForm::OnWebPageBlockSelected type name is %ls",type.GetPointer());
4064         }
4065
4066 }
4067
4068 void
4069 MainForm::OnWebPageShowRequested(Tizen::Web::Controls::Web& source)
4070 {
4071
4072 }
4073
4074 Web*
4075 MainForm::OnWebWindowCreateRequested(void)
4076 {
4077         AppLog("MainForm::OnWebWindowCreateRequested entered");
4078         WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN();
4079
4080         if (pNewWindowInfo == null)
4081         {
4082                 return null;
4083         }
4084         result r = E_SUCCESS;
4085         SceneManager* pSceneManager = SceneManager::GetInstance();
4086         if (pSceneManager == NULL)
4087         {
4088                 return null;
4089         }
4090         ArrayList* pArgList = new(std::nothrow) ArrayList();
4091         if (pArgList == NULL)
4092         {
4093                 return null;
4094         }
4095         r = pArgList->Construct();
4096         if (r == E_SUCCESS)
4097         {
4098                 pNewWindowInfo->isJavascriptInitiated = true;
4099                 pArgList->Add(*pNewWindowInfo);
4100                 r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
4101                 delete pArgList;
4102                 if (IsFailed(r))
4103                 {
4104                         AppLogDebug("EditHistoryListForm::OnFormBackRequested Failed to GoBackward %s",GetErrorMessage(r));
4105                         return null;
4106                 }
4107         } else {
4108                 delete pArgList;
4109         }
4110
4111         return pNewWindowInfo->pCurrentWeb;
4112 }
4113
4114 void MainForm::OnWebWindowCloseRequested(Tizen::Web::Controls::Web& source)
4115 {
4116         AppLog("OnWebWindowCloseRequested");
4117         ArrayList* pAllWindowList = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList();
4118         SceneManager* pSceneManager = SceneManager::GetInstance();
4119         WindowInfo* pWindowInfo = null;
4120         WindowInfo* pNewWindowInfo = null;
4121         int totalCount = 0;
4122         UiApp* pApp = null;
4123         result r = E_FAILURE;
4124
4125         if (pAllWindowList != null)
4126         {
4127                 totalCount = pAllWindowList->GetCount();
4128         }
4129
4130         for (int count = 0; count < totalCount; count++)
4131         {
4132                 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count));
4133                 if (pSceneManager != null && pWindowInfo != null && pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID)
4134                 {
4135                         r = SceneRegister::DestroyAndUnRegisterScene(pWindowInfo->sceneID);
4136                         if (IsFailed(r))
4137                         {
4138                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
4139                                 return;
4140                         }
4141
4142                         r = pAllWindowList->RemoveAt(count, true);
4143
4144                         if(count > 0)
4145                         {
4146                                 pNewWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count - 1));
4147                         }
4148                         else if(pAllWindowList->GetCount() > 0)
4149                         {
4150                                 pNewWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1));
4151                         }
4152                         else
4153                         {
4154                                 WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN();
4155
4156                                 if (pNewWindowInfo == null)
4157                                 {
4158                                         return;
4159                                 }
4160                                 result r = E_SUCCESS;
4161                                 SceneManager* pSceneManager = SceneManager::GetInstance();
4162                                 if (pSceneManager == NULL)
4163                                 {
4164                                         return;
4165                                 }
4166                                 ArrayList* pArgList = new(std::nothrow) ArrayList();
4167                                 if (pArgList == NULL)
4168                                 {
4169                                         return;
4170                                 }
4171                                 r = pArgList->Construct();
4172                                 if (r == E_SUCCESS)
4173                                 {
4174                                         pArgList->Add(*pNewWindowInfo);
4175                                         result r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
4176                                         if (pArgList != null)
4177                                         {
4178                                                 delete pArgList;
4179                                                 pArgList = null;
4180                                         }
4181                                         if(IsFailed(r))
4182                                         {
4183                                                 AppLogDebug("MultipleWindowForm::OnActionPerformed GoForward failed %s",GetErrorMessage(r));
4184                                                 return;
4185                                         }
4186                                 }
4187
4188                                 pApp = UiApp::GetInstance();
4189                                 if (pApp != null)
4190                                 {
4191                                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
4192                                         return;
4193                                 }
4194
4195                         }
4196                         r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_HISTORY_OPTION_ADD_HISTORY,SCENE_DESTROY_OPTION_DESTROY));
4197
4198                         __pWindowInfo = null;
4199                         break;
4200                 }
4201         }
4202
4203 }
4204
4205 void
4206 MainForm::RelayoutControls(bool showAddressbar,bool relayoutFooter)
4207 {
4208         AppLog("xyz:: MainForm::RelayoutControls called");
4209         __webControlPosition.y = 0;
4210         __webControlHeight = GetClientAreaBounds().height;
4211         AppLog("Client area height: %d width %d", __webControlHeight,GetClientAreaBounds().width);
4212
4213         AppLog("Client area height: %d", __webControlHeight);
4214         if(__pAddressbar != null && __pAddressbar->GetShowState() == true)
4215         {
4216                 __webControlPosition.y += __pAddressbar->GetHeight();
4217                 __webControlHeight -= __pAddressbar->GetHeight();
4218                 __pAddressbar->SetBounds(0, 0, __pAddressbar->GetWidth(), __pAddressbar->GetHeight());
4219         }
4220         else if(__pFindWordControl != null && __pFindWordControl->GetShowState() == true)
4221         {
4222                 __webControlPosition.y += __pFindWordControl->GetHeight();
4223                 __webControlHeight -= __pFindWordControl->GetHeight();
4224                 __pFindWordControl->SetBounds(0, 0, GetClientAreaBounds().width, __pFindWordControl->GetHeight());
4225         }
4226
4227         if(__pFooterPanel != null && __pFooterPanel->GetShowState() == true && relayoutFooter == true)
4228         {
4229                 __webControlHeight -= __pFooterPanel->GetHeight();
4230
4231                 __pFooterPanel->SetBounds(0, __webControlPosition.y + __webControlHeight, GetClientAreaBounds().width, __pFooterPanel->GetHeight());
4232                 __webControlHeight = __webControlHeight + 12;
4233         }
4234         if (__pWebViewer != null && __pWebViewer->GetShowState() == true)
4235         {
4236                 if(__pWebViewer->GetX() == 0 && __pWebViewer->GetY() == __webControlPosition.y &&__pWebViewer->GetWidth() == GetClientAreaBounds().width &&__pWebViewer->GetHeight() == __webControlHeight )
4237                 {
4238                 }
4239                 else
4240                 {
4241                         __pWebViewer->SetBounds(0, __webControlPosition.y, GetClientAreaBounds().width, __webControlHeight );
4242                         AppLog("xyz:: MainForm::RelayoutControls called __webControlHeight %d",__webControlHeight);
4243                         __pWebViewer->Invalidate(false);
4244                 }
4245         }
4246         if(__pMostVisitedListView != null && __pAddressbar != null && __pFooterPanel != null)
4247         {
4248                 __pMostVisitedListView->SetBounds(Tizen::Graphics::Rectangle(0,__webControlPosition.y , GetClientAreaBounds().width, __webControlHeight));
4249         }
4250
4251         Invalidate(true);
4252 }
4253
4254 void
4255 MainForm::ShowFindWordPanel(bool show , bool isTouchPressed)
4256 {
4257         if (__pFindWordControl == null)
4258         {
4259                 return;
4260         }
4261
4262         Tizen::Locales::LocaleManager localeManager;
4263         Tizen::Locales::Locale local = localeManager.GetSystemLocale();
4264
4265         String languageCode;
4266         result r = SettingInfo::GetValue(L"Language", languageCode);
4267         // int languagecode = local.GetLanguageCode();
4268         AppLog("rahul language is %S", languageCode.GetPointer());
4269
4270         if (show == true)
4271         {
4272                 InitFindWordPanel();
4273
4274                 if (languageCode.CompareTo("ara") == 0)
4275                 {
4276                         AppLog("rahul language is arabic");
4277
4278                         __pFindWordPanelLeftToRight->SetShowState(false);
4279                         __pFindWordPanelRightToLeft->SetShowState(true);
4280
4281                         __pFindWordClear->SetShowState(false);
4282                         __pFindWordCountLabel->SetShowState(false);
4283                         __pFindWordEditField->SetShowState(false);
4284
4285                         __pFindWordClearRightToLeft->SetShowState(true);
4286                         __pFindWordCountLabelRightToLeft->SetShowState(true);
4287                         __pFindWordEditFieldRightToLeft->SetShowState(true);
4288                 }
4289                 else
4290                 {
4291                         AppLog("rahul language is not arabic");
4292
4293
4294                         __pFindWordPanelLeftToRight->SetShowState(true);
4295                         __pFindWordPanelRightToLeft->SetShowState(false);
4296
4297                         __pFindWordClear->SetShowState(true);
4298                         __pFindWordCountLabel->SetShowState(true);
4299                         __pFindWordEditField->SetShowState(true);
4300
4301                         __pFindWordClearRightToLeft->SetShowState(false);
4302                         __pFindWordCountLabelRightToLeft->SetShowState(false);
4303                         __pFindWordEditFieldRightToLeft->SetShowState(false);
4304                 }
4305                 __pFindWordControl->SetShowState(true);
4306         }
4307         else
4308         {
4309                 if(__pFindWordControl != null)
4310                 {
4311                         __pFindWordControl->SetShowState(false);
4312                 }
4313         }
4314
4315         AppLog("MainForm::ShowFindWordPanel %d",show);
4316         if (show && !isTouchPressed)
4317         {
4318                 if (languageCode.CompareTo("ara") == 0)
4319                 {
4320                         if (__pFindWordEditFieldRightToLeft)
4321                         {
4322                                 __pFindWordEditFieldRightToLeft->SetFocus();
4323                                 __pFindWordEditFieldRightToLeft->ShowKeypad();
4324                         }
4325                 }
4326                 else
4327                 {
4328                         if (__pFindWordEditField)
4329                         {
4330                                 __pFindWordEditField->SetFocus();
4331                                 __pFindWordEditField->ShowKeypad();
4332                         }
4333                 }
4334         }
4335         else
4336         {
4337                 if (languageCode.CompareTo("ara") == 0)
4338                 {
4339                         if (__pFindWordEditFieldRightToLeft)
4340                                 __pFindWordEditFieldRightToLeft->HideKeypad();
4341                 }
4342                 else
4343                 {
4344                         if (__pFindWordEditField)
4345                                 __pFindWordEditField->HideKeypad();
4346                 }
4347         }
4348
4349         RelayoutControls(false);
4350 }
4351
4352 void
4353 MainForm::StartWordSearch()
4354 {
4355         //Get the count of occurances of the word in the current page
4356         __maxOccurrances = 0;
4357         __currentWordIndex = 0;
4358
4359         __pFindWordPrev->SetEnabled(false);
4360         String *pCountStr = null;
4361         if (__pWebViewer)
4362         {
4363                 result r = __pWebViewer->SearchTextAllAsync(__currentSearchStr, false);
4364                 AppLog("Search Result %s",GetErrorMessage(r));
4365         }
4366
4367         /*__pWebViewer->EvaluateJavascriptN(L"document.body.textContent.match(/"  + __currentSearchStr + "/gi).length;");
4368         if (pCountStr != null)
4369         {
4370                 Integer::Parse(*pCountStr, 10, __maxOccurrances);
4371                 delete pCountStr;
4372         }
4373
4374         AppLogDebug("'%ls' is found %d times", __currentSearchStr.GetPointer(), __maxOccurrances);
4375          */
4376
4377 }
4378
4379 void MainForm::OnTextFound(int totalCount, int currentOrdinal)
4380 {
4381         AppLog("MainForm::OnTextFound totalCount %d",totalCount);
4382         AppLog("MainForm::OnTextFound currentOrdinal %d",currentOrdinal);
4383
4384         if(totalCount <= 9)
4385         {
4386                 if (__pFindWordCountLabel)
4387                 {
4388                         __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),84,__pFindWordCountLabel->GetHeight());
4389                 }
4390                 if (__pFindWordEditField)
4391                 {
4392                         __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),214+80,__pFindWordEditField->GetHeight());
4393                 }
4394         }
4395         else if(totalCount >= 100)
4396         {
4397                 if (__pFindWordCountLabel)
4398                 {
4399                         __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight());
4400                 }
4401                 if (__pFindWordEditField)
4402                 {
4403                         __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight());
4404                 }
4405         }
4406         else
4407         {
4408                 if (__pFindWordCountLabel)
4409                 {
4410                         __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight());
4411                 }
4412                 if (__pFindWordEditField)
4413                 {
4414                         __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight());
4415                 }
4416         }
4417
4418         __maxOccurrances = totalCount;
4419         __currentWordIndex = currentOrdinal;
4420
4421         //Reset the UI controls as per the maxOccurrance value
4422         if (totalCount <= 0)
4423         {
4424                 AppLog("Word not found");
4425                 //Show error notification to user
4426                 __pFindWordNext->SetEnabled(false);
4427                 if(__pFindWordCountLabel && __pFindWordCountLabel->GetShowState() == true)
4428                 {
4429                         __pFindWordCountLabel->SetText(L"0/0");
4430                         __pFindWordCountLabel->Invalidate(false);
4431                 }
4432                 else if(__pFindWordCountLabelRightToLeft && __pFindWordCountLabelRightToLeft->GetShowState() == true)
4433                 {
4434                         __pFindWordCountLabelRightToLeft->SetText(L"0/0");
4435                         __pFindWordCountLabelRightToLeft->Invalidate(false);
4436                 }
4437                 __pFindWordNext->Invalidate(false);
4438                 __pFindWordPrev->Invalidate(false);
4439
4440                 return;
4441         }
4442
4443         if (totalCount == 1 || totalCount == currentOrdinal)
4444         {
4445                 __pFindWordNext->SetEnabled(false);
4446         }
4447         else
4448         {
4449                 __pFindWordNext->SetEnabled(true);
4450         }
4451
4452         String countStr = L"";
4453         countStr.Append(__currentWordIndex);
4454         countStr.Append(L"/");
4455         countStr.Append(__maxOccurrances);
4456         if (__pFindWordCountLabel && __pFindWordCountLabel->GetShowState() == true)
4457         {
4458         __pFindWordCountLabel->SetText(countStr);
4459         __pFindWordCountLabel->Invalidate(false);
4460         __pFindWordCountLabel->Invalidate(false);
4461         }
4462         else if (__pFindWordCountLabelRightToLeft && __pFindWordCountLabelRightToLeft->GetShowState() == true)
4463         {
4464                 __pFindWordCountLabelRightToLeft->SetText(countStr);
4465                 __pFindWordCountLabelRightToLeft->Invalidate(false);
4466                 __pFindWordCountLabelRightToLeft->Invalidate(false);
4467         }
4468         if (__pFindWordNext)
4469         {
4470                 __pFindWordNext->Invalidate(false);
4471         }
4472         if (__pFindWordPrev)
4473         {
4474                 __pFindWordPrev->Invalidate(false);
4475         }
4476
4477 }
4478
4479 void
4480 MainForm::FindNextWord(bool next)
4481 {
4482         if (next == true)
4483         {
4484                 //if (__pWebViewer->SearchText(__currentSearchStr, true) == true)
4485                         if (__pWebViewer->SearchNextAsync(true) == E_SUCCESS)
4486                         {
4487                                 if (__currentWordIndex < __maxOccurrances)
4488                                 {
4489                                         __currentWordIndex++;
4490                                 }
4491                         }
4492         }
4493         else
4494         {
4495                 //if (__pWebViewer->SearchText(__currentSearchStr, false) == true)
4496                 if (__pWebViewer->SearchNextAsync(false) == E_SUCCESS)
4497                 {
4498                         if(__currentWordIndex > 1)
4499                         {
4500                                 __currentWordIndex--;
4501                         }
4502                 }
4503         }
4504
4505         String countStr = L"";
4506         countStr.Append(__currentWordIndex);
4507         countStr.Append(L"/");
4508         countStr.Append(__maxOccurrances);
4509
4510         if (__pFindWordCountLabel && __pFindWordCountLabel->GetShowState() == true)
4511         {
4512         __pFindWordCountLabel->SetText(countStr);
4513         __pFindWordCountLabel->Invalidate(false);
4514         }
4515         else if(__pFindWordCountLabelRightToLeft && __pFindWordCountLabelRightToLeft->GetShowState() == true)
4516         {
4517                 __pFindWordCountLabelRightToLeft->SetText(countStr);
4518                 __pFindWordCountLabelRightToLeft->Invalidate(false);
4519         }
4520
4521         if (__currentWordIndex >= __maxOccurrances)
4522         {
4523                 __pFindWordNext->SetEnabled(false);
4524         }
4525         else
4526         {
4527                 __pFindWordNext->SetEnabled(true);
4528         }
4529         if (__currentWordIndex <= 1)
4530         {
4531                 __pFindWordPrev->SetEnabled(false);
4532         }
4533         else
4534         {
4535                 __pFindWordPrev->SetEnabled(true);
4536         }
4537         __pFindWordPrev->Invalidate(false);
4538         __pFindWordNext->Invalidate(false);
4539
4540         __pFindWordControl->Invalidate(true);
4541 }
4542
4543 void
4544 MainForm::OnWebKeypadWillOpen(Tizen::Web::Controls::Web& source)
4545 {
4546         AppLog("xyz::MainForm::OnWebKeypadWillOpen");
4547         __isKeypadOpened = true;
4548         __pFooterPanel->SetShowState(false);
4549         //      OnAddressBarKeypadOpened(*__pAddressbar);
4550 }
4551
4552 void
4553 MainForm::OnWebKeypadOpened(Tizen::Web::Controls::Web& source)
4554 {
4555         __isKeypadOpened = true;
4556         AppLog("xyz::MainForm::OnWebKeypadOpened");
4557
4558         if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
4559         {
4560                 __currentSearchStr = L"";
4561                 __currentWordIndex = 0;
4562                 __maxOccurrances = 0;
4563                 __pFindWordEditField->SetText(L"");
4564                 __pFindWordNext->SetEnabled(false);
4565                 __pFindWordPrev->SetEnabled(false);
4566                 __pFindWordCountLabel->SetText(L"0/0");
4567                 __pWebViewer->SearchTextAllAsync(L"",false);
4568                 __pFindWordControl->SetShowState(false);
4569                 __pFindWordEditField->HideKeypad();
4570         }
4571
4572
4573         if (__pWebViewer != null && __pFooterPanel != null)
4574         {
4575                 AppLog("MainForm::OnWebKeypadOpened GetClientAreaBounds().height %d ", GetClientAreaBounds().height);
4576                 if(__pAddressbar != null)
4577                 {
4578                         __pAddressbar->SetShowState(false);
4579                 }
4580                 if(__pFindWordControl != null)
4581                 {
4582                         __pFindWordControl->SetShowState(false);
4583                 }
4584                 __pFooterPanel->SetShowState(false);
4585                 __pWebViewer->SetBounds(Rectangle(0, 0,GetClientAreaBounds().width, GetClientAreaBounds().height));
4586         }
4587 //      if(__pImageMenu && __pImageMenu->GetShowState() == true)
4588 //      {
4589 //              __pImageMenu->SetAnchorPosition(Point(__pImageMenu->GetAnchorPosition().x/2,__pImageMenu->GetAnchorPosition().y/2));
4590 //              AppLog("omgomgomg");
4591 //      }
4592         Invalidate(true);
4593 }
4594
4595 void
4596 MainForm::OnWebKeypadClosed(Tizen::Web::Controls::Web& source)
4597 {
4598         AppLog("abcde::MainForm::OnWebKeypadClosed");
4599         AppLog("xyz::MainForm::OnWebKeypadClosed");
4600         AppLog("akjshdasd 4");
4601         __pFooterPanel->SetShowState(true);
4602 //      OnAddressBarKeypadClosed(*__pAddressbar);
4603         RelayoutControls(false);
4604         __isKeypadOpened = false;
4605
4606
4607         if(__pImageMenu && __pImageMenu->GetShowState() == true)
4608         {
4609                 AppLog("abcde: imagemenu visible.");
4610                 Point p(0,0);
4611                 Point q(0,0);
4612                 __pWebViewer->GetBlockRange(p,q);
4613                 if (p == Point(0,0) && q == Point(0,0))
4614                         return;
4615
4616                 __pImageMenu->SetAnchorPosition(p);
4617                 __pImageMenu->Show();
4618                 Invalidate(true);
4619         }
4620 }
4621
4622 void
4623 MainForm::OnWebKeypadBoundsChanged(Tizen::Web::Controls::Web& source)
4624 {
4625         //      RelativeLayout(false);
4626         if(__pWebViewer != null)
4627         {
4628                 __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width,GetClientAreaBounds().height));
4629         }
4630 }
4631
4632 void
4633 MainForm::OnTouchDoublePressed(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
4634 {
4635         Control* temp = const_cast< Control* >(&source);
4636         Header* pHeader = dynamic_cast< Header* >(temp);
4637         if (pHeader != null)
4638         {
4639                 //Header double - clicked
4640                 AppLog("Header double clicked");
4641         }
4642         if(__pFindWordControl)
4643         {
4644                 AppLog("MainForm::OnTouchPressed %d",__pFindWordControl->GetShowState());
4645                 ShowFindWordPanel(__pFindWordControl->GetShowState(), true);
4646         }
4647
4648
4649         AppLog("MainScene::OnTouchDoublePressed");
4650
4651 }
4652
4653 void MainForm::OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
4654 {
4655         AppLog("abcde::MainForm::OnTouchLongPressed %d, %d" ,currentPosition.x,currentPosition.y);
4656         if(TouchEventManager::GetInstance() && TouchEventManager::GetInstance()->GetTouchInfoListN() && TouchEventManager::GetInstance()->GetTouchInfoListN()->GetCount() >1)
4657         {
4658                 AppLog("Returning because of more than one touch point.");
4659                 return;
4660         }
4661         if(__pWebViewer)
4662                 __pWebViewer->ReleaseBlock();
4663         __longPressPoint = currentPosition;
4664
4665         if (__pHitElementResult != null)
4666         {
4667                 delete __pHitElementResult;
4668                 __pHitElementResult = null;
4669         }
4670
4671         if (__pWebViewer != null)
4672         {
4673                 AppLog("MainForm::OnTouchLongPressed web not null");
4674                 __pHitElementResult = __pWebViewer->GetElementByPointN(currentPosition);
4675         }
4676
4677         if (__pHitElementResult == null)
4678         {
4679                 return;
4680         }
4681
4682         if (__pHitElementResult->HasImage() == true)
4683         {
4684                 if(__pWebViewer != null)
4685                         InitImageContextMenu(Point(currentPosition.x,currentPosition.y + __pWebViewer->GetY()));
4686                 __pImageMenu->SetShowState(true);
4687                 __pImageMenu->Show();
4688                 __pImageMenu->Invalidate(true);
4689         }
4690         else if(__pHitElementResult->HasUrl() == true)
4691         {
4692                 String tempURl = __pHitElementResult->GetUrl();
4693                 AppLog("tempURl is %ls", tempURl.GetPointer());
4694                 const Bitmap* pBitmap = __pHitElementResult->GetImage();
4695                 if (pBitmap != null)
4696                 {
4697                         AppLog("not null");
4698                 }
4699                 else
4700                 {
4701                         AppLog(null);
4702                 }
4703                 InitImageLinkContextMenu(Point(currentPosition.x,currentPosition.y + __pWebViewer->GetY()));
4704                 __pImageMenu->SetShowState(true);
4705                 __pImageMenu->Show();
4706                 __pImageMenu->Invalidate(true);
4707         }
4708         else
4709         {
4710                 String tagName = __pHitElementResult->GetTagName();
4711                 String type = __pHitElementResult->GetAttributeValue("type");
4712                 String value = __pHitElementResult->GetAttributeValue(L"value");
4713                 String innerHtml = __pHitElementResult->GetAttributeValue(L"innerHTML");
4714
4715                 __currentSelectedStr.Clear();
4716                 __currentSelectedStr = __pWebViewer->GetTextFromBlock();
4717
4718                 AppLog("tag name is %ls", tagName.GetPointer());
4719                 AppLog("type is %ls", type.GetPointer());
4720
4721
4722
4723                 __isLongPressedDone = true;
4724                 result r =__pWebViewer->SetBlockSelectionPosition(currentPosition);
4725                 if (((tagName.Equals(L"INPUT",false) == true)  || tagName.Equals(L"TEXTAREA",false) == true) && innerHtml.GetLength() == 0  && type.Equals(L"submit",false) !=true && type.Equals(L"range",false) !=true/*&& __isWebKeypadOpened == true*/ && __currentSelectedStr.Equals(L"",false) == true && r == E_INVALID_ARG)
4726                 {
4727                         AppLog("MainForm::OnWebPageBlockSelected show paste option");
4728
4729                         InitSelectTextContextMenu(Point(currentPosition.x , currentPosition.y + __pWebViewer->GetY()),true, true);
4730                         if(__pImageMenu)
4731                         {
4732                                 __pImageMenu->SetShowState(true);
4733                                 __pImageMenu->Show();
4734                                 __pImageMenu->Invalidate(true);
4735                         }
4736                 }
4737                 AppLog("setselectionselectedornot %s",GetErrorMessage(r));
4738
4739         }
4740 //      __inputEventToBeSupressed = true;
4741 }
4742
4743 void
4744 MainForm::OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
4745 {
4746         AppLog("xyz:: MainForm::OnTouchReleased called");
4747
4748         if (__pAddressbar && __pAddressbar->GetShowState() == true)
4749         {
4750                 __pAddressbar->SetShowState(false);
4751         }
4752         if(__pFooterPanel && __isKeypadOpened == false)
4753         {
4754                 __pFooterPanel->SetShowState(true);
4755         }
4756
4757         // Not reuired now.
4758         /*HitElementResult* pHitElement = __pWebViewer->GetElementByPointN(currentPosition);
4759         if(pHitElement != null && pHitElement->HasUrl() == true && __inputEventToBeSupressed == true)
4760         {
4761                 __pWebViewer->ConsumeInputEvent();
4762         }
4763         if(pHitElement != null)
4764         {
4765                 delete pHitElement;
4766         }
4767         __inputEventToBeSupressed = false;*/
4768 }
4769
4770 bool
4771 MainForm::OnTouchPressed(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4772 {
4773
4774         return true;
4775 }
4776
4777 bool
4778 MainForm::OnTouchReleased(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4779 {
4780         if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
4781         {
4782                 __currentSearchStr = L"";
4783                 __currentWordIndex = 0;
4784                 __maxOccurrances = 0;
4785
4786                 if (__pFindWordPanelLeftToRight && __pFindWordPanelLeftToRight->GetShowState() == true)
4787                 {
4788                         __pFindWordEditField->SetText(L"");
4789                         __pFindWordEditField->HideKeypad();
4790                         __pFindWordControl->SetShowState(false);
4791                         __pFindWordCountLabel->SetText(L"0/0");
4792                 }
4793                 else if(__pFindWordPanelRightToLeft && __pFindWordPanelRightToLeft->GetShowState() == true)
4794                 {
4795                         __pFindWordEditFieldRightToLeft->SetText(L"");
4796                         __pFindWordEditFieldRightToLeft->HideKeypad();
4797                         __pFindWordControl->SetShowState(false);
4798                         __pFindWordCountLabelRightToLeft->SetText(L"0/0");
4799                 }
4800
4801                 __pFindWordNext->SetEnabled(false);
4802                 __pFindWordPrev->SetEnabled(false);
4803
4804                 __pWebViewer->SearchTextAllAsync(L"",true);
4805                 __pFindWordControl->SetShowState(false);
4806         }
4807         AppLog("__pAddressbar->GetShowState() %d",__pAddressbar->GetShowState());
4808         if(__pAddressbar->GetShowState() == false)
4809         {
4810                 __pAddressbar->SetAddressbarURLFocus();
4811                 __pFooterPanel->SetShowState(false);
4812         }
4813
4814         return false;
4815 }
4816
4817 bool
4818 MainForm::OnTouchMoved(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4819 {
4820         return true;
4821 }
4822
4823 bool
4824 MainForm::OnTouchCanceled(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4825 {
4826         return true;
4827 }
4828
4829 bool
4830 MainForm::OnPreviewTouchPressed(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4831 {
4832         return true;
4833 }
4834
4835 bool
4836 MainForm::OnPreviewTouchReleased(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4837 {
4838         return true;
4839 }
4840
4841 bool
4842 MainForm::OnPreviewTouchMoved(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4843 {
4844         return true;
4845 }
4846
4847 void
4848 MainForm::OnOrientationChanged (const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
4849 {
4850         AppLog("MainForm::OnOrientationChanged GetClientAreaBounds %d, %d",GetClientAreaBounds().width,GetClientAreaBounds().height);
4851         int widthContextItem = 0;
4852         if(__pFindWordCountLabel)
4853                 __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight());
4854         // As per the platform engineer comment removed this line
4855         /*if(__pWebViewer != null)
4856         {
4857                 // this is added because if any text is selected on long press followed by on rotation we are hiding the context menu therefore we should release the text block also
4858                 __pWebViewer->ReleaseBlock();
4859         }*/
4860
4861 //      if(__pFindWordControl != null)
4862 //              ShowFindWordPanel(__pFindWordControl->GetShowState(), false);
4863
4864         if(__pOptionMenu && __pOptionMenu->GetShowState() == true)
4865         {
4866                 if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
4867                 {
4868                         AppLog(" Orientation landscape");
4869                         __pOptionMenu->SetMaxVisibleItemsCount(5);
4870                 }
4871                 else
4872                 {
4873                         AppLog(" Orientation potrait");
4874                         __pOptionMenu->SetMaxVisibleItemsCount(6);
4875                 }
4876         }
4877         if(__pNotification && __pNotification->GetShowState() == true)
4878         {
4879                 __pNotification->SetShowState(false);
4880                 __pNotification->Invalidate(false);
4881         }
4882         if ( __pFooterLabel != null)
4883         {
4884                 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pFooterLabel->GetWidth(), __pFooterLabel->GetHeight());
4885                 if(pBitmap != null)
4886                 {
4887                         __pFooterLabel->SetBackgroundBitmap(*pBitmap);
4888                         delete pBitmap;
4889                 }
4890
4891
4892         }
4893         if (__pFindWordBgLabel != null)
4894         {
4895                 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_FINDWORD_INPUT_FIELD_BG, __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());
4896                 if (pBitmap != null)
4897                 {
4898                         __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);
4899                         delete pBitmap;
4900                 }
4901         }
4902
4903         if (__pFindWordBgLabelRightToLeft != null)
4904         {
4905                 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_FINDWORD_INPUT_FIELD_BG, __pFindWordBgLabelRightToLeft->GetWidth(), __pFindWordBgLabelRightToLeft->GetHeight());
4906                 if (pBitmap != null)
4907                 {
4908                         __pFindWordBgLabelRightToLeft->SetBackgroundBitmap(*pBitmap);
4909                         delete pBitmap;
4910                 }
4911         }
4912
4913
4914 //      if(__pOptionMenu != null)
4915 //              __pOptionMenu->SetShowState(false);
4916
4917         if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
4918         {
4919                 widthContextItem = WIDTH_CONTEXT_MENU_BUTTON_LANDSCAPE;
4920         }
4921         else
4922         {
4923                 widthContextItem = WIDTH_CONTEXT_MENU_BUTTON_PORTRAIT;
4924         }
4925
4926         if (__pFooterPanel)
4927         {
4928                 AppLog("__pFooterPanel->GetShowState() is true");
4929                 InitFooter();
4930                 __pFooterPanel->SetBounds(0, GetClientAreaBounds().height - __pFooterPanel->GetHeight(), __pFooterPanel->GetWidth(), __pFooterPanel->GetHeight());
4931                 __pFooterPanel->Invalidate(true);
4932         }
4933         InitAddressbar();
4934
4935         String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
4936         if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
4937         {
4938                 InitMostVisitedSitesView(orientationStatus);
4939         }
4940
4941         RelayoutControls(false);
4942         if (__pArticleReaderPanel != null)
4943         {
4944                 if (__pArticleReaderPanel->GetShowState() == true)
4945                 {
4946                         __pArticleReaderPanel->SetBounds((GetClientAreaBounds().width - __pArticleReaderPanel->GetWidth())/2,(GetClientAreaBounds().height - __pArticleReaderPanel->GetHeight())/2, __pArticleReaderPanel->GetWidth(), __pArticleReaderPanel->GetHeight());
4947
4948                         if (__pBlankPanel != null)
4949                                 __pBlankPanel->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height);
4950
4951                         if (__pWebReader != null)
4952                         {
4953                                 __pWebReader->SetBounds(Rectangle(2,2, __pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight() - 96));
4954                         }
4955                         Bitmap* pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
4956                         Bitmap* pSrcBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bottom_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
4957
4958                         if ( pBitmap != null && pSrcBitmap != null)
4959                         {
4960                                 AppLog("CreateReaderPanel ninepatchbitmap found");
4961                                 pBitmap->Merge(Point(0,__pArticleReaderPanel->GetHeight() - 96),*pSrcBitmap,Rectangle(0,0,pSrcBitmap->GetWidth(),pSrcBitmap->GetHeight()));
4962                         }
4963
4964                         __pArticleReaderLabel->SetBounds(Rectangle(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight()));
4965                         __pArticleReaderLabel->SetBackgroundBitmap(*pBitmap);
4966                         if (pBitmap != null)
4967                         {
4968                                 delete pBitmap;
4969                                 pBitmap = null;
4970                         }
4971                         if (pSrcBitmap != null)
4972                         {
4973                                 delete pSrcBitmap;
4974                                 pSrcBitmap = null;
4975                         }
4976                 }
4977         }
4978         Invalidate(true);
4979         
4980     if (__pAddressbar != null)
4981         {
4982                 int width = GetClientAreaBounds().width;
4983                 __pAddressbar->OrientationChanged(width);
4984         }
4985 }
4986
4987 void
4988 MainForm::OnSettingsChange(int settingvalue)
4989 {
4990         AppLogDebug("MainForm::OnSettingsChange entered");
4991
4992         if(settingvalue == (int)REGISTRY_SETTING_HOMEPAGE)
4993         {
4994                 __pAddressbar->ResetGuideText();
4995         }
4996         if (__pWebViewer == null)
4997         {
4998                 AppLogDebug("Webviewer is not initialized yet.");
4999                 return;
5000         }
5001
5002         if (settingvalue == (int) REGISTRY_SETTING_DEFAULT_VIEW)
5003         {
5004                 WebSetting settings = __pWebViewer->GetSetting();
5005                 if (SettingPresentationModel::GetInstance()->GetDefaultView().CompareTo((L"IDS_BR_BODY_FIT_TO_WIDTH")) == 0)
5006                 {
5007                         settings.SetAutoFittingEnabled(true);
5008                 }
5009                 else if (SettingPresentationModel::GetInstance()->GetDefaultView().CompareTo((L"IDS_BR_BODY_READABLE")) == 0)
5010                 {
5011                         settings.SetAutoFittingEnabled(false);
5012                 }
5013                 __pWebViewer->SetSetting(settings);
5014
5015         }
5016         else if (settingvalue == (int) REGISTRY_SETTING_RUN_JAVASCRIPT)
5017         {
5018                 WebSetting settings = __pWebViewer->GetSetting();
5019                 settings.SetJavascriptEnabled(SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled());
5020                 __pWebViewer->SetSetting(settings);
5021         }
5022         else if (settingvalue == (int) REGISTRY_SETTING_DISPLAY_IMAGES)
5023         {
5024                 WebSetting settings = __pWebViewer->GetSetting();
5025                 settings.SetAutoImageLoadEnabled(SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());
5026                 __pWebViewer->SetSetting(settings);
5027                 __pWebViewer->Reload();
5028         }
5029         else if (settingvalue == (int) REGISTRY_SETTING_BLOCK_POPUP)
5030         {
5031                 WebSetting settings = __pWebViewer->GetSetting();
5032                 settings.SetJavaScriptPopupEnabled(SettingPresentationModel::GetInstance()->IsBlockPopUp());
5033                 __pWebViewer->SetSetting(settings);
5034         }
5035         else if (settingvalue == (int) REGISTRY_SETTING_ACCEPT_COOKIES)
5036         {
5037                 if (__pWebViewer)
5038                 {
5039                         __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());
5040                 }
5041         }
5042         else if(settingvalue == (int) REGISTRY_SETTING_REMEMBER_FORM_DATA)
5043         {
5044                 if (__pWebViewer)
5045                 {
5046                         WebSetting settings = __pWebViewer->GetSetting();
5047                         settings.SetAutoFormDataShowEnabled(SettingPresentationModel::GetInstance()->IsRememberFormData());
5048                         __pWebViewer->SetSetting(settings);
5049                 }
5050         }
5051         else if(settingvalue == (int) REGISTRY_SETTING_REMEMBER_PASSWORD)
5052         {
5053                 if (__pWebViewer)
5054                 {
5055                         WebSetting settings = __pWebViewer->GetSetting();
5056                         settings.SetAutoLoginFormFillEnabled(SettingPresentationModel::GetInstance()->IsRememberPassword());
5057                         __pWebViewer->SetSetting(settings);
5058                 }
5059         }
5060         else if (settingvalue == (int) REGISTRY_SETTING_SHOW_SECURITY_WARNINGS)
5061         {
5062                 WebSetting settings = __pWebViewer->GetSetting();
5063                 if (SettingPresentationModel::GetInstance()->IsSecurityWarningsEnabled() == true)
5064                 {
5065                         settings.SetCertificateErrorHandlingMode(WEB_CERTIFICATE_ERROR_HANDLING_MODE_USER_CONFIRM);
5066                 }
5067                 else
5068                 {
5069                         settings.SetCertificateErrorHandlingMode(WEB_CERTIFICATE_ERROR_HANDLING_MODE_CONTINUE);
5070                 }
5071                 __pWebViewer->SetSetting(settings);
5072         }
5073         else if (settingvalue == (int) REGISTRY_SETTING_READER_FONT_SIZE)
5074         {
5075                 if (__pWebReader)
5076                 {
5077                         AppLogDebug("IntMainForm fontsize Changed to %d",SettingPresentationModel::GetInstance()->GetReaderFontSize());
5078                         WebSetting settings = __pWebReader->GetSetting();
5079                         settings.SetFontSize(SettingPresentationModel::GetInstance()->GetReaderFontSize());
5080                         __pWebReader->SetSetting(settings);
5081                 }
5082         }
5083 }
5084
5085 void
5086 MainForm::OnSettingsReset()
5087 {
5088         if (__pWebViewer)
5089         {
5090                 __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());
5091                 __pWebViewer->SetSetting(SettingPresentationModel::GetInstance()->GetWebSettings());
5092         }
5093 }
5094
5095 void
5096 MainForm::OnClearCache()
5097 {
5098         result r = E_SUCCESS;
5099
5100         if (__pWebViewer != NULL)
5101         {
5102                 r = __pWebViewer->ClearCache();
5103                 if (r == E_SUCCESS)
5104                 {
5105                         AppLogDebug("Cache cleared success");
5106                 }
5107                 else
5108                 {
5109                         AppLogDebug("Cache cleared fail");
5110                 }
5111         }
5112 }
5113
5114 void
5115 MainForm::OnClearCookie()
5116 {
5117         result r = E_SUCCESS;
5118
5119         if (__pWebViewer != NULL)
5120         {
5121                 __pWebViewer->ClearCookie();
5122         }
5123         if (r == E_SUCCESS)
5124         {
5125                 AppLogDebug("Cookie cleared success");
5126         }
5127         else
5128         {
5129                 AppLogDebug("Cache cleared fail");
5130         }
5131 }
5132
5133 void
5134 MainForm::OnClearFormData()
5135 {
5136         result r = E_SUCCESS;
5137
5138         if (__pWebViewer != NULL)
5139         {
5140                 __pWebViewer->ClearFormData();
5141         }
5142         if (r == E_SUCCESS)
5143         {
5144                 AppLogDebug("Cookie cleared success");
5145         }
5146         else
5147         {
5148                 AppLogDebug("Cache cleared fail");
5149         }
5150 }
5151
5152 void
5153 MainForm::OnClearPasswords()
5154 {
5155         result r = E_SUCCESS;
5156
5157         if (__pWebViewer != NULL)
5158         {
5159                 __pWebViewer->ClearLoginFormData();
5160         }
5161         if (r == E_SUCCESS)
5162         {
5163                 AppLogDebug("Cookie cleared success");
5164         }
5165         else
5166         {
5167                 AppLogDebug("Cache cleared fail");
5168         }
5169 }
5170
5171
5172 double
5173 MainForm::findDistance(int x1,int y1,int x2, int y2)
5174 {
5175         int deltaX = Math::Abs(x2 - x1);
5176         int deltaY = Math::Abs(y2 - y1);
5177         double num = deltaX*deltaX + deltaY*deltaY;
5178
5179         if (num >= 0)
5180         {
5181                 double x = num;
5182                 int i;
5183                 for (i = 0; i < 20; i++)
5184                 {
5185                         x = (((x*x)+ num)/(2*x));
5186                 }
5187                 return num;
5188         }
5189         else
5190         {
5191                 return 0.0;
5192         }
5193 }
5194
5195 void
5196 MainForm::OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
5197 {
5198         AppLog("xyz:: MainForm::OnTouchPressed called");
5199         if(__pFindWordControl)
5200         {
5201                 AppLog("MainForm::OnTouchPressed %d",__pFindWordControl->GetShowState());
5202 //              ShowFindWordPanel(__pFindWordControl->GetShowState(), true);
5203         }
5204         __isLongPressedDone = false;
5205
5206
5207
5208         Touch touch;
5209         IList* pList = null;
5210         pList = touch.GetTouchInfoListN(source);
5211
5212         if (pList != null)
5213         {
5214                 int count = pList->GetCount();
5215                 if (count == 1)
5216                 {
5217                         TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));
5218                         __touchPoint1 = pTouchInfo->position;
5219
5220                         /*if (__pAddressbar != null)
5221                         {
5222                                 if (__pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_LOADING_COMPLETE && __pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_LOADING)
5223                                 {
5224                                         if (__pAddressbar->GetAddressbarMode() == ADDRESSBAR_MODE_EDIT)
5225                                         {
5226                                                 __pAddressbar->SaveAddressbarEditText();
5227                                         }
5228                                         __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
5229                                 }
5230
5231                                 __pAddressbar->Invalidate(true);
5232                         }*/
5233                         if (GetAddressbarMode() != ADDRESSBAR_MODE_LOADING_COMPLETE && GetAddressbarMode() != ADDRESSBAR_MODE_LOADING)
5234                         {
5235                                 if (GetAddressbarMode() == ADDRESSBAR_MODE_EDIT)
5236                                 {
5237                                         //__pAddressbar->SaveAddressbarEditText();
5238                                 }
5239                                 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
5240                         }
5241                 }
5242                 else if (count == 2)
5243                 {
5244                         AppLogDebug("MainForm::OnTouchPressed count is two");
5245                         TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));
5246                         __touchPoint1 = pTouchInfo->position;
5247
5248                         pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(1));
5249                         __touchPoint2 = pTouchInfo->position;
5250                 }
5251         }
5252         if( pList != NULL)
5253         {
5254                 pList->RemoveAll(true);
5255                 delete pList;
5256         }
5257         if(__pAddressbar)
5258         {
5259                 __pAddressbar->SetShowState(false);
5260         }
5261         if(__pFooterPanel && __isKeypadOpened == false)
5262         {
5263                 __pFooterPanel->SetShowState(true);
5264         }
5265         RelayoutControls(false);
5266         return;
5267 }
5268
5269 void
5270 MainForm::OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
5271 {
5272 //      __currentWordIndex = 0;
5273         __isLongPressedDone = false;
5274
5275 }
5276
5277 void
5278 MainForm::MoveUiControls()
5279 {
5280 }
5281
5282 void
5283 MainForm::OnTextValueChanged (const Tizen::Ui::Control &source)
5284 {
5285         if(&source == dynamic_cast<Control*>(__pFooterUrlField) && __pFooterUrlField != null)
5286         {
5287                 if(__pFooterUrlField->GetTextLength() == 0)
5288                 {
5289                         __pFooterUrlField->SetKeypadActionEnabled(false);
5290                 }
5291                 else
5292                 {
5293                         __pFooterUrlField->SetKeypadActionEnabled(true);
5294                 }
5295         }
5296         if (__pFindWordEditField != null && __pFindWordEditField->GetShowState() == true)
5297         {
5298                 __currentSearchStr = __pFindWordEditField->GetText();
5299                 if (__currentSearchStr.GetLength() > 0)
5300                 {
5301                         __pFindWordCountLabel->SetShowState(true);
5302                 }
5303                 else
5304                 {
5305 //                      __pFindWordCountLabel->SetShowState(false);
5306                         __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),84,__pFindWordCountLabel->GetHeight());
5307                         __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),214+80,__pFindWordEditField->GetHeight());
5308
5309                 }
5310                 __pFindWordNext->SetEnabled(false);
5311                 __pFindWordPrev->SetEnabled(false);
5312                 __pFindWordNext->Invalidate(true);
5313                 __pFindWordPrev->Invalidate(true);
5314                 __pFindWordCountLabel->SetText(L"0/0");
5315                 __pFindWordCountLabel->Invalidate(true);
5316         }
5317         else if (__pFindWordEditFieldRightToLeft != null && __pFindWordEditFieldRightToLeft->GetShowState() == true)
5318         {
5319                 __currentSearchStr = __pFindWordEditFieldRightToLeft->GetText();
5320                 if (__currentSearchStr.GetLength() > 0)
5321                 {
5322                         __pFindWordCountLabelRightToLeft->SetShowState(true);
5323                 }
5324                 else
5325                 {
5326                         __pFindWordCountLabelRightToLeft->SetShowState(false);
5327                 }
5328
5329                 __pFindWordNext->SetEnabled(false);
5330                 __pFindWordPrev->SetEnabled(false);
5331                 __pFindWordNext->Invalidate(true);
5332                 __pFindWordPrev->Invalidate(true);
5333                 __pFindWordCountLabelRightToLeft->SetText(L"0/0");
5334                 __pFindWordCountLabelRightToLeft->Invalidate(true);
5335         }
5336         AppLog("__currentSearchStr %ls",__currentSearchStr.GetPointer());
5337         if (__currentSearchStr.GetLength() > 0)
5338         {
5339                 StartWordSearch();
5340         }
5341         else
5342         {
5343                 __currentSearchStr = L"aaaaaaaabbbbbbbccccccc";
5344                 StartWordSearch();
5345                 __currentSearchStr = L"";
5346                 AppLogDebug("Enter something");
5347         }
5348 }
5349
5350 result
5351 MainForm::InitMostVisitedSitesPanel(Tizen::Ui::OrientationStatus orientationStatus)
5352 {
5353         return E_SUCCESS;
5354
5355 }
5356
5357 result
5358 MainForm::InitMostVisitedSitesView(Tizen::Ui::OrientationStatus orientationStatus)
5359 {
5360         if(__pWebViewer != null)
5361                 return E_SUCCESS;
5362
5363         AppLog("MainForm::InitMostVisitedSitesView");
5364         result r = E_SUCCESS;
5365
5366
5367         if (__pWebViewer != null && __pMostVisitedListView != null)
5368         {
5369                 return E_SUCCESS;
5370         }
5371
5372         if (__pMostVisitedListView != null)
5373         {
5374                 RemoveControl(__pMostVisitedListView);
5375         }
5376         if(__pMostVisitedSites != null)
5377         {
5378                 __pMostVisitedSites->RemoveAll(true);
5379         }
5380
5381         HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);
5382
5383         __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();
5384         __pMostVisitedListView = new(std::nothrow) ListView();
5385
5386         int height = GetClientAreaBounds().height;
5387
5388         if(__pFooterPanel->GetShowState() == true)
5389         {
5390                 height = height - __pFooterPanel->GetHeight();
5391         }
5392         if(__pAddressbar->GetShowState() == true)
5393         {
5394                 height -= __pAddressbar->GetHeight();
5395         }
5396
5397         r = __pMostVisitedListView->Construct(Tizen::Graphics::Rectangle(0,0 , GetClientAreaBounds().width, height),true,false);
5398
5399         if (r != E_SUCCESS)
5400         {
5401                 delete __pMostVisitedListView;
5402                 AppLogDebug("Addressbar init failed with %s", GetErrorMessage(r));
5403                 return r;
5404         }
5405         __pMostVisitedListView->SetItemProvider(*this);
5406         __pMostVisitedListView->AddListViewItemEventListener(*this);
5407         __pMostVisitedListView->SetTextOfEmptyList(CommonUtil::GetString(L"IDS_BR_BODY_NO_VISITED_SITES"));
5408         AddControl(__pMostVisitedListView);
5409         __pMostVisitedListView->UpdateList();
5410
5411         return E_SUCCESS;
5412
5413 }
5414
5415 String
5416 MainForm::GetImagePath(void)
5417 {
5418
5419         String str;
5420         String formattedTime;
5421         DateTime currentTime;
5422         LocaleManager localManager;
5423         SystemTime::GetCurrentTime(TIME_MODE_WALL, currentTime);
5424
5425         localManager.Construct();
5426         Locale locale = localManager.GetSystemLocale();
5427         //Locale locale(LANGUAGE_ENG, COUNTRY_US);
5428
5429         // Get date formatter
5430         DateTimeFormatter* pTimeFormatter = DateTimeFormatter::CreateDateTimeFormatterN(locale, DATE_TIME_STYLE_DEFAULT);
5431
5432         if (pTimeFormatter)
5433         {
5434                 pTimeFormatter->Format(currentTime, formattedTime);
5435         }
5436
5437         AppLog("current time stamp is %ls", formattedTime.GetPointer());
5438         String delim(L" :");
5439         StringTokenizer strTok(formattedTime, delim);
5440         String token;
5441         String imageName;
5442         String str1("GMT+00");
5443         while (strTok.HasMoreTokens())
5444         {
5445                 strTok.GetNextToken(token); // Osp, StringTokenizer, Sample, code
5446                 if(token.Equals(str1))
5447                         break;
5448                 AppLog("token is %ls", token.GetPointer());
5449                 imageName.Append(token);
5450         }
5451         return imageName;
5452
5453 }
5454
5455 void MainForm::UpdateImageContent(ByteBuffer* aBuffer, String imageName)
5456 {
5457         result r = E_FAILURE;
5458         AppLog("Content manager 1");
5459         ContentId contentId;
5460         ContentManager contentManager;
5461         r = contentManager.Construct();
5462         if(IsFailed(r))
5463         {
5464                 AppLog("Content manager update content result %s" ,GetErrorMessage(r));
5465                 return;
5466         }
5467         Tizen::Base::String contentPath = Tizen::System::Environment::GetMediaPath() + L"Downloads/";
5468         Tizen::Io::Directory::Create(contentPath,true);
5469         if(GetLastResult() == E_FILE_ALREADY_EXIST)
5470         {
5471                 AppLog("Already exists");
5472         }
5473         else if(GetLastResult() == E_SUCCESS)
5474         {
5475                 AppLog("created success");
5476         }
5477         contentPath.Append(imageName);
5478         contentPath.Append(".jpg");
5479         contentId = contentManager.CreateContent(*aBuffer, contentPath);
5480         ShowIndicatorNotification(L"Download Complete",contentPath);
5481         AppLog("Content manager update content result %s" ,GetErrorMessage(GetLastResult()));
5482 }
5483
5484 void
5485 MainForm::ShowIndicatorNotification(const String& messageText, const String& contentPath)
5486 {
5487         AppLogDebug("ENTER");
5488
5489         NotificationRequest request;
5490         request.SetAlertText(messageText);
5491         request.SetTitleText(L"");
5492         request.SetAppMessage(contentPath);
5493         request.SetOngoingActivityType(ONGOING_ACTIVITY_TYPE_TEXT);
5494         request.SetNotificationStyle(NOTIFICATION_STYLE_THUMBNAIL);
5495         Tizen::App::App* pApp = Tizen::App::App::GetInstance();
5496         String homePath = pApp->GetAppRootPath();
5497         String iconPath = homePath + L"res/screen-density-xhigh/Notification_download_complete.png";
5498         AppLog("The iconPath is : %ls", homePath.GetPointer());
5499         request.SetIconFilePath(iconPath);
5500
5501         Tizen::Shell::NotificationManager notiMgr;
5502         notiMgr.Construct();
5503         notiMgr.NotifyOngoingActivity(request);
5504         AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
5505         return;
5506 }
5507
5508 void
5509 MainForm::SetForwardButtonEnabled(bool isEnabled)
5510 {
5511         __pGoForwardBtn->SetEnabled(isEnabled);
5512         __pGoForwardBtn->Invalidate(true);
5513 }
5514
5515 void
5516 MainForm::SetBackButtonEnabled(bool isEnabled)
5517 {
5518         __pGoBackBtn->SetEnabled(isEnabled);
5519         __pGoBackBtn->Invalidate(true);
5520 }
5521
5522 void
5523 MainForm::UpdateProgress(int percentage)
5524 {
5525         __progressPercentage = percentage;
5526         if (percentage == 0 || percentage == 100)
5527         {
5528                 __isLoadingData = false;
5529                 if (percentage == 100)
5530                 {
5531                         __isLoadingCompleted = true;
5532                         __progressPercentage = 0;
5533                 }
5534                 else
5535                 {
5536                         __isLoadingCompleted = false;
5537                 }
5538         }
5539         else
5540         {
5541                 __isLoadingData = true;
5542         }
5543         UpdateProgressBitmap();
5544 }
5545
5546 int
5547 MainForm::GetProgress(void)
5548 {
5549         return __progressPercentage;
5550 }
5551
5552 void
5553 MainForm::UpdateProgressBitmap(void)
5554 {
5555         result r = E_SUCCESS;
5556         if (__pProgressbarLabel == null)
5557                 return;
5558         int w = __pProgressbarLabel->GetWidth();
5559         int h = __pProgressbarLabel->GetHeight();
5560         Canvas canvas;
5561         int progressWidth = 0;
5562         Bitmap* pRetBitmap = null;
5563
5564         if (__progressPercentage == 0 || __progressPercentage == 100)
5565         {
5566                 __pProgressbarLabel->SetShowState(false);
5567                 __pProgressbarLabel->Invalidate(false);
5568                 return;
5569         }
5570         else
5571         {
5572                 __pProgressbarLabel->SetShowState(true);
5573                 __pProgressbarLabel->Invalidate(false);
5574         }
5575
5576         r = canvas.Construct(Rectangle(0, 0, w, h));
5577
5578         if (r != E_SUCCESS)
5579         {
5580                 AppLogException("Canvas construction failed with %s", GetErrorMessage(r));
5581                 return;
5582         }
5583
5584         canvas.Clear();
5585         Bitmap *pBgBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR_BG);
5586
5587         if (pBgBmp != null)
5588         {
5589                 pBgBmp->Scale(Dimension(w, h));
5590                 canvas.DrawBitmap(Point(0,0), *pBgBmp);
5591                 delete pBgBmp;
5592         }
5593
5594         progressWidth = (double) (w) * __progressPercentage / 100;
5595         AppLogDebug("progressWidth: %d", progressWidth);
5596         Bitmap *pProgressBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR);
5597
5598         if (pProgressBmp != null)
5599         {
5600                 pProgressBmp->Scale(Dimension(progressWidth, h));
5601                 canvas.DrawBitmap(Point(0,0), *pProgressBmp);
5602                 delete pProgressBmp;
5603         }
5604
5605         pRetBitmap = new (std::nothrow) Bitmap();
5606
5607         if (pRetBitmap == null)
5608         {
5609                 AppLogException("Bitmap creation failed with %s", GetErrorMessage(r));
5610                 return;
5611         }
5612
5613         pRetBitmap->Construct(canvas, canvas.GetBounds());
5614
5615         if (__pProgressbarLabel != null && pRetBitmap != null)
5616         {
5617                 __pProgressbarLabel->SetBackgroundBitmap(*pRetBitmap);
5618                 __pProgressbarLabel->Invalidate(false);
5619         }
5620
5621         if (pRetBitmap != null)
5622         {
5623                 delete pRetBitmap;
5624                 pRetBitmap = null;
5625         }
5626         return;
5627 }
5628
5629 void
5630 MainForm::ReaderClicked()
5631 {
5632         result r = E_SUCCESS;
5633         ArrayList* pArgList = new(std::nothrow) ArrayList();
5634         if (pArgList != null)
5635         {
5636                 r = pArgList->Construct();
5637                 if (IsFailed(r))
5638                 {
5639                         delete pArgList;
5640                         return;
5641                 }
5642
5643                 r = pArgList->Add(*new(std::nothrow) String(*__pReaderData));
5644                 if (IsFailed(r))
5645                 {
5646                         delete pArgList;
5647                         return;
5648                 }
5649
5650                 r = pArgList->Add(*new(std::nothrow) String(__pWebViewer->GetUrl()));
5651                 if (IsFailed(r))
5652                 {
5653                         delete pArgList;
5654                         return;
5655                 }
5656
5657                 r = pArgList->Add(*new(std::nothrow) String(__pWindowInfo->pageTitle));
5658                 if (IsFailed(r))
5659                 {
5660                         delete pArgList;
5661                         return;
5662                 }
5663         }
5664
5665         SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_ARTICLE_READER, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
5666         return;
5667
5668
5669 }
5670
5671 void MainForm::SetAddressbarMode(AddressBarMode addMode)
5672 {
5673         AppLogDebug("AddressBar::setAddressbarMode to %d",addMode);
5674
5675         __currentAddMode = addMode;
5676
5677         switch(addMode)
5678         {
5679         case ADDRESSBAR_MODE_INVALID:
5680         {
5681                 // do nothing
5682         }
5683         break;
5684         case ADDRESSBAR_MODE_READER:
5685         {
5686                 __pStopBtn->SetShowState(false);
5687                 __pRefreshBtn->SetShowState(false);
5688                 __pClearBtn->SetShowState(false);
5689                 __pReaderBtn->SetShowState(false);
5690         }
5691         break;
5692         case ADDRESSBAR_MODE_LOADING:
5693         {
5694                 __pRefreshBtn->SetShowState(false);
5695                 __pStopBtn->SetShowState(true);
5696                 __pClearBtn->SetShowState(false);
5697                 __pReaderBtn->SetShowState(false);
5698         }
5699         break;
5700         case ADDRESSBAR_MODE_LOADING_COMPLETE:
5701         {
5702 //              SetUrl(__pAddressbar->GetUrl());
5703
5704                 __pRefreshBtn->SetShowState(true);
5705                 __pStopBtn->SetShowState(false);
5706                 __pClearBtn->SetShowState(false);
5707                 __pReaderBtn->SetShowState(false);
5708         }
5709         break;
5710         case ADDRESSBAR_MODE_EDIT:
5711         {
5712                 __pRefreshBtn->SetShowState(false);
5713                 __pStopBtn->SetShowState(false);
5714                 __pReaderBtn->SetShowState(false);
5715                 __pClearBtn->SetShowState(true);
5716         }
5717         break;
5718         }
5719
5720         Invalidate(true);
5721
5722         OnAddressBarModeChanged();
5723 }
5724
5725 AddressBarMode MainForm::GetAddressbarMode(void)
5726 {
5727         return __currentAddMode;
5728 }
5729
5730 void MainForm::SetUrl(const String& url)
5731 {
5732         __displayUrl = url;
5733         if(__displayUrl.GetLength() > 2048)
5734                 __displayUrl.SubString(0,2048,__displayUrl);
5735
5736         if (__pFooterUrlField != NULL)
5737         {
5738                 String removedHttpUrl = RemoveHttpTextFromDisplayURL();
5739                 if (removedHttpUrl.IsEmpty() == false)
5740                 {
5741                         __pFooterUrlField->SetText(removedHttpUrl);
5742                         if(__pAddressbar != NULL && __pAddressbar->HasCurrentFocus() == false)
5743                                 __pAddressbar->SetUrl(__displayUrl);
5744                 }
5745                 else
5746                 {
5747                         __pFooterUrlField->SetText(__displayUrl);
5748                         if(__pAddressbar != NULL && __pAddressbar->HasCurrentFocus() == false)
5749                                 __pAddressbar->SetUrl(__displayUrl);
5750                 }
5751                 if(__pFooterUrlField)
5752                         __pFooterUrlField->SetCursorPosition(__pFooterUrlField->GetTextLength());
5753                 __pFooterUrlField->Invalidate(false);
5754                 if(__pAddressbar != NULL && __pAddressbar->HasFocus())
5755                         __pAddressbar->Invalidate(true);
5756 //              __pFooterUrlField->SetCursorPosition(0);
5757         }
5758 }
5759
5760 String
5761 MainForm::RemoveHttpTextFromDisplayURL(void)
5762 {
5763         AppLog("MainForm::RemoveHttpTextFromDisplayURL __displayUrl %ls",__displayUrl.GetPointer());
5764         int index = -1;
5765 //      bool isHttpText = __displayUrl.Contains(L"http://");
5766         String updatedDisplayUrl;
5767         updatedDisplayUrl.Clear();
5768         if(__displayUrl.IndexOf(L"http://",0,index) == E_SUCCESS && index == 0)
5769         {
5770                 __displayUrl.SubString(7,updatedDisplayUrl);
5771         }
5772         else if(__displayUrl.IndexOf(L"https://",0,index) == E_SUCCESS && index == 0)
5773         {
5774                 __displayUrl.SubString(8,updatedDisplayUrl);
5775         }
5776         return updatedDisplayUrl;
5777 }
5778
5779 void MainForm::OnSharePopupControlStarted(void)
5780 {
5781         __pWebViewer->AddTouchEventListener(*this);
5782 }
5783
5784 void
5785 MainForm::OnUserEventReceivedN (RequestId requestId, Tizen::Base::Collection::IList *pArgs)
5786 {
5787         if (requestId == BACK_GROUND_APP_EVENT)
5788         {
5789                 if(__pWebViewer != null)
5790                 {
5791                         __pWebViewer->Pause();
5792                 }
5793                 if(__pImageMenu)
5794                 {
5795                         __pImageMenu->SetShowState(false);
5796                 }
5797                 if(__pAddressbar != null)
5798                 {
5799                         __pAddressbar->SendUserEvent(BACK_GROUND_APP_EVENT,NULL);
5800                 }
5801         }
5802         else if(requestId == FORE_GROUND_APP_EVENT)
5803         {
5804                 if(__pWebViewer != null)
5805                 {
5806                         __pWebViewer->Resume();
5807                 }
5808                 if(__pAddressbar != null)
5809                 {
5810                         __pAddressbar->SendUserEvent(FORE_GROUND_APP_EVENT,NULL);
5811                 }
5812         }
5813 }
5814
5815 void
5816 MainForm::AddressBarCancelledClicked(const Addressbar& addBar)
5817 {
5818         AppLog("XYZ::MainForm::AddressBarCancelledClicked");
5819         result r = E_SUCCESS;
5820
5821         if (__pAddressbar)
5822                 __pAddressbar->SetShowState(false);
5823
5824         AppLog("akjshdasd 5");
5825         __pFooterPanel->SetShowState(true);
5826
5827         if(__pWebViewer)
5828                 __pWebViewer->SetFocus();
5829         else if(__pMostVisitedListView)
5830                 __pMostVisitedListView->SetFocus();
5831         else if(__pMultiWindowButton)
5832                 __pMultiWindowButton->SetFocus();
5833         else if(__pMoreButton)
5834                 __pMoreButton->SetFocus();
5835
5836         __pAddressbar->SetShowState(false);
5837
5838         RelayoutControls(false);
5839 }
5840
5841 void
5842 MainForm::OnFormMenuRequested (Tizen::Ui::Controls::Form &source)
5843 {
5844         AppLog("MainForm::OnFormMenuRequested called");
5845         InitOptionMenu();
5846         if (__pWindowInfo != NULL && __pWindowInfo->pageUrl != NULL && __pWebViewer && __pWebViewer->GetShowState() == true)
5847         {
5848                 int bookmarkCount=0;
5849                 bool exist = false;
5850                 String url=L"";
5851                 url=__pWindowInfo->pageUrl;
5852                 AppLog("MainForm::OnFormMenuRequested url %ls",url.GetPointer());
5853                 result r = E_SUCCESS;
5854                 Bitmap* pBitmap = null;
5855                 String lastChar = L"";
5856 //              if(url.SubString(url.GetLength()-1,lastChar));
5857 //              if(lastChar == L"/")
5858 //              {
5859 //                      bool exist1 = false;
5860 //                      bool exist2 = false;
5861 //                      r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist1);
5862 //                      url.SubString(0,url.GetLength() - 1,url);
5863 //                      r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist2);
5864 //                      exist = exist1 | exist2;
5865 //              }
5866 //              else
5867 //              {
5868                         r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist);
5869                         if (IsFailed(r))
5870                         {
5871                                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED failed");
5872                                 return;
5873                         }
5874 //              }
5875                 if ( exist == true)
5876                 {
5877                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_ON_TEMP);
5878                 }
5879                 else
5880                 {
5881                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_OFF_TEMP);
5882                 }
5883                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 3");
5884
5885                 if (__pOptionMenu->GetItemCount() == 9)
5886                 {
5887                         r = __pOptionMenu->SetItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
5888                 }
5889                 else
5890                 {
5891                         r = __pOptionMenu->InsertItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
5892                 }
5893
5894                 if (IsFailed(r))
5895                 {
5896                         AppLogException("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED Add to Bookmark failed with %s", GetErrorMessage(r));
5897                         delete pBitmap;
5898                         return ;
5899                 }
5900                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 4");
5901                 if (__pOptionMenu->GetItemCount() != 9)
5902                 {
5903                         __pOptionMenu->InsertItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED);
5904                         __pOptionMenu->InsertItemAt(2,CommonUtil::GetString(L"IDS_BR_BODY_PRINT"), IDA_PRINT_CLICKED);
5905 //                              __pOptionMenu->InsertItemAt(2,L"Add to Home"/*CommonUtil::GetString(L"IDS_BR_OPT_SHARE")*/, IDA_ADD_TO_HOME_CLICKED);
5906                         __pOptionMenu->InsertItemAt(3,CommonUtil::GetString(L"IDS_BR_OPT_SHARE"), IDA_SHARE_CLICKED);
5907                         __pOptionMenu->InsertItemAt(4,CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"), IDA_FINDONPAGE_CLICKED);
5908                         __pOptionMenu->SetMaxVisibleItemsCount(6);
5909                 }
5910                 if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
5911                 {
5912                         AppLog(" Orientation landscape");
5913                         __pOptionMenu->SetMaxVisibleItemsCount(5);
5914                 }
5915                 else
5916                 {
5917                         AppLog(" Orientation potrait");
5918                         __pOptionMenu->SetMaxVisibleItemsCount(6);
5919                 }
5920
5921                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 5");
5922                 delete pBitmap;
5923         }
5924         AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED end");
5925         if(__pAddressbar)
5926                 __pAddressbar->SetShowState(false);
5927         SetFocus();
5928         __pFooterPanel->SetShowState(true);
5929         result r = __pOptionMenu->SetShowState(true);
5930         AppLog("ajsghd %s",GetErrorMessage(r));
5931         RelayoutControls(false);
5932         __pOptionMenu->Invalidate(true);
5933         __pOptionMenu->Show();
5934
5935 }