| 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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 if (i->second.disabled) | 330 if (i->second.disabled) |
| 331 menu_button->SetEnabled(false); | 331 menu_button->SetEnabled(false); |
| 332 | 332 |
| 333 layout->AddView(label); | 333 layout->AddView(label); |
| 334 layout->AddView(menu_button); | 334 layout->AddView(menu_button); |
| 335 | 335 |
| 336 bubble_content_empty = false; | 336 bubble_content_empty = false; |
| 337 } | 337 } |
| 338 } | 338 } |
| 339 | 339 |
| 340 UpdateMenuButtonSizes(); | 340 UpdateMenuButtonSizes(GetNativeTheme()); |
| 341 | 341 |
| 342 const gfx::FontList& domain_font = | 342 const gfx::FontList& domain_font = |
| 343 ui::ResourceBundle::GetSharedInstance().GetFontList( | 343 ui::ResourceBundle::GetSharedInstance().GetFontList( |
| 344 ui::ResourceBundle::BoldFont); | 344 ui::ResourceBundle::BoldFont); |
| 345 for (std::vector<ContentSettingBubbleModel::DomainList>::const_iterator i( | 345 for (std::vector<ContentSettingBubbleModel::DomainList>::const_iterator i( |
| 346 bubble_content.domain_lists.begin()); | 346 bubble_content.domain_lists.begin()); |
| 347 i != bubble_content.domain_lists.end(); ++i) { | 347 i != bubble_content.domain_lists.end(); ++i) { |
| 348 layout->StartRow(0, kSingleColumnSetId); | 348 layout->StartRow(0, kSingleColumnSetId); |
| 349 views::Label* section_title = new views::Label(base::UTF8ToUTF16(i->title)); | 349 views::Label* section_title = new views::Label(base::UTF8ToUTF16(i->title)); |
| 350 section_title->SetMultiLine(true); | 350 section_title->SetMultiLine(true); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 | 402 |
| 403 void ContentSettingBubbleContents::DidNavigateMainFrame( | 403 void ContentSettingBubbleContents::DidNavigateMainFrame( |
| 404 const content::LoadCommittedDetails& details, | 404 const content::LoadCommittedDetails& details, |
| 405 const content::FrameNavigateParams& params) { | 405 const content::FrameNavigateParams& params) { |
| 406 // Content settings are based on the main frame, so if it switches then | 406 // Content settings are based on the main frame, so if it switches then |
| 407 // close up shop. | 407 // close up shop. |
| 408 content_setting_bubble_model_->OnDoneClicked(); | 408 content_setting_bubble_model_->OnDoneClicked(); |
| 409 GetWidget()->Close(); | 409 GetWidget()->Close(); |
| 410 } | 410 } |
| 411 | 411 |
| 412 void ContentSettingBubbleContents::OnNativeThemeChanged( |
| 413 const ui::NativeTheme* theme) { |
| 414 views::BubbleDelegateView::OnNativeThemeChanged(theme); |
| 415 UpdateMenuButtonSizes(theme); |
| 416 } |
| 417 |
| 412 void ContentSettingBubbleContents::ButtonPressed(views::Button* sender, | 418 void ContentSettingBubbleContents::ButtonPressed(views::Button* sender, |
| 413 const ui::Event& event) { | 419 const ui::Event& event) { |
| 414 RadioGroup::const_iterator i( | 420 RadioGroup::const_iterator i( |
| 415 std::find(radio_group_.begin(), radio_group_.end(), sender)); | 421 std::find(radio_group_.begin(), radio_group_.end(), sender)); |
| 416 if (i != radio_group_.end()) { | 422 if (i != radio_group_.end()) { |
| 417 content_setting_bubble_model_->OnRadioClicked(i - radio_group_.begin()); | 423 content_setting_bubble_model_->OnRadioClicked(i - radio_group_.begin()); |
| 418 return; | 424 return; |
| 419 } | 425 } |
| 420 DCHECK_EQ(sender, close_button_); | 426 DCHECK_EQ(sender, close_button_); |
| 421 content_setting_bubble_model_->OnDoneClicked(); | 427 content_setting_bubble_model_->OnDoneClicked(); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 gfx::Point screen_location; | 465 gfx::Point screen_location; |
| 460 views::View::ConvertPointToScreen(j->first, &screen_location); | 466 views::View::ConvertPointToScreen(j->first, &screen_location); |
| 461 ignore_result( | 467 ignore_result( |
| 462 menu_runner_->RunMenuAt(source->GetWidget(), | 468 menu_runner_->RunMenuAt(source->GetWidget(), |
| 463 j->first, | 469 j->first, |
| 464 gfx::Rect(screen_location, j->first->size()), | 470 gfx::Rect(screen_location, j->first->size()), |
| 465 views::MENU_ANCHOR_TOPLEFT, | 471 views::MENU_ANCHOR_TOPLEFT, |
| 466 ui::MENU_SOURCE_NONE)); | 472 ui::MENU_SOURCE_NONE)); |
| 467 } | 473 } |
| 468 | 474 |
| 469 void ContentSettingBubbleContents::UpdateMenuButtonSizes() { | 475 void ContentSettingBubbleContents::UpdateMenuButtonSizes( |
| 470 const views::MenuConfig& config = views::MenuConfig::instance(); | 476 const ui::NativeTheme* theme) { |
| 477 const views::MenuConfig config = views::MenuConfig(theme); |
| 471 const int margins = config.item_left_margin + config.check_width + | 478 const int margins = config.item_left_margin + config.check_width + |
| 472 config.label_to_arrow_padding + config.arrow_width + | 479 config.label_to_arrow_padding + config.arrow_width + |
| 473 config.arrow_to_edge_padding; | 480 config.arrow_to_edge_padding; |
| 474 | 481 |
| 475 // The preferred media menu size sort of copies the logic in | 482 // The preferred media menu size sort of copies the logic in |
| 476 // MenuItemView::CalculateDimensions(). When this was using TextButton, it | 483 // MenuItemView::CalculateDimensions(). When this was using TextButton, it |
| 477 // completely coincidentally matched the logic in MenuItemView. We now need | 484 // completely coincidentally matched the logic in MenuItemView. We now need |
| 478 // to redo this manually. | 485 // to redo this manually. |
| 479 int menu_width = 0; | 486 int menu_width = 0; |
| 480 for (MediaMenuPartsMap::const_iterator i = media_menus_.begin(); | 487 for (MediaMenuPartsMap::const_iterator i = media_menus_.begin(); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 491 // Make sure the width is at least kMinMediaMenuButtonWidth. The | 498 // Make sure the width is at least kMinMediaMenuButtonWidth. The |
| 492 // maximum width will be clamped by kMaxContentsWidth of the view. | 499 // maximum width will be clamped by kMaxContentsWidth of the view. |
| 493 menu_width = std::max(kMinMediaMenuButtonWidth, menu_width + margins); | 500 menu_width = std::max(kMinMediaMenuButtonWidth, menu_width + margins); |
| 494 | 501 |
| 495 for (MediaMenuPartsMap::const_iterator i = media_menus_.begin(); | 502 for (MediaMenuPartsMap::const_iterator i = media_menus_.begin(); |
| 496 i != media_menus_.end(); ++i) { | 503 i != media_menus_.end(); ++i) { |
| 497 i->first->SetMinSize(gfx::Size(menu_width, 0)); | 504 i->first->SetMinSize(gfx::Size(menu_width, 0)); |
| 498 i->first->SetMaxSize(gfx::Size(menu_width, 0)); | 505 i->first->SetMaxSize(gfx::Size(menu_width, 0)); |
| 499 } | 506 } |
| 500 } | 507 } |
| OLD | NEW |