Cleaned up some of the code in wxSlider::DoMoveWindow.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70052 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -401,7 +401,6 @@ void wxSlider::DoMoveWindow(int x, int y, int width, int height)
|
|||||||
maxLabelWidth = 0;
|
maxLabelWidth = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int labelOffset = 0;
|
|
||||||
int tickOffset = 0;
|
int tickOffset = 0;
|
||||||
if ( HasFlag(wxSL_TICKS))
|
if ( HasFlag(wxSL_TICKS))
|
||||||
tickOffset = TICK;
|
tickOffset = TICK;
|
||||||
@@ -413,68 +412,47 @@ void wxSlider::DoMoveWindow(int x, int y, int width, int height)
|
|||||||
// would return a wrong result and wrong size would be cached internally
|
// would return a wrong result and wrong size would be cached internally
|
||||||
if ( HasFlag(wxSL_VERTICAL) )
|
if ( HasFlag(wxSL_VERTICAL) )
|
||||||
{
|
{
|
||||||
int holdTopWidth;
|
int labelOffset = 0;
|
||||||
int holdTopX;
|
int holdTopX;
|
||||||
int holdBottomWidth;
|
|
||||||
int holdBottomX;
|
int holdBottomX;
|
||||||
int xLabel = (wxMax((THUMB + (BORDERPAD * 2)), longestLabelWidth) / 2) -
|
int xLabel = (wxMax((THUMB + (BORDERPAD * 2)), longestLabelWidth) / 2) -
|
||||||
(longestLabelWidth / 2) + x;
|
(longestLabelWidth / 2) + x;
|
||||||
if ( HasFlag(wxSL_LEFT) )
|
if ( HasFlag(wxSL_LEFT) )
|
||||||
{
|
{
|
||||||
if ( HasFlag(wxSL_MIN_MAX_LABELS) )
|
holdTopX = xLabel;
|
||||||
{
|
holdBottomX = xLabel - (abs(maxLabelWidth - minLabelWidth) / 2);
|
||||||
holdTopX = xLabel;
|
|
||||||
holdTopWidth = minLabelWidth;
|
|
||||||
holdBottomX = xLabel - (abs(maxLabelWidth - minLabelWidth) / 2);
|
|
||||||
holdBottomWidth = maxLabelWidth;
|
|
||||||
if ( HasFlag(wxSL_INVERSE) )
|
|
||||||
{
|
|
||||||
wxSwap(holdTopX, holdBottomX);
|
|
||||||
}
|
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Min],
|
|
||||||
holdTopX,
|
|
||||||
y,
|
|
||||||
holdTopWidth, labelHeight);
|
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Max],
|
|
||||||
holdBottomX,
|
|
||||||
y + height - labelHeight,
|
|
||||||
holdBottomWidth, labelHeight);
|
|
||||||
}
|
|
||||||
if ( HasFlag(wxSL_VALUE_LABEL) )
|
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Value],
|
|
||||||
x + THUMB + tickOffset + HGAP,
|
|
||||||
y + (height - labelHeight)/2,
|
|
||||||
longestLabelWidth, labelHeight);
|
|
||||||
}
|
}
|
||||||
else // wxSL_RIGHT
|
else // wxSL_RIGHT
|
||||||
{
|
{
|
||||||
if ( HasFlag(wxSL_MIN_MAX_LABELS) )
|
holdTopX = xLabel + longestLabelWidth + (abs(maxLabelWidth - minLabelWidth) / 2);
|
||||||
|
holdBottomX = xLabel + longestLabelWidth;
|
||||||
|
|
||||||
|
labelOffset = longestLabelWidth + HGAP;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( HasFlag(wxSL_MIN_MAX_LABELS) )
|
||||||
|
{
|
||||||
|
if ( HasFlag(wxSL_INVERSE) )
|
||||||
{
|
{
|
||||||
holdTopX = xLabel + longestLabelWidth + (abs(maxLabelWidth - minLabelWidth) / 2);
|
wxSwap(holdTopX, holdBottomX);
|
||||||
holdTopWidth = minLabelWidth;
|
|
||||||
holdBottomX = xLabel + longestLabelWidth;
|
|
||||||
holdBottomWidth = maxLabelWidth;
|
|
||||||
if ( HasFlag(wxSL_INVERSE) )
|
|
||||||
{
|
|
||||||
wxSwap(holdTopX, holdBottomX);
|
|
||||||
}
|
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Min],
|
|
||||||
holdTopX,
|
|
||||||
y,
|
|
||||||
holdTopWidth, labelHeight);
|
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Max],
|
|
||||||
holdBottomX,
|
|
||||||
y + height - labelHeight,
|
|
||||||
holdBottomWidth, labelHeight);
|
|
||||||
}
|
}
|
||||||
if ( HasFlag(wxSL_VALUE_LABEL) )
|
|
||||||
{
|
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Min],
|
||||||
labelOffset = longestLabelWidth + HGAP;
|
holdTopX,
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Value],
|
y,
|
||||||
x,
|
minLabelWidth, labelHeight);
|
||||||
|
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Max],
|
||||||
|
holdBottomX,
|
||||||
|
y + height - labelHeight,
|
||||||
|
maxLabelWidth, labelHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( HasFlag(wxSL_VALUE_LABEL) )
|
||||||
|
{
|
||||||
|
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Value],
|
||||||
|
x + ( HasFlag(wxSL_LEFT) ? THUMB + tickOffset + HGAP : 0 ),
|
||||||
y + (height - labelHeight)/2,
|
y + (height - labelHeight)/2,
|
||||||
longestLabelWidth, labelHeight);
|
longestLabelWidth, labelHeight);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// position the slider itself along the left/right edge
|
// position the slider itself along the left/right edge
|
||||||
@@ -486,10 +464,6 @@ void wxSlider::DoMoveWindow(int x, int y, int width, int height)
|
|||||||
}
|
}
|
||||||
else // horizontal
|
else // horizontal
|
||||||
{
|
{
|
||||||
int holdLeftWidth;
|
|
||||||
int holdLeftX;
|
|
||||||
int holdRightWidth;
|
|
||||||
int holdRightX;
|
|
||||||
int yLabelMinMax =
|
int yLabelMinMax =
|
||||||
(y + ((THUMB + tickOffset) / 2)) - (labelHeight / 2);
|
(y + ((THUMB + tickOffset) / 2)) - (labelHeight / 2);
|
||||||
int xLabelValue =
|
int xLabelValue =
|
||||||
@@ -499,60 +473,30 @@ void wxSlider::DoMoveWindow(int x, int y, int width, int height)
|
|||||||
|
|
||||||
int ySlider = y;
|
int ySlider = y;
|
||||||
|
|
||||||
if ( HasFlag(wxSL_BOTTOM) )
|
if ( HasFlag(wxSL_VALUE_LABEL) )
|
||||||
{
|
{
|
||||||
if ( HasFlag(wxSL_VALUE_LABEL) )
|
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Value],
|
||||||
{
|
xLabelValue,
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Value],
|
y + (HasFlag(wxSL_BOTTOM) ? 0 : THUMB + tickOffset),
|
||||||
xLabelValue,
|
longestLabelWidth, labelHeight);
|
||||||
y,
|
|
||||||
longestLabelWidth, labelHeight);
|
|
||||||
|
|
||||||
|
if ( HasFlag(wxSL_BOTTOM) )
|
||||||
|
{
|
||||||
ySlider += labelHeight;
|
ySlider += labelHeight;
|
||||||
yLabelMinMax += labelHeight;
|
yLabelMinMax += labelHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( HasFlag(wxSL_MIN_MAX_LABELS) )
|
|
||||||
{
|
|
||||||
holdLeftX = x;
|
|
||||||
holdLeftWidth = minLabelWidth;
|
|
||||||
holdRightX = x + width - maxLabelWidth;
|
|
||||||
holdRightWidth = maxLabelWidth;
|
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Min],
|
|
||||||
holdLeftX,
|
|
||||||
yLabelMinMax,
|
|
||||||
holdLeftWidth, labelHeight);
|
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Max],
|
|
||||||
holdRightX,
|
|
||||||
yLabelMinMax,
|
|
||||||
holdRightWidth, labelHeight);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else // wxSL_TOP
|
|
||||||
{
|
|
||||||
if ( HasFlag(wxSL_VALUE_LABEL) )
|
|
||||||
{
|
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Value],
|
|
||||||
xLabelValue,
|
|
||||||
y + THUMB + tickOffset,
|
|
||||||
longestLabelWidth, labelHeight);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( HasFlag(wxSL_MIN_MAX_LABELS) )
|
if ( HasFlag(wxSL_MIN_MAX_LABELS) )
|
||||||
{
|
{
|
||||||
holdLeftX = x;
|
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Min],
|
||||||
holdLeftWidth = minLabelWidth;
|
x,
|
||||||
holdRightX = x + width - maxLabelWidth;
|
yLabelMinMax,
|
||||||
holdRightWidth = maxLabelWidth;
|
minLabelWidth, labelHeight);
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Min],
|
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Max],
|
||||||
holdLeftX,
|
x + width - maxLabelWidth,
|
||||||
yLabelMinMax,
|
yLabelMinMax,
|
||||||
holdLeftWidth, labelHeight);
|
maxLabelWidth, labelHeight);
|
||||||
DoMoveSibling((HWND)(*m_labels)[SliderLabel_Max],
|
|
||||||
holdRightX,
|
|
||||||
yLabelMinMax,
|
|
||||||
holdRightWidth, labelHeight);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// position the slider itself along the top/bottom edge
|
// position the slider itself along the top/bottom edge
|
||||||
|
Reference in New Issue
Block a user