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