// Copyright (c) 2011 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.

#ifndef UI_GFX_MAC_SCOPED_COCOA_DISABLE_SCREEN_UPDATES_H_
#define UI_GFX_MAC_SCOPED_COCOA_DISABLE_SCREEN_UPDATES_H_

#include "base/macros.h"
#include "ui/gfx/gfx_export.h"

namespace gfx {

// A stack-based class to disable Cocoa screen updates. When instantiated, it
// disables screen updates and enables them when destroyed. Update disabling
// can be nested, and there is a time-maximum (about 1 second) after which
// Cocoa will automatically re-enable updating. This class doesn't attempt to
// overrule that.
class GFX_EXPORT ScopedCocoaDisableScreenUpdates {
 public:
  ScopedCocoaDisableScreenUpdates();

  ScopedCocoaDisableScreenUpdates(const ScopedCocoaDisableScreenUpdates&) =
      delete;
  ScopedCocoaDisableScreenUpdates& operator=(
      const ScopedCocoaDisableScreenUpdates&) = delete;

  ~ScopedCocoaDisableScreenUpdates();
};

}  // namespace gfx

#endif  // UI_GFX_MAC_SCOPED_COCOA_DISABLE_SCREEN_UPDATES_H_
