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