X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Flayer_pastecanvas.h;fp=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Flayer_pastecanvas.h;h=0000000000000000000000000000000000000000;hb=a095981e18cc37a8ecc7cd237cc22b9c10329264;hp=2d4714cb9b5abfdf36c1facc91ea232772217657;hpb=9459638ad6797b8139f1e9f0715c96076dbf0890;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/layer_pastecanvas.h b/synfig-core/trunk/src/synfig/layer_pastecanvas.h deleted file mode 100644 index 2d4714c..0000000 --- a/synfig-core/trunk/src/synfig/layer_pastecanvas.h +++ /dev/null @@ -1,165 +0,0 @@ -/* === S Y N F I G ========================================================= */ -/*! \file layer_pastecanvas.h -** \brief Header file for implementation of the "Paste Canvas" layer -** -** $Id$ -** -** \legal -** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007, 2008 Chris Moore -** -** This package is free software; you can redistribute it and/or -** modify it under the terms of the GNU General Public License as -** published by the Free Software Foundation; either version 2 of -** the License, or (at your option) any later version. -** -** This package is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -** General Public License for more details. -** \endlegal -*/ -/* ========================================================================= */ - -/* === S T A R T =========================================================== */ - -#ifndef __SYNFIG_LAYER_PASTEIMAGE_H -#define __SYNFIG_LAYER_PASTEIMAGE_H - -/* === H E A D E R S ======================================================= */ - -#include "layer_composite.h" -#include "color.h" -#include "vector.h" -#include "real.h" -#include "time.h" -#include "canvasbase.h" -#include "canvas.h" -#include "rect.h" - -/* === M A C R O S ========================================================= */ - -/* === T Y P E D E F S ===================================================== */ - -/* === C L A S S E S & S T R U C T S ======================================= */ - -namespace synfig { - -class Layer_PasteCanvas : public Layer_Composite, public Layer_NoDeform -{ - SYNFIG_LAYER_MODULE_EXT -private: - - Vector origin; - Vector focus; - - etl::loose_handle canvas; - - //! Recursion depth counter - mutable int depth; - - Real zoom; - - Time time_offset; - - mutable Time curr_time; - - bool muck_with_time_; - - bool children_lock; - - mutable Rect bounds; - - sigc::connection child_changed_connection; - - // Nasty hack: Remember whether we called an extra ref() when - // setting the canvas, so we know whether to call an extra unref() - // when finished with the canvas. - // - // Here's the story: - // - // The root canvas is destructed first. That sets the - // Layer::canvas_ (the parent canvas) of any PasteCanvas layer it - // contains to nil, due to a call to Layer::set_canvas(0), - // triggered by the connection made when Layer::set_canvas - // originally set its canvas_ member to point to the root canvas. - // ~Canvas does begin_delete() which triggers that connection. - // - // After ~Canvas has run, the members of the root canvas are - // freed, including its children_ list. If this was the last - // reference to the child canvas that the pastecanvas uses, that - // child canvas will Layer_PasteCanvas::set_sub_canvas(0) on the - // PasteCanvas layer to set its canvas (the child, pasted canvas) - // not to refer to the soon-to-be destroys child canvas. But - // set_sub_canvas() originally looked at the value of - // Layer::canvas_ (the parent canvas, obtained via - // Layer::get_canvas()) to decide whether to do an extra ref() on - // canvas (the child canvas). We need to unref() it now if we - // did, but we've forgotten whether we did. So we use this - // 'extra_reference' member to store that decision. - bool extra_reference; - - /* - -- ** -- S I G N A L S ------------------------------------------------------- - */ - -private: - - sigc::signal signal_subcanvas_changed_; - - /* - -- ** -- S I G N A L I N T E R F A C E ------------------------------------- - */ - -public: - - sigc::signal& signal_subcanvas_changed() { return signal_subcanvas_changed_; } - -public: - - void update_renddesc(); - - virtual void on_canvas_set(); - - void set_muck_with_time(bool x=false) { muck_with_time_=x; } - - etl::handle get_sub_canvas()const { return canvas; } - void set_sub_canvas(etl::handle x); - - Real get_zoom()const { return zoom; } - - Time get_time_offset()const { return time_offset; } - - Point get_origin()const { return origin; } - - Layer_PasteCanvas(); - virtual ~Layer_PasteCanvas(); - - virtual String get_local_name()const; - - virtual bool set_param(const String & param, const synfig::ValueBase &value); - - virtual ValueBase get_param(const String & param)const; - - virtual Color get_color(Context context, const Point &pos)const; - - virtual void set_time(Context context, Time time)const; - - virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; - - virtual Vocab get_param_vocab()const; - - virtual synfig::Rect get_bounding_rect()const; - - virtual synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; - -protected: - virtual void get_times_vfunc(Node::time_set &set) const; - -}; // END of class Layer_PasteCanvas - -}; // END of namespace synfig - -/* === E N D =============================================================== */ - -#endif