| 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 "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "chrome/app/chrome_dll_resource.h" | 10 #include "chrome/app/chrome_dll_resource.h" |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 bookmark_menu_(NULL), | 80 bookmark_menu_(NULL), |
| 81 profile_(NULL), | 81 profile_(NULL), |
| 82 browser_(browser), | 82 browser_(browser), |
| 83 profiles_menu_contents_(NULL), | 83 profiles_menu_contents_(NULL), |
| 84 last_focused_view_storage_id_(-1), | 84 last_focused_view_storage_id_(-1), |
| 85 menu_bar_emulation_mode_(false), | 85 menu_bar_emulation_mode_(false), |
| 86 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), | 86 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)), |
| 87 destroyed_flag_(NULL), | 87 destroyed_flag_(NULL), |
| 88 collapsed_(false) { | 88 collapsed_(false) { |
| 89 SetID(VIEW_ID_TOOLBAR); | 89 SetID(VIEW_ID_TOOLBAR); |
| 90 |
| 90 browser_->command_updater()->AddCommandObserver(IDC_BACK, this); | 91 browser_->command_updater()->AddCommandObserver(IDC_BACK, this); |
| 91 browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this); | 92 browser_->command_updater()->AddCommandObserver(IDC_FORWARD, this); |
| 92 browser_->command_updater()->AddCommandObserver(IDC_HOME, this); | 93 browser_->command_updater()->AddCommandObserver(IDC_HOME, this); |
| 93 browser_->command_updater()->AddCommandObserver(IDC_RELOAD, this); | 94 browser_->command_updater()->AddCommandObserver(IDC_RELOAD, this); |
| 94 | 95 |
| 95 display_mode_ = browser->SupportsWindowFeature(Browser::FEATURE_TABSTRIP) ? | 96 display_mode_ = browser->SupportsWindowFeature(Browser::FEATURE_TABSTRIP) ? |
| 96 DISPLAYMODE_NORMAL : DISPLAYMODE_LOCATION; | 97 DISPLAYMODE_NORMAL : DISPLAYMODE_LOCATION; |
| 97 | 98 |
| 98 if (!kPopupBackgroundEdge) { | 99 if (!kPopupBackgroundEdge) { |
| 99 kPopupBackgroundEdge = ResourceBundle::GetSharedInstance().GetBitmapNamed( | 100 kPopupBackgroundEdge = ResourceBundle::GetSharedInstance().GetBitmapNamed( |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 | 147 |
| 147 home_ = new views::ImageButton(this); | 148 home_ = new views::ImageButton(this); |
| 148 home_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN | | 149 home_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN | |
| 149 views::Event::EF_MIDDLE_BUTTON_DOWN); | 150 views::Event::EF_MIDDLE_BUTTON_DOWN); |
| 150 home_->set_tag(IDC_HOME); | 151 home_->set_tag(IDC_HOME); |
| 151 home_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_HOME)); | 152 home_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_HOME)); |
| 152 home_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_HOME)); | 153 home_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_HOME)); |
| 153 home_->SetID(VIEW_ID_HOME_BUTTON); | 154 home_->SetID(VIEW_ID_HOME_BUTTON); |
| 154 | 155 |
| 155 reload_ = new views::ImageButton(this); | 156 reload_ = new views::ImageButton(this); |
| 157 reload_->set_triggerable_event_flags(views::Event::EF_LEFT_BUTTON_DOWN | |
| 158 views::Event::EF_MIDDLE_BUTTON_DOWN); |
| 156 reload_->set_tag(IDC_RELOAD); | 159 reload_->set_tag(IDC_RELOAD); |
| 157 reload_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_RELOAD)); | 160 reload_->SetTooltipText(l10n_util::GetString(IDS_TOOLTIP_RELOAD)); |
| 158 reload_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_RELOAD)); | 161 reload_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_RELOAD)); |
| 159 reload_->SetID(VIEW_ID_RELOAD_BUTTON); | 162 reload_->SetID(VIEW_ID_RELOAD_BUTTON); |
| 160 | 163 |
| 161 location_bar_ = new LocationBarView(profile, browser_->command_updater(), | 164 location_bar_ = new LocationBarView(profile, browser_->command_updater(), |
| 162 model_, this, (display_mode_ == DISPLAYMODE_LOCATION) ? | 165 model_, this, (display_mode_ == DISPLAYMODE_LOCATION) ? |
| 163 LocationBarView::POPUP : LocationBarView::NORMAL); | 166 LocationBarView::POPUP : LocationBarView::NORMAL); |
| 164 location_bar_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_LOCATION)); | 167 location_bar_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_LOCATION)); |
| 165 | 168 |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 396 } | 399 } |
| 397 if (button) | 400 if (button) |
| 398 button->SetEnabled(enabled); | 401 button->SetEnabled(enabled); |
| 399 } | 402 } |
| 400 | 403 |
| 401 //////////////////////////////////////////////////////////////////////////////// | 404 //////////////////////////////////////////////////////////////////////////////// |
| 402 // ToolbarView, views::Button::ButtonListener implementation: | 405 // ToolbarView, views::Button::ButtonListener implementation: |
| 403 | 406 |
| 404 void ToolbarView::ButtonPressed(views::Button* sender, | 407 void ToolbarView::ButtonPressed(views::Button* sender, |
| 405 const views::Event& event) { | 408 const views::Event& event) { |
| 406 int id = sender->tag(); | 409 int command = sender->tag(); |
| 407 switch (id) { | 410 int flags = sender->mouse_event_flags(); |
| 411 // Shift-clicking or Ctrl-clicking the reload button means we should ignore |
| 412 // any cached content. |
| 413 // TODO(avayvod): eliminate duplication of this logic in |
| 414 // CompactLocationBarView. |
| 415 if ((command == IDC_RELOAD) && |
| 416 (event.IsShiftDown() || event.IsControlDown())) { |
| 417 command = IDC_RELOAD_IGNORING_CACHE; |
| 418 // Mask off shift/ctrl so they aren't interpreted as affecting the |
| 419 // disposition below. |
| 420 flags &= ~(views::Event::EF_SHIFT_DOWN | views::Event::EF_CONTROL_DOWN); |
| 421 } |
| 422 WindowOpenDisposition disposition = |
| 423 event_utils::DispositionFromEventFlags(flags); |
| 424 switch (command) { |
| 408 case IDC_BACK: | 425 case IDC_BACK: |
| 409 case IDC_FORWARD: | 426 case IDC_FORWARD: |
| 410 case IDC_RELOAD: | 427 case IDC_RELOAD: |
| 411 // Forcibly reset the location bar, since otherwise it won't discard any | 428 case IDC_RELOAD_IGNORING_CACHE: |
| 412 // ongoing user edits, since it doesn't realize this is a user-initiated | 429 if (disposition == CURRENT_TAB) { |
| 413 // action. | 430 // Forcibly reset the location bar, since otherwise it won't discard any |
| 414 location_bar_->Revert(); | 431 // ongoing user edits, since it doesn't realize this is a user-initiated |
| 415 // Shift-clicking or Ctrl-clicking the reload button means we should | 432 // action. |
| 416 // ignore any cached content. | 433 location_bar_->Revert(); |
| 417 // TODO(avayvod): eliminate duplication of this logic in | 434 } |
| 418 // CompactLocationBarView. | |
| 419 if (id == IDC_RELOAD && (event.IsShiftDown() || event.IsControlDown())) | |
| 420 id = IDC_RELOAD_IGNORING_CACHE; | |
| 421 break; | |
| 422 } | 435 } |
| 423 browser_->ExecuteCommandWithDisposition( | 436 browser_->ExecuteCommandWithDisposition(command, disposition); |
| 424 id, event_utils::DispositionFromEventFlags(sender->mouse_event_flags())); | |
| 425 } | 437 } |
| 426 | 438 |
| 427 //////////////////////////////////////////////////////////////////////////////// | 439 //////////////////////////////////////////////////////////////////////////////// |
| 428 // ToolbarView, NotificationObserver implementation: | 440 // ToolbarView, NotificationObserver implementation: |
| 429 | 441 |
| 430 void ToolbarView::Observe(NotificationType type, | 442 void ToolbarView::Observe(NotificationType type, |
| 431 const NotificationSource& source, | 443 const NotificationSource& source, |
| 432 const NotificationDetails& details) { | 444 const NotificationDetails& details) { |
| 433 if (type == NotificationType::PREF_CHANGED) { | 445 if (type == NotificationType::PREF_CHANGED) { |
| 434 std::wstring* pref_name = Details<std::wstring>(details).ptr(); | 446 std::wstring* pref_name = Details<std::wstring>(details).ptr(); |
| (...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 905 last_focused_view->RequestFocus(); | 917 last_focused_view->RequestFocus(); |
| 906 } else { | 918 } else { |
| 907 // Focus the location bar | 919 // Focus the location bar |
| 908 views::View* view = GetAncestorWithClassName(BrowserView::kViewClassName); | 920 views::View* view = GetAncestorWithClassName(BrowserView::kViewClassName); |
| 909 if (view) { | 921 if (view) { |
| 910 BrowserView* browser_view = static_cast<BrowserView*>(view); | 922 BrowserView* browser_view = static_cast<BrowserView*>(view); |
| 911 browser_view->SetFocusToLocationBar(false); | 923 browser_view->SetFocusToLocationBar(false); |
| 912 } | 924 } |
| 913 } | 925 } |
| 914 } | 926 } |
| OLD | NEW |