summaryrefslogtreecommitdiff
path: root/ui/mouse_move_dlg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ui/mouse_move_dlg.cpp')
-rw-r--r--ui/mouse_move_dlg.cpp23
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
}
bgstack15