Added wxSP_SASH_AQUA style

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 2001-12-06 17:01:00 +00:00
parent c8499e53d8
commit d30f093006
3 changed files with 28 additions and 31 deletions

View File

@ -6,8 +6,9 @@ This class manages up to two subwindows. The current view can be
split into two programmatically (perhaps from a menu command), and unsplit
either programmatically or via the wxSplitterWindow user interface.
Appropriate 3D shading for the Windows 95 user interface is an option.
This is also recommended for GTK.
Appropriate 3D shading for the Windows 95 user interface is an option -
this is also recommended for GTK. Optionally, the sash can be made to
look more like the native control under MacOS X.
\wxheading{Window styles}
@ -16,6 +17,7 @@ This is also recommended for GTK.
\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\_SASH\_AQUA}}{Draws a sash with an Aqua-like appearance.}
\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\_PERMIT\_UNSPLIT}}{Always allow to

View File

@ -1040,6 +1040,7 @@ enum wxBorder
#define wxSP_3DBORDER 0x0200
#define wxSP_FULLSASH 0x0400
#define wxSP_3D (wxSP_3DBORDER | wxSP_3DSASH)
#define wxSP_SASH_AQUA 0x0800
/*
* wxNotebook flags

View File

@ -508,12 +508,11 @@ void wxSplitterWindow::DrawSash(wxDC& dc)
if ( m_splitMode == wxSPLIT_VERTICAL )
{
dc.SetPen(*m_facePen);
// How to test for Aqua?
#ifdef __DARWIN__
dc.SetBrush(*wxWHITE_BRUSH);
#else
dc.SetBrush(*m_faceBrush);
#endif
if (HasFlag( wxSP_SASH_AQUA ))
dc.SetBrush(*wxWHITE_BRUSH);
else
dc.SetBrush(*m_faceBrush);
dc.DrawRectangle(m_sashPosition + 2, 0 , m_sashSize - 4, h );
dc.SetBrush(*wxTRANSPARENT_BRUSH);
@ -525,17 +524,16 @@ void wxSplitterWindow::DrawSash(wxDC& dc)
dc.SetPen(*m_hilightPen);
dc.DrawLine(m_sashPosition+1, m_borderSize - 2, m_sashPosition+1, h - m_borderSize+2);
#ifndef __DARWIN__
dc.SetPen(*m_mediumShadowPen);
#endif
int yMedium = m_borderSize ? h-m_borderSize+1 : h ;
if (!HasFlag( wxSP_SASH_AQUA ))
dc.SetPen(*m_mediumShadowPen);
int yMedium = m_borderSize ? h-m_borderSize+1 : h ;
dc.DrawLine(m_sashPosition+m_sashSize-2, xShadow, m_sashPosition+m_sashSize-2, yMedium);
#ifdef __DARWIN__
dc.SetPen(*m_lightShadowPen);
#else
dc.SetPen(*m_darkShadowPen);
#endif
if (HasFlag( wxSP_SASH_AQUA ))
dc.SetPen(*m_lightShadowPen);
else
dc.SetPen(*m_darkShadowPen);
dc.DrawLine(m_sashPosition+m_sashSize-1, m_borderSize, m_sashPosition+m_sashSize-1, h-m_borderSize );
// Draw the top and bottom edges of the sash, if requested
@ -553,12 +551,10 @@ void wxSplitterWindow::DrawSash(wxDC& dc)
else
{
dc.SetPen(*m_facePen);
// How to test for Aqua?
#ifdef __DARWIN__
dc.SetBrush(*wxWHITE_BRUSH);
#else
dc.SetBrush(*m_faceBrush);
#endif
if (HasFlag( wxSP_SASH_AQUA ))
dc.SetBrush(*wxWHITE_BRUSH);
else
dc.SetBrush(*m_faceBrush);
dc.DrawRectangle( m_borderSize-2, m_sashPosition + 2, w-m_borderSize+2, m_sashSize - 4);
dc.SetBrush(*wxTRANSPARENT_BRUSH);
@ -569,16 +565,14 @@ void wxSplitterWindow::DrawSash(wxDC& dc)
dc.SetPen(*m_hilightPen);
dc.DrawLine(m_borderSize-2, m_sashPosition+1, w-m_borderSize+1, m_sashPosition+1);
#ifndef __DARWIN__
dc.SetPen(*m_mediumShadowPen);
#endif
if (!HasFlag( wxSP_SASH_AQUA ))
dc.SetPen(*m_mediumShadowPen);
dc.DrawLine(m_borderSize-1, m_sashPosition+m_sashSize-2, w-m_borderSize+1, m_sashPosition+m_sashSize-2);
#ifdef __DARWIN__
dc.SetPen(*m_lightShadowPen);
#else
dc.SetPen(*m_darkShadowPen);
#endif
if (HasFlag( wxSP_SASH_AQUA ))
dc.SetPen(*m_lightShadowPen);
else
dc.SetPen(*m_darkShadowPen);
dc.DrawLine(m_borderSize, m_sashPosition+m_sashSize-1, w-m_borderSize, m_sashPosition+m_sashSize-1);
// Draw the left and right edges of the sash, if requested