]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/mousemanager.cpp
Added missing wxBitmapComboBox::Insert() implementation
[wxWidgets.git] / src / common / mousemanager.cpp
index c37395503880e7c0f8d86848c7ea31ee6052b9d9..20849a0167ae489cf12a8488105f723e079242e7 100644 (file)
@@ -24,6 +24,8 @@
 #endif
 
 #ifndef WX_PRECOMP
+    #include "wx/settings.h"
+    #include "wx/window.h"
 #endif // WX_PRECOMP
 
 #include "wx/mousemanager.h"
@@ -43,18 +45,27 @@ END_EVENT_TABLE()
 // wxMouseEventsManager implementation
 // ============================================================================
 
-wxMouseEventsManager::wxMouseEventsManager(wxWindow *win)
-    : m_win(win)
+void wxMouseEventsManager::Init()
 {
+    m_win = NULL;
     m_state = State_Normal;
     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);
+
+    return true;
 }
 
 wxMouseEventsManager::~wxMouseEventsManager()
 {
-    m_win->RemoveEventHandler(this);
+    if ( m_win )
+        m_win->RemoveEventHandler(this);
 }
 
 void wxMouseEventsManager::OnCaptureLost(wxMouseCaptureLostEvent& WXUNUSED(event))
@@ -92,6 +103,7 @@ void wxMouseEventsManager::OnLeftDown(wxMouseEvent& event)
     }
 
     m_state = State_Pressed;
+    m_win->SetFocus();
     m_win->CaptureMouse();
     MouseClickBegin(m_item);
 }