X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2aa54d47d66b5cda0dca2b743e11c954581a7b99..931d6a47c32a5b4c283243cb553ce71ee2b535d5:/src/msw/spinctrl.cpp?ds=inline diff --git a/src/msw/spinctrl.cpp b/src/msw/spinctrl.cpp index 8cea79bf7b..4610eef008 100644 --- a/src/msw/spinctrl.cpp +++ b/src/msw/spinctrl.cpp @@ -4,7 +4,6 @@ // Author: Vadim Zeitlin // Modified by: // Created: 22.07.99 -// RCS-ID: $Id$ // Copyright: (c) 1999-2005 Vadim Zeitlin // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -321,7 +320,9 @@ bool wxSpinCtrl::Create(wxWindow *parent, sizeText.x -= sizeBtn.x + MARGIN_BETWEEN; if ( sizeText.x <= 0 ) { - wxLogDebug(wxT("not enough space for wxSpinCtrl!")); + wxLogDebug(wxS("wxSpinCtrl \"%s\": initial width %d is too small, ") + wxS("at least %d pixels needed."), + name, size.x, sizeBtn.x + MARGIN_BETWEEN + 1); } wxPoint posBtn(pos); @@ -745,16 +746,25 @@ void wxSpinCtrl::DoMoveWindow(int x, int y, int width, int height) { int widthBtn = wxSpinButton::DoGetBestSize().x; int widthText = width - widthBtn - MARGIN_BETWEEN; - if ( widthText <= 0 ) + if ( widthText < 0 ) { - wxLogDebug(wxT("not enough space for wxSpinCtrl!")); + // This can happen during the initial window layout when it's total + // size is too small to accommodate all the controls and usually is not + // a problem because the window will be relaid out with enough space + // later. Of course, if it isn't and this is our final size, then we + // have a real problem but as we don't know if this is going to be the + // case or not, just hope for the best -- we used to give a debug + // warning here and this was annoying as it could result in dozens of + // perfectly harmless warnings. + widthText = 0; } // 1) The buddy window DoMoveSibling(m_hwndBuddy, x, y, widthText, height); // 2) The button window - x += widthText + MARGIN_BETWEEN; + if ( widthText > 0 ) + x += widthText + MARGIN_BETWEEN; wxSpinButton::DoMoveWindow(x, y, widthBtn, height); }