| OLD | NEW |
| 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/browser_actions_container.h" | 5 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h" |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "chrome/browser/extensions/extension_service.h" | 10 #include "chrome/browser/extensions/extension_service.h" |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 // instance. | 258 // instance. |
| 259 DCHECK(!command.global()); | 259 DCHECK(!command.global()); |
| 260 extension_keybinding_registry_->ExecuteCommand(extension->id(), | 260 extension_keybinding_registry_->ExecuteCommand(extension->id(), |
| 261 command.accelerator()); | 261 command.accelerator()); |
| 262 } | 262 } |
| 263 | 263 |
| 264 bool BrowserActionsContainer::ShownInsideMenu() const { | 264 bool BrowserActionsContainer::ShownInsideMenu() const { |
| 265 return in_overflow_mode(); | 265 return in_overflow_mode(); |
| 266 } | 266 } |
| 267 | 267 |
| 268 void BrowserActionsContainer::OnBrowserActionViewDragDone() { |
| 269 // We notify here as well as in OnPerformDrop because the dragged view is |
| 270 // removed in OnPerformDrop, so it will never get its OnDragDone() call. |
| 271 // TODO(devlin): we should see about fixing that. |
| 272 FOR_EACH_OBSERVER(BrowserActionsContainerObserver, |
| 273 observers_, |
| 274 OnBrowserActionDragDone()); |
| 275 } |
| 276 |
| 268 void BrowserActionsContainer::AddObserver( | 277 void BrowserActionsContainer::AddObserver( |
| 269 BrowserActionsContainerObserver* observer) { | 278 BrowserActionsContainerObserver* observer) { |
| 270 observers_.AddObserver(observer); | 279 observers_.AddObserver(observer); |
| 271 } | 280 } |
| 272 | 281 |
| 273 void BrowserActionsContainer::RemoveObserver( | 282 void BrowserActionsContainer::RemoveObserver( |
| 274 BrowserActionsContainerObserver* observer) { | 283 BrowserActionsContainerObserver* observer) { |
| 275 observers_.RemoveObserver(observer); | 284 observers_.RemoveObserver(observer); |
| 276 } | 285 } |
| 277 | 286 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 view->SetVisible(x + icon_width <= max_x); | 375 view->SetVisible(x + icon_width <= max_x); |
| 367 if (view->visible()) | 376 if (view->visible()) |
| 368 view->SetBounds(x, 0, icon_width, IconHeight()); | 377 view->SetBounds(x, 0, icon_width, IconHeight()); |
| 369 } | 378 } |
| 370 } | 379 } |
| 371 } | 380 } |
| 372 | 381 |
| 373 bool BrowserActionsContainer::GetDropFormats( | 382 bool BrowserActionsContainer::GetDropFormats( |
| 374 int* formats, | 383 int* formats, |
| 375 std::set<OSExchangeData::CustomFormat>* custom_formats) { | 384 std::set<OSExchangeData::CustomFormat>* custom_formats) { |
| 376 custom_formats->insert(BrowserActionDragData::GetBrowserActionCustomFormat()); | 385 return BrowserActionDragData::GetDropFormats(custom_formats); |
| 377 | |
| 378 return true; | |
| 379 } | 386 } |
| 380 | 387 |
| 381 bool BrowserActionsContainer::AreDropTypesRequired() { | 388 bool BrowserActionsContainer::AreDropTypesRequired() { |
| 382 return true; | 389 return BrowserActionDragData::AreDropTypesRequired(); |
| 383 } | 390 } |
| 384 | 391 |
| 385 bool BrowserActionsContainer::CanDrop(const OSExchangeData& data) { | 392 bool BrowserActionsContainer::CanDrop(const OSExchangeData& data) { |
| 386 BrowserActionDragData drop_data; | 393 return BrowserActionDragData::CanDrop(data, profile_); |
| 387 return drop_data.Read(data) ? drop_data.IsFromProfile(profile_) : false; | |
| 388 } | 394 } |
| 389 | 395 |
| 390 void BrowserActionsContainer::OnDragEntered( | 396 void BrowserActionsContainer::OnDragEntered( |
| 391 const ui::DropTargetEvent& event) { | 397 const ui::DropTargetEvent& event) { |
| 392 } | 398 } |
| 393 | 399 |
| 394 int BrowserActionsContainer::OnDragUpdated( | 400 int BrowserActionsContainer::OnDragUpdated( |
| 395 const ui::DropTargetEvent& event) { | 401 const ui::DropTargetEvent& event) { |
| 396 // First check if we are above the chevron (overflow) menu. | 402 // First check if we are above the chevron (overflow) menu. |
| 397 if (GetEventHandlerForPoint(event.location()) == chevron_) { | 403 if (GetEventHandlerForPoint(event.location()) == chevron_) { |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 492 if (i > data.index()) | 498 if (i > data.index()) |
| 493 --i; | 499 --i; |
| 494 | 500 |
| 495 if (profile_->IsOffTheRecord()) | 501 if (profile_->IsOffTheRecord()) |
| 496 i = model_->IncognitoIndexToOriginal(i); | 502 i = model_->IncognitoIndexToOriginal(i); |
| 497 | 503 |
| 498 model_->MoveBrowserAction( | 504 model_->MoveBrowserAction( |
| 499 browser_action_views_[data.index()]->button()->extension(), i); | 505 browser_action_views_[data.index()]->button()->extension(), i); |
| 500 | 506 |
| 501 OnDragExited(); // Perform clean up after dragging. | 507 OnDragExited(); // Perform clean up after dragging. |
| 508 FOR_EACH_OBSERVER(BrowserActionsContainerObserver, |
| 509 observers_, |
| 510 OnBrowserActionDragDone()); |
| 502 return ui::DragDropTypes::DRAG_MOVE; | 511 return ui::DragDropTypes::DRAG_MOVE; |
| 503 } | 512 } |
| 504 | 513 |
| 505 void BrowserActionsContainer::GetAccessibleState( | 514 void BrowserActionsContainer::GetAccessibleState( |
| 506 ui::AXViewState* state) { | 515 ui::AXViewState* state) { |
| 507 state->role = ui::AX_ROLE_GROUP; | 516 state->role = ui::AX_ROLE_GROUP; |
| 508 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_EXTENSIONS); | 517 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_EXTENSIONS); |
| 509 } | 518 } |
| 510 | 519 |
| 511 void BrowserActionsContainer::OnMenuButtonClicked(views::View* source, | 520 void BrowserActionsContainer::OnMenuButtonClicked(views::View* source, |
| (...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1055 views::BubbleBorder::TOP_RIGHT, | 1064 views::BubbleBorder::TOP_RIGHT, |
| 1056 show_action); | 1065 show_action); |
| 1057 popup_->GetWidget()->AddObserver(this); | 1066 popup_->GetWidget()->AddObserver(this); |
| 1058 popup_button_ = button; | 1067 popup_button_ = button; |
| 1059 | 1068 |
| 1060 // Only set button as pushed if it was triggered by a user click. | 1069 // Only set button as pushed if it was triggered by a user click. |
| 1061 if (should_grant) | 1070 if (should_grant) |
| 1062 popup_button_->SetButtonPushed(); | 1071 popup_button_->SetButtonPushed(); |
| 1063 return true; | 1072 return true; |
| 1064 } | 1073 } |
| OLD | NEW |