Index: views/paint_lock.h |
diff --git a/views/paint_lock.h b/views/paint_lock.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7a6f9bb9979046a6ac34d864a3581202828cd665 |
--- /dev/null |
+++ b/views/paint_lock.h |
@@ -0,0 +1,35 @@ |
+// 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 VIEWS_PAINT_LOCK_H_ |
+#define VIEWS_PAINT_LOCK_H_ |
+#pragma once |
+ |
+#include "base/basictypes.h" |
+ |
+namespace views { |
+ |
+class View; |
+ |
+// Instances of PaintLock can be created to disable painting of the view |
+// (compositing is not disabled). When the class is destroyed, painting is |
+// re-enabled. This can be useful during operations like animations, that are |
+// sensitive to costly paints, and during which only composting, not painting, |
+// is required. |
+class PaintLock { |
+ public: |
+ // The paint lock does not own the view. It is an error for the view to be |
+ // destroyed before the lock. |
+ PaintLock(View* view); |
+ ~PaintLock(); |
+ |
+ private: |
+ View* view_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(PaintLock); |
+}; |
+ |
+} // namespace views |
+ |
+#endif // VIEWS_PAINT_LOCK_H_ |