**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007 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
#include <synfig/gradient.h>
+#include "general.h"
+
#endif
/* === U S I N G =========================================================== */
/* === M E T H O D S ======================================================= */
-CanvasInterface::CanvasInterface(loose_handle<Instance> instance,handle<Canvas> canvas):
+CanvasInterface::CanvasInterface(etl::loose_handle<Instance> instance,etl::handle<synfig::Canvas> canvas):
instance_(instance),
canvas_(canvas),
cur_time_(canvas->rend_desc().get_frame_start()),
}
if(cur_time_.is_equal(x))
return;
- cur_time_=x;
+ get_canvas()->set_time(cur_time_=x);
+
+ // update the time in all the child canvases
+ Canvas::Children children = get_canvas()->get_root()->children();
+ handle<CanvasInterface> interface;
+ for (Canvas::Children::iterator iter = children.begin(); iter != children.end(); iter++)
+ if ((interface = get_instance()->find_canvas_interface(*iter)) != this)
+ interface->set_time(interface->get_canvas()->get_time());
signal_time_changed()();
signal_dirty_preview()();
}
etl::handle<CanvasInterface>
-CanvasInterface::create(loose_handle<Instance> instance,handle<Canvas> canvas)
+CanvasInterface::create(etl::loose_handle<Instance> instance, etl::handle<synfig::Canvas> canvas)
{
etl::handle<CanvasInterface> intrfc;
intrfc=new CanvasInterface(instance,canvas);
Layer::Handle
-CanvasInterface::add_layer_to(String name, Canvas::Handle canvas, int depth)
+CanvasInterface::add_layer_to(synfig::String name, synfig::Canvas::Handle canvas, int depth)
{
synfigapp::Action::PassiveGrouper group(get_instance().get(),_("Add Layer To"));
layer->set_param("blend_method",synfigapp::Main::get_blend_method());
{
- // Grab the layer's list pf parameters
+ // Grab the layer's list of parameters
Layer::ParamList paramlist=layer->get_param_list();
Layer::ParamList::iterator iter;
for(iter=paramlist.begin();iter!=paramlist.end();++iter)
bool
-CanvasInterface::convert(ValueDesc value_desc, String type)
+CanvasInterface::convert(ValueDesc value_desc, synfig::String type)
{
Action::Handle action(Action::ValueDescConvert::create());
}
bool
-CanvasInterface::set_name(const String &x)
+CanvasInterface::set_name(const synfig::String &x)
{
//! \todo This needs to be converted into an action
get_canvas()->set_name(x);
}
bool
-CanvasInterface::set_description(const String &x)
+CanvasInterface::set_description(const synfig::String &x)
{
//! \todo This needs to be converted into an action
get_canvas()->set_description(x);
}
bool
-CanvasInterface::set_id(const String &x)
+CanvasInterface::set_id(const synfig::String &x)
{
//! \todo This needs to be converted into an action
get_canvas()->set_id(x);
}
bool
-CanvasInterface::import(const synfig::String &filename, bool copy)
+CanvasInterface::import(const synfig::String &filename, bool /*copy*/)
{
Action::PassiveGrouper group(get_instance().get(),_("Import Image"));
synfig::info("Attempting to import "+filename);
-
- if(find(filename.begin(),filename.end(),'.')==filename.end())
+ if (filename_extension(filename) == "")
{
- get_ui_interface()->error("Filename must have an extension!");
+ get_ui_interface()->error(_("Filename must have an extension!"));
return false;
}
- String ext(String(filename.begin()+filename.find_last_of('.')+1,filename.end()));
+ String ext(filename_extension(filename));
+ if (ext.size()) ext = ext.substr(1); // skip initial '.'
std::transform(ext.begin(),ext.end(),ext.begin(),&::tolower);
// If this is a SIF file, then we need to do things slightly differently
Layer::Handle layer(add_layer_to("PasteCanvas",get_canvas()));
if(!layer)
- throw String(_("Unable to create \"PasteCanvas\" layer"));
+ throw String(_("Unable to create \"Paste Canvas\" layer"));
if(!layer->set_param("canvas",ValueBase(outside_canvas)))
throw int();
return false;
}
-
-
if(!Importer::book().count(ext))
{
get_ui_interface()->error(_("I don't know how to open images of this type -- ")+ext);
void
-CanvasInterface::auto_export(ValueNode::Handle value_node)
+CanvasInterface::auto_export(synfig::ValueNode::Handle /*value_node*/)
{
/*
// Check to see if we are already exported.
}
void
-CanvasInterface::auto_export(const ValueDesc& value_desc)
+CanvasInterface::auto_export(const ValueDesc& /*value_desc*/)
{
// THIS FUNCTION IS DEPRECATED, AND IS NOW A STUB.
#if 0
Time newtime(get_time()+(float)frames/fps);
newtime=newtime.round(fps);
- if(newtime<=get_canvas()->rend_desc().get_frame_start())
- newtime=get_canvas()->rend_desc().get_frame_start();
- if(newtime>=get_canvas()->rend_desc().get_frame_end())
- newtime=get_canvas()->rend_desc().get_frame_end();
+ if(newtime<=get_canvas()->rend_desc().get_time_start())
+ newtime=get_canvas()->rend_desc().get_time_start();
+ if(newtime>=get_canvas()->rend_desc().get_time_end())
+ newtime=get_canvas()->rend_desc().get_time_end();
set_time(newtime);
}