From 768f0c5a2ca98bdc8f40ff3bebc7aef560467f5a Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Sat, 9 Feb 2002 23:29:19 +0000 Subject: [PATCH] implemented titlebar doubleclick in win32 theme git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14094 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/univ/themes/win32.cpp | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/univ/themes/win32.cpp b/src/univ/themes/win32.cpp index 47d159b6ac..ea4dd2511e 100644 --- a/src/univ/themes/win32.cpp +++ b/src/univ/themes/win32.cpp @@ -577,6 +577,16 @@ private: bool m_isOnGrip; }; +class wxWin32FrameInputHandler : public wxStdFrameInputHandler +{ +public: + wxWin32FrameInputHandler(wxInputHandler *handler) + : wxStdFrameInputHandler(handler) { } + + virtual bool HandleMouse(wxInputConsumer *control, + const wxMouseEvent& event); +}; + // ---------------------------------------------------------------------------- // wxWin32ColourScheme: uses (default) Win32 colours // ---------------------------------------------------------------------------- @@ -1202,7 +1212,7 @@ wxInputHandler *wxWin32Theme::GetInputHandler(const wxString& control) handler = new wxWin32StatusBarInputHandler(GetDefaultInputHandler()); #endif // wxUSE_STATUSBAR else if ( control == wxINP_HANDLER_TOPLEVEL ) - handler = new wxStdFrameInputHandler(GetDefaultInputHandler()); + handler = new wxWin32FrameInputHandler(GetDefaultInputHandler()); else handler = GetDefaultInputHandler(); @@ -4153,3 +4163,30 @@ bool wxWin32StatusBarInputHandler::HandleMouseMove(wxInputConsumer *consumer, return wxStdInputHandler::HandleMouseMove(consumer, event); } +// ---------------------------------------------------------------------------- +// wxWin32FrameInputHandler +// ---------------------------------------------------------------------------- + +bool wxWin32FrameInputHandler::HandleMouse(wxInputConsumer *consumer, + const wxMouseEvent& event) +{ + if ( event.LeftDClick() ) + { + wxTopLevelWindow *tlw = + wxStaticCast(consumer->GetInputWindow(), wxTopLevelWindow); + + long hit = tlw->HitTest(event.GetPosition()); + + if ( hit == wxHT_TOPLEVEL_TITLEBAR ) + { + tlw->PerformAction(wxACTION_TOPLEVEL_BUTTON_CLICK, + tlw->IsMaximized() ? + wxTOPLEVEL_BUTTON_RESTORE : + wxTOPLEVEL_BUTTON_MAXIMIZE); + return TRUE; + } + } + + return wxStdFrameInputHandler::HandleMouse(consumer, event); +} + -- 2.45.2