/////////////////////////////////////////////////////////////////////////////
-// Name: sashwin.h
+// Name: wx/generic/sashwin.h
// Purpose: wxSashWindow implementation. A sash window has an optional
// sash on each edge, allowing it to be dragged. An event
// is generated when the sash is released.
#ifndef _WX_SASHWIN_H_G_
#define _WX_SASHWIN_H_G_
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "sashwin.h"
-#endif
-
#if wxUSE_SASH
#include "wx/defs.h"
class WXDLLIMPEXP_ADV wxSashEdge
{
public:
- wxSashEdge() { m_show = false; m_border = false; m_margin = 0; }
+ wxSashEdge()
+ { m_show = false;
+#if WXWIN_COMPATIBILITY_2_6
+ m_border = false;
+#endif
+ m_margin = 0; }
bool m_show; // Is the sash showing?
+#if WXWIN_COMPATIBILITY_2_6
bool m_border; // Do we draw a border?
+#endif
int m_margin; // The margin size
};
Create(parent, id, pos, size, style, name);
}
- ~wxSashWindow();
+ virtual ~wxSashWindow();
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"));
// Get whether there's a sash in this position
bool GetSashVisible(wxSashEdgePosition edge) const { return m_sashes[edge].m_show; }
+#if WXWIN_COMPATIBILITY_2_6
// Set whether there's a border in this position
+ // This value is unused in wxSashWindow.
void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; }
// Get whether there's a border in this position
+ // This value is unused in wxSashWindow.
bool HasBorder(wxSashEdgePosition edge) const { return m_sashes[edge].m_border; }
+#endif
// Get border size
int GetEdgeMargin(wxSashEdgePosition edge) const { return m_sashes[edge].m_margin; }
private:
DECLARE_DYNAMIC_CLASS(wxSashWindow)
DECLARE_EVENT_TABLE()
- DECLARE_NO_COPY_CLASS(wxSashWindow)
+ wxDECLARE_NO_COPY_CLASS(wxSashWindow);
};
-BEGIN_DECLARE_EVENT_TYPES()
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,
- wxEVT_SASH_DRAGGED, wxEVT_FIRST + 1200)
-END_DECLARE_EVENT_TYPES()
+class WXDLLIMPEXP_FWD_ADV wxSashEvent;
+
+wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_SASH_DRAGGED, wxSashEvent );
enum wxSashDragStatus
{
m_edge = edge;
}
+ wxSashEvent(const wxSashEvent& event)
+ : wxCommandEvent(event),
+ m_edge(event.m_edge),
+ m_dragRect(event.m_dragRect),
+ m_dragStatus(event.m_dragStatus) { }
+
void SetEdge(wxSashEdgePosition edge) { m_edge = edge; }
wxSashEdgePosition GetEdge() const { return m_edge; }
void SetDragStatus(wxSashDragStatus status) { m_dragStatus = status; }
wxSashDragStatus GetDragStatus() const { return m_dragStatus; }
+ virtual wxEvent *Clone() const { return new wxSashEvent(*this); }
+
private:
wxSashEdgePosition m_edge;
wxRect m_dragRect;
wxSashDragStatus m_dragStatus;
private:
- DECLARE_DYNAMIC_CLASS_NO_COPY(wxSashEvent)
+ DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSashEvent)
};
typedef void (wxEvtHandler::*wxSashEventFunction)(wxSashEvent&);
#define wxSashEventHandler(func) \
- (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxSashEventFunction, &func)
+ wxEVENT_HANDLER_CAST(wxSashEventFunction, func)
#define EVT_SASH_DRAGGED(id, fn) \
wx__DECLARE_EVT1(wxEVT_SASH_DRAGGED, id, wxSashEventHandler(fn))