Add git cl format presubmit warning for extension and apps.
[chromium-blink-merge.git] / tools / memory_watcher / hotkey.h
blob3ac430cdada2b7d3e3cae68d001b00d11479f59c
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/msg_util.h"
10 #include "ui/gfx/win/window_impl.h"
12 // HotKey handler.
13 // Programs wishing to register a hotkey can use this.
14 class HotKeyHandler : public gfx::WindowImpl {
15 public:
16 HotKeyHandler(UINT modifiers, UINT vk)
17 : modifiers_(modifiers),
18 vkey_(vk) {
19 Start();
21 ~HotKeyHandler() { Stop(); }
23 CR_BEGIN_MSG_MAP_EX(HotKeyHandler)
24 CR_MSG_WM_HOTKEY(OnHotKey)
25 CR_END_MSG_MAP()
27 private:
28 static const int hotkey_id = 0x0000baba;
30 bool Start() {
31 set_window_style(WS_POPUP);
32 Init(NULL, gfx::Rect());
33 return RegisterHotKey(hwnd(), hotkey_id, modifiers_, vkey_) == TRUE;
36 void Stop() {
37 UnregisterHotKey(hwnd(), hotkey_id);
38 DestroyWindow(hwnd());
41 // Handle the registered Hotkey being pressed.
42 virtual void OnHotKey(UINT /*uMsg*/,
43 WPARAM /*wParam*/,
44 LPARAM /*lParam*/) = 0;
46 UINT modifiers_;
47 UINT vkey_;
50 #endif // TOOLS_MEMORY_WATCHER_HOTKEY_H_