Include webrtc_logging_private.idl even when enable_webrtc=0
[chromium-blink-merge.git] / tools / memory_watcher / hotkey.h
blob3773e5d7f810de4b19d03a5191ed0576157ba367
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"
11 // HotKey handler.
12 // Programs wishing to register a hotkey can use this.
13 class HotKeyHandler : public gfx::WindowImpl {
14 public:
15 HotKeyHandler(UINT modifiers, UINT vk)
16 : modifiers_(modifiers),
17 vkey_(vk) {
18 Start();
20 ~HotKeyHandler() { Stop(); }
22 BEGIN_MSG_MAP_EX(HotKeyHandler)
23 MESSAGE_HANDLER(WM_HOTKEY, OnHotKey)
24 END_MSG_MAP()
26 private:
27 static const int hotkey_id = 0x0000baba;
29 bool Start() {
30 set_window_style(WS_POPUP);
31 Init(NULL, gfx::Rect());
32 return RegisterHotKey(hwnd(), hotkey_id, modifiers_, vkey_) == TRUE;
35 void Stop() {
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;
44 UINT modifiers_;
45 UINT vkey_;
48 #endif // TOOLS_MEMORY_WATCHER_HOTKEY_H_