#include <gtk/gtktreestore.h>
#include <gtk/gtkversion.h>
-#include <synfig/valuenode_reference.h>
-#include <synfig/valuenode_subtract.h>
-#include <synfig/valuenode_linear.h>
-#include <synfig/valuenode_timedswap.h>
-#include <synfig/valuenode_scale.h>
#include <synfig/valuenode_dynamiclist.h>
-#include <synfig/valuenode_twotone.h>
-#include <synfig/valuenode_stripes.h>
#include <synfig/layer.h>
#include <synfigapp/uimanager.h>
#include <synfigapp/canvasinterface.h>
#include <synfigapp/selectionmanager.h>
-//#include <synfigapp/action_setwaypoint.h>
-//#include <synfigapp/action_deletewaypoint.h>
#include <sigc++/retype_return.h>
#include <sigc++/retype.h>
-//#include <sigc++/hide.h>
#include "canvasview.h"
#include "instance.h"
#include "app.h"
-#include "cellrenderer_value.h"
#include "cellrenderer_timetrack.h"
-#include "workarea.h"
-#include "dialog_color.h"
#include "eventkey.h"
-#include "state_polygon.h"
-#include "state_bline.h"
-#include "state_normal.h"
-#include "state_eyedrop.h"
-#include "state_draw.h"
-
-#include "ducktransform_scale.h"
-#include "ducktransform_translate.h"
-#include "ducktransform_rotate.h"
-
-#include "event_mouse.h"
-#include "event_layerclick.h"
-
-#include "toolbox.h"
-
-#include "dialog_preview.h"
-#include "dialog_soundselect.h"
-
-#include "preview.h"
-#include "audiocontainer.h"
#include "widget_timeslider.h"
-#include <synfigapp/main.h>
-#include <synfigapp/inputdevice.h>
-
#endif
/* === U S I N G =========================================================== */
// If the canvas is really big, zoom out so that we can fit it all in the window
/*! \todo In other words, this is a zoom-to-fit, and should be
- ** in it's own function.
+ ** in its own function.
*/
int w=get_canvas()->rend_desc().get_w()+70;
int h=get_canvas()->rend_desc().get_h()+70;
action=Gtk::Action::create("seek-prev-frame", Gtk::Stock::GO_BACK,_("Prev Frame"),_("Prev Frame"));
action_group->add( action, sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_frame),-1));
- action=Gtk::Action::create("seek-next-second", Gtk::Stock::GO_FORWARD,_("Seek Foward"),_("Seek Foward"));
+ action=Gtk::Action::create("seek-next-second", Gtk::Stock::GO_FORWARD,_("Seek Forward"),_("Seek Forward"));
action_group->add(action,sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_time),Time(1)));
action=Gtk::Action::create("seek-prev-second", Gtk::Stock::GO_BACK,_("Seek Backward"),_("Seek Backward"));
action_group->add( action, sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_time),Time(-1)));
- // Broken...!?
- /*
action=Gtk::Action::create("seek-end", Gtk::Stock::GOTO_LAST,_("Seek to End"),_("Seek to End"));
action_group->add(action,sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_time),Time::end()));
- */
+
action=Gtk::Action::create("seek-begin", Gtk::Stock::GOTO_FIRST,_("Seek to Begin"),_("Seek to Begin"));
action_group->add( action, sigc::bind(sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::seek_time),Time::begin()));
editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-stop"),Gtk::AccelKey(GDK_Escape,static_cast<Gdk::ModifierType>(0)),SLOT_EVENT(EVENT_STOP)));
editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-refresh"),Gtk::AccelKey('k',Gdk::CONTROL_MASK),SLOT_EVENT(EVENT_REFRESH)));
editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem());
- editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-rotoscope_bline"),
- sigc::mem_fun(*this, &studio::CanvasView::do_rotoscope_bline)));
- editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-rotoscope_polygon"),
- sigc::mem_fun(*this, &studio::CanvasView::do_rotoscope_poly)));
- editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-eyedrop"),
- sigc::mem_fun(*this, &studio::CanvasView::do_eyedrop)));
- editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem());
editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-properties"),Gtk::AccelKey("F8"),
sigc::mem_fun(canvas_properties,&studio::CanvasProperties::present)
));
//parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New Layer"),*newlayers));
- if(layer->get_name()=="PasteCanvas")
+ if(layer->get_name()=="paste_canvas")
{
menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Children"),
sigc::bind(
build_new_layer_menu(*newlayers);
parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem("New Layer",*newlayers));
- if(!multiple_selected && layer->get_name()=="PasteCanvas")
+ if(!multiple_selected && layer->get_name()=="paste_canvas")
{
parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Children"),
sigc::bind(
if(!(bool)row[children_tree_model.is_canvas])
{
synfigapp::ValueDesc value_desc=row[children_tree_model.value_desc];
+ if (!value_desc)
+ {
+ //! \todo fix properly -- what is the child dialog for?
+ synfig::info("preventing child dialog right-click crash");
+ return true;
+ }
assert(value_desc);
popup_param_menu(value_desc);
return true;
// If this is a paste canvas layer, then we need to
// descend into it
- if(layer_name=="PasteCanvas")
+ if(layer_name=="paste_canvas")
{
Vector scale;
scale[0]=scale[1]=exp(layer->get_param("zoom").get(Real()));
}
void
-CanvasView::do_rotoscope_bline()
-{
- smach_.enter(&state_bline);
-}
-
-void
-CanvasView::do_rotoscope()
-{
- smach_.enter(&state_draw);
-}
-
-void
-CanvasView::do_rotoscope_poly()
-{
- smach_.enter(&state_polygon);
-}
-
-void
-CanvasView::do_eyedrop()
-{
- smach_.enter(&state_eyedrop);
-}
-
-void
CanvasView::show_timebar()
{
timebar->show();