, __dividerMinimumPosition(0.0f)
, __splitPanelDividerPressed(false)
, __setFirstDividerPositionChangeEvent(true)
+ , __isChangeBounds(false)
, __dividerRectangle(0.0f, 0.0f ,0.0f, 0.0f)
, __dividerThumbRectangle(0.0f, 0.0f, 0.0f, 0.0f)
, __pDividerPressedBackgroundBitmap(null)
Draw();
}
+ if (__isChangeBounds == true)
+ {
+ __isChangeBounds = false;
+ }
+
return E_SUCCESS;
}
return false;
}
+ if (CheckDividerTouchRegion(point.x, point.y) == true)
+ {
+ __isChangeBounds = true;
+ }
+
point = touchinfo.GetCurrentPosition();
pThumbBitmap = __pDividerThumbBitmap;
Draw();
}
+ if (__isChangeBounds == true)
+ {
+ __isChangeBounds = false;
+ }
+
return E_SUCCESS;
}
result
_SplitPanelPresenter::Draw(void)
{
- if (__pSplitPanelModel->GetPaneMaximumState() == false && GetTransactionStatus() == ANIMATION_TRANSACTION_STATUS_STOPPED)
+ if (GetTransactionStatus() == ANIMATION_TRANSACTION_STATUS_STOPPED)
{
FloatRectangle dividerBounds(0.0f, 0.0f, 0.0f, 0.0f);
FloatRectangle dividerThumbBounds(0.0f, 0.0f, 0.0f, 0.0f);
pCanvas->Clear();
//resize pane
- SetPaneBounds();
+ if (__isChangeBounds)
+ {
+ SetPaneBounds();
+
+ __isChangeBounds = false;
+ }
dividerBounds = __dividerRectangle;
dividerBounds.x = 0.0f;
void
_SplitPanelPresenter::OnChangeLayout(_ControlOrientation orientation)
{
+ __isChangeBounds = true;
+
AnimationTransaction::Stop(__transactionIdMaximize);
AnimationTransaction::Stop(__transactionIdRestore);
void
_SplitPanelPresenter::OnBoundsChanged(void)
{
- RecalcSplitPanel();
+ __isChangeBounds = true;
+
+ AnimationTransaction::Stop(__transactionIdMaximize);
+ AnimationTransaction::Stop(__transactionIdRestore);
return;
}
FloatRectangle clientBounds(0.0f, 0.0f, 0.0f, 0.0f);
FloatRectangle firstPaneBounds(0.0f, 0.0f, 0.0f, 0.0f);
FloatRectangle secondPaneBounds(0.0f, 0.0f, 0.0f, 0.0f);
+ FloatRectangle dividerBounds(0.0f, 0.0f, 0.0f, 0.0f);
FloatPoint panePostion(0.0f, 0.0f);
_Control* pFirstPane = null;
_Control* pSecondPane = null;
{
secondPaneBounds = FloatRectangle(0.0f, clientBounds.height + __dividerRectangle.height, clientBounds.width, clientBounds.height - __dividerRectangle.y - __dividerRectangle.height);
}
+
+ dividerBounds = __dividerRectangle;
+ dividerBounds.x = clientBounds.width;
+
+ __pSplitPanel->SetDividerVisualElementBounds(dividerBounds);
}
else if (IsPaneMaximized(SPLIT_PANEL_PANE_ORDER_SECOND))
{
{
firstPaneBounds = FloatRectangle(0.0f, clientBounds.y -__dividerRectangle.y - __dividerRectangle.height, clientBounds.width, __dividerRectangle.y);
}
+
+ dividerBounds = __dividerRectangle;
+ dividerBounds.x = -__dividerRectangle.width;
+
+ __pSplitPanel->SetDividerVisualElementBounds(dividerBounds);
}
else
{