Remove ancient trunk folder from svn repository
[synfig.git] / synfig-studio / src / synfigapp / main.h
diff --git a/synfig-studio/src/synfigapp/main.h b/synfig-studio/src/synfigapp/main.h
new file mode 100644 (file)
index 0000000..cc33ef8
--- /dev/null
@@ -0,0 +1,113 @@
+/* === S Y N F I G ========================================================= */
+/*!    \file synfigapp/main.h
+**     \brief Template Header
+**
+**     $Id$
+**
+**     \legal
+**     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**
+**     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 __SYNFIGAPP_MAIN_H
+#define __SYNFIGAPP_MAIN_H
+
+/* === H E A D E R S ======================================================= */
+
+#include <ETL/ref_count>
+#include <synfig/string.h>
+#include <synfig/general.h>
+#include <synfig/main.h>
+#include <synfig/distance.h>
+#include <synfig/real.h>
+#include <synfig/waypoint.h>
+#include <sigc++/signal.h>
+#include <sigc++/object.h>
+#include "inputdevice.h"
+#include "settings.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 Color;
+       class Gradient;
+};
+
+namespace synfigapp {
+
+/*!    \class synfigapp::Main
+**     \brief \writeme
+**
+**     \writeme
+*/
+class Main : public synfig::Main
+{
+       etl::reference_counter ref_count_;
+public:
+       Main(const synfig::String &basepath,synfig::ProgressCallback *cb=0);
+       ~Main();
+
+       const etl::reference_counter& ref_count()const { return ref_count_; }
+
+       static const synfig::Color& get_outline_color();
+       static const synfig::Color& get_fill_color();
+       static const synfig::Gradient& get_gradient();
+       static const synfig::Distance& get_bline_width();
+       static synfig::Waypoint::Interpolation get_interpolation();
+
+
+       static void set_interpolation(synfig::Waypoint::Interpolation x);
+       static void set_bline_width(synfig::Distance x);
+       static void set_outline_color(synfig::Color color);
+       static void set_fill_color(synfig::Color color);
+       static void set_gradient(synfig::Gradient gradient);
+       static void set_gradient_default_colors();
+       static void color_swap();
+
+       static synfig::Color::BlendMethod get_blend_method();
+       static const synfig::Real& get_opacity();
+       static void set_blend_method(synfig::Color::BlendMethod);
+       static void set_opacity(synfig::Real);
+       static sigc::signal<void>& signal_blend_method_changed();
+       static sigc::signal<void>& signal_opacity_changed();
+       static sigc::signal<void>& signal_interpolation_changed();
+
+       // Input Device stuff
+       static InputDevice::Handle add_input_device(const synfig::String id_, InputDevice::Type type_=InputDevice::TYPE_MOUSE);
+       static InputDevice::Handle find_input_device(const synfig::String id_);
+       static InputDevice::Handle select_input_device(const synfig::String id_);
+       static bool select_input_device(InputDevice::Handle input_device);
+       static InputDevice::Handle get_selected_input_device();
+       static void set_state(synfig::String state);
+
+       static Settings& settings();
+
+       // Signal interfaces
+       static sigc::signal<void>& signal_outline_color_changed();
+       static sigc::signal<void>& signal_fill_color_changed();
+       static sigc::signal<void>& signal_gradient_changed();
+       static sigc::signal<void>& signal_bline_width_changed();
+
+}; // END of class Main
+
+}; // END if namespace synfigapp
+/* === E N D =============================================================== */
+
+#endif