1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef TOOLS_MEMORY_WATCHER_HOTKEY_H_
6 #define TOOLS_MEMORY_WATCHER_HOTKEY_H_
8 #include "ui/gfx/rect.h"
9 #include "ui/gfx/win/window_impl.h"
12 // Programs wishing to register a hotkey can use this.
13 class HotKeyHandler
: public gfx::WindowImpl
{
15 HotKeyHandler(UINT modifiers
, UINT vk
)
16 : modifiers_(modifiers
),
20 ~HotKeyHandler() { Stop(); }
22 BEGIN_MSG_MAP_EX(HotKeyHandler
)
23 MESSAGE_HANDLER(WM_HOTKEY
, OnHotKey
)
27 static const int hotkey_id
= 0x0000baba;
30 set_window_style(WS_POPUP
);
31 Init(NULL
, gfx::Rect());
32 return RegisterHotKey(hwnd(), hotkey_id
, modifiers_
, vkey_
) == TRUE
;
36 UnregisterHotKey(hwnd(), hotkey_id
);
37 DestroyWindow(hwnd());
40 // Handle the registered Hotkey being pressed.
41 virtual LRESULT
OnHotKey(UINT
/*uMsg*/, WPARAM
/*wParam*/,
42 LPARAM
/*lParam*/, BOOL
& bHandled
) = 0;
48 #endif // TOOLS_MEMORY_WATCHER_HOTKEY_H_