|
Carlos Lopez |
a09598 |
/* === S Y N F I G ========================================================= */
|
|
Carlos Lopez |
a09598 |
/*! \file synfigapp/main.cpp
|
|
Carlos Lopez |
a09598 |
** \brief Template File
|
|
Carlos Lopez |
a09598 |
**
|
|
Carlos Lopez |
a09598 |
** $Id$
|
|
Carlos Lopez |
a09598 |
**
|
|
Carlos Lopez |
a09598 |
** \legal
|
|
Carlos Lopez |
a09598 |
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
|
|
Carlos Lopez |
a09598 |
**
|
|
Carlos Lopez |
a09598 |
** This package is free software; you can redistribute it and/or
|
|
Carlos Lopez |
a09598 |
** modify it under the terms of the GNU General Public License as
|
|
Carlos Lopez |
a09598 |
** published by the Free Software Foundation; either version 2 of
|
|
Carlos Lopez |
a09598 |
** the License, or (at your option) any later version.
|
|
Carlos Lopez |
a09598 |
**
|
|
Carlos Lopez |
a09598 |
** This package is distributed in the hope that it will be useful,
|
|
Carlos Lopez |
a09598 |
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Carlos Lopez |
a09598 |
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Carlos Lopez |
a09598 |
** General Public License for more details.
|
|
Carlos Lopez |
a09598 |
** \endlegal
|
|
Carlos Lopez |
a09598 |
*/
|
|
Carlos Lopez |
a09598 |
/* ========================================================================= */
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
/* === H E A D E R S ======================================================= */
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
#ifdef USING_PCH
|
|
Carlos Lopez |
a09598 |
# include "pch.h"
|
|
Carlos Lopez |
a09598 |
#else
|
|
Carlos Lopez |
a09598 |
#ifdef HAVE_CONFIG_H
|
|
Carlos Lopez |
a09598 |
# include <config.h></config.h>
|
|
Carlos Lopez |
a09598 |
#endif
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
#include "main.h"
|
|
Carlos Lopez |
a09598 |
#include "action.h"
|
|
|
2055f1 |
|
|
bw |
94d8a6 |
#include <synfig general.h=""></synfig>
|
|
bw |
94d8a6 |
|
|
Carlos Lopez |
a09598 |
#include <synfig color.h=""></synfig>
|
|
Carlos Lopez |
a09598 |
#include <synfig gradient.h=""></synfig>
|
|
|
873d31 |
#include <glibmm.h></glibmm.h>
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
#include <etl trivial=""></etl>
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
#include <list></list>
|
|
Carlos Lopez |
a09598 |
|
|
|
abdbf2 |
#include <synfigapp localization.h=""></synfigapp>
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
#endif
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
/* === U S I N G =========================================================== */
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
using namespace std;
|
|
Carlos Lopez |
a09598 |
using namespace etl;
|
|
Carlos Lopez |
a09598 |
using namespace synfig;
|
|
Carlos Lopez |
a09598 |
using namespace synfigapp;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
/* === M A C R O S ========================================================= */
|
|
Carlos Lopez |
a09598 |
|
|
|
ad24f5 |
#ifndef SYNFIG_USER_APP_DIR
|
|
|
ad24f5 |
#ifdef __APPLE__
|
|
|
ad24f5 |
#define SYNFIG_USER_APP_DIR "Library/Synfig"
|
|
|
ad24f5 |
#elif defined(_WIN32)
|
|
|
ad24f5 |
#define SYNFIG_USER_APP_DIR "Synfig"
|
|
|
ad24f5 |
#else
|
|
|
568107 |
#define SYNFIG_USER_APP_DIR ".config/synfig"
|
|
|
ad24f5 |
#endif
|
|
|
ad24f5 |
#endif
|
|
|
ad24f5 |
|
|
Carlos Lopez |
a09598 |
/* === S T A T I C S ======================================================= */
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
static etl::reference_counter synfigapp_ref_count_(0);
|
|
Carlos Lopez |
a09598 |
static synfigapp::Action::Main* action_main;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
static Color outline_;
|
|
Carlos Lopez |
a09598 |
static Color fill_;
|
|
Carlos Lopez |
a09598 |
static Gradient gradient_;
|
|
Carlos Lopez |
a09598 |
static bool gradient_default_colors_;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
static synfig::Distance bline_width_;
|
|
Carlos Lopez |
a09598 |
|
|
|
bff965 |
//static Color::BlendMethod blend_method_;
|
|
|
d435fa |
//static Real opacity_;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
static synfigapp::InputDevice::Handle selected_input_device_;
|
|
Carlos Lopez |
a09598 |
static list<synfigapp::inputdevice::handle> input_devices_;</synfigapp::inputdevice::handle>
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
trivial<sigc::signal<void> > signal_outline_color_changed_;</sigc::signal<void>
|
|
Carlos Lopez |
a09598 |
trivial<sigc::signal<void> > signal_fill_color_changed_;</sigc::signal<void>
|
|
Carlos Lopez |
a09598 |
trivial<sigc::signal<void> > signal_gradient_changed_;</sigc::signal<void>
|
|
Carlos Lopez |
a09598 |
trivial<sigc::signal<void> > signal_bline_width_changed_;</sigc::signal<void>
|
|
|
bff965 |
//trivial<sigc::signal<void> > signal_blend_method_changed_;</sigc::signal<void>
|
|
|
d435fa |
//trivial<sigc::signal<void> > signal_opacity_changed_;</sigc::signal<void>
|
|
Carlos Lopez |
a09598 |
trivial<sigc::signal<void> > signal_interpolation_changed_;</sigc::signal<void>
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
trivial<settings> settings_;</settings>
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
static synfig::Waypoint::Interpolation interpolation_;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
/* === P R O C E D U R E S ================================================= */
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
/* === M E T H O D S ======================================================= */
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::Main(const synfig::String &basepath, synfig::ProgressCallback *cb):
|
|
Carlos Lopez |
a09598 |
synfig::Main(basepath,cb),
|
|
Carlos Lopez |
a09598 |
ref_count_(synfigapp_ref_count_)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
if(ref_count_.count())
|
|
Carlos Lopez |
a09598 |
return;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
synfigapp_ref_count_.reset();
|
|
Carlos Lopez |
a09598 |
ref_count_=synfigapp_ref_count_;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
// Add initialization after this point
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
#ifdef ENABLE_NLS
|
|
|
873d31 |
String locale_dir;
|
|
|
873d31 |
locale_dir = etl::dirname(basepath)+ETL_DIRECTORY_SEPARATOR+"share"+ETL_DIRECTORY_SEPARATOR+"locale";
|
|
|
873d31 |
|
|
|
c55bbc |
bindtextdomain(GETTEXT_PACKAGE, Glib::locale_from_utf8(locale_dir).c_str() );
|
|
|
0bdb5b |
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
|
|
Carlos Lopez |
a09598 |
#endif
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
action_main=new synfigapp::Action::Main();
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
settings_.construct();
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
signal_outline_color_changed_.construct();
|
|
Carlos Lopez |
a09598 |
signal_fill_color_changed_.construct();
|
|
Carlos Lopez |
a09598 |
signal_gradient_changed_.construct();
|
|
|
d435fa |
//signal_opacity_changed_.construct();
|
|
|
bff965 |
//signal_blend_method_changed_.construct();
|
|
Carlos Lopez |
a09598 |
signal_interpolation_changed_.construct();
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
set_outline_color(Color::black());
|
|
Carlos Lopez |
a09598 |
set_fill_color(Color::white());
|
|
Carlos Lopez |
a09598 |
set_gradient_default_colors();
|
|
Carlos Lopez |
a09598 |
set_bline_width(Distance(1,Distance::SYSTEM_POINTS));
|
|
|
d435fa |
//set_opacity(1.0);
|
|
|
bff965 |
//set_blend_method(Color::BLEND_BY_LAYER);
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::~Main()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
ref_count_.detach();
|
|
Carlos Lopez |
a09598 |
if(!synfigapp_ref_count_.unique())
|
|
Carlos Lopez |
a09598 |
return;
|
|
Carlos Lopez |
a09598 |
synfigapp_ref_count_.detach();
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
// Add deinitialization after this point
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
delete action_main;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
selected_input_device_=0;
|
|
Carlos Lopez |
a09598 |
input_devices_.clear();
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
settings_.destruct();
|
|
Carlos Lopez |
a09598 |
signal_outline_color_changed_.destruct();
|
|
Carlos Lopez |
a09598 |
signal_fill_color_changed_.destruct();
|
|
Carlos Lopez |
a09598 |
signal_gradient_changed_.destruct();
|
|
Carlos Lopez |
a09598 |
|
|
|
d435fa |
//signal_opacity_changed_.destruct();
|
|
|
bff965 |
//signal_blend_method_changed_.destruct();
|
|
Carlos Lopez |
a09598 |
signal_interpolation_changed_.destruct();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
Settings&
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::settings()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return settings_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
sigc::signal<void>&</void>
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::signal_outline_color_changed()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return signal_outline_color_changed_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
sigc::signal<void>&</void>
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::signal_fill_color_changed()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return signal_fill_color_changed_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
sigc::signal<void>&</void>
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::signal_gradient_changed()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return signal_gradient_changed_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
sigc::signal<void>&</void>
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::signal_bline_width_changed()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return signal_bline_width_changed_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
|
bff965 |
/*
|
|
Carlos Lopez |
a09598 |
sigc::signal<void>&</void>
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::signal_blend_method_changed()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return signal_blend_method_changed_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
sigc::signal<void>&</void>
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::signal_opacity_changed()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return signal_opacity_changed_;
|
|
Carlos Lopez |
a09598 |
}
|
|
|
d435fa |
*/
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
sigc::signal<void>&</void>
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::signal_interpolation_changed()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return signal_interpolation_changed_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
const synfig::Color&
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::get_outline_color()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return outline_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
const synfig::Color&
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::get_fill_color()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return fill_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
const synfig::Gradient&
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::get_gradient()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return gradient_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
|
b17ac8 |
/*
|
|
Carlos Lopez |
a09598 |
const synfig::Real&
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::get_opacity()
|
|
Carlos Lopez |
a09598 |
{
|
|
|
d435fa |
return 1.0;
|
|
Carlos Lopez |
a09598 |
}
|
|
|
b17ac8 |
*/
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
synfig::Color::BlendMethod
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::get_blend_method()
|
|
Carlos Lopez |
a09598 |
{
|
|
|
bff965 |
return Color::BLEND_BY_LAYER;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::set_outline_color(synfig::Color color)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
outline_=color;
|
|
Carlos Lopez |
a09598 |
signal_outline_color_changed()();
|
|
Carlos Lopez |
a09598 |
if(selected_input_device_)
|
|
Carlos Lopez |
a09598 |
selected_input_device_->set_outline_color(outline_);
|
|
Carlos Lopez |
a09598 |
if(gradient_default_colors_)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
gradient_=Gradient(fill_,outline_);
|
|
Carlos Lopez |
a09598 |
signal_gradient_changed()();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::set_fill_color(synfig::Color color)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
fill_=color;
|
|
Carlos Lopez |
a09598 |
signal_fill_color_changed()();
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
if(selected_input_device_)
|
|
Carlos Lopez |
a09598 |
selected_input_device_->set_fill_color(fill_);
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
if(gradient_default_colors_)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
gradient_=Gradient(fill_,outline_);
|
|
Carlos Lopez |
a09598 |
signal_gradient_changed()();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::set_gradient(synfig::Gradient gradient)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
gradient_=gradient;
|
|
Carlos Lopez |
a09598 |
gradient_default_colors_=false;
|
|
Carlos Lopez |
a09598 |
signal_gradient_changed()();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::set_gradient_default_colors()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
gradient_default_colors_=true;
|
|
Carlos Lopez |
a09598 |
gradient_=Gradient(fill_,outline_);
|
|
Carlos Lopez |
a09598 |
signal_gradient_changed()();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::color_swap()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
const Color tmp(outline_);
|
|
Carlos Lopez |
a09598 |
outline_=fill_;
|
|
Carlos Lopez |
a09598 |
fill_=tmp;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
if(selected_input_device_)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
selected_input_device_->set_outline_color(outline_);
|
|
Carlos Lopez |
a09598 |
selected_input_device_->set_fill_color(fill_);
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
signal_outline_color_changed()();
|
|
Carlos Lopez |
a09598 |
signal_fill_color_changed()();
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
if(gradient_default_colors_)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
gradient_=Gradient(fill_,outline_);
|
|
Carlos Lopez |
a09598 |
signal_gradient_changed()();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
synfig::Waypoint::Interpolation
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::get_interpolation()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return interpolation_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::set_interpolation(synfig::Waypoint::Interpolation x)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
if(interpolation_!=x)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
interpolation_=x;
|
|
Carlos Lopez |
a09598 |
|
|
|
def467 |
signal_interpolation_changed()();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
const synfig::Distance&
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::get_bline_width()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return bline_width_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::set_bline_width(synfig::Distance x)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
if(x<0)x=0;
|
|
Carlos Lopez |
a09598 |
if(x!=bline_width_)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
bline_width_=x;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
if(selected_input_device_)
|
|
Carlos Lopez |
a09598 |
selected_input_device_->set_bline_width(x);
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
signal_bline_width_changed()();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
|
d435fa |
/*
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::set_opacity(synfig::Real x)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
opacity_=x;
|
|
Carlos Lopez |
a09598 |
if(selected_input_device_)
|
|
Carlos Lopez |
a09598 |
selected_input_device_->set_opacity(opacity_);
|
|
Carlos Lopez |
a09598 |
signal_opacity_changed()();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::set_blend_method(synfig::Color::BlendMethod x)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
blend_method_=x;
|
|
Carlos Lopez |
a09598 |
if(selected_input_device_)
|
|
Carlos Lopez |
a09598 |
selected_input_device_->set_blend_method(x);
|
|
Carlos Lopez |
a09598 |
signal_blend_method_changed()();
|
|
Carlos Lopez |
a09598 |
}
|
|
|
bff965 |
*/
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
InputDevice::Handle
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::add_input_device(const synfig::String id, InputDevice::Type type)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
input_devices_.push_back(new InputDevice(id,type));
|
|
Carlos Lopez |
a09598 |
return input_devices_.back();
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
InputDevice::Handle
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::find_input_device(const synfig::String id)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
list<inputdevice::handle>::iterator iter;</inputdevice::handle>
|
|
Carlos Lopez |
a09598 |
for(iter=input_devices_.begin();iter!=input_devices_.end();++iter)
|
|
Carlos Lopez |
a09598 |
if((*iter)->get_id()==id)
|
|
Carlos Lopez |
a09598 |
return *iter;
|
|
Carlos Lopez |
a09598 |
return 0;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
InputDevice::Handle
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::select_input_device(const synfig::String id)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
InputDevice::Handle input_device(find_input_device(id));
|
|
Carlos Lopez |
a09598 |
if(!input_device)
|
|
Carlos Lopez |
a09598 |
return 0;
|
|
Carlos Lopez |
a09598 |
if(!select_input_device(input_device))
|
|
Carlos Lopez |
a09598 |
return 0;
|
|
Carlos Lopez |
a09598 |
return input_device;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
bool
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::select_input_device(InputDevice::Handle input_device)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
assert(input_device);
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
// synfig::info("Input device changed to \"%s\"",input_device->get_id().c_str());
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
selected_input_device_=input_device;
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
set_bline_width(input_device->get_bline_width());
|
|
Carlos Lopez |
a09598 |
set_outline_color(input_device->get_outline_color());
|
|
Carlos Lopez |
a09598 |
set_fill_color(input_device->get_fill_color());
|
|
|
d435fa |
//set_opacity(input_device->get_opacity());
|
|
|
bff965 |
//set_blend_method(input_device->get_blend_method());
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
return true;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
InputDevice::Handle
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::get_selected_input_device()
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
return selected_input_device_;
|
|
Carlos Lopez |
a09598 |
}
|
|
Carlos Lopez |
a09598 |
|
|
Carlos Lopez |
a09598 |
void
|
|
Carlos Lopez |
a09598 |
synfigapp::Main::set_state(synfig::String state)
|
|
Carlos Lopez |
a09598 |
{
|
|
Carlos Lopez |
a09598 |
if(selected_input_device_)
|
|
Carlos Lopez |
a09598 |
selected_input_device_->set_state(state);
|
|
Carlos Lopez |
a09598 |
}
|
|
|
ad24f5 |
|
|
|
ad24f5 |
synfig::String
|
|
|
ad24f5 |
synfigapp::Main::get_user_app_directory()
|
|
|
ad24f5 |
{
|
|
|
ad24f5 |
String dir;
|
|
|
671edc |
if (char* synfig_user_settings_dir = getenv("SYNFIG_USER_SETTINGS")) {
|
|
|
671edc |
dir = Glib::locale_from_utf8(String(synfig_user_settings_dir));
|
|
|
671edc |
} else {
|
|
|
671edc |
dir = Glib::get_home_dir()+ETL_DIRECTORY_SEPARATOR+SYNFIG_USER_APP_DIR;
|
|
|
671edc |
}
|
|
|
ad24f5 |
return dir;
|
|
|
ad24f5 |
}
|