]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/radiobox.cpp
no message
[wxWidgets.git] / src / os2 / radiobox.cpp
index 47a6fbdd9c0892761c6c05d8436600243ee8579a..8fa3845bae85490bc2861789ed23fde1ed5f4a71 100644 (file)
@@ -86,7 +86,7 @@ void wxRadioBox::AdjustButtons(
 , int                               nY
 , int                               nWidth
 , int                               nHeight
-, long                              lSizeFlags
+, int                               nSizeFlags
 )
 {
     wxSize                          vMaxSize;
@@ -264,7 +264,11 @@ 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;
 
@@ -294,7 +298,11 @@ bool wxRadioBox::Create(
 
 
     if (!OS2CreateControl( "STATIC"
-                          ,SS_GROUPBOX | WS_GROUP
+#if RADIOBTN_PARENT_IS_RADIOBOX
+                          ,SS_GROUPBOX | WS_GROUP | WS_CLIPCHILDREN
+#else
+                          ,SS_GROUPBOX | WS_GROUP | WS_CLIPSIBLINGS
+#endif
                           ,rPos
                           ,rSize
                           ,rsTitle
@@ -315,9 +323,9 @@ bool wxRadioBox::Create(
     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++)
@@ -341,11 +349,19 @@ bool wxRadioBox::Create(
                                                                          ,NULL
                                                                          ,NULL
                                                                         );
+        lColor = (LONG)vColour.GetPixel();
         ::WinSetPresParam( hWndBtn
                           ,PP_FOREGROUNDCOLOR
                           ,sizeof(LONG)
                           ,(PVOID)&lColor
                          );
+        lColor = (LONG)m_backgroundColour.GetPixel();
+
+        ::WinSetPresParam( hWndBtn
+                          ,PP_BACKGROUNDCOLOR
+                          ,sizeof(LONG)
+                          ,(PVOID)&lColor
+                         );
         if (!hWndBtn)
         {
             return FALSE;
@@ -353,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);
@@ -373,18 +389,27 @@ bool wxRadioBox::Create(
                              ,NULL
                              ,NULL
                             );
-     SetFont(*wxSMALL_FONT);
+    SetFont(*pTextFont);
+    lColor = (LONG)vColour.GetPixel();
     ::WinSetPresParam( m_hWnd
                       ,PP_FOREGROUNDCOLOR
                       ,sizeof(LONG)
                       ,(PVOID)&lColor
                      );
+    lColor = (LONG)m_backgroundColour.GetPixel();
+
+    ::WinSetPresParam( m_hWnd
+                      ,PP_BACKGROUNDCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
     SetSelection(0);
     SetSize( rPos.x
             ,rPos.y
             ,rSize.x
             ,rSize.y
            );
+    delete pTextFont;
     return TRUE;
 } // end of wxRadioBox::Create
 
@@ -480,7 +505,9 @@ void wxRadioBox::DoSetSize(
 
     if (pParent)
     {
-        nYy = pParent->GetClientSize().y - (nYy + nHeight);
+        int                         nOS2Height = GetOS2ParentHeight(pParent);
+
+        nYy = nOS2Height - (nYy + nHeight);
         nYOffset = nYy + nHeight;
     }
     else