]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/statline.cpp
adding support for wxCANCEL_DEFAULT
[wxWidgets.git] / src / os2 / statline.cpp
index 1e3f3766e16ccfe8da7aca9d50e8c7f299547d9d..62562b26e01521c7a1759936174092d3a8717a62 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
 // 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
 // ============================================================================
 
-IMPLEMENT_DYNAMIC_CLASS(wxStaticLine, wxControl)
-
 // ----------------------------------------------------------------------------
 // wxStaticLine
 // ----------------------------------------------------------------------------
 
-bool wxStaticLine::Create( wxWindow *parent,
-                           wxWindowID id,
-                           const wxPoint &pos,
-                           const wxSize &size,
-                           long style,
-                           const wxString &name)
+bool wxStaticLine::Create(
+  wxWindow*                         pParent
+, wxWindowID                        vId
+, const wxPoint&                    rPos
+, const wxSize&                     rSize
+, long                              lStyle
+, const wxString&                   rsName
+)
 {
-    if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
+    wxSize                          vSize = AdjustSize(rSize);
+
+    if ( !CreateControl( pParent
+                        ,vId
+                        ,rPos
+                        ,vSize
+                        ,lStyle
+                        ,wxDefaultValidator
+                        ,rsName
+                       ))
         return FALSE;
-
-    parent->AddChild(this);
-
-    wxSize sizeReal = AdjustSize(size);
-
-// TODO:
-/*
-    m_hWnd = (WXHWND)::CreateWindow
-                       (
-                        wxT("STATIC"),
-                        wxT(""),
-                        WS_VISIBLE | WS_CHILD |
-                        SS_GRAYRECT | SS_SUNKEN, // | SS_ETCHEDFRAME,
-                        pos.x, pos.y, sizeReal.x, sizeReal.y,
-                        GetWinHwnd(parent),
-                        (HMENU)m_windowId,
-                        wxGetInstance(),
-                        NULL
-                       );
-
-    if ( !m_hWnd )
-    {
-#ifdef __WXDEBUG__
-        wxLogDebug(wxT("Failed to create static control"));
-#endif
+    if (!OS2CreateControl( wxT("STATIC")
+                          ,SS_FGNDFRAME
+                          ,rPos
+                          ,rSize
+                          ,rsName
+                         ))
         return FALSE;
-    }
 
-    SubclassWin(m_hWnd);
+    wxColour                        vColour;
 
+    vColour.Set(wxString(wxT("GREY")));
+
+    LONG                            lColor = (LONG)vColour.GetPixel();
+
+    ::WinSetPresParam( m_hWnd
+                      ,PP_FOREGROUNDCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
     return TRUE;
-*/
-    return FALSE;
-}
-#endif
+} // 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