blob: 4a260bf93c3622b78892628667e839c4d2a21632 [file] [log] [blame]
[email protected]3b287162013-10-01 03:19:291// Copyright 2013 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 UI_GFX_SCOPED_CANVAS_H_
6#define UI_GFX_SCOPED_CANVAS_H_
7
avic89eb8d42015-12-23 08:08:188#include "base/macros.h"
[email protected]3b287162013-10-01 03:19:299#include "ui/gfx/canvas.h"
10
11namespace gfx {
12
13// Saves the drawing state, and restores the state when going out of scope.
14class ScopedCanvas {
15 public:
16 explicit ScopedCanvas(gfx::Canvas* canvas) : canvas_(canvas) {
17 if (canvas_)
18 canvas_->Save();
19 }
20 ~ScopedCanvas() {
21 if (canvas_)
22 canvas_->Restore();
23 }
[email protected]3b287162013-10-01 03:19:2924
25 private:
26 gfx::Canvas* canvas_;
27
28 DISALLOW_COPY_AND_ASSIGN(ScopedCanvas);
29};
30
31} // namespace gfx
32
33#endif // UI_GFX_SCOPED_CANVAS_H_