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