FloatDimension portraitSize = _ControlManager::GetInstance()->_ControlManager::GetScreenSizeF();
FloatDimension landscapeSize = FloatDimension(portraitSize.height, portraitSize.width);
- // Adjust the position of the partial Frame.
_FrameImpl* pFrameImpl = dynamic_cast<_FrameImpl*>(GetParent());
if (pFrameImpl)
{
pFrameImpl->GetCore().SetMovable(true);
FloatPoint prevPoint = pFrameImpl->GetPositionF();
-
- FloatPoint curPoint(0.0f, 0.0f);
-
+ FloatPoint curPoint(prevPoint.x, prevPoint.y);
+ float ratio = portraitSize.width / portraitSize.height;
if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
{
- if (prevPoint.x < 0.0f)
- {
- curPoint.x = portraitSize.height / portraitSize.width * prevPoint.x;
- }
- else
+ if (prevPoint.x > 0.0f)
{
- curPoint.x = portraitSize.width / portraitSize.height * prevPoint.x;
+ curPoint.x = prevPoint.x * ratio;
}
- if (prevPoint.y < 0.0f)
- {
- curPoint.y = portraitSize.width / portraitSize.height * prevPoint.y;
- }
- else
+ if (prevPoint.y > 0.0f)
{
- curPoint.y = portraitSize.height / portraitSize.width * prevPoint.y;
+ curPoint.y = prevPoint.y / ratio;
}
}
else
{
- if (prevPoint.x < 0.0f)
+ if (prevPoint.x > 0.0f)
{
- curPoint.x = portraitSize.width / portraitSize.height * prevPoint.x;
- }
- else
- {
- curPoint.x = portraitSize.height / portraitSize.width * prevPoint.x;
+ curPoint.x = prevPoint.x / ratio;
}
- if (prevPoint.y < 0.0f)
- {
- curPoint.y = portraitSize.height / portraitSize.width * prevPoint.y;
- }
- else
+ if (prevPoint.y > 0.0f)
{
- curPoint.y = portraitSize.width / portraitSize.height * prevPoint.y;
+ curPoint.y = prevPoint.y * ratio;
}
}
pFrameImpl->SetPosition(curPoint);
-
portraitSize = pFrameImpl->GetSizeF();
landscapeSize = portraitSize;
-
pFrameImpl->GetCore().SetMovable(movable);
}
}
}
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);
-
+ FloatPoint curPoint(prevPoint.x, prevPoint.y);
+ float ratio = screenSize.width / screenSize.height;
if (orientation == _CONTROL_ORIENTATION_PORTRAIT)
{
- if (prevPoint.x < 0.0f)
- {
- curPoint.x = screenSize.height / screenSize.width * prevPoint.x;
- }
- else
+ if (prevPoint.x > 0.0f)
{
- curPoint.x = screenSize.width / screenSize.height * prevPoint.x;
+ curPoint.x = prevPoint.x * ratio;
}
-
- if (prevPoint.y < 0.0f)
- {
- curPoint.y = screenSize.width / screenSize.height * prevPoint.y;
- }
- else
+
+ if (prevPoint.y > 0.0f)
{
- curPoint.y = screenSize.height / screenSize.width * prevPoint.y;
+ curPoint.y = prevPoint.y / ratio;
}
}
else
{
- if (prevPoint.x < 0.0f)
+ if (prevPoint.x > 0.0f)
{
- curPoint.x = screenSize.width / screenSize.height * prevPoint.x;
+ curPoint.x = prevPoint.x / ratio;
}
- else
- {
- curPoint.x = screenSize.height / screenSize.width * prevPoint.x;
- }
-
- if (prevPoint.y < 0.0f)
+
+ if (prevPoint.y > 0.0f)
{
- curPoint.y = screenSize.height / screenSize.width * prevPoint.y;
- }
- else
- {
- curPoint.y = screenSize.width / screenSize.height * prevPoint.y;
+ curPoint.y = prevPoint.y * ratio;
}
}
SetPosition(curPoint);
-
SetMovable(movable);
}