| Index: app/system_monitor_mac.mm
|
| ===================================================================
|
| --- app/system_monitor_mac.mm (revision 0)
|
| +++ app/system_monitor_mac.mm (revision 0)
|
| @@ -0,0 +1,67 @@
|
| +// 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 "app/system_monitor.h"
|
| +
|
| +#import <AppKit/AppKit.h>
|
| +
|
| +@interface SystemMonitorBridge : NSObject {
|
| + @private
|
| + SystemMonitor* systemMonitor_; // weak
|
| +}
|
| +
|
| +- (id)initWithSystemMonitor:(SystemMonitor*)monitor;
|
| +- (void)computerDidSleep:(NSNotification*)notification;
|
| +- (void)computerDidWake:(NSNotification*)notification;
|
| +
|
| +@end
|
| +
|
| +@implementation SystemMonitorBridge
|
| +
|
| +- (id)initWithSystemMonitor:(SystemMonitor*)monitor {
|
| + self = [super init];
|
| + if (self) {
|
| + systemMonitor_ = monitor;
|
| +
|
| + // See QA1340
|
| + // <http://developer.apple.com/library/mac/#qa/qa2004/qa1340.html> for more
|
| + // details.
|
| + [[[NSWorkspace sharedWorkspace] notificationCenter]
|
| + addObserver:self
|
| + selector:@selector(computerDidSleep:)
|
| + name:NSWorkspaceWillSleepNotification
|
| + object:nil];
|
| + [[[NSWorkspace sharedWorkspace] notificationCenter]
|
| + addObserver:self
|
| + selector:@selector(computerDidWake:)
|
| + name:NSWorkspaceDidWakeNotification
|
| + object:nil];
|
| + }
|
| + return self;
|
| +}
|
| +
|
| +- (void)dealloc {
|
| + [[[NSWorkspace sharedWorkspace] notificationCenter]
|
| + removeObserver:self];
|
| + [super dealloc];
|
| +}
|
| +
|
| +- (void)computerDidSleep:(NSNotification*)notification {
|
| + systemMonitor_->ProcessPowerMessage(SystemMonitor::SUSPEND_EVENT);
|
| +}
|
| +
|
| +- (void)computerDidWake:(NSNotification*)notification {
|
| + systemMonitor_->ProcessPowerMessage(SystemMonitor::RESUME_EVENT);
|
| +}
|
| +
|
| +@end
|
| +
|
| +void SystemMonitor::PlatformInit() {
|
| + system_monitor_bridge_ =
|
| + [[SystemMonitorBridge alloc] initWithSystemMonitor:this];
|
| +}
|
| +
|
| +void SystemMonitor::PlatformDestroy() {
|
| + [system_monitor_bridge_ release];
|
| +}
|
|
|
| Property changes on: app/system_monitor_mac.mm
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|