added default ctor to wxMouseEventsManager, this is convenient when deriving window classes (which must provide default ctors to e.g. allow loading them from XRC) from it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60839 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -34,8 +34,11 @@ class WXDLLIMPEXP_CORE wxMouseEventsManager : public wxEvtHandler
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// a mouse event manager is always associated with a window and must be
|
// a mouse event manager is always associated with a window and must be
|
||||||
// deleted by the window when it is destroyed
|
// deleted by the window when it is destroyed so if it is created using the
|
||||||
wxMouseEventsManager(wxWindow *win);
|
// default ctor Create() must be called later
|
||||||
|
wxMouseEventsManager() { Init(); }
|
||||||
|
wxMouseEventsManager(wxWindow *win) { Init(); Create(win); }
|
||||||
|
bool Create(wxWindow *win);
|
||||||
|
|
||||||
virtual ~wxMouseEventsManager();
|
virtual ~wxMouseEventsManager();
|
||||||
|
|
||||||
@@ -113,6 +116,8 @@ private:
|
|||||||
State_Dragging // the item is being dragged
|
State_Dragging // the item is being dragged
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// common part of both ctors
|
||||||
|
void Init();
|
||||||
|
|
||||||
// various event handlers
|
// various event handlers
|
||||||
void OnCaptureLost(wxMouseCaptureLostEvent& event);
|
void OnCaptureLost(wxMouseCaptureLostEvent& event);
|
||||||
@@ -121,8 +126,9 @@ private:
|
|||||||
void OnMove(wxMouseEvent& event);
|
void OnMove(wxMouseEvent& event);
|
||||||
|
|
||||||
|
|
||||||
// the associated window, never NULL
|
// the associated window, never NULL except between the calls to the
|
||||||
wxWindow * const m_win;
|
// default ctor and Create()
|
||||||
|
wxWindow *m_win;
|
||||||
|
|
||||||
// the current state
|
// the current state
|
||||||
State m_state;
|
State m_state;
|
||||||
|
@@ -37,6 +37,15 @@
|
|||||||
class wxMouseEventsManager : public wxEvtHandler
|
class wxMouseEventsManager : public wxEvtHandler
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
Default constructor.
|
||||||
|
|
||||||
|
You must call Create() to finish initializing the mouse events manager.
|
||||||
|
If possible, avoid the use of this constructor in favour of the other
|
||||||
|
one which fully initializes the mouse events manager immediately.
|
||||||
|
*/
|
||||||
|
wxMouseEventsManager();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Constructor creates the manager for the window.
|
Constructor creates the manager for the window.
|
||||||
|
|
||||||
@@ -46,6 +55,14 @@ public:
|
|||||||
*/
|
*/
|
||||||
wxMouseEventsManager(wxWindow *win);
|
wxMouseEventsManager(wxWindow *win);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Finishes initialization of the object created using default
|
||||||
|
constructor.
|
||||||
|
|
||||||
|
Currently always returns @true.
|
||||||
|
*/
|
||||||
|
bool Create(wxWindow *win);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/**
|
/**
|
||||||
Must be overridden to return the item at the given position.
|
Must be overridden to return the item at the given position.
|
||||||
|
@@ -45,18 +45,27 @@ END_EVENT_TABLE()
|
|||||||
// wxMouseEventsManager implementation
|
// wxMouseEventsManager implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
wxMouseEventsManager::wxMouseEventsManager(wxWindow *win)
|
void wxMouseEventsManager::Init()
|
||||||
: m_win(win)
|
|
||||||
{
|
{
|
||||||
|
m_win = NULL;
|
||||||
m_state = State_Normal;
|
m_state = State_Normal;
|
||||||
m_item = wxNOT_FOUND;
|
m_item = wxNOT_FOUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxMouseEventsManager::Create(wxWindow *win)
|
||||||
|
{
|
||||||
|
wxASSERT_MSG( !m_win, "Create() must not be called twice" );
|
||||||
|
|
||||||
|
m_win = win;
|
||||||
win->PushEventHandler(this);
|
win->PushEventHandler(this);
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMouseEventsManager::~wxMouseEventsManager()
|
wxMouseEventsManager::~wxMouseEventsManager()
|
||||||
{
|
{
|
||||||
m_win->RemoveEventHandler(this);
|
if ( m_win )
|
||||||
|
m_win->RemoveEventHandler(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMouseEventsManager::OnCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event))
|
void wxMouseEventsManager::OnCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event))
|
||||||
|
Reference in New Issue
Block a user