1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/status_icons/status_icon.h"
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/base/models/menu_model.h"
83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
93345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickStatusIcon::StatusIcon()
103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick{
113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
133345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickStatusIcon::~StatusIcon() {
143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid StatusIcon::AddObserver(Observer* observer) {
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  observers_.AddObserver(observer);
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid StatusIcon::RemoveObserver(Observer* observer) {
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  observers_.RemoveObserver(observer);
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickbool StatusIcon::HasObservers() {
253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  return observers_.size() > 0;
263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid StatusIcon::DispatchClickEvent() {
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  FOR_EACH_OBSERVER(Observer, observers_, OnClicked());
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick
3272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid StatusIcon::SetContextMenu(ui::MenuModel* menu) {
333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  context_menu_contents_.reset(menu);
343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  UpdatePlatformContextMenu(menu);
353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick}
36