]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/stattext.cpp
wxFileCtrl::Update was hiding wxWindow::Update
[wxWidgets.git] / src / os2 / stattext.cpp
index cb8e29c0b35b11ff8e3820065b70db4bb817780a..871921424161b0a23dd6521ec26fbc713e0c8e41 100644 (file)
@@ -20,6 +20,7 @@
 #include "wx/event.h"
 #include "wx/app.h"
 #include "wx/brush.h"
+#include "wx/scrolwin.h"
 #endif
 
 #include "wx/stattext.h"
@@ -66,6 +67,15 @@ bool wxStaticText::Create(
         lSstyle |= DT_RIGHT;
     else
         lSstyle |= DT_LEFT;
+    //
+    // If the parent is a scrolled window the controls must
+    // have this style or they will overlap the scrollbars
+    //
+    if (pParent)
+        if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+            pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+            lSstyle |= WS_CLIPSIBLINGS;
+
     m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
                                        ,WC_STATIC                // Window class
                                        ,(PSZ)rsLabel.c_str()     // Initial Text
@@ -91,9 +101,16 @@ bool wxStaticText::Create(
                       ,sizeof(LONG)
                       ,(PVOID)&lColor
                      );
+    lColor = (LONG)m_backgroundColour.GetPixel();
+
+    ::WinSetPresParam( m_hWnd
+                      ,PP_BACKGROUNDCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
 
     SubclassWin(m_hWnd);
-    wxControl::SetFont(pParent->GetFont());
+    wxControl::SetFont(*wxSMALL_FONT);
     SetSize( nX
             ,nY
             ,nWidth
@@ -159,6 +176,27 @@ wxSize wxStaticText::DoGetBestSize() const
                  );
 } // end of wxStaticText::DoGetBestSize
 
+void wxStaticText::DoSetSize(
+  int                               nX
+, int                               nY
+, int                               nWidth
+, int                               nHeight
+, int                               nSizeFlags
+)
+{
+    //
+    // We need to refresh the window after changing its size as the standard
+    // control doesn't always update itself properly.
+    //
+    wxStaticTextBase::DoSetSize( nX
+                                ,nY
+                                ,nWidth
+                                ,nHeight
+                                ,nSizeFlags
+                               );
+    Refresh();
+} // end of wxStaticText::DoSetSize
+
 bool wxStaticText::SetFont(
   const wxFont&                     rFont
 )
@@ -204,5 +242,3 @@ MRESULT wxStaticText::OS2WindowProc(
                                    ,lParam
                                   );
 } // end of wxStaticText::OS2WindowProc
-
-