Fixed Nabi Issues 55388,55397,55254, Implementation of slider Adjustment Event Listen...
[apps/osp/Internet.git] / src / IntMainForm.cpp
index 6ff9615..1852498 100644 (file)
@@ -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)
        {
@@ -495,6 +497,7 @@ MainForm::InitWebControl()
                        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)
@@ -983,7 +987,11 @@ MainForm::InitSelectTextContextMenuF(FloatPoint p, bool pasteOption, bool onlyPa
 //             __pWebViewer->GetBlockRange(p,q);
        if(p.y < 150)
        {
-               p.y = p.y + 50;
+               p.y = p.y + 100;
+               if(GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE || GetOrientationStatus() == ORIENTATION_STATUS_LANDSCAPE_REVERSE )
+               {
+                       p.y = p.y - 50;
+               }
                direction = CONTEXT_MENU_ANCHOR_DIRECTION_DOWNWARD;
        }
        else if(__pWebViewer != null && (p.y > (__pWebViewer->GetHeight() + __pWebViewer->GetY())))
@@ -1027,7 +1035,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;
        }
@@ -1035,11 +1043,7 @@ MainForm::InitSelectTextContextMenuF(FloatPoint p, bool pasteOption, bool onlyPa
        r = __pImageMenu->Construct(p, CONTEXT_MENU_STYLE_GRID, direction);
        TryCatch(!IsFailed(r),, "Context image menu creation failed with%s",GetErrorMessage(r));
 
-
-
-
-
-       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);
        }
@@ -1047,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);
@@ -2403,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)));
@@ -2471,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
@@ -2519,8 +2525,8 @@ MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
                        String* pNameCount = __pWebViewer->EvaluateJavascriptN(str);
 
                        str.Clear();
-                       str = L"document.getElementsByName('";
-                       str.Append(nameElement);
+                       str = L"document.getElementsByClassName('";
+                       str.Append(classElement);
                        str.Append("').length");
                        String* pClassCount = __pWebViewer->EvaluateJavascriptN(str);
 
@@ -2537,10 +2543,10 @@ MainForm::OnActionPerformed(const Tizen::Ui::Control& source, int actionId)
                        }
                        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("\");");
@@ -2837,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());
@@ -2887,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));
@@ -3468,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));
                }
        }
@@ -3493,6 +3504,11 @@ MainForm::OnFocusGained(const Tizen::Ui::Control& source)
                __pFooterPanel->SetShowState(false);
        }
 
+       if(__pWebViewer)
+       {
+               __pWebViewer->ReleaseBlock();
+       }
+
        if(__pAddressbar)
        {
                __pAddressbar->SetShowState(true);
@@ -3745,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);
                }
@@ -3759,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);
                }
@@ -4040,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()));
                }
@@ -4075,7 +4097,7 @@ MainForm::OnWebPageBlockSelected(Web& source, FloatPoint& startPoint, FloatPoint
                {
                        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);
@@ -4092,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);
@@ -4174,23 +4196,23 @@ MainForm::OnWebWindowCloseRequested(Tizen::Web::Controls::Web& source)
        for (int count = 0; count < totalCount; count++)
        {
                pWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count));
-               if (pSceneManager != null && pWindowInfo != null && pSceneManager->GetCurrentSceneId() == pWindowInfo->sceneID)
-               {
-                       r = SceneRegister::DestroyAndUnRegisterScene(pWindowInfo->sceneID);
-                       if (IsFailed(r))
-                       {
-                               AppLogException("OnActionPerformed failed with %s", GetErrorMessage(r));
-                               return;
-                       }
 
+               if (__pWindowInfo != null && pWindowInfo != null && __pWindowInfo->sceneID == pWindowInfo->sceneID)
+               {
+                       r = SceneRegister::DestroyAndUnRegisterScene(__pWindowInfo->sceneID);
                        r = pAllWindowList->RemoveAt(count, true);
 
-                       if(count > 0)
+                       Form* pCurrentForm = null;
+                       if(SceneManager::GetInstance()->GetCurrentScene() != null)
+                               pCurrentForm = (SceneManager::GetInstance()->GetCurrentScene()->GetForm());
+                       if (pCurrentForm)
                        {
-                               pNewWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(count - 1));
+                               pCurrentForm->SendUserEvent(UPDATE_MAINFORM_FOOTER_ON_WINDOWCLOSED, null);
                        }
-                       else if(pAllWindowList->GetCount() > 0)
+
+                       if (pAllWindowList->GetCount() > 0)
                        {
+                               pNewWindowInfo = null;
                                pNewWindowInfo = dynamic_cast< WindowInfo* >(pAllWindowList->GetAt(pAllWindowList->GetCount() - 1));
                        }
                        else
@@ -4235,15 +4257,15 @@ MainForm::OnWebWindowCloseRequested(Tizen::Web::Controls::Web& source)
                                        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));
 
-                       __pWindowInfo = null;
                        break;
                }
+
        }
 
+
 }
 
 void
@@ -4251,29 +4273,37 @@ MainForm::RelayoutControls(bool showAddressbar,bool relayoutFooter)
 {
        AppLog("xyz:: MainForm::RelayoutControls called");
        __webControlPosition.y = 0;
+       __webControlPositionF.y = 0.0f;
        __webControlHeight = GetClientAreaBounds().height;
+       __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)
        {
@@ -4906,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)
        {
@@ -4984,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();
@@ -5439,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;
@@ -5842,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)
                {