X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a6d7030871f1376e727902c93f5537165a305e08..935b53f2fb175499ac1a8ed53ccd2b986dcdd43a:/include/wx/generic/sashwin.h diff --git a/include/wx/generic/sashwin.h b/include/wx/generic/sashwin.h index c1023929a2..2e90124cc7 100644 --- a/include/wx/generic/sashwin.h +++ b/include/wx/generic/sashwin.h @@ -8,7 +8,7 @@ // Created: 01/02/97 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows license +// Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_SASHWIN_H_G_ @@ -18,6 +18,8 @@ #pragma interface "sashwin.h" #endif +#if wxUSE_SASH + #include "wx/defs.h" #include "wx/window.h" #include "wx/string.h" @@ -52,7 +54,12 @@ public: * wxSashWindow flags */ -#define wxSW_3D 0x0004 +#define wxSW_NOBORDER 0x0000 +//#define wxSW_3D 0x0010 +#define wxSW_BORDER 0x0020 +#define wxSW_3DSASH 0x0040 +#define wxSW_3DBORDER 0x0080 +#define wxSW_3D (wxSW_3DSASH | wxSW_3DBORDER) /* * wxSashWindow allows any of its edges to have a sash which can be dragged @@ -70,27 +77,38 @@ public: // Public API // Default constructor - wxSashWindow(); + wxSashWindow() + { + Init(); + } // Normal constructor wxSashWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "splitter"); + const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow") + { + Init(); + Create(parent, id, pos, size, style, name); + } + ~wxSashWindow(); + bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow"); + // Set whether there's a sash in this position void SetSashVisible(wxSashEdgePosition edge, bool sash); // Get whether there's a sash in this position - inline bool GetSashVisible(wxSashEdgePosition edge) { return m_sashes[edge].m_show; } + inline bool GetSashVisible(wxSashEdgePosition edge) const { return m_sashes[edge].m_show; } // Set whether there's a border in this position inline void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; } // Get whether there's a border in this position - inline bool HasBorder(wxSashEdgePosition edge) { return m_sashes[edge].m_border; } + inline bool HasBorder(wxSashEdgePosition edge) const { return m_sashes[edge].m_border; } // Get border size - inline int GetEdgeMargin(wxSashEdgePosition edge) { return m_sashes[edge].m_margin; } + inline int GetEdgeMargin(wxSashEdgePosition edge) const { return m_sashes[edge].m_margin; } // Sets the default sash border size inline void SetDefaultBorderSize(int width) { m_borderSize = width; } @@ -147,7 +165,9 @@ public: // Initialize colours void InitColours(); -protected: +private: + void Init(); + wxSashEdge m_sashes[4]; int m_dragMode; wxSashEdgePosition m_draggingEdge; @@ -168,11 +188,16 @@ protected: wxColour m_darkShadowColour; wxColour m_hilightColour; wxColour m_faceColour; + bool m_mouseCaptured; DECLARE_EVENT_TABLE() }; -#define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200) +BEGIN_DECLARE_EVENT_TYPES() + DECLARE_EVENT_TYPE(wxEVT_SASH_DRAGGED, wxEVT_FIRST + 1200) +END_DECLARE_EVENT_TYPES() + +// #define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200) enum wxSashDragStatus { @@ -207,8 +232,12 @@ class WXDLLEXPORT wxSashEvent: public wxCommandEvent typedef void (wxEvtHandler::*wxSashEventFunction)(wxSashEvent&); -#define EVT_SASH_DRAGGED(id, fn) { wxEVT_SASH_DRAGGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL }, -#define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) { wxEVT_SASH_DRAGGED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL }, +#define EVT_SASH_DRAGGED(id, fn) \ + DECLARE_EVENT_TABLE_ENTRY( wxEVT_SASH_DRAGGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL ), +#define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) \ + DECLARE_EVENT_TABLE_ENTRY( wxEVT_SASH_DRAGGED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL ), + +#endif // wxUSE_SASH #endif // _WX_SASHWIN_H_G_