]> git.saurik.com Git - wxWidgets.git/commitdiff
implemented GetDefaultBorder() in wxControl, override it in some controls which don...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 6 Jul 2003 21:35:32 +0000 (21:35 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 6 Jul 2003 21:35:32 +0000 (21:35 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/control.h
include/wx/msw/statbmp.h
include/wx/msw/stattext.h
src/msw/control.cpp
src/msw/statbmp.cpp
src/msw/stattext.cpp
src/msw/textctrl.cpp
src/msw/window.cpp

index cba93a1609e2aad714189675412b57f6aeee44c7..8c2310844d542356fd7883f2a4fbb9257409277e 100644 (file)
@@ -21,8 +21,6 @@
 // General item class
 class WXDLLEXPORT wxControl : public wxControlBase
 {
 // General item class
 class WXDLLEXPORT wxControl : public wxControlBase
 {
-    DECLARE_ABSTRACT_CLASS(wxControl)
-
 public:
    wxControl();
    wxControl(wxWindow *parent, wxWindowID id,
 public:
    wxControl();
    wxControl(wxWindow *parent, wxWindowID id,
@@ -78,9 +76,8 @@ public:
 #endif // WXWIN_COMPATIBILITY
 
 protected:
 #endif // WXWIN_COMPATIBILITY
 
 protected:
-    // for controls like radiobuttons which are really composite this array
-    // holds the ids (not HWNDs!) of the sub controls
-    wxArrayLong m_subControls;
+    // choose the default border for this window
+    virtual wxBorder GetDefaultBorder() const;
 
     virtual wxSize DoGetBestSize() const;
 
 
     virtual wxSize DoGetBestSize() const;
 
@@ -117,7 +114,12 @@ protected:
     // default style for the control include WS_TABSTOP if it AcceptsFocus()
     virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
 
     // default style for the control include WS_TABSTOP if it AcceptsFocus()
     virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
 
+    // for controls like radiobuttons which are really composite this array
+    // holds the ids (not HWNDs!) of the sub controls
+    wxArrayLong m_subControls;
+
 private:
 private:
+    DECLARE_ABSTRACT_CLASS(wxControl)
     DECLARE_EVENT_TABLE()
 };
 
     DECLARE_EVENT_TABLE()
 };
 
index 38a12b3a558d5cd098880030b7c86da207d193dc..55e2aa35b75a8bffeeb2bfae20124724e18b7323 100644 (file)
@@ -80,6 +80,7 @@ public:
     virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
 
 protected:
     virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
 
 protected:
+    virtual wxBorder GetDefaultBorder() const;
     virtual wxSize DoGetBestSize() const;
     virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
 
     virtual wxSize DoGetBestSize() const;
     virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
 
index 27deb483909a8d5a0c45964eb95fadcbc1ec6976..311f731f5564ed672e21323bdc3f0a841ca784a0 100644 (file)
@@ -46,6 +46,7 @@ public:
 
 protected:
     // implement/override some base class virtuals
 
 protected:
     // implement/override some base class virtuals
+    virtual wxBorder GetDefaultBorder() const;
     virtual void DoSetSize(int x, int y, int w, int h,
                            int sizeFlags = wxSIZE_AUTO);
     virtual wxSize DoGetBestSize() const;
     virtual void DoSetSize(int x, int y, int w, int h,
                            int sizeFlags = wxSIZE_AUTO);
     virtual wxSize DoGetBestSize() const;
index bbb8d431dd825b4ba27b6b032699101e31aafb24..fc29f742cc0572b3c7002f985353d58db97c046c 100644 (file)
@@ -96,9 +96,8 @@ bool wxControl::MSWCreateControl(const wxChar *classname,
     // if no extended style given, determine it ourselves
     if ( exstyle == (WXDWORD)-1 )
     {
     // if no extended style given, determine it ourselves
     if ( exstyle == (WXDWORD)-1 )
     {
-//        exstyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D);
         exstyle = 0;
         exstyle = 0;
-        (void) MSWGetStyle(GetWindowStyle(), & exstyle) ;
+        (void) MSWGetStyle(GetWindowStyle(), &exstyle);
     }
 
     // all controls should have this style
     }
 
     // all controls should have this style
@@ -159,6 +158,14 @@ bool wxControl::MSWCreateControl(const wxChar *classname,
     return TRUE;
 }
 
     return TRUE;
 }
 
+wxBorder wxControl::GetDefaultBorder() const
+{
+    // we want to automatically give controls a sunken style (confusingly,
+    // it may not really mean sunken at all as we map it to WS_EX_CLIENTEDGE
+    // which is not sunken at all under Windows XP -- rather, just the default)
+    return wxBORDER_SUNKEN;
+}
+
 wxSize wxControl::DoGetBestSize() const
 {
     return wxSize(DEFAULT_ITEM_WIDTH, DEFAULT_ITEM_HEIGHT);
 wxSize wxControl::DoGetBestSize() const
 {
     return wxSize(DEFAULT_ITEM_WIDTH, DEFAULT_ITEM_HEIGHT);
index db1d8b11d35f10aac847e1685220d7fdf4835183..84857d996fc0d3bacb6ff243c50ba026c994737b 100644 (file)
@@ -98,12 +98,6 @@ bool wxStaticBitmap::Create(wxWindow *parent,
                             long style,
                             const wxString& name)
 {
                             long style,
                             const wxString& name)
 {
-    // default border for this control is none
-    if ( (style & wxBORDER_MASK) == wxBORDER_DEFAULT )
-    {
-        style |= wxBORDER_NONE;
-    }
-    
     if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
         return FALSE;
 
     if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
         return FALSE;
 
@@ -140,6 +134,11 @@ bool wxStaticBitmap::Create(wxWindow *parent,
     return TRUE;
 }
 
     return TRUE;
 }
 
+wxBorder wxStaticBitmap::GetDefaultBorder() const
+{
+    return wxBORDER_NONE;
+}
+
 WXDWORD wxStaticBitmap::MSWGetStyle(long style, WXDWORD *exstyle) const
 {
     WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle);
 WXDWORD wxStaticBitmap::MSWGetStyle(long style, WXDWORD *exstyle) const
 {
     WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle);
index 5248292eeaff588b209df192e28bceab91bb3762..5bfc2f0e92224aed8dd8ae906cd16368d5831eb1 100644 (file)
@@ -42,10 +42,6 @@ bool wxStaticText::Create(wxWindow *parent,
                           long style,
                           const wxString& name)
 {
                           long style,
                           const wxString& name)
 {
-    // By default, a static text should have no border.
-    if ((style & wxBORDER_MASK) == wxBORDER_DEFAULT)
-        style |= wxBORDER_NONE;
-
     if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
         return FALSE;
 
     if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
         return FALSE;
 
@@ -55,6 +51,11 @@ bool wxStaticText::Create(wxWindow *parent,
     return TRUE;
 }
 
     return TRUE;
 }
 
+wxBorder wxStaticText::GetDefaultBorder() const
+{
+    return wxBORDER_NONE;
+}
+
 WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const
 {
     WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle);
 WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const
 {
     WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle);
index 2fa639483189e7583437ecbf6bba94eed51da996..1c63618df51a471e869f53b396ccb4fc05af079a 100644 (file)
@@ -355,12 +355,6 @@ void wxTextCtrl::AdoptAttributesFromHWND()
 
 WXDWORD wxTextCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
 {
 
 WXDWORD wxTextCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
 {
-    // default border for the text controls is the sunken one
-    if ( (style & wxBORDER_MASK) == wxBORDER_DEFAULT )
-    {
-        style |= wxBORDER_SUNKEN;
-    }
-
     long msStyle = wxControl::MSWGetStyle(style, exstyle);
 
     // styles which we alaways add by default
     long msStyle = wxControl::MSWGetStyle(style, exstyle);
 
     // styles which we alaways add by default
@@ -424,9 +418,6 @@ WXDWORD wxTextCtrl::MSWGetStyle(long style, WXDWORD *exstyle) const
 
 void wxTextCtrl::SetWindowStyleFlag(long style)
 {
 
 void wxTextCtrl::SetWindowStyleFlag(long style)
 {
-    if ( (style & wxBORDER_MASK) == wxBORDER_DEFAULT )
-        style |= wxBORDER_SUNKEN;
-
 #if wxUSE_RICHEDIT
     // we have to deal with some styles separately because they can't be
     // changed by simply calling SetWindowLong(GWL_STYLE) but can be changed
 #if wxUSE_RICHEDIT
     // we have to deal with some styles separately because they can't be
     // changed by simply calling SetWindowLong(GWL_STYLE) but can be changed
index 2f228c07092abd324943a233ee763edc9784431a..eab831591d6e87efbf8e6da53adf921b5d4591ba 100644 (file)
@@ -1028,23 +1028,10 @@ WXDWORD wxWindowMSW::MSWGetStyle(long flags, WXDWORD *exstyle) const
     if ( flags & wxHSCROLL )
         style |= WS_HSCROLL;
 
     if ( flags & wxHSCROLL )
         style |= WS_HSCROLL;
 
-    wxBorder border = (wxBorder)(flags & wxBORDER_MASK);
+    const wxBorder border = GetBorder(flags);
 
 
-    // Check if we want to automatically give it a sunken style.
-    // Note than because 'sunken' actually maps to WS_EX_CLIENTEDGE, which
-    // is a more neutral term, we don't necessarily get a sunken effect in
-    // Windows XP. Instead we get the appropriate style for the theme.
-
-    if (border == wxBORDER_DEFAULT &&
-        IsKindOf(CLASSINFO(wxControl)) &&
-        GetParent() &&
-        ((GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS) != wxUSER_COLOURS))
-    {
-        border = (wxBorder)((flags & wxBORDER_MASK) | wxBORDER_SUNKEN);
-    }
-
-    // Only give it WS_BORDER for wxBORDER_SIMPLE
-    if (border & wxBORDER_SIMPLE)
+    // WS_BORDER is only required for wxBORDER_SIMPLE
+    if ( border == wxBORDER_SIMPLE )
         style |= WS_BORDER;
 
     // now deal with ext style if the caller wants it
         style |= WS_BORDER;
 
     // now deal with ext style if the caller wants it
@@ -1058,12 +1045,12 @@ WXDWORD wxWindowMSW::MSWGetStyle(long flags, WXDWORD *exstyle) const
         switch ( border )
         {
             default:
         switch ( border )
         {
             default:
+            case wxBORDER_DEFAULT:
                 wxFAIL_MSG( _T("unknown border style") );
                 // fall through
 
             case wxBORDER_NONE:
             case wxBORDER_SIMPLE:
                 wxFAIL_MSG( _T("unknown border style") );
                 // fall through
 
             case wxBORDER_NONE:
             case wxBORDER_SIMPLE:
-            case wxBORDER_DEFAULT:
                 break;
 
             case wxBORDER_STATIC:
                 break;
 
             case wxBORDER_STATIC: