Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: chrome/browser/ui/views/toolbar/app_menu_button.cc

Issue 2618403002: Reland crrev.com/8283cad74e0cad4840d1f with fix for static initializers. (Closed)
Patch Set: re-up Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/toolbar/app_menu_button.h" 5 #include "chrome/browser/ui/views/toolbar/app_menu_button.h"
6 6
7 #include "base/location.h" 7 #include "base/location.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "chrome/app/vector_icons/vector_icons.h"
12 #include "chrome/browser/themes/theme_properties.h" 13 #include "chrome/browser/themes/theme_properties.h"
13 #include "chrome/browser/ui/browser.h" 14 #include "chrome/browser/ui/browser.h"
14 #include "chrome/browser/ui/browser_otr_state.h" 15 #include "chrome/browser/ui/browser_otr_state.h"
15 #include "chrome/browser/ui/layout_constants.h" 16 #include "chrome/browser/ui/layout_constants.h"
16 #include "chrome/browser/ui/toolbar/app_menu_model.h" 17 #include "chrome/browser/ui/toolbar/app_menu_model.h"
17 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" 18 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h"
18 #include "chrome/browser/ui/views/toolbar/app_menu.h" 19 #include "chrome/browser/ui/views/toolbar/app_menu.h"
19 #include "chrome/browser/ui/views/toolbar/toolbar_button.h" 20 #include "chrome/browser/ui/views/toolbar/toolbar_button.h"
20 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" 21 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
21 #include "chrome/grit/theme_resources.h" 22 #include "chrome/grit/theme_resources.h"
22 #include "extensions/common/feature_switch.h" 23 #include "extensions/common/feature_switch.h"
23 #include "ui/base/resource/resource_bundle.h" 24 #include "ui/base/resource/resource_bundle.h"
24 #include "ui/base/theme_provider.h" 25 #include "ui/base/theme_provider.h"
25 #include "ui/gfx/color_palette.h" 26 #include "ui/gfx/color_palette.h"
26 #include "ui/gfx/paint_vector_icon.h" 27 #include "ui/gfx/paint_vector_icon.h"
27 #include "ui/gfx/vector_icons_public.h"
28 #include "ui/keyboard/keyboard_controller.h" 28 #include "ui/keyboard/keyboard_controller.h"
29 #include "ui/views/controls/button/label_button_border.h" 29 #include "ui/views/controls/button/label_button_border.h"
30 #include "ui/views/controls/menu/menu_listener.h" 30 #include "ui/views/controls/menu/menu_listener.h"
31 #include "ui/views/metrics.h" 31 #include "ui/views/metrics.h"
32 32
33 // static 33 // static
34 bool AppMenuButton::g_open_app_immediately_for_testing = false; 34 bool AppMenuButton::g_open_app_immediately_for_testing = false;
35 35
36 AppMenuButton::AppMenuButton(ToolbarView* toolbar_view) 36 AppMenuButton::AppMenuButton(ToolbarView* toolbar_view)
37 : views::MenuButton(base::string16(), toolbar_view, false), 37 : views::MenuButton(base::string16(), toolbar_view, false),
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 case AppMenuIconController::Severity::MEDIUM: 129 case AppMenuIconController::Severity::MEDIUM:
130 color = native_theme->GetSystemColor( 130 color = native_theme->GetSystemColor(
131 ui::NativeTheme::kColorId_AlertSeverityMedium); 131 ui::NativeTheme::kColorId_AlertSeverityMedium);
132 break; 132 break;
133 case AppMenuIconController::Severity::HIGH: 133 case AppMenuIconController::Severity::HIGH:
134 color = native_theme->GetSystemColor( 134 color = native_theme->GetSystemColor(
135 ui::NativeTheme::kColorId_AlertSeverityHigh); 135 ui::NativeTheme::kColorId_AlertSeverityHigh);
136 break; 136 break;
137 } 137 }
138 138
139 gfx::VectorIconId icon_id = gfx::VectorIconId::VECTOR_ICON_NONE; 139 const gfx::VectorIcon* icon_id = nullptr;
140 switch (type_) { 140 switch (type_) {
141 case AppMenuIconController::IconType::NONE: 141 case AppMenuIconController::IconType::NONE:
142 icon_id = gfx::VectorIconId::BROWSER_TOOLS; 142 icon_id = &kBrowserToolsIcon;
143 DCHECK_EQ(AppMenuIconController::Severity::NONE, severity_); 143 DCHECK_EQ(AppMenuIconController::Severity::NONE, severity_);
144 break; 144 break;
145 case AppMenuIconController::IconType::UPGRADE_NOTIFICATION: 145 case AppMenuIconController::IconType::UPGRADE_NOTIFICATION:
146 icon_id = gfx::VectorIconId::BROWSER_TOOLS_UPDATE; 146 icon_id = &kBrowserToolsUpdateIcon;
147 break; 147 break;
148 case AppMenuIconController::IconType::GLOBAL_ERROR: 148 case AppMenuIconController::IconType::GLOBAL_ERROR:
149 case AppMenuIconController::IconType::INCOMPATIBILITY_WARNING: 149 case AppMenuIconController::IconType::INCOMPATIBILITY_WARNING:
150 icon_id = gfx::VectorIconId::BROWSER_TOOLS_ERROR; 150 icon_id = &kBrowserToolsErrorIcon;
151 break; 151 break;
152 } 152 }
153 153
154 SetImage(views::Button::STATE_NORMAL, gfx::CreateVectorIcon(icon_id, color)); 154 SetImage(views::Button::STATE_NORMAL, gfx::CreateVectorIcon(*icon_id, color));
155 } 155 }
156 156
157 void AppMenuButton::SetTrailingMargin(int margin) { 157 void AppMenuButton::SetTrailingMargin(int margin) {
158 margin_trailing_ = margin; 158 margin_trailing_ = margin;
159 UpdateThemedBorder(); 159 UpdateThemedBorder();
160 InvalidateLayout(); 160 InvalidateLayout();
161 } 161 }
162 162
163 const char* AppMenuButton::GetClassName() const { 163 const char* AppMenuButton::GetClassName() const {
164 return "AppMenuButton"; 164 return "AppMenuButton";
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 226
227 void AppMenuButton::OnDragExited() { 227 void AppMenuButton::OnDragExited() {
228 DCHECK(allow_extension_dragging_); 228 DCHECK(allow_extension_dragging_);
229 weak_factory_.InvalidateWeakPtrs(); 229 weak_factory_.InvalidateWeakPtrs();
230 } 230 }
231 231
232 int AppMenuButton::OnPerformDrop(const ui::DropTargetEvent& event) { 232 int AppMenuButton::OnPerformDrop(const ui::DropTargetEvent& event) {
233 DCHECK(allow_extension_dragging_); 233 DCHECK(allow_extension_dragging_);
234 return ui::DragDropTypes::DRAG_MOVE; 234 return ui::DragDropTypes::DRAG_MOVE;
235 } 235 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698