X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..0c05fdf3570e8066b8a9a16627562e544306a678:/include/wx/generic/sashwin.h diff --git a/include/wx/generic/sashwin.h b/include/wx/generic/sashwin.h index 647cbd6aff..1c9a5b5b93 100644 --- a/include/wx/generic/sashwin.h +++ b/include/wx/generic/sashwin.h @@ -8,13 +8,13 @@ // Created: 01/02/97 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_SASHWIN_H_G_ #define _WX_SASHWIN_H_G_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "sashwin.h" #endif @@ -40,7 +40,7 @@ enum wxSashEdgePosition { * wxSashEdge represents one of the four edges of a window. */ -class WXDLLEXPORT wxSashEdge +class WXDLLIMPEXP_ADV wxSashEdge { public: wxSashEdge() { m_show = FALSE; m_border = FALSE; m_margin = 0; } @@ -67,15 +67,9 @@ public: * of wxSashWindow. */ -class WXDLLEXPORT wxSashWindow: public wxWindow +class WXDLLIMPEXP_ADV wxSashWindow: public wxWindow { - DECLARE_DYNAMIC_CLASS(wxSashWindow) - public: - -//////////////////////////////////////////////////////////////////////////// -// Public API - // Default constructor wxSashWindow() { @@ -84,7 +78,7 @@ public: // 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 = "sashWindow") + const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("sashWindow")) { Init(); Create(parent, id, pos, size, style, name); @@ -93,7 +87,7 @@ public: ~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"); + const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("sashWindow")); // Set whether there's a sash in this position void SetSashVisible(wxSashEdgePosition edge, bool sash); @@ -144,6 +138,11 @@ public: // Adjusts the panes void OnSize(wxSizeEvent& event); +#if defined(__WXMSW__) || defined(__WXMAC__) + // Handle cursor correctly + void OnSetCursor(wxSetCursorEvent& event); +#endif // wxMSW + // Draws borders void DrawBorders(wxDC& dc); @@ -188,11 +187,21 @@ private: wxColour m_darkShadowColour; wxColour m_hilightColour; wxColour m_faceColour; + bool m_mouseCaptured; + wxCursor* m_currentCursor; -DECLARE_EVENT_TABLE() +private: + DECLARE_DYNAMIC_CLASS(wxSashWindow) + DECLARE_EVENT_TABLE() + DECLARE_NO_COPY_CLASS(wxSashWindow) }; -#define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200) +BEGIN_DECLARE_EVENT_TYPES() + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV, + wxEVT_SASH_DRAGGED, wxEVT_FIRST + 1200) +END_DECLARE_EVENT_TYPES() + +// #define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200) enum wxSashDragStatus { @@ -200,11 +209,9 @@ enum wxSashDragStatus wxSASH_STATUS_OUT_OF_RANGE }; -class WXDLLEXPORT wxSashEvent: public wxCommandEvent +class WXDLLIMPEXP_ADV wxSashEvent: public wxCommandEvent { - DECLARE_DYNAMIC_CLASS(wxSashEvent) - - public: +public: inline wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE) { m_eventType = (wxEventType) wxEVT_SASH_DRAGGED; m_id = id; m_edge = edge; } @@ -219,16 +226,22 @@ class WXDLLEXPORT wxSashEvent: public wxCommandEvent //// dragging the top below the bottom) inline void SetDragStatus(wxSashDragStatus status) { m_dragStatus = status; } inline wxSashDragStatus GetDragStatus() const { return m_dragStatus; } - private: + +private: wxSashEdgePosition m_edge; wxRect m_dragRect; wxSashDragStatus m_dragStatus; + +private: + DECLARE_DYNAMIC_CLASS_NO_COPY(wxSashEvent) }; 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) wxStaticCastEvent( wxSashEventFunction, & fn ), NULL ), +#define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) \ + DECLARE_EVENT_TABLE_ENTRY( wxEVT_SASH_DRAGGED, id1, id2, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxSashEventFunction, & fn ), NULL ), #endif // wxUSE_SASH