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