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