From: Vadim Zeitlin Date: Tue, 22 Jul 2003 22:12:32 +0000 (+0000) Subject: restore some of the styles; added support for splitters without border/sash to generi... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/52c14774b3309c1f6baddbcf92df1eb86a322d92 restore some of the styles; added support for splitters without border/sash to generic renderer git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/splitter.tex b/docs/latex/wx/splitter.tex index d9b0f4b16a..a76b73188b 100644 --- a/docs/latex/wx/splitter.tex +++ b/docs/latex/wx/splitter.tex @@ -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.} diff --git a/include/wx/splitter.h b/include/wx/splitter.h index 82a2b79878..c087846a7a 100644 --- a/include/wx/splitter.h +++ b/include/wx/splitter.h @@ -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) diff --git a/src/generic/renderg.cpp b/src/generic/renderg.cpp index 52ca205837..7f121bef42 100644 --- a/src/generic/renderg.cpp +++ b/src/generic/renderg.cpp @@ -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); + } }