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 | |
277 void BrowserActionsContainer::AddObserver( | 268 void BrowserActionsContainer::AddObserver( |
278 BrowserActionsContainerObserver* observer) { | 269 BrowserActionsContainerObserver* observer) { |
279 observers_.AddObserver(observer); | 270 observers_.AddObserver(observer); |
280 } | 271 } |
281 | 272 |
282 void BrowserActionsContainer::RemoveObserver( | 273 void BrowserActionsContainer::RemoveObserver( |
283 BrowserActionsContainerObserver* observer) { | 274 BrowserActionsContainerObserver* observer) { |
284 observers_.RemoveObserver(observer); | 275 observers_.RemoveObserver(observer); |
285 } | 276 } |
286 | 277 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 view->SetVisible(x + icon_width <= max_x); | 366 view->SetVisible(x + icon_width <= max_x); |
376 if (view->visible()) | 367 if (view->visible()) |
377 view->SetBounds(x, 0, icon_width, IconHeight()); | 368 view->SetBounds(x, 0, icon_width, IconHeight()); |
378 } | 369 } |
379 } | 370 } |
380 } | 371 } |
381 | 372 |
382 bool BrowserActionsContainer::GetDropFormats( | 373 bool BrowserActionsContainer::GetDropFormats( |
383 int* formats, | 374 int* formats, |
384 std::set<OSExchangeData::CustomFormat>* custom_formats) { | 375 std::set<OSExchangeData::CustomFormat>* custom_formats) { |
385 return BrowserActionDragData::GetDropFormats(custom_formats); | 376 custom_formats->insert(BrowserActionDragData::GetBrowserActionCustomFormat()); |
| 377 |
| 378 return true; |
386 } | 379 } |
387 | 380 |
388 bool BrowserActionsContainer::AreDropTypesRequired() { | 381 bool BrowserActionsContainer::AreDropTypesRequired() { |
389 return BrowserActionDragData::AreDropTypesRequired(); | 382 return true; |
390 } | 383 } |
391 | 384 |
392 bool BrowserActionsContainer::CanDrop(const OSExchangeData& data) { | 385 bool BrowserActionsContainer::CanDrop(const OSExchangeData& data) { |
393 return BrowserActionDragData::CanDrop(data, profile_); | 386 BrowserActionDragData drop_data; |
| 387 return drop_data.Read(data) ? drop_data.IsFromProfile(profile_) : false; |
394 } | 388 } |
395 | 389 |
396 void BrowserActionsContainer::OnDragEntered( | 390 void BrowserActionsContainer::OnDragEntered( |
397 const ui::DropTargetEvent& event) { | 391 const ui::DropTargetEvent& event) { |
398 } | 392 } |
399 | 393 |
400 int BrowserActionsContainer::OnDragUpdated( | 394 int BrowserActionsContainer::OnDragUpdated( |
401 const ui::DropTargetEvent& event) { | 395 const ui::DropTargetEvent& event) { |
402 // First check if we are above the chevron (overflow) menu. | 396 // First check if we are above the chevron (overflow) menu. |
403 if (GetEventHandlerForPoint(event.location()) == chevron_) { | 397 if (GetEventHandlerForPoint(event.location()) == chevron_) { |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 if (i > data.index()) | 492 if (i > data.index()) |
499 --i; | 493 --i; |
500 | 494 |
501 if (profile_->IsOffTheRecord()) | 495 if (profile_->IsOffTheRecord()) |
502 i = model_->IncognitoIndexToOriginal(i); | 496 i = model_->IncognitoIndexToOriginal(i); |
503 | 497 |
504 model_->MoveBrowserAction( | 498 model_->MoveBrowserAction( |
505 browser_action_views_[data.index()]->button()->extension(), i); | 499 browser_action_views_[data.index()]->button()->extension(), i); |
506 | 500 |
507 OnDragExited(); // Perform clean up after dragging. | 501 OnDragExited(); // Perform clean up after dragging. |
508 FOR_EACH_OBSERVER(BrowserActionsContainerObserver, | |
509 observers_, | |
510 OnBrowserActionDragDone()); | |
511 return ui::DragDropTypes::DRAG_MOVE; | 502 return ui::DragDropTypes::DRAG_MOVE; |
512 } | 503 } |
513 | 504 |
514 void BrowserActionsContainer::GetAccessibleState( | 505 void BrowserActionsContainer::GetAccessibleState( |
515 ui::AXViewState* state) { | 506 ui::AXViewState* state) { |
516 state->role = ui::AX_ROLE_GROUP; | 507 state->role = ui::AX_ROLE_GROUP; |
517 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_EXTENSIONS); | 508 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_EXTENSIONS); |
518 } | 509 } |
519 | 510 |
520 void BrowserActionsContainer::OnMenuButtonClicked(views::View* source, | 511 void BrowserActionsContainer::OnMenuButtonClicked(views::View* source, |
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1064 views::BubbleBorder::TOP_RIGHT, | 1055 views::BubbleBorder::TOP_RIGHT, |
1065 show_action); | 1056 show_action); |
1066 popup_->GetWidget()->AddObserver(this); | 1057 popup_->GetWidget()->AddObserver(this); |
1067 popup_button_ = button; | 1058 popup_button_ = button; |
1068 | 1059 |
1069 // Only set button as pushed if it was triggered by a user click. | 1060 // Only set button as pushed if it was triggered by a user click. |
1070 if (should_grant) | 1061 if (should_grant) |
1071 popup_button_->SetButtonPushed(); | 1062 popup_button_->SetButtonPushed(); |
1072 return true; | 1063 return true; |
1073 } | 1064 } |
OLD | NEW |