+/* === 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_foreground_color();
+ static const synfig::Color& get_background_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_foreground_color(synfig::Color color);
+ static void set_background_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_foreground_color_changed();
+ static sigc::signal<void>& signal_background_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