OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/views/toolbar_view.h" | 5 #include "chrome/browser/views/toolbar_view.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "app/resource_bundle.h" | 8 #include "app/resource_bundle.h" |
9 #include "chrome/app/chrome_dll_resource.h" | 9 #include "chrome/app/chrome_dll_resource.h" |
10 #include "chrome/browser/browser.h" | 10 #include "chrome/browser/browser.h" |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
103 // NOTE: Don't remove the command observers here. This object gets destroyed | 103 // NOTE: Don't remove the command observers here. This object gets destroyed |
104 // after the Browser (which owns the CommandUpdater), so the CommandUpdater is | 104 // after the Browser (which owns the CommandUpdater), so the CommandUpdater is |
105 // already gone. | 105 // already gone. |
106 } | 106 } |
107 | 107 |
108 void ToolbarView::Init(Profile* profile) { | 108 void ToolbarView::Init(Profile* profile) { |
109 back_menu_model_.reset(new BackForwardMenuModel( | 109 back_menu_model_.reset(new BackForwardMenuModel( |
110 browser_, BackForwardMenuModel::BACKWARD_MENU)); | 110 browser_, BackForwardMenuModel::BACKWARD_MENU)); |
111 forward_menu_model_.reset(new BackForwardMenuModel( | 111 forward_menu_model_.reset(new BackForwardMenuModel( |
112 browser_, BackForwardMenuModel::FORWARD_MENU)); | 112 browser_, BackForwardMenuModel::FORWARD_MENU)); |
113 app_menu_model_.reset(new WrenchMenuModel(this, browser_)); | 113 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_)); |
114 | 114 |
115 back_ = new views::ButtonDropDown(this, back_menu_model_.get()); | 115 back_ = new views::ButtonDropDown(this, back_menu_model_.get()); |
116 back_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN | | 116 back_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN | |
117 views::Event::EF_MIDDLE_BUTTON_DOWN); | 117 views::Event::EF_MIDDLE_BUTTON_DOWN); |
118 back_->set_tag(IDC_BACK); | 118 back_->set_tag(IDC_BACK); |
119 back_->SetImageAlignment(views::ImageButton::ALIGN_RIGHT, | 119 back_->SetImageAlignment(views::ImageButton::ALIGN_RIGHT, |
120 views::ImageButton::ALIGN_TOP); | 120 views::ImageButton::ALIGN_TOP); |
121 back_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_BACK)); | 121 back_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_BACK)); |
122 back_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_BACK)); | 122 back_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_BACK)); |
123 back_->SetID(VIEW_ID_BACK_BUTTON); | 123 back_->SetID(VIEW_ID_BACK_BUTTON); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 | 241 |
242 //////////////////////////////////////////////////////////////////////////////// | 242 //////////////////////////////////////////////////////////////////////////////// |
243 // ToolbarView, views::MenuDelegate implementation: | 243 // ToolbarView, views::MenuDelegate implementation: |
244 | 244 |
245 void ToolbarView::RunMenu(views::View* source, const gfx::Point& /*pt*/) { | 245 void ToolbarView::RunMenu(views::View* source, const gfx::Point& /*pt*/) { |
246 DCHECK_EQ(VIEW_ID_APP_MENU, source->GetID()); | 246 DCHECK_EQ(VIEW_ID_APP_MENU, source->GetID()); |
247 | 247 |
248 bool destroyed_flag = false; | 248 bool destroyed_flag = false; |
249 destroyed_flag_ = &destroyed_flag; | 249 destroyed_flag_ = &destroyed_flag; |
250 wrench_menu_.reset(new WrenchMenu(browser_)); | 250 wrench_menu_.reset(new WrenchMenu(browser_)); |
251 wrench_menu_->Init(app_menu_model_.get()); | 251 wrench_menu_->Init(wrench_menu_model_->menu_model()); |
252 | 252 |
253 for (size_t i = 0; i < menu_listeners_.size(); ++i) | 253 for (size_t i = 0; i < menu_listeners_.size(); ++i) |
254 menu_listeners_[i]->OnMenuOpened(); | 254 menu_listeners_[i]->OnMenuOpened(); |
255 | 255 |
256 wrench_menu_->RunMenu(app_menu_); | 256 wrench_menu_->RunMenu(app_menu_); |
257 | 257 |
258 if (destroyed_flag) | 258 if (destroyed_flag) |
259 return; | 259 return; |
260 destroyed_flag_ = NULL; | 260 destroyed_flag_ = NULL; |
261 | 261 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 if (*pref_name == prefs::kShowHomeButton) { | 337 if (*pref_name == prefs::kShowHomeButton) { |
338 Layout(); | 338 Layout(); |
339 SchedulePaint(); | 339 SchedulePaint(); |
340 } | 340 } |
341 } else if (type == NotificationType::UPGRADE_RECOMMENDED) { | 341 } else if (type == NotificationType::UPGRADE_RECOMMENDED) { |
342 ShowUpgradeReminder(); | 342 ShowUpgradeReminder(); |
343 } | 343 } |
344 } | 344 } |
345 | 345 |
346 //////////////////////////////////////////////////////////////////////////////// | 346 //////////////////////////////////////////////////////////////////////////////// |
347 // ToolbarView, menus::SimpleMenuModel::Delegate implementation: | 347 // ToolbarView, menus::AcceleratorProvider implementation: |
348 | |
349 bool ToolbarView::IsCommandIdChecked(int command_id) const { | |
350 #if defined(OS_CHROMEOS) | |
351 if (command_id == IDC_TOGGLE_VERTICAL_TABS) { | |
352 return browser_->UseVerticalTabs(); | |
353 } | |
354 #endif | |
355 return (command_id == IDC_SHOW_BOOKMARK_BAR) && | |
356 profile_->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar); | |
357 } | |
358 | |
359 bool ToolbarView::IsCommandIdEnabled(int command_id) const { | |
360 return browser_->command_updater()->IsCommandEnabled(command_id); | |
361 } | |
362 | 348 |
363 bool ToolbarView::GetAcceleratorForCommandId(int command_id, | 349 bool ToolbarView::GetAcceleratorForCommandId(int command_id, |
364 menus::Accelerator* accelerator) { | 350 menus::Accelerator* accelerator) { |
365 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators | 351 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators |
366 // anywhere so we need to check for them explicitly here. | 352 // anywhere so we need to check for them explicitly here. |
367 // TODO(cpu) Bug 1109102. Query WebKit land for the actual bindings. | 353 // TODO(cpu) Bug 1109102. Query WebKit land for the actual bindings. |
368 switch (command_id) { | 354 switch (command_id) { |
369 case IDC_CUT: | 355 case IDC_CUT: |
370 *accelerator = views::Accelerator(base::VKEY_X, false, true, false); | 356 *accelerator = views::Accelerator(base::VKEY_X, false, true, false); |
371 return true; | 357 return true; |
372 case IDC_COPY: | 358 case IDC_COPY: |
373 *accelerator = views::Accelerator(base::VKEY_C, false, true, false); | 359 *accelerator = views::Accelerator(base::VKEY_C, false, true, false); |
374 return true; | 360 return true; |
375 case IDC_PASTE: | 361 case IDC_PASTE: |
376 *accelerator = views::Accelerator(base::VKEY_V, false, true, false); | 362 *accelerator = views::Accelerator(base::VKEY_V, false, true, false); |
377 return true; | 363 return true; |
378 } | 364 } |
379 // Else, we retrieve the accelerator information from the frame. | 365 // Else, we retrieve the accelerator information from the frame. |
380 return GetWidget()->GetAccelerator(command_id, accelerator); | 366 return GetWidget()->GetAccelerator(command_id, accelerator); |
381 } | 367 } |
382 | 368 |
383 void ToolbarView::ExecuteCommand(int command_id) { | |
384 browser_->ExecuteCommand(command_id); | |
385 } | |
386 | |
387 //////////////////////////////////////////////////////////////////////////////// | 369 //////////////////////////////////////////////////////////////////////////////// |
388 // ToolbarView, views::View overrides: | 370 // ToolbarView, views::View overrides: |
389 | 371 |
390 gfx::Size ToolbarView::GetPreferredSize() { | 372 gfx::Size ToolbarView::GetPreferredSize() { |
391 if (IsDisplayModeNormal()) { | 373 if (IsDisplayModeNormal()) { |
392 int min_width = kEdgeSpacing + | 374 int min_width = kEdgeSpacing + |
393 back_->GetPreferredSize().width() + kButtonSpacing + | 375 back_->GetPreferredSize().width() + kButtonSpacing + |
394 forward_->GetPreferredSize().width() + kButtonSpacing + | 376 forward_->GetPreferredSize().width() + kButtonSpacing + |
395 reload_->GetPreferredSize().width() + kStandardSpacing + | 377 reload_->GetPreferredSize().width() + kStandardSpacing + |
396 (show_home_button_.GetValue() ? | 378 (show_home_button_.GetValue() ? |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
635 *tp->GetBitmapNamed(IDR_UPGRADE_DOT_ACTIVE), | 617 *tp->GetBitmapNamed(IDR_UPGRADE_DOT_ACTIVE), |
636 value); | 618 value); |
637 } | 619 } |
638 | 620 |
639 static const int kBadgeLeftSpacing = 8; | 621 static const int kBadgeLeftSpacing = 8; |
640 static const int kBadgeTopSpacing = 18; | 622 static const int kBadgeTopSpacing = 18; |
641 canvas->DrawBitmapInt(badge, kBadgeLeftSpacing, kBadgeTopSpacing); | 623 canvas->DrawBitmapInt(badge, kBadgeLeftSpacing, kBadgeTopSpacing); |
642 | 624 |
643 return canvas->ExtractBitmap(); | 625 return canvas->ExtractBitmap(); |
644 } | 626 } |
OLD | NEW |