X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5d44b24ee63543390aa28e1eb4ff162da4264838..52127426a14176f9e12608952c5dc6ea9a2b6bd4:/src/os2/radiobox.cpp diff --git a/src/os2/radiobox.cpp b/src/os2/radiobox.cpp index 70a9a050e4..8a11e966c4 100644 --- a/src/os2/radiobox.cpp +++ b/src/os2/radiobox.cpp @@ -264,14 +264,19 @@ bool wxRadioBox::Create( // System fonts are too big in OS/2 and they are blue // We want smaller fonts and black by default. // - wxFont& rFont = *wxSMALL_FONT; + wxFont* pTextFont = new wxFont( 10 + ,wxMODERN + ,wxNORMAL + ,wxNORMAL + ); wxColour vColour; LONG lColor; vColour.Set(wxString("BLACK")); lColor = (LONG)vColour.GetPixel(); + m_backgroundColour = pParent->GetBackgroundColour(); m_nSelectedButton = -1; - m_nNoItems = nNum; + m_nNoItems = 0; m_nMajorDim = nMajorDim == 0 ? nNum : nMajorDim; m_nNoRowsOrCols = nMajorDim; @@ -279,20 +284,17 @@ bool wxRadioBox::Create( // // Common initialization // - if (!OS2CreateControl( pParent - ,vId - ,rPos - ,rSize - ,lStyle + if (!CreateControl( pParent + ,vId + ,rPos + ,rSize + ,lStyle #if wxUSE_VALIDATORS - ,rVal + ,rVal #endif - ,rsName - )) - - - - + ,rsName + )) + return FALSE; if (!OS2CreateControl( "STATIC" #if RADIOBTN_PARENT_IS_RADIOBOX ,SS_GROUPBOX | WS_GROUP | WS_CLIPCHILDREN @@ -303,6 +305,7 @@ bool wxRadioBox::Create( ,rSize ,rsTitle )) + return FALSE; #if RADIOBTN_PARENT_IS_RADIOBOX HWND hWndParent = GetHwnd(); @@ -314,14 +317,15 @@ bool wxRadioBox::Create( // // Some radio boxes test consecutive id. // + m_nNoItems = nNum; (void)NewControlId(); m_ahRadioButtons = new WXHWND[nNum]; m_pnRadioWidth = new int[nNum]; m_pnRadioHeight = new int[nNum]; - if (rFont.Ok()) + if (pTextFont->Ok()) { - hFont = rFont.GetResourceHandle(); + hFont = pTextFont->GetResourceHandle(); } for (int i = 0; i < nNum; i++) @@ -365,7 +369,7 @@ bool wxRadioBox::Create( m_ahRadioButtons[i] = (WXHWND)hWndBtn; SubclassRadioButton((WXHWND)hWndBtn); wxOS2SetFont( hWndBtn - ,rFont + ,*pTextFont ); ::WinSetWindowULong(hWndBtn, QWL_USER, (ULONG)this); m_aSubControls.Add(nNewId); @@ -385,7 +389,7 @@ bool wxRadioBox::Create( ,NULL ,NULL ); - SetFont(*wxSMALL_FONT); + SetFont(*pTextFont); lColor = (LONG)vColour.GetPixel(); ::WinSetPresParam( m_hWnd ,PP_FOREGROUNDCOLOR @@ -399,12 +403,15 @@ bool wxRadioBox::Create( ,sizeof(LONG) ,(PVOID)&lColor ); + SetXComp(0); + SetYComp(0); SetSelection(0); SetSize( rPos.x ,rPos.y ,rSize.x ,rSize.y ); + delete pTextFont; return TRUE; } // end of wxRadioBox::Create @@ -457,7 +464,10 @@ void wxRadioBox::DoSetSize( nXx = nCurrentX; if (nY == -1 && !(nSizeFlags & wxSIZE_ALLOW_MINUS_ONE)) nYy = nCurrentY; - + if (nYy < 0) + nYy = 0; + if (nXx < 0) + nXx = 0; wxGetCharSize( m_hWnd ,&nCx1 @@ -622,6 +632,7 @@ void wxRadioBox::DoSetSize( ,(LONG)nMaxHeight ,SWP_ZORDER | SWP_SIZE | SWP_MOVE | SWP_SHOW ); + GetParent()->Refresh(); // // Where do we put the next button? //