| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "ui/message_center/views/notifier_settings_view.h" | 5 #include "ui/message_center/views/notifier_settings_view.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 rb.GetImageSkiaNamed(IDR_NOTIFICATION_ADVANCED_SETTINGS_HOVER)); | 267 rb.GetImageSkiaNamed(IDR_NOTIFICATION_ADVANCED_SETTINGS_HOVER)); |
| 268 learn_more_->SetImage( | 268 learn_more_->SetImage( |
| 269 views::Button::STATE_PRESSED, | 269 views::Button::STATE_PRESSED, |
| 270 rb.GetImageSkiaNamed(IDR_NOTIFICATION_ADVANCED_SETTINGS_PRESSED)); | 270 rb.GetImageSkiaNamed(IDR_NOTIFICATION_ADVANCED_SETTINGS_PRESSED)); |
| 271 learn_more_->SetState(views::Button::STATE_NORMAL); | 271 learn_more_->SetState(views::Button::STATE_NORMAL); |
| 272 int learn_more_border_width = (kLearnMoreTargetWidth - kLearnMoreSize) / 2; | 272 int learn_more_border_width = (kLearnMoreTargetWidth - kLearnMoreSize) / 2; |
| 273 int learn_more_border_height = | 273 int learn_more_border_height = |
| 274 (kLearnMoreTargetHeight - kLearnMoreSize) / 2; | 274 (kLearnMoreTargetHeight - kLearnMoreSize) / 2; |
| 275 // The image itself is quite small, this large invisible border creates a | 275 // The image itself is quite small, this large invisible border creates a |
| 276 // much bigger click target. | 276 // much bigger click target. |
| 277 learn_more_->SetBorder( | 277 learn_more_->SetBorder(views::CreateEmptyBorder( |
| 278 views::Border::CreateEmptyBorder(learn_more_border_height, | 278 learn_more_border_height, learn_more_border_width, |
| 279 learn_more_border_width, | 279 learn_more_border_height, learn_more_border_width)); |
| 280 learn_more_border_height, | |
| 281 learn_more_border_width)); | |
| 282 learn_more_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, | 280 learn_more_->SetImageAlignment(views::ImageButton::ALIGN_CENTER, |
| 283 views::ImageButton::ALIGN_MIDDLE); | 281 views::ImageButton::ALIGN_MIDDLE); |
| 284 } | 282 } |
| 285 | 283 |
| 286 UpdateIconImage(notifier_->icon); | 284 UpdateIconImage(notifier_->icon); |
| 287 } | 285 } |
| 288 | 286 |
| 289 NotifierSettingsView::NotifierButton::~NotifierButton() { | 287 NotifierSettingsView::NotifierButton::~NotifierButton() { |
| 290 } | 288 } |
| 291 | 289 |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 430 views::Background::CreateSolidBackground(kMessageCenterBackgroundColor)); | 428 views::Background::CreateSolidBackground(kMessageCenterBackgroundColor)); |
| 431 SetPaintToLayer(true); | 429 SetPaintToLayer(true); |
| 432 | 430 |
| 433 title_label_ = new views::Label( | 431 title_label_ = new views::Label( |
| 434 l10n_util::GetStringUTF16(IDS_MESSAGE_CENTER_SETTINGS_BUTTON_LABEL), | 432 l10n_util::GetStringUTF16(IDS_MESSAGE_CENTER_SETTINGS_BUTTON_LABEL), |
| 435 ui::ResourceBundle::GetSharedInstance().GetFontList( | 433 ui::ResourceBundle::GetSharedInstance().GetFontList( |
| 436 ui::ResourceBundle::MediumFont)); | 434 ui::ResourceBundle::MediumFont)); |
| 437 title_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 435 title_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 438 title_label_->SetMultiLine(true); | 436 title_label_->SetMultiLine(true); |
| 439 title_label_->SetBorder( | 437 title_label_->SetBorder( |
| 440 views::Border::CreateEmptyBorder(kComputedTitleTopMargin, | 438 views::CreateEmptyBorder(kComputedTitleTopMargin, kTitleMargin, |
| 441 kTitleMargin, | 439 kComputedTitleBottomMargin, kTitleMargin)); |
| 442 kComputedTitleBottomMargin, | |
| 443 kTitleMargin)); | |
| 444 | 440 |
| 445 AddChildView(title_label_); | 441 AddChildView(title_label_); |
| 446 | 442 |
| 447 scroller_ = new views::ScrollView(); | 443 scroller_ = new views::ScrollView(); |
| 448 scroller_->SetVerticalScrollBar(new views::OverlayScrollBar(false)); | 444 scroller_->SetVerticalScrollBar(new views::OverlayScrollBar(false)); |
| 449 AddChildView(scroller_); | 445 AddChildView(scroller_); |
| 450 | 446 |
| 451 std::vector<Notifier*> notifiers; | 447 std::vector<Notifier*> notifiers; |
| 452 if (provider_) | 448 if (provider_) |
| 453 provider_->GetNotifierList(¬ifiers); | 449 provider_->GetNotifierList(¬ifiers); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 501 views::BoxLayout::kVertical, 0, 0, kComputedTitleElementSpacing)); | 497 views::BoxLayout::kVertical, 0, 0, kComputedTitleElementSpacing)); |
| 502 | 498 |
| 503 bool need_account_switcher = | 499 bool need_account_switcher = |
| 504 provider_ && provider_->GetNotifierGroupCount() > 1; | 500 provider_ && provider_->GetNotifierGroupCount() > 1; |
| 505 int top_label_resource_id = | 501 int top_label_resource_id = |
| 506 need_account_switcher ? IDS_MESSAGE_CENTER_SETTINGS_DESCRIPTION_MULTIUSER | 502 need_account_switcher ? IDS_MESSAGE_CENTER_SETTINGS_DESCRIPTION_MULTIUSER |
| 507 : IDS_MESSAGE_CENTER_SETTINGS_DIALOG_DESCRIPTION; | 503 : IDS_MESSAGE_CENTER_SETTINGS_DIALOG_DESCRIPTION; |
| 508 | 504 |
| 509 views::Label* top_label = | 505 views::Label* top_label = |
| 510 new views::Label(l10n_util::GetStringUTF16(top_label_resource_id)); | 506 new views::Label(l10n_util::GetStringUTF16(top_label_resource_id)); |
| 511 top_label->SetBorder(views::Border::CreateEmptyBorder( | 507 top_label->SetBorder(views::CreateEmptyBorder( |
| 512 gfx::Insets(0, kTitleMargin - settings::kHorizontalMargin))); | 508 gfx::Insets(0, kTitleMargin - settings::kHorizontalMargin))); |
| 513 top_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 509 top_label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 514 top_label->SetMultiLine(true); | 510 top_label->SetMultiLine(true); |
| 515 | 511 |
| 516 contents_title_view->AddChildView(top_label); | 512 contents_title_view->AddChildView(top_label); |
| 517 | 513 |
| 518 if (need_account_switcher) { | 514 if (need_account_switcher) { |
| 519 const NotifierGroup& active_group = provider_->GetActiveNotifierGroup(); | 515 const NotifierGroup& active_group = provider_->GetActiveNotifierGroup(); |
| 520 base::string16 notifier_group_text = active_group.login_info.empty() ? | 516 base::string16 notifier_group_text = active_group.login_info.empty() ? |
| 521 active_group.name : active_group.login_info; | 517 active_group.name : active_group.login_info; |
| 522 notifier_group_model_.reset(new NotifierGroupComboboxModel(provider_)); | 518 notifier_group_model_.reset(new NotifierGroupComboboxModel(provider_)); |
| 523 notifier_group_combobox_ = new views::Combobox(notifier_group_model_.get()); | 519 notifier_group_combobox_ = new views::Combobox(notifier_group_model_.get()); |
| 524 notifier_group_combobox_->set_listener(this); | 520 notifier_group_combobox_->set_listener(this); |
| 525 | 521 |
| 526 // Move the combobox over enough to align with the checkboxes. | 522 // Move the combobox over enough to align with the checkboxes. |
| 527 views::View* combobox_spacer = new views::View(); | 523 views::View* combobox_spacer = new views::View(); |
| 528 combobox_spacer->SetLayoutManager(new views::FillLayout()); | 524 combobox_spacer->SetLayoutManager(new views::FillLayout()); |
| 529 int padding = views::LabelButtonAssetBorder::GetDefaultInsetsForStyle( | 525 int padding = views::LabelButtonAssetBorder::GetDefaultInsetsForStyle( |
| 530 views::LabelButton::STYLE_TEXTBUTTON) | 526 views::LabelButton::STYLE_TEXTBUTTON) |
| 531 .left() - | 527 .left() - |
| 532 notifier_group_combobox_->border()->GetInsets().left(); | 528 notifier_group_combobox_->border()->GetInsets().left(); |
| 533 combobox_spacer->SetBorder( | 529 combobox_spacer->SetBorder(views::CreateEmptyBorder(0, padding, 0, 0)); |
| 534 views::Border::CreateEmptyBorder(0, padding, 0, 0)); | |
| 535 combobox_spacer->AddChildView(notifier_group_combobox_); | 530 combobox_spacer->AddChildView(notifier_group_combobox_); |
| 536 | 531 |
| 537 contents_title_view->AddChildView(combobox_spacer); | 532 contents_title_view->AddChildView(combobox_spacer); |
| 538 } | 533 } |
| 539 | 534 |
| 540 contents_view->AddChildView(contents_title_view); | 535 contents_view->AddChildView(contents_title_view); |
| 541 | 536 |
| 542 size_t notifier_count = notifiers.size(); | 537 size_t notifier_count = notifiers.size(); |
| 543 for (size_t i = 0; i < notifier_count; ++i) { | 538 for (size_t i = 0; i < notifier_count; ++i) { |
| 544 NotifierButton* button = new NotifierButton(provider_, notifiers[i], this); | 539 NotifierButton* button = new NotifierButton(provider_, notifiers[i], this); |
| 545 EntryView* entry = new EntryView(button); | 540 EntryView* entry = new EntryView(button); |
| 546 | 541 |
| 547 // This code emulates separators using borders. We will create an invisible | 542 // This code emulates separators using borders. We will create an invisible |
| 548 // border on the last notifier, as the spec leaves a space for it. | 543 // border on the last notifier, as the spec leaves a space for it. |
| 549 std::unique_ptr<views::Border> entry_border; | 544 std::unique_ptr<views::Border> entry_border; |
| 550 if (i == notifier_count - 1) { | 545 if (i == notifier_count - 1) { |
| 551 entry_border = views::Border::CreateEmptyBorder( | 546 entry_border = |
| 552 0, 0, settings::kEntrySeparatorHeight, 0); | 547 views::CreateEmptyBorder(0, 0, settings::kEntrySeparatorHeight, 0); |
| 553 } else { | 548 } else { |
| 554 entry_border = | 549 entry_border = |
| 555 views::Border::CreateSolidSidedBorder(0, | 550 views::CreateSolidSidedBorder(0, 0, settings::kEntrySeparatorHeight, |
| 556 0, | 551 0, settings::kEntrySeparatorColor); |
| 557 settings::kEntrySeparatorHeight, | |
| 558 0, | |
| 559 settings::kEntrySeparatorColor); | |
| 560 } | 552 } |
| 561 entry->SetBorder(std::move(entry_border)); | 553 entry->SetBorder(std::move(entry_border)); |
| 562 entry->SetFocusBehavior(FocusBehavior::ALWAYS); | 554 entry->SetFocusBehavior(FocusBehavior::ALWAYS); |
| 563 contents_view->AddChildView(entry); | 555 contents_view->AddChildView(entry); |
| 564 buttons_.insert(button); | 556 buttons_.insert(button); |
| 565 } | 557 } |
| 566 | 558 |
| 567 scroller_->SetContents(contents_view); | 559 scroller_->SetContents(contents_view); |
| 568 | 560 |
| 569 contents_view->SetBoundsRect(gfx::Rect(contents_view->GetPreferredSize())); | 561 contents_view->SetBoundsRect(gfx::Rect(contents_view->GetPreferredSize())); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 634 provider_->SetNotifierEnabled((*iter)->notifier(), (*iter)->checked()); | 626 provider_->SetNotifierEnabled((*iter)->notifier(), (*iter)->checked()); |
| 635 } | 627 } |
| 636 | 628 |
| 637 void NotifierSettingsView::OnPerformAction(views::Combobox* combobox) { | 629 void NotifierSettingsView::OnPerformAction(views::Combobox* combobox) { |
| 638 provider_->SwitchToNotifierGroup(combobox->selected_index()); | 630 provider_->SwitchToNotifierGroup(combobox->selected_index()); |
| 639 MessageCenterView* center_view = static_cast<MessageCenterView*>(parent()); | 631 MessageCenterView* center_view = static_cast<MessageCenterView*>(parent()); |
| 640 center_view->OnSettingsChanged(); | 632 center_view->OnSettingsChanged(); |
| 641 } | 633 } |
| 642 | 634 |
| 643 } // namespace message_center | 635 } // namespace message_center |
| OLD | NEW |