| 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 <set> | 7 #include <set> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 learn_more_(NULL) { | 299 learn_more_(NULL) { |
| 300 DCHECK(provider); | 300 DCHECK(provider); |
| 301 DCHECK(notifier); | 301 DCHECK(notifier); |
| 302 | 302 |
| 303 // Since there may never be an icon (but that could change at a later time), | 303 // Since there may never be an icon (but that could change at a later time), |
| 304 // we own the icon view here. | 304 // we own the icon view here. |
| 305 icon_view_->set_owned_by_client(); | 305 icon_view_->set_owned_by_client(); |
| 306 | 306 |
| 307 checkbox_->SetChecked(notifier_->enabled); | 307 checkbox_->SetChecked(notifier_->enabled); |
| 308 checkbox_->set_listener(this); | 308 checkbox_->set_listener(this); |
| 309 checkbox_->set_focusable(false); | 309 checkbox_->SetFocusable(false); |
| 310 checkbox_->SetAccessibleName(notifier_->name); | 310 checkbox_->SetAccessibleName(notifier_->name); |
| 311 | 311 |
| 312 if (ShouldHaveLearnMoreButton()) { | 312 if (ShouldHaveLearnMoreButton()) { |
| 313 // Create a more-info button that will be right-aligned. | 313 // Create a more-info button that will be right-aligned. |
| 314 learn_more_ = new views::ImageButton(this); | 314 learn_more_ = new views::ImageButton(this); |
| 315 learn_more_->SetFocusPainter(CreateFocusPainter()); | 315 learn_more_->SetFocusPainter(CreateFocusPainter()); |
| 316 learn_more_->set_request_focus_on_press(false); | 316 learn_more_->set_request_focus_on_press(false); |
| 317 learn_more_->set_focusable(true); | 317 learn_more_->SetFocusable(true); |
| 318 | 318 |
| 319 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 319 ui::ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 320 learn_more_->SetImage( | 320 learn_more_->SetImage( |
| 321 views::Button::STATE_NORMAL, | 321 views::Button::STATE_NORMAL, |
| 322 rb.GetImageSkiaNamed(IDR_NOTIFICATION_ADVANCED_SETTINGS)); | 322 rb.GetImageSkiaNamed(IDR_NOTIFICATION_ADVANCED_SETTINGS)); |
| 323 learn_more_->SetImage( | 323 learn_more_->SetImage( |
| 324 views::Button::STATE_HOVERED, | 324 views::Button::STATE_HOVERED, |
| 325 rb.GetImageSkiaNamed(IDR_NOTIFICATION_ADVANCED_SETTINGS_HOVER)); | 325 rb.GetImageSkiaNamed(IDR_NOTIFICATION_ADVANCED_SETTINGS_HOVER)); |
| 326 learn_more_->SetImage( | 326 learn_more_->SetImage( |
| 327 views::Button::STATE_PRESSED, | 327 views::Button::STATE_PRESSED, |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 NotifierSettingsView::NotifierSettingsView(NotifierSettingsProvider* provider) | 476 NotifierSettingsView::NotifierSettingsView(NotifierSettingsProvider* provider) |
| 477 : title_arrow_(NULL), | 477 : title_arrow_(NULL), |
| 478 title_label_(NULL), | 478 title_label_(NULL), |
| 479 notifier_group_selector_(NULL), | 479 notifier_group_selector_(NULL), |
| 480 scroller_(NULL), | 480 scroller_(NULL), |
| 481 provider_(provider) { | 481 provider_(provider) { |
| 482 // |provider_| may be NULL in tests. | 482 // |provider_| may be NULL in tests. |
| 483 if (provider_) | 483 if (provider_) |
| 484 provider_->AddObserver(this); | 484 provider_->AddObserver(this); |
| 485 | 485 |
| 486 set_focusable(true); | 486 SetFocusable(true); |
| 487 set_background( | 487 set_background( |
| 488 views::Background::CreateSolidBackground(kMessageCenterBackgroundColor)); | 488 views::Background::CreateSolidBackground(kMessageCenterBackgroundColor)); |
| 489 if (get_use_acceleration_when_possible()) | 489 if (get_use_acceleration_when_possible()) |
| 490 SetPaintToLayer(true); | 490 SetPaintToLayer(true); |
| 491 | 491 |
| 492 gfx::Font title_font = | 492 gfx::Font title_font = |
| 493 ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::MediumFont); | 493 ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::MediumFont); |
| 494 title_label_ = new views::Label( | 494 title_label_ = new views::Label( |
| 495 l10n_util::GetStringUTF16(IDS_MESSAGE_CENTER_SETTINGS_BUTTON_LABEL), | 495 l10n_util::GetStringUTF16(IDS_MESSAGE_CENTER_SETTINGS_BUTTON_LABEL), |
| 496 title_font); | 496 title_font); |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 selector_border->set_hot_painter(views::Painter::CreateImagePainter( | 594 selector_border->set_hot_painter(views::Painter::CreateImagePainter( |
| 595 *rb->GetImageSkiaNamed(IDR_BUTTON_HOVER), painter_insets)); | 595 *rb->GetImageSkiaNamed(IDR_BUTTON_HOVER), painter_insets)); |
| 596 selector_border->set_pushed_painter(views::Painter::CreateImagePainter( | 596 selector_border->set_pushed_painter(views::Painter::CreateImagePainter( |
| 597 *rb->GetImageSkiaNamed(IDR_BUTTON_PRESSED), painter_insets)); | 597 *rb->GetImageSkiaNamed(IDR_BUTTON_PRESSED), painter_insets)); |
| 598 selector_border->SetInsets(gfx::Insets( | 598 selector_border->SetInsets(gfx::Insets( |
| 599 kMenuButtonVerticalPadding, kMenuButtonLeftPadding, | 599 kMenuButtonVerticalPadding, kMenuButtonLeftPadding, |
| 600 kMenuButtonVerticalPadding, kMenuButtonRightPadding)); | 600 kMenuButtonVerticalPadding, kMenuButtonRightPadding)); |
| 601 notifier_group_selector_->set_border(selector_border.release()); | 601 notifier_group_selector_->set_border(selector_border.release()); |
| 602 notifier_group_selector_->SetFocusPainter(scoped_ptr<views::Painter>()); | 602 notifier_group_selector_->SetFocusPainter(scoped_ptr<views::Painter>()); |
| 603 notifier_group_selector_->set_animate_on_state_change(false); | 603 notifier_group_selector_->set_animate_on_state_change(false); |
| 604 notifier_group_selector_->set_focusable(true); | 604 notifier_group_selector_->SetFocusable(true); |
| 605 contents_title_view->AddChildView(notifier_group_selector_); | 605 contents_title_view->AddChildView(notifier_group_selector_); |
| 606 } | 606 } |
| 607 | 607 |
| 608 contents_view->AddChildView(contents_title_view); | 608 contents_view->AddChildView(contents_title_view); |
| 609 | 609 |
| 610 size_t notifier_count = notifiers.size(); | 610 size_t notifier_count = notifiers.size(); |
| 611 for (size_t i = 0; i < notifier_count; ++i) { | 611 for (size_t i = 0; i < notifier_count; ++i) { |
| 612 NotifierButton* button = new NotifierButton(provider_, notifiers[i], this); | 612 NotifierButton* button = new NotifierButton(provider_, notifiers[i], this); |
| 613 EntryView* entry = new EntryView(button); | 613 EntryView* entry = new EntryView(button); |
| 614 | 614 |
| 615 // This code emulates separators using borders. We will create an invisible | 615 // This code emulates separators using borders. We will create an invisible |
| 616 // border on the last notifier, as the spec leaves a space for it. | 616 // border on the last notifier, as the spec leaves a space for it. |
| 617 scoped_ptr<views::Border> entry_border; | 617 scoped_ptr<views::Border> entry_border; |
| 618 if (i == notifier_count - 1) { | 618 if (i == notifier_count - 1) { |
| 619 entry_border.reset(views::Border::CreateEmptyBorder( | 619 entry_border.reset(views::Border::CreateEmptyBorder( |
| 620 0, 0, settings::kEntrySeparatorHeight, 0)); | 620 0, 0, settings::kEntrySeparatorHeight, 0)); |
| 621 } else { | 621 } else { |
| 622 entry_border.reset(views::Border::CreateSolidSidedBorder( | 622 entry_border.reset(views::Border::CreateSolidSidedBorder( |
| 623 0, | 623 0, |
| 624 0, | 624 0, |
| 625 settings::kEntrySeparatorHeight, | 625 settings::kEntrySeparatorHeight, |
| 626 0, | 626 0, |
| 627 settings::kEntrySeparatorColor)); | 627 settings::kEntrySeparatorColor)); |
| 628 } | 628 } |
| 629 entry->set_border(entry_border.release()); | 629 entry->set_border(entry_border.release()); |
| 630 entry->set_focusable(true); | 630 entry->SetFocusable(true); |
| 631 contents_view->AddChildView(entry); | 631 contents_view->AddChildView(entry); |
| 632 buttons_.insert(button); | 632 buttons_.insert(button); |
| 633 } | 633 } |
| 634 | 634 |
| 635 scroller_->SetContents(contents_view); | 635 scroller_->SetContents(contents_view); |
| 636 | 636 |
| 637 contents_view->SetBoundsRect(gfx::Rect(contents_view->GetPreferredSize())); | 637 contents_view->SetBoundsRect(gfx::Rect(contents_view->GetPreferredSize())); |
| 638 InvalidateLayout(); | 638 InvalidateLayout(); |
| 639 } | 639 } |
| 640 | 640 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 719 menu_anchor, | 719 menu_anchor, |
| 720 views::MenuItemView::BUBBLE_ABOVE, | 720 views::MenuItemView::BUBBLE_ABOVE, |
| 721 ui::MENU_SOURCE_MOUSE, | 721 ui::MENU_SOURCE_MOUSE, |
| 722 views::MenuRunner::CONTEXT_MENU)) | 722 views::MenuRunner::CONTEXT_MENU)) |
| 723 return; | 723 return; |
| 724 MessageCenterView* center_view = static_cast<MessageCenterView*>(parent()); | 724 MessageCenterView* center_view = static_cast<MessageCenterView*>(parent()); |
| 725 center_view->OnSettingsChanged(); | 725 center_view->OnSettingsChanged(); |
| 726 } | 726 } |
| 727 | 727 |
| 728 } // namespace message_center | 728 } // namespace message_center |
| OLD | NEW |