| 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 wrench_menu_model_.reset(new WrenchMenuModel(this, browser_)); | 113 app_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(wrench_menu_model_->menu_model()); | 251 wrench_menu_->Init(app_menu_model_.get()); |
| 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::AcceleratorProvider implementation: | 347 // ToolbarView, menus::SimpleMenuModel::Delegate 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 } |
| 348 | 362 |
| 349 bool ToolbarView::GetAcceleratorForCommandId(int command_id, | 363 bool ToolbarView::GetAcceleratorForCommandId(int command_id, |
| 350 menus::Accelerator* accelerator) { | 364 menus::Accelerator* accelerator) { |
| 351 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators | 365 // The standard Ctrl-X, Ctrl-V and Ctrl-C are not defined as accelerators |
| 352 // anywhere so we need to check for them explicitly here. | 366 // anywhere so we need to check for them explicitly here. |
| 353 // TODO(cpu) Bug 1109102. Query WebKit land for the actual bindings. | 367 // TODO(cpu) Bug 1109102. Query WebKit land for the actual bindings. |
| 354 switch (command_id) { | 368 switch (command_id) { |
| 355 case IDC_CUT: | 369 case IDC_CUT: |
| 356 *accelerator = views::Accelerator(base::VKEY_X, false, true, false); | 370 *accelerator = views::Accelerator(base::VKEY_X, false, true, false); |
| 357 return true; | 371 return true; |
| 358 case IDC_COPY: | 372 case IDC_COPY: |
| 359 *accelerator = views::Accelerator(base::VKEY_C, false, true, false); | 373 *accelerator = views::Accelerator(base::VKEY_C, false, true, false); |
| 360 return true; | 374 return true; |
| 361 case IDC_PASTE: | 375 case IDC_PASTE: |
| 362 *accelerator = views::Accelerator(base::VKEY_V, false, true, false); | 376 *accelerator = views::Accelerator(base::VKEY_V, false, true, false); |
| 363 return true; | 377 return true; |
| 364 } | 378 } |
| 365 // Else, we retrieve the accelerator information from the frame. | 379 // Else, we retrieve the accelerator information from the frame. |
| 366 return GetWidget()->GetAccelerator(command_id, accelerator); | 380 return GetWidget()->GetAccelerator(command_id, accelerator); |
| 367 } | 381 } |
| 368 | 382 |
| 383 void ToolbarView::ExecuteCommand(int command_id) { |
| 384 browser_->ExecuteCommand(command_id); |
| 385 } |
| 386 |
| 369 //////////////////////////////////////////////////////////////////////////////// | 387 //////////////////////////////////////////////////////////////////////////////// |
| 370 // ToolbarView, views::View overrides: | 388 // ToolbarView, views::View overrides: |
| 371 | 389 |
| 372 gfx::Size ToolbarView::GetPreferredSize() { | 390 gfx::Size ToolbarView::GetPreferredSize() { |
| 373 if (IsDisplayModeNormal()) { | 391 if (IsDisplayModeNormal()) { |
| 374 int min_width = kEdgeSpacing + | 392 int min_width = kEdgeSpacing + |
| 375 back_->GetPreferredSize().width() + kButtonSpacing + | 393 back_->GetPreferredSize().width() + kButtonSpacing + |
| 376 forward_->GetPreferredSize().width() + kButtonSpacing + | 394 forward_->GetPreferredSize().width() + kButtonSpacing + |
| 377 reload_->GetPreferredSize().width() + kStandardSpacing + | 395 reload_->GetPreferredSize().width() + kStandardSpacing + |
| 378 (show_home_button_.GetValue() ? | 396 (show_home_button_.GetValue() ? |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 *tp->GetBitmapNamed(IDR_UPGRADE_DOT_ACTIVE), | 637 *tp->GetBitmapNamed(IDR_UPGRADE_DOT_ACTIVE), |
| 620 value); | 638 value); |
| 621 } | 639 } |
| 622 | 640 |
| 623 static const int kBadgeLeftSpacing = 8; | 641 static const int kBadgeLeftSpacing = 8; |
| 624 static const int kBadgeTopSpacing = 18; | 642 static const int kBadgeTopSpacing = 18; |
| 625 canvas->DrawBitmapInt(badge, kBadgeLeftSpacing, kBadgeTopSpacing); | 643 canvas->DrawBitmapInt(badge, kBadgeLeftSpacing, kBadgeTopSpacing); |
| 626 | 644 |
| 627 return canvas->ExtractBitmap(); | 645 return canvas->ExtractBitmap(); |
| 628 } | 646 } |
| OLD | NEW |