X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FIntMainForm.cpp;h=80c3f9ba259ccd093db1719183426215e471e12a;hb=fb33af330d71021ffac47d33b439d20e4c027546;hp=d0085e0064bc75ce7ea7d5f6e974cc80a84474b2;hpb=e26ea0af9c06eab46dd893a8a196047c4dcc6d20;p=apps%2Fosp%2FInternet.git diff --git a/src/IntMainForm.cpp b/src/IntMainForm.cpp index d0085e0..80c3f9b 100644 --- a/src/IntMainForm.cpp +++ b/src/IntMainForm.cpp @@ -55,8 +55,8 @@ using namespace Tizen::System; using namespace Tizen::Web; using namespace Tizen::Web::Controls; -static const wchar_t* IDB_SEARCH_INPUT_FIELD_BG = L"I01_toolbar_input_field.9.png"; -static const wchar_t* IDB_FINDWORD_INPUT_FIELD_BG = L"I01_toolbar_input_field_findword.9.png"; +static const wchar_t* IDB_SEARCH_INPUT_FIELD_BG = L"I01_toolbar_input_field.#.png"; +static const wchar_t* IDB_FINDWORD_INPUT_FIELD_BG = L"I01_toolbar_input_field_findword.#.png"; static const wchar_t* IDB_BTN_BACK = L"I01_icon_Back.png"; static const wchar_t* IDB_BTN_BACK_PRESS = L"I01_icon_Back_press.png"; static const wchar_t* IDB_CONTRLBAR_ICON_BOOKMARK = L"I01_search_list_icon_favorite.png"; @@ -68,8 +68,8 @@ static const wchar_t* IDB_CONTRLBAR_ICON_NEW_WINDOW_PRESS = L"I01_icon_plus_pres static const wchar_t* IDB_CONTROLBAR_ICON_CREATE_DISABLE = L"I01_controlbar_icon_create_disable.png"; static const wchar_t* IDB_BUTTON_ON = L"00_button_on.png"; static const wchar_t* IDB_BUTTON_OFF = L"00_button_off.png"; -static const wchar_t* IDB_ICON_BOOKMARK_OFF_TEMP = L"I01_icon_bookmark_off_temp.png"; -static const wchar_t* IDB_ICON_BOOKMARK_ON_TEMP = L"I01_icon_bookmark_on_temp.png"; +static const wchar_t* IDB_ICON_BOOKMARK_OFF_TEMP =L"00_icon_favorite_off_74x74.png"; +static const wchar_t* IDB_ICON_BOOKMARK_ON_TEMP = L"00_icon_favorite_on_74x74.png"; static const wchar_t* IDS_TIZEN_SERVICE = L"tizen-service"; static const wchar_t* IDS_APPID = L"AppID"; static const wchar_t* IDS_KEY = L"key"; @@ -201,6 +201,7 @@ MainForm::MainForm(void) __pBlankPanel = null; __pArticleReaderLabel = null; __webControlHeight = 0; + __webControlHeightF = 0; __prevAddressBarMode = ADDRESSBAR_MODE_INVALID; __curAddressBarMode = ADDRESSBAR_MODE_INVALID; __pMostVisitedSites = null; @@ -458,6 +459,7 @@ MainForm::InitWebControl() const int Y_WEBCONTROL_POSITION = 0; __webControlHeight = GetHeight() - __pFooterPanel->GetHeight(); + __webControlHeightF = GetHeightF() - __pFooterPanel->GetHeightF(); if (__pMostVisitedListView) { @@ -474,6 +476,7 @@ MainForm::InitWebControl() AppLogDebug("Initialization failed"); return E_FAILURE; } + AppLog("GetClientAreaBounds().width %d",GetClientAreaBounds().width); r = __pWebViewer->Construct(Rectangle(0, Y_WEBCONTROL_POSITION, GetClientAreaBounds().width,__webControlHeight + 12)); if (IsFailed(r)) @@ -486,15 +489,15 @@ MainForm::InitWebControl() else { r = AddControl(__pWebViewer); - if (IsFailed(r)) { - delete __pWebViewer; + __pWebViewer->Destroy(); __pWebViewer = null; AppLogDebug("Web addcontrol failed with %s", GetErrorMessage(r)); return r; } __webControlPosition = __pWebViewer->GetPosition(); + __webControlPositionF = __pWebViewer->GetPositionF(); r = __pWebViewer->SetSetting(SettingPresentationModel::GetInstance()->GetWebSettings()); if (IsFailed(r)) { @@ -563,6 +566,7 @@ MainForm::InitFooter(void) { return E_FAILURE; } +// __pFooterPanel->SetBackgroundColor(Color(255,0,0)); //__pFooterPanel->SetBackgroundColor(CUSTOM_COLOR_TRANSPARENT); Bitmap *pBitmap = CommonUtil::GetNinepatchedBitmapN(IDB_SEARCH_INPUT_FIELD_BG, __pFooterLabel->GetWidth(), __pFooterLabel->GetHeight()); if (pBitmap != null) @@ -753,6 +757,8 @@ MainForm::InitFooter(void) } else __pFooterPanel->SetShowState(false); + + SetAddressbarMode(GetAddressbarMode()); AppLogDebug("MainForm::InitFooter exit"); return E_SUCCESS; } @@ -892,6 +898,8 @@ MainForm::InitSelectTextContextMenu(Point p, bool pasteOption, bool onlyPasteOpt delete __pImageMenu; __pImageMenu = null; } +// Point q(0,0); +// __pWebViewer->GetBlockRange(p,q); if(p.y < 150) { @@ -975,12 +983,17 @@ MainForm::InitSelectTextContextMenuF(FloatPoint p, bool pasteOption, bool onlyPa delete __pImageMenu; __pImageMenu = null; } - +// FloatPoint q(0.0,0.0); +// __pWebViewer->GetBlockRange(p,q); if(p.y < 150) { p.y = p.y + 50; direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD; } + else if(__pWebViewer != null && (p.y > (__pWebViewer->GetHeight() + __pWebViewer->GetY()))) + { + p.y = __pWebViewer->GetHeight() + __pWebViewer->GetY(); + } else { if(GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE ) @@ -1018,7 +1031,7 @@ MainForm::InitSelectTextContextMenuF(FloatPoint p, bool pasteOption, bool onlyPa } } } - if(clipboardAvailable == false && onlyPasteOption == true) + if(clipboardAvailable == false && (onlyPasteOption == true || __pHitElementResult->GetAttributeValue("type").Equals(L"password",false) == true)) { return E_FAILURE; } @@ -1030,7 +1043,7 @@ MainForm::InitSelectTextContextMenuF(FloatPoint p, bool pasteOption, bool onlyPa - if(onlyPasteOption == false) + if(onlyPasteOption == false && __pHitElementResult->GetAttributeValue("type").Equals(L"password",false) == false) { r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_OPT_COPY"),IDA_COPY_TEXT_CLICKED); } @@ -1038,7 +1051,7 @@ MainForm::InitSelectTextContextMenuF(FloatPoint p, bool pasteOption, bool onlyPa { r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_COM_BODY_PASTE"),IDA_PASTE_TEXT_CLICKED); } - if(onlyPasteOption == false) + if(onlyPasteOption == false && __pHitElementResult->GetAttributeValue("type").Equals(L"password",false) == false) { r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_FIND_ON_PAGE_ABB"),IDA_FIND_TEXT__CLICKED); r = __pImageMenu->AddItem(CommonUtil::GetString(L"IDS_BR_OPT_SHARE"),IDA_SHARE_TEXT_CLICKED); @@ -1332,7 +1345,7 @@ MainForm::CreateItem (int index, int itemWidth) { if (pItem != null) { - pItem->AddElement(pageURLRect, IDA_FORMAT_URL_STRING, pageURL, 32, CUSTOM_COLOR_GREY, CUSTOM_COLOR_GREY, CUSTOM_COLOR_GREY, true); + pItem->AddElement(pageURLRect, IDA_FORMAT_URL_STRING, pageURL, 32, CUSTOM_COLOR_GREY, CUSTOM_COLOR_LISTVIEW_TEXT, CUSTOM_COLOR_LISTVIEW_TEXT, true); } } @@ -1409,6 +1422,7 @@ MainForm::OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listV void MainForm::OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status) { + AppLog("MainForm::OnListViewItemStateChanged called"); History* pHistory = static_cast < History* >(__pMostVisitedSites->GetAt(index)); String url = pHistory->GetHistoryUrl(); if (url != null) @@ -1577,7 +1591,8 @@ MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) } else { - r = pSceneManager->GoBackward(BackwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE)); + r = pSceneManager->GoForward(ForwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_HISTORY_OPTION_ADD_HISTORY,SCENE_DESTROY_OPTION_DESTROY)); +// r = pSceneManager->GoBackward(BackwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE)); if (IsFailed(r)) { AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r)); @@ -2392,7 +2407,9 @@ MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) if (__pAddressbar != null && __pWebViewer != NULL) { __webControlPosition.y = __pAddressbar->GetHeight() - 12; + __webControlPositionF.y = __pAddressbar->GetHeightF() - 12.0f; __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight() - ( /*__pAddressbar->GetY() +*/ __pAddressbar->GetHeight() - 12); + __webControlHeightF = GetClientAreaBoundsF().height - __pFooterPanel->GetHeightF() - ( /*__pAddressbar->GetY() +*/ __pAddressbar->GetHeightF() - 12.0f); if (__pFooterPanel->GetShowState() == false) __pWebViewer->SetBounds(Rectangle(0,__webControlPosition.y,GetClientAreaBounds().width, GetClientAreaBounds().height - ( /*__pAddressbar->GetY() +*/ __pAddressbar->GetHeight() - 12))); @@ -2460,7 +2477,7 @@ MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) break; case IDA_COPY_TEXT_CLICKED: { - __pWebViewer->ReleaseBlock(); +// __pWebViewer->ReleaseBlock();//as per hyunn lee request for issue 53500 // need to implement //__currentSelectedStr // Sets data to a clip board item @@ -2498,23 +2515,55 @@ MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) { String idElement = __pHitElementResult->GetAttributeValue(L"id"); String nameElement = __pHitElementResult->GetAttributeValue(L"name"); + String classElement = __pHitElementResult->GetAttributeValue(L"class"); String tagElement = __pHitElementResult->GetTagName(); + String contenteditable = __pHitElementResult->GetAttributeValue("contenteditable"); AppLog("MainForm::IDA_PASTE_TEXT_CLICKED id is %ls",idElement.GetPointer()); + String str = L"document.getElementsByName('"; + str.Append(nameElement); + str.Append("').length"); + String* pNameCount = __pWebViewer->EvaluateJavascriptN(str); + + str.Clear(); + str = L"document.getElementsByClassName('"; + str.Append(classElement); + str.Append("').length"); + String* pClassCount = __pWebViewer->EvaluateJavascriptN(str); String script; - if(idElement.GetLength() != 0) + if(contenteditable.Equals(L"true",false) == true) + { + AppLog("gmail paste need to support"); + + script = L"function replaceSelectedText(replacementText) { var sel, range; if (window.getSelection) { sel = window.getSelection(); if (sel.rangeCount) { range = sel.getRangeAt(0); range.deleteContents(); range.insertNode(document.createTextNode(replacementText)); } } else if (document.selection && document.selection.createRange) { range = document.selection.createRange(); range.text = replacementText; } }"; + script.Append("replaceSelectedText("); + script.Append("\""); + script.Append(*pString); + script.Append("\");"); + } + else if(idElement.GetLength() != 0) { - script = L"function insertAtCursor(myField, myValue) { if (document.selection) { document.getElementById(myField).focus(); sel = document.selection.createRange(); sel.text = myValue; } else if (document.getElementById(myField).selectionStart || document.getElementById(myField).selectionStart == '0'){ var startPos = document.getElementById(myField).selectionStart; var endPos = document.getElementById(myField).selectionEnd; document.getElementById(myField).value = document.getElementById(myField).value.substring(0, startPos)+ myValue + document.getElementById(myField).value.substring(endPos, document.getElementById(myField).value.length); } else { document.getElementById(myField).value += myValue; } } "; - script.Append("insertAtCursor('"); - script.Append(idElement); - script.Append("',"); + 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; } } "; + script.Append("insertAtCursor("); + script.Append(L"document.activeElement"); + script.Append(","); script.Append("\""); script.Append(*pString); script.Append("\");"); } - else if (nameElement.GetLength() != 0) + else if (classElement.GetLength() != 0 && pClassCount->Equals("1",false) == true) { - script = L"function insertAtCursor(myField, myValue) { if (document.selection) { document.getElementByName(myField)[0].focus(); sel = document.selection.createRange(); sel.text = myValue; } else if (myField.selectionStart || myField.selectionStart == '0'){ var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos)+ myValue + myField.value.substring(endPos, myField.value.length); } else { document.getElementByName(myField)[0].value += myValue; } } "; + 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; } } "; + script.Append("insertAtCursor(document.getElementsByClassName('"); + script.Append(classElement); + script.Append("')[0],"); + script.Append("\""); + script.Append(*pString); + script.Append("\");"); + } + else if (nameElement.GetLength() != 0 && pNameCount->Equals("1",false) == true) + { + 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; } } "; script.Append("insertAtCursor(document.getElementsByName('"); script.Append(nameElement); script.Append("')[0],"); @@ -2522,12 +2571,11 @@ MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) script.Append(*pString); script.Append("\");"); } - else//adding for twitter post page + else if(tagElement.GetLength() != 0) //adding for twitter post page { - script = L"function insertAtCursor(myField, myValue) { if (document.selection) { document.getElementsByTagName(myField)[0].focus(); sel = document.selection.createRange(); sel.text = myValue; } else if (myField.selectionStart || myField.selectionStart == '0'){ var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos)+ myValue + myField.value.substring(endPos, myField.value.length); } else { document.getElementsByTagName(myField)[0].value += myValue; } } "; - script.Append("insertAtCursor(document.getElementsByTagName('"); - script.Append(tagElement); - script.Append("')[0],"); + 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; } } "; + + script.Append("insertAtCursor(document.activeElement,"); script.Append("\""); script.Append(*pString); script.Append("\");"); @@ -2535,8 +2583,12 @@ MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) AppLog("MainForm::OnTouchLongPressed script is %ls",script.GetPointer()); String* pStr = __pWebViewer->EvaluateJavascriptN(script); delete pStr; + delete pNameCount; + delete pClassCount; } delete pItem; + if(__pWebViewer) + __pWebViewer->ReleaseBlock(); } break; case IDA_GO_BACK: @@ -2561,7 +2613,8 @@ MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId) // LoadUrl(url); if (__pWebViewer != null && __pAddressbar != null) { - __pWebViewer->Reload(); + LoadUrl(url); + //__pWebViewer->Reload(); SetAddressbarMode((AddressBarMode)ADDRESSBAR_MODE_LOADING); } @@ -2691,7 +2744,7 @@ MainForm::OnFormBackRequested(Tizen::Ui::Controls::Form& source) return; } r = pAllWindowList->RemoveAt(count, true); -// __pWindowInfo = null; + __pWindowInfo = null; if (IsFailed(r)) { AppLogException("MainForm::OnFormBackRequested failed with %s", GetErrorMessage(r)); @@ -2790,7 +2843,8 @@ MainForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, InitFooter(); InitAddressbar(); - __pFooterPanel->SetBounds(0, GetClientAreaBounds().height - __pFooterPanel->GetHeight(), GetClientAreaBounds().width, __pFooterPanel->GetHeight()); + FloatRectangle footerPanelBounds = FloatRectangle(0.0f, (GetClientAreaBoundsF().height) - __pFooterPanel->GetHeightF(), GetClientAreaBoundsF().width, __pFooterPanel->GetHeightF()); + __pFooterPanel->SetBounds(CoordinateSystem::AlignToDevice(footerPanelBounds)); // hiding the address bar // __pAddressbar->SetBounds(__pAddressbar->GetX(), __pAddressbar->GetY() - __pAddressbar->GetHeight(), __pAddressbar->GetWidth(), __pAddressbar->GetHeight()); @@ -2840,6 +2894,10 @@ MainForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, } } + if(__pMostVisitedListView && __pMostVisitedListView->GetShowState() == true) + { + __pMostVisitedListView->UpdateList(); + } if (__pAddressbar != null && pArgs != null && (previousSceneId == IDSCN_BOOKMARK_VIEW || previousSceneId == IDSCN_HISTORY_LIST)) { String* pBookmarkUrl = dynamic_cast< String* >(pArgs->GetAt(0)); @@ -2903,6 +2961,8 @@ MainForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousSceneId, RelayoutControls(false); AppLog("ABC: OnSceneActivatedN started exit"); + if(__pWebViewer) + AppLog("WebControl's width height %d %d,",__pWebViewer->GetWidth(),__pWebViewer->GetHeight()); } @@ -2939,11 +2999,14 @@ MainForm::OnSceneDeactivated(const Tizen::Ui::Scenes::SceneId& currentSceneId, pCanvas->DrawBitmap(Point(0,0),*pBitmap); delete pBitmap; } - if(__pWebViewer != null && __pWindowInfo != null) + if(__pWebViewer != null && __pWindowInfo != null && __pWindowInfo->pWebCanvasBitmap != null) pCanvas->DrawBitmap(__pWebViewer->GetPosition(),*__pWindowInfo->pWebCanvasBitmap); WindowInfo::pFormCanvasBitmap = new(std::nothrow) Bitmap(); - WindowInfo::pFormCanvasBitmap->Construct(*pCanvas,Rectangle(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height - __pFooterPanel->GetHeight())); + if (__pFooterPanel) + { + WindowInfo::pFormCanvasBitmap->Construct(*pCanvas,Rectangle(0,0,GetClientAreaBounds().width,GetClientAreaBounds().height - __pFooterPanel->GetHeight())); + } delete pCanvas; delete pWebCanvas; if(__pAddressbar) @@ -3074,7 +3137,7 @@ MainForm::OnLoadingStarted(void) if (__pWindowInfo != NULL) { // resetting the page title to blank, it will be received in OnPageTitleReceived() - __pWindowInfo->pageTitle = L""; +// __pWindowInfo->pageTitle = L""; __pWindowInfo->pageUrl = __pWebViewer->GetUrl(); } __pAddressbar->Invalidate(true); @@ -3088,7 +3151,6 @@ MainForm::OnLoadingCanceled(void) } - void MainForm::OnKeypadWillOpen(Tizen::Ui::Control& source) { @@ -3102,7 +3164,7 @@ MainForm::OnKeypadOpened(Tizen::Ui::Control& source) AppLog("XYZ::MainForm::OnKeypadOpened"); __isKeypadOpened = true; __pFooterPanel->SetShowState(false); - + RelayoutControls(false); } void @@ -3145,6 +3207,8 @@ MainForm::OnLoadingCompleted(void) return; } + if(__pWindowInfo && __pWebViewer) + __pWindowInfo->pageTitle = __pWebViewer->GetTitle(); if(__pImageMenu && __pImageMenu->GetShowState()) { __pImageMenu->SetShowState(false); @@ -3209,7 +3273,6 @@ MainForm::OnLoadingCompleted(void) __pHistory->SetFavIconBitmap(*pTempBitmap); } - AppLog("MainForm::OnLoadingCompleted setting the fav icon 2"); } Canvas* pCanvas = __pWebViewer->GetCanvasN(); @@ -3223,6 +3286,13 @@ MainForm::OnLoadingCompleted(void) Bitmap *pFavIcon = __pWebViewer->GetFaviconN(); if (pFavIcon) { + Tizen::Graphics::BufferInfo bmpInfo; + pFavIcon->Lock(bmpInfo); + AppLog("rrrr:: width %d height %d of the faviconbitmap from bufferinfo", bmpInfo.width, bmpInfo.height); + + AppLog("MainForm::OnLoadingCompleted setting the fav icon 2"); + + AppLog("rrrr:: width %d height %d of the faviconbitmap",pFavIcon->GetWidth(),pFavIcon->GetHeight()); __pHistory->SetFavIconBitmap(*pFavIcon); delete pFavIcon; } @@ -3409,7 +3479,7 @@ MainForm::LoadUrl(String& url) } else { - UrlEncoder::Encode(url, L"UTF-8", encodedUrl); + UrlEncoder::Encode(url, L"UTF-8", encodedUrl); __pWebViewer->LoadUrl(SettingPresentationModel::GetInstance()->GetSearchUrl(encodedUrl)); } } @@ -3434,6 +3504,11 @@ MainForm::OnFocusGained(const Tizen::Ui::Control& source) __pFooterPanel->SetShowState(false); } + if(__pWebViewer) + { + __pWebViewer->ReleaseBlock(); + } + if(__pAddressbar) { __pAddressbar->SetShowState(true); @@ -3605,7 +3680,8 @@ MainForm::OnBackClicked(/*const Addressbar& addBar*/) } else { - r = pSceneManager->GoBackward(BackwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE)); + r = pSceneManager->GoForward(ForwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_HISTORY_OPTION_ADD_HISTORY,SCENE_DESTROY_OPTION_DESTROY)); +// r = pSceneManager->GoBackward(BackwardSceneTransition(pWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE)); if (IsFailed(r)) { AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r)); @@ -3685,6 +3761,7 @@ MainForm::OnAddressBarModeChanged(/*const Addressbar& addBar*/) if (__pAddressbar != null) { __webControlPosition.y = __pAddressbar->GetHeight() - 12; + __webControlPositionF.y = __pAddressbar->GetHeightF() - 12.0f; __pAddressbar->SetBounds(Rectangle(0,0,GetClientAreaBounds().width,__pAddressbar->GetHeight())); __pAddressbar->Invalidate(true); } @@ -3699,6 +3776,7 @@ MainForm::OnAddressBarModeChanged(/*const Addressbar& addBar*/) if (__pAddressbar != null) { __webControlPosition.y = 0; + __webControlPositionF.y = 0.0f; __pAddressbar->SetBounds(Rectangle(0, __pAddressbar->GetY() - __pAddressbar->GetHeight(), GetClientAreaBounds().width, __pAddressbar->GetHeight())); __pAddressbar->Invalidate(true); } @@ -3728,6 +3806,10 @@ MainForm::OnAddressBarKeypadClosed(const Addressbar& addBar, bool footerState) __pFooterPanel->SetShowState(true); } __isKeypadOpened = false; + if(__pNotification && __pNotification->GetShowState()) + { + __pNotification->SetPosition(0,GetClientAreaBounds().height - __pNotification->GetHeight()); + } RelayoutControls(false,footerState); } @@ -3737,6 +3819,10 @@ MainForm::OnAddressBarKeypadOpened(const Addressbar& addBar) { AppLog("XYZ::MainForm::OnAddressBarKeypadOpened"); __isKeypadOpened = true; + if(__pNotification && __pNotification->GetShowState()) + { + __pNotification->SetPosition(0,GetClientAreaBounds().height - __pNotification->GetHeight()); + } RelayoutControls(false); } @@ -3792,7 +3878,8 @@ MainForm::UpdateFavicon(void) if (url.GetHost().GetLength() == 0) { Uri webUrl; - webUrl.SetUri(__pWebViewer->GetUrl()); + if(__pWebViewer) + webUrl.SetUri(__pWebViewer->GetUrl()); result r = url.SetHost(webUrl.GetHost()); if(IsFailed(r)) { @@ -3803,7 +3890,8 @@ MainForm::UpdateFavicon(void) if (url.GetScheme().GetLength() == 0) { Uri webUrl; - webUrl.SetUri(__pWebViewer->GetUrl()); + if(__pWebViewer) + webUrl.SetUri(__pWebViewer->GetUrl()); url.SetScheme(webUrl.GetScheme()); } __pWindowInfo->faviconUrl = url.ToString(); @@ -3948,7 +4036,7 @@ MainForm::OnWebDataReceived(const Tizen::Base::String& mime, void MainForm::OnWebPageBlockSelected(Web& source, FloatPoint& startPoint, FloatPoint& endPoint) { - AppLog("MainForm::OnWebPageBlockSelected"); + AppLog("LMN::MainForm::OnWebPageBlockSelected"); // if(__isLongPressedDone == false) // return; @@ -3970,6 +4058,10 @@ MainForm::OnWebPageBlockSelected(Web& source, FloatPoint& startPoint, FloatPoint if(GetLastResult() == E_INVALID_ARG || (__pHitElementResult->GetTagName().Equals(L"INPUT",false) == false && __pHitElementResult->GetTagName().Equals(L"TEXTAREA",false) == false)) { __pHitElementResult = __pWebViewer->GetElementByPointN(__longPressPoint); + if(__pHitElementResult == null) + { + __pHitElementResult = __pWebViewer->GetElementByPointN(endPoint); + } } AppLog("datafirst endpoint error %s",GetErrorMessage(GetLastResult())); } @@ -3984,6 +4076,7 @@ MainForm::OnWebPageBlockSelected(Web& source, FloatPoint& startPoint, FloatPoint { String tagName = __pHitElementResult->GetTagName(); String type = __pHitElementResult->GetAttributeValue("type"); + String contenteditable = __pHitElementResult->GetAttributeValue("contenteditable"); AppLog("TagName %ls",tagName.GetPointer()); @@ -4000,11 +4093,11 @@ MainForm::OnWebPageBlockSelected(Web& source, FloatPoint& startPoint, FloatPoint AppLog("Tagnameseemstobe INPUT"); } - if (((tagName.Equals(L"INPUT",false) == true) || tagName.Equals(L"TEXTAREA",false) == true) /*&& __isLongPressedDone == true*/ && __currentSelectedStr.CompareTo(L"") !=0) + if (((tagName.Equals(L"INPUT",false) == true) || tagName.Equals(L"TEXTAREA",false) == true) || contenteditable.Equals(L"true",false) == true/*&& __isLongPressedDone == true*/ && __currentSelectedStr.CompareTo(L"") !=0 ) { AppLog("MainForm::OnWebPageBlockSelected show paste option"); - InitSelectTextContextMenuF(FloatPoint(endPoint.x,endPoint.y + __pWebViewer->GetY()),true); + InitSelectTextContextMenuF(FloatPoint(startPoint.x,startPoint.y + __pWebViewer->GetY()),true); if(__pImageMenu) { __pImageMenu->SetShowState(true); @@ -4021,7 +4114,7 @@ MainForm::OnWebPageBlockSelected(Web& source, FloatPoint& startPoint, FloatPoint __currentSelectedStr.Clear(); __currentSelectedStr = __pHitElementResult->GetUrl(); } - InitSelectTextContextMenuF(FloatPoint(endPoint.x,endPoint.y + __pWebViewer->GetY()),false); + InitSelectTextContextMenuF(FloatPoint(startPoint.x,startPoint.y + __pWebViewer->GetY()),false); if(__pImageMenu) { __pImageMenu->SetShowState(true); @@ -4084,33 +4177,133 @@ MainForm::OnWebWindowCreateRequested(void) } void +MainForm::OnWebWindowCloseRequested(Tizen::Web::Controls::Web& source) +{ + AppLog("OnWebWindowCloseRequested"); + ArrayList* pAllWindowList = MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList(); + SceneManager* pSceneManager = SceneManager::GetInstance(); + WindowInfo* pWindowInfo = null; + WindowInfo* pNewWindowInfo = null; + int totalCount = 0; + UiApp* pApp = null; + result r = E_FAILURE; + + if (pAllWindowList != null) + { + totalCount = pAllWindowList->GetCount(); + } + + for (int count = 0; count < totalCount; count++) + { + pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count)); + + if (__pWindowInfo != null && pWindowInfo != null && __pWindowInfo->sceneID == pWindowInfo->sceneID) + { + r = SceneRegister::DestroyAndUnRegisterScene(__pWindowInfo->sceneID); + r = pAllWindowList->RemoveAt(count, true); + + Form* pCurrentForm = null; + if(SceneManager::GetInstance()->GetCurrentScene() != null) + pCurrentForm = (SceneManager::GetInstance()->GetCurrentScene()->GetForm()); + if (pCurrentForm) + { + pCurrentForm->SendUserEvent(UPDATE_MAINFORM_FOOTER_ON_WINDOWCLOSED, null); + } + + if (pAllWindowList->GetCount() > 0) + { + pNewWindowInfo = null; + pNewWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1)); + } + else + { + WindowInfo* pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN(); + + if (pNewWindowInfo == null) + { + return; + } + result r = E_SUCCESS; + SceneManager* pSceneManager = SceneManager::GetInstance(); + if (pSceneManager == NULL) + { + return; + } + ArrayList* pArgList = new(std::nothrow) ArrayList(); + if (pArgList == NULL) + { + return; + } + r = pArgList->Construct(); + if (r == E_SUCCESS) + { + pArgList->Add(*pNewWindowInfo); + result r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID, SCENE_TRANSITION_ANIMATION_TYPE_NONE),pArgList); + if (pArgList != null) + { + delete pArgList; + pArgList = null; + } + if(IsFailed(r)) + { + AppLogDebug("MultipleWindowForm::OnActionPerformed GoForward failed %s",GetErrorMessage(r)); + return; + } + } + + pApp = UiApp::GetInstance(); + if (pApp != null) + { + r = pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_MINIMIZED); + return; + } + } + r = pSceneManager->GoForward(ForwardSceneTransition(pNewWindowInfo->sceneID ,SCENE_TRANSITION_ANIMATION_TYPE_NONE,SCENE_HISTORY_OPTION_ADD_HISTORY,SCENE_DESTROY_OPTION_DESTROY)); + + break; + } + + } + + +} + +void MainForm::RelayoutControls(bool showAddressbar,bool relayoutFooter) { AppLog("xyz:: MainForm::RelayoutControls called"); __webControlPosition.y = 0; + __webControlPositionF.y = 0.0f; __webControlHeight = GetClientAreaBounds().height; - AppLog("Client area height: %d", __webControlHeight); + __webControlHeightF = GetClientAreaBoundsF().height; + AppLog("Client area height: %d width %d", __webControlHeight,GetClientAreaBounds().width); AppLog("Client area height: %d", __webControlHeight); if(__pAddressbar != null && __pAddressbar->GetShowState() == true) { __webControlPosition.y += __pAddressbar->GetHeight(); + __webControlPositionF.y += __pAddressbar->GetHeightF(); __webControlHeight -= __pAddressbar->GetHeight(); + __webControlHeightF -= __pAddressbar->GetHeightF(); __pAddressbar->SetBounds(0, 0, __pAddressbar->GetWidth(), __pAddressbar->GetHeight()); } else if(__pFindWordControl != null && __pFindWordControl->GetShowState() == true) { __webControlPosition.y += __pFindWordControl->GetHeight(); + __webControlPositionF.y += __pFindWordControl->GetHeightF(); __webControlHeight -= __pFindWordControl->GetHeight(); + __webControlHeightF -= __pFindWordControl->GetHeightF(); __pFindWordControl->SetBounds(0, 0, GetClientAreaBounds().width, __pFindWordControl->GetHeight()); } if(__pFooterPanel != null && __pFooterPanel->GetShowState() == true && relayoutFooter == true) { __webControlHeight -= __pFooterPanel->GetHeight(); + __webControlHeightF -= __pFooterPanel->GetHeightF(); - __pFooterPanel->SetBounds(0, __webControlPosition.y + __webControlHeight, GetClientAreaBounds().width, __pFooterPanel->GetHeight()); + __pFooterPanel->SetBounds(CoordinateSystem::AlignToDevice(FloatRectangle(0.0F, __webControlPositionF.y + __webControlHeightF, GetClientAreaBoundsF().width, __pFooterPanel->GetHeightF()))); __webControlHeight = __webControlHeight + 12; + __webControlHeightF = __webControlHeightF + 12.0f; } if (__pWebViewer != null && __pWebViewer->GetShowState() == true) { @@ -4239,8 +4432,12 @@ MainForm::StartWordSearch() __pFindWordPrev->SetEnabled(false); String *pCountStr = null; - result r = __pWebViewer->SearchTextAllAsync(__currentSearchStr, false); - AppLog("Search Result %s",GetErrorMessage(r)); + if (__pWebViewer) + { + result r = __pWebViewer->SearchTextAllAsync(__currentSearchStr, false); + AppLog("Search Result %s",GetErrorMessage(r)); + } + /*__pWebViewer->EvaluateJavascriptN(L"document.body.textContent.match(/" + __currentSearchStr + "/gi).length;"); if (pCountStr != null) { @@ -4258,21 +4455,38 @@ void MainForm::OnTextFound(int totalCount, int currentOrdinal) AppLog("MainForm::OnTextFound totalCount %d",totalCount); AppLog("MainForm::OnTextFound currentOrdinal %d",currentOrdinal); - if(totalCount == -1 || totalCount == 0) + if(totalCount <= 9) { - __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),84,__pFindWordCountLabel->GetHeight()); - __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),214+80,__pFindWordEditField->GetHeight()); -// return; + if (__pFindWordCountLabel) + { + __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),84,__pFindWordCountLabel->GetHeight()); + } + if (__pFindWordEditField) + { + __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),214+80,__pFindWordEditField->GetHeight()); + } } - else if(totalCount > 100) + else if(totalCount >= 100) { - __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight()); - __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight()); + if (__pFindWordCountLabel) + { + __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight()); + } + if (__pFindWordEditField) + { + __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight()); + } } else { - __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight()); - __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight()); + if (__pFindWordCountLabel) + { + __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight()); + } + if (__pFindWordEditField) + { + __pFindWordEditField->SetBounds(__pFindWordEditField->GetX(),__pFindWordEditField->GetY(),174,__pFindWordEditField->GetHeight()); + } } __maxOccurrances = totalCount; @@ -4319,16 +4533,20 @@ void MainForm::OnTextFound(int totalCount, int currentOrdinal) __pFindWordCountLabel->Invalidate(false); __pFindWordCountLabel->Invalidate(false); } - else if(__pFindWordCountLabelRightToLeft && __pFindWordCountLabelRightToLeft->GetShowState() == true) + else if (__pFindWordCountLabelRightToLeft && __pFindWordCountLabelRightToLeft->GetShowState() == true) { __pFindWordCountLabelRightToLeft->SetText(countStr); __pFindWordCountLabelRightToLeft->Invalidate(false); __pFindWordCountLabelRightToLeft->Invalidate(false); } - //FindNextWord(true); - //Update the controls - __pFindWordNext->Invalidate(false); - __pFindWordPrev->Invalidate(false); + if (__pFindWordNext) + { + __pFindWordNext->Invalidate(false); + } + if (__pFindWordPrev) + { + __pFindWordPrev->Invalidate(false); + } } @@ -4451,12 +4669,33 @@ MainForm::OnWebKeypadOpened(Tizen::Web::Controls::Web& source) void MainForm::OnWebKeypadClosed(Tizen::Web::Controls::Web& source) { + AppLog("abcde::MainForm::OnWebKeypadClosed"); AppLog("xyz::MainForm::OnWebKeypadClosed"); AppLog("akjshdasd 4"); __pFooterPanel->SetShowState(true); // OnAddressBarKeypadClosed(*__pAddressbar); RelayoutControls(false); __isKeypadOpened = false; + + + if(__pImageMenu && __pImageMenu->GetShowState() == true) + { + AppLog("abcde: imagemenu visible."); + Point p(0,0); + Point q(0,0); + __pWebViewer->GetBlockRange(p,q); + if (p == Point(0,0) && q == Point(0,0)) + return; + if(p.y < 150) + { + p.y = p.y + 100; + + } + + __pImageMenu->SetAnchorPosition(p); + __pImageMenu->Show(); + Invalidate(true); + } } void @@ -4492,12 +4731,16 @@ MainForm::OnTouchDoublePressed(const Control& source, const Point& currentPositi void MainForm::OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo) { - AppLog("abcde::MainForm::OnTouchLongPressed %d, %d" ,currentPosition.x,currentPosition.y); - if(TouchEventManager::GetInstance()->GetTouchInfoListN()->GetCount() >1) + AppLog("LMN::abcde::MainForm::OnTouchLongPressed %d, %d" ,currentPosition.x,currentPosition.y); + if(TouchEventManager::GetInstance() && TouchEventManager::GetInstance()->GetTouchInfoListN() && TouchEventManager::GetInstance()->GetTouchInfoListN()->GetCount() >1) { AppLog("Returning because of more than one touch point."); return; } +// if(__pWebViewer) +// __pWebViewer->ReleaseBlock(); + if(__pWebViewer) + __pWebViewer->SetFocus(); __longPressPoint = currentPosition; if (__pHitElementResult != null) @@ -4520,13 +4763,18 @@ void MainForm::OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen: if (__pHitElementResult->HasImage() == true) { if(__pWebViewer != null) + { + __pWebViewer->ReleaseBlock();//N_SE-52389 InitImageContextMenu(Point(currentPosition.x,currentPosition.y + __pWebViewer->GetY())); + } __pImageMenu->SetShowState(true); __pImageMenu->Show(); __pImageMenu->Invalidate(true); } else if(__pHitElementResult->HasUrl() == true) { + if(__pWebViewer != null) + __pWebViewer->ReleaseBlock();//N_SE-52389 String tempURl = __pHitElementResult->GetUrl(); AppLog("tempURl is %ls", tempURl.GetPointer()); const Bitmap* pBitmap = __pHitElementResult->GetImage(); @@ -4549,7 +4797,7 @@ void MainForm::OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen: String type = __pHitElementResult->GetAttributeValue("type"); String value = __pHitElementResult->GetAttributeValue(L"value"); String innerHtml = __pHitElementResult->GetAttributeValue(L"innerHTML"); - + result r = E_FAILURE; __currentSelectedStr.Clear(); __currentSelectedStr = __pWebViewer->GetTextFromBlock(); @@ -4559,8 +4807,9 @@ void MainForm::OnTouchLongPressed(const Tizen::Ui::Control& source, const Tizen: __isLongPressedDone = true; - result r =__pWebViewer->SetBlockSelectionPosition(currentPosition); - if (((tagName.Equals(L"INPUT",false) == true) || tagName.Equals(L"TEXTAREA",false) == true) && innerHtml.GetLength() == 0 && type.Equals(L"submit",false) !=true && type.Equals(L"range",false) !=true/*&& __isWebKeypadOpened == true*/ && __currentSelectedStr.Equals(L"",false) == true && r == E_INVALID_ARG) + if( type.Equals(L"submit",false) !=true && type.Equals(L"checkbox",false) !=true && type.Equals(L"range",false) !=true && type.Equals(L"file",false) !=true) + r =__pWebViewer->SetBlockSelectionPosition(currentPosition); + if (((tagName.Equals(L"INPUT",false) == true) || tagName.Equals(L"TEXTAREA",false) == true) && innerHtml.GetLength() == 0 && type.Equals(L"submit",false) !=true && type.Equals(L"checkbox",false) !=true && type.Equals(L"range",false) !=true && type.Equals(L"file",false) !=true/*&& __isWebKeypadOpened == true*/ && __currentSelectedStr.Equals(L"",false) == true && r == E_INVALID_ARG) { AppLog("MainForm::OnWebPageBlockSelected show paste option"); @@ -4687,8 +4936,8 @@ MainForm::OnOrientationChanged (const Tizen::Ui::Control &source, Tizen::Ui::Ori { AppLog("MainForm::OnOrientationChanged GetClientAreaBounds %d, %d",GetClientAreaBounds().width,GetClientAreaBounds().height); int widthContextItem = 0; - if(__pFindWordCountLabel) - __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight()); + //if(__pFindWordCountLabel) + // __pFindWordCountLabel->SetBounds(__pFindWordCountLabel->GetX(),__pFindWordCountLabel->GetY(),124,__pFindWordCountLabel->GetHeight()); // As per the platform engineer comment removed this line /*if(__pWebViewer != null) { @@ -4765,7 +5014,7 @@ MainForm::OnOrientationChanged (const Tizen::Ui::Control &source, Tizen::Ui::Ori { AppLog("__pFooterPanel->GetShowState() is true"); InitFooter(); - __pFooterPanel->SetBounds(0, GetClientAreaBounds().height - __pFooterPanel->GetHeight(), __pFooterPanel->GetWidth(), __pFooterPanel->GetHeight()); + __pFooterPanel->SetBounds(CoordinateSystem::AlignToDevice(FloatRectangle(0, GetClientAreaBoundsF().height - __pFooterPanel->GetHeightF(), __pFooterPanel->GetWidthF(), __pFooterPanel->GetHeightF()))); __pFooterPanel->Invalidate(true); } InitAddressbar(); @@ -4849,6 +5098,7 @@ MainForm::OnSettingsChange(int settingvalue) settings.SetAutoFittingEnabled(false); } __pWebViewer->SetSetting(settings); + } else if (settingvalue == (int) REGISTRY_SETTING_RUN_JAVASCRIPT) { @@ -5106,6 +5356,7 @@ MainForm::OnTouchPressed(const Tizen::Ui::Control& source, const Tizen::Graphics void MainForm::OnTouchMoved(const Tizen::Ui::Control& source, const Tizen::Graphics::Point& currentPosition, const Tizen::Ui::TouchEventInfo& touchInfo) { + AppLog("LMN::MainForm::OnTouchMoved entered"); // __currentWordIndex = 0; __isLongPressedDone = false; @@ -5201,7 +5452,7 @@ MainForm::InitMostVisitedSitesView(Tizen::Ui::OrientationStatus orientationStatu result r = E_SUCCESS; - if (__pWebViewer != null && __pMostVisitedListView != null) + if (__pMostVisitedListView != null) { return E_SUCCESS; } @@ -5218,6 +5469,7 @@ MainForm::InitMostVisitedSitesView(Tizen::Ui::OrientationStatus orientationStatu HistoryPresentationModel::GetInstance()->GetMostVisitedSites(*__pMostVisitedSites); __webControlHeight = GetClientAreaBounds().height - __pFooterPanel->GetHeight(); + __webControlHeightF = GetClientAreaBoundsF().height - __pFooterPanel->GetHeightF(); __pMostVisitedListView = new(std::nothrow) ListView(); int height = GetClientAreaBounds().height; @@ -5621,7 +5873,12 @@ void MainForm::OnSharePopupControlStarted(void) void MainForm::OnUserEventReceivedN (RequestId requestId, Tizen::Base::Collection::IList *pArgs) { - if (requestId == BACK_GROUND_APP_EVENT) + if (requestId == UPDATE_MAINFORM_FOOTER_ON_WINDOWCLOSED) + { + AppLog("OnWebWindowCloseRequested mainform test 1 OnUserEventReceivedN"); + InitFooter(); + } + else if (requestId == BACK_GROUND_APP_EVENT) { if(__pWebViewer != null) {