Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ui / base / accelerators / accelerator.cc
index de3cbf2..b4a8cc6 100644 (file)
@@ -6,16 +6,14 @@
 
 #if defined(OS_WIN)
 #include <windows.h>
-#elif defined(TOOLKIT_GTK)
-#include <gdk/gdk.h>
 #endif
 
 #include "base/i18n/rtl.h"
 #include "base/logging.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
-#include "grit/ui_strings.h"
 #include "ui/base/l10n/l10n_util.h"
+#include "ui/strings/grit/ui_strings.h"
 
 #if !defined(OS_WIN) && (defined(USE_AURA) || defined(OS_MACOSX))
 #include "ui/events/keycodes/keyboard_code_conversion.h"
@@ -26,19 +24,22 @@ namespace ui {
 Accelerator::Accelerator()
     : key_code_(ui::VKEY_UNKNOWN),
       type_(ui::ET_KEY_PRESSED),
-      modifiers_(0) {
+      modifiers_(0),
+      is_repeat_(false) {
 }
 
 Accelerator::Accelerator(KeyboardCode keycode, int modifiers)
     : key_code_(keycode),
       type_(ui::ET_KEY_PRESSED),
-      modifiers_(modifiers) {
+      modifiers_(modifiers),
+      is_repeat_(false) {
 }
 
 Accelerator::Accelerator(const Accelerator& accelerator) {
   key_code_ = accelerator.key_code_;
   type_ = accelerator.type_;
   modifiers_ = accelerator.modifiers_;
+  is_repeat_ = accelerator.is_repeat_;
   if (accelerator.platform_accelerator_.get())
     platform_accelerator_ = accelerator.platform_accelerator_->CreateCopy();
 }
@@ -51,6 +52,7 @@ Accelerator& Accelerator::operator=(const Accelerator& accelerator) {
     key_code_ = accelerator.key_code_;
     type_ = accelerator.type_;
     modifiers_ = accelerator.modifiers_;
+    is_repeat_ = accelerator.is_repeat_;
     if (accelerator.platform_accelerator_.get())
       platform_accelerator_ = accelerator.platform_accelerator_->CreateCopy();
     else
@@ -68,14 +70,15 @@ bool Accelerator::operator <(const Accelerator& rhs) const {
 }
 
 bool Accelerator::operator ==(const Accelerator& rhs) const {
-  if (platform_accelerator_.get() != rhs.platform_accelerator_.get() &&
-      ((!platform_accelerator_.get() || !rhs.platform_accelerator_.get()) ||
-       !platform_accelerator_->Equals(*rhs.platform_accelerator_))) {
-    return false;
-  }
+  if ((key_code_ == rhs.key_code_) && (type_ == rhs.type_) &&
+      (modifiers_ == rhs.modifiers_))
+    return true;
+
+  bool platform_equal =
+      platform_accelerator_.get() && rhs.platform_accelerator_.get() &&
+      platform_accelerator_.get() == rhs.platform_accelerator_.get();
 
-  return (key_code_ == rhs.key_code_) && (type_ == rhs.type_) &&
-      (modifiers_ == rhs.modifiers_);
+  return platform_equal;
 }
 
 bool Accelerator::operator !=(const Accelerator& rhs) const {
@@ -98,6 +101,10 @@ bool Accelerator::IsCmdDown() const {
   return (modifiers_ & EF_COMMAND_DOWN) != 0;
 }
 
+bool Accelerator::IsRepeat() const {
+  return is_repeat_;
+}
+
 base::string16 Accelerator::GetShortcutText() const {
   int string_id = 0;
   switch (key_code_) {
@@ -182,7 +189,7 @@ base::string16 Accelerator::GetShortcutText() const {
     // default zoom level), we leave VK_[0-9] alone without translation.
     wchar_t key;
     if (key_code_ >= '0' && key_code_ <= '9')
-      key = key_code_;
+      key = static_cast<wchar_t>(key_code_);
     else
       key = LOWORD(::MapVirtualKeyW(key_code_, MAPVK_VK_TO_CHAR));
     shortcut += key;
@@ -191,23 +198,6 @@ base::string16 Accelerator::GetShortcutText() const {
     if (c != 0)
       shortcut +=
           static_cast<base::string16::value_type>(base::ToUpperASCII(c));
-#elif defined(TOOLKIT_GTK)
-    const gchar* name = NULL;
-    switch (key_code_) {
-      case ui::VKEY_OEM_2:
-        name = static_cast<const gchar*>("/");
-        break;
-      default:
-        name = gdk_keyval_name(gdk_keyval_to_lower(key_code_));
-        break;
-    }
-    if (name) {
-      if (name[0] != 0 && name[1] == 0)
-        shortcut +=
-            static_cast<base::string16::value_type>(g_ascii_toupper(name[0]));
-      else
-        shortcut += base::UTF8ToUTF16(name);
-    }
 #endif
   } else {
     shortcut = l10n_util::GetStringUTF16(string_id);