| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/content_setting_bubble_contents.h" | 5 #include "chrome/browser/ui/views/content_setting_bubble_contents.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 DCHECK(i != popup_links_.end()); | 461 DCHECK(i != popup_links_.end()); |
| 462 content_setting_bubble_model_->OnPopupClicked(i->second); | 462 content_setting_bubble_model_->OnPopupClicked(i->second); |
| 463 } | 463 } |
| 464 | 464 |
| 465 void ContentSettingBubbleContents::OnMenuButtonClicked( | 465 void ContentSettingBubbleContents::OnMenuButtonClicked( |
| 466 views::View* source, | 466 views::View* source, |
| 467 const gfx::Point& point) { | 467 const gfx::Point& point) { |
| 468 MediaMenuPartsMap::iterator j(media_menus_.find( | 468 MediaMenuPartsMap::iterator j(media_menus_.find( |
| 469 static_cast<views::MenuButton*>(source))); | 469 static_cast<views::MenuButton*>(source))); |
| 470 DCHECK(j != media_menus_.end()); | 470 DCHECK(j != media_menus_.end()); |
| 471 menu_runner_.reset(new views::MenuRunner(j->second->menu_model.get())); | 471 menu_runner_.reset(new views::MenuRunner(j->second->menu_model.get(), |
| 472 views::MenuRunner::HAS_MNEMONICS)); |
| 472 | 473 |
| 473 gfx::Point screen_location; | 474 gfx::Point screen_location; |
| 474 views::View::ConvertPointToScreen(j->first, &screen_location); | 475 views::View::ConvertPointToScreen(j->first, &screen_location); |
| 475 ignore_result( | 476 ignore_result( |
| 476 menu_runner_->RunMenuAt(source->GetWidget(), | 477 menu_runner_->RunMenuAt(source->GetWidget(), |
| 477 j->first, | 478 j->first, |
| 478 gfx::Rect(screen_location, j->first->size()), | 479 gfx::Rect(screen_location, j->first->size()), |
| 479 views::MENU_ANCHOR_TOPLEFT, | 480 views::MENU_ANCHOR_TOPLEFT, |
| 480 ui::MENU_SOURCE_NONE, | 481 ui::MENU_SOURCE_NONE)); |
| 481 views::MenuRunner::HAS_MNEMONICS)); | |
| 482 } | 482 } |
| 483 | 483 |
| 484 int ContentSettingBubbleContents::GetPreferredMediaMenuWidth( | 484 int ContentSettingBubbleContents::GetPreferredMediaMenuWidth( |
| 485 views::MenuButton* button, | 485 views::MenuButton* button, |
| 486 ui::SimpleMenuModel* menu_model) { | 486 ui::SimpleMenuModel* menu_model) { |
| 487 base::string16 title = button->GetText(); | 487 base::string16 title = button->GetText(); |
| 488 | 488 |
| 489 int width = button->GetPreferredSize().width(); | 489 int width = button->GetPreferredSize().width(); |
| 490 for (int i = 0; i < menu_model->GetItemCount(); ++i) { | 490 for (int i = 0; i < menu_model->GetItemCount(); ++i) { |
| 491 button->SetText(menu_model->GetLabelAt(i)); | 491 button->SetText(menu_model->GetLabelAt(i)); |
| 492 width = std::max(width, button->GetPreferredSize().width()); | 492 width = std::max(width, button->GetPreferredSize().width()); |
| 493 } | 493 } |
| 494 | 494 |
| 495 // Recover the title for the menu button. | 495 // Recover the title for the menu button. |
| 496 button->SetText(title); | 496 button->SetText(title); |
| 497 return width; | 497 return width; |
| 498 } | 498 } |
| OLD | NEW |