blob: 407300b8497f33447016a83f3fb0ef3a5c3f8b06 [file] [log] [blame]
// Copyright (c) 2010 The Chromium OS 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 THEME_SCOPED_PATH_H_
#define THEME_SCOPED_PATH_H_
#include <cairo.h>
namespace theme {
// ScopedPath releases cairo_path_t it manages when it goes out of scope.
class ScopedPath {
public:
ScopedPath() : path_(NULL) {}
explicit ScopedPath(cairo_path_t* path) : path_(path) {}
~ScopedPath() {
if (path_)
cairo_path_destroy(path_);
}
void reset(cairo_path_t* path) {
if (path == path_)
return;
if (path_)
cairo_path_destroy(path_);
path_ = path;
}
cairo_path_t* get() { return path_; }
private:
cairo_path_t* path_;
// DISALLOW_COPY_AND_ASSIGN
void operator=(const ScopedPath& cr);
ScopedPath(const ScopedPath& cr);
};
} // namespace theme
#endif // THEME_SCOPED_PATH_H_