1// Copyright 2014 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 "content/browser/time_zone_monitor.h"
6
7#include <windows.h>
8
9#include "base/basictypes.h"
10#include "ui/gfx/win/singleton_hwnd.h"
11
12namespace content {
13
14class TimeZoneMonitorWin : public TimeZoneMonitor,
15                           public gfx::SingletonHwnd::Observer {
16 public:
17  TimeZoneMonitorWin() : TimeZoneMonitor() {
18    gfx::SingletonHwnd::GetInstance()->AddObserver(this);
19  }
20
21  virtual ~TimeZoneMonitorWin() {
22    gfx::SingletonHwnd::GetInstance()->RemoveObserver(this);
23  }
24
25  // gfx::SingletonHwnd::Observer implementation.
26  virtual void OnWndProc(HWND hwnd,
27                         UINT message,
28                         WPARAM wparam,
29                         LPARAM lparam) OVERRIDE {
30    if (message != WM_TIMECHANGE) {
31      return;
32    }
33
34    NotifyRenderers();
35  }
36
37 private:
38  DISALLOW_COPY_AND_ASSIGN(TimeZoneMonitorWin);
39};
40
41// static
42scoped_ptr<TimeZoneMonitor> TimeZoneMonitor::Create() {
43  return scoped_ptr<TimeZoneMonitor>(new TimeZoneMonitorWin());
44}
45
46}  // namespace content
47