X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Floadcanvas.h;h=888e1d70077a0e8fd3cb634f488ca20d9375e97e;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=3432e3bdf00ca2e90d45ce0d0df350b12a9dc6c9;hpb=28f28705612902c15cd0702cc891fba35bf2d2df;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/loadcanvas.h b/synfig-core/trunk/src/synfig/loadcanvas.h index 3432e3b..888e1d7 100644 --- a/synfig-core/trunk/src/synfig/loadcanvas.h +++ b/synfig-core/trunk/src/synfig/loadcanvas.h @@ -2,19 +2,22 @@ /*! \file loadcanvas.h ** \brief writeme ** -** $Id: loadcanvas.h,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 Chris Moore +** Copyright (c) 2009 Carlos A. Sosa Navarro ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** 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. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** 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 */ /* ========================================================================= */ @@ -34,11 +37,7 @@ #include "valuenode_subtract.h" #include "valuenode_animated.h" #include "valuenode_composite.h" -#include "valuenode_const.h" -#include "valuenode_linear.h" #include "valuenode_dynamiclist.h" -#include "valuenode_reference.h" -#include "valuenode_timedswap.h" #include "keyframe.h" #include "guid.h" @@ -75,6 +74,9 @@ private: String path; + String errors_text; + String warnings_text; + GUID guid_; /* @@ -114,14 +116,21 @@ public: void set_path(const synfig::String& x) { path=x; } const synfig::String& get_path()const { return path; } - - //! \todo writeme - Canvas::Handle parse_from_file(const String &filename); - Canvas::Handle parse_from_file_as(const String &filename,const String &as); + const synfig::String& get_errors_text()const { return errors_text; } + const synfig::String& get_warnings_text()const { return warnings_text; } + + static void register_canvas_in_map(Canvas::Handle canvas, String as); + +#ifdef _DEBUG + static void show_canvas_map(String file, int line, String text); +#endif // _DEBUG //! \todo writeme - Canvas::Handle parse_from_string(const String &data); + Canvas::Handle parse_from_file_as(const String &filename,const String &as,String &errors); + Canvas::Handle parse_as(xmlpp::Element* node,String &errors); + + static std::set loading_; private: @@ -143,18 +152,18 @@ private: // ValueBase Parsing Functions - Real parse_real(xmlpp::Element *node,Canvas::Handle canvas); + Real parse_real(xmlpp::Element *node); Time parse_time(xmlpp::Element *node,Canvas::Handle canvas); - int parse_integer(xmlpp::Element *node,Canvas::Handle canvas); - Vector parse_vector(xmlpp::Element *node,Canvas::Handle canvas); - Color parse_color(xmlpp::Element *node,Canvas::Handle canvas); - Angle parse_angle(xmlpp::Element *node,Canvas::Handle canvas); - String parse_string(xmlpp::Element *node,Canvas::Handle canvas); - bool parse_bool(xmlpp::Element *node,Canvas::Handle canvas); - Segment parse_segment(xmlpp::Element *node,Canvas::Handle canvas); + int parse_integer(xmlpp::Element *node); + Vector parse_vector(xmlpp::Element *node); + Color parse_color(xmlpp::Element *node); + Angle parse_angle(xmlpp::Element *node); + String parse_string(xmlpp::Element *node); + bool parse_bool(xmlpp::Element *node); + Segment parse_segment(xmlpp::Element *node); ValueBase parse_list(xmlpp::Element *node,Canvas::Handle canvas); - Gradient parse_gradient(xmlpp::Element *node,Canvas::Handle canvas); - BLinePoint parse_bline_point(xmlpp::Element *node,Canvas::Handle canvas); + Gradient parse_gradient(xmlpp::Element *node); + BLinePoint parse_bline_point(xmlpp::Element *node); Keyframe parse_keyframe(xmlpp::Element *node,Canvas::Handle canvas); @@ -162,9 +171,7 @@ private: etl::handle parse_animated(xmlpp::Element *node,Canvas::Handle canvas); etl::handle parse_subtract(xmlpp::Element *node,Canvas::Handle canvas); - etl::handle parse_timedswap(xmlpp::Element *node,Canvas::Handle canvas); etl::handle parse_linkable_value_node(xmlpp::Element *node,Canvas::Handle canvas); - etl::handle parse_composite(xmlpp::Element *node,Canvas::Handle canvas); etl::handle parse_dynamic_list(xmlpp::Element *node,Canvas::Handle canvas); }; // END of CanvasParser @@ -173,11 +180,9 @@ private: //! Loads a canvas from \a filename /*! \return The Canvas's handle on success, an empty handle on failure */ -extern Canvas::Handle open_canvas(const String &filename); -extern Canvas::Handle open_canvas_as(const String &filename,const String &as); - -//! Retrieves a Canvas from a string in XML format -extern Canvas::Handle string_to_canvas(const String &data); +extern Canvas::Handle open_canvas(xmlpp::Element* node,String &errors,String &warnings); +extern Canvas::Handle open_canvas(const String &filename,String &errors,String &warnings); +extern Canvas::Handle open_canvas_as(const String &filename,const String &as,String &errors,String &warnings); std::map >& get_open_canvas_map();