1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/ui/panels/panel_mouse_watcher.h"
6
7#include "chrome/browser/ui/panels/panel_mouse_watcher_observer.h"
8#include "ui/gfx/point.h"
9
10PanelMouseWatcher::PanelMouseWatcher() {
11}
12
13PanelMouseWatcher::~PanelMouseWatcher() {
14}
15
16void PanelMouseWatcher::AddObserver(PanelMouseWatcherObserver* observer) {
17  bool already_started = observers_.might_have_observers();
18  observers_.AddObserver(observer);
19  if (!already_started)
20    Start();
21}
22
23void PanelMouseWatcher::RemoveObserver(PanelMouseWatcherObserver* observer) {
24  DCHECK(observers_.HasObserver(observer));
25  observers_.RemoveObserver(observer);
26  if (!observers_.might_have_observers())
27    Stop();
28}
29
30void PanelMouseWatcher::NotifyMouseMovement(const gfx::Point& mouse_position) {
31  FOR_EACH_OBSERVER(PanelMouseWatcherObserver, observers_,
32                    OnMouseMove(mouse_position));
33}
34