virtualized splitter drawing; removed/deprecated some styles and moved others from wx/defs.h; eliminated flicker
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22218 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1237,20 +1237,6 @@ enum wxBorder
|
||||
#define wxSP_ARROW_KEYS 0x1000
|
||||
#define wxSP_WRAP 0x2000
|
||||
|
||||
/*
|
||||
* wxSplitterWindow flags
|
||||
*/
|
||||
#define wxSP_NOBORDER 0x0000
|
||||
#define wxSP_NOSASH 0x0010
|
||||
#define wxSP_BORDER 0x0020
|
||||
#define wxSP_PERMIT_UNSPLIT 0x0040
|
||||
#define wxSP_LIVE_UPDATE 0x0080
|
||||
#define wxSP_3DSASH 0x0100
|
||||
#define wxSP_3DBORDER 0x0200
|
||||
#define wxSP_FULLSASH 0x0400
|
||||
#define wxSP_3D (wxSP_3DBORDER | wxSP_3DSASH)
|
||||
#define wxSP_SASH_AQUA 0x0800
|
||||
|
||||
/*
|
||||
* wxNotebook flags
|
||||
*/
|
||||
|
@@ -133,16 +133,16 @@ public:
|
||||
bool IsSplit() const { return (m_windowTwo != NULL); }
|
||||
|
||||
// Sets the sash size
|
||||
void SetSashSize(int width) { m_sashSize = width; }
|
||||
void SetSashSize(int WXUNUSED(width)) { }
|
||||
|
||||
// Sets the border size
|
||||
void SetBorderSize(int width) { m_borderSize = width; }
|
||||
void SetBorderSize(int WXUNUSED(width)) { }
|
||||
|
||||
// Gets the sash size
|
||||
int GetSashSize() const { return m_sashSize; }
|
||||
int GetSashSize() const;
|
||||
|
||||
// Gets the border size
|
||||
int GetBorderSize() const { return m_borderSize; }
|
||||
int GetBorderSize() const;
|
||||
|
||||
// Set the sash position
|
||||
void SetSashPosition(int position, bool redraw = TRUE);
|
||||
@@ -192,9 +192,6 @@ public:
|
||||
// In live mode, resize child windows in idle time
|
||||
void OnInternalIdle();
|
||||
|
||||
// Draws borders
|
||||
virtual void DrawBorders(wxDC& dc);
|
||||
|
||||
// Draws the sash
|
||||
virtual void DrawSash(wxDC& dc);
|
||||
|
||||
@@ -202,14 +199,11 @@ public:
|
||||
virtual void DrawSashTracker(int x, int y);
|
||||
|
||||
// Tests for x, y over sash
|
||||
virtual bool SashHitTest(int x, int y, int tolerance = 2);
|
||||
virtual bool SashHitTest(int x, int y, int tolerance = 5);
|
||||
|
||||
// Resizes subwindows
|
||||
virtual void SizeWindows();
|
||||
|
||||
// Initialize colours
|
||||
void InitColours();
|
||||
|
||||
void SetNeedUpdating(bool needUpdating) { m_needUpdating = needUpdating; }
|
||||
bool GetNeedUpdating() const { return m_needUpdating ; }
|
||||
|
||||
@@ -262,8 +256,6 @@ protected:
|
||||
int m_dragMode;
|
||||
int m_oldX;
|
||||
int m_oldY;
|
||||
int m_borderSize;
|
||||
int m_sashSize; // Sash width or height
|
||||
int m_sashPosition; // Number of pixels from left or top
|
||||
int m_requestedSashPosition;
|
||||
int m_sashPositionCurrent; // while dragging
|
||||
@@ -272,13 +264,7 @@ protected:
|
||||
int m_minimumPaneSize;
|
||||
wxCursor m_sashCursorWE;
|
||||
wxCursor m_sashCursorNS;
|
||||
wxPen* m_sashTrackerPen;
|
||||
wxPen* m_lightShadowPen;
|
||||
wxPen* m_mediumShadowPen;
|
||||
wxPen* m_darkShadowPen;
|
||||
wxPen* m_hilightPen;
|
||||
wxBrush* m_faceBrush;
|
||||
wxPen* m_facePen;
|
||||
wxPen *m_sashTrackerPen;
|
||||
|
||||
private:
|
||||
WX_DECLARE_CONTROL_CONTAINER();
|
||||
|
@@ -76,6 +76,26 @@ public:
|
||||
const wxRect& rect,
|
||||
int flags = 0) = 0;
|
||||
|
||||
// draw the border for sash window: this border must be such that the sash
|
||||
// drawn by DrawSash() blends into it well
|
||||
virtual void DrawSplitterBorder(wxWindow *win,
|
||||
wxDC& dc,
|
||||
const wxRect& rect) = 0;
|
||||
|
||||
// draw a (vertical) sash
|
||||
virtual void DrawSplitterSash(wxWindow *win,
|
||||
wxDC& dc,
|
||||
const wxSize& size,
|
||||
wxCoord position) = 0;
|
||||
|
||||
|
||||
// geometry functions
|
||||
// ------------------
|
||||
|
||||
// get the splitter parameters: the x field of the returned point is the
|
||||
// sash width and the y field is the border width
|
||||
virtual wxPoint GetSplitterSashAndBorder(const wxWindow *win) = 0;
|
||||
|
||||
|
||||
// pseudo constructors
|
||||
// -------------------
|
||||
@@ -106,12 +126,28 @@ public:
|
||||
const wxRect& rect,
|
||||
int flags = 0)
|
||||
{ m_rendererNative.DrawHeaderButton(win, dc, rect, flags); }
|
||||
|
||||
virtual void DrawTreeItemButton(wxWindow *win,
|
||||
wxDC& dc,
|
||||
const wxRect& rect,
|
||||
int flags = 0)
|
||||
{ m_rendererNative.DrawTreeItemButton(win, dc, rect, flags); }
|
||||
|
||||
virtual void DrawSplitterBorder(wxWindow *win,
|
||||
wxDC& dc,
|
||||
const wxRect& rect)
|
||||
{ m_rendererNative.DrawSplitterBorder(win, dc, rect); }
|
||||
|
||||
virtual void DrawSplitterSash(wxWindow *win,
|
||||
wxDC& dc,
|
||||
const wxSize& size,
|
||||
wxCoord position)
|
||||
{ m_rendererNative.DrawSplitterSash(win, dc, size, position); }
|
||||
|
||||
|
||||
virtual wxPoint GetSplitterSashAndBorder(const wxWindow *win)
|
||||
{ return m_rendererNative.GetSplitterSashAndBorder(win); }
|
||||
|
||||
protected:
|
||||
wxRendererNative& m_rendererNative;
|
||||
};
|
||||
|
@@ -3,6 +3,23 @@
|
||||
|
||||
#include "wx/event.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxSplitterWindow flags
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#define wxSP_NOSASH 0x0010
|
||||
#define wxSP_PERMIT_UNSPLIT 0x0040
|
||||
#define wxSP_LIVE_UPDATE 0x0080
|
||||
|
||||
// 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)
|
||||
DECLARE_EVENT_TYPE(wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, 851)
|
||||
|
Reference in New Issue
Block a user