2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
17 //!Internet MainForm class
19 *@brief: The %MainForm provides the common functionalities for the Main View of the Browser including the addressbar,
20 * loading,handling events etc.
24 #include <FGraphics.h>
29 #include "IntBookmarkData.h"
30 #include "IntBookmarkPresentationModel.h"
31 #include "IntCommonLib.h"
32 #include "IntFaviconManager.h"
33 #include "IntMainForm.h"
34 #include "IntNotificationPanel.h"
35 #include "IntSceneRegister.h"
36 #include "IntSettingPresentationModel.h"
38 using namespace Tizen::App;
39 using namespace Tizen::Base;
40 using namespace Tizen::Base::Collection;
41 using namespace Tizen::Base::Runtime;
42 using namespace Tizen::Base::Utility;
43 using namespace Tizen::Graphics;
44 using namespace Tizen::Io;
45 using namespace Tizen::Locales;
46 using namespace Tizen::Media;
47 using namespace Tizen::Ui;
48 using namespace Tizen::Ui::Controls;
49 using namespace Tizen::Content;
50 using namespace Tizen::Ui::Scenes;
51 using namespace Tizen::System;
52 using namespace Tizen::Web;
53 using namespace Tizen::Web::Controls;
55 static const wchar_t* IDB_SEARCH_INPUT_FIELD_BG = L"I01_toolbar_input_field.9.png";
56 static const wchar_t* IDB_FINDWORD_INPUT_FIELD_BG = L"I01_toolbar_input_field_findword.9.png";
57 static const wchar_t* IDB_BTN_BACK = L"I01_icon_Back.png";
58 static const wchar_t* IDB_BTN_BACK_PRESS = L"I01_icon_Back_press.png";
59 static const wchar_t* IDB_CONTRLBAR_ICON_BOOKMARK = L"I01_search_list_icon_favorite.png";
60 static const wchar_t* IDB_CONTRLBAR_ICON_BOOKMARK_PRESS = L"I01_search_list_icon_favorite_press.png";
61 static const wchar_t* IDB_CONTRLBAR_ICON_MORE = L"I01_icon_more.png";
62 static const wchar_t* IDB_CONTRLBAR_ICON_MORE_PRESS = L"I01_icon_more_press.png";
63 static const wchar_t* IDB_CONTRLBAR_ICON_NEW_WINDOW = L"I01_icon_plus.png";
64 static const wchar_t* IDB_CONTRLBAR_ICON_NEW_WINDOW_PRESS = L"I01_icon_plus_press.png";
65 static const wchar_t* IDB_CONTROLBAR_ICON_CREATE_DISABLE = L"I01_controlbar_icon_create_disable.png";
66 static const wchar_t* IDB_BUTTON_ON = L"00_button_on.png";
67 static const wchar_t* IDB_BUTTON_OFF = L"00_button_off.png";
68 static const wchar_t* IDB_ICON_BOOKMARK_OFF_TEMP = L"I01_icon_bookmark_off_temp.png";
69 static const wchar_t* IDB_ICON_BOOKMARK_ON_TEMP = L"I01_icon_bookmark_on_temp.png";
70 static const wchar_t* IDS_TIZEN_SERVICE = L"tizen-service";
71 static const wchar_t* IDS_APPID = L"AppID";
72 static const wchar_t* IDB_TITLE_PROGRESS_BAR_BG = L"I01_title_progress_bar_bg.png";
73 static const wchar_t* IDB_TITLE_PROGRESS_BAR = L"I01_title_progress_bar.png";
75 const int IDA_BACKBTN_CLICKED = 101;
76 const int IDA_BOOKMARKBTN_CLICKED = 102;
77 const int IDA_MOREBTN_CLICKED = 103;
78 const int IDA_MULTIWINDOWBTN_CLICKED = 104;
79 const int IDA_NEWWINDOWBTN_CLICKED = 105;
80 const int IDA_FORWARD_CLICKED = 106;
81 const int IDA_ADDTOBOOKMARK_CLICKED = 107;
82 const int IDA_SHARE_CLICKED = 108;
83 const int IDA_FINDONPAGE_CLICKED = 109;
84 const int IDA_PRIVATEON_CLICKED = 110;
85 const int IDA_SETTINGS_CLICKED = 111;
86 const int IDA_READER_CLOSE_CLICKED = 112;
87 const int IDA_SMALLFONT_BTN_CLICKED = 113;
88 const int IDA_LARGEFONT_BTN_CLICKED = 114;
89 const int IDA_BRIGHTNESS_BTN_CLICKED = 115;
90 const int IDA_HISTORY_CLICKED = 116;
91 const int IDA_ADD_TO_BOOKMARKBTN_CLICKED = 117;
92 const int IDA_ADD_TO_HOME_CLICKED = 118;
93 const int IDA_SAVED_PAGES_CLICKED = 119;
94 const int IDA_DESKTOP_VIEW_CLICKED = 120;
95 const int IDA_SAVE_CLICKED = 121;
97 const int IDA_FINDWORD_SEARCH_CLICKED = 201;
98 const int IDA_FINDWORD_NEXT_CLICKED = 202;
99 const int IDA_FINDWORD_PREV_CLICKED = 203;
100 const int IDA_FINDWORD_CLEAR_CLICKED = 204;
101 const int IDA_FINDWORD_CANCEL_CLICKED = 205;
103 const int IDA_COPY_IMAGE_CLICKED = 206;
104 const int IDA_VIEW_IMAGE_CLICKED = 207;
105 const int IDA_SAVE_IMAGE_CLICKED = 208;
106 const int IDA_SHARE_IMAGE_CLICKED = 209;
108 const int IDA_COPY_TEXT_CLICKED = 210;
109 const int IDA_PASTE_TEXT_CLICKED = 211;
110 const int IDA_FIND_TEXT__CLICKED = 212;
111 const int IDA_SHARE_TEXT_CLICKED = 213;
113 const int IDA_GO_BACK = 214;
114 const int IDA_GO_FORWARD = 215;
115 const int IDA_REFRESH_BTN_CLICKED = 216;
116 const int IDA_STOP_BTN_CLICKED = 217;
117 const int IDA_CLEAR_URL = 218;
119 const int IDA_HYPERLINK_OPEN_CLICKED = 219;
120 const int IDA_HYPERLINK_COPY_LINK_CLICKED = 220;
121 const int IDA_HYPERLINK_SAVE_IMAGE_CLICKED = 222;
122 const int IDA_HYPERLINK_SHARE_IMAGE_CLICKED = 223;
124 const int DEFAULT_PROGRESS_PERCENTAGE = 10;
126 const int MainForm::IDA_FORMAT_BITMAP = 500;
127 const int MainForm::IDA_FORMAT_DELETE_BITMAP = 501;
128 const int MainForm::IDA_FORMAT_TITLE_STRING = 502;
129 const int MainForm::IDA_FORMAT_URL_STRING = 503;
130 const int MainForm::IDA_CONTEXT_ITEM_DELETE = 504;
132 static const int WIDTH_CONTEXT_MENU_BUTTON_PORTRAIT = 336;
133 static const int WIDTH_CONTEXT_MENU_BUTTON_LANDSCAPE = 800;
134 static const int HEIGHT_CONTEXT_MENU_BUTTON = 72;
136 MainForm::MainForm(void)
138 __isLongPressedDone = false;
139 __pAddressbar = null;
140 // __pMostVisitedSitesPanel = null;
141 __pMostVisitedListView = null;
142 __pFooterPanel = null;
143 __pHitElementResult = null;
144 __pWindowInfo = null;
148 __pFindWordControl = null;
150 __pFindWordBgLabel = null;
151 __pFindWordEditField = null;
152 __pFindWordClear = null;
153 __pFindWordCountLabel = null;
154 __pFindWordNext = null;
155 __pFindWordPrev = null;
156 __previousZoomLevel = 1.0;
158 __currentAddMode = ADDRESSBAR_MODE_LOADING_COMPLETE;
161 __currentSearchStr = L"";
162 __currentSelectedStr = L"";
163 __maxOccurrances = 0;
164 __currentWordIndex = 0;
167 __inputEventToBeSupressed = false;
168 __isLoadingData = false;
169 __isLoadingCompleted = false;
170 __progressPercentage = 0;
171 __touchPoint1 = Point(-1,-1);
172 __touchPoint2 = Point(-1,-1);
174 // __pReaderPopup = null;
175 __pReaderData = null;
177 __pReaderCloseBtn = null;
178 //__pNewWindowButton = null;
179 __pMoreButton = null;
180 __pMultiWindowButton = null;
181 __pArticleReaderPanel = null;
182 __pBlankPanel = null;
183 __pArticleReaderLabel = null;
184 __webControlHeight = 0;
185 __prevAddressBarMode = ADDRESSBAR_MODE_INVALID;
186 __curAddressBarMode = ADDRESSBAR_MODE_INVALID;
187 __pMostVisitedSites = null;
188 __pFooterUrlField = null;
190 __pGoForwardBtn = null;
191 __pRefreshBtn = null;
192 __pProgressbarLabel = null;
193 __pFooterLabel = null;
196 __isWebKeypadOpened = false;
199 MainForm::~MainForm(void)
201 SettingPresentationModel::GetInstance()->RemoveSettingsEventListener(*this);
205 __pAddressbar->SetAddressbarEventListener(null);
207 if (__pReaderData != null)
209 delete __pReaderData;
210 __pReaderData = null;
213 if (__pPopUp != null)
219 if (__pHitElementResult != null)
221 delete __pHitElementResult;
222 __pHitElementResult = null;
225 String* pSelectedScene = NULL;
226 Object* pValue = NULL;
227 MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &pValue);
228 pSelectedScene = (String*) pValue;
230 /*if (pSelectedScene != null)
232 delete pSelectedScene;
234 MultiWindowPresentationModel::SetValue(SELECTED_SCENE_ID, null);*/
238 MainForm::Initialize(void)
240 Construct(L"IDL_FORM");
245 MainForm::OnInitializing(void)
247 AppLog("get client area width = %d",GetClientAreaBounds().width);
248 AppLog("get client area height = %d",GetClientAreaBounds().height);
249 const int WIDTH_CONTEXT_MENU_BUTTON = 336;
250 const int HEIGHT_CONTEXT_MENU_BUTTON = 72;
252 Panel* pFooterPanel = null;
254 __pSaveImage = new Image();
255 __pSaveImage->Construct();
257 // Setup back event listener
258 SettingPresentationModel::GetInstance()->AddSettingsEventListener(*this);
259 SceneManager::GetInstance()->AddSceneEventListener(IDSCN_MAIN_VIEW, *this);
260 AddOrientationEventListener(*this);
261 AppLogDebug(" MainForm::OnInitializing ended");
262 if (__pMostVisitedSites == null)
264 __pMostVisitedSites = new(std::nothrow) ArrayList();
265 __pMostVisitedSites->Construct();
267 HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);
269 __pItemContext= new(std::nothrow) ListContextItem();
270 __pItemContext->Construct();
271 Bitmap* pBitmapNormal = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete.9.png", WIDTH_CONTEXT_MENU_BUTTON,HEIGHT_CONTEXT_MENU_BUTTON);
272 Bitmap* pBitmapPressed = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete_press.9.png", WIDTH_CONTEXT_MENU_BUTTON, HEIGHT_CONTEXT_MENU_BUTTON);
274 if (pBitmapNormal != null && pBitmapPressed != null)
276 __pItemContext->AddElement(IDA_CONTEXT_ITEM_DELETE, CommonUtil::GetString(L"IDS_BR_SK_DELETE_ABB"), *pBitmapNormal, *pBitmapPressed, pBitmapPressed);
279 if (pBitmapNormal != null)
281 delete pBitmapNormal;
284 if (pBitmapPressed != null)
286 delete pBitmapPressed;
289 __pItemContextLandscape= new(std::nothrow) ListContextItem();
290 __pItemContextLandscape->Construct();
291 pBitmapNormal = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete.9.png", WIDTH_CONTEXT_MENU_BUTTON_LANDSCAPE,HEIGHT_CONTEXT_MENU_BUTTON);
292 pBitmapPressed = CommonUtil::GetNinepatchedBitmapN(L"00_button_sweep_delete_press.9.png", WIDTH_CONTEXT_MENU_BUTTON_LANDSCAPE, HEIGHT_CONTEXT_MENU_BUTTON);
294 if (pBitmapNormal != null && pBitmapPressed != null)
296 __pItemContextLandscape->AddElement(IDA_CONTEXT_ITEM_DELETE, CommonUtil::GetString(L"IDS_BR_SK_DELETE_ABB"), *pBitmapNormal, *pBitmapPressed, pBitmapPressed);
299 if (pBitmapNormal != null)
301 delete pBitmapNormal;
304 if (pBitmapPressed != null)
306 delete pBitmapPressed;
313 MainForm::InitAddressbar(void)
315 AppLogDebug("MainForm::InitAddressbar entered");
317 result r = E_SUCCESS;
319 if (__pAddressbar != null)
323 __pAddressbar = new(std::nothrow) Addressbar();
324 AppLog("MainForm::InitAddressbar GetClientAreaBounds().width %d",GetClientAreaBounds().width);
325 r = __pAddressbar->Initialize(Tizen::Graphics::Rectangle(0, 0, GetClientAreaBounds().width, 82));
328 AppLogDebug("Addressbar init failed with %s", GetErrorMessage(r));
331 __pAddressbar->SetAddressbarEventListener(this);
332 AddControl(*__pAddressbar);
333 __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));
334 SetControlAlwaysOnTop(*__pAddressbar, true);
335 __adressPanelPosition = __pAddressbar->GetPosition();
337 AppLogDebug("MainForm::InitAddressbar exit");
343 MainForm::CreateReaderPanel(void)
345 AppLogDebug("CreateReaderPanel() width %d",GetClientAreaBounds().width);
346 result r = E_FAILURE;
348 Button *pSmallFontBtn = null;
349 Button *pLargeFontBtn = null;
351 __pBlankPanel = new (std::nothrow) Panel();
352 __pBlankPanel->Construct(L"IDL_BLANK_PANEL");
354 __pArticleReaderPanel = new (std::nothrow) Panel();
355 __pArticleReaderPanel->Construct(L"IDL_ARTICLE_READER");
357 __pReaderCloseBtn = static_cast<Button*>(__pArticleReaderPanel->GetControl(L"IDC_CLOSE_READER",true));
358 if (__pReaderCloseBtn)
360 AppLogDebug("CreateReaderPanel() 6");
361 __pReaderCloseBtn->AddActionEventListener(*this);
362 __pReaderCloseBtn->SetActionId(IDA_READER_CLOSE_CLICKED);
365 __pWebReader = new (std::nothrow) Web();
366 __pWebReader->Construct(Rectangle(2,2, __pArticleReaderPanel->GetWidth()-2,__pArticleReaderPanel->GetHeight() - 96 -2));
368 settings.SetInputStyle(INPUT_STYLE_OVERLAY);
369 settings.SetFontSize(SettingPresentationModel::GetInstance()->GetReaderFontSize());
371 r = __pWebReader->SetSetting(settings);
373 AppLogDebug("Web setting add failed with %s", GetErrorMessage(r));
376 __pArticleReaderLabel = new Label();
377 __pArticleReaderLabel->Construct(Rectangle(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight()),L"");
379 __pBlankPanel->AddControl(*__pArticleReaderLabel);
380 __pBlankPanel->AddControl(*__pArticleReaderPanel);
381 AddControl(*__pBlankPanel);
383 __pBlankPanel->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height);
384 __pArticleReaderPanel->SetBounds((GetClientAreaBounds().width - __pArticleReaderPanel->GetWidth())/2,(GetClientAreaBounds().height - __pArticleReaderPanel->GetHeight())/2, __pArticleReaderPanel->GetWidth(), __pArticleReaderPanel->GetHeight());
385 __pArticleReaderLabel->SetBounds(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
387 __pArticleReaderPanel->AddControl(*__pWebReader);
388 __pWebReader->SetBounds(Rectangle(2,2, __pArticleReaderPanel->GetWidth()-2,__pArticleReaderPanel->GetHeight() - 96 -2));
389 Bitmap* pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
390 Bitmap* pSrcBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bottom_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
392 if (pBitmap != null && pSrcBitmap != null)
394 pBitmap->Merge(Point(0,__pArticleReaderPanel->GetHeight() - 96),*pSrcBitmap,Rectangle(0,0,pSrcBitmap->GetWidth(),pSrcBitmap->GetHeight()));
396 __pArticleReaderLabel->SetBackgroundBitmap(*pBitmap);
398 pSmallFontBtn = static_cast<Button*>(__pArticleReaderPanel->GetControl(L"IDC_SMALL_FONT",true));
401 pSmallFontBtn->AddActionEventListener(*this);
402 pSmallFontBtn->SetActionId(IDA_SMALLFONT_BTN_CLICKED);
405 pLargeFontBtn = static_cast<Button*>(__pArticleReaderPanel->GetControl(L"IDC_LARGE_FONT",true));
408 pLargeFontBtn->AddActionEventListener(*this);
409 pLargeFontBtn->SetActionId(IDA_LARGEFONT_BTN_CLICKED);
418 if (pSrcBitmap != null)
424 SetControlAlwaysOnTop(*__pBlankPanel, true);
425 //__pBlankPanel->SetControlAlwaysAtBottom(*__pArticleReaderPanel, true);
432 MainForm::InitWebControl()
434 AppLogDebug("MainForm::InitWebControl enter");
435 result r = E_SUCCESS;
436 AppLogDebug("InitWebControl");
438 if (__pAddressbar == null || __pFooterPanel == null)
441 const int Y_WEBCONTROL_POSITION = 0;
442 __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();
443 if (__pMostVisitedListView)
445 __pMostVisitedListView->SetShowState(false);
447 if (__pWebViewer != null)
449 AppLogDebug("Already initialized");
452 __pWebViewer = new(std::nothrow) Web();
453 if(__pWebViewer == NULL)
455 AppLogDebug("Initialization failed");
458 r = __pWebViewer->Construct(Rectangle(0, Y_WEBCONTROL_POSITION, GetClientAreaBounds().width,__webControlHeight));
462 AppLogDebug("Web construct failed with %s", GetErrorMessage(r));
469 r = AddControl(*__pWebViewer);
475 AppLogDebug("Web addcontrol failed with %s", GetErrorMessage(r));
478 __webControlPosition = __pWebViewer->GetPosition();
479 r = __pWebViewer->SetSetting(SettingPresentationModel::GetInstance()->GetWebSettings());
482 AppLogDebug("Web setting add failed with %s", GetErrorMessage(r));
486 __pWebViewer->SetLoadingListener(this);
487 __pWebViewer->SetWebUiEventListener(this);
488 __pWebViewer->SetWebKeypadEventListener(this);
489 __pWebViewer->SetFocus();
490 __pWebViewer->AddTouchEventListener(*this);
492 __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());
493 __pWebViewer->SetTextSearchListener(this);
496 AppLogDebug("MainForm :before return");
498 AppLogDebug("MainForm::InitWebControl Exit");
504 MainForm::OnFocusGained(const Control& source)
506 AppLog("MainForm::OnFocusGained");
510 MainForm::OnFocusLost(const Control& source)
512 AppLog("MainForm::OnFocusLost");
516 MainForm::SetJavascriptEnabled()
518 WebSetting settings = __pWebViewer->GetSetting();
519 settings.SetJavascriptEnabled(SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled());
520 __pWebViewer->SetSetting(settings);
524 MainForm::SetImageLoadEnabled()
526 WebSetting settings = __pWebViewer->GetSetting();
527 settings.SetAutoImageLoadEnabled(SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());
528 __pWebViewer->SetSetting(settings);
532 MainForm::InitFooter(void)
534 AppLogDebug("MainForm::InitFooter entered");
535 Button* pBackButton = null;
536 Button* pBookmarkButton = null;
537 Button* pMultiWindowButton = null;
538 Bitmap *pIconBitmap = null;
539 Bitmap *pBGBitmap = null;
540 Label *pBGLabel = null;
542 if (__pFooterPanel == null)
544 __pFooterPanel = static_cast< Panel* >(GetControl(L"IDC_FOOTER_PANEL", true));
547 if (__pFooterPanel == null)
552 SetControlAlwaysOnTop(*__pFooterPanel, true);
554 __pFooterLabel = static_cast< Label* >(GetControl(L"IDC_FOOTER_LABEL", true));
555 if ( __pFooterLabel == NULL )
559 //__pFooterPanel->SetBackgroundColor(CUSTOM_COLOR_TRANSPARENT);
560 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pFooterLabel->GetWidth(), __pFooterLabel->GetHeight());
563 __pFooterLabel->SetBackgroundBitmap(*pBitmap);
567 __pMultiWindowButton = static_cast< Button* >(GetControl(L"IDC_MULTIWINDOW_BUTTON", true));
569 if ( __pMultiWindowButton == NULL )
574 __pMoreButton = static_cast<Button*>(GetControl(L"IDC_MORE_BUTTON",true));
576 if ( __pMoreButton == NULL )
581 if (__pMultiWindowButton != null)
583 Bitmap* pBitmap = null;
584 Bitmap* pPressedBitmap = null;
585 String imagePath = "I01_toolbar_icon_windows_manager_0";
586 String pressedImagePath = "I01_toolbar_icon_windows_manager_0";
587 int totalCount = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList()->GetCount();
588 imagePath.Append(totalCount);
589 imagePath.Append(".png");
591 pressedImagePath.Append(totalCount);
592 pressedImagePath.Append("_press.png");
594 pBitmap = AppResource::GetInstance()->GetBitmapN(imagePath);
595 pPressedBitmap = AppResource::GetInstance()->GetBitmapN(pressedImagePath);
596 if ( pBitmap == null )
601 Point startPoint = Point((__pMultiWindowButton->GetWidth() - pBitmap->GetWidth())/2,(__pMultiWindowButton->GetHeight() - pBitmap->GetHeight())/2);
604 __pMultiWindowButton->SetNormalBitmap(startPoint, *pBitmap);
605 __pMultiWindowButton->SetPressedBitmap(startPoint, *pPressedBitmap);
610 __pMultiWindowButton->AddActionEventListener(*this);
611 __pMultiWindowButton->SetActionId(IDA_MULTIWINDOWBTN_CLICKED);
616 Bitmap* pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_MORE);
617 Bitmap* pPressedBitmap = AppResource::GetInstance()->GetBitmapN(IDB_CONTRLBAR_ICON_MORE_PRESS);
620 Point startPoint((__pMoreButton->GetWidth() - pBitmap->GetWidth())/2,(__pMoreButton->GetHeight() - pBitmap->GetHeight())/2 );
621 __pMoreButton->SetNormalBitmap(startPoint, *pBitmap);
622 __pMoreButton->SetPressedBitmap(startPoint, *pPressedBitmap);
626 __pMoreButton->AddActionEventListener(*this);
627 __pMoreButton->SetActionId(IDA_MOREBTN_CLICKED);
630 //Add the editfield for url
631 __pFooterUrlField = static_cast<EditField*> (GetControl(L"IDC_URL_EDIT_FIELD",true));
632 if (__pFooterUrlField == NULL)
634 return E_INVALID_KEY;
637 __pFooterUrlField->SetOverlayKeypadCommandButtonVisible(false);
638 __pFooterUrlField->SetKeypadAction(KEYPAD_ACTION_GO);
639 //__pFooterUrlField->AddFocusEventListener(*this);
640 __pFooterUrlField->AddKeypadEventListener(*this);
641 //__pFooterUrlField->AddFocusEventListener(*this);
642 __pFooterUrlField->SetPropagatedTouchEventListener(this);
644 if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
646 __pFooterUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
648 else if (SettingPresentationModel::GetInstance()->GetHomepage().CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) == 0)
650 __pFooterUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_ABOUT_C_BLANK"));
654 //__pUrlField->SetText(SettingPresentationModel::GetInstance()->GetFavoriteURL());
655 __pFooterUrlField->SetGuideText(CommonUtil::GetString(L"IDS_BR_BODY_SEARCH_OR_ENTER_URL"));
659 //Add the go Back Button
660 __pGoBackBtn = static_cast<Button*> (GetControl(L"IDC_PAGEBACK_BUTTON",true));
661 if (__pGoBackBtn == NULL)
663 AppLogDebug("__pGoBackBtn Control not found returning E_INVALID_KEY");
664 return E_INVALID_KEY;
666 __pGoBackBtn->SetActionId(IDA_GO_BACK);
667 __pGoBackBtn->AddActionEventListener(*this);
669 //Add the go forward Button
670 __pGoForwardBtn = static_cast<Button*> (GetControl(L"IDC_PAGEFORWARD_BUTTON",true));
671 if (__pGoForwardBtn == NULL)
673 AppLogDebug("Control not found returning E_INVALID_KEY");
674 return E_INVALID_KEY;
676 __pGoForwardBtn->SetActionId(IDA_GO_FORWARD);
677 __pGoForwardBtn->AddActionEventListener(*this);
678 __pGoForwardBtn->SetEnabled(false);
680 __pRefreshBtn = static_cast<Button*> (GetControl(L"IDC_REFRESH_BUTTON",true));
681 if (__pRefreshBtn == NULL)
683 AppLogDebug("Control not found returning E_INVALID_KEY");
684 return E_INVALID_KEY;
687 __pRefreshBtn->SetActionId(IDA_REFRESH_BTN_CLICKED);
688 __pRefreshBtn->AddActionEventListener(*this);
689 __pRefreshBtn->SetShowState(true);
691 //Add the backround label for displaying progressbar
692 __pProgressbarLabel = static_cast<Label*> (GetControl(L"IDC_PROGRESS_BAR_LABEL",true));
693 if (__pProgressbarLabel == NULL)
695 AppLogDebug("__pProgressbarLabel Control not found returning E_INVALID_KEY");
696 return E_INVALID_KEY;
698 __pProgressbarLabel->SetShowState(false);
700 __pStopBtn = static_cast<Button*> (GetControl(L"IDC_STOP_BUTTON",true));
701 if (__pStopBtn == NULL)
703 AppLogDebug("Control not found returning E_INVALID_KEY");
704 return E_INVALID_KEY;
706 __pStopBtn->SetActionId(IDA_STOP_BTN_CLICKED);
707 __pStopBtn->AddActionEventListener(*this);
708 __pStopBtn->SetShowState(false);
710 __pClearBtn = static_cast<Button*> (GetControl(L"IDC_CLEAR_BUTTON",true));
711 if (__pClearBtn == NULL)
713 AppLogDebug("Control not found returning E_INVALID_KEY");
714 return E_INVALID_KEY;
716 __pClearBtn->SetActionId(IDA_CLEAR_URL);
717 __pClearBtn->AddActionEventListener(*this);
718 __pClearBtn->SetShowState(false);
720 // __pFooterPanel->Invalidate(true);
721 AppLogDebug("MainForm::InitFooter exit");
727 MainForm::InitContextMenu(Point& p)
729 result r = E_SUCCESS;
730 bool isPrivateBrowsing = false;
731 Bitmap* pBitmap = null;
735 __pMenu->SetAnchorPosition(p);
736 __pMenu->Invalidate(true);
740 __pMenu = new(std::nothrow) ContextMenu();
741 r = __pMenu->Construct(p, CONTEXT_MENU_STYLE_LIST);
742 TryCatch(!IsFailed(r),,"Contextmenu creation failed with%s",GetErrorMessage(r));
744 isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();
747 if (isPrivateBrowsing == true)
749 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_ON);
753 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_OFF);
756 r = __pMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_BOOKMARK"), IDA_BOOKMARKBTN_CLICKED);
758 if ( pBitmap != NULL)
760 __pMenu->AddItem(CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY"), IDA_PRIVATEON_CLICKED,*pBitmap);
763 r = __pMenu->AddItem(CommonUtil::GetString(L"IDS_BR_TAB_HISTORY"), IDA_HISTORY_CLICKED);
764 r = __pMenu->AddItem(CommonUtil::GetString(L"IDS_COM_OPT_BRIGHTNESS"), IDA_BRIGHTNESS_BTN_CLICKED);
765 r = __pMenu->AddItem(CommonUtil::GetString(L"IDS_COM_BODY_SETTINGS"), IDA_SETTINGS_CLICKED);
768 __pMenu->SetMaxVisibleItemsCount(6);
769 __pMenu->SetShowState(false);
770 __pMenu->AddActionEventListener(*this);
771 SetControlAlwaysOnTop(*__pMenu, true);
777 result MainForm::InitImageContextMenu(Tizen::Graphics::Point p)
779 result r = E_SUCCESS;
780 ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_AUTO;
782 AppLog("MainForm::InitImageContextMenu clicked on image");
783 if (__pImageMenu != null)
789 // p.y = p.y + __pAddressbar->GetHeight() + 12;
790 // AppLog("vinaypy %d",p.y);
793 // direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD;
797 // direction = CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD;
799 __pImageMenu = new (std::nothrow) ContextMenu();
800 r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_LIST, direction);
801 TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));
803 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_COPY_IMAGE"),IDA_COPY_IMAGE_CLICKED);
804 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_VIEW_IMAGE"),IDA_VIEW_IMAGE_CLICKED);
805 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SAVE_IMAGE"),IDA_SAVE_IMAGE_CLICKED);
806 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_DLNA_BODY_SHARE_IMAGE_ABB"),IDA_SHARE_IMAGE_CLICKED);
807 __pImageMenu->SetMaxVisibleItemsCount(4);
808 __pImageMenu->AddActionEventListener(*this);
809 SetControlAlwaysOnTop(*__pImageMenu, true);
815 MainForm::InitImageLinkContextMenu(Tizen::Graphics::Point p)
817 result r = E_SUCCESS;
818 ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_AUTO;
820 AppLog("MainForm::InitImageContextMenu clicked on image");
821 if (__pImageMenu != null)
827 p.y = p.y + __pAddressbar->GetHeight() + 12;
830 direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD;
834 direction = CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD;
836 __pImageMenu = new (std::nothrow) ContextMenu();
837 r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_LIST, direction);
838 TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));
840 r = __pImageMenu->AddItem("Open in new window"/*CommonUtil::GetString(L"IDS_BR_OPT_COPY_IMAGE")*/,IDA_HYPERLINK_OPEN_CLICKED);
841 r = __pImageMenu->AddItem("Copy link URL"/*CommonUtil::GetString(L"IDS_DLNA_BODY_SHARE_IMAGE_ABB")*/,IDA_HYPERLINK_COPY_LINK_CLICKED);
842 //r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SAVE_IMAGE"),IDA_HYPERLINK_SAVE_IMAGE_CLICKED);
843 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SHARE"),IDA_HYPERLINK_SHARE_IMAGE_CLICKED);
845 __pImageMenu->SetMaxVisibleItemsCount(3);
846 __pImageMenu->AddActionEventListener(*this);
847 SetControlAlwaysOnTop(*__pImageMenu, true);
853 result MainForm::InitSelectTextContextMenu(Tizen::Graphics::Point p, bool pasteOption, bool onlyPasteOption = false)
855 result r = E_SUCCESS;
856 ContextMenuAnchorDirection direction = CONTEXT_MENU_ANCHOR_DIRECTION_AUTO;
857 if(onlyPasteOption == true)
860 AppLog("MainForm::InitSelectTextContextMenu clicked on text");
861 if (__pImageMenu != null)
866 AppLog("abcde::contextmenu created at p.y %d",p.y);
867 // p.y = p.y + __pAddressbar->GetHeight() + 12;
872 direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD;
877 direction = CONTEXT_MENU_ANCHOR_DIRECTION_UPWARD;
879 __pImageMenu = new (std::nothrow) ContextMenu();
880 r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_GRID, direction);
881 TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));
883 if(onlyPasteOption == false)
885 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_OPT_COPY"),IDA_COPY_TEXT_CLICKED);
887 if (pasteOption || onlyPasteOption)
889 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_BODY_PASTE"),IDA_PASTE_TEXT_CLICKED);
891 if(onlyPasteOption == false)
893 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"),IDA_FIND_TEXT__CLICKED);
894 r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SHARE"),IDA_SHARE_TEXT_CLICKED);
897 __pImageMenu->SetMaxVisibleItemsCount(3);
898 __pImageMenu->AddActionEventListener(*this);
899 SetControlAlwaysOnTop(*__pImageMenu, true);
906 MainForm::InitFindWordPanel(void)
908 result r = E_SUCCESS;
909 Bitmap *pIconBitmap = null;
911 if (__pFindWordControl != null)
913 AppLogDebug("Findword panel already initialized");
914 if (__pFindWordBgLabel != null)
916 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_FINDWORD_INPUT_FIELD_BG, __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());
919 __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);
926 __pFindWordControl = new (std::nothrow) Panel();
927 r = __pFindWordControl->Construct(L"IDL_FIND_ON_PAGE");
930 AppLogException("There is some problem in the xml file. Please check.");
933 AddControl(*__pFindWordControl);
934 __pFindWordControl->SetBounds(0,0, __pFindWordControl->GetWidth(), __pFindWordControl->GetHeight());
935 SetControlAlwaysOnTop(*__pFindWordControl,true);
936 __pFindWordControl->SetShowState(false);
937 __pFindWordControl->Invalidate(false);
939 __pFindWordBgLabel = static_cast<Label*>(__pFindWordControl->GetControl(L"IDC_LABEL1", true));
940 if (__pFindWordBgLabel != null)
942 Panel* pPanel1 = static_cast<Panel*>(__pFindWordControl->GetControl(L"IDC_PANEL1", true));
943 Rectangle pRect = pPanel1->GetBounds();
944 pRect.x = pRect.y = 0;
945 __pFindWordBgLabel->SetBounds(pRect);
946 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_search_input_field_bg.9.png", __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());
949 AppLogDebug("InitFindWordPanel: Coming here");
950 __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);
955 AppLogDebug("InitFindWordPanel: shouldn't Come here");
959 Button* pfindWordCancel = null;
960 pfindWordCancel = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_CANCEL", true));
961 if (pfindWordCancel == null)
963 AppLogException("There is some problem in the xml file. Please check.");
966 pfindWordCancel->SetActionId(IDA_FINDWORD_CANCEL_CLICKED);
967 pfindWordCancel->AddActionEventListener(*this);
969 __pFindWordClear = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_CLEAR", true));
970 if (__pFindWordClear == null)
972 AppLogException("There is some problem in the xml file. Please check.");
976 __pFindWordClear->SetActionId(IDA_FINDWORD_CLEAR_CLICKED);
977 __pFindWordClear->AddActionEventListener(*this);
979 __pFindWordNext = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_NEXT", true));
980 if (__pFindWordNext == null)
982 AppLogException("There is some problem in the xml file. Please check.");
986 __pFindWordNext->SetActionId(IDA_FINDWORD_NEXT_CLICKED);
987 __pFindWordNext->AddActionEventListener(*this);
989 __pFindWordPrev = static_cast<Button*>(__pFindWordControl->GetControl(L"IDC_FIND_PREV", true));
990 if (__pFindWordPrev == null)
992 AppLogException("There is some problem in the xml file. Please check.");
996 __pFindWordPrev->SetActionId(IDA_FINDWORD_PREV_CLICKED);
997 __pFindWordPrev->AddActionEventListener(*this);
999 __pFindWordNext->SetEnabled(false);
1000 __pFindWordPrev->SetEnabled(false);
1002 __pFindWordCountLabel = static_cast<Label*>(__pFindWordControl->GetControl(L"IDC_FIND_COUNT_LABEL", true));
1003 if (__pFindWordCountLabel == null)
1005 AppLogException("There is some problem in the xml file. Please check.");
1009 __pFindWordEditField = static_cast<EditField*>(__pFindWordControl->GetControl(L"IDC_FIND_WORD_EDITFIELD", true));
1010 if (__pFindWordEditField == null)
1012 AppLogException("There is some problem in the xml file. Please check.");
1015 __pFindWordEditField->AddTextEventListener(*this);
1016 __pFindWordEditField->AddKeypadEventListener(*this);
1017 __pFindWordEditField->SetOverlayKeypadCommandButtonVisible(false);
1023 MainForm::CreateItem (int index, int itemWidth)
1025 Rectangle listImageRect;
1026 Rectangle pagetTitleRect;
1027 Rectangle pageURLRect;
1028 Rectangle deleteImageRect;
1029 String pageTitle(L"");
1030 String pageURL(L"");
1031 result r = E_SUCCESS;
1032 Bitmap* pListIconImage = null;
1035 History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index));
1036 if(pHistory == null)
1040 AppResource* pAppResource = Application::GetInstance()->GetAppResource();
1041 if ( pAppResource == NULL )
1045 ListAnnexStyle style = LIST_ANNEX_STYLE_NORMAL;
1047 CustomItem* pItem = new(std::nothrow) CustomItem();
1048 pageTitle = pHistory->GetHistoryTitle();
1049 pageURL = pHistory->GetHistoryUrl();
1051 if (pageURL.GetLength() == 0)
1054 pAppResource->GetString(L"IDS_BR_BODY_ABOUT_C_BLANK", nourl);
1055 pageURL = L"<"+ nourl +">";
1059 Rectangle screenBounds = GetBounds();
1062 r = pItem->Construct(Dimension(itemWidth, 128), style);
1071 Bitmap* pBitmap = pHistory->GetFavIconBitmap();
1073 if ( pBitmap != NULL)
1075 pListIconImage = new Bitmap();
1076 pListIconImage->Construct(*pBitmap,Rectangle(0,0,pBitmap->GetWidth(),pBitmap->GetHeight()));
1080 if(pListIconImage == null)
1082 pListIconImage = pAppResource->GetBitmapN(L"I01_icon_default_favicon.png");
1085 if ( pListIconImage != NULL)
1087 listImageRect.SetBounds(screenBounds.x + 16, screenBounds.y + 28,72, 72);
1088 pagetTitleRect.SetBounds(listImageRect.x + 72 + 16,10, screenBounds.width - 2 * pListIconImage->GetWidth() - 120, 60);
1089 pageURLRect.SetBounds(pagetTitleRect.x, pagetTitleRect.y + pagetTitleRect.height, screenBounds.width - 2 * pListIconImage->GetWidth() - 120, 48);
1092 if (pItem != null && pListIconImage != NULL)
1094 pItem->AddElement(listImageRect, IDA_FORMAT_BITMAP, *pListIconImage, null, null);
1098 if (pageTitle.CompareTo(L"") != 0)
1102 pItem->AddElement(pagetTitleRect, IDA_FORMAT_TITLE_STRING, pageTitle, 44, CUSTOM_COLOR_TRANSPARENT, CUSTOM_COLOR_TRANSPARENT, CUSTOM_COLOR_TRANSPARENT, true);
1106 if (pageURL.CompareTo(L"") != 0)
1110 pItem->AddElement(pageURLRect, IDA_FORMAT_URL_STRING, pageURL, 32, CUSTOM_COLOR_GREY, CUSTOM_COLOR_GREY, CUSTOM_COLOR_GREY, true);
1115 if(GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT || GetOrientationStatus() == ORIENTATION_STATUS_PORTRAIT_REVERSE)
1117 if ( __pItemContext!= NULL)
1121 pItem->SetContextItem(__pItemContext);
1127 if ( __pItemContextLandscape!= NULL)
1131 pItem->SetContextItem(__pItemContextLandscape);
1135 if( pListIconImage != NULL)
1137 delete pListIconImage;
1138 pListIconImage = null;
1145 MainForm::DeleteItem (int index, Tizen::Ui::Controls::ListItemBase *pItem, int itemWidth)
1152 MainForm::GetItemCount (void)
1154 if(__pMostVisitedSites != null)
1156 __pMostVisitedSites->RemoveAll(true);
1158 HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);
1159 if(__pMostVisitedSites != null)
1161 return __pMostVisitedSites->GetCount();
1168 MainForm::OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus state)
1170 History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index));
1171 String url = pHistory->GetHistoryUrl();
1172 HistoryPresentationModel::GetInstance()->DeleteHistory(url);
1173 __pMostVisitedListView->UpdateList();
1177 MainForm::OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status)
1179 History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index));
1180 String url = pHistory->GetHistoryUrl();
1188 MainForm::OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction)
1194 MainForm::OnTerminating(void)
1196 result r = E_SUCCESS;
1199 delete __pItemContext;
1201 if(__pItemContextLandscape)
1203 delete __pItemContextLandscape;
1209 MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
1211 result r = E_SUCCESS;
1213 AppLogDebug("Clicked : %d", actionId);
1216 // case IDA_BACKBTN_CLICKED:
1218 // if (__pWebViewer && __pWebViewer->CanGoBack())
1220 // __pWebViewer->GoBack();
1224 // UiApp* pApp = null;
1225 // pApp = UiApp::GetInstance();
1226 // if (pApp != null)
1228 // r = pApp->Terminate();
1231 // AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1239 case IDA_BACKBTN_CLICKED:
1241 if (__pWebViewer && __pWebViewer->CanGoBack())
1243 __pWebViewer->GoBack();
1245 else if(__pWindowInfo->isJavascriptInitiated == false)
1248 pApp = UiApp::GetInstance();
1251 r = pApp->Terminate();
1254 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1262 WindowInfo* pWindowInfo = null;
1264 SceneManager* pSceneManager = SceneManager::GetInstance();
1265 if (pSceneManager == null)
1269 ArrayList* pAllWindowList = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList();
1270 if (pAllWindowList == NULL)
1272 pApp = UiApp::GetInstance();
1275 r = pApp->Terminate();
1278 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1283 if (pAllWindowList != null)
1285 totalCount = pAllWindowList->GetCount();
1287 for (int count = 0; count < totalCount; count++)
1289 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count));
1290 if (pWindowInfo == null)
1292 pApp = UiApp::GetInstance();
1295 r = pApp->Terminate();
1298 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1303 if (pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID && pWindowInfo->isJavascriptInitiated == true)
1305 r = SceneRegister::DestroyAndUnRegisterScene(pWindowInfo->sceneID);
1308 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1311 r = pAllWindowList->RemoveAt(count, true);
1312 __pWindowInfo = null;
1315 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1320 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count - 1));
1324 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1));
1326 if (pWindowInfo == null)
1328 pApp = UiApp::GetInstance();
1331 r = pApp->Terminate();
1337 r = pSceneManager->GoBackward(BackwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE));
1340 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
1353 case IDA_FORWARD_CLICKED:
1354 if (__pWebViewer == null)
1357 if (__pWebViewer->CanGoForward())
1359 __pWebViewer->GoForward();
1361 __pMenu->SetShowState(false);
1362 __pMenu->Invalidate(false);
1365 case IDA_FINDONPAGE_CLICKED:
1367 AppLogDebug("MainForm::OnActionPerformed findword clicked");
1368 __currentSearchStr.Clear();
1370 InitFindWordPanel();
1371 __pMenu->SetShowState(false);
1372 __pMenu->Invalidate(false);
1374 __pFindWordEditField->SetFocus();
1376 if (__pWebViewer != null)
1378 // releasing the set block
1379 __pWebViewer->ReleaseBlock();
1382 ShowFindWordPanel(true);
1385 case IDA_PRIVATEON_CLICKED:
1387 result r = E_SUCCESS;
1389 bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();
1390 Bitmap* pBitmap = null;
1391 if (isPrivateBrowsing == true)
1393 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_OFF);
1396 AppLogException("Contextmenu additem:Find on page failed with %s", GetErrorMessage(r));
1400 if (__pWebViewer != NULL)
1402 __pWebViewer->SetPrivateBrowsingEnabled(false);
1405 SettingPresentationModel::GetInstance()->SetPrivateOn(false);
1407 if (__pAddressbar != null)
1409 __pAddressbar->UpdateFaviconBitmap(false);
1415 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_ON);
1418 AppLogException("Contextmenu additem:Find on page failed with %s", GetErrorMessage(r));
1422 if (__pWebViewer != NULL)
1424 __pWebViewer->SetPrivateBrowsingEnabled(true);
1427 SettingPresentationModel::GetInstance()->SetPrivateOn(true);
1429 if (__pAddressbar != null)
1431 __pAddressbar->UpdateFaviconBitmap(true);
1436 itemIndex = __pMenu->GetItemIndexFromActionId(IDA_PRIVATEON_CLICKED);
1437 r = __pMenu->SetItemAt(itemIndex,CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY"),IDA_PRIVATEON_CLICKED,*pBitmap);
1438 AppLog("Result:: %s for index = %d", GetErrorMessage(r),itemIndex);
1439 __pMenu->Invalidate(true);
1441 if ( pBitmap != NULL )
1448 case IDA_SETTINGS_CLICKED:
1451 ArrayList* pArgList = new(std::nothrow) ArrayList();
1454 pArgList->Construct();
1455 pArgList->Add(*__pWindowInfo);
1456 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_SETTINGS), pArgList);
1458 __pMenu->SetShowState(false);
1459 __pMenu->Invalidate(false);
1460 if (pArgList != null)
1469 case IDA_ADDTOBOOKMARK_CLICKED:
1472 if (__pWindowInfo != NULL && __pWindowInfo->pageUrl != NULL)
1474 int bookmarkCount=0;
1477 url=__pWindowInfo->pageUrl;
1478 result r = E_SUCCESS;
1479 Bitmap* pBitmap = null;
1480 r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist);
1488 String message = CommonUtil::GetString(L"IDS_BR_POP_BOOKMARK_REMOVED");
1489 BookmarkPresentationModel::GetInstance()->DeleteBookmark(url);
1490 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_OFF_TEMP);
1492 NotificationPanel* pNotification = new (std::nothrow) NotificationPanel(*this);
1493 if (pNotification != null)
1495 pNotification->SetText(message);
1496 pNotification->SetPositionDiff(__pFooterPanel->GetHeight());
1497 pNotification->ShowNotification();
1502 String title=__pWindowInfo->pageTitle;
1503 String message = CommonUtil::GetString(L"IDS_BR_POP_BOOKMARK_ADDED");
1504 BookmarkData* pBookmark=new (std::nothrow) BookmarkData();
1506 pBookmark->SetBookmarkTitle(title);
1507 pBookmark->SetUrl(url);
1508 if (__pWebViewer != null && __pWebViewer->GetFaviconN() != null)
1510 pBookmark->SetFavIconBitmap(*(__pWebViewer->GetFaviconN()));
1512 String id = FaviconManager::GetInstance()->SaveFavicon(*__pWindowInfo->pFavicon, __pWindowInfo->faviconUrl);
1513 pBookmark->SetFaviconId(id);
1514 //r = BookmarkPresentationModel::GetInstance()->SaveBookmark(*pBookmark);
1515 r = BookmarkPresentationModel::GetInstance()->SaveTempBookmark(*pBookmark);
1518 NotificationPanel* pNotification = new (std::nothrow) NotificationPanel(*this);
1519 if (pNotification != null)
1521 pNotification->SetText(message);
1522 pNotification->SetPositionDiff(__pFooterPanel->GetHeight());
1523 pNotification->ShowNotification();
1524 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_ON_TEMP);
1527 if (pBitmap != null)
1529 r = __pMenu->SetItemAt(0,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
1533 __pMenu->Invalidate(true);
1537 case IDA_SHARE_CLICKED:
1539 if(__pPopUp != null)
1544 __pPopUp = new(std::nothrow) SharePopup();
1545 __pPopUp->Initialize();
1546 if (__pWindowInfo != null)
1548 ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();
1549 pShareInfo->SetPageTitle(__pWindowInfo->pageTitle);
1550 pShareInfo->SetPageUrl(__pWindowInfo->pageUrl);
1551 pShareInfo->SetImageAttached(false);
1552 __pPopUp->RemoveAllShareInfo();
1553 __pPopUp->AddShareInfo(pShareInfo);
1555 __pPopUp->SetShowState(true);
1559 case IDA_BOOKMARKBTN_CLICKED:
1561 AppLogDebug("ONACTION_PERFORMED:IDA_BOOKMARKBTN_CLICKED");
1562 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_BOOKMARK_VIEW, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
1565 case IDA_ADD_TO_BOOKMARKBTN_CLICKED:
1570 case IDA_MOREBTN_CLICKED:
1572 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 1");
1573 Point p = Point(__pMoreButton->GetX() + __pMoreButton->GetWidth() / 2, GetClientAreaBounds().y + GetClientAreaBounds().height - __pMoreButton->GetHeight());
1574 AppLog("Anchot pos: %d %d", p.x, p.y);
1576 if (__pWindowInfo != NULL && __pWindowInfo->pageUrl != NULL && __pWebViewer->GetShowState() == true)
1578 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 2");
1579 int bookmarkCount=0;
1582 url=__pWindowInfo->pageUrl;
1583 result r = E_SUCCESS;
1584 Bitmap* pBitmap = null;
1586 r=BookmarkPresentationModel::GetInstance()->DoesBookmarkExist(url,exist);
1589 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED failed");
1594 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_ON_TEMP);
1598 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_ICON_BOOKMARK_OFF_TEMP);
1600 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 3");
1602 if (__pMenu->GetItemCount() == 8)
1604 r = __pMenu->SetItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
1608 r = __pMenu->InsertItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED,*pBitmap);
1613 AppLogException("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED Add to Bookmark failed with %s", GetErrorMessage(r));
1617 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 4");
1618 if (__pMenu->GetItemCount() != 8)
1620 __pMenu->InsertItemAt(1,CommonUtil::GetString(L"IDS_BR_OPT_ADDTOBOOKMARKS"), IDA_ADDTOBOOKMARK_CLICKED);
1622 // __pMenu->InsertItemAt(2,L"Add to Home"/*CommonUtil::GetString(L"IDS_BR_OPT_SHARE")*/, IDA_ADD_TO_HOME_CLICKED);
1623 __pMenu->InsertItemAt(2,CommonUtil::GetString(L"IDS_BR_OPT_SHARE"), IDA_SHARE_CLICKED);
1624 __pMenu->InsertItemAt(3,CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"), IDA_FINDONPAGE_CLICKED);
1625 __pMenu->SetMaxVisibleItemsCount(6);
1627 if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE)
1629 AppLog(" Orientation landscape");
1630 __pMenu->SetMaxVisibleItemsCount(5);
1634 AppLog(" Orientation potrait");
1635 __pMenu->SetMaxVisibleItemsCount(6);
1638 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED 5");
1641 AppLogDebug("ONACTION_PERFORMED:IDA_MOREBTN_CLICKED end");
1642 __pMenu->SetShowState(true);
1643 __pMenu->Invalidate(true);
1647 case IDA_HISTORY_CLICKED:
1649 AppLogDebug("ONACTION_PERFORMED:IDA_HISTORYBTN_CLICKED");
1650 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_HISTORY_LIST, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
1653 case IDA_SAVED_PAGES_CLICKED:
1658 case IDA_DESKTOP_VIEW_CLICKED:
1663 case IDA_SAVE_CLICKED:
1668 case IDA_MULTIWINDOWBTN_CLICKED:
1670 result r = SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_MULTIPLE_WINDOW, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
1671 AppLog("IDA_MULTIWINDOWBTN_CLICKED result %s",GetErrorMessage(r));
1675 case IDA_NEWWINDOWBTN_CLICKED:
1677 WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewScene();
1679 if (pNewWindowInfo == null)
1683 result r = E_SUCCESS;
1684 SceneManager* pSceneManager = SceneManager::GetInstance();
1686 if (pSceneManager == NULL)
1690 ArrayList* pArgList = new(std::nothrow) ArrayList();
1691 if (pArgList == NULL)
1695 r = pArgList->Construct();
1698 pArgList->Add(*pNewWindowInfo);
1699 r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
1705 AppLogDebug("MainForm::OnActionPerformed Failed to GoBackward %s",GetErrorMessage(r));
1710 case IDA_SMALLFONT_BTN_CLICKED:
1712 WebSetting setting = __pWebReader->GetSetting();
1713 setting.SetFontSize(15);
1714 __pWebReader->SetSetting(setting);
1717 case IDA_LARGEFONT_BTN_CLICKED:
1719 WebSetting setting = __pWebReader->GetSetting();
1720 setting.SetFontSize(25);
1721 __pWebReader->SetSetting(setting);
1724 case IDA_READER_CLOSE_CLICKED:
1726 if (__pArticleReaderPanel != null && __pBlankPanel != null)
1728 //__pArticleReaderPanel->SetShowState(false);
1729 //__pArticleReaderPanel->Show();
1730 RemoveControl(*__pBlankPanel);
1731 //RemoveControl(*__pArticleReaderPanel);
1732 __pArticleReaderPanel = null;
1733 __pBlankPanel = null;
1734 __pArticleReaderLabel = null;
1736 //if (__pAddressbar)
1737 // __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
1738 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
1741 case IDA_FINDWORD_CANCEL_CLICKED:
1743 __currentSearchStr = L"";
1744 __currentWordIndex = 0;
1745 __maxOccurrances = 0;
1746 __pFindWordEditField->SetText(L"");
1747 __pFindWordNext->SetEnabled(false);
1748 __pFindWordPrev->SetEnabled(false);
1749 __pFindWordCountLabel->SetText(L"0/0");
1750 __pWebViewer->SearchText(L"aaaabbbbcccc",true);
1751 ShowFindWordPanel(false);
1754 case IDA_FINDWORD_SEARCH_CLICKED:
1756 __currentSearchStr = __pFindWordEditField->GetText();
1757 if (__currentSearchStr.GetLength() > 0)
1763 AppLogDebug("Enter something");
1767 case IDA_FINDWORD_CLEAR_CLICKED:
1769 __pFindWordCountLabel->SetText(L"0/0");
1770 __pFindWordEditField->SetText(L"");
1771 __currentSearchStr = L"aaaaaabbbbbbccccccc";
1773 __currentSearchStr = L"";
1774 __pFindWordNext->SetEnabled(false);
1775 __pFindWordPrev->SetEnabled(false);
1776 __pFindWordControl->Invalidate(true);
1779 case IDA_FINDWORD_NEXT_CLICKED:
1784 case IDA_FINDWORD_PREV_CLICKED:
1786 FindNextWord(false);
1789 case IDA_BRIGHTNESS_BTN_CLICKED:
1791 AppLogDebug("IDA_BRIGHTNESS_BTN_CLICKED");
1792 SceneManager::GetInstance()->GoForward(ForwardSceneTransition(IDSCN_BRIGHTNESS, SCENE_TRANSITION_ANIMATION_TYPE_NONE));
1795 case IDA_COPY_IMAGE_CLICKED:
1797 AppLogDebug("IDA_COPY_IMAGE_CLICKED");
1798 AppLogDebug("IDA_COPY_IMAGE_CLICKED");
1800 const Bitmap* pBitmap = null;
1801 if (__pHitElementResult != null)
1803 pBitmap = __pHitElementResult->GetImage();
1806 String resourcePath = App::GetInstance()->GetAppResourcePath();
1807 item.Construct(CLIPBOARD_DATA_TYPE_IMAGE , *pBitmap);
1809 // copying the item to clipboard
1810 Clipboard* pClipboard = Clipboard::GetInstance();
1811 if (pClipboard != null)
1813 pClipboard->CopyItem(item);
1817 case IDA_VIEW_IMAGE_CLICKED:
1819 AppLogDebug("IDA_VIEW_IMAGE_CLICKED");
1820 WindowInfo* pNewWindowInfo = null;
1821 if (__pHitElementResult != null)
1823 String srcUrl = __pHitElementResult->GetAttributeValue(L"src");
1824 AppLog("MainForm::OnTouchLongPressed srcUrl is %ls",srcUrl.GetPointer());
1830 case IDA_SAVE_IMAGE_CLICKED:
1832 AppLogDebug("IDA_SAVE_IMAGE_CLICKED");
1833 const Bitmap* pSaveBitmap = null;
1834 String imageName = GetImagePath();
1835 AppLog("Content manager image name %ls",imageName.GetPointer());
1838 imagePath.Append(imageName);
1839 imagePath.Format(100, L"%ls/Downloads/%ls.jpg",Tizen::System::Environment::GetMediaPath().GetPointer(), imageName.GetPointer());
1840 AppLog("Content manager image path %ls",imagePath.GetPointer());
1841 if (__pHitElementResult != null)
1843 pSaveBitmap = __pHitElementResult->GetImage();
1845 ByteBuffer* pBuffer = __pSaveImage->EncodeToBufferN(*pSaveBitmap, IMG_FORMAT_JPG);
1849 UpdateImageContent(pBuffer, imageName);
1851 NotificationPanel *pNotification = new NotificationPanel(*this);
1853 AppResource::GetInstance()->GetString("IDS_COM_SK_SAVE", msg);
1854 msg.Append(imagePath);
1855 if (pNotification != null)
1857 pNotification->SetText(msg);
1858 pNotification->SetPositionDiff(__pFooterPanel->GetHeight());
1859 pNotification->ShowNotification();
1864 int __modalMsgBoxResult;
1865 MessageBox* pMsgBox = new MessageBox();
1866 pMsgBox->Construct(CommonUtil::GetString(L"IDS_COM_FAILED_TO_SAVE_IMAGE"),CommonUtil::GetString(L"IDS_COM_FAILED_TO_SAVE_IMAGE"),MSGBOX_STYLE_OK,3000);
1867 pMsgBox->ShowAndWait(__modalMsgBoxResult);
1870 __modalMsgBoxResult = 0;
1874 case IDA_SHARE_IMAGE_CLICKED:
1876 AppLogDebug("IDA_SHARE_IMAGE_CLICKED");
1877 if (__pPopUp != null)
1882 __pPopUp = new(std::nothrow) SharePopup();
1883 __pPopUp->Initialize();
1884 if (__pHitElementResult != null)
1886 const Bitmap* pSaveBitmap = null;
1887 String imageName = GetImagePath();
1888 AppLog("Content manager image name %ls",imageName.GetPointer());
1891 imagePath.Append(imageName);
1892 imagePath.Format(100, L"%lsDownloads/%ls.jpg",Tizen::System::Environment::GetMediaPath().GetPointer(), imageName.GetPointer());
1893 AppLog("Content manager image path %ls",imagePath.GetPointer());
1894 if (__pHitElementResult != null)
1896 pSaveBitmap = __pHitElementResult->GetImage();
1898 __pSaveImage->EncodeToFile(*pSaveBitmap, IMG_FORMAT_JPG, imagePath, true);
1900 String srcUrl = __pHitElementResult->GetAttributeValue(L"src");
1901 AppLog("MainForm::OnTouchLongPressed srcUrl is %ls",srcUrl.GetPointer());
1903 ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();
1904 pShareInfo->SetPageTitle(L"");
1905 pShareInfo->SetPageUrl(srcUrl);
1906 pShareInfo->SetImageAttached(true);
1907 pShareInfo->SetImagePath(imagePath);
1908 __pPopUp->RemoveAllShareInfo();
1909 __pPopUp->AddShareInfo(pShareInfo);
1910 __pPopUp->SetShowState(true);
1915 case IDA_HYPERLINK_OPEN_CLICKED:
1917 if (__pHitElementResult != null)
1919 String srcUrl = __pHitElementResult->GetUrl();
1921 WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewScene(srcUrl);
1923 if (pNewWindowInfo == null)
1927 result r = E_SUCCESS;
1928 SceneManager* pSceneManager = SceneManager::GetInstance();
1929 if (pSceneManager == NULL)
1933 ArrayList* pArgList = new(std::nothrow) ArrayList();
1934 if (pArgList == NULL)
1938 pArgList->Construct();
1940 pArgList->Add(*pNewWindowInfo);
1941 r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
1942 if (pArgList != null)
1949 AppLogDebug("MultipleWindowForm::OnActionPerformed GoForward failed %s",GetErrorMessage(r));
1955 case IDA_HYPERLINK_SHARE_IMAGE_CLICKED:
1957 if (__pHitElementResult == null)
1962 if(__pPopUp != null)
1967 __pPopUp = new(std::nothrow) SharePopup();
1968 __pPopUp->Initialize();
1970 ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();
1971 pShareInfo->SetPageUrl(__pHitElementResult->GetUrl());
1972 pShareInfo->SetImageAttached(false);
1973 __pPopUp->RemoveAllShareInfo();
1974 __pPopUp->AddShareInfo(pShareInfo);
1976 __pPopUp->SetShowState(true);
1980 case IDA_HYPERLINK_COPY_LINK_CLICKED:
1984 if (__pHitElementResult != null)
1986 url = __pHitElementResult->GetUrl();
1989 String resourcePath = App::GetInstance()->GetAppResourcePath();
1990 item.Construct(CLIPBOARD_DATA_TYPE_TEXT , url);
1992 // copying the item to clipboard
1993 Clipboard* pClipboard = Clipboard::GetInstance();
1994 if (pClipboard != null)
1996 pClipboard->CopyItem(item);
2000 case IDA_FIND_TEXT__CLICKED:
2002 OnAddressCancelledClicked(*__pAddressbar);
2003 AppLogDebug("MainForm::OnActionPerformed find word clicked");
2004 __currentSearchStr.Clear();
2005 __currentSearchStr.Append(__currentSelectedStr);
2006 InitFindWordPanel();
2007 __pFindWordEditField->SetText(__currentSearchStr);
2010 __pMenu->SetShowState(false);
2011 __pMenu->Invalidate(false);
2014 __adressPanelPosition.y = 0;
2016 if (__pAddressbar != null && __pWebViewer != NULL)
2018 __webControlPosition.y = __pAddressbar->GetHeight() - 12;
2019 //__pAddressbar->SetBounds(0,__adressPanelPosition.y,GetClientAreaBounds().width,__pAddressbar->GetHeight());
2020 //__pAddressbar->Invalidate(true);
2021 __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight() - ( /*__pAddressbar->GetY() +*/ __pAddressbar->GetHeight() - 12);
2023 if (__pFooterPanel->GetShowState() == false)
2024 __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, GetClientAreaBounds().height - ( /*__pAddressbar->GetY() +*/ __pAddressbar->GetHeight() - 12)));
2026 __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, __webControlHeight));
2027 // __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width,__webControlHeight));
2028 __pWebViewer->Invalidate(true);
2031 ShowFindWordPanel(true);
2032 __pFindWordEditField->SetFocus();
2033 if (__currentSearchStr.GetLength() > 0)
2039 AppLogDebug("Enter something");
2042 if (__pWebViewer != null)
2044 // releasing the set block
2045 __pWebViewer->ReleaseBlock();
2050 case IDA_SHARE_TEXT_CLICKED:
2052 AppLogDebug("IDA_SHARE_TEXT_CLICKED");
2053 if(__pPopUp != null)
2058 __pPopUp = new(std::nothrow) SharePopup();
2059 __pPopUp->Initialize();
2060 if (__pHitElementResult != null)
2062 ShareInfo* pShareInfo = new(std::nothrow) ShareInfo();
2063 pShareInfo->SetPageTitle(L"");
2064 pShareInfo->SetPageUrl(__currentSelectedStr);
2065 pShareInfo->SetImageAttached(false);
2066 __pPopUp->RemoveAllShareInfo();
2067 __pPopUp->AddShareInfo(pShareInfo);
2068 __pPopUp->SetShowState(true);
2073 case IDA_COPY_TEXT_CLICKED:
2075 __pWebViewer->ReleaseBlock();
2076 // need to implement
2077 //__currentSelectedStr
2078 // Sets data to a clip board item
2080 String resourcePath = App::GetInstance()->GetAppResourcePath();
2081 item.Construct(CLIPBOARD_DATA_TYPE_TEXT, __currentSelectedStr);
2083 // copying the item to clipboard
2084 Clipboard* pClipboard = Clipboard::GetInstance();
2085 if (pClipboard != null)
2087 pClipboard->CopyItem(item);
2091 case IDA_PASTE_TEXT_CLICKED:
2093 Clipboard* pClipboard = Clipboard::GetInstance();
2095 if(pClipboard == null)
2099 // Retrieves a latest item
2100 ClipboardItem* pItem = pClipboard->RetrieveLatestItemN(CLIPBOARD_DATA_TYPE_TEXT | CLIPBOARD_DATA_TYPE_HTML);
2106 //Gets data from the clipboard item
2107 String* pString = dynamic_cast<String*>(pItem->GetData());
2109 if (pString != null)
2111 String idElement = __pHitElementResult->GetAttributeValue(L"id");
2112 String nameElement = __pHitElementResult->GetAttributeValue(L"name");
2113 AppLog("MainForm::IDA_PASTE_TEXT_CLICKED id is %ls",idElement.GetPointer());
2114 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; } } ";
2115 if(idElement.GetLength() != 0)
2117 script.Append("insertAtCursor(");
2118 script.Append(idElement);
2120 script.Append("\"");
2121 script.Append(*pString);
2122 script.Append("\");");
2124 else if (nameElement.GetLength() != 0)
2126 script.Append("insertAtCursor(document.getElementsByName('");
2127 script.Append(nameElement);
2128 script.Append("')[0],");
2129 script.Append("\"");
2130 script.Append(*pString);
2131 script.Append("\");");
2133 AppLog("MainForm::OnTouchLongPressed script is %ls",script.GetPointer());
2134 String* pStr = __pWebViewer->EvaluateJavascriptN(script);
2145 case IDA_GO_FORWARD:
2150 case IDA_REFRESH_BTN_CLICKED:
2152 __isLoadingCompleted = false;
2153 __isLoadingData = true;
2154 __progressPercentage = 0;
2155 __displayUrl = __pFooterUrlField->GetText();
2157 String url = __pFooterUrlField->GetText();
2158 AppLog("MainForm::OnUrlSubmitted url is %ls", url.GetPointer());
2162 UpdateProgressBitmap();
2165 case IDA_STOP_BTN_CLICKED:
2167 __isLoadingCompleted = false;
2168 __isLoadingData = false;
2169 __progressPercentage = 0;
2170 __pFooterUrlField->HideKeypad();
2171 __displayUrl = __pFooterUrlField->GetText();
2175 //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
2176 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
2177 __pWebViewer->StopLoading();
2178 RequestRedraw(true);
2181 UpdateProgressBitmap();
2186 if (__pFooterUrlField->GetText().IsEmpty() == false)
2188 //__displayUrl = __pUrlField->GetText();
2189 __pFooterUrlField->Clear();
2200 MainForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source)
2203 UiApp* pApp = UiApp::GetInstance();
2212 MainForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId,
2213 const Tizen::Ui::Scenes::SceneId& currentSceneId, Tizen::Base::Collection::IList* pArgs)
2215 AppLog("MainForm::OnSceneActivatedN called");
2216 String* pSelectedScene = NULL;
2217 Object* pValue = NULL;
2218 String* pUrl = null;
2219 MultipleWindowPresentationModel::GetInstance()->GetValue(SELECTED_SCENE_ID, &pValue);
2220 pSelectedScene = (String*) pValue;
2222 if (pSelectedScene != null)
2224 delete pSelectedScene;
2226 MultipleWindowPresentationModel::GetInstance()->SetValue(SELECTED_SCENE_ID, null);
2227 String* selectedSceneID = new(std::nothrow) String(currentSceneId);
2228 AppLogDebug("current scene id is %ls", currentSceneId.GetPointer());
2229 AppLogDebug("selected scene id is %ls", currentSceneId.GetPointer());
2231 // setting the current scene ID
2232 MultipleWindowPresentationModel::GetInstance()->SetCurrentSceneID(currentSceneId);
2234 MultipleWindowPresentationModel::GetInstance()->SetValue(SELECTED_SCENE_ID, (Object*) selectedSceneID);
2236 if(pArgs != null && pArgs->GetCount() > 0 && pArgs->GetCount() == 2)
2238 __pWindowInfo = dynamic_cast< WindowInfo* >(pArgs->GetAt(0));
2239 if(__pWindowInfo == null)
2241 // if(__pWindowInfo == null)
2243 pUrl = dynamic_cast< String* >(pArgs->GetAt(1));
2246 else if ( pArgs != null && pArgs->GetCount() == 1)
2248 __pWindowInfo = dynamic_cast< WindowInfo* >(pArgs->GetAt(0));
2254 // hiding the address bar
2255 // __pAddressbar->SetBounds(__pAddressbar->GetX(), __pAddressbar->GetY() - __pAddressbar->GetHeight(), __pAddressbar->GetWidth(), __pAddressbar->GetHeight());
2256 __pAddressbar->SetShowState(false);
2257 if(__pWebViewer != null)
2259 __pWebViewer->Resume();
2262 if(pUrl != null && pUrl->GetLength() > 0)
2266 else if(__pWindowInfo != null)
2268 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)
2270 LoadUrl(__pWindowInfo->pageUrl);
2272 else if (__pWindowInfo->isJavascriptInitiated == true)
2276 __pWindowInfo->pCurrentWeb = __pWebViewer;
2280 String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
2281 AppLog("Homepage Value in Onsceneactivated is %ls",homePage.GetPointer());
2282 if(homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
2284 InitMostVisitedSitesView(GetOrientationStatus());
2287 if (__pAddressbar != null && pArgs != null && (previousSceneId == IDSCN_BOOKMARK_VIEW || previousSceneId == IDSCN_HISTORY_LIST))
2289 String* pBookmarkUrl = dynamic_cast< String* >(pArgs->GetAt(0));
2291 if (pBookmarkUrl == null)
2293 AppLogDebug("bookmarkUrl = %ls",pBookmarkUrl->GetPointer());
2294 //__pAddressbar->SetUrl(*pBookmarkUrl);
2295 SetUrl(*pBookmarkUrl);
2297 if (__pWebViewer != null && homePage.CompareTo((L"IDS_BR_BODY_BLANK_PAGE")) != 0)
2298 __pWebViewer->LoadUrl(*pBookmarkUrl);
2299 delete pBookmarkUrl;
2302 bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();
2303 Bitmap* pBitmap = null;
2304 if (isPrivateBrowsing == true)
2306 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_ON);
2308 if (__pWebViewer != null)
2310 __pWebViewer->SetPrivateBrowsingEnabled(true);
2313 if (__pAddressbar != null)
2315 // __pAddressbar->UpdateFaviconBitmap(true);
2321 pBitmap = AppResource::GetInstance()->GetBitmapN(IDB_BUTTON_OFF);
2323 if (__pWebViewer != null)
2325 __pWebViewer->SetPrivateBrowsingEnabled(false);
2328 if (__pAddressbar != null)
2330 // __pAddressbar->UpdateFaviconBitmap(false);
2334 if (__pMenu != null && __pMenu->GetItemCount() == 3)
2336 __pMenu->SetItemAt(0,CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY"),IDA_PRIVATEON_CLICKED,*pBitmap);
2338 else if (__pMenu != null )
2340 __pMenu->SetItemAt(3,CommonUtil::GetString(L"IDS_BR_BODY_PRIVACY"),IDA_PRIVATEON_CLICKED,*pBitmap);
2343 if (pBitmap != null)
2348 AppLog("ABC: OnSceneActivatedN started exit");
2353 MainForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId,
2354 const Tizen::Ui::Scenes::SceneId& nextSceneId)
2356 Canvas* pWebCanvas = null;
2357 if (__pWebViewer != null)
2359 pWebCanvas = __pWebViewer->GetCanvasN();
2360 __pWebViewer->Pause();
2363 if (pWebCanvas == null)
2367 if (__pWindowInfo != null)
2369 if (__pWindowInfo->pWebCanvasBitmap != null)
2371 delete __pWindowInfo->pWebCanvasBitmap;
2373 __pWindowInfo->pWebCanvasBitmap = new(std::nothrow) Bitmap();
2374 result r = __pWindowInfo->pWebCanvasBitmap->Construct(*pWebCanvas,Rectangle(0,0,pWebCanvas->GetBounds().width,pWebCanvas->GetBounds().height));
2375 AppLog("Bitmap Construction result %s",GetErrorMessage(r));
2377 Bitmap* pBitmap = GetCapturedBitmapN();
2378 AppLog("Coming here");
2379 Canvas* pCanvas = new(std::nothrow) Canvas();
2380 pCanvas->Construct(GetClientAreaBounds());
2383 pCanvas->DrawBitmap(Point(0,0),*pBitmap);
2386 if(__pWebViewer != null && __pWindowInfo != null)
2387 pCanvas->DrawBitmap(__pWebViewer->GetPosition(),*__pWindowInfo->pWebCanvasBitmap);
2389 WindowInfo::pFormCanvasBitmap = new(std::nothrow) Bitmap();
2390 WindowInfo::pFormCanvasBitmap->Construct(*pCanvas,Rectangle(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height - __pFooterPanel->GetHeight()));
2392 AppLog("Coming here");
2396 MainForm::OnHttpAuthenticationRequestedN(const Tizen::Base::String& host,
2397 const Tizen::Base::String& realm,
2398 const Tizen::Web::Controls::AuthenticationChallenge& authentication)
2404 MainForm::OnHttpAuthenticationCanceled(void)
2409 MainForm::OnLoadingStarted(void)
2411 AppLogDebug("MainForm::OnLoadingStarted entered");
2413 if(__pAddressbar == NULL || __pWebViewer == null)
2417 String url = __pWebViewer->GetUrl();
2418 if(url.Contains(IDS_TIZEN_SERVICE))
2421 String delim(L":;");
2423 // Creates a StringTokenizer instance
2424 StringTokenizer strTok(url, delim);
2426 int count = strTok.GetTokenCount(); // count == 4
2428 HashMap *pMap = new HashMap();
2433 while (strTok.HasMoreTokens())
2435 AppLog("Token: %ls", token.GetPointer());
2436 strTok.GetNextToken(token); // Tizen, StringTokenizer, Sample, code
2437 if(token.Contains(IDS_APPID))
2439 token.SubString(6, appId);
2440 AppLog("AppID:%ls", appId.GetPointer());
2442 else if(token.Contains("="))
2444 String *pKey = new String();
2445 String *pValue = new String();
2447 token.IndexOf("=", 0, index);
2450 token.SubString(0, index, *pKey);
2451 token.SubString(index + 1, *pValue);
2452 pMap->Add(pKey, pValue);
2458 AppControl *pAppControl = null;
2459 String operationId = L"http://tizen.org/appcontrol/operation/main";
2460 pAppControl = dynamic_cast<AppControl*>(AppManager::FindAppControlN(appId, operationId));
2463 AppLog("Starting AppControl");
2464 result r = pAppControl->Start(null, null, pMap, null);
2465 AppLog("Result of Start %s", GetErrorMessage(r));
2469 AppLogException("AppControl not found");
2474 Bitmap* pBitmap = FaviconManager::GetInstance()->GetDefaultFaviconN();
2477 __pAddressbar->SetFaviconBitmap(*pBitmap);
2480 if (__adressPanelPosition.y < (0 - __pAddressbar->GetHeight() + 12))
2482 // updating the address bar position with respect to web control
2483 __adressPanelPosition.y = 0 - __pAddressbar->GetHeight() + 12; //-12 is for the progress label
2484 __distanceMoved = 0;
2488 //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
2489 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
2490 if (__pWebViewer != null)
2492 AppLog("MainForm::OnLoadingStarted __pWebViewer->GetUrl() %ls",__pWebViewer->GetUrl().GetPointer());
2493 //__pAddressbar->SetUrl(__pWebViewer->GetUrl());
2494 SetUrl(__pWebViewer->GetUrl());
2495 if (__pWindowInfo != NULL)
2497 __pWindowInfo->pageUrl = __pWebViewer->GetUrl();
2499 __pAddressbar->Invalidate(true);
2505 MainForm::OnLoadingCanceled(void)
2512 MainForm::OnKeypadWillOpen(Tizen::Ui::Control& source)
2514 AppLog("MainForm::OnKeypadWillOpen");
2515 if (__pAddressbar != null)
2517 OnAddressBarKeypadWillOpen(*__pAddressbar);
2523 MainForm::OnKeypadOpened(Tizen::Ui::Control& source)
2525 if(__pAddressbar != null)
2527 OnAddressBarKeypadOpened(*__pAddressbar);
2533 MainForm::OnKeypadClosed(Tizen::Ui::Control& source)
2537 if (__pAddressbar != null)
2539 OnAddressBarKeypadClosed(*__pAddressbar);
2544 MainForm::OnKeypadBoundsChanged(Tizen::Ui::Control &source)
2546 AppLog("KeypadBoundsChanged");
2547 RelayoutControls(false);
2551 MainForm::OnLoadingErrorOccurred(LoadingErrorType error,
2552 const Tizen::Base::String& reason)
2554 AppLogDebug("Error: %d, %ls", error, reason.GetPointer());
2558 MainForm::OnLoadingCompleted(void)
2560 AppLog("MainForm::OnLoadingCompleted start");
2562 result r = E_SUCCESS;
2564 if (__pWebViewer == null)
2569 if (__pAddressbar == null)
2573 if (__pWebViewer->CanGoForward())
2575 //__pAddressbar->SetForwardButtonEnabled(true);
2576 SetForwardButtonEnabled(true);
2580 //__pAddressbar->SetForwardButtonEnabled(false);
2581 SetForwardButtonEnabled(false);
2584 /*if (__pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_EDIT)
2586 __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
2588 //__pAddressbar->UpdateProgress(0);
2592 if(GetAddressbarMode() != ADDRESSBAR_MODE_EDIT)
2594 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
2598 AppLog("PrivateBrowsing %d",__pWebViewer->IsPrivateBrowsingEnabled());
2599 bool isPrivateBrowsing = SettingPresentationModel::GetInstance()->GetPrivateOn();
2600 if (isPrivateBrowsing == false)
2602 History* pHistory = new(std::nothrow) History;
2604 HistoryPresentationModel::GetCurrentDateTime(date);
2607 pHistory->SetHistoryTitle(__pWindowInfo->pageTitle);
2608 AppLogDebug("MainForm::OnLoadingCompleted pagetitle = %ls", __pWindowInfo->pageTitle.GetPointer());
2610 pHistory->SetHistoryUrl(__pWindowInfo->pageUrl);
2611 AppLogDebug("MainForm::OnLoadingCompleted pageUrl = %ls", __pWindowInfo->pageUrl.GetPointer());
2613 pHistory->SetVisitedTime(date);
2616 id = FaviconManager::GetInstance()->SaveFavicon(*__pWindowInfo->pFavicon, __pWindowInfo->faviconUrl);
2617 pHistory->SetFaviconId(id);*/
2619 if (__pWebViewer != null)
2621 AppLog("MainForm::OnLoadingCompleted setting the fav icon 0");
2623 Bitmap* pTempBitmap = __pWebViewer->GetFaviconN();
2624 if (pTempBitmap != null)
2626 AppLog("MainForm::OnLoadingCompleted setting the fav icon 1");
2627 pHistory->SetFavIconBitmap(*pTempBitmap);
2630 AppLog("MainForm::OnLoadingCompleted setting the fav icon 2");
2633 Canvas* pCanvas = __pWebViewer->GetCanvasN();
2634 Bitmap* pBitmap = new(std::nothrow) Bitmap();
2635 if ( pCanvas != null && pCanvas != null && pBitmap != null)
2637 pBitmap->Construct(*pCanvas, pCanvas->GetBounds());
2638 pBitmap->Scale(Dimension(pBitmap->GetWidth()/4, pBitmap->GetHeight()/4));
2639 pHistory->SetThumbnail(pBitmap);
2641 Bitmap *pFavIcon = __pWebViewer->GetFaviconN();
2644 pHistory->SetFavIconBitmap(*pFavIcon);
2648 HistoryPresentationModel::GetInstance()->SaveTempHistory(*pHistory);
2655 if (__pWindowInfo && __pWindowInfo->faviconUrl == "")
2657 // temperary fixed (webpage can be not loaded)
2660 AppLog("MainForm::OnLoadingCompleted done");
2664 MainForm::OnEstimatedProgress(int progress)
2666 AppLogDebug("MainForm::OnEstimatedProgress entered");
2667 if (progress < DEFAULT_PROGRESS_PERCENTAGE)
2668 progress = DEFAULT_PROGRESS_PERCENTAGE;
2670 // __pAddressbar->UpdateProgress(progress);
2671 UpdateProgress(progress);
2674 void MainForm::OnFaviconReceived(const Tizen::Graphics::Bitmap& favicon)
2676 AppLog("MainForm::OnFaviconReceived");
2677 Bitmap* pFavIconBitmap = __pWebViewer->GetFaviconN();
2679 if (pFavIconBitmap != null)
2681 pFavIconBitmap->GetWidth();
2682 pFavIconBitmap->GetHeight();
2687 MainForm::OnUrlValueChanged(Addressbar&)
2693 MainForm::OnUrlSubmitted(Addressbar& addBar)
2695 AppLog("MainForm::OnUrlSubmitted");
2696 String url = addBar.GetUrl();
2697 AppLog("MainForm::OnUrlSubmitted url is %ls", url.GetPointer());
2699 // __pFooterPanel->SetShowState(true);
2700 if(__pFooterUrlField)
2701 __pFooterUrlField->SetCursorPosition(__pFooterUrlField->GetTextLength());
2702 OnAddressCancelledClicked(*__pAddressbar);
2703 // __pAddressbar->SetShowState(false);
2704 // RelayoutControls(false);
2709 MainForm::LoadUrl(String& url)
2713 // UrlEncoder::Encode(url, L"UTF-8", encodedUrl);
2714 AppLogDebug("MainForm::LoadUrl enter");
2716 if (__pWebViewer != null)
2718 __pWebViewer->SetShowState(true);
2719 __pWebViewer->Invalidate(true);
2722 if (url.CompareTo(L"") == 0)
2726 if(__pFooterPanel != null)
2728 __pFooterPanel->SetShowState(true);
2729 __pFooterPanel->Invalidate(true);
2736 String firstPattern(L"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)");
2737 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)
2739 RegularExpression firstRegex;
2740 RegularExpression secondRegex;
2742 firstRegex.Construct(firstPattern, REGEX_CASELESS);
2743 secondRegex.Construct(secondPattern, REGEX_CASELESS);
2746 ret = firstRegex.Match(url, false); // This returns true value
2747 flag = secondRegex.Match(url, false); // Checks whether URL typed is of type abc.com (i.e without protocol in front of it)
2749 if (ret == true && __pWebViewer != null)
2751 __pWebViewer->LoadUrl(url);
2753 else if(__pWebViewer != null)
2755 String tempUrl = L"http://";
2756 tempUrl.Append(url);
2760 __pWebViewer->LoadUrl(tempUrl);
2764 UrlEncoder::Encode(url, L"UTF-8", encodedUrl);
2765 __pWebViewer->LoadUrl(SettingPresentationModel::GetInstance()->GetSearchUrl(encodedUrl));
2768 if (__pAddressbar != null)
2770 //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
2771 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING);
2774 AppLogDebug("MainForm::LoadUrl exit");
2781 MainForm::OnStopClicked(Addressbar& addBar)
2783 AppLogDebug("MainForm::OnStopClicked called");
2786 //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
2787 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
2788 __pWebViewer->StopLoading();
2789 RequestRedraw(true);
2794 MainForm::OnReaderClicked(const Addressbar& addBar)
2796 int bodyWidth = ((double)(GetClientAreaBounds().width))*0.73;
2798 CreateReaderPanel();
2799 AppLogDebug("MainScene::OnReaderClicked entered");
2802 /*if (__pArticleReaderPanel)
2804 AppLogDebug("showstate true for reader panel");
2805 __pArticleReaderPanel->SetShowState(true);
2806 __pArticleReaderPanel->Show();
2808 int xPos = __pArticleReaderPanel->GetX();
2809 int yPos = __pArticleReaderPanel->GetY();
2810 AppLog("OnReaderClicked() xPos = %d",xPos);
2811 AppLog("OnReaderClicked() yPos = %d",yPos);
2813 if (__pReaderData == null)
2818 String loadData = L"<html>\
2820 <meta name='viewport' content='width=device-width*0.73,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no'>\
2825 background-color: transparent;\
2844 <body style='width:'";
2845 loadData.Append(bodyWidth);
2846 loadData.Append(L"px'>");
2847 AppLogDebug("data->GetLength %d",__pReaderData->GetLength());
2848 loadData.Append(*__pReaderData);
2849 loadData.Append(L"</body></html>");
2852 buf.Construct(loadData.GetLength());
2853 AppLogDebug("data->GetLength %d",loadData.GetLength());
2854 for (int z=0;z<loadData.GetLength();z++)
2857 loadData.GetCharAt(z,b);
2858 buf.SetByte((byte)b);
2862 if (__pWebReader != null)
2864 __pWebReader->LoadData(L"",buf,L"text/html");
2865 AppLogDebug("LoadData result %s",GetErrorMessage(GetLastResult()));
2869 AppLogDebug("cannot LoadData __pWebReader is null");
2875 MainForm::OnBackClicked(/*const Addressbar& addBar*/)
2877 // AppLog("MainForm::OnBackClicked");
2878 result r = E_FAILURE;
2880 if (__pWebViewer && __pWebViewer->CanGoBack())
2882 __pWebViewer->GoBack();
2884 else if(__pWindowInfo->isJavascriptInitiated == false)
2887 pApp = UiApp::GetInstance();
2890 r = pApp->Terminate();
2893 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
2901 WindowInfo* pWindowInfo = null;
2903 SceneManager* pSceneManager = SceneManager::GetInstance();
2904 if (pSceneManager == null)
2908 ArrayList* pAllWindowList = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList();
2909 if (pAllWindowList == NULL)
2911 pApp = UiApp::GetInstance();
2914 r = pApp->Terminate();
2917 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
2922 if (pAllWindowList != null)
2924 totalCount = pAllWindowList->GetCount();
2926 for (int count = 0; count < totalCount; count++)
2928 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count));
2929 if (pWindowInfo == null)
2931 pApp = UiApp::GetInstance();
2934 r = pApp->Terminate();
2937 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
2942 if (pSceneManager != null && pWindowInfo != null && pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID && pWindowInfo->isJavascriptInitiated == true)
2944 r = SceneRegister::DestroyAndUnRegisterScene(pWindowInfo->sceneID);
2947 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
2950 r = pAllWindowList->RemoveAt(count, true);
2951 __pWindowInfo = null;
2954 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
2959 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count - 1));
2963 pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1));
2965 if (pWindowInfo == null)
2967 pApp = UiApp::GetInstance();
2970 r = pApp->Terminate();
2976 r = pSceneManager->GoBackward(BackwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE));
2979 AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
2993 MainForm::OnForwardClicked(/*const Addressbar& addBar*/)
2995 AppLog("MainForm::OnForwardClicked");
2996 if (__pWebViewer == null)
2999 if (__pWebViewer->CanGoForward())
3001 __pWebViewer->GoForward();
3006 MainForm::OnAddressCancelledClicked(const Addressbar& addBar)
3008 result r = E_SUCCESS;
3010 __pFooterPanel->SetShowState(true);
3011 __pFooterUrlField->SetFocusable(true);
3014 __pWebViewer->SetFocus();
3015 else if(__pMostVisitedListView)
3016 __pMostVisitedListView->SetFocus();
3017 else if(__pMultiWindowButton)
3018 __pMultiWindowButton->SetFocus();
3019 __pMoreButton->SetFocus();
3021 __pAddressbar->SetShowState(false);
3023 RelayoutControls(false);
3028 MainForm::OnAddressBarModeChanged(/*const Addressbar& addBar*/)
3030 __prevAddressBarMode = __curAddressBarMode;
3032 if (__pAddressbar != null)
3034 __curAddressBarMode = GetAddressbarMode();
3037 if (__curAddressBarMode == ADDRESSBAR_MODE_EDIT)
3039 __adressPanelPosition.y = 0;
3040 if (__pAddressbar != null)
3042 __webControlPosition.y = __pAddressbar->GetHeight() - 12;
3043 __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));
3044 __pAddressbar->Invalidate(true);
3046 if (__pWebViewer != null)
3048 __pWebViewer->StopLoading();
3051 else if(__curAddressBarMode == ADDRESSBAR_MODE_LOADING)
3053 __adressPanelPosition.y = 0;
3054 if (__pAddressbar != null)
3056 __webControlPosition.y = 0;
3057 __pAddressbar->SetBounds(Rectangle(0, __pAddressbar->GetY() - __pAddressbar->GetHeight(), GetClientAreaBounds().width, __pAddressbar->GetHeight()));
3058 __pAddressbar->Invalidate(true);
3064 MainForm::OnClipboardClosed(const Addressbar& addBar)
3066 RelayoutControls(false);
3070 MainForm::OnAddressBarKeypadClosed(const Addressbar& addBar, bool footerState)
3073 __pAddressbar->SetShowState(false);
3075 __pFooterPanel->SetShowState(true);
3077 __pWebViewer->SetFocus();
3078 if(__pFooterUrlField)
3080 __pFooterUrlField->SetFocusable(true);
3082 RelayoutControls(false);
3086 MainForm::OnAddressBarKeypadOpened(const Addressbar& addBar)
3088 if (__pFindWordControl && __pFindWordControl->GetShowState() == true)
3090 __pAddressbar->SetShowState(false);
3094 if (__pAddressbar != null && __pAddressbar->GetShowState() == false)
3096 __pAddressbar->SetShowState(true);
3097 __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight()));
3098 __pAddressbar->SetAddressbarURLFocus();
3102 RelayoutControls(false);
3106 MainForm::OnAddressBarKeypadWillOpen(const Addressbar& addBar)
3108 __pFooterPanel->SetShowState(false);
3112 MainForm::OnAddressBarKeypadBoundsChanged(const Addressbar& addBar)
3114 AppLog("KeypadBoundsChanged");
3115 RelayoutControls(false);
3119 MainForm::OnPageTitleReceived(const Tizen::Base::String& title)
3123 __pWindowInfo->pageTitle = title;
3124 if (__pWebViewer != null)
3126 __pWindowInfo->pageUrl = __pWebViewer->GetUrl();
3129 if (__pAddressbar != null && __pWebViewer != null)
3131 SetUrl(__pWebViewer->GetUrl());
3132 __pAddressbar->Invalidate(true);
3137 MainForm::UpdateFavicon(void)
3139 bool urlImageType = false;
3140 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();");
3141 Bitmap* pBitmap = null;
3143 if (tempPath && tempPath->GetLength() > 0 && tempPath->CompareTo(L"undefined") != 0)
3145 if (__pWindowInfo != null)
3148 url.SetUri(*tempPath);
3149 if (url.GetHost().GetLength() == 0)
3152 webUrl.SetUri(__pWebViewer->GetUrl());
3153 result r = url.SetHost(webUrl.GetHost());
3160 if (url.GetScheme().GetLength() == 0)
3163 webUrl.SetUri(__pWebViewer->GetUrl());
3164 url.SetScheme(webUrl.GetScheme());
3166 __pWindowInfo->faviconUrl = url.ToString();
3168 pBitmap = __pWebViewer->GetFaviconN();
3170 if (pBitmap != null)
3172 if (__pWindowInfo->pFavicon != NULL)
3174 __pWindowInfo->pFavicon = null;
3176 __pWindowInfo->pFavicon = new(std::nothrow) Bitmap();
3177 __pWindowInfo->pFavicon->Construct(*pBitmap,Rectangle(0,0,pBitmap->GetWidth(),pBitmap->GetHeight()));
3179 __pAddressbar->SetFaviconBitmap(*__pWindowInfo->pFavicon);
3181 FaviconManager::GetInstance()->SaveFavicon(*__pWindowInfo->pFavicon, __pWindowInfo->faviconUrl);
3183 else if(__pWindowInfo->pFavicon != null)
3185 __pAddressbar->SetFaviconBitmap(*__pWindowInfo->pFavicon);
3189 Bitmap *pDefaultBmp = FaviconManager::GetInstance()->GetDefaultFaviconN();
3190 if(pDefaultBmp != null)
3192 __pAddressbar->SetFaviconBitmap(*pDefaultBmp);
3201 AppLogDebug("Error occured: %s", GetErrorMessage(GetLastResult()));
3208 MainForm::OnLoadingRequested(const Tizen::Base::String& url,
3209 Tizen::Web::Controls::WebNavigationType type)
3211 // when load new page if find word panel is open its show state is false
3212 ShowFindWordPanel(false);
3214 __pFooterPanel->Invalidate(true);
3217 uriInfo.SetUri(url);
3219 if(url.Contains(IDS_TIZEN_SERVICE))
3222 String delim(L":;,");
3224 // Creates a StringTokenizer instance
3225 StringTokenizer strTok(url, delim);
3227 int count = strTok.GetTokenCount(); // count == 4
3229 HashMap *pMap = new HashMap();
3235 while (strTok.HasMoreTokens())
3237 AppLog("Token: %ls", token.GetPointer());
3238 strTok.GetNextToken(token); // Tizen, StringTokenizer, Sample, code
3239 if(token.Contains(IDS_APPID))
3241 token.SubString(6, appId);
3242 AppLog("AppID:%ls", appId.GetPointer());
3244 else if(token.Contains("="))
3246 String *pKey = new String();
3247 String *pValue = new String();
3249 token.IndexOf("=", 0, index);
3252 token.SubString(0, index, *pKey);
3253 token.SubString(index + 1, *pValue);
3254 pMap->Add(pKey, pValue);
3260 AppControl *pAppControl = null;
3261 String operationId = L"http://tizen.org/appcontrol/operation/main";
3262 pAppControl = dynamic_cast<AppControl*>(AppManager::FindAppControlN(appId, operationId));
3265 result r = pAppControl->Start(null, null, pMap, null);
3269 AppLogException("AppControl not found");
3275 if ( __pAddressbar != null && __pAddressbar->GetShowState() == true)
3277 __pAddressbar->SetShowState(false);
3278 OnAddressCancelledClicked(*__pAddressbar);
3279 __pAddressbar->Invalidate(true);
3285 MainForm::OnWebDataReceived(const Tizen::Base::String& mime,
3286 const Tizen::Net::Http::HttpHeader& httpHeader)
3288 return Tizen::Web::Controls::WEB_DECISION_CONTINUE;
3293 MainForm::OnWebPageBlockSelected(Tizen::Web::Controls::Web& source, Tizen::Graphics::Point& startPoint, Tizen::Graphics::Point& endPoint)
3295 AppLog("MainForm::OnWebPageBlockSelected");
3296 if (__pHitElementResult != null)
3298 delete __pHitElementResult;
3299 __pHitElementResult = null;
3302 if (__pWebViewer != null)
3304 AppLog("MainForm::OnWebPageBlockSelected web not null");
3305 __pHitElementResult = __pWebViewer->GetElementByPointN(endPoint);
3308 if (__pHitElementResult == null)
3313 if (__pHitElementResult->HasImage() != true)
3315 String tagName = __pHitElementResult->GetTagName();
3316 String type = __pHitElementResult->GetAttributeValue("type");
3318 __currentSelectedStr.Clear();
3319 AppLog("__currentSelectedStr after clear %ls",__currentSelectedStr.GetPointer());
3320 __currentSelectedStr = __pWebViewer->GetTextFromBlock();
3321 AppLog("__currentSelectedStr after GetTextFromBlock %ls",__currentSelectedStr.GetPointer());
3323 if (((tagName.CompareTo(L"INPUT") == 0) || tagName.CompareTo(L"TEXTAREA") == 0) && __isLongPressedDone == true)
3325 AppLog("MainForm::OnWebPageBlockSelected show paste option");
3327 InitSelectTextContextMenu(endPoint,true);
3328 __pImageMenu->SetShowState(true);
3329 __pImageMenu->Show();
3330 __pImageMenu->Invalidate(true);
3332 else if(__isLongPressedDone == true)
3334 AppLog("MainForm::OnWebPageBlockSelected no paste option");
3336 if(__pHitElementResult->GetUrl().GetLength() > 0)
3338 __currentSelectedStr.Clear();
3339 __currentSelectedStr = __pHitElementResult->GetUrl();
3341 InitSelectTextContextMenu(endPoint,false);
3342 __pImageMenu->SetShowState(true);
3343 __pImageMenu->Show();
3344 __pImageMenu->Invalidate(true);
3347 AppLog("MainForm::OnWebPageBlockSelected block text is %ls",__currentSelectedStr.GetPointer());
3348 AppLog("MainForm::OnWebPageBlockSelected tag name is %ls",tagName.GetPointer());
3349 AppLog("MainForm::OnWebPageBlockSelected type name is %ls",type.GetPointer());
3355 MainForm::OnWebPageShowRequested(Tizen::Web::Controls::Web& source)
3361 MainForm::OnWebWindowCreateRequested(void)
3363 WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewScene();
3365 if (pNewWindowInfo == null)
3369 result r = E_SUCCESS;
3370 SceneManager* pSceneManager = SceneManager::GetInstance();
3371 if (pSceneManager == NULL)
3375 ArrayList* pArgList = new(std::nothrow) ArrayList();
3376 if (pArgList == NULL)
3380 r = pArgList->Construct();
3383 pNewWindowInfo->isJavascriptInitiated = true;
3384 pArgList->Add(*pNewWindowInfo);
3385 r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList);
3389 AppLogDebug("EditHistoryListForm::OnFormBackRequested Failed to GoBackward %s",GetErrorMessage(r));
3396 return pNewWindowInfo->pCurrentWeb;
3400 MainForm::RelayoutControls(bool showAddressbar)
3402 __webControlPosition.y = 0;
3403 __webControlHeight = GetClientAreaBounds().height;
3404 AppLog("Client area height: %d", __webControlHeight);
3406 AppLog("Client area height: %d", __webControlHeight);
3407 if(__pAddressbar != null && __pAddressbar->GetShowState() == true)
3409 __webControlPosition.y += __pAddressbar->GetHeight();
3410 __webControlHeight -= __pAddressbar->GetHeight();
3411 __pAddressbar->SetBounds(0, 0, __pAddressbar->GetWidth(), __pAddressbar->GetHeight());
3413 else if(__pFindWordControl != null && __pFindWordControl->GetShowState() == true)
3415 __webControlPosition.y += __pFindWordControl->GetHeight();
3416 __webControlHeight -= __pFindWordControl->GetHeight();
3417 __pFindWordControl->SetBounds(0, 0, GetClientAreaBounds().width, __pFindWordControl->GetHeight());
3420 if(__pFooterPanel != null && __pFooterPanel->GetShowState() == true)
3422 __webControlHeight -= __pFooterPanel->GetHeight();
3423 __pFooterPanel->SetBounds(0, __webControlPosition.y + __webControlHeight, GetClientAreaBounds().width, __pFooterPanel->GetHeight());
3425 if (__pWebViewer != null && __pWebViewer->GetShowState() == true)
3427 __pWebViewer->SetBounds(0, __webControlPosition.y, GetClientAreaBounds().width, __webControlHeight);
3428 __pWebViewer->Invalidate(false);
3430 if(__pMostVisitedListView != null && __pAddressbar != null && __pFooterPanel != null)
3432 __pMostVisitedListView->SetBounds(Tizen::Graphics::Rectangle(0,__webControlPosition.y , GetClientAreaBounds().width, __webControlHeight));
3439 MainForm::ShowFindWordPanel(bool show , bool isTouchPressed)
3441 if (__pFindWordControl == null)
3447 InitFindWordPanel();
3448 // __pFindWordEditField->SetText(__currentSearchStr);
3449 //__pFindWordCountLabel->SetText(L"");
3450 // __pFindWordCountLabel->SetText(L"0/0");
3451 __pFindWordControl->SetShowState(true);
3455 if(__pFindWordControl != null)
3457 __pFindWordControl->SetShowState(false);
3461 AppLog("MainForm::ShowFindWordPanel %d",show);
3462 if (show && !isTouchPressed)
3464 if (__pFindWordEditField)
3466 __pFindWordEditField->SetFocus();
3467 __pFindWordEditField->ShowKeypad();
3472 if (__pFindWordEditField)
3473 __pFindWordEditField->HideKeypad();
3476 RelayoutControls(false);
3480 MainForm::StartWordSearch()
3482 //Get the count of occurances of the word in the current page
3483 __maxOccurrances = 0;
3484 __currentWordIndex = 0;
3486 __pFindWordPrev->SetEnabled(false);
3487 String *pCountStr = null;
3488 __pWebViewer->SearchTextAllAsync(__currentSearchStr, false);
3489 /*__pWebViewer->EvaluateJavascriptN(L"document.body.textContent.match(/" + __currentSearchStr + "/gi).length;");
3490 if (pCountStr != null)
3492 Integer::Parse(*pCountStr, 10, __maxOccurrances);
3496 AppLogDebug("'%ls' is found %d times", __currentSearchStr.GetPointer(), __maxOccurrances);
3501 void MainForm::OnTextFound(int totalCount, int currentOrdinal)
3503 AppLog("MainForm::OnTextFound totalCount %d",totalCount);
3504 AppLog("MainForm::OnTextFound currentOrdinal %d",currentOrdinal);
3506 if(totalCount == -1 || totalCount == 0)
3508 __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),64,__pFindWordCountLabel->GetHeight());
3509 __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),214+80,__pFindWordEditField->GetHeight());
3512 else if(totalCount > 100)
3514 __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight());
3515 __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight());
3519 __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight());
3520 __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight());
3523 __maxOccurrances = totalCount;
3524 __currentWordIndex = currentOrdinal;
3526 //Reset the UI controls as per the maxOccurrance value
3527 if (totalCount <= 0)
3529 AppLog("Word not found");
3530 //Show error notification to user
3531 __pFindWordNext->SetEnabled(false);
3532 __pFindWordCountLabel->SetText(L"0/0");
3533 __pFindWordNext->Invalidate(false);
3534 __pFindWordPrev->Invalidate(false);
3535 __pFindWordCountLabel->Invalidate(false);
3539 if (totalCount == 1)
3541 __pFindWordNext->SetEnabled(false);
3545 __pFindWordNext->SetEnabled(true);
3548 String countStr = L"";
3549 countStr.Append(__currentWordIndex);
3550 countStr.Append(L"/");
3551 countStr.Append(__maxOccurrances);
3552 __pFindWordCountLabel->SetText(countStr);
3553 // __pFindWordCountLabel->SetShowState(true);
3554 __pFindWordCountLabel->Invalidate(false);
3556 //FindNextWord(true);
3557 //Update the controls
3558 __pFindWordNext->Invalidate(false);
3559 __pFindWordPrev->Invalidate(false);
3560 __pFindWordCountLabel->Invalidate(false);
3564 MainForm::FindNextWord(bool next)
3568 if (__pWebViewer->SearchText(__currentSearchStr, true) == true)
3570 if(__currentWordIndex < __maxOccurrances)
3572 __currentWordIndex++;
3578 if (__pWebViewer->SearchText(__currentSearchStr, false) == true)
3580 if(__currentWordIndex > 1)
3582 __currentWordIndex--;
3587 String countStr = L"";
3588 countStr.Append(__currentWordIndex);
3589 countStr.Append(L"/");
3590 countStr.Append(__maxOccurrances);
3591 __pFindWordCountLabel->SetText(countStr);
3592 // __pFindWordCountLabel->SetShowState(true);
3593 __pFindWordCountLabel->Invalidate(false);
3594 if (__currentWordIndex >= __maxOccurrances)
3596 __pFindWordNext->SetEnabled(false);
3600 __pFindWordNext->SetEnabled(true);
3602 if (__currentWordIndex <= 1)
3604 __pFindWordPrev->SetEnabled(false);
3608 __pFindWordPrev->SetEnabled(true);
3610 __pFindWordPrev->Invalidate(false);
3611 __pFindWordNext->Invalidate(false);
3612 __pFindWordCountLabel->Invalidate(false);
3613 __pFindWordControl->Invalidate(true);
3616 MainForm::OnWebKeypadWillOpen(Tizen::Web::Controls::Web& source)
3618 AppLog("MainForm::OnWebKeypadWillOpen");
3619 __isWebKeypadOpened = true;
3620 // OnAddressBarKeypadOpened(*__pAddressbar);
3624 MainForm::OnWebKeypadOpened(Tizen::Web::Controls::Web& source)
3627 if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
3629 __currentSearchStr = L"";
3630 __currentWordIndex = 0;
3631 __maxOccurrances = 0;
3632 __pFindWordEditField->SetText(L"");
3633 __pFindWordNext->SetEnabled(false);
3634 __pFindWordPrev->SetEnabled(false);
3635 __pFindWordCountLabel->SetText(L"0/0");
3636 __pWebViewer->SearchText(L"aaaabbbbcccc",true);
3637 __pFindWordControl->SetShowState(false);
3638 if (__pFindWordEditField)
3639 __pFindWordEditField->HideKeypad();
3643 if (__pWebViewer != null && __pFooterPanel != null)
3645 AppLog("MainForm::OnOrientationChanged GetClientAreaBounds().height %d ", GetClientAreaBounds().height);
3646 if(__pAddressbar != null)
3648 __pAddressbar->SetShowState(false);
3650 if(__pFindWordControl != null)
3652 __pFindWordControl->SetShowState(false);
3654 __pFooterPanel->SetShowState(false);
3655 __pWebViewer->SetBounds(Rectangle(0, 0,GetClientAreaBounds().width, GetClientAreaBounds().height));
3661 MainForm::OnWebKeypadClosed(Tizen::Web::Controls::Web& source)
3663 __pFooterPanel->SetShowState(true);
3664 OnAddressBarKeypadClosed(*__pAddressbar);
3665 __isWebKeypadOpened = false;
3669 MainForm::OnTouchDoublePressed(const Control& source, const Point& currentPosition, const TouchEventInfo& touchInfo)
3671 Control* temp = const_cast< Control* >(&source);
3672 Header* pHeader = dynamic_cast< Header* >(temp);
3673 if (pHeader != null)
3675 //Header double - clicked
3676 AppLog("Header double clicked");
3678 if(__pFindWordControl)
3680 AppLog("MainForm::OnTouchPressed %d",__pFindWordControl->GetShowState());
3681 ShowFindWordPanel(__pFindWordControl->GetShowState(), true);
3685 AppLog("MainScene::OnTouchDoublePressed");
3686 bool isReaderEnabled = SettingPresentationModel::GetInstance()->IsRunReaderEnabled();
3687 if (isReaderEnabled == true)
3691 delete __pReaderData;
3692 __pReaderData = null;
3694 String filePath = Tizen::App::UiApp::GetInstance()->GetAppRootPath();
3695 filePath.Append(L"data/reader.js");
3701 result r = E_SUCCESS;
3702 FileAttributes attr;
3704 File::GetAttributes(filePath,attr);
3706 r = file.Construct(filePath, L"r+");
3709 AppLogDebug("File construct failed with %s", GetErrorMessage(r));
3712 char* pScript = new(std::nothrow) char[attr.GetFileSize()+1];
3715 AppLogDebug("Memory allocation for file failed %s", GetErrorMessage(r));
3718 file.Read(pScript,attr.GetFileSize());
3720 AppLogDebug("scipt length %d",strlen(pScript));
3721 String strScript = L"";
3722 strScript.Append(pScript);
3723 __pReaderData = __pWebViewer->EvaluateJavascriptN(strScript);
3726 AppLog("MainScene::data is null Error :%s",GetErrorMessage(GetLastResult()));
3729 AppLogDebug("evaluateJavascript result %s , __pReaderData %ls",GetErrorMessage(GetLastResult()),__pReaderData->GetPointer());
3730 if (__pReaderData->CompareTo(L"undefined") != 0 && __pReaderData->CompareTo(L"") != 0)
3732 //__pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_READER);
3733 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_READER);
3739 void MainForm::OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
3741 AppLog("abcde::MainForm::OnTouchLongPressed %d, %d" ,currentPosition.x,currentPosition.y);
3743 if (__pHitElementResult != null)
3745 delete __pHitElementResult;
3746 __pHitElementResult = null;
3749 if (__pWebViewer != null)
3751 AppLog("MainForm::OnTouchLongPressed web not null");
3752 __pHitElementResult = __pWebViewer->GetElementByPointN(currentPosition);
3755 if (__pHitElementResult == null)
3760 if (__pHitElementResult->HasImage() == true)
3762 InitImageContextMenu(currentPosition);
3763 __pImageMenu->SetShowState(true);
3764 __pImageMenu->Show();
3765 __pImageMenu->Invalidate(true);
3767 else if(__pHitElementResult->HasUrl() == true)
3769 String tempURl = __pHitElementResult->GetUrl();
3770 AppLog("tempURl is %ls", tempURl.GetPointer());
3771 const Bitmap* pBitmap = __pHitElementResult->GetImage();
3772 if (pBitmap != null)
3780 InitImageLinkContextMenu(currentPosition);
3781 __pImageMenu->SetShowState(true);
3782 __pImageMenu->Show();
3783 __pImageMenu->Invalidate(true);
3787 String tagName = __pHitElementResult->GetTagName();
3788 String type = __pHitElementResult->GetAttributeValue("type");
3789 String value = __pHitElementResult->GetAttributeValue(L"value");
3790 String innerHtml = __pHitElementResult->GetAttributeValue(L"innerHTML");
3792 __currentSelectedStr.Clear();
3793 __currentSelectedStr = __pWebViewer->GetTextFromBlock();
3795 AppLog("tag name is %ls", tagName.GetPointer());
3796 AppLog("type is %ls", type.GetPointer());
3797 AppLog("innerHtml is %ls", innerHtml.GetPointer());
3799 if (((tagName.CompareTo(L"INPUT") == 0) || tagName.CompareTo(L"TEXTAREA") == 0) && value.GetLength() == 0 && innerHtml.GetLength() == 0 && __isWebKeypadOpened == true)
3801 AppLog("MainForm::OnWebPageBlockSelected show paste option");
3803 InitSelectTextContextMenu(currentPosition,true, true);
3806 // __pImageMenu->SetShowState(true);
3807 // __pImageMenu->Show();
3808 // __pImageMenu->Invalidate(true);
3811 __isLongPressedDone = true;
3812 result r =__pWebViewer->SetBlockSelectionPosition(currentPosition);
3813 AppLog("setselectionselectedornot %s",GetErrorMessage(r));
3816 __inputEventToBeSupressed = true;
3820 MainForm::OnTouchReleased(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
3822 AppLog("MainForm::OnTouchReleased");
3824 HitElementResult* pHitElement = __pWebViewer->GetElementByPointN(currentPosition);
3825 if(pHitElement != null && pHitElement->HasUrl() == true && __inputEventToBeSupressed == true)
3827 __pWebViewer->ConsumeInputEvent();
3829 if(pHitElement != null)
3833 __inputEventToBeSupressed = false;
3837 MainForm::OnTouchPressed(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
3844 MainForm::OnTouchReleased(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
3846 if(__pFindWordControl && __pFindWordControl->GetShowState() == true)
3848 __currentSearchStr = L"";
3849 __currentWordIndex = 0;
3850 __maxOccurrances = 0;
3851 __pFindWordEditField->SetText(L"");
3852 __pFindWordNext->SetEnabled(false);
3853 __pFindWordPrev->SetEnabled(false);
3854 __pFindWordCountLabel->SetText(L"0/0");
3855 __pWebViewer->SearchText(L"aaaabbbbcccc",true);
3856 __pFindWordControl->SetShowState(false);
3857 __pFindWordEditField->HideKeypad();
3859 if(__pAddressbar->GetShowState() == false)
3861 __pAddressbar->SetShowState(true);
3862 __pAddressbar->SetAddressbarURLFocus();
3863 __pFooterUrlField->SetFocusable(false);
3864 __pFooterPanel->SetShowState(false);
3871 MainForm::OnTouchMoved(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
3877 MainForm::OnTouchCanceled(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
3883 MainForm::OnPreviewTouchPressed(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
3889 MainForm::OnPreviewTouchReleased(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
3895 MainForm::OnPreviewTouchMoved(Tizen::Ui::Control& source, const Tizen::Ui::TouchEventInfo& touchEventInfo)
3901 MainForm::OnOrientationChanged (const Tizen::Ui::Control &source, Tizen::Ui::OrientationStatus orientationStatus)
3903 AppLog("MainForm::OnOrientationChanged GetClientAreaBounds %d, %d",GetClientAreaBounds().width,GetClientAreaBounds().height);
3904 int widthContextItem = 0;
3905 if(__pFindWordControl != null)
3906 ShowFindWordPanel(__pFindWordControl->GetShowState(), false);
3907 if ( __pFooterLabel != null)
3909 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pFooterLabel->GetWidth(), __pFooterLabel->GetHeight());
3912 __pFooterLabel->SetBackgroundBitmap(*pBitmap);
3917 if (__pFindWordBgLabel != null)
3919 Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_FINDWORD_INPUT_FIELD_BG, __pFindWordBgLabel->GetWidth(), __pFindWordBgLabel->GetHeight());
3920 if (pBitmap != null)
3922 __pFindWordBgLabel->SetBackgroundBitmap(*pBitmap);
3928 __pMenu->SetShowState(false);
3929 if( GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE)
3931 widthContextItem = WIDTH_CONTEXT_MENU_BUTTON_LANDSCAPE;
3935 widthContextItem = WIDTH_CONTEXT_MENU_BUTTON_PORTRAIT;
3940 AppLog("__pFooterPanel->GetShowState() is true");
3942 __pFooterPanel->SetBounds(0, GetClientAreaBounds().height - __pFooterPanel->GetHeight(), __pFooterPanel->GetWidth(), __pFooterPanel->GetHeight());
3943 __pFooterPanel->Invalidate(true);
3947 if(__pMoreButton && __pMenu)
3949 Point p = Point(__pMoreButton->GetX() + __pMoreButton->GetWidth() / 2, GetBounds().height - __pMoreButton->GetHeight());
3950 __pMenu->SetAnchorPosition(p);
3951 __pMenu->Invalidate(true);
3954 String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
3955 if (homePage.CompareTo((L"IDS_BR_BODY_MOST_VISITED_SITES")) == 0)
3957 InitMostVisitedSitesView(orientationStatus);
3960 RelayoutControls(false);
3961 if (__pArticleReaderPanel != null)
3963 if (__pArticleReaderPanel->GetShowState() == true)
3965 __pArticleReaderPanel->SetBounds((GetClientAreaBounds().width - __pArticleReaderPanel->GetWidth())/2,(GetClientAreaBounds().height - __pArticleReaderPanel->GetHeight())/2, __pArticleReaderPanel->GetWidth(), __pArticleReaderPanel->GetHeight());
3967 if (__pBlankPanel != null)
3968 __pBlankPanel->SetBounds(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height);
3970 if (__pWebReader != null)
3972 __pWebReader->SetBounds(Rectangle(2,2, __pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight() - 96));
3974 Bitmap* pBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
3975 Bitmap* pSrcBitmap = CommonUtil::GetNinepatchedBitmapN(L"I01_popup_bottom_bg.9.png",__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight());
3977 if ( pBitmap != null && pSrcBitmap != null)
3979 AppLog("CreateReaderPanel ninepatchbitmap found");
3980 pBitmap->Merge(Point(0,__pArticleReaderPanel->GetHeight() - 96),*pSrcBitmap,Rectangle(0,0,pSrcBitmap->GetWidth(),pSrcBitmap->GetHeight()));
3983 __pArticleReaderLabel->SetBounds(Rectangle(__pArticleReaderPanel->GetX(),__pArticleReaderPanel->GetY(),__pArticleReaderPanel->GetWidth(),__pArticleReaderPanel->GetHeight()));
3984 __pArticleReaderLabel->SetBackgroundBitmap(*pBitmap);
3985 if (pBitmap != null)
3990 if (pSrcBitmap != null)
3999 if (__pAddressbar != null)
4001 int width = GetClientAreaBounds().width;
4002 __pAddressbar->OrientationChanged(width);
4007 MainForm::OnSettingsChange(int settingvalue)
4009 AppLogDebug("MainForm::OnSettingsChange entered");
4011 if(settingvalue == (int)REGISTRY_SETTING_HOMEPAGE)
4013 __pAddressbar->ResetGuideText();
4015 if (__pWebViewer == null)
4017 AppLogDebug("Webviewer is not initialized yet.");
4021 if (settingvalue == (int) REGISTRY_SETTING_DEFAULT_VIEW)
4023 WebSetting settings = __pWebViewer->GetSetting();
4024 if (SettingPresentationModel::GetInstance()->GetDefaultView().CompareTo(CommonUtil::GetString(L"IDS_BR_BODY_FIT_TO_WIDTH")) == 0)
4026 settings.SetAutoFittingEnabled(true);
4028 else if (SettingPresentationModel::GetInstance()->GetDefaultView().CompareTo(CommonUtil::GetString(L"IDS_BR_BODY_READABLE")) == 0)
4030 settings.SetAutoFittingEnabled(false);
4032 __pWebViewer->SetSetting(settings);
4034 else if (settingvalue == (int) REGISTRY_SETTING_RUN_JAVASCRIPT)
4036 WebSetting settings = __pWebViewer->GetSetting();
4037 settings.SetJavascriptEnabled(SettingPresentationModel::GetInstance()->IsRunJavascriptEnabled());
4038 __pWebViewer->SetSetting(settings);
4040 else if (settingvalue == (int) REGISTRY_SETTING_DISPLAY_IMAGES)
4042 WebSetting settings = __pWebViewer->GetSetting();
4043 settings.SetAutoImageLoadEnabled(SettingPresentationModel::GetInstance()->IsDisplayImagesEnabled());
4044 __pWebViewer->SetSetting(settings);
4046 else if (settingvalue == (int) REGISTRY_SETTING_BLOCK_POPUP)
4048 WebSetting settings = __pWebViewer->GetSetting();
4049 settings.SetJavaScriptPopupEnabled(SettingPresentationModel::GetInstance()->IsBlockPopUp());
4050 __pWebViewer->SetSetting(settings);
4052 else if (settingvalue == (int) REGISTRY_SETTING_ACCEPT_COOKIES)
4056 __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());
4060 else if (settingvalue == (int) REGISTRY_SETTING_SHOW_SECURITY_WARNINGS)
4062 WebSetting settings = __pWebViewer->GetSetting();
4063 if (SettingPresentationModel::GetInstance()->IsSecurityWarningsEnabled() == true)
4065 settings.SetCertificateErrorHandlingMode(WEB_CERTIFICATE_ERROR_HANDLING_MODE_USER_CONFIRM);
4069 settings.SetCertificateErrorHandlingMode(WEB_CERTIFICATE_ERROR_HANDLING_MODE_CONTINUE);
4071 __pWebViewer->SetSetting(settings);
4073 else if (settingvalue == (int) REGISTRY_SETTING_READER_FONT_SIZE)
4077 AppLogDebug("IntMainForm fontsize Changed to %d",SettingPresentationModel::GetInstance()->GetReaderFontSize());
4078 WebSetting settings = __pWebReader->GetSetting();
4079 settings.SetFontSize(SettingPresentationModel::GetInstance()->GetReaderFontSize());
4080 __pWebReader->SetSetting(settings);
4086 MainForm::OnSettingsReset()
4090 __pWebViewer->SetCookieEnabled(SettingPresentationModel::GetInstance()->IsCookiesEnabled());
4091 __pWebViewer->SetSetting(SettingPresentationModel::GetInstance()->GetWebSettings());
4096 MainForm::OnClearCache()
4098 result r = E_SUCCESS;
4100 if (__pWebViewer != NULL)
4102 r = __pWebViewer->ClearCache();
4105 AppLogDebug("Cache cleared success");
4109 AppLogDebug("Cache cleared fail");
4115 MainForm::OnClearCookie()
4117 result r = E_SUCCESS;
4119 if (__pWebViewer != NULL)
4121 __pWebViewer->ClearCookie();
4125 AppLogDebug("Cookie cleared success");
4129 AppLogDebug("Cache cleared fail");
4134 MainForm::OnClearFormData()
4136 result r = E_SUCCESS;
4138 if (__pWebViewer != NULL)
4140 __pWebViewer->ClearFormData();
4144 AppLogDebug("Cookie cleared success");
4148 AppLogDebug("Cache cleared fail");
4153 MainForm::OnClearPasswords()
4155 result r = E_SUCCESS;
4157 if (__pWebViewer != NULL)
4159 __pWebViewer->ClearLoginFormData();
4163 AppLogDebug("Cookie cleared success");
4167 AppLogDebug("Cache cleared fail");
4173 MainForm::findDistance(int x1,int y1,int x2, int y2)
4175 int deltaX = Math::Abs(x2 - x1);
4176 int deltaY = Math::Abs(y2 - y1);
4177 double num = deltaX*deltaX + deltaY*deltaY;
4183 for (i = 0; i < 20; i++)
4185 x = (((x*x)+ num)/(2*x));
4196 MainForm::OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
4198 if(__pFindWordControl)
4200 AppLog("MainForm::OnTouchPressed %d",__pFindWordControl->GetShowState());
4201 ShowFindWordPanel(__pFindWordControl->GetShowState(), true);
4203 __isLongPressedDone = false;
4206 IList* pList = null;
4207 pList = touch.GetTouchInfoListN(source);
4211 int count = pList->GetCount();
4214 TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));
4215 __touchPoint1 = pTouchInfo->position;
4217 /*if (__pAddressbar != null)
4219 if (__pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_LOADING_COMPLETE && __pAddressbar->GetAddressbarMode() != ADDRESSBAR_MODE_LOADING)
4221 if (__pAddressbar->GetAddressbarMode() == ADDRESSBAR_MODE_EDIT)
4223 __pAddressbar->SaveAddressbarEditText();
4225 __pAddressbar->SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
4228 __pAddressbar->Invalidate(true);
4230 if (GetAddressbarMode() != ADDRESSBAR_MODE_LOADING_COMPLETE && GetAddressbarMode() != ADDRESSBAR_MODE_LOADING)
4232 if (GetAddressbarMode() == ADDRESSBAR_MODE_EDIT)
4234 //__pAddressbar->SaveAddressbarEditText();
4236 SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING_COMPLETE);
4239 else if (count == 2)
4241 AppLogDebug("MainForm::OnTouchPressed count is two");
4242 TouchInfo* pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(0));
4243 __touchPoint1 = pTouchInfo->position;
4245 pTouchInfo = static_cast<TouchInfo*>(pList->GetAt(1));
4246 __touchPoint2 = pTouchInfo->position;
4252 pList->RemoveAll(true);
4259 MainForm::OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo)
4261 __currentWordIndex = 0;
4262 __isLongPressedDone = false;
4267 MainForm::MoveUiControls()
4272 MainForm::OnTextValueChanged (const Tizen::Ui::Control &source)
4274 if(&source == dynamic_cast<Control*>(__pFooterUrlField) && __pFooterUrlField != null)
4276 if(__pFooterUrlField->GetTextLength() == 0)
4278 __pFooterUrlField->SetKeypadActionEnabled(false);
4282 __pFooterUrlField->SetKeypadActionEnabled(true);
4285 if (__pFindWordEditField != null)
4287 __currentSearchStr = __pFindWordEditField->GetText();
4288 __pFindWordNext->SetEnabled(false);
4289 __pFindWordPrev->SetEnabled(false);
4290 __pFindWordNext->Invalidate(true);
4291 __pFindWordPrev->Invalidate(true);
4292 __pFindWordCountLabel->SetText(L"0/0");
4293 __pFindWordCountLabel->Invalidate(true);
4295 AppLog("__currentSearchStr %ls",__currentSearchStr.GetPointer());
4296 if (__currentSearchStr.GetLength() > 0)
4302 __currentSearchStr = L"aaaaaaaabbbbbbbccccccc";
4304 __currentSearchStr = L"";
4305 AppLogDebug("Enter something");
4310 MainForm::InitMostVisitedSitesPanel(Tizen::Ui::OrientationStatus orientationStatus)
4317 MainForm::InitMostVisitedSitesView(Tizen::Ui::OrientationStatus orientationStatus)
4319 if(__pWebViewer != null)
4322 AppLog("MainForm::InitMostVisitedSitesView");
4323 result r = E_SUCCESS;
4326 if (__pWebViewer != null && __pMostVisitedListView != null)
4331 if (__pMostVisitedListView != null)
4333 RemoveControl(*__pMostVisitedListView);
4335 if(__pMostVisitedSites != null)
4337 __pMostVisitedSites->RemoveAll(true);
4340 HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites);
4342 __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight();
4343 __pMostVisitedListView = new(std::nothrow) ListView();
4345 int height = GetClientAreaBounds().height;
4347 if(__pFooterPanel->GetShowState() == true)
4349 height = height - __pFooterPanel->GetHeight();
4351 if(__pAddressbar->GetShowState() == true)
4353 height -= __pAddressbar->GetHeight();
4356 r = __pMostVisitedListView->Construct(Tizen::Graphics::Rectangle(0,0 , GetClientAreaBounds().width, height),true,false);
4360 delete __pMostVisitedListView;
4361 AppLogDebug("Addressbar init failed with %s", GetErrorMessage(r));
4364 __pMostVisitedListView->SetItemProvider(*this);
4365 __pMostVisitedListView->AddListViewItemEventListener(*this);
4366 __pMostVisitedListView->SetTextOfEmptyList(CommonUtil::GetString(L"IDS_BR_BODY_NO_RECENTLY_VISITED_SITES"));
4367 AddControl(*__pMostVisitedListView);
4368 __pMostVisitedListView->UpdateList();
4375 MainForm::GetImagePath(void)
4379 String formattedTime;
4380 DateTime currentTime;
4381 LocaleManager localManager;
4382 SystemTime::GetCurrentTime(TIME_MODE_WALL, currentTime);
4384 localManager.Construct();
4385 Locale locale = localManager.GetSystemLocale();
4386 //Locale locale(LANGUAGE_ENG, COUNTRY_US);
4388 // Get date formatter
4389 DateTimeFormatter* pTimeFormatter = DateTimeFormatter::CreateDateTimeFormatterN(locale, DATE_TIME_STYLE_DEFAULT);
4393 pTimeFormatter->Format(currentTime, formattedTime);
4396 AppLog("current time stamp is %ls", formattedTime.GetPointer());
4397 String delim(L" :");
4398 StringTokenizer strTok(formattedTime, delim);
4401 String str1("GMT+00");
4402 while (strTok.HasMoreTokens())
4404 strTok.GetNextToken(token); // Osp, StringTokenizer, Sample, code
4405 if(token.Equals(str1))
4407 AppLog("token is %ls", token.GetPointer());
4408 imageName.Append(token);
4414 void MainForm::UpdateImageContent(ByteBuffer* aBuffer, String imageName)
4416 result r = E_FAILURE;
4417 AppLog("Content manager 1");
4418 ContentId contentId;
4419 ContentManager contentManager;
4420 r = contentManager.Construct();
4423 AppLog("Content manager update content result %s" ,GetErrorMessage(r));
4426 Tizen::Base::String contentPath = Tizen::System::Environment::GetMediaPath() + L"Downloads/";
4427 contentPath.Append(imageName);
4428 contentPath.Append(".jpg");
4429 contentId = contentManager.CreateContent(*aBuffer, contentPath);
4430 AppLog("Content manager update content result %s" ,GetErrorMessage(GetLastResult()));
4434 MainForm::SetForwardButtonEnabled(bool isEnabled)
4436 __pGoForwardBtn->SetEnabled(isEnabled);
4437 __pGoBackBtn->Invalidate(true);
4441 MainForm::SetBackButtonEnabled(bool isEnabled)
4443 __pGoBackBtn->SetEnabled(isEnabled);
4444 __pGoBackBtn->Invalidate(true);
4448 MainForm::UpdateProgress(int percentage)
4450 __progressPercentage = percentage;
4451 if (percentage == 0 || percentage == 100)
4453 __isLoadingData = false;
4454 if (percentage == 100)
4456 __isLoadingCompleted = true;
4457 __progressPercentage = 0;
4461 __isLoadingCompleted = false;
4466 __isLoadingData = true;
4468 UpdateProgressBitmap();
4472 MainForm::GetProgress(void)
4474 return __progressPercentage;
4478 MainForm::UpdateProgressBitmap(void)
4480 result r = E_SUCCESS;
4481 if (__pProgressbarLabel == null)
4483 int w = __pProgressbarLabel->GetWidth();
4484 int h = __pProgressbarLabel->GetHeight();
4486 int progressWidth = 0;
4487 Bitmap* pRetBitmap = null;
4489 if (__progressPercentage == 0 || __progressPercentage == 100)
4491 __pProgressbarLabel->SetShowState(false);
4492 __pProgressbarLabel->Invalidate(false);
4497 __pProgressbarLabel->SetShowState(true);
4498 __pProgressbarLabel->Invalidate(false);
4501 r = canvas.Construct(Rectangle(0, 0, w, h));
4505 AppLogException("Canvas construction failed with %s", GetErrorMessage(r));
4510 Bitmap *pBgBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR_BG);
4514 pBgBmp->Scale(Dimension(w, h));
4515 canvas.DrawBitmap(Point(0,0), *pBgBmp);
4519 progressWidth = (double) (w) * __progressPercentage / 100;
4520 AppLogDebug("progressWidth: %d", progressWidth);
4521 Bitmap *pProgressBmp = AppResource::GetInstance()->GetBitmapN(IDB_TITLE_PROGRESS_BAR);
4523 if (pProgressBmp != null)
4525 pProgressBmp->Scale(Dimension(progressWidth, h));
4526 canvas.DrawBitmap(Point(0,0), *pProgressBmp);
4527 delete pProgressBmp;
4530 pRetBitmap = new (std::nothrow) Bitmap();
4532 if (pRetBitmap == null)
4534 AppLogException("Bitmap creation failed with %s", GetErrorMessage(r));
4538 pRetBitmap->Construct(canvas, canvas.GetBounds());
4540 if (__pProgressbarLabel != null && pRetBitmap != null)
4542 __pProgressbarLabel->SetBackgroundBitmap(*pRetBitmap);
4543 __pProgressbarLabel->Invalidate(false);
4546 if (pRetBitmap != null)
4554 void MainForm::SetAddressbarMode(AddressBarMode addMode)
4556 AppLogDebug("AddressBar::setAddressbarMode to %d",addMode);
4558 __currentAddMode = addMode;
4562 case ADDRESSBAR_MODE_INVALID:
4567 case ADDRESSBAR_MODE_READER:
4569 __pStopBtn->SetShowState(false);
4570 __pClearBtn->SetShowState(false);
4573 case ADDRESSBAR_MODE_LOADING:
4575 __pRefreshBtn->SetShowState(false);
4576 __pStopBtn->SetShowState(true);
4577 __pClearBtn->SetShowState(false);
4580 case ADDRESSBAR_MODE_LOADING_COMPLETE:
4582 // SetUrl(__pAddressbar->GetUrl());
4584 __pRefreshBtn->SetShowState(true);
4585 __pStopBtn->SetShowState(false);
4586 __pClearBtn->SetShowState(false);
4589 case ADDRESSBAR_MODE_EDIT:
4591 __pRefreshBtn->SetShowState(false);
4592 __pStopBtn->SetShowState(false);
4593 __pClearBtn->SetShowState(true);
4600 OnAddressBarModeChanged();
4603 AddressBarMode MainForm::GetAddressbarMode(void)
4605 return __currentAddMode;
4608 void MainForm::SetUrl(const String& url)
4612 if (__pFooterUrlField != NULL)
4614 String removedHttpUrl = RemoveHttpTextFromDisplayURL();
4615 if (removedHttpUrl.IsEmpty() == false)
4617 __pFooterUrlField->SetText(removedHttpUrl);
4618 __pAddressbar->SetUrl(__displayUrl);
4622 __pFooterUrlField->SetText(__displayUrl);
4623 __pAddressbar->SetUrl(__displayUrl);
4625 if(__pFooterUrlField)
4626 __pFooterUrlField->SetCursorPosition(__pFooterUrlField->GetTextLength());
4627 __pFooterUrlField->Invalidate(false);
4628 __pAddressbar->Invalidate(true);
4629 // __pFooterUrlField->SetCursorPosition(0);
4634 MainForm::RemoveHttpTextFromDisplayURL(void)
4636 bool isHttpText = __displayUrl.Contains(L"http://");
4637 String updatedDisplayUrl;
4638 updatedDisplayUrl.Clear();
4640 if (isHttpText == true)
4642 __displayUrl.SubString(7,updatedDisplayUrl);
4644 return updatedDisplayUrl;
4647 void MainForm::OnSharePopupControlStarted(void)
4649 __pWebViewer->AddTouchEventListener(*this);