Adjust the position of the partial Frame
authorChoi Munseok <ms47.choi@samsung.com>
Mon, 1 Apr 2013 02:17:32 +0000 (11:17 +0900)
committerChoi Munseok <ms47.choi@samsung.com>
Mon, 1 Apr 2013 02:17:32 +0000 (11:17 +0900)
Change-Id: I72259d9f69c0dadf9d4f3f2c1dac6530b42e9e0c
Signed-off-by: Choi Munseok <ms47.choi@samsung.com>
src/ui/FUi_OrientationAgent.cpp [changed mode: 0755->0644]
src/ui/controls/FUiCtrl_FormImpl.cpp
src/ui/controls/FUiCtrl_FrameImpl.cpp

old mode 100755 (executable)
new mode 100644 (file)
index 9a245e1..8f9cf5e
@@ -155,6 +155,8 @@ _OrientationAgent::Update(bool draw)
        // Request rotation to window manager -> async -> Update VEs
        // Window(not rotation) -> sync -> UpdateVEs
 
+       SysLog(NID_UI, "[Window Manager Rotation] <<<<<<<<<< Update : START >>>>>>>>>>");
+
        _ControlImplManager* pImplManager = _ControlImplManager::GetInstance();
        SysAssert(pImplManager);
 
@@ -243,6 +245,8 @@ _OrientationAgent::Update(bool draw)
 
                __draw = draw;
 //     }
+
+       SysLog(NID_UI, "[Window Manager Rotation] <<<<<<<<<< Update : END >>>>>>>>>>");
 #else          
        _ControlImplManager* pImplManager = _ControlImplManager::GetInstance();
        SysAssert(pImplManager);
@@ -363,6 +367,8 @@ _OrientationAgent::UpdateOrientation(void)
        // Update window bounds
        // Invalidate
 
+       SysLog(NID_UI, "[Window Manager Rotation] <<<<<<<<<< UpdateOrientation : START >>>>>>>>>>");
+
        _EcoreEvas* pEcoreEvas = GetEcoreEvasMgr()->GetEcoreEvas();
        if (!pEcoreEvas)
        {
@@ -438,6 +444,8 @@ _OrientationAgent::UpdateOrientation(void)
 
        Rectangle bounds = pRootWindow->GetBounds();
        SysLog(NID_UI, "[Window Manager Rotation][Window : 0x%x, rot = %d, %d, %d, %d, %d] Update Orientation.", pRootWindow->GetNativeHandle(), rotation, bounds.x, bounds.y, bounds.width, bounds.height);
+
+       SysLog(NID_UI, "[Window Manager Rotation] <<<<<<<<<< UpdateOrientation : END >>>>>>>>>>");
 }
 #endif
 
index 3512884..2515a83 100644 (file)
@@ -44,6 +44,7 @@
 #include "FUiCtrl_FooterImpl.h"
 #include "FUiCtrl_Form.h"
 #include "FUiCtrl_Frame.h"
+#include "FUiCtrl_FrameImpl.h"
 #include "FUiCtrl_TabImpl.h"
 #include "FUiCtrl_Indicator.h"
 
@@ -1035,6 +1036,37 @@ _FormImpl::OnChangeLayout(_ControlOrientation orientation)
        const FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
        const FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
 
+       // Adjust the position of the partial Frame.
+       _FrameImpl* pFrameImpl = dynamic_cast<_FrameImpl*>(GetParent());
+       if (pFrameImpl)
+       {
+               FrameShowMode frameShowMode = pFrameImpl->GetShowMode();
+
+               if ((frameShowMode == FRAME_SHOW_MODE_PARTIAL_SCREEN) || (frameShowMode == FRAME_SHOW_MODE_PARTIAL_SCREEN_FLOATING))
+               {
+                       bool movable = pFrameImpl->GetCore().IsMovable();
+                       pFrameImpl->GetCore().SetMovable(true);
+               
+                       FloatPoint prevPoint = pFrameImpl->GetPositionF();
+                       FloatPoint curPoint(0.0f, 0.0f);
+               
+                       if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
+                       {
+                               curPoint.x = portraitSize.width / portraitSize.height * prevPoint.x;
+                               curPoint.y = portraitSize.height / portraitSize.width * prevPoint.y;
+                       }
+                       else
+                       {
+                               curPoint.x = portraitSize.height / portraitSize.width * prevPoint.x;
+                               curPoint.y = portraitSize.width / portraitSize.height * prevPoint.y;
+                       }
+               
+                       pFrameImpl->SetPosition(curPoint);
+               
+                       pFrameImpl->GetCore().SetMovable(movable);
+               }
+       }
+
        // Change layout.
        _ContainerImpl::OnChangeLayout(orientation);
        SysTryReturnVoidResult(NID_UI_CTRL, GetLastResult() == E_SUCCESS, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
index 3eb40f5..efc339f 100644 (file)
@@ -302,7 +302,9 @@ _FrameImpl::OnChangeLayout(_ControlOrientation orientation)
        SysAssert(pCoreManager);
        const FloatDimension& screenSize = pCoreManager->GetScreenSizeF();
 
-       if (GetCore().GetShowMode() == FRAME_SHOW_MODE_FULL_SCREEN)
+       FrameShowMode frameShowMode = GetCore().GetShowMode();
+
+       if (frameShowMode == FRAME_SHOW_MODE_FULL_SCREEN)
        {
                if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
                {
@@ -313,6 +315,30 @@ _FrameImpl::OnChangeLayout(_ControlOrientation orientation)
                        SetSize(FloatDimension(screenSize.height, screenSize.width));
                }
        }
+       else if ((frameShowMode == FRAME_SHOW_MODE_PARTIAL_SCREEN) || (frameShowMode == FRAME_SHOW_MODE_PARTIAL_SCREEN_FLOATING))
+       {
+               // Adjust the position of the partial Frame.
+               bool movable = IsMovable();
+               SetMovable(true);
+
+               FloatPoint prevPoint = GetPositionF();
+               FloatPoint curPoint(0.0f, 0.0f);
+
+               if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
+               {
+                       curPoint.x = screenSize.width / screenSize.height * prevPoint.x;
+                       curPoint.y = screenSize.height / screenSize.width * prevPoint.y;
+               }
+               else
+               {
+                       curPoint.x = screenSize.height / screenSize.width * prevPoint.x;
+                       curPoint.y = screenSize.width / screenSize.height * prevPoint.y;
+               }
+
+               SetPosition(curPoint);
+
+               SetMovable(movable);
+       }
 
        SetResizable(resizable);
 }