From: Choi Munseok Date: Mon, 1 Apr 2013 02:17:32 +0000 (+0900) Subject: Adjust the position of the partial Frame X-Git-Tag: accepted/tizen_2.1/20130425.033138~576 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f74c2032de5c0603e9a1a912fa3eb0b322a261a0;p=framework%2Fosp%2Fuifw.git Adjust the position of the partial Frame Change-Id: I72259d9f69c0dadf9d4f3f2c1dac6530b42e9e0c Signed-off-by: Choi Munseok --- diff --git a/src/ui/FUi_OrientationAgent.cpp b/src/ui/FUi_OrientationAgent.cpp old mode 100755 new mode 100644 index 9a245e1..8f9cf5e --- a/src/ui/FUi_OrientationAgent.cpp +++ b/src/ui/FUi_OrientationAgent.cpp @@ -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 diff --git a/src/ui/controls/FUiCtrl_FormImpl.cpp b/src/ui/controls/FUiCtrl_FormImpl.cpp index 3512884..2515a83 100644 --- a/src/ui/controls/FUiCtrl_FormImpl.cpp +++ b/src/ui/controls/FUiCtrl_FormImpl.cpp @@ -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())); diff --git a/src/ui/controls/FUiCtrl_FrameImpl.cpp b/src/ui/controls/FUiCtrl_FrameImpl.cpp index 3eb40f5..efc339f 100644 --- a/src/ui/controls/FUiCtrl_FrameImpl.cpp +++ b/src/ui/controls/FUiCtrl_FrameImpl.cpp @@ -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); }