git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60588
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
virtual void DoSetSize(int x, int y,
int width, int height,
int sizeFlags = wxSIZE_AUTO);
virtual void DoSetSize(int x, int y,
int width, int height,
int sizeFlags = wxSIZE_AUTO);
+ virtual void DoMoveWindow(int x, int y, int width, int height);
virtual wxSize DoGetBestSize() const;
#if wxUSE_TOOLTIPS
virtual wxSize DoGetBestSize() const;
#if wxUSE_TOOLTIPS
void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
- int currentX, currentY;
- GetPosition(¤tX, ¤tY);
- int widthOld, heightOld;
- GetSize(&widthOld, &heightOld);
+ if ( (width == wxDefaultCoord && (sizeFlags & wxSIZE_AUTO_WIDTH)) ||
+ (height == wxDefaultCoord && (sizeFlags & wxSIZE_AUTO_HEIGHT)) )
+ {
+ // Attempt to have a look coherent with other platforms: We compute the
+ // biggest toggle dim, then we align all items according this value.
+ const wxSize totSize = GetTotalButtonSize(GetMaxButtonSize());
- int xx = x;
- int yy = y;
+ // only change our width/height if asked for
+ if ( width == wxDefaultCoord && (sizeFlags & wxSIZE_AUTO_WIDTH) )
+ width = totSize.x;
- if (x == wxDefaultCoord && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
- xx = currentX;
- if (y == wxDefaultCoord && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE))
- yy = currentY;
+ if ( height == wxDefaultCoord && (sizeFlags & wxSIZE_AUTO_HEIGHT) )
+ height = totSize.y;
+ }
- int y_offset = yy;
- int x_offset = xx;
+ wxStaticBox::DoSetSize(x, y, width, height);
+}
- int cx1, cy1;
- wxGetCharSize(m_hWnd, &cx1, &cy1, GetFont());
+void wxRadioBox::DoMoveWindow(int x, int y, int width, int height)
+{
+ wxStaticBox::DoMoveWindow(x, y, width, height);
- // Attempt to have a look coherent with other platforms: We compute the
- // biggest toggle dim, then we align all items according this value.
wxSize maxSize = GetMaxButtonSize();
int maxWidth = maxSize.x,
maxHeight = maxSize.y;
wxSize maxSize = GetMaxButtonSize();
int maxWidth = maxSize.x,
maxHeight = maxSize.y;
- wxSize totSize = GetTotalButtonSize(maxSize);
- int totWidth = totSize.x,
- totHeight = totSize.y;
-
- // only change our width/height if asked for
- if ( width == wxDefaultCoord )
- {
- if ( sizeFlags & wxSIZE_AUTO_WIDTH )
- width = totWidth;
- else
- width = widthOld;
- }
-
- if ( height == wxDefaultCoord )
- {
- if ( sizeFlags & wxSIZE_AUTO_HEIGHT )
- height = totHeight;
- else
- height = heightOld;
- }
-
- DoMoveWindow(xx, yy, width, height);
-
// Now position all the buttons: the current button will be put at
// wxPoint(x_offset, y_offset) and the new row/column will start at
// startX/startY. The size of all buttons will be the same wxSize(maxWidth,
// Now position all the buttons: the current button will be put at
// wxPoint(x_offset, y_offset) and the new row/column will start at
// startX/startY. The size of all buttons will be the same wxSize(maxWidth,
// wxRA_SPECIFY_ROWS means that the buttons are arranged top to bottom and
// GetMajorDim() is the number of rows.
// wxRA_SPECIFY_ROWS means that the buttons are arranged top to bottom and
// GetMajorDim() is the number of rows.
- x_offset += cx1;
- y_offset += cy1;
+ int cx1, cy1;
+ wxGetCharSize(m_hWnd, &cx1, &cy1, GetFont());
+
+ int x_offset = x + cx1;
+ int y_offset = y + cy1;
// Add extra space under the label, if it exists.
if (!wxControl::GetLabel().empty())
// Add extra space under the label, if it exists.
if (!wxControl::GetLabel().empty())