Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / toolbar / toolbar_button.cc
index 2e0e6a4..ef2743a 100644 (file)
@@ -8,9 +8,10 @@
 #include "chrome/browser/ui/views/location_bar/location_bar_view.h"
 #include "grit/theme_resources.h"
 #include "grit/ui_strings.h"
-#include "ui/base/accessibility/accessible_view_state.h"
+#include "ui/accessibility/ax_view_state.h"
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/base/models/menu_model.h"
+#include "ui/base/theme_provider.h"
 #include "ui/gfx/display.h"
 #include "ui/gfx/screen.h"
 #include "ui/views/controls/button/label_button_border.h"
@@ -46,11 +47,11 @@ bool ToolbarButton::IsMenuShowing() const {
   return menu_showing_;
 }
 
-gfx::Size ToolbarButton::GetPreferredSize() {
+gfx::Size ToolbarButton::GetPreferredSize() const {
   gfx::Size size(image()->GetPreferredSize());
   gfx::Size label_size = label()->GetPreferredSize();
   if (label_size.width() > 0)
-    size.Enlarge(label_size.width() + LocationBarView::GetItemPadding(), 0);
+    size.Enlarge(label_size.width() + LocationBarView::kItemPadding, 0);
   return size;
 }
 
@@ -121,11 +122,26 @@ void ToolbarButton::OnGestureEvent(ui::GestureEvent* event) {
   LabelButton::OnGestureEvent(event);
 }
 
-void ToolbarButton::GetAccessibleState(ui::AccessibleViewState* state) {
+void ToolbarButton::GetAccessibleState(ui::AXViewState* state) {
   CustomButton::GetAccessibleState(state);
-  state->role = ui::AccessibilityTypes::ROLE_BUTTONDROPDOWN;
+  state->role = ui::AX_ROLE_BUTTON_DROP_DOWN;
   state->default_action = l10n_util::GetStringUTF16(IDS_APP_ACCACTION_PRESS);
-  state->state = ui::AccessibilityTypes::STATE_HASPOPUP;
+  state->AddStateFlag(ui::AX_STATE_HASPOPUP);
+}
+
+scoped_ptr<views::LabelButtonBorder>
+ToolbarButton::CreateDefaultBorder() const {
+  scoped_ptr<views::LabelButtonBorder> border =
+      LabelButton::CreateDefaultBorder();
+
+  ui::ThemeProvider* provider = GetThemeProvider();
+  if (provider && provider->UsingSystemTheme()) {
+    // We set smaller insets here to accommodate the slightly larger GTK+
+    // icons.
+    border->set_insets(gfx::Insets(2, 2, 2, 2));
+  }
+
+  return border.Pass();
 }
 
 void ToolbarButton::ShowContextMenuForView(View* source,
@@ -197,25 +213,27 @@ void ToolbarButton::ShowDropDownMenu(ui::MenuSourceType source_type) {
   if (model_.get()) {
     views::MenuModelAdapter menu_delegate(model_.get());
     menu_delegate.set_triggerable_event_flags(triggerable_event_flags());
-    menu_runner_.reset(new views::MenuRunner(menu_delegate.CreateMenu()));
+    menu_runner_.reset(new views::MenuRunner(menu_delegate.CreateMenu(),
+                                             views::MenuRunner::HAS_MNEMONICS));
     views::MenuRunner::RunResult result =
-        menu_runner_->RunMenuAt(GetWidget(), NULL,
+        menu_runner_->RunMenuAt(GetWidget(),
+                                NULL,
                                 gfx::Rect(menu_position, gfx::Size(0, 0)),
-                                views::MenuItemView::TOPLEFT,
-                                source_type,
-                                views::MenuRunner::HAS_MNEMONICS);
+                                views::MENU_ANCHOR_TOPLEFT,
+                                source_type);
     if (result == views::MenuRunner::MENU_DELETED)
       return;
   } else {
     views::MenuDelegate menu_delegate;
     views::MenuItemView* menu = new views::MenuItemView(&menu_delegate);
-    menu_runner_.reset(new views::MenuRunner(menu));
+    menu_runner_.reset(
+        new views::MenuRunner(menu, views::MenuRunner::HAS_MNEMONICS));
     views::MenuRunner::RunResult result =
-        menu_runner_->RunMenuAt(GetWidget(), NULL,
+        menu_runner_->RunMenuAt(GetWidget(),
+                                NULL,
                                 gfx::Rect(menu_position, gfx::Size(0, 0)),
-                                views::MenuItemView::TOPLEFT,
-                                source_type,
-                                views::MenuRunner::HAS_MNEMONICS);
+                                views::MENU_ANCHOR_TOPLEFT,
+                                source_type);
     if (result == views::MenuRunner::MENU_DELETED)
       return;
   }