• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2009 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 #ifndef BASE_SCOPED_NSDISABLE_SCREEN_UPDATES_H_
6 #define BASE_SCOPED_NSDISABLE_SCREEN_UPDATES_H_
7 
8 #import <Cocoa/Cocoa.h>
9 
10 #include "base/basictypes.h"
11 
12 namespace base {
13 
14 // A stack-based class to disable Cocoa screen updates. When instantiated, it
15 // disables screen updates and enables them when destroyed. Update disabling
16 // can be nested, and there is a time-maximum (about 1 second) after which
17 // Cocoa will automatically re-enable updating. This class doesn't attempt to
18 // overrule that.
19 
20 class ScopedNSDisableScreenUpdates {
21  public:
ScopedNSDisableScreenUpdates()22   ScopedNSDisableScreenUpdates() {
23     NSDisableScreenUpdates();
24   }
~ScopedNSDisableScreenUpdates()25   ~ScopedNSDisableScreenUpdates() {
26     NSEnableScreenUpdates();
27   }
28 
29  private:
30   DISALLOW_COPY_AND_ASSIGN(ScopedNSDisableScreenUpdates);
31 };
32 
33 }  // namespace
34 
35 #endif  // BASE_SCOPED_NSDISABLE_SCREEN_UPDATES_H_
36