]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/statline.cpp
Refactor owner-drawing code.
[wxWidgets.git] / src / os2 / statline.cpp
index a91dfa300b6fc7eec4bc2b4b093ed07fc562f9a9..e9663eebf90f92d0634f2b7436f33c57b26d51a8 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        msw/statline.cpp
+// Name:        src/os2/statline.cpp
 // Purpose:     OS2 version of wxStaticLine class
 // Author:      David Webster
 // Created:     10/23/99
 // headers
 // ----------------------------------------------------------------------------
 
-#ifdef __GNUG__
-    #pragma implementation "statline.h"
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
+#if wxUSE_STATLINE
+
 #include "wx/statline.h"
 
-#if wxUSE_STATLINE
+#ifndef WX_PRECOMP
+    #include "wx/log.h"
+#endif
 
 #include "wx/os2/private.h"
-#include "wx/log.h"
 
 // ============================================================================
 // implementation
@@ -49,46 +48,56 @@ bool wxStaticLine::Create(
 , const wxString&                   rsName
 )
 {
-    if (!CreateBase( pParent
-                    ,vId
-                    ,rPos
-                    ,rSize
-                    ,lStyle
-                    ,wxDefaultValidator
-                    ,rsName
-                   ))
-        return FALSE;
+    wxSize                          vSize = AdjustSize(rSize);
 
-    pParent->AddChild(this);
-
-    wxSize                          vSizeReal = AdjustSize(rSize);
-
-    m_hWnd = (WXHWND)::WinCreateWindow( GetWinHwnd(pParent)
-                                       ,WC_STATIC
-                                       ,""
-                                       ,WS_VISIBLE | SS_TEXT | DT_VCENTER | DT_CENTER
-                                       ,0
-                                       ,0
-                                       ,0
-                                       ,0
-                                       ,GetWinHwnd(pParent)
-                                       ,HWND_TOP
-                                       ,(ULONG)m_windowId
-                                       ,NULL
-                                       ,NULL
-                                      );
-    if ( !m_hWnd )
-    {
-        wxLogDebug(wxT("Failed to create static control"));
+    if ( !CreateControl( pParent
+                        ,vId
+                        ,rPos
+                        ,vSize
+                        ,lStyle
+                        ,wxDefaultValidator
+                        ,rsName
+                       ))
         return FALSE;
-    }
-    SubclassWin(m_hWnd);
-    SetSize( rPos.x
-            ,rPos.y
-            ,rSize.x
-            ,rSize.y
-           );
+    if (!OS2CreateControl( wxT("STATIC")
+                          ,SS_FGNDFRAME
+                          ,rPos
+                          ,rSize
+                          ,rsName
+                         ))
+        return FALSE;
+
+    wxColour                        vColour;
+
+    vColour.Set(wxString(wxT("GREY")));
+
+    LONG                            lColor = (LONG)vColour.GetPixel();
+
+    ::WinSetPresParam( m_hWnd
+                      ,PP_FOREGROUNDCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
     return TRUE;
 } // end of wxStaticLine::Create
 
+WXDWORD wxStaticLine::OS2GetStyle(
+  long                              lStyle
+, WXDWORD*                          pdwExstyle
+) const
+{
+    //
+    // We never have border
+    //
+    lStyle &= ~wxBORDER_MASK;
+    lStyle |= wxBORDER_NONE;
+
+    WXDWORD                         dwStyle = wxControl::OS2GetStyle( lStyle
+                                                                     ,pdwExstyle
+                                                                    );
+    //
+    // Add our default styles
+    //
+    return dwStyle | WS_CLIPSIBLINGS;
+}
 #endif // wxUSE_STATLINE