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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 // the bubble arbitrarily wide. | 48 // the bubble arbitrarily wide. |
49 const int kMaxContentsWidth = 500; | 49 const int kMaxContentsWidth = 500; |
50 | 50 |
51 // When we have multiline labels, we should set a minimum width lest we get very | 51 // When we have multiline labels, we should set a minimum width lest we get very |
52 // narrow bubbles with lots of line-wrapping. | 52 // narrow bubbles with lots of line-wrapping. |
53 const int kMinMultiLineContentsWidth = 250; | 53 const int kMinMultiLineContentsWidth = 250; |
54 | 54 |
55 // The minimum width of the media menu buttons. | 55 // The minimum width of the media menu buttons. |
56 const int kMinMediaMenuButtonWidth = 100; | 56 const int kMinMediaMenuButtonWidth = 100; |
57 | 57 |
58 } | 58 } // namespace |
59 | 59 |
60 using content::PluginService; | 60 using content::PluginService; |
61 using content::WebContents; | 61 using content::WebContents; |
62 | 62 |
63 | 63 |
64 // ContentSettingBubbleContents::Favicon -------------------------------------- | 64 // ContentSettingBubbleContents::Favicon -------------------------------------- |
65 | 65 |
66 class ContentSettingBubbleContents::Favicon : public views::ImageView { | 66 class ContentSettingBubbleContents::Favicon : public views::ImageView { |
67 public: | 67 public: |
68 Favicon(const gfx::Image& image, | 68 Favicon(const gfx::Image& image, |
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 | 457 |
458 menu_runner_.reset(new views::MenuRunner(i->second->menu_model.get())); | 458 menu_runner_.reset(new views::MenuRunner(i->second->menu_model.get())); |
459 | 459 |
460 gfx::Point screen_location; | 460 gfx::Point screen_location; |
461 views::View::ConvertPointToScreen(i->first, &screen_location); | 461 views::View::ConvertPointToScreen(i->first, &screen_location); |
462 ignore_result(menu_runner_->RunMenuAt( | 462 ignore_result(menu_runner_->RunMenuAt( |
463 source->GetWidget(), | 463 source->GetWidget(), |
464 i->first, | 464 i->first, |
465 gfx::Rect(screen_location, i->first->size()), | 465 gfx::Rect(screen_location, i->first->size()), |
466 views::MenuItemView::TOPLEFT, | 466 views::MenuItemView::TOPLEFT, |
| 467 ui::MENU_SOURCE_NONE, |
467 views::MenuRunner::HAS_MNEMONICS)); | 468 views::MenuRunner::HAS_MNEMONICS)); |
468 } | 469 } |
469 | 470 |
470 void ContentSettingBubbleContents::Observe( | 471 void ContentSettingBubbleContents::Observe( |
471 int type, | 472 int type, |
472 const content::NotificationSource& source, | 473 const content::NotificationSource& source, |
473 const content::NotificationDetails& details) { | 474 const content::NotificationDetails& details) { |
474 DCHECK_EQ(content::NOTIFICATION_WEB_CONTENTS_DESTROYED, type); | 475 DCHECK_EQ(content::NOTIFICATION_WEB_CONTENTS_DESTROYED, type); |
475 DCHECK(source == content::Source<WebContents>(web_contents_)); | 476 DCHECK(source == content::Source<WebContents>(web_contents_)); |
476 web_contents_ = NULL; | 477 web_contents_ = NULL; |
477 } | 478 } |
478 | 479 |
479 int ContentSettingBubbleContents::GetPreferredMediaMenuWidth( | 480 int ContentSettingBubbleContents::GetPreferredMediaMenuWidth( |
480 views::MenuButton* button, | 481 views::MenuButton* button, |
481 ui::SimpleMenuModel* menu_model) { | 482 ui::SimpleMenuModel* menu_model) { |
482 string16 title = button->text(); | 483 string16 title = button->text(); |
483 | 484 |
484 int width = button->GetPreferredSize().width(); | 485 int width = button->GetPreferredSize().width(); |
485 for (int i = 0; i < menu_model->GetItemCount(); ++i) { | 486 for (int i = 0; i < menu_model->GetItemCount(); ++i) { |
486 button->SetText(menu_model->GetLabelAt(i)); | 487 button->SetText(menu_model->GetLabelAt(i)); |
487 width = std::max(width, button->GetPreferredSize().width()); | 488 width = std::max(width, button->GetPreferredSize().width()); |
488 } | 489 } |
489 | 490 |
490 // Recover the title for the menu button. | 491 // Recover the title for the menu button. |
491 button->SetText(title); | 492 button->SetText(title); |
492 return width; | 493 return width; |
493 } | 494 } |
OLD | NEW |