Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Side by Side Diff: ui/message_center/notifier_settings.cc

Issue 12052057: Introduces 'context' param to NotifierSettingsView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix a compile error happened by a latest CL Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/notifier_settings.h" 5 #include "ui/message_center/notifier_settings.h"
6 6
7 #include "grit/ui_strings.h" 7 #include "grit/ui_strings.h"
8 #include "third_party/skia/include/core/SkColor.h" 8 #include "third_party/skia/include/core/SkColor.h"
9 #include "ui/base/l10n/l10n_util.h" 9 #include "ui/base/l10n/l10n_util.h"
10 #include "ui/gfx/size.h" 10 #include "ui/gfx/size.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 checkbox_(new views::Checkbox(string16())) { 43 checkbox_(new views::Checkbox(string16())) {
44 SetLayoutManager(new views::BoxLayout( 44 SetLayoutManager(new views::BoxLayout(
45 views::BoxLayout::kHorizontal, 0, 0, kSpaceInButtonComponents)); 45 views::BoxLayout::kHorizontal, 0, 0, kSpaceInButtonComponents));
46 checkbox_->SetChecked(notifier.enabled); 46 checkbox_->SetChecked(notifier.enabled);
47 checkbox_->set_listener(this); 47 checkbox_->set_listener(this);
48 AddChildView(checkbox_); 48 AddChildView(checkbox_);
49 UpdateIconImage(notifier_.icon); 49 UpdateIconImage(notifier_.icon);
50 AddChildView(new views::Label(notifier.name)); 50 AddChildView(new views::Label(notifier.name));
51 } 51 }
52 52
53 void UpdateIconImage(gfx::ImageSkia icon) { 53 void UpdateIconImage(const gfx::ImageSkia& icon) {
54 notifier_.icon = icon; 54 notifier_.icon = icon;
55 if (icon.isNull()) { 55 if (icon.isNull()) {
56 delete icon_view_; 56 delete icon_view_;
57 icon_view_ = NULL; 57 icon_view_ = NULL;
58 } else { 58 } else {
59 if (!icon_view_) { 59 if (!icon_view_) {
60 icon_view_ = new views::ImageView(); 60 icon_view_ = new views::ImageView();
61 AddChildViewAt(icon_view_, 1); 61 AddChildViewAt(icon_view_, 1);
62 } 62 }
63 icon_view_->SetImage(icon); 63 icon_view_->SetImage(icon);
64 icon_view_->SetImageSize(gfx::Size(kSettingsIconSize, kSettingsIconSize)); 64 icon_view_->SetImageSize(gfx::Size(kSettingsIconSize, kSettingsIconSize));
65 } 65 }
66 SchedulePaint(); 66 SchedulePaint();
67 } 67 }
68 68
69 void SetChecked(bool checked) { 69 void SetChecked(bool checked) {
70 checkbox_->SetChecked(checked); 70 checkbox_->SetChecked(checked);
71 notifier_.enabled = checked; 71 notifier_.enabled = checked;
72 } 72 }
73 73
74 bool checked() const { 74 bool checked() const {
75 return checkbox_->checked(); 75 return checkbox_->checked();
76 } 76 }
77 77
78 std::string id() const { 78 std::string id() const {
79 return notifier_.id; 79 return notifier_.id;
80 } 80 }
81 81
82 private: 82 private:
83 // views::ButtonListener overrides:
83 void ButtonPressed(views::Button* button, const ui::Event& event) { 84 void ButtonPressed(views::Button* button, const ui::Event& event) {
84 DCHECK(button == checkbox_); 85 DCHECK(button == checkbox_);
85 // The checkbox state has already changed at this point, but we'll update 86 // The checkbox state has already changed at this point, but we'll update
86 // the state on NotifierSettingsView::ButtonPressed() too, so here change 87 // the state on NotifierSettingsView::ButtonPressed() too, so here change
87 // back to the previous state. 88 // back to the previous state.
88 checkbox_->SetChecked(!checkbox_->checked()); 89 checkbox_->SetChecked(!checkbox_->checked());
89 CustomButton::NotifyClick(event); 90 CustomButton::NotifyClick(event);
90 } 91 }
91 92
92 NotifierSettingsView::Notifier notifier_; 93 NotifierSettingsView::Notifier notifier_;
93 views::ImageView* icon_view_; 94 views::ImageView* icon_view_;
94 views::Checkbox* checkbox_; 95 views::Checkbox* checkbox_;
95 96
96 DISALLOW_COPY_AND_ASSIGN(NotifierButton); 97 DISALLOW_COPY_AND_ASSIGN(NotifierButton);
97 }; 98 };
98 99
99 NotifierSettingsView::Notifier::Notifier( 100 NotifierSettingsView::Notifier::Notifier(
100 const std::string& id, 101 const std::string& id,
101 NotifierSettingsView::Notifier::NotifierType type, 102 NotifierSettingsView::Notifier::NotifierType type,
102 const string16& name) 103 const string16& name)
103 : id(id), 104 : id(id),
104 name(name), 105 name(name),
105 enabled(true), 106 enabled(true),
106 type(type) { 107 type(type) {
107 } 108 }
108 109
109 // static 110 // static
110 NotifierSettingsView* NotifierSettingsView::Create(Delegate* delegate) { 111 NotifierSettingsView* NotifierSettingsView::Create(Delegate* delegate,
112 gfx::NativeView context) {
111 NotifierSettingsView* view = new NotifierSettingsView(delegate); 113 NotifierSettingsView* view = new NotifierSettingsView(delegate);
112 views::Widget* widget = new views::Widget; 114 views::Widget* widget = new views::Widget;
113 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); 115 views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW);
114 params.delegate = view; 116 params.delegate = view;
117 params.context = context;
115 widget->Init(params); 118 widget->Init(params);
116 widget->Show(); 119 widget->Show();
117 120
118 return view; 121 return view;
119 } 122 }
120 123
121 void NotifierSettingsView::UpdateIconImage(const std::string& id, 124 void NotifierSettingsView::UpdateIconImage(const std::string& id,
122 const gfx::ImageSkia& icon) { 125 const gfx::ImageSkia& icon) {
123 for (std::set<NotifierButton*>::iterator iter = buttons_.begin(); 126 for (std::set<NotifierButton*>::iterator iter = buttons_.begin();
124 iter != buttons_.end(); ++iter) { 127 iter != buttons_.end(); ++iter) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 const ui::Event& event) { 183 const ui::Event& event) {
181 std::set<NotifierButton*>::iterator iter = buttons_.find( 184 std::set<NotifierButton*>::iterator iter = buttons_.find(
182 static_cast<NotifierButton*>(sender)); 185 static_cast<NotifierButton*>(sender));
183 DCHECK(iter != buttons_.end()); 186 DCHECK(iter != buttons_.end());
184 187
185 (*iter)->SetChecked(!(*iter)->checked()); 188 (*iter)->SetChecked(!(*iter)->checked());
186 delegate_->SetNotifierEnabled((*iter)->id(), (*iter)->checked()); 189 delegate_->SetNotifierEnabled((*iter)->id(), (*iter)->checked());
187 } 190 }
188 191
189 } // namespace message_center 192 } // namespace message_center
OLDNEW
« ui/message_center/message_center_bubble.cc ('K') | « ui/message_center/notifier_settings.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698