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

Side by Side Diff: ash/system/ime/tray_ime.cc

Issue 11415014: Stop using shell::GetInstance()->system_tray() in system tray items (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix single-letter typo :(. Created 8 years, 1 month 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
« no previous file with comments | « ash/system/ime/tray_ime.h ('k') | ash/system/locale/tray_locale.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "ash/system/ime/tray_ime.h" 5 #include "ash/system/ime/tray_ime.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/root_window_controller.h" 9 #include "ash/root_window_controller.h"
10 #include "ash/shell.h" 10 #include "ash/shell.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 } 57 }
58 58
59 private: 59 private:
60 DISALLOW_COPY_AND_ASSIGN(IMEDefaultView); 60 DISALLOW_COPY_AND_ASSIGN(IMEDefaultView);
61 }; 61 };
62 62
63 class IMEDetailedView : public TrayDetailsView, 63 class IMEDetailedView : public TrayDetailsView,
64 public ViewClickListener { 64 public ViewClickListener {
65 public: 65 public:
66 IMEDetailedView(SystemTrayItem* owner, user::LoginStatus login) 66 IMEDetailedView(SystemTrayItem* owner, user::LoginStatus login)
67 : login_(login) { 67 : TrayDetailsView(owner),
68 login_(login) {
68 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate(); 69 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate();
69 IMEInfoList list; 70 IMEInfoList list;
70 delegate->GetAvailableIMEList(&list); 71 delegate->GetAvailableIMEList(&list);
71 IMEPropertyInfoList property_list; 72 IMEPropertyInfoList property_list;
72 delegate->GetCurrentIMEProperties(&property_list); 73 delegate->GetCurrentIMEProperties(&property_list);
73 Update(list, property_list); 74 Update(list, property_list);
74 } 75 }
75 76
76 virtual ~IMEDetailedView() {} 77 virtual ~IMEDetailedView() {}
77 78
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 GetLocalizedString(IDS_ASH_STATUS_TRAY_IME_SETTINGS), 132 GetLocalizedString(IDS_ASH_STATUS_TRAY_IME_SETTINGS),
132 gfx::Font::NORMAL); 133 gfx::Font::NORMAL);
133 AddChildView(container); 134 AddChildView(container);
134 settings_ = container; 135 settings_ = container;
135 } 136 }
136 137
137 // Overridden from ViewClickListener. 138 // Overridden from ViewClickListener.
138 virtual void ClickedOn(views::View* sender) OVERRIDE { 139 virtual void ClickedOn(views::View* sender) OVERRIDE {
139 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate(); 140 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate();
140 if (sender == footer()->content()) { 141 if (sender == footer()->content()) {
141 Shell::GetInstance()->system_tray()->ShowDefaultView(BUBBLE_USE_EXISTING); 142 owner()->system_tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
142 } else if (sender == settings_) { 143 } else if (sender == settings_) {
143 delegate->ShowIMESettings(); 144 delegate->ShowIMESettings();
144 } else { 145 } else {
145 std::map<views::View*, std::string>::const_iterator ime_find; 146 std::map<views::View*, std::string>::const_iterator ime_find;
146 ime_find = ime_map_.find(sender); 147 ime_find = ime_map_.find(sender);
147 if (ime_find != ime_map_.end()) { 148 if (ime_find != ime_map_.end()) {
148 std::string ime_id = ime_find->second; 149 std::string ime_id = ime_find->second;
149 delegate->SwitchIME(ime_id); 150 delegate->SwitchIME(ime_id);
150 GetWidget()->Close(); 151 GetWidget()->Close();
151 } else { 152 } else {
(...skipping 12 matching lines...) Expand all
164 165
165 std::map<views::View*, std::string> ime_map_; 166 std::map<views::View*, std::string> ime_map_;
166 std::map<views::View*, std::string> property_map_; 167 std::map<views::View*, std::string> property_map_;
167 views::View* settings_; 168 views::View* settings_;
168 169
169 DISALLOW_COPY_AND_ASSIGN(IMEDetailedView); 170 DISALLOW_COPY_AND_ASSIGN(IMEDetailedView);
170 }; 171 };
171 172
172 class IMENotificationView : public TrayNotificationView { 173 class IMENotificationView : public TrayNotificationView {
173 public: 174 public:
174 explicit IMENotificationView(TrayIME* tray) 175 explicit IMENotificationView(TrayIME* owner)
175 : TrayNotificationView(tray, IDR_AURA_UBER_TRAY_IME) { 176 : TrayNotificationView(owner, IDR_AURA_UBER_TRAY_IME) {
176 InitView(GetLabel()); 177 InitView(GetLabel());
177 } 178 }
178 179
179 void UpdateLabel() { 180 void UpdateLabel() {
180 RestartAutoCloseTimer(); 181 RestartAutoCloseTimer();
181 UpdateView(GetLabel()); 182 UpdateView(GetLabel());
182 } 183 }
183 184
184 void StartAutoCloseTimer(int seconds) { 185 void StartAutoCloseTimer(int seconds) {
185 autoclose_.Stop(); 186 autoclose_.Stop();
186 autoclose_delay_ = seconds; 187 autoclose_delay_ = seconds;
187 if (autoclose_delay_) { 188 if (autoclose_delay_) {
188 autoclose_.Start(FROM_HERE, 189 autoclose_.Start(FROM_HERE,
189 base::TimeDelta::FromSeconds(autoclose_delay_), 190 base::TimeDelta::FromSeconds(autoclose_delay_),
190 this, &IMENotificationView::Close); 191 this, &IMENotificationView::Close);
191 } 192 }
192 } 193 }
193 194
194 void StopAutoCloseTimer() { 195 void StopAutoCloseTimer() {
195 autoclose_.Stop(); 196 autoclose_.Stop();
196 } 197 }
197 198
198 void RestartAutoCloseTimer() { 199 void RestartAutoCloseTimer() {
199 if (autoclose_delay_) 200 if (autoclose_delay_)
200 StartAutoCloseTimer(autoclose_delay_); 201 StartAutoCloseTimer(autoclose_delay_);
201 } 202 }
202 203
203 // Overridden from TrayNotificationView. 204 // Overridden from TrayNotificationView.
204 virtual void OnClickAction() OVERRIDE { 205 virtual void OnClickAction() OVERRIDE {
205 tray()->PopupDetailedView(0, true); 206 owner()->PopupDetailedView(0, true);
206 } 207 }
207 208
208 private: 209 private:
209 void Close() { 210 void Close() {
210 tray()->HideNotificationView(); 211 owner()->HideNotificationView();
211 } 212 }
212 213
213 views::Label* GetLabel() { 214 views::Label* GetLabel() {
214 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate(); 215 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate();
215 IMEInfo current; 216 IMEInfo current;
216 delegate->GetCurrentIME(&current); 217 delegate->GetCurrentIME(&current);
217 218
218 // TODO(zork): Use IDS_ASH_STATUS_TRAY_THIRD_PARTY_IME_TURNED_ON_BUBBLE for 219 // TODO(zork): Use IDS_ASH_STATUS_TRAY_THIRD_PARTY_IME_TURNED_ON_BUBBLE for
219 // third party IMEs 220 // third party IMEs
220 views::Label* label = new views::Label( 221 views::Label* label = new views::Label(
221 l10n_util::GetStringFUTF16( 222 l10n_util::GetStringFUTF16(
222 IDS_ASH_STATUS_TRAY_IME_TURNED_ON_BUBBLE, 223 IDS_ASH_STATUS_TRAY_IME_TURNED_ON_BUBBLE,
223 current.medium_name)); 224 current.medium_name));
224 label->SetMultiLine(true); 225 label->SetMultiLine(true);
225 label->SetHorizontalAlignment(gfx::ALIGN_LEFT); 226 label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
226 return label; 227 return label;
227 } 228 }
228 229
229 230
230 int autoclose_delay_; 231 int autoclose_delay_;
231 base::OneShotTimer<IMENotificationView> autoclose_; 232 base::OneShotTimer<IMENotificationView> autoclose_;
232 233
233 DISALLOW_COPY_AND_ASSIGN(IMENotificationView); 234 DISALLOW_COPY_AND_ASSIGN(IMENotificationView);
234 }; 235 };
235 236
236 237
237 } // namespace tray 238 } // namespace tray
238 239
239 TrayIME::TrayIME() 240 TrayIME::TrayIME(SystemTray* system_tray)
240 : tray_label_(NULL), 241 : SystemTrayItem(system_tray),
242 tray_label_(NULL),
241 default_(NULL), 243 default_(NULL),
242 detailed_(NULL), 244 detailed_(NULL),
243 notification_(NULL), 245 notification_(NULL),
244 message_shown_(false) { 246 message_shown_(false) {
245 } 247 }
246 248
247 TrayIME::~TrayIME() { 249 TrayIME::~TrayIME() {
248 } 250 }
249 251
250 void TrayIME::UpdateTrayLabel(const IMEInfo& current, size_t count) { 252 void TrayIME::UpdateTrayLabel(const IMEInfo& current, size_t count) {
251 if (tray_label_) { 253 if (tray_label_) {
252 if (current.third_party) { 254 if (current.third_party) {
253 tray_label_->label()->SetText(current.short_name + UTF8ToUTF16("*")); 255 tray_label_->label()->SetText(current.short_name + UTF8ToUTF16("*"));
254 } else { 256 } else {
255 tray_label_->label()->SetText(current.short_name); 257 tray_label_->label()->SetText(current.short_name);
256 } 258 }
257 tray_label_->SetVisible(count > 1); 259 tray_label_->SetVisible(count > 1);
258 SetTrayLabelItemBorder(tray_label_, 260 SetTrayLabelItemBorder(tray_label_, system_tray()->shelf_alignment());
259 ash::Shell::GetInstance()->system_tray()->shelf_alignment());
260 tray_label_->Layout(); 261 tray_label_->Layout();
261 } 262 }
262 } 263 }
263 264
264 views::View* TrayIME::CreateTrayView(user::LoginStatus status) { 265 views::View* TrayIME::CreateTrayView(user::LoginStatus status) {
265 CHECK(tray_label_ == NULL); 266 CHECK(tray_label_ == NULL);
266 tray_label_ = new TrayItemView; 267 tray_label_ = new TrayItemView(this);
267 tray_label_->CreateLabel(); 268 tray_label_->CreateLabel();
268 SetupLabelForTray(tray_label_->label()); 269 SetupLabelForTray(tray_label_->label());
269 return tray_label_; 270 return tray_label_;
270 } 271 }
271 272
272 views::View* TrayIME::CreateDefaultView(user::LoginStatus status) { 273 views::View* TrayIME::CreateDefaultView(user::LoginStatus status) {
273 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate(); 274 SystemTrayDelegate* delegate = Shell::GetInstance()->tray_delegate();
274 IMEInfoList list; 275 IMEInfoList list;
275 IMEPropertyInfoList property_list; 276 IMEPropertyInfoList property_list;
276 delegate->GetAvailableIMEList(&list); 277 delegate->GetAvailableIMEList(&list);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 } else if (!Shell::GetPrimaryRootWindowController()->shelf()->IsVisible() || 343 } else if (!Shell::GetPrimaryRootWindowController()->shelf()->IsVisible() ||
343 !message_shown_) { 344 !message_shown_) {
344 ShowNotificationView(); 345 ShowNotificationView();
345 message_shown_ = true; 346 message_shown_ = true;
346 } 347 }
347 } 348 }
348 } 349 }
349 350
350 } // namespace internal 351 } // namespace internal
351 } // namespace ash 352 } // namespace ash
OLDNEW
« no previous file with comments | « ash/system/ime/tray_ime.h ('k') | ash/system/locale/tray_locale.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698