cleanup: define events correctly, define type-safe event macros, reformatted

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-03-24 10:27:27 +00:00
parent 85d8df29aa
commit 0ed0bcc873
3 changed files with 91 additions and 46 deletions

View File

@@ -61,18 +61,14 @@
*/
#include <wx/event.h>
#include <wx/window.h>
class wxScrollBar;
#include "wx/event.h"
#include "wx/window.h"
class WXDLLIMPEXP_CORE wxScrollBar;
#define wxEVT_DYNAMIC_SASH_BASE (((int)('d' - 'a') << 11) | ((int)('s' - 'a') << 6) | ((int)('h' - 'a') << 1))
#define wxEVT_DYNAMIC_SASH_SPLIT (wxEVT_DYNAMIC_SASH_BASE + 1)
#define wxEVT_DYNAMIC_SASH_UNIFY (wxEVT_DYNAMIC_SASH_BASE + 2)
#define EVT_DYNAMIC_SASH_SPLIT(id, func) EVT_CUSTOM(wxEVT_DYNAMIC_SASH_SPLIT, (id), (func))
#define EVT_DYNAMIC_SASH_UNIFY(id, func) EVT_CUSTOM(wxEVT_DYNAMIC_SASH_UNIFY, (id), (func))
// ----------------------------------------------------------------------------
// dynamic sash styles
// ----------------------------------------------------------------------------
/*
wxDS_MANAGE_SCROLLBARS is a default style of wxDynamicSashWindow which
@@ -89,6 +85,26 @@ class wxScrollBar;
*/
#define wxDS_DRAG_CORNER 0x0020
/*
Default style for wxDynamicSashWindow.
*/
#define wxDS_DEFAULT wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER
// ----------------------------------------------------------------------------
// dynamic sash events
// ----------------------------------------------------------------------------
extern WXDLLIMPEXP_GIZMOS const wxEventType wxEVT_DYNAMIC_SASH_SPLIT;
extern WXDLLIMPEXP_GIZMOS const wxEventType wxEVT_DYNAMIC_SASH_UNIFY;
#define EVT_DYNAMIC_SASH_SPLIT(id, func) \
wx__DECLARE_EVT1(wxEVT_DYNAMIC_SASH_SPLIT, id, \
wxDynamicSashSplitEventHandler(func))
#define EVT_DYNAMIC_SASH_UNIFY(id, func) \
wx__DECLARE_EVT1(wxEVT_DYNAMIC_SASH_UNIFY, id, \
wxDynamicSashUnifyEventHandler(func))
/*
wxDynamicSashSplitEvents are sent to your view by wxDynamicSashWindow
@@ -97,10 +113,12 @@ class wxScrollBar;
a child of the wxDynamicSashWindow. wxDynamicSashWindow will
automatically reparent it to the proper place in its window hierarchy.
*/
class WXDLLIMPEXP_GIZMOS wxDynamicSashSplitEvent : public wxCommandEvent {
class WXDLLIMPEXP_GIZMOS wxDynamicSashSplitEvent : public wxCommandEvent
{
public:
wxDynamicSashSplitEvent();
wxDynamicSashSplitEvent(const wxDynamicSashSplitEvent& event): wxCommandEvent(event) { }
wxDynamicSashSplitEvent(const wxDynamicSashSplitEvent& event)
: wxCommandEvent(event) { }
wxDynamicSashSplitEvent(wxObject *target);
virtual wxEvent* Clone() const { return new wxDynamicSashSplitEvent(*this); }
@@ -119,7 +137,8 @@ private:
the scrollbars' event handlers connected to your view's event handler
class.
*/
class WXDLLIMPEXP_GIZMOS wxDynamicSashUnifyEvent : public wxCommandEvent {
class WXDLLIMPEXP_GIZMOS wxDynamicSashUnifyEvent : public wxCommandEvent
{
public:
wxDynamicSashUnifyEvent();
wxDynamicSashUnifyEvent(const wxDynamicSashUnifyEvent& event): wxCommandEvent(event) {}
@@ -134,23 +153,37 @@ private:
typedef void (wxEvtHandler::*wxDynamicSashSplitEventFunction)(wxDynamicSashSplitEvent&);
typedef void (wxEvtHandler::*wxDynamicSashUnifyEventFunction)(wxDynamicSashUnifyEvent&);
/*
wxDynamicSashWindow. See above.
*/
#define wxDynamicSashSplitEventHandler(func) \
(wxObjectEventFunction)(wxEventFunction) \
wxStaticCastEvent(wxDynamicSashSplitEventFunction, &func)
#define wxDynamicSashUnifyEventHandler(func) \
(wxObjectEventFunction)(wxEventFunction) \
wxStaticCastEvent(wxDynamicSashUnifyEventFunction, &func)
#define wx__DECLARE_TREEEVT(evt, id, fn) \
wx__DECLARE_EVT1(wxEVT_COMMAND_TREE_ ## evt, id, wxTreeEventHandler(fn))
// ----------------------------------------------------------------------------
// wxDynamicSashWindow itself
// ----------------------------------------------------------------------------
WXDLLIMPEXP_GIZMOS extern const wxChar* wxDynamicSashWindowNameStr;
class WXDLLIMPEXP_GIZMOS wxDynamicSashWindow : public wxWindow {
class WXDLLIMPEXP_GIZMOS wxDynamicSashWindow : public wxWindow
{
public:
wxDynamicSashWindow();
wxDynamicSashWindow(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long style = wxCLIP_CHILDREN | wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER,
long style = wxDS_DEFAULT,
const wxString& name = wxDynamicSashWindowNameStr);
virtual ~wxDynamicSashWindow();
virtual bool Create(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
long style = wxCLIP_CHILDREN | wxDS_MANAGE_SCROLLBARS | wxDS_DRAG_CORNER,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDS_DEFAULT,
const wxString& name = wxDynamicSashWindowNameStr);
virtual wxScrollBar *GetHScrollBar(const wxWindow *child) const;
virtual wxScrollBar *GetVScrollBar(const wxWindow *child) const;
@@ -165,5 +198,5 @@ private:
DECLARE_DYNAMIC_CLASS(wxDynamicSashWindow)
};
#endif // _WX_DYNAMICSASH_H_
#endif