]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/radiobox.cpp
First cut at socket support in wxX11
[wxWidgets.git] / src / os2 / radiobox.cpp
index 70a9a050e400b5b13c485d3009e0a67d6c1542c9..8a11e966c4d52475a1e7ef6ee0b34f5f63afe856 100644 (file)
@@ -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?
         //