merge with master
[apps/osp/Internet.git] / src / IntMainForm.cpp
1 //\r
2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
3 //\r
4 // Licensed under the Flora License, Version 1.0 (the License);\r
5 // you may not use this file except in compliance with the License.\r
6 // You may obtain a copy of the License at\r
7 //\r
8 //     http://floralicense.org/license/\r
9 //\r
10 // Unless required by applicable law or agreed to in writing, software\r
11 // distributed under the License is distributed on an AS IS BASIS,\r
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13 // See the License for the specific language governing permissions and\r
14 // limitations under the License.\r
15 //\r
16 \r
17 //!Internet MainForm class\r
18 /*@file:        MainForm.cpp\r
19  *@brief:       The %MainForm provides the common functionalities for the Main View of the Browser including the addressbar,\r
20  *                      loading,handling events etc.\r
21  */\r
22 \r
23 #include <FApp.h>\r
24 #include <FGraphics.h>\r
25 #include <FMedia.h>\r
26 #include <FUi.h>\r
27 #include <FContent.h>\r
28 \r
29 #include "IntBookmarkData.h"\r
30 #include "IntBookmarkPresentationModel.h"\r
31 #include "IntCommonLib.h"\r
32 #include "IntFaviconManager.h"\r
33 #include "IntMainForm.h"\r
34 #include "IntNotificationPanel.h"\r
35 #include "IntSceneRegister.h"\r
36 #include "IntSettingPresentationModel.h"\r
37 \r
38 using namespace Tizen::App;\r
39 using namespace Tizen::Base;\r
40 using namespace Tizen::Base::Collection;\r
41 using namespace Tizen::Base::Runtime;\r
42 using namespace Tizen::Base::Utility;\r
43 using namespace Tizen::Graphics;\r
44 using namespace Tizen::Io;\r
45 using namespace Tizen::Locales;\r
46 using namespace Tizen::Media;\r
47 using namespace Tizen::Ui;\r
48 using namespace Tizen::Ui::Controls;\r
49 using namespace Tizen::Content;\r
50 using namespace Tizen::Ui::Scenes;\r
51 using namespace Tizen::System;\r
52 using namespace Tizen::Web;\r
53 using namespace Tizen::Web::Controls;\r
54 \r
55 static const wchar_t* IDB_BTN_BACK = L"I01_icon_Back.png";\r
56 static const wchar_t* IDB_BTN_BACK_PRESS = L"I01_icon_Back_press.png";\r
57 static const wchar_t* IDB_CONTRLBAR_ICON_BOOKMARK = L"I01_search_list_icon_favorite.png";\r
58 static const wchar_t* IDB_CONTRLBAR_ICON_BOOKMARK_PRESS = L"I01_search_list_icon_favorite_press.png";\r
59 static const wchar_t* IDB_CONTRLBAR_ICON_MORE = L"I01_icon_more.png";\r
60 static const wchar_t* IDB_CONTRLBAR_ICON_MORE_PRESS = L"I01_icon_more_press.png";\r
61 static const wchar_t* IDB_CONTRLBAR_ICON_NEW_WINDOW = L"I01_icon_plus.png";\r
62 static const wchar_t* IDB_CONTRLBAR_ICON_NEW_WINDOW_PRESS = L"I01_icon_plus_press.png";\r
63 static const wchar_t* IDB_CONTROLBAR_ICON_CREATE_DISABLE = L"I01_controlbar_icon_create_disable.png";\r
64 static const wchar_t* IDB_BUTTON_ON = L"00_button_on.png";\r
65 static const wchar_t* IDB_BUTTON_OFF = L"00_button_off.png";\r
66 static const wchar_t* IDB_ICON_BOOKMARK_OFF_TEMP = L"I01_icon_bookmark_off_temp.png";\r
67 static const wchar_t* IDB_ICON_BOOKMARK_ON_TEMP = L"I01_icon_bookmark_on_temp.png";\r
68 static const wchar_t* IDS_TIZEN_SERVICE = L"tizen-service";\r
69 static const wchar_t* IDS_APPID = L"AppID";\r
70 \r
71 const int IDA_BACKBTN_CLICKED = 101;\r
72 const int IDA_BOOKMARKBTN_CLICKED = 102;\r
73 const int IDA_MOREBTN_CLICKED = 103;\r
74 const int IDA_MULTIWINDOWBTN_CLICKED = 104;\r
75 const int IDA_NEWWINDOWBTN_CLICKED = 105;\r
76 const int IDA_FORWARD_CLICKED = 106;\r
77 const int IDA_ADDTOBOOKMARK_CLICKED = 107;\r
78 const int IDA_SHARE_CLICKED = 108;\r
79 const int IDA_FINDONPAGE_CLICKED = 109;\r
80 const int IDA_PRIVATEON_CLICKED = 110;\r
81 const int IDA_SETTINGS_CLICKED = 111;\r
82 const int IDA_READER_CLOSE_CLICKED = 112;\r
83 const int IDA_SMALLFONT_BTN_CLICKED = 113;\r
84 const int IDA_LARGEFONT_BTN_CLICKED = 114;\r
85 const int IDA_BRIGHTNESS_BTN_CLICKED = 115;\r
86 const int IDA_FINDWORD_SEARCH_CLICKED = 201;\r
87 const int IDA_FINDWORD_NEXT_CLICKED = 202;\r
88 const int IDA_FINDWORD_PREV_CLICKED = 203;\r
89 const int IDA_FINDWORD_CLEAR_CLICKED = 204;\r
90 const int IDA_FINDWORD_CANCEL_CLICKED = 205;\r
91 \r
92 const int IDA_COPY_IMAGE_CLICKED = 206;\r
93 const int IDA_VIEW_IMAGE_CLICKED = 207;\r
94 const int IDA_SAVE_IMAGE_CLICKED = 208;\r
95 const int IDA_SHARE_IMAGE_CLICKED = 209;\r
96 \r
97 const int IDA_COPY_TEXT_CLICKED = 210;\r
98 const int IDA_PASTE_TEXT_CLICKED = 211;\r
99 const int IDA_FIND_TEXT__CLICKED = 212;\r
100 const int IDA_SHARE_TEXT_CLICKED = 213;\r
101 const int DEFAULT_PROGRESS_PERCENTAGE = 10;\r
102 \r
103 const int MainForm::IDA_FORMAT_BITMAP = 500;\r
104 const int MainForm::IDA_FORMAT_DELETE_BITMAP = 501;\r
105 const int MainForm::IDA_FORMAT_TITLE_STRING = 502;\r
106 const int MainForm::IDA_FORMAT_URL_STRING = 503;\r
107 const int MainForm::IDA_CONTEXT_ITEM_DELETE = 504;\r
108 \r
109 static const int WIDTH_CONTEXT_MENU_BUTTON_PORTRAIT = 336;\r
110 static const int WIDTH_CONTEXT_MENU_BUTTON_LANDSCAPE = 800;\r
111 static const int HEIGHT_CONTEXT_MENU_BUTTON = 72;\r
112 \r
113 MainForm::MainForm(void)\r
114 {\r
115         __pAddressbar = null;\r
116         //      __pMostVisitedSitesPanel = null;\r
117         __pMostVisitedListView = null;\r
118         __pFooterPanel = null;\r
119         __pHitElementResult = null;\r
120         __pWindowInfo = null;\r
121         __pWebViewer = null;\r
122         __pImageMenu = null;\r
123         __pMenu = null;\r
124         __pFindWordControl = null;\r
125         __pFindWordPanel = null;\r
126         __pFindWordBgLabel = null;\r
127         __pFindWordEditField = null;\r
128         __pFindWordClear = null;\r
129         __pFindWordCountLabel = null;\r
130         __pFindWordNext = null;\r
131         __pFindWordPrev = null;\r
132         __previousZoomLevel = 1.0;\r
133         __pSaveImage = null;\r
134         __currentSearchStr = L"";\r
135         __currentSelectedStr = L"";\r
136         __maxOccurrances = 0;\r
137         __currentWordIndex = 0;\r
138         __distanceMoved = 0;\r
139         __isLoaded = false;\r
140         __inputEventToBeSupressed = false;\r
141         __touchPoint1 = Point(-1,-1);\r
142         __touchPoint2 = Point(-1,-1);\r
143         __pWebReader = null;\r
144         //      __pReaderPopup = null;\r
145         __pReaderData = null;\r
146         __pPopUp = null;\r
147         __pReaderCloseBtn = null;\r
148         __pNewWindowButton = null;\r
149         __pMoreButton = null;\r
150         __pMultiWindowButton = null;\r
151         __pArticleReaderPanel = null;\r
152         __pBlankPanel = null;\r
153         __pArticleReaderLabel = null;\r
154         __webControlHeight = 0;\r
155         __prevAddressBarMode = ADDRESSBAR_MODE_INVALID;\r
156         __curAddressBarMode = ADDRESSBAR_MODE_INVALID;\r
157         __pMostVisitedSites = null;\r
158 }\r
159 \r
160 MainForm::~MainForm(void)\r
161 {\r
162         SettingPresentationModel::GetInstance()->RemoveSettingsEventListener(*this);\r
163 \r
164         if(__pAddressbar)\r
165         {\r
166                 __pAddressbar->SetAddressbarEventListener(null);\r
167         }\r
168         if (__pReaderData != null)\r
169         {\r
170                 delete __pReaderData;\r
171                 __pReaderData = null;\r
172         }\r
173 \r
174         if (__pPopUp != null)\r
175         {\r
176                 delete __pPopUp;\r
177                 __pPopUp = null;\r
178         }\r
179 \r
180         if (__pHitElementResult != null)\r
181         {\r
182                 delete __pHitElementResult;\r
183                 __pHitElementResult = null;\r
184         }\r
185         String* pSelectedScene = NULL;\r
186         Object* pValue = NULL;\r
187         MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &pValue);\r
188         pSelectedScene = (String*) pValue;\r
189 \r
190         /*if (pSelectedScene != null)\r
191         {\r
192                 delete pSelectedScene;\r
193         }\r
194         MultiWindowPresentationModel::SetValue(SELECTED_SCENE_ID, null);*/\r
195 }\r
196 \r
197 bool\r
198 MainForm::Initialize(void)\r
199 {\r
200         Construct(L"IDL_FORM");\r
201         return true;\r
202 }\r
203 \r
204 result\r
205 MainForm::OnInitializing(void)\r
206 {\r
207         const int WIDTH_CONTEXT_MENU_BUTTON = 336;\r
208         const int HEIGHT_CONTEXT_MENU_BUTTON = 72;\r
209 \r
210         Panel* pFooterPanel = null;\r
211 \r
212         __pSaveImage = new Image();\r
213         __pSaveImage->Construct();\r
214 \r
215         // Setup back event listener\r
216         SettingPresentationModel::GetInstance()->AddSettingsEventListener(*this);\r
217         SceneManager::GetInstance()->AddSceneEventListener(IDSCN_MAIN_VIEW, *this);\r
218         AddOrientationEventListener(*this);\r
219         AppLogDebug(" MainForm::OnInitializing ended");\r
220         if (__pMostVisitedSites == null)\r
221         {\r
222                 __pMostVisitedSites = new(std::nothrow) ArrayList();\r
223                 __pMostVisitedSites->Construct();\r
224         }\r
225         HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);\r
226 \r
227         __pItemContext= new(std::nothrow) ListContextItem();\r
228         __pItemContext->Construct();\r
229         Bitmap* pBitmapNormal = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete.9.png", WIDTH_CONTEXT_MENU_BUTTON,HEIGHT_CONTEXT_MENU_BUTTON);\r
230         Bitmap* pBitmapPressed = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete_press.9.png", WIDTH_CONTEXT_MENU_BUTTON, HEIGHT_CONTEXT_MENU_BUTTON);\r
231 \r
232         if (pBitmapNormal != null && pBitmapPressed != null)\r
233         {\r
234                 __pItemContext->AddElement(IDA_CONTEXT_ITEM_DELETE, CommonUtil::GetString(L"IDS_BR_SK_DELETE_ABB"), *pBitmapNormal, *pBitmapPressed, pBitmapPressed);\r
235         }\r
236 \r
237         if (pBitmapNormal != null)\r
238         {\r
239                 delete pBitmapNormal;\r
240         }\r
241 \r
242         if (pBitmapPressed != null)\r
243         {\r
244                 delete pBitmapPressed;\r
245         }\r
246 \r
247         return E_SUCCESS;\r
248 }\r
249 \r
250 result\r
251 MainForm::InitAddressbar(void)\r
252 {\r
253         AppLogDebug("MainForm::InitAddressbar entered");\r
254 \r
255         result r = E_SUCCESS;\r
256 \r
257         if (__pAddressbar != null)\r
258         {\r
259                 return E_SUCCESS;\r
260         }\r
261         __pAddressbar = new(std::nothrow) Addressbar();\r
262         AppLog("MainForm::InitAddressbar GetClientAreaBounds().width %d",GetClientAreaBounds().width);\r
263         r = __pAddressbar->Initialize(Tizen::Graphics::Rectangle(0, 0, GetClientAreaBounds().width, 82));\r
264         if (r != E_SUCCESS)\r
265         {\r
266                 AppLogDebug("Addressbar init failed with %s", GetErrorMessage(r));\r
267                 return r;\r
268         }\r
269         __pAddressbar->SetAddressbarEventListener(this);\r
270         AddControl(*__pAddressbar);\r
271         __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));\r
272         SetControlAlwaysOnTop(*__pAddressbar, true);\r
273         __adressPanelPosition = __pAddressbar->GetPosition();\r
274 \r
275         AppLogDebug("MainForm::InitAddressbar exit");\r
276 \r
277         return E_SUCCESS;\r
278 }\r
279 \r
280 result\r
281 MainForm::CreateReaderPanel(void)\r
282 {\r
283         AppLogDebug("CreateReaderPanel() width %d",GetClientAreaBounds().width);\r
284         result r = E_FAILURE;\r
285         WebSetting settings;\r
286         Button *pSmallFontBtn = null;\r
287         Button *pLargeFontBtn = null;\r
288 \r
289         __pBlankPanel = new (std::nothrow) Panel();\r
290         __pBlankPanel->Construct(L"IDL_BLANK_PANEL");\r
291 \r
292         __pArticleReaderPanel = new (std::nothrow) Panel();\r
293         __pArticleReaderPanel->Construct(L"IDL_ARTICLE_READER");\r
294 \r
295         __pReaderCloseBtn =  static_cast<Button*>(__pArticleReaderPanel->GetControl(L"IDC_CLOSE_READER",true));\r
296         if (__pReaderCloseBtn)\r
297         {\r
298                 AppLogDebug("CreateReaderPanel() 6");\r
299                 __pReaderCloseBtn->AddActionEventListener(*this);\r
300                 __pReaderCloseBtn->SetActionId(IDA_READER_CLOSE_CLICKED);\r
301         }\r
302 \r
303         __pWebReader = new (std::nothrow) Web();\r
304         __pWebReader->Construct(Rectangle(2,2, __pArticleReaderPanel->GetWidth()-2,__pArticleReaderPanel->GetHeight() - 96 -2));\r
305 \r
306         settings.SetInputStyle(INPUT_STYLE_OVERLAY);\r
307         settings.SetFontSize(SettingPresentationModel::GetInstance()->GetReaderFontSize());\r
308 \r
309         r = __pWebReader->SetSetting(settings);\r
310         if (IsFailed(r))\r
311                 AppLogDebug("Web setting add failed with %s", GetErrorMessage(r));\r
312 \r
313 \r
314         __pArticleReaderLabel = new Label();\r
315         __pArticleReaderLabel->Construct(Rectangle(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight()),L"");\r
316 \r
317         __pBlankPanel->AddControl(*__pArticleReaderLabel);\r
318         __pBlankPanel->AddControl(*__pArticleReaderPanel);\r
319         AddControl(*__pBlankPanel);\r
320 \r
321         __pBlankPanel->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height);\r
322         __pArticleReaderPanel->SetBounds((GetClientAreaBounds().width - __pArticleReaderPanel->GetWidth())/2,(GetClientAreaBounds().height - __pArticleReaderPanel->GetHeight())/2, __pArticleReaderPanel->GetWidth(), __pArticleReaderPanel->GetHeight());\r
323         __pArticleReaderLabel->SetBounds(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());\r
324 \r
325         __pArticleReaderPanel->AddControl(*__pWebReader);\r
326         __pWebReader->SetBounds(Rectangle(2,2, __pArticleReaderPanel->GetWidth()-2,__pArticleReaderPanel->GetHeight() - 96 -2));\r
327         Bitmap* pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());\r
328         Bitmap* pSrcBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bottom_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());\r
329 \r
330         if (pBitmap != null && pSrcBitmap != null)\r
331         {\r
332                 pBitmap->Merge(Point(0,__pArticleReaderPanel->GetHeight() - 96),*pSrcBitmap,Rectangle(0,0,pSrcBitmap->GetWidth(),pSrcBitmap->GetHeight()));\r
333         }\r
334         __pArticleReaderLabel->SetBackgroundBitmap(*pBitmap);\r
335 \r
336         pSmallFontBtn =  static_cast<Button*>(__pArticleReaderPanel->GetControl(L"IDC_SMALL_FONT",true));\r
337         if (pSmallFontBtn)\r
338         {\r
339                 pSmallFontBtn->AddActionEventListener(*this);\r
340                 pSmallFontBtn->SetActionId(IDA_SMALLFONT_BTN_CLICKED);\r
341         }\r
342 \r
343         pLargeFontBtn =  static_cast<Button*>(__pArticleReaderPanel->GetControl(L"IDC_LARGE_FONT",true));\r
344         if (pLargeFontBtn)\r
345         {\r
346                 pLargeFontBtn->AddActionEventListener(*this);\r
347                 pLargeFontBtn->SetActionId(IDA_LARGEFONT_BTN_CLICKED);\r
348         }\r
349 \r
350 \r
351         if (pBitmap != null)\r
352         {\r
353                 delete pBitmap;\r
354                 pBitmap = null;\r
355         }\r
356         if (pSrcBitmap != null)\r
357         {\r
358                 delete pSrcBitmap;\r
359                 pSrcBitmap = null;\r
360         }\r
361 \r
362         SetControlAlwaysOnTop(*__pBlankPanel, true);\r
363         //__pBlankPanel->SetControlAlwaysAtBottom(*__pArticleReaderPanel, true);\r
364         Invalidate(true);\r
365 \r
366         return E_SUCCESS;\r
367 }\r
368 \r
369 result\r
370 MainForm::InitWebControl()\r
371 {\r
372         AppLogDebug("MainForm::InitWebControl enter");\r
373         result r = E_SUCCESS;\r
374         AppLogDebug("InitWebControl");\r
375 \r
376         if (__pAddressbar == null || __pFooterPanel == null)\r
377                 return E_FAILURE;\r
378 \r
379         const int Y_WEBCONTROL_POSITION = __pAddressbar->GetY() + __pAddressbar->GetHeight() - 12;\r
380         __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();\r
381         if (__pMostVisitedListView)\r
382         {\r
383                 __pMostVisitedListView->SetShowState(false);\r
384         }\r
385         if (__pWebViewer != null)\r
386         {\r
387                 AppLogDebug("Already initialized");\r
388                 return E_SUCCESS;\r
389         }\r
390         __pWebViewer = new(std::nothrow) Web();\r
391         if(__pWebViewer == NULL)\r
392         {\r
393                 AppLogDebug("Initialization failed");\r
394                 return E_FAILURE;\r
395         }\r
396         r = __pWebViewer->Construct(Rectangle(0, Y_WEBCONTROL_POSITION, GetClientAreaBounds().width,__webControlHeight));\r
397 \r
398         if (IsFailed(r))\r
399         {\r
400                 AppLogDebug("Web construct failed with %s", GetErrorMessage(r));\r
401                 return r;\r
402         }\r
403         else\r
404         {\r
405                 r = AddControl(*__pWebViewer);\r
406 \r
407                 if (IsFailed(r))\r
408                 {\r
409                         AppLogDebug("Web addcontrol failed with %s", GetErrorMessage(r));\r
410                         return r;\r
411                 }\r
412                 __webControlPosition = __pWebViewer->GetPosition();\r
413                 r = __pWebViewer->SetSetting(SettingPresentationModel::GetInstance()->GetWebSettings());\r
414                 if (IsFailed(r))\r
415                 {\r
416                         AppLogDebug("Web setting add failed with %s", GetErrorMessage(r));\r
417                         return r;\r
418                 }\r
419 \r
420                 __pWebViewer->SetLoadingListener(this);\r
421                 __pWebViewer->SetWebUiEventListener(this);\r
422                 __pWebViewer->SetWebKeypadEventListener(this);\r
423                 __pWebViewer->SetFocus();\r
424                 __pWebViewer->AddTouchEventListener(*this);\r
425 \r
426                 __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());\r
427                 __pWebViewer->SetTextSearchListener(this);\r
428         }\r
429 \r
430         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width,__webControlHeight));\r
431         AppLogDebug("MainForm :before return");\r
432         Invalidate(true);\r
433         AppLogDebug("MainForm::InitWebControl Exit");\r
434 \r
435         return r;\r
436 }\r
437 \r
438 void\r
439 MainForm::SetJavascriptEnabled()\r
440 {\r
441         WebSetting settings = __pWebViewer->GetSetting();\r
442         settings.SetJavascriptEnabled(SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled());\r
443         __pWebViewer->SetSetting(settings);\r
444 }\r
445 \r
446 void\r
447 MainForm::SetImageLoadEnabled()\r
448 {\r
449         WebSetting settings = __pWebViewer->GetSetting();\r
450         settings.SetAutoImageLoadEnabled(SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());\r
451         __pWebViewer->SetSetting(settings);\r
452 }\r
453 \r
454 result\r
455 MainForm::InitFooter(void)\r
456 {\r
457         AppLogDebug("MainForm::InitFooter entered");\r
458         Button* pBackButton = null;\r
459         Button* pBookmarkButton = null;\r
460         Button* pMultiWindowButton = null;\r
461         Bitmap *pIconBitmap = null;\r
462         Bitmap *pBGBitmap = null;\r
463         Label *pBGLabel = null;\r
464 \r
465         if (__pFooterPanel == null)\r
466         {\r
467                 __pFooterPanel = static_cast< Panel* >(GetControl(L"IDC_FOOTER_PANEL", true));\r
468         }\r
469 \r
470         if (__pFooterPanel == null)\r
471         {\r
472                 return E_FAILURE;\r
473         }\r
474 \r
475         SetControlAlwaysOnTop(*__pFooterPanel, true);\r
476 \r
477         __pMultiWindowButton = static_cast< Button* >(GetControl(L"IDC_MULTIWINDOW_BUTTON", true));\r
478 \r
479         if ( __pMultiWindowButton == NULL )\r
480         {\r
481                 return E_FAILURE;\r
482         }\r
483 \r
484         pBackButton = static_cast< Button* >(GetControl(L"IDC_PAGEBACK_BUTTON", true));\r
485 \r
486         if ( pBackButton == NULL )\r
487         {\r
488                 return E_FAILURE;\r
489         }\r
490 \r
491         pBookmarkButton = static_cast< Button* >(GetControl(L"IDC_BOOKMARK_BUTTON", true));\r
492 \r
493         if ( pBookmarkButton == NULL )\r
494         {\r
495                 return E_FAILURE;\r
496         }\r
497 \r
498         __pMoreButton = static_cast<Button*>(GetControl(L"IDC_MORE_BUTTON",true));\r
499 \r
500         if ( __pMoreButton == NULL )\r
501         {\r
502                 return E_FAILURE;\r
503         }\r
504 \r
505         __pNewWindowButton = static_cast< Button* >(GetControl(L"IDC_NEW_WINDOW",true));\r
506 \r
507         if ( __pNewWindowButton == NULL )\r
508         {\r
509                 return E_FAILURE;\r
510         }\r
511 \r
512         if (__pMultiWindowButton != null)\r
513         {\r
514                 Bitmap* pBitmap = null;\r
515                 Bitmap* pPressedBitmap = null;\r
516                 String imagePath = "I01_toolbar_icon_windows_manager_0";\r
517                 String pressedImagePath = "I01_toolbar_icon_windows_manager_0";\r
518                 int totalCount = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList()->GetCount();\r
519                 imagePath.Append(totalCount);\r
520                 imagePath.Append(".png");\r
521 \r
522                 pressedImagePath.Append(totalCount);\r
523                 pressedImagePath.Append("_press.png");\r
524 \r
525                 pBitmap = AppResource::GetInstance()->GetBitmapN(imagePath);\r
526                 pPressedBitmap = AppResource::GetInstance()->GetBitmapN(pressedImagePath);\r
527                 if ( pBitmap == null )\r
528                 {\r
529                         return E_FAILURE;\r
530                 }\r
531 \r
532                 Point startPoint = Point((__pMultiWindowButton->GetWidth() - pBitmap->GetWidth())/2,(__pMultiWindowButton->GetHeight() - pBitmap->GetHeight())/2);\r
533                 if (pBitmap != null)\r
534                 {\r
535                         __pMultiWindowButton->SetNormalBitmap(startPoint, *pBitmap);\r
536                         __pMultiWindowButton->SetPressedBitmap(startPoint, *pPressedBitmap);\r
537 \r
538                         delete pBitmap;\r
539                 }\r
540 \r
541                 __pMultiWindowButton->AddActionEventListener(*this);\r
542                 __pMultiWindowButton->SetActionId(IDA_MULTIWINDOWBTN_CLICKED);\r
543         }\r
544 \r
545 \r
546         if (pBackButton)\r
547         {\r
548                 Bitmap* pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BTN_BACK);\r
549                 Bitmap* pPressedBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BTN_BACK_PRESS);\r
550                 if (pBitmap != null)\r
551                 {\r
552                         //                      pBitmap->Scale(Dimension(56,56));\r
553 \r
554                         Point startPoint((pBackButton->GetWidth() - pBitmap->GetWidth())/2,(pBackButton->GetHeight() - pBitmap->GetHeight())/2 );\r
555                         AppLog("startPoint %d,%d pBitmap width height %d %d",startPoint.x,startPoint.y,pBitmap->GetWidth(),pBitmap->GetHeight());\r
556                         pBackButton->SetNormalBitmap(startPoint, *pBitmap);\r
557                         pBackButton->SetPressedBitmap(startPoint, *pPressedBitmap);\r
558                         delete pBitmap;\r
559                 }\r
560                 pBackButton->AddActionEventListener(*this);\r
561                 pBackButton->SetActionId(IDA_BACKBTN_CLICKED);\r
562         }\r
563 \r
564         if (pBookmarkButton)\r
565         {\r
566                 Bitmap* pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_BOOKMARK);\r
567                 Bitmap* pPressedBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_BOOKMARK_PRESS);\r
568                 if (pBitmap != null)\r
569                 {\r
570                         Point startPoint((pBookmarkButton->GetWidth() - pBitmap->GetWidth())/2,(pBookmarkButton->GetHeight() - pBitmap->GetHeight())/2 );\r
571                         pBookmarkButton->SetNormalBitmap(startPoint, *pBitmap);\r
572                         pBookmarkButton->SetPressedBitmap(startPoint, *pPressedBitmap);\r
573                         delete pBitmap;\r
574                 }\r
575                 pBookmarkButton->AddActionEventListener(*this);\r
576                 pBookmarkButton->SetActionId(IDA_BOOKMARKBTN_CLICKED);\r
577         }\r
578 \r
579         if (__pMoreButton)\r
580         {\r
581                 Bitmap* pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_MORE);\r
582                 Bitmap* pPressedBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_MORE_PRESS);\r
583                 if (pBitmap != null)\r
584                 {\r
585                         Point startPoint((__pMoreButton->GetWidth() - pBitmap->GetWidth())/2,(__pMoreButton->GetHeight() - pBitmap->GetHeight())/2 );\r
586                         __pMoreButton->SetNormalBitmap(startPoint, *pBitmap);\r
587                         __pMoreButton->SetPressedBitmap(startPoint, *pPressedBitmap);\r
588 \r
589                         delete pBitmap;\r
590                 }\r
591                 __pMoreButton->AddActionEventListener(*this);\r
592                 __pMoreButton->SetActionId(IDA_MOREBTN_CLICKED);\r
593 \r
594         }\r
595 \r
596 \r
597         if (__pNewWindowButton)\r
598         {\r
599                 Bitmap* pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_NEW_WINDOW);\r
600                 Bitmap* pPressedBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_NEW_WINDOW_PRESS);\r
601                 if (pBitmap != null)\r
602                 {\r
603                         Point startPoint((__pNewWindowButton->GetWidth() - pBitmap->GetWidth())/2,(__pNewWindowButton->GetHeight() - pBitmap->GetHeight())/2 );\r
604                         __pNewWindowButton->SetNormalBitmap(startPoint, *pBitmap);\r
605                         __pNewWindowButton->SetPressedBitmap(startPoint, *pPressedBitmap);\r
606                         delete pBitmap;\r
607                 }\r
608                 __pNewWindowButton->AddActionEventListener(*this);\r
609                 __pNewWindowButton->SetActionId(IDA_NEWWINDOWBTN_CLICKED);\r
610                 __pNewWindowButton->SetEnabled(true);\r
611                 //              __pNewWindowButton->Invalidate(true);\r
612         }\r
613 \r
614         AppLog("checkingwindow count %d",MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList()->GetCount());\r
615 \r
616         if (__pNewWindowButton != null && MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList()->GetCount() >= 9)\r
617         {\r
618                 Bitmap* pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTROLBAR_ICON_CREATE_DISABLE);\r
619                 if (pBitmap != null)\r
620                 {\r
621                         Point startPoint = Point((__pNewWindowButton->GetWidth() - pBitmap->GetWidth())/2,(__pNewWindowButton->GetHeight() - pBitmap->GetHeight())/2 );\r
622                         __pNewWindowButton->SetDisabledBitmap(startPoint,*pBitmap);\r
623                         delete pBitmap;\r
624                 }\r
625                 __pNewWindowButton->SetEnabled(false);\r
626         }\r
627 \r
628         //      __pFooterPanel->Invalidate(true);\r
629         AppLogDebug("MainForm::InitFooter exit");\r
630         return E_SUCCESS;\r
631 }\r
632 \r
633 \r
634 result\r
635 MainForm::InitContextMenu(Point& p)\r
636 {\r
637         result r = E_SUCCESS;\r
638         bool isPrivateBrowsing = false;\r
639         Bitmap* pBitmap = null;\r
640 \r
641         if (__pMenu != null)\r
642         {\r
643                 __pMenu->SetAnchorPosition(p);\r
644                 __pMenu->Invalidate(true);\r
645                 return r;\r
646         }\r
647 \r
648         __pMenu = new(std::nothrow) ContextMenu();\r
649         r = __pMenu->Construct(p, CONTEXT_MENU_STYLE_LIST);\r
650         TryCatch(!IsFailed(r),,"Contextmenu creation failed with%s",GetErrorMessage(r));\r
651 \r
652         isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();\r
653 \r
654 \r
655         if (isPrivateBrowsing == true)\r
656         {\r
657                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_ON);\r
658         }\r
659         else\r
660         {\r
661                 pBitmap  = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_OFF);\r
662         }\r
663 \r
664         if ( pBitmap != NULL)\r
665         {\r
666                 __pMenu->AddItem(CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY"), IDA_PRIVATEON_CLICKED,*pBitmap);\r
667                 delete pBitmap;\r
668         }\r
669         r = __pMenu->AddItem(CommonUtil::GetString(L"IDS_COM_OPT_BRIGHTNESS"), IDA_BRIGHTNESS_BTN_CLICKED);\r
670         r = __pMenu->AddItem(CommonUtil::GetString(L"IDS_COM_BODY_SETTINGS"), IDA_SETTINGS_CLICKED);\r
671         __pMenu->SetMaxVisibleItemsCount(3);\r
672         __pMenu->SetShowState(false);\r
673         __pMenu->AddActionEventListener(*this);\r
674         SetControlAlwaysOnTop(*__pMenu, true);\r
675 \r
676         CATCH:\r
677         return r;\r
678 }\r
679 \r
680 result MainForm::InitImageContextMenu(Tizen::Graphics::Point p)\r
681 {\r
682         result r = E_SUCCESS;\r
683         ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_AUTO;\r
684 \r
685         AppLog("MainForm::InitImageContextMenu clicked on image");\r
686         if (__pImageMenu != null)\r
687         {\r
688                 delete __pImageMenu;\r
689                 __pImageMenu = null;\r
690         }\r
691 \r
692         p.y = p.y + __pAddressbar->GetHeight() + 12;\r
693         if(p.y < 100)\r
694         {\r
695                 direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD;\r
696         }\r
697         else\r
698         {\r
699                 direction = CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD;\r
700         }\r
701         __pImageMenu = new (std::nothrow) ContextMenu();\r
702         r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_LIST, direction);\r
703         TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));\r
704 \r
705         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_COPY_IMAGE"),IDA_COPY_IMAGE_CLICKED);\r
706         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_VIEW_IMAGE"),IDA_VIEW_IMAGE_CLICKED);\r
707         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SAVE_IMAGE"),IDA_SAVE_IMAGE_CLICKED);\r
708         r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_DLNA_BODY_SHARE_IMAGE_ABB"),IDA_SHARE_IMAGE_CLICKED);\r
709         __pImageMenu->SetMaxVisibleItemsCount(4);\r
710         __pImageMenu->AddActionEventListener(*this);\r
711         SetControlAlwaysOnTop(*__pImageMenu, true);\r
712 \r
713         CATCH: return r;\r
714 }\r
715 \r
716 result MainForm::InitSelectTextContextMenu(Tizen::Graphics::Point p, bool pasteOption, bool onlyPasteOption = false)\r
717 {\r
718         result r = E_SUCCESS;\r
719         ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_AUTO;\r
720 \r
721         AppLog("MainForm::InitSelectTextContextMenu clicked on text");\r
722         if (__pImageMenu != null)\r
723         {\r
724                 delete __pImageMenu;\r
725                 __pImageMenu = null;\r
726         }\r
727         p.y = p.y + __pAddressbar->GetHeight() + 12;\r
728         if(p.y < 100)\r
729         {\r
730                 direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD;\r
731         }\r
732         else\r
733         {\r
734                 direction = CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD;\r
735         }\r
736         __pImageMenu = new (std::nothrow) ContextMenu();\r
737         r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_GRID, direction);\r
738         TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));\r
739 \r
740         if(onlyPasteOption == false)\r
741         {\r
742                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_OPT_COPY"),IDA_COPY_TEXT_CLICKED);\r
743         }\r
744         if (pasteOption || onlyPasteOption)\r
745         {\r
746                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_BODY_PASTE"),IDA_PASTE_TEXT_CLICKED);\r
747         }\r
748         if(onlyPasteOption == false)\r
749         {\r
750                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"),IDA_FIND_TEXT__CLICKED);\r
751                 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SHARE"),IDA_SHARE_TEXT_CLICKED);\r
752         }\r
753 \r
754         __pImageMenu->SetMaxVisibleItemsCount(3);\r
755         __pImageMenu->AddActionEventListener(*this);\r
756         SetControlAlwaysOnTop(*__pImageMenu, true);\r
757 \r
758         CATCH: return r;\r
759 \r
760 }\r
761 \r
762 result\r
763 MainForm::InitFindWordPanel(void)\r
764 {\r
765         result r = E_SUCCESS;\r
766         Bitmap *pIconBitmap = null;\r
767 \r
768         if (__pFindWordPanel != null)\r
769         {\r
770                 AppLogDebug("Findword panel already initialized");\r
771                 if (__pFindWordBgLabel != null)\r
772                 {\r
773                         Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_search_input_field_bg.9.png", __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());\r
774                         if (pBitmap != null)\r
775                         {\r
776                                 AppLogDebug("InitFindWordPanel: Coming here");\r
777                                 __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);\r
778                                 delete pBitmap;\r
779                         }\r
780                 }\r
781                 return r;\r
782         }\r
783 \r
784         __pFindWordPanel = static_cast<Panel*>(GetControl(L"IDC_FIND_ON_PAGE_PANEL"));\r
785         if (__pFindWordPanel == null)\r
786         {\r
787                 AppLogException("There is some problem in the xml file. Please check.");\r
788                 return E_FAILURE;\r
789         }\r
790 \r
791         __pFindWordControl = new (std::nothrow) Panel();\r
792         r = __pFindWordControl->Construct(L"IDL_FIND_ON_PAGE");\r
793         if (IsFailed(r))\r
794         {\r
795                 AppLogException("There is some problem in the xml file. Please check.");\r
796                 return E_FAILURE;\r
797         }\r
798         __pFindWordPanel->AddControl(*__pFindWordControl);\r
799         __pFindWordControl->SetBounds(0,0, __pFindWordPanel->GetWidth(), __pFindWordPanel->GetHeight());\r
800         SetControlAlwaysOnTop(*__pFindWordPanel,true);\r
801         __pFindWordPanel->SetShowState(false);\r
802         __pFindWordPanel->Invalidate(false);\r
803 \r
804         __pFindWordBgLabel = static_cast<Label*>(__pFindWordControl->GetControl(L"IDC_LABEL1", true));\r
805         if (__pFindWordBgLabel != null)\r
806         {\r
807                 Panel* pPanel1 = static_cast<Panel*>(__pFindWordControl->GetControl(L"IDC_PANEL1", true));\r
808                 Rectangle pRect = pPanel1->GetBounds();\r
809                 pRect.x = pRect.y = 0;\r
810                 __pFindWordBgLabel->SetBounds(pRect);\r
811                 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_search_input_field_bg.9.png", __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());\r
812                 if (pBitmap != null)\r
813                 {\r
814                         AppLogDebug("InitFindWordPanel: Coming here");\r
815                         __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);\r
816                         delete pBitmap;\r
817                 }\r
818                 else\r
819                 {\r
820                         AppLogDebug("InitFindWordPanel: shouldn't Come here");\r
821                 }\r
822         }\r
823 \r
824         Button* pfindWordCancel = null;\r
825         pfindWordCancel = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_CANCEL", true));\r
826         if (pfindWordCancel == null)\r
827         {\r
828                 AppLogException("There is some problem in the xml file. Please check.");\r
829                 return E_FAILURE;\r
830         }\r
831         pfindWordCancel->SetActionId(IDA_FINDWORD_CANCEL_CLICKED);\r
832         pfindWordCancel->AddActionEventListener(*this);\r
833 \r
834         __pFindWordClear = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_CLEAR", true));\r
835         if (__pFindWordClear == null)\r
836         {\r
837                 AppLogException("There is some problem in the xml file. Please check.");\r
838                 return E_FAILURE;\r
839         }\r
840 \r
841         __pFindWordClear->SetActionId(IDA_FINDWORD_CLEAR_CLICKED);\r
842         __pFindWordClear->AddActionEventListener(*this);\r
843 \r
844         __pFindWordNext = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_NEXT", true));\r
845         if (__pFindWordNext == null)\r
846         {\r
847                 AppLogException("There is some problem in the xml file. Please check.");\r
848                 return E_FAILURE;\r
849         }\r
850 \r
851         __pFindWordNext->SetActionId(IDA_FINDWORD_NEXT_CLICKED);\r
852         __pFindWordNext->AddActionEventListener(*this);\r
853 \r
854         __pFindWordPrev = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_PREV", true));\r
855         if (__pFindWordPrev == null)\r
856         {\r
857                 AppLogException("There is some problem in the xml file. Please check.");\r
858                 return E_FAILURE;\r
859         }\r
860 \r
861         __pFindWordPrev->SetActionId(IDA_FINDWORD_PREV_CLICKED);\r
862         __pFindWordPrev->AddActionEventListener(*this);\r
863 \r
864         __pFindWordNext->SetEnabled(false);\r
865         __pFindWordPrev->SetEnabled(false);\r
866 \r
867         __pFindWordCountLabel = static_cast<Label*>(__pFindWordControl->GetControl(L"IDC_FIND_COUNT_LABEL", true));\r
868         if (__pFindWordCountLabel == null)\r
869         {\r
870                 AppLogException("There is some problem in the xml file. Please check.");\r
871                 return E_FAILURE;\r
872         }\r
873 \r
874         __pFindWordEditField = static_cast<EditField*>(__pFindWordControl->GetControl(L"IDC_FIND_WORD_EDITFIELD", true));\r
875         if (__pFindWordEditField == null)\r
876         {\r
877                 AppLogException("There is some problem in the xml file. Please check.");\r
878                 return E_FAILURE;\r
879         }\r
880         __pFindWordEditField->AddTextEventListener(*this);\r
881         __pFindWordEditField->AddKeypadEventListener(*this);\r
882         __pFindWordEditField->SetOverlayKeypadCommandButtonVisible(false);\r
883 \r
884         return r;\r
885 }\r
886 \r
887 ListItemBase*\r
888 MainForm::CreateItem (int index, int itemWidth)\r
889 {\r
890         Rectangle listImageRect;\r
891         Rectangle pagetTitleRect;\r
892         Rectangle pageURLRect;\r
893         Rectangle deleteImageRect;\r
894         String pageTitle(L"");\r
895         String pageURL(L"");\r
896         result r = E_SUCCESS;\r
897         Bitmap* pListIconImage = null;\r
898 \r
899 \r
900         History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index));\r
901         if(pHistory == null)\r
902         {\r
903                 return null;\r
904         }\r
905         AppResource* pAppResource = Application::GetInstance()->GetAppResource();\r
906         if ( pAppResource == NULL )\r
907         {\r
908                 return null;\r
909         }\r
910         ListAnnexStyle style = LIST_ANNEX_STYLE_NORMAL;\r
911 \r
912         CustomItem* pItem = new(std::nothrow) CustomItem();\r
913         pageTitle = pHistory->GetHistoryTitle();\r
914         pageURL = pHistory->GetHistoryUrl();\r
915 \r
916         if (pageURL.GetLength() == 0)\r
917         {\r
918                 String nourl;\r
919                 pAppResource->GetString(L"IDS_BR_BODY_ABOUT_C_BLANK", nourl);\r
920                 pageURL = L"<"+ nourl +">";\r
921 \r
922         }\r
923 \r
924         Rectangle screenBounds = GetBounds();\r
925         if (pItem != null)\r
926         {\r
927                 r = pItem->Construct(Dimension(itemWidth, 128), style);\r
928         }\r
929         if (IsFailed(r))\r
930         {\r
931                 delete pItem;\r
932                 return NULL;\r
933         }\r
934 \r
935         if (pHistory->GetFaviconId().GetLength() > 0)\r
936         {\r
937                 String bitmapId = pHistory->GetFaviconId();\r
938                 Bitmap* pBitmap = FaviconManager::GetInstance()->GetFaviconN(bitmapId);\r
939 \r
940                 if ( pBitmap != NULL)\r
941                 {\r
942                         pListIconImage = new Bitmap();\r
943                         pListIconImage->Construct(*pBitmap,Rectangle(0,0,pBitmap->GetWidth(),pBitmap->GetHeight()));\r
944                         delete pBitmap;\r
945                 }\r
946         }\r
947 \r
948         if(pListIconImage == null)\r
949         {\r
950                 pListIconImage = pAppResource->GetBitmapN(L"I01_icon_default_favicon.png");\r
951         }\r
952 \r
953         if ( pListIconImage != NULL)\r
954         {\r
955                 listImageRect.SetBounds(screenBounds.x + 16, screenBounds.y + 28,72, 72);\r
956                 pagetTitleRect.SetBounds(listImageRect.x + 72 + 16,10, screenBounds.width - 2 * pListIconImage->GetWidth() - 120, 60);\r
957                 pageURLRect.SetBounds(pagetTitleRect.x, pagetTitleRect.y + pagetTitleRect.height, screenBounds.width - 2 * pListIconImage->GetWidth() - 120, 48);\r
958 \r
959 \r
960                 if (pItem != null && pListIconImage != NULL)\r
961                 {\r
962                         pItem->AddElement(listImageRect, IDA_FORMAT_BITMAP, *pListIconImage, null, null);\r
963                 }\r
964         }\r
965 \r
966         if (pageTitle.CompareTo(L"") != 0)\r
967         {\r
968                 if (pItem != null)\r
969                 {\r
970                         pItem->AddElement(pagetTitleRect, IDA_FORMAT_TITLE_STRING, pageTitle, 44, CUSTOM_COLOR_TRANSPARENT, CUSTOM_COLOR_TRANSPARENT, CUSTOM_COLOR_TRANSPARENT, true);\r
971                 }\r
972         }\r
973 \r
974         if (pageURL.CompareTo(L"") != 0)\r
975         {\r
976                 if (pItem != null)\r
977                 {\r
978                         pItem->AddElement(pageURLRect, IDA_FORMAT_URL_STRING, pageURL, 32, CUSTOM_COLOR_GREY, CUSTOM_COLOR_GREY, CUSTOM_COLOR_GREY, true);\r
979                 }\r
980         }\r
981 \r
982 \r
983         if ( __pItemContext!= NULL)\r
984         {\r
985                 if (pItem != null)\r
986                 {\r
987                         pItem->SetContextItem(__pItemContext);\r
988                 }\r
989         }\r
990         if( pListIconImage != NULL)\r
991         {\r
992                 delete pListIconImage;\r
993                 pListIconImage = null;\r
994         }\r
995 \r
996         return pItem;\r
997 }\r
998 \r
999 bool\r
1000 MainForm::DeleteItem (int index, Tizen::Ui::Controls::ListItemBase *pItem, int itemWidth)\r
1001 {\r
1002         delete pItem;\r
1003         return true;\r
1004 }\r
1005 \r
1006 int\r
1007 MainForm::GetItemCount (void)\r
1008 {\r
1009         if(__pMostVisitedSites != null)\r
1010         {\r
1011                 __pMostVisitedSites->RemoveAll(true);\r
1012         }\r
1013         HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);\r
1014         if(__pMostVisitedSites != null)\r
1015         {\r
1016                 return __pMostVisitedSites->GetCount();\r
1017         }\r
1018         else\r
1019                 return 0;\r
1020 }\r
1021 \r
1022 void\r
1023 MainForm::OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state)\r
1024 {\r
1025         History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index));\r
1026         String url = pHistory->GetHistoryUrl();\r
1027         HistoryPresentationModel::GetInstance()->DeleteHistory(url);\r
1028         __pMostVisitedListView->UpdateList();\r
1029 }\r
1030 \r
1031 void\r
1032 MainForm::OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status)\r
1033 {\r
1034         History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index));\r
1035         String url = pHistory->GetHistoryUrl();\r
1036         if (url != null)\r
1037         {\r
1038                 LoadUrl(url);\r
1039         }\r
1040 }\r
1041 \r
1042 void\r
1043 MainForm::OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction)\r
1044 {\r
1045 \r
1046 }\r
1047 \r
1048 result\r
1049 MainForm::OnTerminating(void)\r
1050 {\r
1051         result r = E_SUCCESS;\r
1052         if(__pItemContext)\r
1053         {\r
1054                 delete __pItemContext;\r
1055         }\r
1056         return r;\r
1057 }\r
1058 \r
1059 void\r
1060 MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)\r
1061 {\r
1062         result r = E_SUCCESS;\r
1063 \r
1064         AppLogDebug("Clicked : %d", actionId);\r
1065         switch (actionId)\r
1066         {\r
1067         case IDA_BACKBTN_CLICKED:\r
1068         {\r
1069                 if (__pWebViewer && __pWebViewer->CanGoBack())\r
1070                 {\r
1071                         __pWebViewer->GoBack();\r
1072                 }\r
1073                 else\r
1074                 {\r
1075                         UiApp* pApp = null;\r
1076                         pApp = UiApp::GetInstance();\r
1077                         if (pApp != null)\r
1078                         {\r
1079                                 r = pApp->Terminate();\r
1080                                 if (IsFailed(r))\r
1081                                 {\r
1082                                         AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));\r
1083                                         return;\r
1084                                 }\r
1085                         }\r
1086                 }\r
1087         }\r
1088         break;\r
1089 \r
1090         case IDA_FORWARD_CLICKED:\r
1091                 if (__pWebViewer == null)\r
1092                         return;\r
1093 \r
1094                 if (__pWebViewer->CanGoForward())\r
1095                 {\r
1096                         __pWebViewer->GoForward();\r
1097                 }\r
1098                 __pMenu->SetShowState(false);\r
1099                 __pMenu->Invalidate(false);\r
1100                 break;\r
1101 \r
1102         case IDA_FINDONPAGE_CLICKED:\r
1103         {\r
1104                 AppLogDebug("MainForm::OnActionPerformed findword clicked");\r
1105                 __currentSearchStr.Clear();\r
1106 \r
1107                 InitFindWordPanel();\r
1108                 __pMenu->SetShowState(false);\r
1109                 __pMenu->Invalidate(false);\r
1110 \r
1111                 __adressPanelPosition.y = 0;\r
1112 \r
1113                 if (__pAddressbar != null && __pWebViewer != NULL)\r
1114                 {\r
1115                         __webControlPosition.y = __pAddressbar->GetHeight() - 12;\r
1116                         __pAddressbar->SetBounds(0,__adressPanelPosition.y,GetClientAreaBounds().width,__pAddressbar->GetHeight());\r
1117                         __pAddressbar->Invalidate(true);\r
1118                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width,__webControlHeight));\r
1119                         __pWebViewer->Invalidate(true);\r
1120                 }\r
1121                 if (__pWebViewer != null)\r
1122                 {\r
1123                         // releasing the set block\r
1124                         __pWebViewer->ReleaseBlock();\r
1125                 }\r
1126                 ShowFindWordPanel(true);\r
1127         }\r
1128         break;\r
1129         case IDA_PRIVATEON_CLICKED:\r
1130         {\r
1131                 result r = E_SUCCESS;\r
1132                 int itemIndex = 0;\r
1133                 bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();\r
1134                 Bitmap* pBitmap = null;\r
1135                 if (isPrivateBrowsing == true)\r
1136                 {\r
1137                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_OFF);\r
1138                         if (IsFailed(r))\r
1139                         {\r
1140                                 AppLogException("Contextmenu additem:Find on page failed with %s", GetErrorMessage(r));\r
1141                                 return ;\r
1142                         }\r
1143 \r
1144                         if (__pWebViewer != NULL)\r
1145                         {\r
1146                                 __pWebViewer->SetPrivateBrowsingEnabled(false);\r
1147                         }\r
1148 \r
1149                         SettingPresentationModel::GetInstance()->SetPrivateOn(false);\r
1150 \r
1151                         if (__pAddressbar != null)\r
1152                         {\r
1153                                 __pAddressbar->UpdateFaviconBitmap(false);\r
1154                         }\r
1155 \r
1156                 }\r
1157                 else\r
1158                 {\r
1159                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_ON);\r
1160                         if (IsFailed(r))\r
1161                         {\r
1162                                 AppLogException("Contextmenu additem:Find on page failed with %s", GetErrorMessage(r));\r
1163                                 return ;\r
1164                         }\r
1165 \r
1166                         if (__pWebViewer != NULL)\r
1167                         {\r
1168                                 __pWebViewer->SetPrivateBrowsingEnabled(true);\r
1169                         }\r
1170 \r
1171                         SettingPresentationModel::GetInstance()->SetPrivateOn(true);\r
1172 \r
1173                         if (__pAddressbar != null)\r
1174                         {\r
1175                                 __pAddressbar->UpdateFaviconBitmap(true);\r
1176                         }\r
1177                 }\r
1178 \r
1179 \r
1180                 itemIndex = __pMenu->GetItemIndexFromActionId(IDA_PRIVATEON_CLICKED);\r
1181                 r = __pMenu->SetItemAt(itemIndex,CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY"),IDA_PRIVATEON_CLICKED,*pBitmap);\r
1182                 AppLog("Result:: %s for index = %d", GetErrorMessage(r),itemIndex);\r
1183                 __pMenu->Invalidate(true);\r
1184 \r
1185                 if ( pBitmap != NULL )\r
1186                 {\r
1187                         delete pBitmap;\r
1188                 }\r
1189 \r
1190         }\r
1191         break;\r
1192         case IDA_SETTINGS_CLICKED:\r
1193         {\r
1194 \r
1195                 ArrayList* pArgList = new(std::nothrow) ArrayList();\r
1196                 if (pArgList)\r
1197                 {\r
1198                         pArgList->Construct();\r
1199                         pArgList->Add(*__pWindowInfo);\r
1200                         SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_SETTINGS), pArgList);\r
1201                 }\r
1202                 __pMenu->SetShowState(false);\r
1203                 __pMenu->Invalidate(false);\r
1204                 if (pArgList != null)\r
1205                 {\r
1206                         delete pArgList;\r
1207                         pArgList = null;\r
1208                 }\r
1209 \r
1210         }\r
1211         break;\r
1212 \r
1213         case IDA_ADDTOBOOKMARK_CLICKED:\r
1214         {\r
1215 \r
1216                 if (__pWindowInfo != NULL && __pWindowInfo->pageUrl != NULL)\r
1217                 {\r
1218                         int bookmarkCount=0;\r
1219                         bool exist = false;\r
1220                         String url=L"";\r
1221                         url=__pWindowInfo->pageUrl;\r
1222                         result r = E_SUCCESS;\r
1223                         Bitmap* pBitmap = null;\r
1224                         r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist);\r
1225 \r
1226                         if (IsFailed(r))\r
1227                         {\r
1228                                 return;\r
1229                         }\r
1230                         if ( exist == true)\r
1231                         {\r
1232                                 String message = CommonUtil::GetString(L"IDS_BR_POP_BOOKMARK_REMOVED");\r
1233                                 BookmarkPresentationModel::GetInstance()->DeleteBookmark(url);\r
1234                                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_OFF_TEMP);\r
1235 \r
1236                                 NotificationPanel* pNotification = new (std::nothrow) NotificationPanel(*this);\r
1237                                 if (pNotification != null)\r
1238                                 {\r
1239                                         pNotification->SetText(message);\r
1240                                         pNotification->SetPositionDiff(__pFooterPanel->GetHeight());\r
1241                                         pNotification->ShowNotification();\r
1242                                 }\r
1243                         }\r
1244                         else\r
1245                         {\r
1246                                 String title=__pWindowInfo->pageTitle;\r
1247                                 String message = CommonUtil::GetString(L"IDS_BR_POP_BOOKMARK_ADDED");\r
1248                                 BookmarkData* pBookmark=new (std::nothrow) BookmarkData();\r
1249 \r
1250                                 pBookmark->SetBookmarkTitle(title);\r
1251                                 pBookmark->SetUrl(url);\r
1252                                 String id = FaviconManager::GetInstance()->SaveFavicon(*__pWindowInfo->pFavicon, __pWindowInfo->faviconUrl);\r
1253                                 pBookmark->SetFaviconId(id);\r
1254                                 r = BookmarkPresentationModel::GetInstance()->SaveBookmark(*pBookmark);\r
1255                                 delete pBookmark;\r
1256 \r
1257                                 NotificationPanel* pNotification = new (std::nothrow) NotificationPanel(*this);\r
1258                                 if(pNotification != null)\r
1259                                 {\r
1260                                         pNotification->SetText(message);\r
1261                                         pNotification->SetPositionDiff(__pFooterPanel->GetHeight());\r
1262                                         pNotification->ShowNotification();\r
1263                                         pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_ON_TEMP);\r
1264                                 }\r
1265                         }\r
1266                         if (pBitmap != null)\r
1267                         {\r
1268                                 r = __pMenu->SetItemAt(0,CommonUtil::GetString(L"IDS_BR_OPT_BOOKMARK"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);\r
1269                                 delete pBitmap;\r
1270                         }\r
1271                 }\r
1272                 __pMenu->Invalidate(true);\r
1273 \r
1274         }\r
1275         break;\r
1276         case IDA_SHARE_CLICKED:\r
1277         {\r
1278                 if(__pPopUp != null)\r
1279                 {\r
1280                         delete __pPopUp;\r
1281                         __pPopUp = null;\r
1282                 }\r
1283                 __pPopUp = new(std::nothrow) SharePopup();\r
1284                 __pPopUp->Initialize();\r
1285                 if (__pWindowInfo != null)\r
1286                 {\r
1287                         ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();\r
1288                         pShareInfo->SetPageTitle(__pWindowInfo->pageTitle);\r
1289                         pShareInfo->SetPageUrl(__pWindowInfo->pageUrl);\r
1290                         pShareInfo->SetImageAttached(false);\r
1291                         __pPopUp->RemoveAllShareInfo();\r
1292                         __pPopUp->AddShareInfo(pShareInfo);\r
1293                 }\r
1294                 __pPopUp->SetShowState(true);\r
1295                 __pPopUp->Show();\r
1296         }\r
1297         break;\r
1298         case IDA_BOOKMARKBTN_CLICKED:\r
1299 \r
1300                 AppLogDebug("ONACTION_PERFORMED:IDA_BOOKMARKBTN_CLICKED");\r
1301                 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_BOOKMARK_VIEW, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
1302                 break;\r
1303 \r
1304         case IDA_MOREBTN_CLICKED:\r
1305         {\r
1306                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 1");\r
1307                 Point p = Point(__pMoreButton->GetX() + __pMoreButton->GetWidth() / 2, GetClientAreaBounds().y + GetClientAreaBounds().height - __pMoreButton->GetHeight());\r
1308                 AppLog("Anchot pos: %d %d", p.x, p.y);\r
1309                 InitContextMenu(p);\r
1310                 if (__pWindowInfo != NULL && __pWindowInfo->pageUrl != NULL)\r
1311                 {\r
1312                         AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 2");\r
1313                         int bookmarkCount=0;\r
1314                         bool exist = false;\r
1315                         String url=L"";\r
1316                         url=__pWindowInfo->pageUrl;\r
1317                         result r = E_SUCCESS;\r
1318                         Bitmap* pBitmap = null;\r
1319 \r
1320                         r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist);\r
1321                         if (IsFailed(r))\r
1322                         {\r
1323                                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED failed");\r
1324                                 return;\r
1325                         }\r
1326                         if ( exist == true)\r
1327                         {\r
1328                                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_ON_TEMP);\r
1329                         }\r
1330                         else\r
1331                         {\r
1332                                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_OFF_TEMP);\r
1333                         }\r
1334                         AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 3");\r
1335 \r
1336                         if (__pMenu->GetItemCount() == 6)\r
1337                         {\r
1338                                 r = __pMenu->SetItemAt(0,CommonUtil::GetString(L"IDS_BR_OPT_BOOKMARK"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);\r
1339                         }\r
1340                         else\r
1341                         {\r
1342                                 r = __pMenu->InsertItemAt(0,CommonUtil::GetString(L"IDS_BR_OPT_BOOKMARK"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);\r
1343                         }\r
1344 \r
1345                         if (IsFailed(r))\r
1346                         {\r
1347                                 AppLogException("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED Add to Bookmark failed with %s", GetErrorMessage(r));\r
1348                                 delete pBitmap;\r
1349                                 return ;\r
1350                         }\r
1351                         AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 4");\r
1352                         if (__pMenu->GetItemCount() != 6)\r
1353                         {\r
1354                                 __pMenu->InsertItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_SHARE"), IDA_SHARE_CLICKED);\r
1355                                 __pMenu->InsertItemAt(2,CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"), IDA_FINDONPAGE_CLICKED);\r
1356                                 __pMenu->SetMaxVisibleItemsCount(6);\r
1357                         }\r
1358                         if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE)\r
1359                         {\r
1360                                 AppLog(" Orientation landscape");\r
1361                                 __pMenu->SetMaxVisibleItemsCount(5);\r
1362                         }\r
1363                         else\r
1364                         {\r
1365                                 AppLog(" Orientation potrait");\r
1366                                 __pMenu->SetMaxVisibleItemsCount(6);\r
1367                         }\r
1368 \r
1369                         AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 5");\r
1370                         delete pBitmap;\r
1371                 }\r
1372                 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED end");\r
1373                 __pMenu->SetShowState(true);\r
1374                 __pMenu->Invalidate(true);\r
1375                 __pMenu->Show();\r
1376         }\r
1377 \r
1378         break;\r
1379 \r
1380         case IDA_MULTIWINDOWBTN_CLICKED:\r
1381         {\r
1382                 result r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_MULTIPLE_WINDOW, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
1383                 AppLog("IDA_MULTIWINDOWBTN_CLICKED result %s",GetErrorMessage(r));\r
1384         }\r
1385         break;\r
1386 \r
1387         case IDA_NEWWINDOWBTN_CLICKED:\r
1388         {\r
1389                 WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewScene();\r
1390 \r
1391                 if (pNewWindowInfo == null)\r
1392                 {\r
1393                         return;\r
1394                 }\r
1395                 result r = E_SUCCESS;\r
1396                 SceneManager* pSceneManager = SceneManager::GetInstance();\r
1397 \r
1398                 if (pSceneManager == NULL)\r
1399                 {\r
1400                         return;\r
1401                 }\r
1402                 ArrayList* pArgList = new(std::nothrow) ArrayList();\r
1403                 if (pArgList == NULL)\r
1404                 {\r
1405                         return;\r
1406                 }\r
1407                 r = pArgList->Construct();\r
1408                 if (r == E_SUCCESS)\r
1409                 {\r
1410                         pArgList->Add(*pNewWindowInfo);\r
1411                         r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);\r
1412                 } \r
1413                 delete pArgList;\r
1414                 pArgList = null;\r
1415                 if (IsFailed(r))\r
1416                 {\r
1417                         AppLogDebug("MainForm::OnActionPerformed Failed to GoBackward %s",GetErrorMessage(r));\r
1418                         return;\r
1419                 }\r
1420         }\r
1421         break;\r
1422         case IDA_SMALLFONT_BTN_CLICKED:\r
1423         {\r
1424                 WebSetting setting = __pWebReader->GetSetting();\r
1425                 setting.SetFontSize(15);\r
1426                 __pWebReader->SetSetting(setting);\r
1427         }\r
1428         break;\r
1429         case IDA_LARGEFONT_BTN_CLICKED:\r
1430         {\r
1431                 WebSetting setting = __pWebReader->GetSetting();\r
1432                 setting.SetFontSize(25);\r
1433                 __pWebReader->SetSetting(setting);\r
1434         }\r
1435         break;\r
1436         case IDA_READER_CLOSE_CLICKED:\r
1437         {\r
1438                 if (__pArticleReaderPanel != null && __pBlankPanel != null)\r
1439                 {\r
1440                         //__pArticleReaderPanel->SetShowState(false);\r
1441                         //__pArticleReaderPanel->Show();\r
1442                         RemoveControl(*__pBlankPanel);\r
1443                         //RemoveControl(*__pArticleReaderPanel);\r
1444                         __pArticleReaderPanel = null;\r
1445                         __pBlankPanel = null;\r
1446                         __pArticleReaderLabel = null;\r
1447                 }\r
1448                 if (__pAddressbar)\r
1449                         __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);\r
1450         }\r
1451         break;\r
1452         case IDA_FINDWORD_CANCEL_CLICKED:\r
1453         {\r
1454                 __currentSearchStr = L"";\r
1455                 __currentWordIndex = 0;\r
1456                 __maxOccurrances = 0;\r
1457                 __pFindWordEditField->SetText(L"");\r
1458                 __pFindWordNext->SetEnabled(false);\r
1459                 __pFindWordPrev->SetEnabled(false);\r
1460                 __pFindWordCountLabel->SetText(L"0/0");\r
1461                 __pWebViewer->SearchText(L"aaaabbbbcccc",true);\r
1462                 ShowFindWordPanel(false);\r
1463         }\r
1464         break;\r
1465         case IDA_FINDWORD_SEARCH_CLICKED:\r
1466         {\r
1467                 __currentSearchStr = __pFindWordEditField->GetText();\r
1468                 if (__currentSearchStr.GetLength() > 0)\r
1469                 {\r
1470                         StartWordSearch();\r
1471                 }\r
1472                 else\r
1473                 {\r
1474                         AppLogDebug("Enter something");\r
1475                 }\r
1476         }\r
1477         break;\r
1478         case IDA_FINDWORD_CLEAR_CLICKED:\r
1479         {\r
1480                 __pFindWordCountLabel->SetText(L"0/0");\r
1481                 __pFindWordEditField->SetText(L"");\r
1482                 __currentSearchStr = L"aaaaaabbbbbbccccccc";\r
1483                 StartWordSearch();\r
1484                 __pFindWordNext->SetEnabled(false);\r
1485                 __pFindWordPrev->SetEnabled(false);\r
1486                 __pFindWordPanel->Invalidate(true);\r
1487         }\r
1488         break;\r
1489         case IDA_FINDWORD_NEXT_CLICKED:\r
1490         {\r
1491                 FindNextWord(true);\r
1492         }\r
1493         break;\r
1494         case IDA_FINDWORD_PREV_CLICKED:\r
1495         {\r
1496                 FindNextWord(false);\r
1497         }\r
1498         break;\r
1499         case IDA_BRIGHTNESS_BTN_CLICKED:\r
1500         {\r
1501                 AppLogDebug("IDA_BRIGHTNESS_BTN_CLICKED");\r
1502                 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_BRIGHTNESS, SCENE_TRANSITION_ANIMATION_TYPE_NONE));\r
1503         }\r
1504         break;\r
1505         case IDA_COPY_IMAGE_CLICKED:\r
1506         {\r
1507                 AppLogDebug("IDA_COPY_IMAGE_CLICKED");\r
1508                 AppLogDebug("IDA_COPY_IMAGE_CLICKED");\r
1509                 ClipboardItem item;\r
1510                 const Bitmap* pBitmap = null;\r
1511                 if (__pHitElementResult != null)\r
1512                 {\r
1513                         pBitmap = __pHitElementResult->GetImage();\r
1514                 }\r
1515 \r
1516                 String resourcePath = App::GetInstance()->GetAppResourcePath();\r
1517                 item.Construct(CLIPBOARD_DATA_TYPE_IMAGE , *pBitmap);\r
1518 \r
1519                 // copying the item to clipboard\r
1520                 Clipboard* pClipboard = Clipboard::GetInstance();\r
1521                 if (pClipboard != null)\r
1522                 {\r
1523                         pClipboard->CopyItem(item);\r
1524                 }\r
1525         }\r
1526         break;\r
1527         case IDA_VIEW_IMAGE_CLICKED:\r
1528         {\r
1529                 AppLogDebug("IDA_VIEW_IMAGE_CLICKED");\r
1530                 WindowInfo* pNewWindowInfo = null;\r
1531                 if (__pHitElementResult != null)\r
1532                 {\r
1533                         String srcUrl = __pHitElementResult->GetAttributeValue(L"src");\r
1534                         AppLog("MainForm::OnTouchLongPressed srcUrl is %ls",srcUrl.GetPointer());\r
1535                         LoadUrl(srcUrl);\r
1536 \r
1537                 }\r
1538         }\r
1539         break;\r
1540         case IDA_SAVE_IMAGE_CLICKED:\r
1541         {\r
1542                 AppLogDebug("IDA_SAVE_IMAGE_CLICKED");\r
1543                 const Bitmap* pSaveBitmap = null;\r
1544                 String imageName = GetImagePath();\r
1545                 AppLog("Content manager image name %ls",imageName.GetPointer());\r
1546                 String imagePath;\r
1547                 imagePath.Clear();\r
1548                 imagePath.Append(imageName);\r
1549                 imagePath.Format(100, L"%ls/Downloads/%ls.jpg",Tizen::System::Environment::GetMediaPath().GetPointer(),  imageName.GetPointer());\r
1550                 AppLog("Content manager image path %ls",imagePath.GetPointer());\r
1551                 if (__pHitElementResult != null)\r
1552                 {\r
1553                         pSaveBitmap = __pHitElementResult->GetImage();\r
1554                 }\r
1555                 ByteBuffer* pBuffer = __pSaveImage->EncodeToBufferN(*pSaveBitmap, IMG_FORMAT_JPG);\r
1556 \r
1557                 if(pBuffer)\r
1558                 {\r
1559                         UpdateImageContent(pBuffer, imageName);\r
1560                         delete pBuffer;\r
1561                         NotificationPanel *pNotification = new NotificationPanel(*this);\r
1562                         String msg;\r
1563                         AppResource::GetInstance()->GetString("IDS_COM_SK_SAVE", msg);\r
1564                         msg.Append(imagePath);\r
1565                         if (pNotification != null)\r
1566                         {\r
1567                                 pNotification->SetText(msg);\r
1568                                 pNotification->SetPositionDiff(__pFooterPanel->GetHeight());\r
1569                                 pNotification->ShowNotification();\r
1570                         }\r
1571                 }\r
1572                 else\r
1573                 {\r
1574                         int __modalMsgBoxResult;\r
1575                         MessageBox* pMsgBox = new MessageBox();\r
1576                         pMsgBox->Construct(CommonUtil::GetString(L"IDS_COM_FAILED_TO_SAVE_IMAGE"),CommonUtil::GetString(L"IDS_COM_FAILED_TO_SAVE_IMAGE"),MSGBOX_STYLE_OK,3000);\r
1577                         pMsgBox->ShowAndWait(__modalMsgBoxResult);\r
1578                         delete pMsgBox;\r
1579                         pMsgBox = null;\r
1580                         __modalMsgBoxResult = 0;\r
1581                 }\r
1582         }\r
1583         break;\r
1584         case IDA_SHARE_IMAGE_CLICKED:\r
1585         {\r
1586                 AppLogDebug("IDA_SHARE_IMAGE_CLICKED");\r
1587                 if (__pPopUp != null)\r
1588                 {\r
1589                         delete __pPopUp;\r
1590                         __pPopUp = null;\r
1591                 }\r
1592                 __pPopUp = new(std::nothrow) SharePopup();\r
1593                 __pPopUp->Initialize();\r
1594                 if (__pHitElementResult != null)\r
1595                 {\r
1596                         const Bitmap* pSaveBitmap = null;\r
1597                         String imageName = GetImagePath();\r
1598                         AppLog("Content manager image name %ls",imageName.GetPointer());\r
1599                         String imagePath;\r
1600                         imagePath.Clear();\r
1601                         imagePath.Append(imageName);\r
1602                         imagePath.Format(100, L"%lsDownloads/%ls.jpg",Tizen::System::Environment::GetMediaPath().GetPointer(),  imageName.GetPointer());\r
1603                         AppLog("Content manager image path %ls",imagePath.GetPointer());\r
1604                         if (__pHitElementResult != null)\r
1605                         {\r
1606                                 pSaveBitmap = __pHitElementResult->GetImage();\r
1607                         }\r
1608                         __pSaveImage->EncodeToFile(*pSaveBitmap, IMG_FORMAT_JPG, imagePath, true);\r
1609 \r
1610                         String srcUrl = __pHitElementResult->GetAttributeValue(L"src");\r
1611                         AppLog("MainForm::OnTouchLongPressed srcUrl is %ls",srcUrl.GetPointer());\r
1612 \r
1613                         ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();\r
1614                         pShareInfo->SetPageTitle(L"");\r
1615                         pShareInfo->SetPageUrl(srcUrl);\r
1616                         pShareInfo->SetImageAttached(true);\r
1617                         pShareInfo->SetImagePath(imagePath);\r
1618                         __pPopUp->RemoveAllShareInfo();\r
1619                         __pPopUp->AddShareInfo(pShareInfo);\r
1620                         __pPopUp->SetShowState(true);\r
1621                         __pPopUp->Show();\r
1622                 }\r
1623         }\r
1624         break;\r
1625         case IDA_FIND_TEXT__CLICKED:\r
1626         {\r
1627                 AppLogDebug("MainForm::OnActionPerformed find word clicked");\r
1628                 __currentSearchStr.Clear();\r
1629                 __currentSearchStr.Append(__currentSelectedStr);\r
1630                 InitFindWordPanel();\r
1631                 if(__pMenu != null)\r
1632                 {\r
1633                         __pMenu->SetShowState(false);\r
1634                         __pMenu->Invalidate(false);\r
1635                 }\r
1636 \r
1637                 __adressPanelPosition.y = 0;\r
1638 \r
1639                 if (__pAddressbar != null && __pWebViewer != NULL)\r
1640                 {\r
1641                         __webControlPosition.y = __pAddressbar->GetHeight() - 12;\r
1642                         __pAddressbar->SetBounds(0,__adressPanelPosition.y,GetClientAreaBounds().width,__pAddressbar->GetHeight());\r
1643                         __pAddressbar->Invalidate(true);\r
1644                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width,__webControlHeight));\r
1645                         __pWebViewer->Invalidate(true);\r
1646                 }\r
1647 \r
1648                 ShowFindWordPanel(true);\r
1649                 if (__currentSearchStr.GetLength() > 0)\r
1650                 {\r
1651                         StartWordSearch();\r
1652                 }\r
1653                 else\r
1654                 {\r
1655                         AppLogDebug("Enter something");\r
1656                 }\r
1657 \r
1658                 if (__pWebViewer != null)\r
1659                 {\r
1660                         // releasing the set block\r
1661                         __pWebViewer->ReleaseBlock();\r
1662                 }\r
1663 \r
1664         }\r
1665         break;\r
1666         case IDA_SHARE_TEXT_CLICKED:\r
1667         {\r
1668                 AppLogDebug("IDA_SHARE_TEXT_CLICKED");\r
1669                 if(__pPopUp != null)\r
1670                 {\r
1671                         delete __pPopUp;\r
1672                         __pPopUp = null;\r
1673                 }\r
1674                 __pPopUp = new(std::nothrow) SharePopup();\r
1675                 __pPopUp->Initialize();\r
1676                 if (__pHitElementResult != null)\r
1677                 {\r
1678                         ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();\r
1679                         pShareInfo->SetPageTitle(L"");\r
1680                         pShareInfo->SetPageUrl(__currentSelectedStr);\r
1681                         pShareInfo->SetImageAttached(false);\r
1682                         __pPopUp->RemoveAllShareInfo();\r
1683                         __pPopUp->AddShareInfo(pShareInfo);\r
1684                         __pPopUp->SetShowState(true);\r
1685                         __pPopUp->Show();\r
1686                 }\r
1687         }\r
1688         break;\r
1689         case IDA_COPY_TEXT_CLICKED:\r
1690         {\r
1691                 // need to implement\r
1692                 //__currentSelectedStr\r
1693                 // Sets data to a clip board item\r
1694                 ClipboardItem item;\r
1695                 String resourcePath = App::GetInstance()->GetAppResourcePath();\r
1696                 item.Construct(CLIPBOARD_DATA_TYPE_TEXT, __currentSelectedStr);\r
1697 \r
1698                 // copying the item to clipboard\r
1699                 Clipboard* pClipboard = Clipboard::GetInstance();\r
1700                 if (pClipboard != null)\r
1701                 {\r
1702                         pClipboard->CopyItem(item);\r
1703                 }\r
1704         }\r
1705         break;\r
1706         case IDA_PASTE_TEXT_CLICKED:\r
1707         {\r
1708                 Clipboard* pClipboard = Clipboard::GetInstance();\r
1709 \r
1710                 if(pClipboard == null)\r
1711                 {\r
1712                         return;\r
1713                 }\r
1714                 // Retrieves a latest item\r
1715                 ClipboardItem* pItem = pClipboard->RetrieveLatestItemN(CLIPBOARD_DATA_TYPE_TEXT | CLIPBOARD_DATA_TYPE_HTML);\r
1716 \r
1717                 if(pItem == null)\r
1718                 {\r
1719                         return;\r
1720                 }\r
1721                 //Gets data from the clipboard item\r
1722                 String* pString = dynamic_cast<String*>(pItem->GetData());\r
1723 \r
1724                 if (pString != null)\r
1725                 {\r
1726                         String idElement = __pHitElementResult->GetAttributeValue(L"id");\r
1727                         AppLog("MainForm::IDA_PASTE_TEXT_CLICKED id is %ls",idElement.GetPointer());\r
1728                         String 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;               }       } insertAtCursor(";\r
1729                         script.Append(idElement);\r
1730                         script.Append(",");\r
1731                         script.Append("\"");\r
1732                         script.Append(*pString);\r
1733                         script.Append("\");");\r
1734                         AppLog("MainForm::OnTouchLongPressed script is %ls",script.GetPointer());\r
1735                         String* pStr = __pWebViewer->EvaluateJavascriptN(script);\r
1736                         delete pStr;\r
1737                 }\r
1738                 delete pItem;\r
1739         }\r
1740         break;\r
1741         default:\r
1742                 break;\r
1743         }\r
1744 }\r
1745 \r
1746 void\r
1747 MainForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)\r
1748 {\r
1749 \r
1750         UiApp* pApp = UiApp::GetInstance();\r
1751         if (pApp == null)\r
1752         {\r
1753                 return;\r
1754         }\r
1755         pApp->Terminate();\r
1756 }\r
1757 \r
1758 void\r
1759 MainForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,\r
1760                 const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs)\r
1761 {\r
1762         String* pSelectedScene = NULL;\r
1763         Object* pValue = NULL;\r
1764         String* pUrl = null;\r
1765         MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &pValue);\r
1766         pSelectedScene = (String*) pValue;\r
1767 \r
1768         if (pSelectedScene != null)\r
1769         {\r
1770                 delete pSelectedScene;\r
1771         }\r
1772         MultipleWindowPresentationModel::GetInstance()->SetValue(SELECTED_SCENE_ID, null);\r
1773         String* selectedSceneID = new(std::nothrow) String(currentSceneId);\r
1774         AppLogDebug("current scene id is %ls", currentSceneId.GetPointer());\r
1775         AppLogDebug("selected scene id is %ls", currentSceneId.GetPointer());\r
1776 \r
1777         // setting the current scene ID\r
1778         MultipleWindowPresentationModel::GetInstance()->SetCurrentSceneID(currentSceneId);\r
1779 \r
1780         MultipleWindowPresentationModel::GetInstance()->SetValue(SELECTED_SCENE_ID, (Object*) selectedSceneID);\r
1781 \r
1782         if(pArgs != null && pArgs->GetCount() > 0 && pArgs->GetCount() == 2)\r
1783         {\r
1784                 __pWindowInfo = dynamic_cast< WindowInfo* >(pArgs->GetAt(0));\r
1785                 if(__pWindowInfo == null)\r
1786                         return;\r
1787                 //              if(__pWindowInfo == null)\r
1788                 {\r
1789                         pUrl = dynamic_cast< String* >(pArgs->GetAt(1));\r
1790                 }\r
1791         }\r
1792         else if ( pArgs != null && pArgs->GetCount() == 1)\r
1793         {\r
1794                 __pWindowInfo = dynamic_cast< WindowInfo* >(pArgs->GetAt(0));\r
1795         }\r
1796 \r
1797         InitFooter();\r
1798         InitAddressbar();\r
1799 \r
1800         if(__pWebViewer != null)\r
1801         {\r
1802                 __pWebViewer->Resume();\r
1803         }\r
1804 \r
1805         if(pUrl != null && pUrl->GetLength() > 0)\r
1806         {\r
1807                 LoadUrl(*pUrl);\r
1808         }\r
1809         else if(__pWindowInfo != null)\r
1810         {\r
1811                 if(__pWindowInfo->pageUrl.GetLength() > 0 && previousSceneId != IDSCN_MULTIPLE_WINDOW && previousSceneId != IDSCN_MULTIPLE_WINDOW_GRID && previousSceneId != IDSCN_BOOKMARK_VIEW && previousSceneId != IDSCN_SETTINGS && previousSceneId != IDSCN_MAIN_VIEW)\r
1812                 {\r
1813                         LoadUrl(__pWindowInfo->pageUrl);\r
1814                 }\r
1815                 else if (__pWindowInfo->isJavascriptInitiated == true)\r
1816                 {\r
1817                         AppLog("Called");\r
1818                         InitWebControl();\r
1819                         __pWindowInfo->pCurrentWeb = __pWebViewer;\r
1820                 }\r
1821         }\r
1822 \r
1823         String homePage = SettingPresentationModel::GetInstance()->GetHomepage();\r
1824         AppLog("Homepage Value in Onsceneactivated is %ls",homePage.GetPointer());\r
1825         if(homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)\r
1826         {\r
1827                 InitMostVisitedSitesView(GetOrientationStatus());\r
1828         }\r
1829 \r
1830         if (__pAddressbar != null && pArgs != null && (previousSceneId == IDSCN_BOOKMARK_VIEW || previousSceneId == IDSCN_HISTORY_LIST))\r
1831         {\r
1832                 String* pBookmarkUrl = dynamic_cast< String* >(pArgs->GetAt(0));\r
1833 \r
1834                 if (pBookmarkUrl == null)\r
1835                         return;\r
1836                 AppLogDebug("bookmarkUrl = %ls",pBookmarkUrl->GetPointer());\r
1837                 __pAddressbar->SetUrl(*pBookmarkUrl);\r
1838 \r
1839                 if (__pWebViewer != null && homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) != 0)\r
1840                         __pWebViewer->LoadUrl(*pBookmarkUrl);\r
1841                 delete pBookmarkUrl;\r
1842         }\r
1843 \r
1844         bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();\r
1845         Bitmap* pBitmap = null;\r
1846         if (isPrivateBrowsing == true)\r
1847         {\r
1848                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_ON);\r
1849 \r
1850                 if (__pWebViewer != null)\r
1851                 {\r
1852                         __pWebViewer->SetPrivateBrowsingEnabled(true);\r
1853                 }\r
1854 \r
1855                 if (__pAddressbar != null)\r
1856                 {\r
1857                         __pAddressbar->UpdateFaviconBitmap(true);\r
1858                 }\r
1859 \r
1860         }\r
1861         else\r
1862         {\r
1863                 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_OFF);\r
1864 \r
1865                 if (__pWebViewer != null)\r
1866                 {\r
1867                         __pWebViewer->SetPrivateBrowsingEnabled(false);\r
1868                 }\r
1869 \r
1870                 if (__pAddressbar != null)\r
1871                 {\r
1872                         __pAddressbar->UpdateFaviconBitmap(false);\r
1873                 }\r
1874         }\r
1875 \r
1876         if (__pMenu != null && __pMenu->GetItemCount() == 3)\r
1877         {\r
1878                 __pMenu->SetItemAt(0,CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY"),IDA_PRIVATEON_CLICKED,*pBitmap);\r
1879         }\r
1880         else if (__pMenu != null )\r
1881         {\r
1882                 __pMenu->SetItemAt(3,CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY"),IDA_PRIVATEON_CLICKED,*pBitmap);\r
1883         }\r
1884 \r
1885         if (pBitmap != null)\r
1886         {\r
1887                 delete pBitmap;\r
1888         }\r
1889 \r
1890         AppLog("ABC: OnSceneActivatedN started exit");\r
1891 \r
1892 }\r
1893 \r
1894 void\r
1895 MainForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,\r
1896                 const Tizen::Ui::Scenes::SceneId& nextSceneId)\r
1897 {\r
1898         Canvas* pWebCanvas = null;\r
1899         if (__pWebViewer != null)\r
1900         {\r
1901                 pWebCanvas = __pWebViewer->GetCanvasN();\r
1902                 __pWebViewer->Pause();\r
1903 \r
1904         }\r
1905         if (pWebCanvas == null)\r
1906         {\r
1907                 return;\r
1908         }\r
1909         if (__pWindowInfo != null)\r
1910         {\r
1911                 if (__pWindowInfo->pWebCanvasBitmap != null)\r
1912                 {\r
1913                         delete __pWindowInfo->pWebCanvasBitmap;\r
1914                 }\r
1915                 __pWindowInfo->pWebCanvasBitmap = new(std::nothrow) Bitmap();\r
1916                 result r = __pWindowInfo->pWebCanvasBitmap->Construct(*pWebCanvas,Rectangle(0,0,pWebCanvas->GetBounds().width,pWebCanvas->GetBounds().height));\r
1917                 AppLog("Bitmap Construction result %s",GetErrorMessage(r));\r
1918         }\r
1919         Bitmap* pBitmap = GetCapturedBitmapN();\r
1920         AppLog("Coming here");\r
1921         Canvas* pCanvas = new(std::nothrow) Canvas();\r
1922         pCanvas->Construct(GetClientAreaBounds());\r
1923         if(pBitmap != null)\r
1924         {\r
1925                 pCanvas->DrawBitmap(Point(0,0),*pBitmap);\r
1926                 delete pBitmap;\r
1927         }\r
1928         if(__pWebViewer != null && __pWindowInfo != null)\r
1929                 pCanvas->DrawBitmap(__pWebViewer->GetPosition(),*__pWindowInfo->pWebCanvasBitmap);\r
1930 \r
1931         WindowInfo::pFormCanvasBitmap = new(std::nothrow) Bitmap();\r
1932         WindowInfo::pFormCanvasBitmap->Construct(*pCanvas,Rectangle(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height - __pFooterPanel->GetHeight()));\r
1933         delete pCanvas;\r
1934         AppLog("Coming here");\r
1935 }\r
1936 \r
1937 bool\r
1938 MainForm::OnHttpAuthenticationRequestedN(const Tizen::Base::String& host,\r
1939                 const Tizen::Base::String& realm,\r
1940                 const Tizen::Web::Controls::AuthenticationChallenge& authentication)\r
1941 {\r
1942         return false;\r
1943 }\r
1944 \r
1945 void\r
1946 MainForm::OnHttpAuthenticationCanceled(void)\r
1947 {\r
1948 }\r
1949 \r
1950 void\r
1951 MainForm::OnLoadingStarted(void)\r
1952 {\r
1953         AppLogDebug("MainForm::OnLoadingStarted entered");\r
1954         __isLoaded = true;\r
1955         if(__pAddressbar == NULL)\r
1956         {\r
1957                 return;\r
1958         }\r
1959         String url = __pWebViewer->GetUrl();\r
1960         if(url.Contains(IDS_TIZEN_SERVICE))\r
1961         {\r
1962                 String appId;\r
1963                 String delim(L":;");\r
1964 \r
1965                 // Creates a StringTokenizer instance\r
1966                 StringTokenizer strTok(url, delim);\r
1967 \r
1968                 int count = strTok.GetTokenCount();     // count == 4\r
1969 \r
1970                 ArrayList *pArgList = new(std::nothrow) ArrayList();\r
1971                 pArgList->Construct();\r
1972                 String token;\r
1973                 String key;\r
1974                 String value;\r
1975                 while (strTok.HasMoreTokens())\r
1976                 {\r
1977                         AppLog("Token: %ls", token.GetPointer());\r
1978                         strTok.GetNextToken(token);         // Tizen, StringTokenizer, Sample, code\r
1979                         if(token.Contains(IDS_APPID))\r
1980                         {\r
1981                                 token.SubString(6, appId);\r
1982                                 AppLog("AppID:%ls", appId.GetPointer());\r
1983                         }\r
1984                         else if(token.Contains("="))\r
1985                         {\r
1986                                 pArgList->Add(* new(std::nothrow) String(token));\r
1987                         }\r
1988                 }\r
1989                 if(appId != "")\r
1990                 {\r
1991                         AppManager::GetInstance()->LaunchApplication(appId, pArgList);\r
1992                         return;\r
1993                 }\r
1994         }\r
1995         Bitmap* pBitmap = FaviconManager::GetInstance()->GetDefaultFaviconN();\r
1996         __pAddressbar->SetFaviconBitmap(*pBitmap);\r
1997         delete pBitmap;\r
1998         if (__adressPanelPosition.y < (0 - __pAddressbar->GetHeight() + 12))\r
1999         {\r
2000                 // updating the address bar position with respect to web control\r
2001                 __adressPanelPosition.y = 0 - __pAddressbar->GetHeight() + 12; //-12 is for the progress label\r
2002                 __distanceMoved = 0;\r
2003                 MoveUiControls();\r
2004         }\r
2005 \r
2006         __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);\r
2007         if (__pWebViewer)\r
2008         {\r
2009                 AppLog("MainForm::OnLoadingStarted __pWebViewer->GetUrl() %ls",__pWebViewer->GetUrl().GetPointer());\r
2010                 __pAddressbar->SetUrl(__pWebViewer->GetUrl());\r
2011                 if (__pWindowInfo != NULL)\r
2012                 {\r
2013                         __pWindowInfo->pageUrl = __pWebViewer->GetUrl();\r
2014                 }\r
2015                 __pAddressbar->Invalidate(true);\r
2016         }\r
2017 \r
2018 }\r
2019 \r
2020 void\r
2021 MainForm::OnLoadingCanceled(void)\r
2022 {\r
2023 \r
2024 }\r
2025 \r
2026 \r
2027 void\r
2028 MainForm::OnKeypadWillOpen(Tizen::Ui::Control& source)\r
2029 {\r
2030         if(__pAddressbar != null)\r
2031         {\r
2032                 OnAddressBarKeypadOpened(*__pAddressbar);\r
2033         }\r
2034 }\r
2035 \r
2036 void\r
2037 MainForm::OnKeypadClosed(Tizen::Ui::Control& source){\r
2038         if(__pAddressbar != null)\r
2039         {\r
2040                 OnAddressBarKeypadClosed(*__pAddressbar);\r
2041         }\r
2042 }\r
2043 \r
2044 void\r
2045 MainForm::OnLoadingErrorOccurred(LoadingErrorType error,\r
2046                 const Tizen::Base::String& reason)\r
2047 {\r
2048         AppLogDebug("Error: %d, %ls", error, reason.GetPointer());\r
2049 }\r
2050 \r
2051 void\r
2052 MainForm::OnLoadingCompleted(void)\r
2053 {\r
2054         DateTime date;\r
2055         result r = E_SUCCESS;\r
2056 \r
2057         if (__pWebViewer == null)\r
2058         {\r
2059                 return;\r
2060         }\r
2061 \r
2062         if (__pAddressbar == null)\r
2063         {\r
2064                 return;\r
2065         }\r
2066         if (__pWebViewer->CanGoForward())\r
2067         {\r
2068                 __pAddressbar->SetForwardButtonEnabled(true);\r
2069         }\r
2070         else\r
2071         {\r
2072                 __pAddressbar->SetForwardButtonEnabled(false);\r
2073         }\r
2074 \r
2075         if (__pWebViewer->CanGoBack())\r
2076         {\r
2077                 __pAddressbar->SetBackButtonEnabled(true);\r
2078         }\r
2079         else\r
2080         {\r
2081                 __pAddressbar->SetBackButtonEnabled(false);\r
2082         }\r
2083         if (__pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_EDIT)\r
2084         {\r
2085                 __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);\r
2086 \r
2087                 __pAddressbar->UpdateProgress(0);\r
2088         }\r
2089 \r
2090         AppLog("PrivateBrowsing %d",__pWebViewer->IsPrivateBrowsingEnabled());\r
2091         bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();\r
2092         if (isPrivateBrowsing == false)\r
2093         {\r
2094                 History* pHistory = new(std::nothrow) History;\r
2095 \r
2096                 HistoryPresentationModel::GetCurrentDateTime(date);\r
2097                 if(__pWindowInfo)\r
2098                 {\r
2099                         pHistory->SetHistoryTitle(__pWindowInfo->pageTitle);\r
2100                         AppLogDebug("MainForm::OnLoadingCompleted pagetitle = %ls", __pWindowInfo->pageTitle.GetPointer());\r
2101 \r
2102                         pHistory->SetHistoryUrl(__pWindowInfo->pageUrl);\r
2103                         AppLogDebug("MainForm::OnLoadingCompleted pageUrl = %ls", __pWindowInfo->pageUrl.GetPointer());\r
2104                 }\r
2105                 pHistory->SetVisitedTime(date);\r
2106                 String id = "";\r
2107                 if(__pWindowInfo)\r
2108                         id = FaviconManager::GetInstance()->SaveFavicon(*__pWindowInfo->pFavicon, __pWindowInfo->faviconUrl);\r
2109                 pHistory->SetFaviconId(id);\r
2110                 Canvas* pCanvas = __pWebViewer->GetCanvasN();\r
2111                 Bitmap* pBitmap = new(std::nothrow) Bitmap();\r
2112                 if ( pCanvas != null &&  pCanvas != null && pBitmap != null)\r
2113                 {\r
2114                         pBitmap->Construct(*pCanvas, pCanvas->GetBounds());\r
2115                         pBitmap->Scale(Dimension(pBitmap->GetWidth()/4, pBitmap->GetHeight()/4));\r
2116                         pHistory->SetThumbnail(pBitmap);\r
2117                 }\r
2118                 HistoryPresentationModel::GetInstance()->SaveHistory(*pHistory);\r
2119                 delete pHistory;\r
2120         }\r
2121         else\r
2122         {\r
2123                 return;\r
2124         }\r
2125         if (__pWindowInfo && __pWindowInfo->faviconUrl == "")\r
2126         {\r
2127                 // temperary fixed (webpage can be not loaded)\r
2128                 UpdateFavicon();\r
2129         }\r
2130 }\r
2131 \r
2132 void\r
2133 MainForm::OnEstimatedProgress(int progress)\r
2134 {\r
2135         AppLogDebug("MainForm::OnEstimatedProgress entered");\r
2136         if (progress < DEFAULT_PROGRESS_PERCENTAGE)\r
2137                 progress = DEFAULT_PROGRESS_PERCENTAGE;\r
2138         if(__pAddressbar)\r
2139                 __pAddressbar->UpdateProgress(progress);\r
2140 }\r
2141 \r
2142 void\r
2143 MainForm::OnUrlSubmitted(Addressbar& addBar)\r
2144 {\r
2145         String url = addBar.GetUrl();\r
2146         LoadUrl(url);\r
2147         __pFooterPanel->SetShowState(true);\r
2148         __pFooterPanel->Invalidate(true);\r
2149         RequestRedraw(true);\r
2150 }\r
2151 \r
2152 void\r
2153 MainForm::LoadUrl(String& url)\r
2154 {\r
2155         AppLogDebug("MainForm::LoadUrl enter");\r
2156 \r
2157         if (url.CompareTo(L"") == 0)\r
2158         {\r
2159                 return;\r
2160         }\r
2161         if(__pFooterPanel != null)\r
2162         {\r
2163                 __pFooterPanel->SetShowState(true);\r
2164                 __pFooterPanel->Invalidate(true);\r
2165         }\r
2166         InitWebControl();\r
2167 \r
2168         bool ret = false;\r
2169         bool flag = false;\r
2170 \r
2171         String firstPattern(L"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");\r
2172         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)\r
2173 \r
2174         RegularExpression firstRegex;\r
2175         RegularExpression secondRegex;\r
2176 \r
2177         firstRegex.Construct(firstPattern, REGEX_CASELESS);\r
2178         secondRegex.Construct(secondPattern, REGEX_CASELESS);\r
2179 \r
2180         // Match\r
2181         ret = firstRegex.Match(url, false); // This returns true value\r
2182         flag = secondRegex.Match(url, false);  // Checks whether URL typed is of type  abc.com (i.e without protocol in front of it)\r
2183 \r
2184         if (ret == true && __pWebViewer != null)\r
2185         {\r
2186                 __pWebViewer->LoadUrl(url);\r
2187         }\r
2188         else if(__pWebViewer != null)\r
2189         {\r
2190                 String tempUrl = L"http://";\r
2191                 tempUrl.Append(url);\r
2192 \r
2193                 if (flag == true)\r
2194                 {\r
2195                         __pWebViewer->LoadUrl(tempUrl);\r
2196                 }\r
2197                 else\r
2198                 {\r
2199                         __pWebViewer->LoadUrl(SettingPresentationModel::GetInstance()->GetSearchUrl(url));\r
2200                 }\r
2201         }\r
2202         if (__pAddressbar != null)\r
2203         {\r
2204                 __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);\r
2205         }\r
2206 \r
2207         AppLogDebug("MainForm::LoadUrl exit");\r
2208 \r
2209         return;\r
2210 \r
2211 }\r
2212 \r
2213 void\r
2214 MainForm::OnStopClicked(Addressbar& addBar)\r
2215 {\r
2216         AppLogDebug("MainForm::OnStopClicked called");\r
2217         if (__pWebViewer)\r
2218         {\r
2219                 __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);\r
2220                 __pWebViewer->StopLoading();\r
2221                 RequestRedraw(true);\r
2222         }\r
2223 }\r
2224 \r
2225 void\r
2226 MainForm::OnReaderClicked(const Addressbar& addBar)\r
2227 {\r
2228         int bodyWidth = ((double)(GetClientAreaBounds().width))*0.73;\r
2229 \r
2230         CreateReaderPanel();\r
2231         AppLogDebug("MainScene::OnReaderClicked entered");\r
2232 \r
2233 \r
2234         /*if (__pArticleReaderPanel)\r
2235         {\r
2236                 AppLogDebug("showstate true for reader panel");\r
2237                 __pArticleReaderPanel->SetShowState(true);\r
2238                 __pArticleReaderPanel->Show();\r
2239         }*/\r
2240         int xPos = __pArticleReaderPanel->GetX();\r
2241         int yPos = __pArticleReaderPanel->GetY();\r
2242         AppLog("OnReaderClicked() xPos = %d",xPos);\r
2243         AppLog("OnReaderClicked() yPos = %d",yPos);\r
2244 \r
2245         if (__pReaderData == null)\r
2246         {\r
2247                 return;\r
2248         }\r
2249 \r
2250         String loadData = L"<html>\\r
2251                                         <head>\\r
2252                                         <meta name='viewport' content='width=device-width*0.73,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no'>\\r
2253                                         <style>\\r
2254                                         h1\\r
2255                                         {\\r
2256                                         font-weight:bold;\\r
2257                                         background-color: transparent;\\r
2258                                         }\\r
2259                                         div\\r
2260                                         {\\r
2261                                         display: block;\\r
2262                                         }\\r
2263                                         p\\r
2264                                         {\\r
2265                                         display: block; \\r
2266                                         }\\r
2267                                         img\\r
2268                                         {\\r
2269                                         margin-left:auto;\\r
2270                                         margin-right:auto;\\r
2271                                         }\\r
2272                                         \\r
2273                                         \\r
2274                                         </style>\\r
2275                                         </head>\\r
2276                                         <body style='width:'";\r
2277         loadData.Append(bodyWidth);\r
2278         loadData.Append(L"px'>");\r
2279         AppLogDebug("data->GetLength %d",__pReaderData->GetLength());\r
2280         loadData.Append(*__pReaderData);\r
2281         loadData.Append(L"</body></html>");\r
2282 \r
2283         ByteBuffer buf ;\r
2284         buf.Construct(loadData.GetLength());\r
2285         AppLogDebug("data->GetLength %d",loadData.GetLength());\r
2286         for (int z=0;z<loadData.GetLength();z++)\r
2287         {\r
2288                 mchar b;\r
2289                 loadData.GetCharAt(z,b);\r
2290                 buf.SetByte((byte)b);\r
2291         }\r
2292 \r
2293         buf.Flip();\r
2294         if (__pWebReader != null)\r
2295         {\r
2296                 __pWebReader->LoadData(L"",buf,L"text/html");\r
2297                 AppLogDebug("LoadData result %s",GetErrorMessage(GetLastResult()));\r
2298         }\r
2299         else\r
2300         {\r
2301                 AppLogDebug("cannot LoadData __pWebReader is null");\r
2302         }\r
2303 \r
2304 }\r
2305 \r
2306 void\r
2307 MainForm::OnBackClicked(const Addressbar& addBar)\r
2308 {\r
2309         if (__pWebViewer == null)\r
2310                 return;\r
2311 \r
2312         if (__pWebViewer->CanGoBack())\r
2313         {\r
2314                 __pWebViewer->GoBack();\r
2315         }\r
2316 \r
2317 }\r
2318 \r
2319 void\r
2320 MainForm::OnForwardClicked(const Addressbar& addBar)\r
2321 {\r
2322         if (__pWebViewer == null)\r
2323                 return;\r
2324 \r
2325         if (__pWebViewer->CanGoForward())\r
2326         {\r
2327                 __pWebViewer->GoForward();\r
2328         }\r
2329 }\r
2330 \r
2331 void\r
2332 MainForm::OnAddressCancelledClicked(const Addressbar& addBar)\r
2333 {\r
2334         __pFooterPanel->SetShowState(true);\r
2335         __pFooterPanel->Invalidate(false);\r
2336 }\r
2337 \r
2338 void\r
2339 MainForm::OnAddressBarModeChanged(const Addressbar& addBar)\r
2340 {\r
2341         __prevAddressBarMode = __curAddressBarMode;\r
2342 \r
2343         if (__pAddressbar != null)\r
2344         {\r
2345                 __curAddressBarMode = __pAddressbar->GetAddressbarMode();\r
2346         }\r
2347 \r
2348         if (__curAddressBarMode == ADDRESSBAR_MODE_EDIT)\r
2349         {\r
2350                 __adressPanelPosition.y = 0;\r
2351                 if (__pAddressbar != null)\r
2352                 {\r
2353                         __webControlPosition.y = __pAddressbar->GetHeight() - 12;\r
2354                         __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));\r
2355                         __pAddressbar->Invalidate(true);\r
2356                 }\r
2357                 if (__pWebViewer != null)\r
2358                 {\r
2359                         __pWebViewer->StopLoading();\r
2360 \r
2361                 }\r
2362 \r
2363         }\r
2364         if (__pWebViewer != null)\r
2365         {\r
2366                 if(__pFooterPanel->GetShowState() == false)\r
2367                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, GetClientAreaBounds().height));\r
2368                 else\r
2369                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, __webControlHeight));\r
2370                 __pWebViewer->Invalidate(true);\r
2371         }\r
2372 }\r
2373 \r
2374 void\r
2375 MainForm::OnAddressBarKeypadClosed(const Addressbar& addBar)\r
2376 {\r
2377 \r
2378         if(__pFooterPanel != null)\r
2379         {\r
2380                 String homePage = SettingPresentationModel::GetInstance()->GetHomepage();\r
2381                 if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)\r
2382                 {\r
2383                         InitMostVisitedSitesView(GetOrientationStatus());\r
2384                 }\r
2385                 __pFooterPanel->SetShowState(true);\r
2386                 __pFooterPanel->Invalidate(false);\r
2387         }\r
2388 \r
2389 \r
2390 \r
2391         //AppLogDebug("MainForm::OnAddressBarKeypadClosed enterd");\r
2392 \r
2393         if (__pWebViewer != null && __pFooterPanel != null)\r
2394         {\r
2395                 AppLog("MainForm::OnAddressBarKeypadClosed GetClientAreaBounds().height %d ", GetClientAreaBounds().height);\r
2396                 __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();\r
2397 \r
2398                 if(__pFooterPanel->GetShowState() == false)\r
2399                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, GetClientAreaBounds().height));\r
2400                 else\r
2401                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, __webControlHeight));\r
2402                 __pWebViewer->Invalidate(false);\r
2403                 //__pWebViewer->SetBounds(Rectangle(0, 82, GetClientAreaBounds().width,webControlHeight));\r
2404         }\r
2405         if(__pMostVisitedListView != null && __pAddressbar != null && __pFooterPanel != null)\r
2406                 __pMostVisitedListView->SetBounds(Tizen::Graphics::Rectangle(0,__pAddressbar->GetBounds().y + __pAddressbar->GetHeight()-12 , GetClientAreaBounds().width, GetClientAreaBounds().height - __pAddressbar->GetHeight() - __pFooterPanel->GetHeight() + 14));\r
2407 \r
2408 }\r
2409 \r
2410 void\r
2411 MainForm::OnAddressBarKeypadOpened(const Addressbar& addBar)\r
2412 {\r
2413         __pFooterPanel->SetShowState(false);\r
2414         __pFooterPanel->Invalidate(false);\r
2415 }\r
2416 \r
2417 void\r
2418 MainForm::OnAddressBarKeypadWillOpen(const Addressbar& addBar)\r
2419 {\r
2420         __pFooterPanel->SetShowState(false);\r
2421         __pFooterPanel->Invalidate(false);\r
2422 }\r
2423 \r
2424 void\r
2425 MainForm::OnPageTitleReceived(const Tizen::Base::String& title)\r
2426 {\r
2427         if (__pWindowInfo)\r
2428         {\r
2429                 __pWindowInfo->pageTitle = title;\r
2430                 if (__pWebViewer != null)\r
2431                 {\r
2432                         __pWindowInfo->pageUrl = __pWebViewer->GetUrl();\r
2433                 }\r
2434         }\r
2435         if (__pAddressbar != null && __pWebViewer != null)\r
2436         {\r
2437                 __pAddressbar->SetUrl(__pWebViewer->GetUrl());\r
2438                 __pAddressbar->UpdateFaviconBitmap(SettingPresentationModel::GetInstance()->GetPrivateOn());\r
2439                 __pAddressbar->Invalidate(true);\r
2440         }\r
2441 \r
2442 }\r
2443 \r
2444 void\r
2445 MainForm::UpdateFavicon(void)\r
2446 {\r
2447         bool urlImageType = false;\r
2448         String *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();");\r
2449         Bitmap* pBitmap = null;\r
2450 \r
2451         if (tempPath && tempPath->GetLength() > 0 && tempPath->CompareTo(L"undefined") != 0)\r
2452         {\r
2453                 if (__pWindowInfo != null)\r
2454                 {\r
2455                         Uri url;\r
2456                         url.SetUri(*tempPath);\r
2457                         if (url.GetHost().GetLength() == 0)\r
2458                         {\r
2459                                 Uri webUrl;\r
2460                                 webUrl.SetUri(__pWebViewer->GetUrl());\r
2461                                 result r = url.SetHost(webUrl.GetHost());\r
2462                                 if(IsFailed(r))\r
2463                                 {\r
2464                                         delete tempPath;\r
2465                                         return;\r
2466                                 }\r
2467                         }\r
2468                         if (url.GetScheme().GetLength() == 0)\r
2469                         {\r
2470                                 Uri webUrl;\r
2471                                 webUrl.SetUri(__pWebViewer->GetUrl());\r
2472                                 url.SetScheme(webUrl.GetScheme());\r
2473                         }\r
2474                         __pWindowInfo->faviconUrl = url.ToString();\r
2475 \r
2476                         pBitmap = __pWebViewer->GetFaviconN();\r
2477 \r
2478                         if (pBitmap != null)\r
2479                         {\r
2480                                 if (__pWindowInfo->pFavicon != NULL)\r
2481                                 {\r
2482                                         //                      delete __pWindowInfo->pFavicon;\r
2483                                         __pWindowInfo->pFavicon = null;\r
2484                                 }\r
2485                                 __pWindowInfo->pFavicon = new(std::nothrow) Bitmap();\r
2486                                 __pWindowInfo->pFavicon->Construct(*pBitmap,Rectangle(0,0,pBitmap->GetWidth(),pBitmap->GetHeight()));\r
2487                                 //bool isPrivateBrowsing = __pWebViewer->IsPrivateBrowsingEnabled();\r
2488 \r
2489                                 __pAddressbar->SetFaviconBitmap(*__pWindowInfo->pFavicon);\r
2490 \r
2491                                 FaviconManager::GetInstance()->SaveFavicon(*__pWindowInfo->pFavicon, __pWindowInfo->faviconUrl);\r
2492                         }\r
2493                         else if(__pWindowInfo->pFavicon != null)\r
2494                         {\r
2495                                 __pAddressbar->SetFaviconBitmap(*__pWindowInfo->pFavicon);\r
2496                         }\r
2497                         else\r
2498                         {\r
2499                                 __pAddressbar->SetFaviconBitmap(*FaviconManager::GetInstance()->GetDefaultFaviconN());\r
2500                         }\r
2501 \r
2502                         AppLogDebug("Favicon download requested: url: %ls", url.ToString().GetPointer());\r
2503                 }\r
2504                 delete tempPath;\r
2505         }\r
2506         else\r
2507         {\r
2508                 delete tempPath;\r
2509                 AppLogDebug("Error occured: %s", GetErrorMessage(GetLastResult()));\r
2510         }\r
2511 \r
2512 }\r
2513 \r
2514 \r
2515 bool\r
2516 MainForm::OnLoadingRequested(const Tizen::Base::String& url,\r
2517                 Tizen::Web::Controls::WebNavigationType type)\r
2518 {\r
2519         // when load new page if find word panel is open its show state is false\r
2520         ShowFindWordPanel(false);\r
2521 \r
2522         Uri uriInfo;\r
2523         uriInfo.SetUri(url);\r
2524 \r
2525         if(url.Contains(IDS_TIZEN_SERVICE))\r
2526         {\r
2527                 String appId;\r
2528                 String delim(L":;");\r
2529 \r
2530                 // Creates a StringTokenizer instance\r
2531                 StringTokenizer strTok(url, delim);\r
2532 \r
2533                 int count = strTok.GetTokenCount();     // count == 4\r
2534 \r
2535                 ArrayList *pArgList = new(std::nothrow) ArrayList();\r
2536                 pArgList->Construct();\r
2537                 String token;\r
2538                 String key;\r
2539                 String value;\r
2540                 while (strTok.HasMoreTokens())\r
2541                 {\r
2542                         AppLog("Token: %ls", token.GetPointer());\r
2543                         strTok.GetNextToken(token);         // Tizen, StringTokenizer, Sample, code\r
2544                         if(token.Contains(IDS_APPID))\r
2545                         {\r
2546                                 token.SubString(6, appId);\r
2547                                 AppLog("AppID:%ls", appId.GetPointer());\r
2548                         }\r
2549                         else if(token.Contains("="))\r
2550                         {\r
2551                                 pArgList->Add(* new(std::nothrow) String(token));\r
2552                         }\r
2553                 }\r
2554                 if(appId != "")\r
2555                 {\r
2556                         DateTime dateTime;\r
2557                         SystemTime::GetCurrentTime(dateTime);\r
2558                         dateTime.AddSeconds(1);\r
2559                         String condition = "DateTime='" + dateTime.ToString() + "'";\r
2560                         result r = AppManager::GetInstance()->LaunchApplication(appId, pArgList, AppManager::LAUNCH_OPTION_DEFAULT);\r
2561                         AppLog("Launch res: %s", GetErrorMessage(r));\r
2562                         return true;\r
2563                 }\r
2564         }\r
2565 \r
2566         if (__pWebViewer && __pAddressbar)\r
2567         {\r
2568                 AppLog("__pWebViewer->GetUrl() %ls",__pWebViewer->GetUrl().GetPointer());\r
2569                 __pAddressbar->SetUrl(__pWebViewer->GetUrl());\r
2570                 __pAddressbar->UpdateProgress(DEFAULT_PROGRESS_PERCENTAGE);\r
2571 \r
2572                 if (__pWindowInfo)\r
2573                 {\r
2574                         __pWindowInfo->pageTitle = CommonUtil::GetString(L"IDS_BR_BODY_ABOUT_C_BLANK");\r
2575                         __pWindowInfo->pageUrl = __pWebViewer->GetUrl();\r
2576                         __pWindowInfo->faviconUrl = "";\r
2577                         __pWindowInfo->faviconFilePath = "";\r
2578 \r
2579                         if (__pWindowInfo->pFavicon != NULL)\r
2580                         {\r
2581                                 //                              delete __pWindowInfo->pFavicon;\r
2582                                 __pWindowInfo->pFavicon = null ;\r
2583                         }\r
2584                         __pWindowInfo->pFavicon = FaviconManager::GetInstance()->GetDefaultFaviconN();\r
2585 \r
2586                 }\r
2587 \r
2588                 __pAddressbar->Invalidate(true);\r
2589         }\r
2590         return false;\r
2591 }\r
2592 \r
2593 DecisionPolicy\r
2594 MainForm::OnWebDataReceived(const Tizen::Base::String& mime,\r
2595                 const Tizen::Net::Http::HttpHeader& httpHeader)\r
2596 {\r
2597         return Tizen::Web::Controls::WEB_DECISION_CONTINUE;\r
2598 }\r
2599 \r
2600 \r
2601 void\r
2602 MainForm::OnWebPageBlockSelected(Tizen::Web::Controls::Web& source, Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint)\r
2603 {\r
2604         AppLog("MainForm::OnWebPageBlockSelected");\r
2605 \r
2606         if (__pHitElementResult != null)\r
2607         {\r
2608                 delete __pHitElementResult;\r
2609                 __pHitElementResult = null;\r
2610         }\r
2611 \r
2612         if (__pWebViewer != null)\r
2613         {\r
2614                 AppLog("MainForm::OnWebPageBlockSelected web not null");\r
2615                 __pHitElementResult = __pWebViewer->GetElementByPointN(startPoint);\r
2616         }\r
2617 \r
2618         if (__pHitElementResult == null)\r
2619         {\r
2620                 return;\r
2621         }\r
2622 \r
2623         if (__pHitElementResult->HasImage() != true)\r
2624         {\r
2625                 String tagName = __pHitElementResult->GetTagName();\r
2626                 String type = __pHitElementResult->GetAttributeValue("type");\r
2627 \r
2628                 __currentSelectedStr.Clear();\r
2629                 __currentSelectedStr = __pWebViewer->GetTextFromBlock();\r
2630 \r
2631                 if ((tagName.CompareTo(L"INPUT") == 0)  || tagName.CompareTo(L"TEXTAREA") == 0)\r
2632                 {\r
2633                         AppLog("MainForm::OnWebPageBlockSelected show paste option");\r
2634 \r
2635                         InitSelectTextContextMenu(startPoint,true);\r
2636                         __pImageMenu->SetShowState(true);\r
2637                         __pImageMenu->Show();\r
2638                         __pImageMenu->Invalidate(true);\r
2639                 }\r
2640                 else if (__pHitElementResult->HasUrl() == true || __currentSelectedStr.GetLength() > 0)\r
2641                 {\r
2642                         AppLog("MainForm::OnWebPageBlockSelected no paste option");\r
2643 \r
2644                         if(__pHitElementResult->GetUrl().GetLength() > 0)\r
2645                         {\r
2646                                 __currentSelectedStr.Clear();\r
2647                                 __currentSelectedStr = __pHitElementResult->GetUrl();\r
2648                         }\r
2649                         InitSelectTextContextMenu(startPoint,false);\r
2650                         __pImageMenu->SetShowState(true);\r
2651                         __pImageMenu->Show();\r
2652                         __pImageMenu->Invalidate(true);\r
2653                 }\r
2654 \r
2655                 AppLog("MainForm::OnWebPageBlockSelected block text is %ls",__currentSelectedStr.GetPointer());\r
2656                 AppLog("MainForm::OnWebPageBlockSelected tag name is %ls",tagName.GetPointer());\r
2657                 AppLog("MainForm::OnWebPageBlockSelected type name is %ls",type.GetPointer());\r
2658         }\r
2659 }\r
2660 \r
2661 void\r
2662 MainForm::OnWebPageShowRequested(Tizen::Web::Controls::Web& source)\r
2663 {\r
2664 \r
2665 }\r
2666 \r
2667 Web*\r
2668 MainForm::OnWebWindowCreateRequested(void)\r
2669 {\r
2670         WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewScene();\r
2671 \r
2672         if (pNewWindowInfo == null)\r
2673         {\r
2674                 return null;\r
2675         }\r
2676         result r = E_SUCCESS;\r
2677         SceneManager* pSceneManager = SceneManager::GetInstance();\r
2678         if (pSceneManager == NULL)\r
2679         {\r
2680                 return null;\r
2681         }\r
2682         ArrayList* pArgList = new(std::nothrow) ArrayList();\r
2683         if (pArgList == NULL)\r
2684         {\r
2685                 return null;\r
2686         }\r
2687         r = pArgList->Construct();\r
2688         if (r == E_SUCCESS)\r
2689         {\r
2690                 pNewWindowInfo->isJavascriptInitiated = true;\r
2691                 pArgList->Add(*pNewWindowInfo);\r
2692                 r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);\r
2693                 delete pArgList;\r
2694                 if (IsFailed(r))\r
2695                 {\r
2696                         AppLogDebug("EditHistoryListForm::OnFormBackRequested Failed to GoBackward %s",GetErrorMessage(r));\r
2697                         return null;\r
2698                 }\r
2699         } else {\r
2700                 delete pArgList;\r
2701         }\r
2702 \r
2703         return pNewWindowInfo->pCurrentWeb;\r
2704 }\r
2705 \r
2706 void\r
2707 MainForm::RelayoutControls(bool showAddressbar)\r
2708 {\r
2709         if (showAddressbar == false)\r
2710         {\r
2711                 __pAddressbar->SetShowState(false);\r
2712                 __pWebViewer->SetBounds(__pWebViewer->GetX(), 0, __pWebViewer->GetWidth(), __webControlHeight);\r
2713                 __pFooterPanel->SetBounds(__pFooterPanel->GetX(), GetClientAreaBounds().height - __pFooterPanel->GetHeight(), __pFooterPanel->GetWidth(), __pFooterPanel->GetHeight());\r
2714         }\r
2715         else\r
2716         {\r
2717                 __pAddressbar->SetShowState(true);\r
2718                 __pWebViewer->SetBounds(__pWebViewer->GetX(), __pWebViewer->GetY(), __pWebViewer->GetWidth(), __webControlHeight);\r
2719                 __pFooterPanel->SetBounds(__pFooterPanel->GetX(), GetClientAreaBounds().height - __pFooterPanel->GetHeight(), __pFooterPanel->GetWidth(), __pFooterPanel->GetHeight());\r
2720         }\r
2721         RequestRedraw(true);\r
2722 }\r
2723 \r
2724 void MainForm::ShowFindWordPanel(bool show , bool isTouchPressed)\r
2725 {\r
2726         if (__pFindWordPanel == null)\r
2727         {\r
2728                 return;\r
2729         }\r
2730         if (show == true)\r
2731         {\r
2732                 InitFindWordPanel();\r
2733                 __pFindWordEditField->SetText(__currentSearchStr);\r
2734                 //__pFindWordCountLabel->SetText(L"");\r
2735                 __pFindWordCountLabel->SetText(L"0/0");\r
2736 \r
2737         }\r
2738 \r
2739         AppLog("MainForm::ShowFindWordPanel %d",show);\r
2740         if (show && !isTouchPressed)\r
2741         {\r
2742                 if (__pFindWordEditField)\r
2743                         __pFindWordEditField->ShowKeypad();\r
2744         }\r
2745         else\r
2746         {\r
2747                 if (__pFindWordEditField)\r
2748                         __pFindWordEditField->HideKeypad();\r
2749         }\r
2750 \r
2751         if (__pAddressbar != null)\r
2752         {\r
2753                 __pAddressbar->SetShowState(!show);\r
2754                 __pAddressbar->Invalidate(true);\r
2755         }\r
2756         if (__pFindWordPanel != null)\r
2757         {\r
2758                 __pFindWordPanel->SetShowState(show);\r
2759                 __pFindWordPanel->Invalidate(true);\r
2760         }\r
2761         Invalidate(true);\r
2762 }\r
2763 \r
2764 void\r
2765 MainForm::StartWordSearch()\r
2766 {\r
2767         //Get the count of occurances of the word in the current page\r
2768         __maxOccurrances = 0;\r
2769         __currentWordIndex = 0;\r
2770 \r
2771         __pFindWordPrev->SetEnabled(false);\r
2772         String *pCountStr = null;\r
2773         __pWebViewer->SearchTextAllAsync(__currentSearchStr, false);\r
2774         /*__pWebViewer->EvaluateJavascriptN(L"document.body.textContent.match(/"  + __currentSearchStr + "/gi).length;");\r
2775         if (pCountStr != null)\r
2776         {\r
2777                 Integer::Parse(*pCountStr, 10, __maxOccurrances);\r
2778                 delete pCountStr;\r
2779         }\r
2780 \r
2781         AppLogDebug("'%ls' is found %d times", __currentSearchStr.GetPointer(), __maxOccurrances);\r
2782          */\r
2783 \r
2784 }\r
2785 \r
2786 void MainForm::OnTextFound(int totalCount, int currentOrdinal)\r
2787 {\r
2788         AppLog("MainForm::OnTextFound totalCount %d",totalCount);\r
2789         AppLog("MainForm::OnTextFound currentOrdinal %d",currentOrdinal);\r
2790 \r
2791 /*      if(totalCount == -1 || totalCount == 0)\r
2792         {\r
2793                 __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),4,__pFindWordCountLabel->GetHeight());\r
2794                 __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),214+80,__pFindWordEditField->GetHeight());\r
2795                 return;\r
2796         }\r
2797         else if(totalCount > 100)\r
2798         {\r
2799                 __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight());\r
2800                 __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight());\r
2801         }\r
2802 */\r
2803         __maxOccurrances = totalCount;\r
2804         __currentWordIndex = currentOrdinal;\r
2805 \r
2806         //Reset the UI controls as per the maxOccurrance value\r
2807         if (totalCount <= 0)\r
2808         {\r
2809                 AppLog("Word not found");\r
2810                 //Show error notification to user\r
2811                 __pFindWordNext->SetEnabled(false);\r
2812                 __pFindWordCountLabel->SetText(L"0/0");\r
2813                 __pFindWordNext->Invalidate(false);\r
2814                 __pFindWordPrev->Invalidate(false);\r
2815                 __pFindWordCountLabel->Invalidate(false);\r
2816                 return;\r
2817         }\r
2818 \r
2819         if (totalCount == 1)\r
2820         {\r
2821                 __pFindWordNext->SetEnabled(false);\r
2822         }\r
2823         else\r
2824         {\r
2825                 __pFindWordNext->SetEnabled(true);\r
2826         }\r
2827 \r
2828         String countStr = L"";\r
2829         countStr.Append(__currentWordIndex);\r
2830         countStr.Append(L"/");\r
2831         countStr.Append(__maxOccurrances);\r
2832         __pFindWordCountLabel->SetText(countStr);\r
2833 //      __pFindWordCountLabel->SetShowState(true);\r
2834         __pFindWordCountLabel->Invalidate(false);\r
2835 \r
2836         //FindNextWord(true);\r
2837         //Update the controls\r
2838         __pFindWordNext->Invalidate(false);\r
2839         __pFindWordPrev->Invalidate(false);\r
2840         __pFindWordCountLabel->Invalidate(false);\r
2841 }\r
2842 \r
2843 void\r
2844 MainForm::FindNextWord(bool next)\r
2845 {\r
2846         if (next == true)\r
2847         {\r
2848                 if (__pWebViewer->SearchText(__currentSearchStr, true) == true)\r
2849                 {\r
2850                         if(__currentWordIndex < __maxOccurrances)\r
2851                         {\r
2852                                 __currentWordIndex++;\r
2853                         }\r
2854                 }\r
2855         }\r
2856         else\r
2857         {\r
2858                 if (__pWebViewer->SearchText(__currentSearchStr, false) == true)\r
2859                 {\r
2860                         if(__currentWordIndex > 1)\r
2861                         {\r
2862                                 __currentWordIndex--;\r
2863                         }\r
2864                 }\r
2865         }\r
2866 \r
2867         String countStr = L"";\r
2868         countStr.Append(__currentWordIndex);\r
2869         countStr.Append(L"/");\r
2870         countStr.Append(__maxOccurrances);\r
2871         __pFindWordCountLabel->SetText(countStr);\r
2872 //      __pFindWordCountLabel->SetShowState(true);\r
2873         __pFindWordCountLabel->Invalidate(false);\r
2874         if (__currentWordIndex >= __maxOccurrances)\r
2875         {\r
2876                 __pFindWordNext->SetEnabled(false);\r
2877         }\r
2878         else\r
2879         {\r
2880                 __pFindWordNext->SetEnabled(true);\r
2881         }\r
2882         if (__currentWordIndex <= 1)\r
2883         {\r
2884                 __pFindWordPrev->SetEnabled(false);\r
2885         }\r
2886         else\r
2887         {\r
2888                 __pFindWordPrev->SetEnabled(true);\r
2889         }\r
2890         __pFindWordPrev->Invalidate(false);\r
2891         __pFindWordNext->Invalidate(false);\r
2892         __pFindWordCountLabel->Invalidate(false);\r
2893         __pFindWordPanel->Invalidate(true);\r
2894 }\r
2895 void\r
2896 MainForm::OnWebKeypadWillOpen(Tizen::Web::Controls::Web& source)\r
2897 {\r
2898         OnAddressBarKeypadOpened(*__pAddressbar);\r
2899 }\r
2900 \r
2901 void\r
2902 MainForm::OnWebKeypadOpened(Tizen::Web::Controls::Web& source)\r
2903 {\r
2904 \r
2905         if (__pWebViewer != null && __pFooterPanel != null)\r
2906         {\r
2907                 AppLog("MainForm::OnOrientationChanged GetClientAreaBounds().height %d ", GetClientAreaBounds().height);\r
2908                 __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();\r
2909 \r
2910                 if(__pFooterPanel->GetShowState() == false)\r
2911                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, GetClientAreaBounds().height));\r
2912                 else\r
2913                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, __webControlHeight));\r
2914 \r
2915                 //__pWebViewer->SetBounds(Rectangle(0, 82, GetClientAreaBounds().width,webControlHeight));\r
2916         }\r
2917 }\r
2918 \r
2919 void\r
2920 MainForm::OnWebKeypadClosed(Tizen::Web::Controls::Web& source)\r
2921 {\r
2922         OnAddressBarKeypadClosed(*__pAddressbar);\r
2923 }\r
2924 \r
2925 void\r
2926 MainForm::OnTouchDoublePressed(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)\r
2927 {\r
2928         Control* temp = const_cast< Control* >(&source);\r
2929         Header* pHeader = dynamic_cast< Header* >(temp);\r
2930         if (pHeader != null)\r
2931         {\r
2932                 //Header double - clicked\r
2933                 AppLog("Header double clicked");\r
2934         }\r
2935         if(__pFindWordPanel)\r
2936         {\r
2937                 AppLog("MainForm::OnTouchPressed %d",__pFindWordPanel->GetShowState());\r
2938                 ShowFindWordPanel(__pFindWordPanel->GetShowState(), true);\r
2939         }\r
2940 \r
2941 \r
2942         AppLog("MainScene::OnTouchDoublePressed");\r
2943         bool isReaderEnabled = SettingPresentationModel::GetInstance()->IsRunReaderEnabled();\r
2944         if (isReaderEnabled == true)\r
2945         {\r
2946                 if (__pReaderData)\r
2947                 {\r
2948                         delete __pReaderData;\r
2949                         __pReaderData = null;\r
2950                 }\r
2951                 String filePath = Tizen::App::UiApp::GetInstance()->GetAppRootPath();\r
2952                 filePath.Append(L"data/reader.js");\r
2953                 File file;\r
2954                 char buffer[10];\r
2955                 char buffer2[5];\r
2956                 int i;\r
2957                 int readCnt;\r
2958                 result r = E_SUCCESS;\r
2959                 FileAttributes attr;\r
2960 \r
2961                 File::GetAttributes(filePath,attr);\r
2962                 // Creates file\r
2963                 r = file.Construct(filePath, L"r+");\r
2964                 if (IsFailed(r))\r
2965                 {\r
2966                         AppLogDebug("File construct failed with %s", GetErrorMessage(r));\r
2967                         return;\r
2968                 }\r
2969                 char* pScript = new(std::nothrow) char[attr.GetFileSize()+1];\r
2970                 if(pScript == null)\r
2971                 {\r
2972                         AppLogDebug("Memory allocation for file failed %s", GetErrorMessage(r));\r
2973                         return;\r
2974                 }\r
2975                 file.Read(pScript,attr.GetFileSize());\r
2976 \r
2977                 AppLogDebug("scipt length %d",strlen(pScript));\r
2978                 String strScript = L"";\r
2979                 strScript.Append(pScript);\r
2980                 __pReaderData = __pWebViewer->EvaluateJavascriptN(strScript);\r
2981                 if (!__pReaderData)\r
2982                 {\r
2983                         AppLog("MainScene::data is null Error :%s",GetErrorMessage(GetLastResult()));\r
2984                         return;\r
2985                 }\r
2986                 AppLogDebug("evaluateJavascript result %s , __pReaderData %ls",GetErrorMessage(GetLastResult()),__pReaderData->GetPointer());\r
2987                 if (__pReaderData->CompareTo(L"undefined") != 0 && __pReaderData->CompareTo(L"") != 0)\r
2988                 {\r
2989                         __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_READER);\r
2990                 }\r
2991                 delete[] pScript;\r
2992         }\r
2993 }\r
2994 \r
2995 void MainForm::OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)\r
2996 {\r
2997         AppLog("MainForm::OnTouchLongPressed");\r
2998 \r
2999         if (__pHitElementResult != null)\r
3000         {\r
3001                 delete __pHitElementResult;\r
3002                 __pHitElementResult = null;\r
3003         }\r
3004 \r
3005         if (__pWebViewer != null)\r
3006         {\r
3007                 AppLog("MainForm::OnTouchLongPressed web not null");\r
3008                 __pHitElementResult = __pWebViewer->GetElementByPointN(currentPosition);\r
3009         }\r
3010 \r
3011         if (__pHitElementResult == null)\r
3012         {\r
3013                 return;\r
3014         }\r
3015 \r
3016         if (__pHitElementResult->HasImage() == true)\r
3017         {\r
3018                 InitImageContextMenu(currentPosition);\r
3019                 __pImageMenu->SetShowState(true);\r
3020                 __pImageMenu->Show();\r
3021                 __pImageMenu->Invalidate(true);\r
3022         }\r
3023         else\r
3024         {\r
3025                 String tagName = __pHitElementResult->GetTagName();\r
3026                 String type = __pHitElementResult->GetAttributeValue("type");\r
3027                 String value = __pHitElementResult->GetAttributeValue(L"value");\r
3028                 String innerHtml = __pHitElementResult->GetAttributeValue(L"innerHTML");\r
3029 \r
3030                 __currentSelectedStr.Clear();\r
3031                 __currentSelectedStr = __pWebViewer->GetTextFromBlock();\r
3032 \r
3033                 if (((tagName.CompareTo(L"INPUT") == 0)  || tagName.CompareTo(L"TEXTAREA") == 0) &&  value.GetLength() == 0 && innerHtml.GetLength() == 0)\r
3034                 {\r
3035                         AppLog("MainForm::OnWebPageBlockSelected show paste option");\r
3036 \r
3037                         InitSelectTextContextMenu(currentPosition,true, true);\r
3038                         __pImageMenu->SetShowState(true);\r
3039                         __pImageMenu->Show();\r
3040                         __pImageMenu->Invalidate(true);\r
3041                 }\r
3042                 __pWebViewer->SetBlockSelectionPosition(currentPosition);\r
3043 \r
3044         }\r
3045         __inputEventToBeSupressed = true;\r
3046 }\r
3047 \r
3048 void\r
3049 MainForm::OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)\r
3050 {\r
3051         AppLog("MainForm::OnTouchReleased");\r
3052 \r
3053         HitElementResult* pHitElement = __pWebViewer->GetElementByPointN(currentPosition);\r
3054         if(pHitElement != null && pHitElement->HasUrl() == true && __inputEventToBeSupressed == true)\r
3055         {\r
3056                 __pWebViewer->ConsumeInputEvent();\r
3057         }\r
3058         if(pHitElement != null)\r
3059         {\r
3060                 delete pHitElement;\r
3061         }\r
3062         __inputEventToBeSupressed = false;\r
3063 }\r
3064 \r
3065 void\r
3066 MainForm::OnOrientationChanged (const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)\r
3067 {\r
3068          int widthContextItem = 0;\r
3069 \r
3070          if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)\r
3071          {\r
3072 \r
3073                  widthContextItem = WIDTH_CONTEXT_MENU_BUTTON_LANDSCAPE;\r
3074          }\r
3075          else\r
3076          {\r
3077                  widthContextItem = WIDTH_CONTEXT_MENU_BUTTON_PORTRAIT;\r
3078          }\r
3079 \r
3080         if( __pItemContext != NULL)\r
3081         {\r
3082                 delete __pItemContext;\r
3083                 __pItemContext = null;\r
3084 \r
3085         }\r
3086 \r
3087         __pItemContext= new(std::nothrow) ListContextItem();\r
3088         __pItemContext->Construct();\r
3089         Bitmap* pBitmapNormal = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete.9.png", widthContextItem,HEIGHT_CONTEXT_MENU_BUTTON);\r
3090         Bitmap* pBitmapPressed = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete_press.9.png", widthContextItem, HEIGHT_CONTEXT_MENU_BUTTON);\r
3091 \r
3092         if (pBitmapNormal != null && pBitmapPressed != null)\r
3093         {\r
3094                 __pItemContext->AddElement(IDA_CONTEXT_ITEM_DELETE, CommonUtil::GetString(L"IDS_BR_SK_DELETE_ABB"), *pBitmapNormal, *pBitmapPressed, pBitmapPressed);\r
3095         }\r
3096 \r
3097         if (pBitmapNormal != null)\r
3098         {\r
3099                 delete pBitmapNormal;\r
3100         }\r
3101 \r
3102         if (pBitmapPressed != null)\r
3103         {\r
3104                 delete pBitmapPressed;\r
3105         }\r
3106 \r
3107 \r
3108         if (__pFindWordPanel != null && __pFindWordPanel->GetShowState() == true)\r
3109         {\r
3110                 __pFindWordPanel->SetBounds(0,0,GetClientAreaBounds().width,__pFindWordPanel->GetHeight());\r
3111                 __pFindWordControl->SetBounds(0,0, __pFindWordPanel->GetWidth(), __pFindWordPanel->GetHeight());\r
3112                 __pFindWordControl->SetShowState(true);\r
3113                 __pFindWordControl->Invalidate(true);\r
3114                 __pFindWordPanel->SetShowState(true);\r
3115                 __pFindWordPanel->Invalidate(true);\r
3116         }\r
3117 \r
3118         if (__pWebViewer != null && __pFooterPanel != null)\r
3119         {\r
3120                 AppLog("MainForm::OnOrientationChanged GetClientAreaBounds().height %d ", GetClientAreaBounds().height);\r
3121                 __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();\r
3122 \r
3123                 if(__pFooterPanel->GetShowState() == false)\r
3124                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, GetClientAreaBounds().height));\r
3125                 else\r
3126                         __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, __webControlHeight));\r
3127                 __pWebViewer->Invalidate(true);\r
3128 \r
3129                 //__pWebViewer->SetBounds(Rectangle(0, 82, GetClientAreaBounds().width,webControlHeight));\r
3130         }\r
3131         if (__pAddressbar != null)\r
3132         {\r
3133                 __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));\r
3134                 __pAddressbar->SetAddressbarMode(__pAddressbar->GetAddressbarMode());\r
3135                 __pAddressbar->UpdateFaviconBitmap(SettingPresentationModel::GetInstance()->GetPrivateOn());\r
3136         }\r
3137         if (__pFindWordBgLabel != null)\r
3138         {\r
3139                 //              __pFindWordBgLabel->SetSize(GetClientAreaBounds().width,GetClientAreaBounds().height);\r
3140                 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_search_input_field_bg.9.png", __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());\r
3141                 if (pBitmap != null)\r
3142                 {\r
3143                         __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);\r
3144                         delete pBitmap;\r
3145                 }\r
3146         }\r
3147         if (__pFooterPanel /*&& __pFooterPanel->GetShowState() == true*/)\r
3148         {\r
3149                 AppLog("__pFooterPanel->GetShowState() is true");\r
3150                 InitFooter();\r
3151         }\r
3152         InitAddressbar();\r
3153 \r
3154         if(__pMoreButton && __pMenu)\r
3155         {\r
3156                 Point p = Point(__pMoreButton->GetX() + __pMoreButton->GetWidth() / 2, GetBounds().height - __pMoreButton->GetHeight());\r
3157                 __pMenu->SetAnchorPosition(p);\r
3158                 __pMenu->Invalidate(true);\r
3159         }\r
3160 \r
3161         if (__pFooterPanel)\r
3162         {\r
3163                 __pFooterPanel->Invalidate(true);\r
3164         }\r
3165         String homePage = SettingPresentationModel::GetInstance()->GetHomepage();\r
3166         if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)\r
3167         {\r
3168                 InitMostVisitedSitesView(orientationStatus);\r
3169         }\r
3170 \r
3171         if(__pMostVisitedListView != null && __pAddressbar != null && __pFooterPanel != null)\r
3172         {\r
3173                 __pMostVisitedListView->SetBounds(__pAddressbar->GetX(),__pAddressbar->GetY()+__pAddressbar->GetHeight(),GetClientAreaBounds().width,GetClientAreaBounds().height - __pAddressbar->GetHeight()- __pFooterPanel->GetHeight());\r
3174         }\r
3175 \r
3176         AppLog("OnOrientationChanged 0");\r
3177         if (__pArticleReaderPanel != null)\r
3178         {\r
3179                 if (__pArticleReaderPanel->GetShowState() == true)\r
3180                 {\r
3181                         __pArticleReaderPanel->SetBounds((GetClientAreaBounds().width - __pArticleReaderPanel->GetWidth())/2,(GetClientAreaBounds().height - __pArticleReaderPanel->GetHeight())/2, __pArticleReaderPanel->GetWidth(), __pArticleReaderPanel->GetHeight());\r
3182 \r
3183                         if (__pBlankPanel != null)\r
3184                                 __pBlankPanel->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height);\r
3185 \r
3186                         if (__pWebReader != null)\r
3187                         {\r
3188                                 __pWebReader->SetBounds(Rectangle(2,2, __pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight() - 96));\r
3189                         }\r
3190                         Bitmap* pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());\r
3191                         Bitmap* pSrcBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bottom_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());\r
3192 \r
3193                         if ( pBitmap != null && pSrcBitmap != null)\r
3194                         {\r
3195                                 AppLog("CreateReaderPanel ninepatchbitmap found");\r
3196                                 pBitmap->Merge(Point(0,__pArticleReaderPanel->GetHeight() - 96),*pSrcBitmap,Rectangle(0,0,pSrcBitmap->GetWidth(),pSrcBitmap->GetHeight()));\r
3197                         }\r
3198 \r
3199                         __pArticleReaderLabel->SetBounds(Rectangle(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight()));\r
3200                         __pArticleReaderLabel->SetBackgroundBitmap(*pBitmap);\r
3201                         if (pBitmap != null)\r
3202                         {\r
3203                                 delete pBitmap;\r
3204                                 pBitmap = null;\r
3205                         }\r
3206                         if (pSrcBitmap != null)\r
3207                         {\r
3208                                 delete pSrcBitmap;\r
3209                                 pSrcBitmap = null;\r
3210                         }\r
3211                 }\r
3212         }\r
3213         Invalidate(true);\r
3214         if(__pAddressbar != null)\r
3215         {\r
3216                 __pAddressbar->OrientationChanged();\r
3217         }\r
3218 }\r
3219 \r
3220 void\r
3221 MainForm::OnSettingsChange(int settingvalue)\r
3222 {\r
3223         AppLogDebug("MainForm::OnSettingsChange entered");\r
3224         if (__pWebViewer == null)\r
3225         {\r
3226                 AppLogDebug("Webviewer is not initialized yet.");\r
3227                 return;\r
3228         }\r
3229         if (settingvalue == (int) REGISTRY_SETTING_DEFAULT_VIEW)\r
3230         {\r
3231                 WebSetting settings = __pWebViewer->GetSetting();\r
3232                 if (SettingPresentationModel::GetInstance()->GetDefaultView().CompareTo(CommonUtil::GetString(L"IDS_BR_BODY_FIT_TO_WIDTH")) == 0)\r
3233                 {\r
3234                         settings.SetAutoFittingEnabled(true);\r
3235                 }\r
3236                 else if (SettingPresentationModel::GetInstance()->GetDefaultView().CompareTo(CommonUtil::GetString(L"IDS_BR_BODY_READABLE")) == 0)\r
3237                 {\r
3238                         settings.SetAutoFittingEnabled(false);\r
3239                 }\r
3240                 __pWebViewer->SetSetting(settings);\r
3241         }\r
3242         else if (settingvalue == (int) REGISTRY_SETTING_RUN_JAVASCRIPT)\r
3243         {\r
3244                 WebSetting settings = __pWebViewer->GetSetting();\r
3245                 settings.SetJavascriptEnabled(SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled());\r
3246                 __pWebViewer->SetSetting(settings);\r
3247         }\r
3248         else if (settingvalue == (int) REGISTRY_SETTING_DISPLAY_IMAGES)\r
3249         {\r
3250                 WebSetting settings = __pWebViewer->GetSetting();\r
3251                 settings.SetAutoImageLoadEnabled(SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());\r
3252                 __pWebViewer->SetSetting(settings);\r
3253         }\r
3254         else if (settingvalue == (int) REGISTRY_SETTING_BLOCK_POPUP)\r
3255         {\r
3256                 WebSetting settings = __pWebViewer->GetSetting();\r
3257                 settings.SetJavaScriptPopupEnabled(SettingPresentationModel::GetInstance()->IsBlockPopUp());\r
3258                 __pWebViewer->SetSetting(settings);\r
3259         }\r
3260         else if (settingvalue == (int) REGISTRY_SETTING_ACCEPT_COOKIES)\r
3261         {\r
3262                 if (__pWebViewer)\r
3263                 {\r
3264                         __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());\r
3265                 }\r
3266         }\r
3267 \r
3268         else if (settingvalue == (int) REGISTRY_SETTING_SHOW_SECURITY_WARNINGS)\r
3269         {\r
3270                 WebSetting settings = __pWebViewer->GetSetting();\r
3271                 if (SettingPresentationModel::GetInstance()->IsSecurityWarningsEnabled() == true)\r
3272                 {\r
3273                         settings.SetCertificateErrorHandlingMode(WEB_CERTIFICATE_ERROR_HANDLING_MODE_USER_CONFIRM);\r
3274                 }\r
3275                 else\r
3276                 {\r
3277                         settings.SetCertificateErrorHandlingMode(WEB_CERTIFICATE_ERROR_HANDLING_MODE_CONTINUE);\r
3278                 }\r
3279                 __pWebViewer->SetSetting(settings);\r
3280         }\r
3281         else if (settingvalue == (int) REGISTRY_SETTING_READER_FONT_SIZE)\r
3282         {\r
3283                 if (__pWebReader)\r
3284                 {\r
3285                         AppLogDebug("IntMainForm fontsize Changed to %d",SettingPresentationModel::GetInstance()->GetReaderFontSize());\r
3286                         WebSetting settings = __pWebReader->GetSetting();\r
3287                         settings.SetFontSize(SettingPresentationModel::GetInstance()->GetReaderFontSize());\r
3288                         __pWebReader->SetSetting(settings);\r
3289                 }\r
3290         }\r
3291 }\r
3292 \r
3293 void\r
3294 MainForm::OnSettingsReset()\r
3295 {\r
3296         if (__pWebViewer)\r
3297         {\r
3298                 __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());\r
3299                 __pWebViewer->SetSetting(SettingPresentationModel::GetInstance()->GetWebSettings());\r
3300         }\r
3301 }\r
3302 \r
3303 void\r
3304 MainForm::OnClearCache()\r
3305 {\r
3306         result r = E_SUCCESS;\r
3307 \r
3308         if (__pWebViewer != NULL)\r
3309         {\r
3310                 r = __pWebViewer->ClearCache();\r
3311                 if (r == E_SUCCESS)\r
3312                 {\r
3313                         AppLogDebug("Cache cleared success");\r
3314                 }\r
3315                 else\r
3316                 {\r
3317                         AppLogDebug("Cache cleared fail");\r
3318                 }\r
3319         }\r
3320 }\r
3321 \r
3322 void\r
3323 MainForm::OnClearCookie()\r
3324 {\r
3325         result r = E_SUCCESS;\r
3326 \r
3327         if (__pWebViewer != NULL)\r
3328         {\r
3329                 __pWebViewer->ClearCookie();\r
3330         }\r
3331         if (r == E_SUCCESS)\r
3332         {\r
3333                 AppLogDebug("Cookie cleared success");\r
3334         }\r
3335         else\r
3336         {\r
3337                 AppLogDebug("Cache cleared fail");\r
3338         }\r
3339 }\r
3340 \r
3341 double\r
3342 MainForm::findDistance(int x1,int y1,int x2, int y2)\r
3343 {\r
3344         int deltaX = Math::Abs(x2 - x1);\r
3345         int deltaY = Math::Abs(y2 - y1);\r
3346         double num = deltaX*deltaX + deltaY*deltaY;\r
3347 \r
3348         if (num >= 0)\r
3349         {\r
3350                 double x = num;\r
3351                 int i;\r
3352                 for (i = 0; i < 20; i++)\r
3353                 {\r
3354                         x = (((x*x)+ num)/(2*x));\r
3355                 }\r
3356                 return num;\r
3357         }\r
3358         else\r
3359         {\r
3360                 return 0.0;\r
3361         }\r
3362 }\r
3363 \r
3364 void\r
3365 MainForm::OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)\r
3366 {\r
3367         if(__pFindWordPanel)\r
3368         {\r
3369                 AppLog("MainForm::OnTouchPressed %d",__pFindWordPanel->GetShowState());\r
3370                 ShowFindWordPanel(__pFindWordPanel->GetShowState(), true);\r
3371         }\r
3372 \r
3373         Touch touch;\r
3374         IList* pList = null;\r
3375         pList = touch.GetTouchInfoListN(source);\r
3376 \r
3377         if (pList != null)\r
3378         {\r
3379                 int count = pList->GetCount();\r
3380                 if (count == 1)\r
3381                 {\r
3382                         TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));\r
3383                         __touchPoint1 = pTouchInfo->position;\r
3384 \r
3385                         if (__pAddressbar != null)\r
3386                         {\r
3387                                 if (__pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_LOADING_COMPLETE && __pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_LOADING)\r
3388                                 {\r
3389                                         if (__pAddressbar->GetAddressbarMode() == ADDRESSBAR_MODE_EDIT)\r
3390                                         {\r
3391                                                 __pAddressbar->SaveAddressbarEditText();\r
3392                                         }\r
3393                                         __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);\r
3394                                 }\r
3395 \r
3396                                 __pAddressbar->Invalidate(true);\r
3397                         }\r
3398                 }\r
3399                 else if (count == 2)\r
3400                 {\r
3401                         AppLogDebug("MainForm::OnTouchPressed count is two");\r
3402                         TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));\r
3403                         __touchPoint1 = pTouchInfo->position;\r
3404 \r
3405                         pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(1));\r
3406                         __touchPoint2 = pTouchInfo->position;\r
3407                 }\r
3408         }\r
3409         if( pList != NULL)\r
3410 \r
3411         {\r
3412                 pList->RemoveAll(true);\r
3413                 delete pList;\r
3414         }\r
3415         return;\r
3416 }\r
3417 \r
3418 void\r
3419 MainForm::OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)\r
3420 {\r
3421         AppLog("Start MainForm::OnTouchMoved MoveUiControls");\r
3422         if(__pFindWordPanel)\r
3423         {\r
3424                 AppLog("MainForm::OnTouchPressed %d",__pFindWordPanel->GetShowState());\r
3425                 ShowFindWordPanel(__pFindWordPanel->GetShowState(), true);\r
3426         }\r
3427 \r
3428         if (__pFindWordEditField != null)\r
3429         {\r
3430                 __pFindWordEditField->HideKeypad();\r
3431         }\r
3432 \r
3433         if (__pAddressbar->GetAddressbarMode() == ADDRESSBAR_MODE_EDIT)\r
3434         {\r
3435                 return;\r
3436         }\r
3437         static int Count=0;\r
3438         Touch touch;\r
3439         IList* pList = null;\r
3440         pList = touch.GetTouchInfoListN(source);\r
3441 \r
3442         if (pList != null)\r
3443         {\r
3444                 int count = pList->GetCount();\r
3445                 if (count == 1)\r
3446                 {\r
3447                         AppLogDebug("MainForm::OnTouchMoved count 1");\r
3448                         TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));\r
3449 \r
3450                         if( pTouchInfo == NULL )\r
3451                         {\r
3452                                 return;\r
3453                         }\r
3454                         pTouchInfo->position.y += __pWebViewer->GetY();\r
3455                         AppLog("MainForm::OnTouchMoved MoveUiControls %d,%d",pTouchInfo->position.x,pTouchInfo->position.y);\r
3456 \r
3457                         if (__isLoaded == false)\r
3458                                 return;\r
3459 \r
3460                         __distanceMoved = pTouchInfo->position.y - __touchPoint1.y;\r
3461                         __touchPoint1 = pTouchInfo->position;\r
3462 \r
3463                         // move the address bar and web control according to distance moved\r
3464                         MoveUiControls();\r
3465                 }\r
3466                 else if (count == 2)\r
3467                 {\r
3468                         AppLogDebug("MainForm::OnTouchMoved count 2");\r
3469 \r
3470                         if(Count == 10)\r
3471                         {\r
3472                                 TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));\r
3473 \r
3474                                 if( pTouchInfo == NULL )\r
3475                                 {\r
3476                                         return;\r
3477                                 }\r
3478                                 Point firstPoint = pTouchInfo->position;\r
3479 \r
3480                                 pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(1));\r
3481                                 if( pTouchInfo == NULL )\r
3482                                 {\r
3483                                         return;\r
3484                                 }\r
3485                                 Point secondPoint = pTouchInfo->position;\r
3486 \r
3487                                 if (__touchPoint1 == Point(-1,-1) || __touchPoint2 == Point(-1,-1))\r
3488                                 {\r
3489                                         __touchPoint1 = firstPoint;\r
3490                                         __touchPoint2 = secondPoint;\r
3491                                         delete pList;\r
3492                                         return;\r
3493                                 }\r
3494 \r
3495                                 int currX1 = firstPoint.x;\r
3496                                 int currY1 = firstPoint.y;\r
3497                                 int currX2 = secondPoint.x;\r
3498                                 int currY2 = secondPoint.y;\r
3499 \r
3500                                 double prevDist = findDistance(__touchPoint1.x,__touchPoint1.y,__touchPoint2.x,__touchPoint2.y);\r
3501                                 double dist = findDistance(currX1, currY1, currX2, currY2);\r
3502                                 __distanceMoved = prevDist - dist;\r
3503 \r
3504                                 __touchPoint1 = firstPoint;\r
3505                                 __touchPoint2 = secondPoint;\r
3506                                 MoveUiControls();\r
3507                                 Count = 0;\r
3508                         }\r
3509                 }\r
3510                 Count++;\r
3511                 delete pList;\r
3512         }\r
3513 \r
3514 }\r
3515 \r
3516 void\r
3517 MainForm::MoveUiControls()\r
3518 {\r
3519         __adressPanelPosition.y =  __adressPanelPosition.y + __distanceMoved;\r
3520         if(__pAddressbar == NULL)\r
3521         {\r
3522                 return;\r
3523         }\r
3524 \r
3525         if (__adressPanelPosition.y > 0)\r
3526         {\r
3527                 __adressPanelPosition.y = 0;\r
3528                 __webControlPosition.y = __pAddressbar->GetHeight() - 12;\r
3529         }\r
3530         else if (__adressPanelPosition.y < (0-(__pAddressbar->GetHeight() - 12)))  // -12 is for the progress label\r
3531         {\r
3532                 __adressPanelPosition.y = 0-(__pAddressbar->GetHeight() - 12);\r
3533                 __webControlPosition.y = 0;\r
3534         }\r
3535         else\r
3536         {\r
3537                 __webControlPosition.y = __adressPanelPosition.y + (__pAddressbar->GetHeight() - 12);\r
3538         }\r
3539 \r
3540         AppLogDebug("__adressPanelPosition.y = %d, __webControlPosition.y = %d", __adressPanelPosition.y, __webControlPosition.y);\r
3541 \r
3542         __pAddressbar->SetBounds(0,__adressPanelPosition.y,__pAddressbar->GetWidth(),__pAddressbar->GetHeight());\r
3543         __pAddressbar->Invalidate(false);\r
3544 \r
3545         if (__pWebViewer != NULL)\r
3546         {\r
3547                 if(__pFooterPanel->GetShowState() == true)\r
3548                         __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();\r
3549                 else\r
3550                         __webControlHeight = GetClientAreaBounds().height;\r
3551                 __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, __webControlHeight));\r
3552                 __pWebViewer->Invalidate(false);\r
3553         }\r
3554 }\r
3555 \r
3556 void\r
3557 MainForm::OnTextValueChanged (const Tizen::Ui::Control &source)\r
3558 {\r
3559         if (__pFindWordEditField != null)\r
3560         {\r
3561                 __currentSearchStr = __pFindWordEditField->GetText();\r
3562                 __pFindWordNext->SetEnabled(false);\r
3563                 __pFindWordPrev->SetEnabled(false);\r
3564                 __pFindWordNext->Invalidate(true);\r
3565                 __pFindWordPrev->Invalidate(true);\r
3566                 __pFindWordCountLabel->SetText(L"0/0");\r
3567                 __pFindWordCountLabel->Invalidate(true);\r
3568         }\r
3569         AppLog("__currentSearchStr %ls",__currentSearchStr.GetPointer());\r
3570         if (__currentSearchStr.GetLength() > 0)\r
3571         {\r
3572                 StartWordSearch();\r
3573         }\r
3574         else\r
3575         {\r
3576                 __currentSearchStr = L"aaaaaaaabbbbbbbccccccc";\r
3577                                 StartWordSearch();\r
3578                 AppLogDebug("Enter something");\r
3579         }\r
3580 }\r
3581 \r
3582 result\r
3583 MainForm::InitMostVisitedSitesPanel(Tizen::Ui::OrientationStatus orientationStatus)\r
3584 {\r
3585         return E_SUCCESS;\r
3586 \r
3587 }\r
3588 \r
3589 result\r
3590 MainForm::InitMostVisitedSitesView(Tizen::Ui::OrientationStatus orientationStatus)\r
3591 {\r
3592         if(__pWebViewer != null)\r
3593                 return E_SUCCESS;\r
3594 \r
3595         AppLog("MainForm::InitMostVisitedSitesView");\r
3596         result r = E_SUCCESS;\r
3597 \r
3598 \r
3599         if (__pWebViewer != null && __pMostVisitedListView != null)\r
3600         {\r
3601                 return E_SUCCESS;\r
3602         }\r
3603 \r
3604         if (__pMostVisitedListView != null)\r
3605         {\r
3606                 RemoveControl(*__pMostVisitedListView);\r
3607         }\r
3608         if(__pMostVisitedSites != null)\r
3609         {\r
3610                 __pMostVisitedSites->RemoveAll(true);\r
3611         }\r
3612 \r
3613         HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);\r
3614 \r
3615         __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();\r
3616         __pMostVisitedListView = new(std::nothrow) ListView();\r
3617         if(__pFooterPanel->GetShowState() == false)\r
3618         {\r
3619                 r = __pMostVisitedListView->Construct(Tizen::Graphics::Rectangle(0,__pAddressbar->GetBounds().y + __pAddressbar->GetHeight() , GetClientAreaBounds().width, GetClientAreaBounds().height),true,false);\r
3620         }\r
3621         else\r
3622         {\r
3623                 r = __pMostVisitedListView->Construct(Tizen::Graphics::Rectangle(0,__pAddressbar->GetBounds().y + __pAddressbar->GetHeight() , GetClientAreaBounds().width, __webControlHeight),true,false);\r
3624         }\r
3625 \r
3626         if (r != E_SUCCESS)\r
3627         {\r
3628                 delete __pMostVisitedListView;\r
3629                 AppLogDebug("Addressbar init failed with %s", GetErrorMessage(r));\r
3630                 return r;\r
3631         }\r
3632         __pMostVisitedListView->SetItemProvider(*this);\r
3633         __pMostVisitedListView->AddListViewItemEventListener(*this);\r
3634         __pMostVisitedListView->SetTextOfEmptyList(CommonUtil::GetString(L"IDS_BR_BODY_NO_RECENTLY_VISITED_SITES"));\r
3635         AddControl(*__pMostVisitedListView);\r
3636         AppLog("__pMostVisitedSitesPanel addcontrol %s",GetErrorMessage(r));\r
3637         if(__pFooterPanel->GetShowState() == false)\r
3638                 __pMostVisitedListView->SetBounds(Tizen::Graphics::Rectangle(0,__pAddressbar->GetBounds().y + __pAddressbar->GetHeight()-12 , GetClientAreaBounds().width, GetClientAreaBounds().height - __pAddressbar->GetHeight() + 14));\r
3639         else\r
3640                 __pMostVisitedListView->SetBounds(Tizen::Graphics::Rectangle(0,__pAddressbar->GetBounds().y + __pAddressbar->GetHeight()-12 , GetClientAreaBounds().width, GetClientAreaBounds().height - __pAddressbar->GetHeight() - __pFooterPanel->GetHeight() + 14));\r
3641 \r
3642         __pMostVisitedListView->UpdateList();\r
3643 \r
3644         return E_SUCCESS;\r
3645 \r
3646 }\r
3647 \r
3648 String\r
3649 MainForm::GetImagePath(void)\r
3650 {\r
3651 \r
3652         String str;\r
3653         String formattedTime;\r
3654         DateTime currentTime;\r
3655         LocaleManager localManager;\r
3656         SystemTime::GetCurrentTime(TIME_MODE_WALL, currentTime);\r
3657 \r
3658         localManager.Construct();\r
3659         Locale locale = localManager.GetSystemLocale();\r
3660         //Locale locale(LANGUAGE_ENG, COUNTRY_US);\r
3661 \r
3662         // Get date formatter\r
3663         DateTimeFormatter* pTimeFormatter = DateTimeFormatter::CreateDateTimeFormatterN(locale, DATE_TIME_STYLE_DEFAULT);\r
3664 \r
3665         if (pTimeFormatter)\r
3666         {\r
3667                 pTimeFormatter->Format(currentTime, formattedTime);\r
3668         }\r
3669 \r
3670         AppLog("current time stamp is %ls", formattedTime.GetPointer());\r
3671         String delim(L" :");\r
3672         StringTokenizer strTok(formattedTime, delim);\r
3673         String token;\r
3674         String imageName;\r
3675         String str1("GMT+00");\r
3676         while (strTok.HasMoreTokens())\r
3677         {\r
3678                 strTok.GetNextToken(token); // Osp, StringTokenizer, Sample, code\r
3679                 if(token.Equals(str1))\r
3680                         break;\r
3681                 AppLog("token is %ls", token.GetPointer());\r
3682                 imageName.Append(token);\r
3683         }\r
3684         return imageName;\r
3685 \r
3686 }\r
3687 \r
3688 void MainForm::UpdateImageContent(ByteBuffer* aBuffer, String imageName)\r
3689 {\r
3690         result r = E_FAILURE;\r
3691         AppLog("Content manager 1");\r
3692         ContentId contentId;\r
3693         ContentManager contentManager;\r
3694         r = contentManager.Construct();\r
3695         if(IsFailed(r))\r
3696         {\r
3697                 AppLog("Content manager update content result %s" ,GetErrorMessage(r));\r
3698                 return;\r
3699         }\r
3700         Tizen::Base::String contentPath = Tizen::System::Environment::GetMediaPath() + L"Downloads/";\r
3701         contentPath.Append(imageName);\r
3702         contentPath.Append(".jpg");\r
3703         contentId = contentManager.CreateContent(*aBuffer, contentPath);\r
3704         AppLog("Content manager update content result %s" ,GetErrorMessage(GetLastResult()));\r
3705 }\r