// 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
* 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; }
+ wxSashEdge() { m_show = false; m_border = false; m_margin = 0; }
bool m_show; // Is the sash showing?
bool m_border; // Do we draw a border?
* of wxSashWindow.
*/
-class WXDLLEXPORT wxSashWindow: public wxWindow
+class WXDLLIMPEXP_ADV wxSashWindow: public wxWindow
{
- DECLARE_DYNAMIC_CLASS(wxSashWindow)
-
public:
-
-////////////////////////////////////////////////////////////////////////////
-// Public API
-
// Default constructor
wxSashWindow()
{
}
// 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")
+ wxSashWindow(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("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");
+ bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition,
+ 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);
// 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);
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
{
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; }
//// 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, wxID_ANY, (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