Fixed Nabi issues N_SE-50613, N_SE-49431, N_SE-50779, N_SE-50601, N_SE-50559
[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.9.png";
59 static const wchar_t* IDB_FINDWORD_INPUT_FIELD_BG = L"I01_toolbar_input_field_findword.9.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                 Clipboard* pClipboard = Clipboard::GetInstance();
2491
2492                 if(pClipboard == null)
2493                 {
2494                         return;
2495                 }
2496                 // Retrieves a latest item
2497                 ClipboardItem* pItem = pClipboard->RetrieveLatestItemN(CLIPBOARD_DATA_TYPE_TEXT | CLIPBOARD_DATA_TYPE_HTML);
2498
2499                 if(pItem == null)
2500                 {
2501                         return;
2502                 }
2503                 //Gets data from the clipboard item
2504                 String* pString = dynamic_cast<String*>(pItem->GetData());
2505
2506                 if (pString != null)
2507                 {
2508                         String idElement = __pHitElementResult->GetAttributeValue(L"id");
2509                         String nameElement = __pHitElementResult->GetAttributeValue(L"name");
2510                         String tagElement  = __pHitElementResult->GetTagName();
2511                         AppLog("MainForm::IDA_PASTE_TEXT_CLICKED id is %ls",idElement.GetPointer());
2512                         String str = L"document.getElementsByName('";
2513                         str.Append(nameElement);
2514                         str.Append("').length");
2515                         String* pCount = __pWebViewer->EvaluateJavascriptN(str);
2516
2517                         String script;
2518                         if(idElement.GetLength() != 0)
2519                         {
2520                                 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;   }  } ";
2521                                 script.Append("insertAtCursor('");
2522                                 script.Append(idElement);
2523                                 script.Append("',");
2524                                 script.Append("\"");
2525                                 script.Append(*pString);
2526                                 script.Append("\");");
2527                         }
2528                         else if (nameElement.GetLength() != 0 && pCount->Equals("1",false) == true)
2529                         {
2530                                 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;   }  } ";
2531                                 script.Append("insertAtCursor(document.getElementsByName('");
2532                                 script.Append(nameElement);
2533                                 script.Append("')[0],");
2534                                 script.Append("\"");
2535                                 script.Append(*pString);
2536                                 script.Append("\");");
2537                         }
2538                         else if(tagElement.GetLength() != 0) //adding for twitter post page
2539                         {
2540                                 script = L"function insertAtCursor(myField, myValue) {  if (document.selection) {   document.getElementsByTagName(myField)[0].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 {    document.getElementsByTagName(myField)[0].value += myValue;   }  } ";
2541                                 script.Append("insertAtCursor(document.getElementsByTagName('");
2542                                 script.Append(tagElement);
2543                                 script.Append("')[0],");
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
3110 void
3111 MainForm::OnKeypadWillOpen(Tizen::Ui::Control& source)
3112 {
3113         AppLog("XYZ::MainForm::OnKeypadWillOpen");
3114
3115 }
3116
3117 void
3118 MainForm::OnKeypadOpened(Tizen::Ui::Control& source)
3119 {
3120         AppLog("XYZ::MainForm::OnKeypadOpened");
3121         __isKeypadOpened = true;
3122         __pFooterPanel->SetShowState(false);
3123
3124 }
3125
3126 void
3127 MainForm::OnKeypadClosed(Tizen::Ui::Control& source)
3128 {
3129         AppLog("XYZ::MainForm::OnKeypadClosed");
3130         __isKeypadOpened = false;
3131         __pFooterPanel->SetShowState(true);
3132         RelayoutControls(true);
3133 }
3134
3135 void
3136 MainForm::OnKeypadBoundsChanged(Tizen::Ui::Control &source)
3137 {
3138         AppLog("XYZ::KeypadBoundsChanged");
3139         RelayoutControls(false);
3140 }
3141
3142 void
3143 MainForm::OnLoadingErrorOccurred(LoadingErrorType error,
3144                 const Tizen::Base::String& reason)
3145 {
3146         AppLogDebug("Error: %d, %ls", error, reason.GetPointer());
3147 }
3148
3149 void
3150 MainForm::OnLoadingCompleted(void)
3151 {
3152         AppLog("MainForm::OnLoadingCompleted start");
3153         DateTime date;
3154         result r = E_SUCCESS;
3155
3156         if (__pWebViewer == null)
3157         {
3158                 return;
3159         }
3160
3161         if (__pAddressbar == null)
3162         {
3163                 return;
3164         }
3165
3166         if(__pImageMenu && __pImageMenu->GetShowState())
3167         {
3168                 __pImageMenu->SetShowState(false);
3169                 __pImageMenu->Invalidate(true);
3170         }
3171
3172         if (__pWebViewer->CanGoForward())
3173         {
3174                 //__pAddressbar->SetForwardButtonEnabled(true);
3175                 SetForwardButtonEnabled(true);
3176         }
3177         else
3178         {
3179                 //__pAddressbar->SetForwardButtonEnabled(false);
3180                 SetForwardButtonEnabled(false);
3181         }
3182
3183         /*if (__pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_EDIT)
3184         {
3185                 __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
3186
3187                 //__pAddressbar->UpdateProgress(0);
3188                 UpdateProgress(0);
3189         }*/
3190
3191         if(GetAddressbarMode() != ADDRESSBAR_MODE_EDIT)
3192         {
3193                 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
3194                 UpdateProgress(0);
3195         }
3196
3197         AppLog("PrivateBrowsing %d",__pWebViewer->IsPrivateBrowsingEnabled());
3198         bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();
3199         if (isPrivateBrowsing == false)
3200         {
3201                 if(__pHistory != null)
3202                 {
3203                         delete __pHistory;
3204                         __pHistory = null;
3205                 }
3206
3207                 __pHistory = new(std::nothrow) History;
3208                 HistoryPresentationModel::GetCurrentDateTime(date);
3209                 if (__pWindowInfo)
3210                 {
3211                         __pHistory->SetHistoryTitle(__pWindowInfo->pageTitle);
3212                         AppLogDebug("MainForm::OnLoadingCompleted pagetitle = %ls", __pWindowInfo->pageTitle.GetPointer());
3213
3214                         __pHistory->SetHistoryUrl(__pWindowInfo->pageUrl);
3215                         AppLogDebug("MainForm::OnLoadingCompleted pageUrl = %ls", __pWindowInfo->pageUrl.GetPointer());
3216                 }
3217                 __pHistory->SetVisitedTime(date);
3218
3219                 if (__pWebViewer != null)
3220                 {
3221                         AppLog("MainForm::OnLoadingCompleted setting the fav icon 0");
3222
3223                         Bitmap* pTempBitmap = __pWebViewer->GetFaviconN();
3224                         if (pTempBitmap != null)
3225                         {
3226                                 AppLog("MainForm::OnLoadingCompleted setting the fav icon 1");
3227                                 __pHistory->SetFavIconBitmap(*pTempBitmap);
3228                         }
3229
3230                         AppLog("MainForm::OnLoadingCompleted setting the fav icon 2");
3231                 }
3232
3233                 Canvas* pCanvas = __pWebViewer->GetCanvasN();
3234                 Bitmap* pBitmap = new(std::nothrow) Bitmap();
3235                 if ( pCanvas != null &&  pCanvas != null && pBitmap != null)
3236                 {
3237                         pBitmap->Construct(*pCanvas, pCanvas->GetBounds());
3238                         pBitmap->Scale(Dimension(pBitmap->GetWidth()/4, pBitmap->GetHeight()/4));
3239                         __pHistory->SetThumbnail(pBitmap);
3240                 }
3241                 Bitmap *pFavIcon = __pWebViewer->GetFaviconN();
3242                 if (pFavIcon)
3243                 {
3244                         __pHistory->SetFavIconBitmap(*pFavIcon);
3245                         delete pFavIcon;
3246                 }
3247
3248                 HistoryPresentationModel::GetInstance()->SaveTempHistory(*__pHistory);
3249                 //delete pHistory;
3250         }
3251         else
3252         {
3253                 return;
3254         }
3255 //      if (__pWindowInfo && __pWindowInfo->faviconUrl == "")
3256         {
3257                 // temperary fixed (webpage can be not loaded)
3258                 UpdateFavicon();
3259         }
3260
3261         bool isReaderEnabled = SettingPresentationModel::GetInstance()->IsRunReaderEnabled();
3262         if (isReaderEnabled == true)
3263         {
3264                 if (__pReaderData)
3265                 {
3266                         delete __pReaderData;
3267                         __pReaderData = null;
3268                 }
3269                 String filePath = Tizen::App::UiApp::GetInstance()->GetAppRootPath();
3270                 filePath.Append(L"data/reader.js");
3271                 File file;
3272                 char buffer[10];
3273                 char buffer2[5];
3274                 int i;
3275                 int readCnt;
3276                 result r = E_SUCCESS;
3277                 FileAttributes attr;
3278
3279                 File::GetAttributes(filePath,attr);
3280                 // Creates file
3281                 r = file.Construct(filePath, L"r+");
3282                 if (IsFailed(r))
3283                 {
3284                         AppLogDebug("File construct failed with %s", GetErrorMessage(r));
3285                         return;
3286                 }
3287                 char* pScript = new(std::nothrow) char[attr.GetFileSize()+1];
3288                 if(pScript == null)
3289                 {
3290                         AppLogDebug("Memory allocation for file failed %s", GetErrorMessage(r));
3291                         return;
3292                 }
3293 //              file.Read(pScript,attr.GetFileSize());
3294 //
3295 //              AppLogDebug("scipt length %d",strlen(pScript));
3296                 String strScript = L"";
3297 //              strScript.Append(pScript);
3298 //              for(int i=0; i<25; i++)
3299                 {
3300                         file.Read(pScript,attr.GetFileSize());
3301 //                      AppLog("xyzz tell %d",file.Tell());
3302 //                      r = strScript.Append(pScript);
3303 //                      AppLog("xyzz append result %s",GetErrorMessage(r));
3304 //                      AppLog("xyzz strScript length %d",strScript.GetLength());
3305                 }
3306 //              AppLog("xyzz final strScript length %d",strScript.GetLength());
3307
3308                 __pReaderData = __pWebViewer->EvaluateJavascriptN(pScript);
3309                 if (__pReaderData == null)
3310                 {
3311                         AppLog("MainScene::data is null Error :%s",GetErrorMessage(GetLastResult()));
3312                         __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>");
3313 //                      return;
3314                 }
3315                 AppLogDebug("evaluateJavascript result %s , __pReaderData %ls",GetErrorMessage(GetLastResult()),__pReaderData->GetPointer());
3316                 if (__pReaderData->CompareTo(L"undefined") != 0 && __pReaderData->CompareTo(L"") != 0)
3317                 {
3318                         //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_READER);
3319                         SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_READER);
3320                 }
3321                 delete[] pScript;
3322         }
3323
3324
3325         AppLog("MainForm::OnLoadingCompleted done");
3326 }
3327
3328 void
3329 MainForm::OnEstimatedProgress(int progress)
3330 {
3331         AppLogDebug("MainForm::OnEstimatedProgress entered %d",progress);
3332
3333         if (progress < DEFAULT_PROGRESS_PERCENTAGE)
3334                 progress = DEFAULT_PROGRESS_PERCENTAGE;
3335         //if(__pAddressbar)
3336         //      __pAddressbar->UpdateProgress(progress);
3337         UpdateProgress(progress);
3338 }
3339
3340 void MainForm::OnFaviconReceived(const Tizen::Graphics::Bitmap& favicon)
3341 {
3342         AppLog("MainForm::OnFaviconReceived");
3343         if (__pWebViewer != null && __pHistory != null && __pWindowInfo != null && (__pWindowInfo->pageUrl.CompareTo(__pHistory->GetHistoryUrl()) == 0))
3344         {
3345                 Bitmap* favIcon = __pWebViewer->GetFaviconN();
3346                 if(favIcon != null)
3347                 {
3348                         HistoryPresentationModel::GetInstance()->UpdateHistoryFavIcon(*__pHistory, *favIcon);
3349                         delete favIcon;
3350                 }
3351         }
3352 }
3353
3354 void
3355 MainForm::OnUrlValueChanged(Addressbar&)
3356 {
3357         Invalidate(true);
3358 }
3359
3360 void
3361 MainForm::OnUrlSubmitted(Addressbar& addBar)
3362 {
3363         AppLog("MainForm::OnUrlSubmitted");
3364         String url = addBar.GetUrl();
3365         AppLog("MainForm::OnUrlSubmitted url is %ls", url.GetPointer());
3366
3367         if(__pFooterUrlField)
3368                 __pFooterUrlField->SetCursorPosition(__pFooterUrlField->GetTextLength());
3369         AddressBarCancelledClicked(*__pAddressbar);
3370         LoadUrl(url);
3371 }
3372
3373 void
3374 MainForm::LoadUrl(String& url)
3375 {
3376         url.Trim();
3377         String encodedUrl;
3378 //      UrlEncoder::Encode(url, L"UTF-8", encodedUrl);
3379         AppLogDebug("MainForm::LoadUrl enter");
3380
3381         if (__pWebViewer != null)
3382         {
3383                 __pWebViewer->SetShowState(true);
3384                 __pWebViewer->Invalidate(true);
3385         }
3386
3387         if (url.CompareTo(L"") == 0)
3388         {
3389                 return;
3390         }
3391         if(__pFooterPanel != null)
3392         {
3393                 __pFooterPanel->SetShowState(true);
3394                 __pFooterPanel->Invalidate(true);
3395         }
3396         InitWebControl();
3397
3398         bool ret = false;
3399         bool flag = false;
3400
3401         String firstPattern(L"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");
3402         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)
3403
3404         RegularExpression firstRegex;
3405         RegularExpression secondRegex;
3406
3407         firstRegex.Construct(firstPattern, REGEX_CASELESS);
3408         secondRegex.Construct(secondPattern, REGEX_CASELESS);
3409
3410         // Match
3411         ret = firstRegex.Match(url, false); // This returns true value
3412         flag = secondRegex.Match(url, false);  // Checks whether URL typed is of type  abc.com (i.e without protocol in front of it)
3413
3414         if (ret == true && __pWebViewer != null)
3415         {
3416                 SetUrl(url);
3417                 __pWebViewer->LoadUrl(url);
3418         }
3419         else if(__pWebViewer != null)
3420         {
3421                 String tempUrl = L"http://";
3422                 tempUrl.Append(url);
3423
3424                 if (flag == true)
3425                 {
3426                         __pWebViewer->LoadUrl(tempUrl);
3427                 }
3428                 else
3429                 {
3430                                 UrlEncoder::Encode(url, L"UTF-8", encodedUrl);
3431                         __pWebViewer->LoadUrl(SettingPresentationModel::GetInstance()->GetSearchUrl(encodedUrl));
3432                 }
3433         }
3434         if (__pAddressbar != null)
3435         {
3436                 //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
3437                 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
3438         }
3439
3440         AppLogDebug("MainForm::LoadUrl exit");
3441
3442         return;
3443
3444 }
3445
3446 void
3447 MainForm::OnFocusGained(const Tizen::Ui::Control& source)
3448 {
3449         AppLog("MainForm::OnFocusGained");
3450         if(__pFooterPanel)
3451         {
3452                 __pFooterPanel->SetShowState(false);
3453         }
3454
3455         if(__pAddressbar)
3456         {
3457                 __pAddressbar->SetShowState(true);
3458                 __pAddressbar->SetAddressbarURLFocus();
3459         }
3460         if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
3461         {
3462                 __currentSearchStr = L"";
3463                 __currentWordIndex = 0;
3464                 __maxOccurrances = 0;
3465
3466                 if (__pFindWordPanelLeftToRight && __pFindWordPanelLeftToRight->GetShowState() == true)
3467                 {
3468                         __pFindWordEditField->SetText(L"");
3469                         __pFindWordEditField->HideKeypad();
3470                         __pFindWordControl->SetShowState(false);
3471                         __pFindWordCountLabel->SetText(L"0/0");
3472                 }
3473                 else if(__pFindWordPanelRightToLeft && __pFindWordPanelRightToLeft->GetShowState() == true)
3474                 {
3475                         __pFindWordEditFieldRightToLeft->SetText(L"");
3476                         __pFindWordEditFieldRightToLeft->HideKeypad();
3477                         __pFindWordControl->SetShowState(false);
3478                         __pFindWordCountLabelRightToLeft->SetText(L"0/0");
3479                 }
3480
3481                 __pFindWordNext->SetEnabled(false);
3482                 __pFindWordPrev->SetEnabled(false);
3483
3484                 __pWebViewer->SearchTextAllAsync(L"",true);
3485                 __pFindWordControl->SetShowState(false);
3486         }
3487         RelayoutControls(false);
3488 }
3489
3490 void
3491 MainForm::OnFocusLost(const Tizen::Ui::Control& source)
3492 {
3493         AppLog("MainForm::OnFocusLost called");
3494 }
3495
3496 void
3497 MainForm::OnStopClicked(Addressbar& addBar)
3498 {
3499         AppLogDebug("MainForm::OnStopClicked called");
3500         if (__pWebViewer)
3501         {
3502                 //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
3503                 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
3504                 __pWebViewer->StopLoading();
3505                 RequestRedraw(true);
3506         }
3507 }
3508
3509 void
3510 MainForm::OnBackClicked(/*const Addressbar& addBar*/)
3511 {
3512         //      AppLog("MainForm::OnBackClicked");
3513         result r = E_FAILURE;
3514         if(__pImageMenu && __pImageMenu->GetShowState() == true)
3515         {
3516                 AppLog("Hiding the menu");
3517                 __pImageMenu->SetShowState(false);
3518         }
3519
3520         if (__pWebViewer && __pWebViewer->CanGoBack())
3521         {
3522                 __pWebViewer->GoBack();
3523         }
3524         else if(__pWindowInfo && __pWindowInfo->isJavascriptInitiated == false)
3525         {
3526                 UiApp* pApp = null;
3527                 pApp = UiApp::GetInstance();
3528                 if (pApp != null)
3529                 {
3530                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3531                         if (IsFailed(r))
3532                         {
3533                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3534                                 return;
3535                         }
3536                 }
3537         }
3538         else
3539         {
3540                 UiApp* pApp = null;
3541                 WindowInfo* pWindowInfo = null;
3542                 int totalCount = 0;
3543                 SceneManager* pSceneManager = SceneManager::GetInstance();
3544                 if (pSceneManager == null)
3545                 {
3546                         return;
3547                 }
3548                 ArrayList* pAllWindowList = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList();
3549                 if (pAllWindowList == NULL)
3550                 {
3551                         pApp = UiApp::GetInstance();
3552                         if (pApp != null)
3553                         {
3554                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3555                                 if (IsFailed(r))
3556                                 {
3557                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3558                                         return;
3559                                 }
3560                         }
3561                 }
3562                 if (pAllWindowList != null)
3563                 {
3564                         totalCount = pAllWindowList->GetCount();
3565                 }
3566                 for (int count = 0; count < totalCount; count++)
3567                 {
3568                         pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count));
3569                         if (pWindowInfo == null)
3570                         {
3571                                 pApp = UiApp::GetInstance();
3572                                 if (pApp != null)
3573                                 {
3574                                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3575                                         if (IsFailed(r))
3576                                         {
3577                                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3578                                                 return;
3579                                         }
3580                                 }
3581                         }
3582                         if (pSceneManager != null && pWindowInfo != null && pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID && pWindowInfo->isJavascriptInitiated == true)
3583                         {
3584                                 r = SceneRegister::DestroyAndUnRegisterScene(pWindowInfo->sceneID);
3585                                 if (IsFailed(r))
3586                                 {
3587                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3588                                         return;
3589                                 }
3590                                 r = pAllWindowList->RemoveAt(count, true);
3591                                 __pWindowInfo = null;
3592                                 if (IsFailed(r))
3593                                 {
3594                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3595                                         return;
3596                                 }
3597                                 if(count > 0)
3598                                 {
3599                                         pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count - 1));
3600                                 }
3601                                 else if(pAllWindowList->GetCount() > 0)
3602                                 {
3603                                         pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1));
3604                                 }
3605                                 else
3606                                 {
3607                                         pApp = UiApp::GetInstance();
3608                                         if (pApp != null)
3609                                         {
3610                                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3611                                                 return;
3612                                         }
3613
3614                                 }
3615                                 if (pWindowInfo == null)
3616                                 {
3617                                         pApp = UiApp::GetInstance();
3618                                         if (pApp != null)
3619                                         {
3620                                                 r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
3621                                                 return;
3622                                         }
3623                                 }
3624                                 else
3625                                 {
3626                                         r = pSceneManager->GoForward(ForwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_HISTORY_OPTION_ADD_HISTORY,SCENE_DESTROY_OPTION_DESTROY));
3627 //                                      r = pSceneManager->GoBackward(BackwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE));
3628                                         if (IsFailed(r))
3629                                         {
3630                                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
3631                                                 return;
3632                                         }
3633                                 }
3634                                 break;
3635                         }
3636
3637                 }
3638
3639         }
3640
3641 }
3642
3643 void
3644 MainForm::OnForwardClicked(/*const Addressbar& addBar*/)
3645 {
3646         AppLog("MainForm::OnForwardClicked");
3647         if (__pWebViewer == null)
3648                 return;
3649
3650         if (__pWebViewer->CanGoForward())
3651         {
3652                 __pWebViewer->GoForward();
3653         }
3654 }
3655
3656 void
3657 MainForm::OnAddressBarFocusGained(const Addressbar& addBar)
3658 {
3659         AppLog("XYZ::MainForm::OnAddressBarFocusGained");
3660         if(__pFooterPanel != null)
3661         {
3662                 __pFooterPanel->SetShowState(false);
3663         }
3664
3665         if (__pAddressbar != null && __pAddressbar->GetShowState() == false)
3666         {
3667                 __pAddressbar->SetShowState(true);
3668                 __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));
3669         }
3670
3671         RelayoutControls(false);
3672 }
3673
3674 void
3675 MainForm::OnAddressBarFocusLost(const Addressbar& addBar, bool addressbarKeyPadState)
3676 {
3677         AppLog("XYZ::MainForm::OnAddressBarFocusLost");
3678
3679         int Height = GetClientAreaBounds().height;
3680         AppLog("MainForm::OnAddressBarFocusLost height is %d",Height);
3681
3682         RelayoutControls(false);
3683 }
3684
3685 void
3686 MainForm::OnAddressCancelledClicked(const Addressbar& addBar)
3687 {
3688         AddressBarCancelledClicked(addBar);
3689 }
3690
3691 void
3692 MainForm::OnAddressBarModeChanged(/*const Addressbar& addBar*/)
3693 {
3694         __prevAddressBarMode = __curAddressBarMode;
3695
3696         if (__pAddressbar != null)
3697         {
3698                 __curAddressBarMode = GetAddressbarMode();
3699         }
3700
3701         if (__curAddressBarMode == ADDRESSBAR_MODE_EDIT)
3702         {
3703                 __adressPanelPosition.y = 0;
3704                 if (__pAddressbar != null)
3705                 {
3706                         __webControlPosition.y = __pAddressbar->GetHeight() - 12;
3707                         __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));
3708                         __pAddressbar->Invalidate(true);
3709                 }
3710                 if (__pWebViewer != null)
3711                 {
3712                         __pWebViewer->StopLoading();
3713                 }
3714         }
3715         else if(__curAddressBarMode == ADDRESSBAR_MODE_LOADING)
3716         {
3717                 __adressPanelPosition.y = 0;
3718                 if (__pAddressbar != null)
3719                 {
3720                         __webControlPosition.y = 0;
3721                         __pAddressbar->SetBounds(Rectangle(0, __pAddressbar->GetY() - __pAddressbar->GetHeight(), GetClientAreaBounds().width, __pAddressbar->GetHeight()));
3722                         __pAddressbar->Invalidate(true);
3723                 }
3724         }
3725 }
3726
3727 void
3728 MainForm::OnClipboardClosed(const Addressbar& addBar)
3729 {
3730         AppLog("XYZ::MainForm::OnClipboardClosed");
3731         if (__pFooterPanel && __pAddressbar->GetShowState() == false)
3732         {
3733                 AppLog("akjshdasd 3");
3734                 __pFooterPanel->SetShowState(true);
3735         }
3736         __isKeypadOpened = false;
3737         RelayoutControls(false);
3738 }
3739
3740 void
3741 MainForm::OnAddressBarKeypadClosed(const Addressbar& addBar, bool footerState)
3742 {
3743         AppLog("XYZ::MainForm::OnAddressBarKeypadClosed");
3744         if (__pFooterPanel && __pAddressbar->GetShowState() == false)
3745         {
3746                 AppLog("akjshdasd 3");
3747                 __pFooterPanel->SetShowState(true);
3748         }
3749         __isKeypadOpened = false;
3750         if(__pNotification && __pNotification->GetShowState())
3751         {
3752                 __pNotification->SetPosition(0,GetClientAreaBounds().height - __pNotification->GetHeight());
3753         }
3754
3755         RelayoutControls(false,footerState);
3756 }
3757
3758 void
3759 MainForm::OnAddressBarKeypadOpened(const Addressbar& addBar)
3760 {
3761         AppLog("XYZ::MainForm::OnAddressBarKeypadOpened");
3762         __isKeypadOpened = true;
3763         if(__pNotification && __pNotification->GetShowState())
3764         {
3765                 __pNotification->SetPosition(0,GetClientAreaBounds().height - __pNotification->GetHeight());
3766         }
3767         RelayoutControls(false);
3768 }
3769
3770 void
3771 MainForm::OnAddressBarKeypadWillOpen(const Addressbar& addBar)
3772 {
3773         __isKeypadOpened = true;
3774         __pFooterPanel->SetShowState(false);
3775 }
3776
3777 void
3778 MainForm::OnAddressBarKeypadBoundsChanged(const Addressbar& addBar)
3779 {
3780         AppLog("XYZ::MainForm::OnAddressBarKeypadBoundsChanged");
3781         RelayoutControls(false);
3782 }
3783
3784 void
3785 MainForm::OnPageTitleReceived(const Tizen::Base::String& title)
3786 {
3787         AppLog("MainForm::OnPageTitleReceived %ls",title.GetPointer());
3788         if (__pWindowInfo)
3789         {
3790                 __pWindowInfo->pageTitle = title;
3791                 if (__pWebViewer != null)
3792                 {
3793                         __pWindowInfo->pageUrl = __pWebViewer->GetUrl();
3794                         AppLog("MainForm::OnPageTitleReceived url %ls",__pWindowInfo->pageUrl.GetPointer());
3795                 }
3796         }
3797         if (__pAddressbar != null && __pWebViewer != null)
3798         {
3799                 SetUrl(__pWebViewer->GetUrl());
3800                 __pAddressbar->Invalidate(true);
3801         }
3802 }
3803
3804 void
3805 MainForm::UpdateFavicon(void)
3806 {
3807         bool urlImageType = false;
3808         String *tempPath = null;
3809         if(__pWebViewer)
3810                 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();");
3811         Bitmap* pBitmap = null;
3812
3813         if (tempPath && tempPath->GetLength() > 0 && tempPath->CompareTo(L"undefined") != 0)
3814         {
3815                 if (__pWindowInfo != null)
3816                 {
3817                         Uri url;
3818                         url.SetUri(*tempPath);
3819                         if (url.GetHost().GetLength() == 0)
3820                         {
3821                                 Uri webUrl;
3822                                 if(__pWebViewer)
3823                                         webUrl.SetUri(__pWebViewer->GetUrl());
3824                                 result r = url.SetHost(webUrl.GetHost());
3825                                 if(IsFailed(r))
3826                                 {
3827                                         delete tempPath;
3828                                         return;
3829                                 }
3830                         }
3831                         if (url.GetScheme().GetLength() == 0)
3832                         {
3833                                 Uri webUrl;
3834                                 if(__pWebViewer)
3835                                         webUrl.SetUri(__pWebViewer->GetUrl());
3836                                 url.SetScheme(webUrl.GetScheme());
3837                         }
3838                         __pWindowInfo->faviconUrl = url.ToString();
3839
3840                         pBitmap = __pWebViewer->GetFaviconN();
3841
3842                         if (pBitmap != null)
3843                         {
3844                                 if (__pWindowInfo->pFavicon != NULL)
3845                                 {
3846                                         __pWindowInfo->pFavicon = null;
3847                                 }
3848                                 __pWindowInfo->pFavicon = new(std::nothrow) Bitmap();
3849                                 __pWindowInfo->pFavicon->Construct(*pBitmap,Rectangle(0,0,pBitmap->GetWidth(),pBitmap->GetHeight()));
3850
3851                                 __pAddressbar->SetFaviconBitmap(*__pWindowInfo->pFavicon);
3852
3853                                 FaviconManager::GetInstance()->SaveFavicon(*__pWindowInfo->pFavicon, __pWindowInfo->faviconUrl);
3854                         }
3855                         else if(__pWindowInfo->pFavicon != null)
3856                         {
3857                                 __pAddressbar->SetFaviconBitmap(*__pWindowInfo->pFavicon);
3858                         }
3859                         else
3860                         {
3861                                 Bitmap *pDefaultBmp = FaviconManager::GetInstance()->GetDefaultFaviconN();
3862                                 if(pDefaultBmp != null)
3863                                 {
3864                                         __pAddressbar->SetFaviconBitmap(*pDefaultBmp);
3865                                 }
3866                         }
3867                         if(pBitmap)
3868                         {
3869                                 delete pBitmap;
3870                                 pBitmap = null;
3871                         }
3872                 }
3873                 delete tempPath;
3874         }
3875         else
3876         {
3877                 // do not remove
3878                 if(tempPath != null)
3879                 {
3880                         delete tempPath;
3881                 }
3882                 AppLogDebug("Error occured: %s", GetErrorMessage(GetLastResult()));
3883         }
3884
3885 }
3886
3887 bool
3888 MainForm::OnLoadingRequested(const Tizen::Base::String& url,
3889                 Tizen::Web::Controls::WebNavigationType type)
3890 {
3891         AppLog("urlk %ls",url.GetPointer());
3892         // when load new page if find word panel is open its show state is false
3893         if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
3894         {
3895                 __currentSearchStr = L"";
3896                 __currentWordIndex = 0;
3897                 __maxOccurrances = 0;
3898                 __pFindWordEditField->SetText(L"");
3899                 __pFindWordNext->SetEnabled(false);
3900                 __pFindWordPrev->SetEnabled(false);
3901                 __pFindWordCountLabel->SetText(L"0/0");
3902                 __pFindWordControl->SetShowState(false);
3903                 __pFindWordEditField->HideKeypad();
3904                 RelayoutControls(false);
3905         }
3906
3907         __pFooterPanel->Invalidate(true);
3908
3909         Uri uriInfo;
3910         uriInfo.SetUri(url);
3911
3912         if(url.Contains(IDS_TIZEN_SERVICE))
3913         {
3914                 String appId;
3915                 String delim(L":;,");
3916
3917                 // Creates a StringTokenizer instance
3918                 StringTokenizer strTok(url, delim);
3919
3920                 int count = strTok.GetTokenCount();     // count == 4
3921
3922                 HashMap *pMap = new HashMap();
3923                 pMap->Construct();
3924
3925                 String token;
3926                 String key;
3927                 String value;
3928                 while (strTok.HasMoreTokens())
3929                 {
3930                         AppLog("Token: %ls", token.GetPointer());
3931                         strTok.GetNextToken(token);         // Tizen, StringTokenizer, Sample, code
3932                         if(token.Contains(IDS_APPID))
3933                         {
3934                                 token.SubString(6, appId);
3935                                 AppLog("AppID:%ls", appId.GetPointer());
3936                         }
3937                         else if(token.Contains(IDS_KEY))
3938                         {
3939                                 token.SubString(4, key);
3940                                 AppLog("key:%ls", key.GetPointer());
3941                         }
3942                         else if(token.Contains(IDS_VALUE))
3943                         {
3944                                 token.SubString(6, value);
3945                                 AppLog("value:%ls", value.GetPointer());
3946                         }
3947                 }
3948                 pMap->Add(key, value);
3949
3950                 if(appId != "")
3951                 {
3952                         AppControl *pAppControl = null;
3953                         String operationId = L"http://tizen.org/appcontrol/operation/main";
3954                         pAppControl = dynamic_cast<AppControl*>(AppManager::FindAppControlN(appId, operationId));
3955                         if(pAppControl)
3956                         {
3957                                 result r = pAppControl->Start(null, null, pMap, null);
3958                         }
3959                         else
3960                         {
3961                                 AppLogException("AppControl not found");
3962                         }
3963                         return true;
3964                 }
3965         }
3966
3967         return false;
3968 }
3969
3970 DecisionPolicy
3971 MainForm::OnWebDataReceived(const Tizen::Base::String& mime,
3972                 const Tizen::Net::Http::HttpHeader& httpHeader)
3973 {
3974         return Tizen::Web::Controls::WEB_DECISION_CONTINUE;
3975 }
3976
3977 void
3978 MainForm::OnWebPageBlockSelected(Web& source, FloatPoint& startPoint, FloatPoint& endPoint)
3979 {
3980         AppLog("MainForm::OnWebPageBlockSelected");
3981 //      if(__isLongPressedDone == false)
3982 //              return;
3983
3984         if (__pHitElementResult != null)
3985         {
3986                 delete __pHitElementResult;
3987                 __pHitElementResult = null;
3988         }
3989
3990         if (__pWebViewer != null)
3991         {
3992                 AppLog("MainForm::OnWebPageBlockSelected web not null");
3993                 __pHitElementResult = __pWebViewer->GetElementByPointN(startPoint);
3994
3995                 if(GetLastResult() == E_INVALID_ARG || (__pHitElementResult->GetTagName().Equals(L"INPUT",false) == false && __pHitElementResult->GetTagName().Equals(L"TEXTAREA",false) == false))
3996                 {
3997                         AppLog("datafirst startpoint error %s",GetErrorMessage(GetLastResult()));
3998                         __pHitElementResult = __pWebViewer->GetElementByPointN(endPoint);
3999                         if(GetLastResult() == E_INVALID_ARG || (__pHitElementResult->GetTagName().Equals(L"INPUT",false) == false && __pHitElementResult->GetTagName().Equals(L"TEXTAREA",false) == false))
4000                         {
4001                                 __pHitElementResult = __pWebViewer->GetElementByPointN(__longPressPoint);
4002                         }
4003                         AppLog("datafirst endpoint error %s",GetErrorMessage(GetLastResult()));
4004                 }
4005         }
4006
4007         if (__pHitElementResult == null)
4008         {
4009                 return;
4010         }
4011
4012         if (__pHitElementResult->HasImage() != true)
4013         {
4014                 String tagName = __pHitElementResult->GetTagName();
4015                 String type = __pHitElementResult->GetAttributeValue("type");
4016
4017
4018                 AppLog("TagName %ls",tagName.GetPointer());
4019                 __currentSelectedStr.Clear();
4020                 AppLog("__currentSelectedStr after clear %ls",__currentSelectedStr.GetPointer());
4021                 __currentSelectedStr = __pWebViewer->GetTextFromBlock();
4022                 AppLog("__currentSelectedStr after GetTextFromBlock %ls",__currentSelectedStr.GetPointer());
4023                 if(tagName.Equals(L"TEXTAREA",false) == true)
4024                 {
4025                         AppLog("Tagnameseemstobe TEXTAREA");
4026                 }
4027                 else if(tagName.Equals(L"INPUT",false) == true)
4028                 {
4029                         AppLog("Tagnameseemstobe INPUT");
4030                 }
4031
4032                 if (((tagName.Equals(L"INPUT",false) == true)  || tagName.Equals(L"TEXTAREA",false) == true) /*&& __isLongPressedDone == true*/ && __currentSelectedStr.CompareTo(L"") !=0)
4033                 {
4034                         AppLog("MainForm::OnWebPageBlockSelected show paste option");
4035
4036                         InitSelectTextContextMenuF(FloatPoint(endPoint.x,endPoint.y + __pWebViewer->GetY()),true);
4037                         if(__pImageMenu)
4038                         {
4039                                 __pImageMenu->SetShowState(true);
4040                                 __pImageMenu->Show();
4041                                 __pImageMenu->Invalidate(true);
4042                         }
4043                 }
4044                 else /*if(__isLongPressedDone == true)*/
4045                 {
4046                         AppLog("MainForm::OnWebPageBlockSelected no paste option");
4047
4048                         if(__pHitElementResult->GetUrl().GetLength() > 0)
4049                         {
4050                                 __currentSelectedStr.Clear();
4051                                 __currentSelectedStr = __pHitElementResult->GetUrl();
4052                         }
4053                         InitSelectTextContextMenuF(FloatPoint(endPoint.x,endPoint.y + __pWebViewer->GetY()),false);
4054                         if(__pImageMenu)
4055                         {
4056                                 __pImageMenu->SetShowState(true);
4057                                 __pImageMenu->Show();
4058                                 __pImageMenu->Invalidate(true);
4059                         }
4060                 }
4061
4062                 AppLog("MainForm::OnWebPageBlockSelected block text is %ls",__currentSelectedStr.GetPointer());
4063                 AppLog("MainForm::OnWebPageBlockSelected tag name is %ls",tagName.GetPointer());
4064                 AppLog("MainForm::OnWebPageBlockSelected type name is %ls",type.GetPointer());
4065         }
4066
4067 }
4068
4069 void
4070 MainForm::OnWebPageShowRequested(Tizen::Web::Controls::Web& source)
4071 {
4072
4073 }
4074
4075 Web*
4076 MainForm::OnWebWindowCreateRequested(void)
4077 {
4078         AppLog("MainForm::OnWebWindowCreateRequested entered");
4079         WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN();
4080
4081         if (pNewWindowInfo == null)
4082         {
4083                 return null;
4084         }
4085         result r = E_SUCCESS;
4086         SceneManager* pSceneManager = SceneManager::GetInstance();
4087         if (pSceneManager == NULL)
4088         {
4089                 return null;
4090         }
4091         ArrayList* pArgList = new(std::nothrow) ArrayList();
4092         if (pArgList == NULL)
4093         {
4094                 return null;
4095         }
4096         r = pArgList->Construct();
4097         if (r == E_SUCCESS)
4098         {
4099                 pNewWindowInfo->isJavascriptInitiated = true;
4100                 pArgList->Add(*pNewWindowInfo);
4101                 r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
4102                 delete pArgList;
4103                 if (IsFailed(r))
4104                 {
4105                         AppLogDebug("EditHistoryListForm::OnFormBackRequested Failed to GoBackward %s",GetErrorMessage(r));
4106                         return null;
4107                 }
4108         } else {
4109                 delete pArgList;
4110         }
4111
4112         return pNewWindowInfo->pCurrentWeb;
4113 }
4114
4115 void MainForm::OnWebWindowCloseRequested(Tizen::Web::Controls::Web& source)
4116 {
4117         AppLog("OnWebWindowCloseRequested");
4118         ArrayList* pAllWindowList = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList();
4119         SceneManager* pSceneManager = SceneManager::GetInstance();
4120         WindowInfo* pWindowInfo = null;
4121         WindowInfo* pNewWindowInfo = null;
4122         int totalCount = 0;
4123         UiApp* pApp = null;
4124         result r = E_FAILURE;
4125
4126         if (pAllWindowList != null)
4127         {
4128                 totalCount = pAllWindowList->GetCount();
4129         }
4130
4131         for (int count = 0; count < totalCount; count++)
4132         {
4133                 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count));
4134                 if (pSceneManager != null && pWindowInfo != null && pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID)
4135                 {
4136                         r = SceneRegister::DestroyAndUnRegisterScene(pWindowInfo->sceneID);
4137                         if (IsFailed(r))
4138                         {
4139                                 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
4140                                 return;
4141                         }
4142
4143                         r = pAllWindowList->RemoveAt(count, true);
4144
4145                         if(count > 0)
4146                         {
4147                                 pNewWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count - 1));
4148                         }
4149                         else if(pAllWindowList->GetCount() > 0)
4150                         {
4151                                 pNewWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1));
4152                         }
4153                         else
4154                         {
4155                                 WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN();
4156
4157                                 if (pNewWindowInfo == null)
4158                                 {
4159                                         return;
4160                                 }
4161                                 result r = E_SUCCESS;
4162                                 SceneManager* pSceneManager = SceneManager::GetInstance();
4163                                 if (pSceneManager == NULL)
4164                                 {
4165                                         return;
4166                                 }
4167                                 ArrayList* pArgList = new(std::nothrow) ArrayList();
4168                                 if (pArgList == NULL)
4169                                 {
4170                                         return;
4171                                 }
4172                                 r = pArgList->Construct();
4173                                 if (r == E_SUCCESS)
4174                                 {
4175                                         pArgList->Add(*pNewWindowInfo);
4176                                         result r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
4177                                         if (pArgList != null)
4178                                         {
4179                                                 delete pArgList;
4180                                                 pArgList = null;
4181                                         }
4182                                         if(IsFailed(r))
4183                                         {
4184                                                 AppLogDebug("MultipleWindowForm::OnActionPerformed GoForward failed %s",GetErrorMessage(r));
4185                                                 return;
4186                                         }
4187                                 }
4188
4189                                 pApp = UiApp::GetInstance();
4190                                 if (pApp != null)
4191                                 {
4192                                         r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED);
4193                                         return;
4194                                 }
4195
4196                         }
4197                         r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_HISTORY_OPTION_ADD_HISTORY,SCENE_DESTROY_OPTION_DESTROY));
4198
4199                         __pWindowInfo = null;
4200                         break;
4201                 }
4202         }
4203
4204 }
4205
4206 void
4207 MainForm::RelayoutControls(bool showAddressbar,bool relayoutFooter)
4208 {
4209         AppLog("xyz:: MainForm::RelayoutControls called");
4210         __webControlPosition.y = 0;
4211         __webControlHeight = GetClientAreaBounds().height;
4212         AppLog("Client area height: %d", __webControlHeight);
4213
4214         AppLog("Client area height: %d", __webControlHeight);
4215         if(__pAddressbar != null && __pAddressbar->GetShowState() == true)
4216         {
4217                 __webControlPosition.y += __pAddressbar->GetHeight();
4218                 __webControlHeight -= __pAddressbar->GetHeight();
4219                 __pAddressbar->SetBounds(0, 0, __pAddressbar->GetWidth(), __pAddressbar->GetHeight());
4220         }
4221         else if(__pFindWordControl != null && __pFindWordControl->GetShowState() == true)
4222         {
4223                 __webControlPosition.y += __pFindWordControl->GetHeight();
4224                 __webControlHeight -= __pFindWordControl->GetHeight();
4225                 __pFindWordControl->SetBounds(0, 0, GetClientAreaBounds().width, __pFindWordControl->GetHeight());
4226         }
4227
4228         if(__pFooterPanel != null && __pFooterPanel->GetShowState() == true && relayoutFooter == true)
4229         {
4230                 __webControlHeight -= __pFooterPanel->GetHeight();
4231
4232                 __pFooterPanel->SetBounds(0, __webControlPosition.y + __webControlHeight, GetClientAreaBounds().width, __pFooterPanel->GetHeight());
4233                 __webControlHeight = __webControlHeight + 12;
4234         }
4235         if (__pWebViewer != null && __pWebViewer->GetShowState() == true)
4236         {
4237                 if(__pWebViewer->GetX() == 0 && __pWebViewer->GetY() == __webControlPosition.y &&__pWebViewer->GetWidth() == GetClientAreaBounds().width &&__pWebViewer->GetHeight() == __webControlHeight )
4238                 {
4239                 }
4240                 else
4241                 {
4242                         __pWebViewer->SetBounds(0, __webControlPosition.y, GetClientAreaBounds().width, __webControlHeight );
4243                         AppLog("xyz:: MainForm::RelayoutControls called __webControlHeight %d",__webControlHeight);
4244                         __pWebViewer->Invalidate(false);
4245                 }
4246         }
4247         if(__pMostVisitedListView != null && __pAddressbar != null && __pFooterPanel != null)
4248         {
4249                 __pMostVisitedListView->SetBounds(Tizen::Graphics::Rectangle(0,__webControlPosition.y , GetClientAreaBounds().width, __webControlHeight));
4250         }
4251
4252         Invalidate(true);
4253 }
4254
4255 void
4256 MainForm::ShowFindWordPanel(bool show , bool isTouchPressed)
4257 {
4258         if (__pFindWordControl == null)
4259         {
4260                 return;
4261         }
4262
4263         Tizen::Locales::LocaleManager localeManager;
4264         Tizen::Locales::Locale local = localeManager.GetSystemLocale();
4265
4266         String languageCode;
4267         result r = SettingInfo::GetValue(L"Language", languageCode);
4268         // int languagecode = local.GetLanguageCode();
4269         AppLog("rahul language is %S", languageCode.GetPointer());
4270
4271         if (show == true)
4272         {
4273                 InitFindWordPanel();
4274
4275                 if (languageCode.CompareTo("ara") == 0)
4276                 {
4277                         AppLog("rahul language is arabic");
4278
4279                         __pFindWordPanelLeftToRight->SetShowState(false);
4280                         __pFindWordPanelRightToLeft->SetShowState(true);
4281
4282                         __pFindWordClear->SetShowState(false);
4283                         __pFindWordCountLabel->SetShowState(false);
4284                         __pFindWordEditField->SetShowState(false);
4285
4286                         __pFindWordClearRightToLeft->SetShowState(true);
4287                         __pFindWordCountLabelRightToLeft->SetShowState(true);
4288                         __pFindWordEditFieldRightToLeft->SetShowState(true);
4289                 }
4290                 else
4291                 {
4292                         AppLog("rahul language is not arabic");
4293
4294
4295                         __pFindWordPanelLeftToRight->SetShowState(true);
4296                         __pFindWordPanelRightToLeft->SetShowState(false);
4297
4298                         __pFindWordClear->SetShowState(true);
4299                         __pFindWordCountLabel->SetShowState(true);
4300                         __pFindWordEditField->SetShowState(true);
4301
4302                         __pFindWordClearRightToLeft->SetShowState(false);
4303                         __pFindWordCountLabelRightToLeft->SetShowState(false);
4304                         __pFindWordEditFieldRightToLeft->SetShowState(false);
4305                 }
4306                 __pFindWordControl->SetShowState(true);
4307         }
4308         else
4309         {
4310                 if(__pFindWordControl != null)
4311                 {
4312                         __pFindWordControl->SetShowState(false);
4313                 }
4314         }
4315
4316         AppLog("MainForm::ShowFindWordPanel %d",show);
4317         if (show && !isTouchPressed)
4318         {
4319                 if (languageCode.CompareTo("ara") == 0)
4320                 {
4321                         if (__pFindWordEditFieldRightToLeft)
4322                         {
4323                                 __pFindWordEditFieldRightToLeft->SetFocus();
4324                                 __pFindWordEditFieldRightToLeft->ShowKeypad();
4325                         }
4326                 }
4327                 else
4328                 {
4329                         if (__pFindWordEditField)
4330                         {
4331                                 __pFindWordEditField->SetFocus();
4332                                 __pFindWordEditField->ShowKeypad();
4333                         }
4334                 }
4335         }
4336         else
4337         {
4338                 if (languageCode.CompareTo("ara") == 0)
4339                 {
4340                         if (__pFindWordEditFieldRightToLeft)
4341                                 __pFindWordEditFieldRightToLeft->HideKeypad();
4342                 }
4343                 else
4344                 {
4345                         if (__pFindWordEditField)
4346                                 __pFindWordEditField->HideKeypad();
4347                 }
4348         }
4349
4350         RelayoutControls(false);
4351 }
4352
4353 void
4354 MainForm::StartWordSearch()
4355 {
4356         //Get the count of occurances of the word in the current page
4357         __maxOccurrances = 0;
4358         __currentWordIndex = 0;
4359
4360         __pFindWordPrev->SetEnabled(false);
4361         String *pCountStr = null;
4362         if (__pWebViewer)
4363         {
4364                 result r = __pWebViewer->SearchTextAllAsync(__currentSearchStr, false);
4365                 AppLog("Search Result %s",GetErrorMessage(r));
4366         }
4367
4368         /*__pWebViewer->EvaluateJavascriptN(L"document.body.textContent.match(/"  + __currentSearchStr + "/gi).length;");
4369         if (pCountStr != null)
4370         {
4371                 Integer::Parse(*pCountStr, 10, __maxOccurrances);
4372                 delete pCountStr;
4373         }
4374
4375         AppLogDebug("'%ls' is found %d times", __currentSearchStr.GetPointer(), __maxOccurrances);
4376          */
4377
4378 }
4379
4380 void MainForm::OnTextFound(int totalCount, int currentOrdinal)
4381 {
4382         AppLog("MainForm::OnTextFound totalCount %d",totalCount);
4383         AppLog("MainForm::OnTextFound currentOrdinal %d",currentOrdinal);
4384
4385         if(totalCount <= 9)
4386         {
4387                 if (__pFindWordCountLabel)
4388                 {
4389                         __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),84,__pFindWordCountLabel->GetHeight());
4390                 }
4391                 if (__pFindWordEditField)
4392                 {
4393                         __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),214+80,__pFindWordEditField->GetHeight());
4394                 }
4395         }
4396         else if(totalCount >= 100)
4397         {
4398                 if (__pFindWordCountLabel)
4399                 {
4400                         __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight());
4401                 }
4402                 if (__pFindWordEditField)
4403                 {
4404                         __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight());
4405                 }
4406         }
4407         else
4408         {
4409                 if (__pFindWordCountLabel)
4410                 {
4411                         __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight());
4412                 }
4413                 if (__pFindWordEditField)
4414                 {
4415                         __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight());
4416                 }
4417         }
4418
4419         __maxOccurrances = totalCount;
4420         __currentWordIndex = currentOrdinal;
4421
4422         //Reset the UI controls as per the maxOccurrance value
4423         if (totalCount <= 0)
4424         {
4425                 AppLog("Word not found");
4426                 //Show error notification to user
4427                 __pFindWordNext->SetEnabled(false);
4428                 if(__pFindWordCountLabel && __pFindWordCountLabel->GetShowState() == true)
4429                 {
4430                         __pFindWordCountLabel->SetText(L"0/0");
4431                         __pFindWordCountLabel->Invalidate(false);
4432                 }
4433                 else if(__pFindWordCountLabelRightToLeft && __pFindWordCountLabelRightToLeft->GetShowState() == true)
4434                 {
4435                         __pFindWordCountLabelRightToLeft->SetText(L"0/0");
4436                         __pFindWordCountLabelRightToLeft->Invalidate(false);
4437                 }
4438                 __pFindWordNext->Invalidate(false);
4439                 __pFindWordPrev->Invalidate(false);
4440
4441                 return;
4442         }
4443
4444         if (totalCount == 1 || totalCount == currentOrdinal)
4445         {
4446                 __pFindWordNext->SetEnabled(false);
4447         }
4448         else
4449         {
4450                 __pFindWordNext->SetEnabled(true);
4451         }
4452
4453         String countStr = L"";
4454         countStr.Append(__currentWordIndex);
4455         countStr.Append(L"/");
4456         countStr.Append(__maxOccurrances);
4457         if (__pFindWordCountLabel && __pFindWordCountLabel->GetShowState() == true)
4458         {
4459         __pFindWordCountLabel->SetText(countStr);
4460         __pFindWordCountLabel->Invalidate(false);
4461         __pFindWordCountLabel->Invalidate(false);
4462         }
4463         else if (__pFindWordCountLabelRightToLeft && __pFindWordCountLabelRightToLeft->GetShowState() == true)
4464         {
4465                 __pFindWordCountLabelRightToLeft->SetText(countStr);
4466                 __pFindWordCountLabelRightToLeft->Invalidate(false);
4467                 __pFindWordCountLabelRightToLeft->Invalidate(false);
4468         }
4469         if (__pFindWordNext)
4470         {
4471                 __pFindWordNext->Invalidate(false);
4472         }
4473         if (__pFindWordPrev)
4474         {
4475                 __pFindWordPrev->Invalidate(false);
4476         }
4477
4478 }
4479
4480 void
4481 MainForm::FindNextWord(bool next)
4482 {
4483         if (next == true)
4484         {
4485                 //if (__pWebViewer->SearchText(__currentSearchStr, true) == true)
4486                         if (__pWebViewer->SearchNextAsync(true) == E_SUCCESS)
4487                         {
4488                                 if (__currentWordIndex < __maxOccurrances)
4489                                 {
4490                                         __currentWordIndex++;
4491                                 }
4492                         }
4493         }
4494         else
4495         {
4496                 //if (__pWebViewer->SearchText(__currentSearchStr, false) == true)
4497                 if (__pWebViewer->SearchNextAsync(false) == E_SUCCESS)
4498                 {
4499                         if(__currentWordIndex > 1)
4500                         {
4501                                 __currentWordIndex--;
4502                         }
4503                 }
4504         }
4505
4506         String countStr = L"";
4507         countStr.Append(__currentWordIndex);
4508         countStr.Append(L"/");
4509         countStr.Append(__maxOccurrances);
4510
4511         if (__pFindWordCountLabel && __pFindWordCountLabel->GetShowState() == true)
4512         {
4513         __pFindWordCountLabel->SetText(countStr);
4514         __pFindWordCountLabel->Invalidate(false);
4515         }
4516         else if(__pFindWordCountLabelRightToLeft && __pFindWordCountLabelRightToLeft->GetShowState() == true)
4517         {
4518                 __pFindWordCountLabelRightToLeft->SetText(countStr);
4519                 __pFindWordCountLabelRightToLeft->Invalidate(false);
4520         }
4521
4522         if (__currentWordIndex >= __maxOccurrances)
4523         {
4524                 __pFindWordNext->SetEnabled(false);
4525         }
4526         else
4527         {
4528                 __pFindWordNext->SetEnabled(true);
4529         }
4530         if (__currentWordIndex <= 1)
4531         {
4532                 __pFindWordPrev->SetEnabled(false);
4533         }
4534         else
4535         {
4536                 __pFindWordPrev->SetEnabled(true);
4537         }
4538         __pFindWordPrev->Invalidate(false);
4539         __pFindWordNext->Invalidate(false);
4540
4541         __pFindWordControl->Invalidate(true);
4542 }
4543
4544 void
4545 MainForm::OnWebKeypadWillOpen(Tizen::Web::Controls::Web& source)
4546 {
4547         AppLog("xyz::MainForm::OnWebKeypadWillOpen");
4548         __isKeypadOpened = true;
4549         __pFooterPanel->SetShowState(false);
4550         //      OnAddressBarKeypadOpened(*__pAddressbar);
4551 }
4552
4553 void
4554 MainForm::OnWebKeypadOpened(Tizen::Web::Controls::Web& source)
4555 {
4556         __isKeypadOpened = true;
4557         AppLog("xyz::MainForm::OnWebKeypadOpened");
4558
4559         if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
4560         {
4561                 __currentSearchStr = L"";
4562                 __currentWordIndex = 0;
4563                 __maxOccurrances = 0;
4564                 __pFindWordEditField->SetText(L"");
4565                 __pFindWordNext->SetEnabled(false);
4566                 __pFindWordPrev->SetEnabled(false);
4567                 __pFindWordCountLabel->SetText(L"0/0");
4568                 __pWebViewer->SearchTextAllAsync(L"",false);
4569                 __pFindWordControl->SetShowState(false);
4570                 __pFindWordEditField->HideKeypad();
4571         }
4572
4573
4574         if (__pWebViewer != null && __pFooterPanel != null)
4575         {
4576                 AppLog("MainForm::OnWebKeypadOpened GetClientAreaBounds().height %d ", GetClientAreaBounds().height);
4577                 if(__pAddressbar != null)
4578                 {
4579                         __pAddressbar->SetShowState(false);
4580                 }
4581                 if(__pFindWordControl != null)
4582                 {
4583                         __pFindWordControl->SetShowState(false);
4584                 }
4585                 __pFooterPanel->SetShowState(false);
4586                 __pWebViewer->SetBounds(Rectangle(0, 0,GetClientAreaBounds().width, GetClientAreaBounds().height));
4587         }
4588 //      if(__pImageMenu && __pImageMenu->GetShowState() == true)
4589 //      {
4590 //              __pImageMenu->SetAnchorPosition(Point(__pImageMenu->GetAnchorPosition().x/2,__pImageMenu->GetAnchorPosition().y/2));
4591 //              AppLog("omgomgomg");
4592 //      }
4593         Invalidate(true);
4594 }
4595
4596 void
4597 MainForm::OnWebKeypadClosed(Tizen::Web::Controls::Web& source)
4598 {
4599         AppLog("abcde::MainForm::OnWebKeypadClosed");
4600         AppLog("xyz::MainForm::OnWebKeypadClosed");
4601         AppLog("akjshdasd 4");
4602         __pFooterPanel->SetShowState(true);
4603 //      OnAddressBarKeypadClosed(*__pAddressbar);
4604         RelayoutControls(false);
4605         __isKeypadOpened = false;
4606
4607
4608         if(__pImageMenu && __pImageMenu->GetShowState() == true)
4609         {
4610                 AppLog("abcde: imagemenu visible.");
4611                 Point p(0,0);
4612                 Point q(0,0);
4613                 __pWebViewer->GetBlockRange(p,q);
4614                 if (p == Point(0,0) && q == Point(0,0))
4615                         return;
4616
4617                 __pImageMenu->SetAnchorPosition(p);
4618                 __pImageMenu->Show();
4619                 Invalidate(true);
4620         }
4621 }
4622
4623 void
4624 MainForm::OnWebKeypadBoundsChanged(Tizen::Web::Controls::Web& source)
4625 {
4626         //      RelativeLayout(false);
4627         if(__pWebViewer != null)
4628         {
4629                 __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width,GetClientAreaBounds().height));
4630         }
4631 }
4632
4633 void
4634 MainForm::OnTouchDoublePressed(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
4635 {
4636         Control* temp = const_cast< Control* >(&source);
4637         Header* pHeader = dynamic_cast< Header* >(temp);
4638         if (pHeader != null)
4639         {
4640                 //Header double - clicked
4641                 AppLog("Header double clicked");
4642         }
4643         if(__pFindWordControl)
4644         {
4645                 AppLog("MainForm::OnTouchPressed %d",__pFindWordControl->GetShowState());
4646                 ShowFindWordPanel(__pFindWordControl->GetShowState(), true);
4647         }
4648
4649
4650         AppLog("MainScene::OnTouchDoublePressed");
4651
4652 }
4653
4654 void MainForm::OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
4655 {
4656         AppLog("abcde::MainForm::OnTouchLongPressed %d, %d" ,currentPosition.x,currentPosition.y);
4657         if(TouchEventManager::GetInstance() && TouchEventManager::GetInstance()->GetTouchInfoListN() && TouchEventManager::GetInstance()->GetTouchInfoListN()->GetCount() >1)
4658         {
4659                 AppLog("Returning because of more than one touch point.");
4660                 return;
4661         }
4662         __longPressPoint = currentPosition;
4663
4664         if (__pHitElementResult != null)
4665         {
4666                 delete __pHitElementResult;
4667                 __pHitElementResult = null;
4668         }
4669
4670         if (__pWebViewer != null)
4671         {
4672                 AppLog("MainForm::OnTouchLongPressed web not null");
4673                 __pHitElementResult = __pWebViewer->GetElementByPointN(currentPosition);
4674         }
4675
4676         if (__pHitElementResult == null)
4677         {
4678                 return;
4679         }
4680
4681         if (__pHitElementResult->HasImage() == true)
4682         {
4683                 if(__pWebViewer != null)
4684                         InitImageContextMenu(Point(currentPosition.x,currentPosition.y + __pWebViewer->GetY()));
4685                 __pImageMenu->SetShowState(true);
4686                 __pImageMenu->Show();
4687                 __pImageMenu->Invalidate(true);
4688         }
4689         else if(__pHitElementResult->HasUrl() == true)
4690         {
4691                 String tempURl = __pHitElementResult->GetUrl();
4692                 AppLog("tempURl is %ls", tempURl.GetPointer());
4693                 const Bitmap* pBitmap = __pHitElementResult->GetImage();
4694                 if (pBitmap != null)
4695                 {
4696                         AppLog("not null");
4697                 }
4698                 else
4699                 {
4700                         AppLog(null);
4701                 }
4702                 InitImageLinkContextMenu(Point(currentPosition.x,currentPosition.y + __pWebViewer->GetY()));
4703                 __pImageMenu->SetShowState(true);
4704                 __pImageMenu->Show();
4705                 __pImageMenu->Invalidate(true);
4706         }
4707         else
4708         {
4709                 String tagName = __pHitElementResult->GetTagName();
4710                 String type = __pHitElementResult->GetAttributeValue("type");
4711                 String value = __pHitElementResult->GetAttributeValue(L"value");
4712                 String innerHtml = __pHitElementResult->GetAttributeValue(L"innerHTML");
4713
4714                 __currentSelectedStr.Clear();
4715                 __currentSelectedStr = __pWebViewer->GetTextFromBlock();
4716
4717                 AppLog("tag name is %ls", tagName.GetPointer());
4718                 AppLog("type is %ls", type.GetPointer());
4719
4720
4721
4722                 __isLongPressedDone = true;
4723                 result r =__pWebViewer->SetBlockSelectionPosition(currentPosition);
4724                 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)
4725                 {
4726                         AppLog("MainForm::OnWebPageBlockSelected show paste option");
4727
4728                         InitSelectTextContextMenu(Point(currentPosition.x , currentPosition.y + __pWebViewer->GetY()),true, true);
4729                         if(__pImageMenu)
4730                         {
4731                                 __pImageMenu->SetShowState(true);
4732                                 __pImageMenu->Show();
4733                                 __pImageMenu->Invalidate(true);
4734                         }
4735                 }
4736                 AppLog("setselectionselectedornot %s",GetErrorMessage(r));
4737
4738         }
4739 //      __inputEventToBeSupressed = true;
4740 }
4741
4742 void
4743 MainForm::OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
4744 {
4745         AppLog("xyz:: MainForm::OnTouchReleased called");
4746
4747         if (__pAddressbar && __pAddressbar->GetShowState() == true)
4748         {
4749                 __pAddressbar->SetShowState(false);
4750         }
4751         if(__pFooterPanel && __isKeypadOpened == false)
4752         {
4753                 __pFooterPanel->SetShowState(true);
4754         }
4755
4756         // Not reuired now.
4757         /*HitElementResult* pHitElement = __pWebViewer->GetElementByPointN(currentPosition);
4758         if(pHitElement != null && pHitElement->HasUrl() == true && __inputEventToBeSupressed == true)
4759         {
4760                 __pWebViewer->ConsumeInputEvent();
4761         }
4762         if(pHitElement != null)
4763         {
4764                 delete pHitElement;
4765         }
4766         __inputEventToBeSupressed = false;*/
4767 }
4768
4769 bool
4770 MainForm::OnTouchPressed(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4771 {
4772
4773         return true;
4774 }
4775
4776 bool
4777 MainForm::OnTouchReleased(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4778 {
4779         if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
4780         {
4781                 __currentSearchStr = L"";
4782                 __currentWordIndex = 0;
4783                 __maxOccurrances = 0;
4784
4785                 if (__pFindWordPanelLeftToRight && __pFindWordPanelLeftToRight->GetShowState() == true)
4786                 {
4787                         __pFindWordEditField->SetText(L"");
4788                         __pFindWordEditField->HideKeypad();
4789                         __pFindWordControl->SetShowState(false);
4790                         __pFindWordCountLabel->SetText(L"0/0");
4791                 }
4792                 else if(__pFindWordPanelRightToLeft && __pFindWordPanelRightToLeft->GetShowState() == true)
4793                 {
4794                         __pFindWordEditFieldRightToLeft->SetText(L"");
4795                         __pFindWordEditFieldRightToLeft->HideKeypad();
4796                         __pFindWordControl->SetShowState(false);
4797                         __pFindWordCountLabelRightToLeft->SetText(L"0/0");
4798                 }
4799
4800                 __pFindWordNext->SetEnabled(false);
4801                 __pFindWordPrev->SetEnabled(false);
4802
4803                 __pWebViewer->SearchTextAllAsync(L"",true);
4804                 __pFindWordControl->SetShowState(false);
4805         }
4806         AppLog("__pAddressbar->GetShowState() %d",__pAddressbar->GetShowState());
4807         if(__pAddressbar->GetShowState() == false)
4808         {
4809                 __pAddressbar->SetAddressbarURLFocus();
4810                 __pFooterPanel->SetShowState(false);
4811         }
4812
4813         return false;
4814 }
4815
4816 bool
4817 MainForm::OnTouchMoved(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4818 {
4819         return true;
4820 }
4821
4822 bool
4823 MainForm::OnTouchCanceled(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4824 {
4825         return true;
4826 }
4827
4828 bool
4829 MainForm::OnPreviewTouchPressed(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4830 {
4831         return true;
4832 }
4833
4834 bool
4835 MainForm::OnPreviewTouchReleased(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4836 {
4837         return true;
4838 }
4839
4840 bool
4841 MainForm::OnPreviewTouchMoved(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
4842 {
4843         return true;
4844 }
4845
4846 void
4847 MainForm::OnOrientationChanged (const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
4848 {
4849         AppLog("MainForm::OnOrientationChanged GetClientAreaBounds %d, %d",GetClientAreaBounds().width,GetClientAreaBounds().height);
4850         int widthContextItem = 0;
4851         if(__pFindWordCountLabel)
4852                 __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight());
4853         // As per the platform engineer comment removed this line
4854         /*if(__pWebViewer != null)
4855         {
4856                 // 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
4857                 __pWebViewer->ReleaseBlock();
4858         }*/
4859
4860 //      if(__pFindWordControl != null)
4861 //              ShowFindWordPanel(__pFindWordControl->GetShowState(), false);
4862
4863         if(__pOptionMenu && __pOptionMenu->GetShowState() == true)
4864         {
4865                 if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
4866                 {
4867                         AppLog(" Orientation landscape");
4868                         __pOptionMenu->SetMaxVisibleItemsCount(5);
4869                 }
4870                 else
4871                 {
4872                         AppLog(" Orientation potrait");
4873                         __pOptionMenu->SetMaxVisibleItemsCount(6);
4874                 }
4875         }
4876         if(__pNotification && __pNotification->GetShowState() == true)
4877         {
4878                 __pNotification->SetShowState(false);
4879                 __pNotification->Invalidate(false);
4880         }
4881         if ( __pFooterLabel != null)
4882         {
4883                 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pFooterLabel->GetWidth(), __pFooterLabel->GetHeight());
4884                 if(pBitmap != null)
4885                 {
4886                         __pFooterLabel->SetBackgroundBitmap(*pBitmap);
4887                         delete pBitmap;
4888                 }
4889
4890
4891         }
4892         if (__pFindWordBgLabel != null)
4893         {
4894                 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_FINDWORD_INPUT_FIELD_BG, __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());
4895                 if (pBitmap != null)
4896                 {
4897                         __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);
4898                         delete pBitmap;
4899                 }
4900         }
4901
4902         if (__pFindWordBgLabelRightToLeft != null)
4903         {
4904                 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_FINDWORD_INPUT_FIELD_BG, __pFindWordBgLabelRightToLeft->GetWidth(), __pFindWordBgLabelRightToLeft->GetHeight());
4905                 if (pBitmap != null)
4906                 {
4907                         __pFindWordBgLabelRightToLeft->SetBackgroundBitmap(*pBitmap);
4908                         delete pBitmap;
4909                 }
4910         }
4911
4912
4913 //      if(__pOptionMenu != null)
4914 //              __pOptionMenu->SetShowState(false);
4915
4916         if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
4917         {
4918                 widthContextItem = WIDTH_CONTEXT_MENU_BUTTON_LANDSCAPE;
4919         }
4920         else
4921         {
4922                 widthContextItem = WIDTH_CONTEXT_MENU_BUTTON_PORTRAIT;
4923         }
4924
4925         if (__pFooterPanel)
4926         {
4927                 AppLog("__pFooterPanel->GetShowState() is true");
4928                 InitFooter();
4929                 __pFooterPanel->SetBounds(0, GetClientAreaBounds().height - __pFooterPanel->GetHeight(), __pFooterPanel->GetWidth(), __pFooterPanel->GetHeight());
4930                 __pFooterPanel->Invalidate(true);
4931         }
4932         InitAddressbar();
4933
4934         String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
4935         if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
4936         {
4937                 InitMostVisitedSitesView(orientationStatus);
4938         }
4939
4940         RelayoutControls(false);
4941         if (__pArticleReaderPanel != null)
4942         {
4943                 if (__pArticleReaderPanel->GetShowState() == true)
4944                 {
4945                         __pArticleReaderPanel->SetBounds((GetClientAreaBounds().width - __pArticleReaderPanel->GetWidth())/2,(GetClientAreaBounds().height - __pArticleReaderPanel->GetHeight())/2, __pArticleReaderPanel->GetWidth(), __pArticleReaderPanel->GetHeight());
4946
4947                         if (__pBlankPanel != null)
4948                                 __pBlankPanel->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height);
4949
4950                         if (__pWebReader != null)
4951                         {
4952                                 __pWebReader->SetBounds(Rectangle(2,2, __pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight() - 96));
4953                         }
4954                         Bitmap* pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
4955                         Bitmap* pSrcBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bottom_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
4956
4957                         if ( pBitmap != null && pSrcBitmap != null)
4958                         {
4959                                 AppLog("CreateReaderPanel ninepatchbitmap found");
4960                                 pBitmap->Merge(Point(0,__pArticleReaderPanel->GetHeight() - 96),*pSrcBitmap,Rectangle(0,0,pSrcBitmap->GetWidth(),pSrcBitmap->GetHeight()));
4961                         }
4962
4963                         __pArticleReaderLabel->SetBounds(Rectangle(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight()));
4964                         __pArticleReaderLabel->SetBackgroundBitmap(*pBitmap);
4965                         if (pBitmap != null)
4966                         {
4967                                 delete pBitmap;
4968                                 pBitmap = null;
4969                         }
4970                         if (pSrcBitmap != null)
4971                         {
4972                                 delete pSrcBitmap;
4973                                 pSrcBitmap = null;
4974                         }
4975                 }
4976         }
4977         Invalidate(true);
4978         
4979     if (__pAddressbar != null)
4980         {
4981                 int width = GetClientAreaBounds().width;
4982                 __pAddressbar->OrientationChanged(width);
4983         }
4984 }
4985
4986 void
4987 MainForm::OnSettingsChange(int settingvalue)
4988 {
4989         AppLogDebug("MainForm::OnSettingsChange entered");
4990
4991         if(settingvalue == (int)REGISTRY_SETTING_HOMEPAGE)
4992         {
4993                 __pAddressbar->ResetGuideText();
4994         }
4995         if (__pWebViewer == null)
4996         {
4997                 AppLogDebug("Webviewer is not initialized yet.");
4998                 return;
4999         }
5000
5001         if (settingvalue == (int) REGISTRY_SETTING_DEFAULT_VIEW)
5002         {
5003                 WebSetting settings = __pWebViewer->GetSetting();
5004                 if (SettingPresentationModel::GetInstance()->GetDefaultView().CompareTo((L"IDS_BR_BODY_FIT_TO_WIDTH")) == 0)
5005                 {
5006                         settings.SetAutoFittingEnabled(true);
5007                 }
5008                 else if (SettingPresentationModel::GetInstance()->GetDefaultView().CompareTo((L"IDS_BR_BODY_READABLE")) == 0)
5009                 {
5010                         settings.SetAutoFittingEnabled(false);
5011                 }
5012                 __pWebViewer->SetSetting(settings);
5013         }
5014         else if (settingvalue == (int) REGISTRY_SETTING_RUN_JAVASCRIPT)
5015         {
5016                 WebSetting settings = __pWebViewer->GetSetting();
5017                 settings.SetJavascriptEnabled(SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled());
5018                 __pWebViewer->SetSetting(settings);
5019         }
5020         else if (settingvalue == (int) REGISTRY_SETTING_DISPLAY_IMAGES)
5021         {
5022                 WebSetting settings = __pWebViewer->GetSetting();
5023                 settings.SetAutoImageLoadEnabled(SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());
5024                 __pWebViewer->SetSetting(settings);
5025                 __pWebViewer->Reload();
5026         }
5027         else if (settingvalue == (int) REGISTRY_SETTING_BLOCK_POPUP)
5028         {
5029                 WebSetting settings = __pWebViewer->GetSetting();
5030                 settings.SetJavaScriptPopupEnabled(SettingPresentationModel::GetInstance()->IsBlockPopUp());
5031                 __pWebViewer->SetSetting(settings);
5032         }
5033         else if (settingvalue == (int) REGISTRY_SETTING_ACCEPT_COOKIES)
5034         {
5035                 if (__pWebViewer)
5036                 {
5037                         __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());
5038                 }
5039         }
5040         else if(settingvalue == (int) REGISTRY_SETTING_REMEMBER_FORM_DATA)
5041         {
5042                 if (__pWebViewer)
5043                 {
5044                         WebSetting settings = __pWebViewer->GetSetting();
5045                         settings.SetAutoFormDataShowEnabled(SettingPresentationModel::GetInstance()->IsRememberFormData());
5046                         __pWebViewer->SetSetting(settings);
5047                 }
5048         }
5049         else if(settingvalue == (int) REGISTRY_SETTING_REMEMBER_PASSWORD)
5050         {
5051                 if (__pWebViewer)
5052                 {
5053                         WebSetting settings = __pWebViewer->GetSetting();
5054                         settings.SetAutoLoginFormFillEnabled(SettingPresentationModel::GetInstance()->IsRememberPassword());
5055                         __pWebViewer->SetSetting(settings);
5056                 }
5057         }
5058         else if (settingvalue == (int) REGISTRY_SETTING_SHOW_SECURITY_WARNINGS)
5059         {
5060                 WebSetting settings = __pWebViewer->GetSetting();
5061                 if (SettingPresentationModel::GetInstance()->IsSecurityWarningsEnabled() == true)
5062                 {
5063                         settings.SetCertificateErrorHandlingMode(WEB_CERTIFICATE_ERROR_HANDLING_MODE_USER_CONFIRM);
5064                 }
5065                 else
5066                 {
5067                         settings.SetCertificateErrorHandlingMode(WEB_CERTIFICATE_ERROR_HANDLING_MODE_CONTINUE);
5068                 }
5069                 __pWebViewer->SetSetting(settings);
5070         }
5071         else if (settingvalue == (int) REGISTRY_SETTING_READER_FONT_SIZE)
5072         {
5073                 if (__pWebReader)
5074                 {
5075                         AppLogDebug("IntMainForm fontsize Changed to %d",SettingPresentationModel::GetInstance()->GetReaderFontSize());
5076                         WebSetting settings = __pWebReader->GetSetting();
5077                         settings.SetFontSize(SettingPresentationModel::GetInstance()->GetReaderFontSize());
5078                         __pWebReader->SetSetting(settings);
5079                 }
5080         }
5081 }
5082
5083 void
5084 MainForm::OnSettingsReset()
5085 {
5086         if (__pWebViewer)
5087         {
5088                 __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());
5089                 __pWebViewer->SetSetting(SettingPresentationModel::GetInstance()->GetWebSettings());
5090         }
5091 }
5092
5093 void
5094 MainForm::OnClearCache()
5095 {
5096         result r = E_SUCCESS;
5097
5098         if (__pWebViewer != NULL)
5099         {
5100                 r = __pWebViewer->ClearCache();
5101                 if (r == E_SUCCESS)
5102                 {
5103                         AppLogDebug("Cache cleared success");
5104                 }
5105                 else
5106                 {
5107                         AppLogDebug("Cache cleared fail");
5108                 }
5109         }
5110 }
5111
5112 void
5113 MainForm::OnClearCookie()
5114 {
5115         result r = E_SUCCESS;
5116
5117         if (__pWebViewer != NULL)
5118         {
5119                 __pWebViewer->ClearCookie();
5120         }
5121         if (r == E_SUCCESS)
5122         {
5123                 AppLogDebug("Cookie cleared success");
5124         }
5125         else
5126         {
5127                 AppLogDebug("Cache cleared fail");
5128         }
5129 }
5130
5131 void
5132 MainForm::OnClearFormData()
5133 {
5134         result r = E_SUCCESS;
5135
5136         if (__pWebViewer != NULL)
5137         {
5138                 __pWebViewer->ClearFormData();
5139         }
5140         if (r == E_SUCCESS)
5141         {
5142                 AppLogDebug("Cookie cleared success");
5143         }
5144         else
5145         {
5146                 AppLogDebug("Cache cleared fail");
5147         }
5148 }
5149
5150 void
5151 MainForm::OnClearPasswords()
5152 {
5153         result r = E_SUCCESS;
5154
5155         if (__pWebViewer != NULL)
5156         {
5157                 __pWebViewer->ClearLoginFormData();
5158         }
5159         if (r == E_SUCCESS)
5160         {
5161                 AppLogDebug("Cookie cleared success");
5162         }
5163         else
5164         {
5165                 AppLogDebug("Cache cleared fail");
5166         }
5167 }
5168
5169
5170 double
5171 MainForm::findDistance(int x1,int y1,int x2, int y2)
5172 {
5173         int deltaX = Math::Abs(x2 - x1);
5174         int deltaY = Math::Abs(y2 - y1);
5175         double num = deltaX*deltaX + deltaY*deltaY;
5176
5177         if (num >= 0)
5178         {
5179                 double x = num;
5180                 int i;
5181                 for (i = 0; i < 20; i++)
5182                 {
5183                         x = (((x*x)+ num)/(2*x));
5184                 }
5185                 return num;
5186         }
5187         else
5188         {
5189                 return 0.0;
5190         }
5191 }
5192
5193 void
5194 MainForm::OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
5195 {
5196         AppLog("xyz:: MainForm::OnTouchPressed called");
5197         if(__pFindWordControl)
5198         {
5199                 AppLog("MainForm::OnTouchPressed %d",__pFindWordControl->GetShowState());
5200 //              ShowFindWordPanel(__pFindWordControl->GetShowState(), true);
5201         }
5202         __isLongPressedDone = false;
5203
5204
5205
5206         Touch touch;
5207         IList* pList = null;
5208         pList = touch.GetTouchInfoListN(source);
5209
5210         if (pList != null)
5211         {
5212                 int count = pList->GetCount();
5213                 if (count == 1)
5214                 {
5215                         TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));
5216                         __touchPoint1 = pTouchInfo->position;
5217
5218                         /*if (__pAddressbar != null)
5219                         {
5220                                 if (__pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_LOADING_COMPLETE && __pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_LOADING)
5221                                 {
5222                                         if (__pAddressbar->GetAddressbarMode() == ADDRESSBAR_MODE_EDIT)
5223                                         {
5224                                                 __pAddressbar->SaveAddressbarEditText();
5225                                         }
5226                                         __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
5227                                 }
5228
5229                                 __pAddressbar->Invalidate(true);
5230                         }*/
5231                         if (GetAddressbarMode() != ADDRESSBAR_MODE_LOADING_COMPLETE && GetAddressbarMode() != ADDRESSBAR_MODE_LOADING)
5232                         {
5233                                 if (GetAddressbarMode() == ADDRESSBAR_MODE_EDIT)
5234                                 {
5235                                         //__pAddressbar->SaveAddressbarEditText();
5236                                 }
5237                                 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
5238                         }
5239                 }
5240                 else if (count == 2)
5241                 {
5242                         AppLogDebug("MainForm::OnTouchPressed count is two");
5243                         TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));
5244                         __touchPoint1 = pTouchInfo->position;
5245
5246                         pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(1));
5247                         __touchPoint2 = pTouchInfo->position;
5248                 }
5249         }
5250         if( pList != NULL)
5251         {
5252                 pList->RemoveAll(true);
5253                 delete pList;
5254         }
5255         if(__pAddressbar)
5256         {
5257                 __pAddressbar->SetShowState(false);
5258         }
5259         if(__pFooterPanel && __isKeypadOpened == false)
5260         {
5261                 __pFooterPanel->SetShowState(true);
5262         }
5263         RelayoutControls(false);
5264         return;
5265 }
5266
5267 void
5268 MainForm::OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
5269 {
5270 //      __currentWordIndex = 0;
5271         __isLongPressedDone = false;
5272
5273 }
5274
5275 void
5276 MainForm::MoveUiControls()
5277 {
5278 }
5279
5280 void
5281 MainForm::OnTextValueChanged (const Tizen::Ui::Control &source)
5282 {
5283         if(&source == dynamic_cast<Control*>(__pFooterUrlField) && __pFooterUrlField != null)
5284         {
5285                 if(__pFooterUrlField->GetTextLength() == 0)
5286                 {
5287                         __pFooterUrlField->SetKeypadActionEnabled(false);
5288                 }
5289                 else
5290                 {
5291                         __pFooterUrlField->SetKeypadActionEnabled(true);
5292                 }
5293         }
5294         if (__pFindWordEditField != null && __pFindWordEditField->GetShowState() == true)
5295         {
5296                 __currentSearchStr = __pFindWordEditField->GetText();
5297                 if (__currentSearchStr.GetLength() > 0)
5298                 {
5299                         __pFindWordCountLabel->SetShowState(true);
5300                 }
5301                 else
5302                 {
5303 //                      __pFindWordCountLabel->SetShowState(false);
5304                         __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),84,__pFindWordCountLabel->GetHeight());
5305                         __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),214+80,__pFindWordEditField->GetHeight());
5306
5307                 }
5308                 __pFindWordNext->SetEnabled(false);
5309                 __pFindWordPrev->SetEnabled(false);
5310                 __pFindWordNext->Invalidate(true);
5311                 __pFindWordPrev->Invalidate(true);
5312                 __pFindWordCountLabel->SetText(L"0/0");
5313                 __pFindWordCountLabel->Invalidate(true);
5314         }
5315         else if (__pFindWordEditFieldRightToLeft != null && __pFindWordEditFieldRightToLeft->GetShowState() == true)
5316         {
5317                 __currentSearchStr = __pFindWordEditFieldRightToLeft->GetText();
5318                 if (__currentSearchStr.GetLength() > 0)
5319                 {
5320                         __pFindWordCountLabelRightToLeft->SetShowState(true);
5321                 }
5322                 else
5323                 {
5324                         __pFindWordCountLabelRightToLeft->SetShowState(false);
5325                 }
5326
5327                 __pFindWordNext->SetEnabled(false);
5328                 __pFindWordPrev->SetEnabled(false);
5329                 __pFindWordNext->Invalidate(true);
5330                 __pFindWordPrev->Invalidate(true);
5331                 __pFindWordCountLabelRightToLeft->SetText(L"0/0");
5332                 __pFindWordCountLabelRightToLeft->Invalidate(true);
5333         }
5334         AppLog("__currentSearchStr %ls",__currentSearchStr.GetPointer());
5335         if (__currentSearchStr.GetLength() > 0)
5336         {
5337                 StartWordSearch();
5338         }
5339         else
5340         {
5341                 __currentSearchStr = L"aaaaaaaabbbbbbbccccccc";
5342                 StartWordSearch();
5343                 __currentSearchStr = L"";
5344                 AppLogDebug("Enter something");
5345         }
5346 }
5347
5348 result
5349 MainForm::InitMostVisitedSitesPanel(Tizen::Ui::OrientationStatus orientationStatus)
5350 {
5351         return E_SUCCESS;
5352
5353 }
5354
5355 result
5356 MainForm::InitMostVisitedSitesView(Tizen::Ui::OrientationStatus orientationStatus)
5357 {
5358         if(__pWebViewer != null)
5359                 return E_SUCCESS;
5360
5361         AppLog("MainForm::InitMostVisitedSitesView");
5362         result r = E_SUCCESS;
5363
5364
5365         if (__pWebViewer != null && __pMostVisitedListView != null)
5366         {
5367                 return E_SUCCESS;
5368         }
5369
5370         if (__pMostVisitedListView != null)
5371         {
5372                 RemoveControl(__pMostVisitedListView);
5373         }
5374         if(__pMostVisitedSites != null)
5375         {
5376                 __pMostVisitedSites->RemoveAll(true);
5377         }
5378
5379         HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);
5380
5381         __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();
5382         __pMostVisitedListView = new(std::nothrow) ListView();
5383
5384         int height = GetClientAreaBounds().height;
5385
5386         if(__pFooterPanel->GetShowState() == true)
5387         {
5388                 height = height - __pFooterPanel->GetHeight();
5389         }
5390         if(__pAddressbar->GetShowState() == true)
5391         {
5392                 height -= __pAddressbar->GetHeight();
5393         }
5394
5395         r = __pMostVisitedListView->Construct(Tizen::Graphics::Rectangle(0,0 , GetClientAreaBounds().width, height),true,false);
5396
5397         if (r != E_SUCCESS)
5398         {
5399                 delete __pMostVisitedListView;
5400                 AppLogDebug("Addressbar init failed with %s", GetErrorMessage(r));
5401                 return r;
5402         }
5403         __pMostVisitedListView->SetItemProvider(*this);
5404         __pMostVisitedListView->AddListViewItemEventListener(*this);
5405         __pMostVisitedListView->SetTextOfEmptyList(CommonUtil::GetString(L"IDS_BR_BODY_NO_VISITED_SITES"));
5406         AddControl(__pMostVisitedListView);
5407         __pMostVisitedListView->UpdateList();
5408
5409         return E_SUCCESS;
5410
5411 }
5412
5413 String
5414 MainForm::GetImagePath(void)
5415 {
5416
5417         String str;
5418         String formattedTime;
5419         DateTime currentTime;
5420         LocaleManager localManager;
5421         SystemTime::GetCurrentTime(TIME_MODE_WALL, currentTime);
5422
5423         localManager.Construct();
5424         Locale locale = localManager.GetSystemLocale();
5425         //Locale locale(LANGUAGE_ENG, COUNTRY_US);
5426
5427         // Get date formatter
5428         DateTimeFormatter* pTimeFormatter = DateTimeFormatter::CreateDateTimeFormatterN(locale, DATE_TIME_STYLE_DEFAULT);
5429
5430         if (pTimeFormatter)
5431         {
5432                 pTimeFormatter->Format(currentTime, formattedTime);
5433         }
5434
5435         AppLog("current time stamp is %ls", formattedTime.GetPointer());
5436         String delim(L" :");
5437         StringTokenizer strTok(formattedTime, delim);
5438         String token;
5439         String imageName;
5440         String str1("GMT+00");
5441         while (strTok.HasMoreTokens())
5442         {
5443                 strTok.GetNextToken(token); // Osp, StringTokenizer, Sample, code
5444                 if(token.Equals(str1))
5445                         break;
5446                 AppLog("token is %ls", token.GetPointer());
5447                 imageName.Append(token);
5448         }
5449         return imageName;
5450
5451 }
5452
5453 void MainForm::UpdateImageContent(ByteBuffer* aBuffer, String imageName)
5454 {
5455         result r = E_FAILURE;
5456         AppLog("Content manager 1");
5457         ContentId contentId;
5458         ContentManager contentManager;
5459         r = contentManager.Construct();
5460         if(IsFailed(r))
5461         {
5462                 AppLog("Content manager update content result %s" ,GetErrorMessage(r));
5463                 return;
5464         }
5465         Tizen::Base::String contentPath = Tizen::System::Environment::GetMediaPath() + L"Downloads/";
5466         Tizen::Io::Directory::Create(contentPath,true);
5467         if(GetLastResult() == E_FILE_ALREADY_EXIST)
5468         {
5469                 AppLog("Already exists");
5470         }
5471         else if(GetLastResult() == E_SUCCESS)
5472         {
5473                 AppLog("created success");
5474         }
5475         contentPath.Append(imageName);
5476         contentPath.Append(".jpg");
5477         contentId = contentManager.CreateContent(*aBuffer, contentPath);
5478         ShowIndicatorNotification(L"Download Complete",contentPath);
5479         AppLog("Content manager update content result %s" ,GetErrorMessage(GetLastResult()));
5480 }
5481
5482 void
5483 MainForm::ShowIndicatorNotification(const String& messageText, const String& contentPath)
5484 {
5485         AppLogDebug("ENTER");
5486
5487         NotificationRequest request;
5488         request.SetAlertText(messageText);
5489         request.SetTitleText(L"");
5490         request.SetAppMessage(contentPath);
5491         request.SetOngoingActivityType(ONGOING_ACTIVITY_TYPE_TEXT);
5492         request.SetNotificationStyle(NOTIFICATION_STYLE_THUMBNAIL);
5493         Tizen::App::App* pApp = Tizen::App::App::GetInstance();
5494         String homePath = pApp->GetAppRootPath();
5495         String iconPath = homePath + L"res/screen-density-xhigh/Notification_download_complete.png";
5496         AppLog("The iconPath is : %ls", homePath.GetPointer());
5497         request.SetIconFilePath(iconPath);
5498
5499         Tizen::Shell::NotificationManager notiMgr;
5500         notiMgr.Construct();
5501         notiMgr.NotifyOngoingActivity(request);
5502         AppLogDebug("EXIT: %s", GetErrorMessage(GetLastResult()));
5503         return;
5504 }
5505
5506 void
5507 MainForm::SetForwardButtonEnabled(bool isEnabled)
5508 {
5509         __pGoForwardBtn->SetEnabled(isEnabled);
5510         __pGoForwardBtn->Invalidate(true);
5511 }
5512
5513 void
5514 MainForm::SetBackButtonEnabled(bool isEnabled)
5515 {
5516         __pGoBackBtn->SetEnabled(isEnabled);
5517         __pGoBackBtn->Invalidate(true);
5518 }
5519
5520 void
5521 MainForm::UpdateProgress(int percentage)
5522 {
5523         __progressPercentage = percentage;
5524         if (percentage == 0 || percentage == 100)
5525         {
5526                 __isLoadingData = false;
5527                 if (percentage == 100)
5528                 {
5529                         __isLoadingCompleted = true;
5530                         __progressPercentage = 0;
5531                 }
5532                 else
5533                 {
5534                         __isLoadingCompleted = false;
5535                 }
5536         }
5537         else
5538         {
5539                 __isLoadingData = true;
5540         }
5541         UpdateProgressBitmap();
5542 }
5543
5544 int
5545 MainForm::GetProgress(void)
5546 {
5547         return __progressPercentage;
5548 }
5549
5550 void
5551 MainForm::UpdateProgressBitmap(void)
5552 {
5553         result r = E_SUCCESS;
5554         if (__pProgressbarLabel == null)
5555                 return;
5556         int w = __pProgressbarLabel->GetWidth();
5557         int h = __pProgressbarLabel->GetHeight();
5558         Canvas canvas;
5559         int progressWidth = 0;
5560         Bitmap* pRetBitmap = null;
5561
5562         if (__progressPercentage == 0 || __progressPercentage == 100)
5563         {
5564                 __pProgressbarLabel->SetShowState(false);
5565                 __pProgressbarLabel->Invalidate(false);
5566                 return;
5567         }
5568         else
5569         {
5570                 __pProgressbarLabel->SetShowState(true);
5571                 __pProgressbarLabel->Invalidate(false);
5572         }
5573
5574         r = canvas.Construct(Rectangle(0, 0, w, h));
5575
5576         if (r != E_SUCCESS)
5577         {
5578                 AppLogException("Canvas construction failed with %s", GetErrorMessage(r));
5579                 return;
5580         }
5581
5582         canvas.Clear();
5583         Bitmap *pBgBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR_BG);
5584
5585         if (pBgBmp != null)
5586         {
5587                 pBgBmp->Scale(Dimension(w, h));
5588                 canvas.DrawBitmap(Point(0,0), *pBgBmp);
5589                 delete pBgBmp;
5590         }
5591
5592         progressWidth = (double) (w) * __progressPercentage / 100;
5593         AppLogDebug("progressWidth: %d", progressWidth);
5594         Bitmap *pProgressBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR);
5595
5596         if (pProgressBmp != null)
5597         {
5598                 pProgressBmp->Scale(Dimension(progressWidth, h));
5599                 canvas.DrawBitmap(Point(0,0), *pProgressBmp);
5600                 delete pProgressBmp;
5601         }
5602
5603         pRetBitmap = new (std::nothrow) Bitmap();
5604
5605         if (pRetBitmap == null)
5606         {
5607                 AppLogException("Bitmap creation failed with %s", GetErrorMessage(r));
5608                 return;
5609         }
5610
5611         pRetBitmap->Construct(canvas, canvas.GetBounds());
5612
5613         if (__pProgressbarLabel != null && pRetBitmap != null)
5614         {
5615                 __pProgressbarLabel->SetBackgroundBitmap(*pRetBitmap);
5616                 __pProgressbarLabel->Invalidate(false);
5617         }
5618
5619         if (pRetBitmap != null)
5620         {
5621                 delete pRetBitmap;
5622                 pRetBitmap = null;
5623         }
5624         return;
5625 }
5626
5627 void
5628 MainForm::ReaderClicked()
5629 {
5630         result r = E_SUCCESS;
5631         ArrayList* pArgList = new(std::nothrow) ArrayList();
5632         if (pArgList != null)
5633         {
5634                 r = pArgList->Construct();
5635                 if (IsFailed(r))
5636                 {
5637                         delete pArgList;
5638                         return;
5639                 }
5640
5641                 r = pArgList->Add(*new(std::nothrow) String(*__pReaderData));
5642                 if (IsFailed(r))
5643                 {
5644                         delete pArgList;
5645                         return;
5646                 }
5647
5648                 r = pArgList->Add(*new(std::nothrow) String(__pWebViewer->GetUrl()));
5649                 if (IsFailed(r))
5650                 {
5651                         delete pArgList;
5652                         return;
5653                 }
5654
5655                 r = pArgList->Add(*new(std::nothrow) String(__pWindowInfo->pageTitle));
5656                 if (IsFailed(r))
5657                 {
5658                         delete pArgList;
5659                         return;
5660                 }
5661         }
5662
5663         SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_ARTICLE_READER, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
5664         return;
5665
5666
5667 }
5668
5669 void MainForm::SetAddressbarMode(AddressBarMode addMode)
5670 {
5671         AppLogDebug("AddressBar::setAddressbarMode to %d",addMode);
5672
5673         __currentAddMode = addMode;
5674
5675         switch(addMode)
5676         {
5677         case ADDRESSBAR_MODE_INVALID:
5678         {
5679                 // do nothing
5680         }
5681         break;
5682         case ADDRESSBAR_MODE_READER:
5683         {
5684                 __pStopBtn->SetShowState(false);
5685                 __pRefreshBtn->SetShowState(false);
5686                 __pClearBtn->SetShowState(false);
5687                 __pReaderBtn->SetShowState(false);
5688         }
5689         break;
5690         case ADDRESSBAR_MODE_LOADING:
5691         {
5692                 __pRefreshBtn->SetShowState(false);
5693                 __pStopBtn->SetShowState(true);
5694                 __pClearBtn->SetShowState(false);
5695                 __pReaderBtn->SetShowState(false);
5696         }
5697         break;
5698         case ADDRESSBAR_MODE_LOADING_COMPLETE:
5699         {
5700 //              SetUrl(__pAddressbar->GetUrl());
5701
5702                 __pRefreshBtn->SetShowState(true);
5703                 __pStopBtn->SetShowState(false);
5704                 __pClearBtn->SetShowState(false);
5705                 __pReaderBtn->SetShowState(false);
5706         }
5707         break;
5708         case ADDRESSBAR_MODE_EDIT:
5709         {
5710                 __pRefreshBtn->SetShowState(false);
5711                 __pStopBtn->SetShowState(false);
5712                 __pReaderBtn->SetShowState(false);
5713                 __pClearBtn->SetShowState(true);
5714         }
5715         break;
5716         }
5717
5718         Invalidate(true);
5719
5720         OnAddressBarModeChanged();
5721 }
5722
5723 AddressBarMode MainForm::GetAddressbarMode(void)
5724 {
5725         return __currentAddMode;
5726 }
5727
5728 void MainForm::SetUrl(const String& url)
5729 {
5730         __displayUrl = url;
5731         if(__displayUrl.GetLength() > 2048)
5732                 __displayUrl.SubString(0,2048,__displayUrl);
5733
5734         if (__pFooterUrlField != NULL)
5735         {
5736                 String removedHttpUrl = RemoveHttpTextFromDisplayURL();
5737                 if (removedHttpUrl.IsEmpty() == false)
5738                 {
5739                         __pFooterUrlField->SetText(removedHttpUrl);
5740                         if(__pAddressbar != NULL && __pAddressbar->HasCurrentFocus() == false)
5741                                 __pAddressbar->SetUrl(__displayUrl);
5742                 }
5743                 else
5744                 {
5745                         __pFooterUrlField->SetText(__displayUrl);
5746                         if(__pAddressbar != NULL && __pAddressbar->HasCurrentFocus() == false)
5747                                 __pAddressbar->SetUrl(__displayUrl);
5748                 }
5749                 if(__pFooterUrlField)
5750                         __pFooterUrlField->SetCursorPosition(__pFooterUrlField->GetTextLength());
5751                 __pFooterUrlField->Invalidate(false);
5752                 if(__pAddressbar != NULL && __pAddressbar->HasFocus())
5753                         __pAddressbar->Invalidate(true);
5754 //              __pFooterUrlField->SetCursorPosition(0);
5755         }
5756 }
5757
5758 String
5759 MainForm::RemoveHttpTextFromDisplayURL(void)
5760 {
5761         AppLog("MainForm::RemoveHttpTextFromDisplayURL __displayUrl %ls",__displayUrl.GetPointer());
5762         int index = -1;
5763 //      bool isHttpText = __displayUrl.Contains(L"http://");
5764         String updatedDisplayUrl;
5765         updatedDisplayUrl.Clear();
5766         if(__displayUrl.IndexOf(L"http://",0,index) == E_SUCCESS && index == 0)
5767         {
5768                 __displayUrl.SubString(7,updatedDisplayUrl);
5769         }
5770         else if(__displayUrl.IndexOf(L"https://",0,index) == E_SUCCESS && index == 0)
5771         {
5772                 __displayUrl.SubString(8,updatedDisplayUrl);
5773         }
5774         return updatedDisplayUrl;
5775 }
5776
5777 void MainForm::OnSharePopupControlStarted(void)
5778 {
5779         __pWebViewer->AddTouchEventListener(*this);
5780 }
5781
5782 void
5783 MainForm::OnUserEventReceivedN (RequestId requestId, Tizen::Base::Collection::IList *pArgs)
5784 {
5785         if (requestId == BACK_GROUND_APP_EVENT)
5786         {
5787                 if(__pWebViewer != null)
5788                 {
5789                         __pWebViewer->Pause();
5790                 }
5791                 if(__pImageMenu)
5792                 {
5793                         __pImageMenu->SetShowState(false);
5794                 }
5795                 if(__pAddressbar != null)
5796                 {
5797                         __pAddressbar->SendUserEvent(BACK_GROUND_APP_EVENT,NULL);
5798                 }
5799         }
5800         else if(requestId == FORE_GROUND_APP_EVENT)
5801         {
5802                 if(__pWebViewer != null)
5803                 {
5804                         __pWebViewer->Resume();
5805                 }
5806                 if(__pAddressbar != null)
5807                 {
5808                         __pAddressbar->SendUserEvent(FORE_GROUND_APP_EVENT,NULL);
5809                 }
5810         }
5811 }
5812
5813 void
5814 MainForm::AddressBarCancelledClicked(const Addressbar& addBar)
5815 {
5816         AppLog("XYZ::MainForm::AddressBarCancelledClicked");
5817         result r = E_SUCCESS;
5818
5819         if (__pAddressbar)
5820                 __pAddressbar->SetShowState(false);
5821
5822         AppLog("akjshdasd 5");
5823         __pFooterPanel->SetShowState(true);
5824
5825         if(__pWebViewer)
5826                 __pWebViewer->SetFocus();
5827         else if(__pMostVisitedListView)
5828                 __pMostVisitedListView->SetFocus();
5829         else if(__pMultiWindowButton)
5830                 __pMultiWindowButton->SetFocus();
5831         else if(__pMoreButton)
5832                 __pMoreButton->SetFocus();
5833
5834         __pAddressbar->SetShowState(false);
5835
5836         RelayoutControls(false);
5837 }
5838
5839 void
5840 MainForm::OnFormMenuRequested (Tizen::Ui::Controls::Form &source)
5841 {
5842         AppLog("MainForm::OnFormMenuRequested called");
5843         InitOptionMenu();
5844         if (__pWindowInfo != NULL && __pWindowInfo->pageUrl != NULL && __pWebViewer && __pWebViewer->GetShowState() == true)
5845         {
5846                 int bookmarkCount=0;
5847                 bool exist = false;
5848                 String url=L"";
5849                 url=__pWindowInfo->pageUrl;
5850                 AppLog("MainForm::OnFormMenuRequested url %ls",url.GetPointer());
5851                 result r = E_SUCCESS;
5852                 Bitmap* pBitmap = null;
5853                 String lastChar = L"";
5854 //              if(url.SubString(url.GetLength()-1,lastChar));
5855 //              if(lastChar == L"/")
5856 //              {
5857 //                      bool exist1 = false;
5858 //                      bool exist2 = false;
5859 //                      r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist1);
5860 //                      url.SubString(0,url.GetLength() - 1,url);
5861 //                      r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist2);
5862 //                      exist = exist1 | exist2;
5863 //              }
5864 //              else
5865 //              {
5866                         r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist);
5867                         if (IsFailed(r))
5868                         {
5869                                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED failed");
5870                                 return;
5871                         }
5872 //              }
5873                 if ( exist == true)
5874                 {
5875                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_ON_TEMP);
5876                 }
5877                 else
5878                 {
5879                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_OFF_TEMP);
5880                 }
5881                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 3");
5882
5883                 if (__pOptionMenu->GetItemCount() == 9)
5884                 {
5885                         r = __pOptionMenu->SetItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
5886                 }
5887                 else
5888                 {
5889                         r = __pOptionMenu->InsertItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
5890                 }
5891
5892                 if (IsFailed(r))
5893                 {
5894                         AppLogException("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED Add to Bookmark failed with %s", GetErrorMessage(r));
5895                         delete pBitmap;
5896                         return ;
5897                 }
5898                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 4");
5899                 if (__pOptionMenu->GetItemCount() != 9)
5900                 {
5901                         __pOptionMenu->InsertItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED);
5902                         __pOptionMenu->InsertItemAt(2,CommonUtil::GetString(L"IDS_BR_BODY_PRINT"), IDA_PRINT_CLICKED);
5903 //                              __pOptionMenu->InsertItemAt(2,L"Add to Home"/*CommonUtil::GetString(L"IDS_BR_OPT_SHARE")*/, IDA_ADD_TO_HOME_CLICKED);
5904                         __pOptionMenu->InsertItemAt(3,CommonUtil::GetString(L"IDS_BR_OPT_SHARE"), IDA_SHARE_CLICKED);
5905                         __pOptionMenu->InsertItemAt(4,CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"), IDA_FINDONPAGE_CLICKED);
5906                         __pOptionMenu->SetMaxVisibleItemsCount(6);
5907                 }
5908                 if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
5909                 {
5910                         AppLog(" Orientation landscape");
5911                         __pOptionMenu->SetMaxVisibleItemsCount(5);
5912                 }
5913                 else
5914                 {
5915                         AppLog(" Orientation potrait");
5916                         __pOptionMenu->SetMaxVisibleItemsCount(6);
5917                 }
5918
5919                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 5");
5920                 delete pBitmap;
5921         }
5922         AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED end");
5923         if(__pAddressbar)
5924                 __pAddressbar->SetShowState(false);
5925         SetFocus();
5926         __pFooterPanel->SetShowState(true);
5927         result r = __pOptionMenu->SetShowState(true);
5928         AppLog("ajsghd %s",GetErrorMessage(r));
5929         RelayoutControls(false);
5930         __pOptionMenu->Invalidate(true);
5931         __pOptionMenu->Show();
5932
5933 }