summaryrefslogtreecommitdiffstats
path: root/chrome/browser/status_icons/status_icon.cc
blob: 85fd17515baccb3b5025688a24b4207a437343d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include <algorithm>

#include "chrome/browser/status_icons/status_icon.h"

void StatusIcon::AddObserver(StatusIconObserver* observer) {
  observers_.push_back(observer);
}

void StatusIcon::RemoveObserver(StatusIconObserver* observer) {
  std::vector<StatusIconObserver*>::iterator iter =
      std::find(observers_.begin(), observers_.end(), observer);
  if (iter != observers_.end())
    observers_.erase(iter);
}

void StatusIcon::DispatchClickEvent() {
  // Walk observers, call callback for each one.
  for (std::vector<StatusIconObserver*>::const_iterator iter =
           observers_.begin();
       iter != observers_.end();
       ++iter) {
    StatusIconObserver* observer = *iter;
    observer->OnClicked();
  }
}