diff options
Diffstat (limited to 'ui/mouse_move_dlg.cpp')
-rw-r--r-- | ui/mouse_move_dlg.cpp | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/ui/mouse_move_dlg.cpp b/ui/mouse_move_dlg.cpp index 526408d4..efaba5fc 100644 --- a/ui/mouse_move_dlg.cpp +++ b/ui/mouse_move_dlg.cpp @@ -10,17 +10,34 @@ using namespace ffs3; -void MouseMoveWindow::connectSourceWindow(wxWindow* sourceWindow) +MouseMoveWindow::MouseMoveWindow(wxWindow& parent, + wxWindow* child1, + wxWindow* child2, + wxWindow* child3, + wxWindow* child4, + wxWindow* child5, + wxWindow* child6) : wxWindow(&parent, wxID_ANY) { - sourceWindow->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MouseMoveWindow::LeftButtonDown), NULL, this); + if (child1) child1->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MouseMoveWindow::LeftButtonDown), NULL, this); + if (child2) child2->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MouseMoveWindow::LeftButtonDown), NULL, this); + if (child3) child3->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MouseMoveWindow::LeftButtonDown), NULL, this); + if (child4) child4->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MouseMoveWindow::LeftButtonDown), NULL, this); + if (child5) child5->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MouseMoveWindow::LeftButtonDown), NULL, this); + if (child6) child6->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(MouseMoveWindow::LeftButtonDown), NULL, this); + + Hide(); //this is just a dummy window so that its parent can have ownership + Disable(); } void MouseMoveWindow::LeftButtonDown(wxMouseEvent& event) { + if (!GetParent()) + return; + ::ReleaseCapture(); //::SendMessage(GetHwndOf(dialogToMove_), WM_NCLBUTTONDOWN, HTCAPTION, 0); - ::SendMessage(static_cast<HWND>(dialogToMove_->GetHWND()), WM_NCLBUTTONDOWN, HTCAPTION, 0); + ::SendMessage(static_cast<HWND>(GetParent()->GetHWND()), WM_NCLBUTTONDOWN, HTCAPTION, 0); //event.Skip(); -> swallow event, to avoid other windows losing focus } |