// vi:ft=cpp /* * (c) 2010 Alexander Warg * economic rights: Technische Universität Dresden (Germany) * * This file is part of TUD:OS and distributed under the terms of the * GNU General Public License 2. * Please see the COPYING-GPL-2 file for details. */ #pragma once #include namespace Mag_gfx { class Clip_guard { private: Canvas *_c; Rect _o; Clip_guard(Clip_guard const &); void operator = (Clip_guard const &); public: Clip_guard() : _c(0), _o() {} Clip_guard(Canvas *canvas, Rect const &n) : _c(canvas), _o(_c->clip()) { _c->set_clipping(_o & n); } void init(Canvas *c, Rect const &n) { _c = c; _o = c->clip(); _c->set_clipping(_o & n); } ~Clip_guard() { _c->set_clipping(_o); } }; }