]> git.saurik.com Git - wxWidgets.git/commitdiff
restore some of the styles; added support for splitters without border/sash to generi...
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 22 Jul 2003 22:12:32 +0000 (22:12 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 22 Jul 2003 22:12:32 +0000 (22:12 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/splitter.tex
include/wx/splitter.h
src/generic/renderg.cpp

index d9b0f4b16a8e5a86345e9eab983cf6fe2d0a81af..a76b73188b4bcba8248ec1f2f2ab2ba8dc62338b 100644 (file)
@@ -15,10 +15,9 @@ look more like the native control under MacOS X.
 \begin{twocollist}\itemsep=0pt
 \twocolitem{\windowstyle{wxSP\_3D}}{Draws a 3D effect border and sash.}
 \twocolitem{\windowstyle{wxSP\_3DSASH}}{Draws a 3D effect sash.}
-\twocolitem{\windowstyle{wxSP\_3DBORDER}}{Draws a 3D effect border.}
-\twocolitem{\windowstyle{wxSP\_FULLSASH}}{Draws the ends of the sash (so the window can be used without a border).}
-\twocolitem{\windowstyle{wxSP\_BORDER}}{Draws a thin black border around the window.}
-\twocolitem{\windowstyle{wxSP\_NOBORDER}}{No border, and a black sash.}
+\twocolitem{\windowstyle{wxSP\_3DBORDER}}{Synonym for wxSP\_BORDER.}
+\twocolitem{\windowstyle{wxSP\_BORDER}}{Draws a standard border.}
+\twocolitem{\windowstyle{wxSP\_NOBORDER}}{No border (default).}
 \twocolitem{\windowstyle{wxSP\_PERMIT\_UNSPLIT}}{Always allow to
 unsplit, even with the minimum pane size other than zero.}
 \twocolitem{\windowstyle{wxSP\_LIVE\_UPDATE}}{Don't draw XOR line but resize the child windows immediately.}
index 82a2b79878ff9cff0d508cd96c2a9883d302bc5c..c087846a7aa601f0fb17de966eea2afbd1071748 100644 (file)
@@ -7,18 +7,18 @@
 // wxSplitterWindow flags
 // ----------------------------------------------------------------------------
 
+#define wxSP_NOBORDER         0x0000
 #define wxSP_NOSASH           0x0010
 #define wxSP_PERMIT_UNSPLIT   0x0040
 #define wxSP_LIVE_UPDATE      0x0080
+#define wxSP_3DSASH           0x0100
+#define wxSP_3DBORDER         0x0200
+#define wxSP_BORDER           wxSP_3DBORDER
+#define wxSP_3D               (wxSP_3DBORDER | wxSP_3DSASH)
 
 // obsolete styles, don't do anything
-#define wxSP_BORDER           0
-#define wxSP_NOBORDER         0
 #define wxSP_SASH_AQUA        0
-#define wxSP_3DSASH           0
-#define wxSP_3DBORDER         0
 #define wxSP_FULLSASH         0
-#define wxSP_3D               (wxSP_3DBORDER | wxSP_3DSASH)
 
 BEGIN_DECLARE_EVENT_TYPES()
     DECLARE_EVENT_TYPE(wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, 850)
index 52ca20583705e6591e414c705c8515f79a84adcf..7f121bef42192b19871942dd2675cfda9d1542c5 100644 (file)
@@ -32,6 +32,7 @@
 #include "wx/dc.h"
 
 #include "wx/settings.h"
+#include "wx/splitter.h"
 
 #include "wx/renderer.h"
 
@@ -205,29 +206,32 @@ wxRendererGeneric::DrawTreeItemButton(wxWindow * WXUNUSED(win),
 // ----------------------------------------------------------------------------
 
 wxPoint
-wxRendererGeneric::GetSplitterSashAndBorder(const wxWindow * WXUNUSED(win))
+wxRendererGeneric::GetSplitterSashAndBorder(const wxWindow *win)
 {
     // see below
-    return wxPoint(7, 2);
+    return win->HasFlag(wxSP_3D) ? wxPoint(7, 2) : wxPoint(3, 0);
 }
 
 void
-wxRendererGeneric::DrawSplitterBorder(wxWindow * WXUNUSED(win),
+wxRendererGeneric::DrawSplitterBorder(wxWindow *win,
                                       wxDC& dc,
                                       const wxRect& rectOrig)
 {
-    wxRect rect = rectOrig;
-    DrawShadedRect(dc, &rect, m_penDarkGrey, m_penHighlight);
-    DrawShadedRect(dc, &rect, m_penBlack, m_penLightGrey);
+    if ( win->HasFlag(wxSP_3D) )
+    {
+        wxRect rect = rectOrig;
+        DrawShadedRect(dc, &rect, m_penDarkGrey, m_penHighlight);
+        DrawShadedRect(dc, &rect, m_penBlack, m_penLightGrey);
+    }
 }
 
 void
-wxRendererGeneric::DrawSplitterSash(wxWindow * WXUNUSED(win),
+wxRendererGeneric::DrawSplitterSash(wxWindow *win,
                                     wxDC& dc,
                                     const wxSize& size,
                                     wxCoord position)
 {
-    // we draw a Win32-like sash here:
+    // we draw a Win32-like grey sash with possible 3D border here:
     //
     //   ---- this is position
     //  /
@@ -242,24 +246,32 @@ wxRendererGeneric::DrawSplitterSash(wxWindow * WXUNUSED(win),
     // GWGGGDB  and lower letters are our border (already drawn)
     // GWGGGDB
     // wWGGGDd
+    //
+    // only the middle 3 columns are drawn unless wxSP_3D is specified
 
     const wxCoord h = size.y;
 
     // from left to right
-    dc.SetPen(m_penLightGrey);
-    dc.DrawLine(position, 1, position, h - 1);
+    if ( win->HasFlag(wxSP_3D) )
+    {
+        dc.SetPen(m_penLightGrey);
+        dc.DrawLine(position, 1, position, h - 1);
 
-    dc.SetPen(m_penHighlight);
-    dc.DrawLine(position + 1, 0, position + 1, h);
+        dc.SetPen(m_penHighlight);
+        dc.DrawLine(position + 1, 0, position + 1, h);
+    }
 
     dc.SetPen(*wxTRANSPARENT_PEN);
     dc.SetBrush(wxBrush(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE)));
     dc.DrawRectangle(position + 2, 0, 3, h);
 
-    dc.SetPen(m_penDarkGrey);
-    dc.DrawLine(position + 5, 0, position + 5, h);
+    if ( win->HasFlag(wxSP_3D) )
+    {
+        dc.SetPen(m_penDarkGrey);
+        dc.DrawLine(position + 5, 0, position + 5, h);
 
-    dc.SetPen(m_penBlack);
-    dc.DrawLine(position + 6, 1, position + 6, h - 1);
+        dc.SetPen(m_penBlack);
+        dc.DrawLine(position + 6, 1, position + 6, h - 1);
+    }
 }