Add supported_locales attribute to external_extensions.json
[chromium-blink-merge.git] / views / accelerator.h
blob3dc2f0e900ab7fb62b7f49e152501e034cc3d1ec
1 // Copyright (c) 2011 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 // This class describe a keyboard accelerator (or keyboard shortcut).
6 // Keyboard accelerators are registered with the FocusManager.
7 // It has a copy constructor and assignment operator so that it can be copied.
8 // It also defines the < operator so that it can be used as a key in a std::map.
9 //
11 #ifndef VIEWS_ACCELERATOR_H_
12 #define VIEWS_ACCELERATOR_H_
13 #pragma once
15 #include <string>
17 #include "base/string16.h"
18 #include "ui/base/models/accelerator.h"
19 #include "views/events/event.h"
20 #include "views/views_export.h"
22 namespace views {
24 class VIEWS_EXPORT Accelerator : public ui::Accelerator {
25 public:
26 Accelerator() : ui::Accelerator() {}
28 Accelerator(ui::KeyboardCode keycode, int modifiers)
29 : ui::Accelerator(keycode, modifiers) {}
31 Accelerator(ui::KeyboardCode keycode,
32 bool shift_pressed, bool ctrl_pressed, bool alt_pressed) {
33 key_code_ = keycode;
34 modifiers_ = 0;
35 if (shift_pressed)
36 modifiers_ |= ui::EF_SHIFT_DOWN;
37 if (ctrl_pressed)
38 modifiers_ |= ui::EF_CONTROL_DOWN;
39 if (alt_pressed)
40 modifiers_ |= ui::EF_ALT_DOWN;
43 virtual ~Accelerator() {}
45 bool IsShiftDown() const {
46 return (modifiers_ & ui::EF_SHIFT_DOWN) == ui::EF_SHIFT_DOWN;
49 bool IsCtrlDown() const {
50 return (modifiers_ & ui::EF_CONTROL_DOWN) == ui::EF_CONTROL_DOWN;
53 bool IsAltDown() const {
54 return (modifiers_ & ui::EF_ALT_DOWN) == ui::EF_ALT_DOWN;
57 // Returns a string with the localized shortcut if any.
58 string16 GetShortcutText() const;
61 // An interface that classes that want to register for keyboard accelerators
62 // should implement.
63 class VIEWS_EXPORT AcceleratorTarget {
64 public:
65 // This method should return true if the accelerator was processed.
66 virtual bool AcceleratorPressed(const Accelerator& accelerator) = 0;
68 protected:
69 virtual ~AcceleratorTarget() {}
73 #endif // VIEWS_ACCELERATOR_H_