diff options
Diffstat (limited to 'ui/base/accelerators/accelerator.cc')
-rw-r--r-- | ui/base/accelerators/accelerator.cc | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/ui/base/accelerators/accelerator.cc b/ui/base/accelerators/accelerator.cc index d067510..153a13f 100644 --- a/ui/base/accelerators/accelerator.cc +++ b/ui/base/accelerators/accelerator.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -23,6 +23,65 @@ namespace ui { +Accelerator::Accelerator() + : key_code_(ui::VKEY_UNKNOWN), + type_(ui::ET_KEY_PRESSED), + modifiers_(0) { +} + +Accelerator::Accelerator(KeyboardCode keycode, int modifiers) + : key_code_(keycode), + type_(ui::ET_KEY_PRESSED), + modifiers_(modifiers) { +} + +Accelerator::Accelerator(const Accelerator& accelerator) { + key_code_ = accelerator.key_code_; + type_ = accelerator.type_; + modifiers_ = accelerator.modifiers_; +} + +Accelerator::~Accelerator() { +} + +Accelerator& Accelerator::operator=(const Accelerator& accelerator) { + if (this != &accelerator) { + key_code_ = accelerator.key_code_; + type_ = accelerator.type_; + modifiers_ = accelerator.modifiers_; + } + return *this; +} + +bool Accelerator::operator <(const Accelerator& rhs) const { + if (key_code_ != rhs.key_code_) + return key_code_ < rhs.key_code_; + if (type_ != rhs.type_) + return type_ < rhs.type_; + return modifiers_ < rhs.modifiers_; +} + +bool Accelerator::operator ==(const Accelerator& rhs) const { + return (key_code_ == rhs.key_code_) && (type_ == rhs.type_) && + (modifiers_ == rhs.modifiers_); +} + +bool Accelerator::operator !=(const Accelerator& rhs) const { + return !(*this == rhs); +} + +bool Accelerator::IsShiftDown() const { + return (modifiers_ & EF_SHIFT_DOWN) == EF_SHIFT_DOWN; +} + +bool Accelerator::IsCtrlDown() const { + return (modifiers_ & EF_CONTROL_DOWN) == EF_CONTROL_DOWN; +} + +bool Accelerator::IsAltDown() const { + return (modifiers_ & EF_ALT_DOWN) == EF_ALT_DOWN; +} + string16 Accelerator::GetShortcutText() const { int string_id = 0; switch(key_code_) { |