X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fcanvasview.cpp;h=dcc436b851ecd01101b2e7f0eb8c935eab607dec;hb=63e709f66d50c124cc0ece2325f4773ac4ae7b20;hp=b6e093e0b3ffb31935d0976bebf2d1d1e1f3babf;hpb=6ea7e1fb3e6c78544c4d319b4338820f6559de80;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index b6e093e..dcc436b 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -99,6 +99,8 @@ #include #include +#include "general.h" + #endif /* === U S I N G =========================================================== */ @@ -107,7 +109,7 @@ using namespace std; using namespace etl; using namespace synfig; using namespace studio; -using namespace SigC; +using namespace sigc; /* === M A C R O S ========================================================= */ @@ -121,13 +123,6 @@ using namespace SigC; #define DEFAULT_TIME_WINDOW_SIZE (10.0) -/* -#ifdef DEBUGPOINT -#undef DEBUGPOINT -#endif -#define DEBUGPOINT() -*/ - #ifndef SMALL_BUTTON #define SMALL_BUTTON(button,stockid,tooltip) \ button = manage(new class Gtk::Button()); \ @@ -242,7 +237,7 @@ public: view(view) { - view->statusbar->push("Idle"); + view->statusbar->push(_("Idle")); } ~CanvasViewUIInterface() @@ -332,7 +327,7 @@ public: virtual bool error(const std::string &err) { - view->statusbar->push("ERROR"); + view->statusbar->push(_("ERROR")); // If we are in the process of canceling, // then just go ahead and return false -- @@ -381,7 +376,7 @@ public: void not_implemented() { - error("Feature not yet implemented"); + error(_("Feature not yet implemented")); } }; @@ -447,7 +442,7 @@ public: { // assert(view->layer_tree); - if(!view->layer_tree) { DEBUGPOINT(); synfig::error("%s:%d canvas_view.layer_tree not defined!?", __FILE__, __LINE__); return LayerList(); } + if(!view->layer_tree) { synfig::error("%s:%d canvas_view.layer_tree not defined!?", __FILE__, __LINE__); return LayerList(); } return view->layer_tree->get_selected_layers(); } @@ -456,7 +451,7 @@ public: { // assert(view->layer_tree); - if(!view->layer_tree) { DEBUGPOINT(); synfig::error("%s:%d canvas_view.layer_tree not defined!?", __FILE__, __LINE__); return 0; } + if(!view->layer_tree) { synfig::error("%s:%d canvas_view.layer_tree not defined!?", __FILE__, __LINE__); return 0; } return view->layer_tree->get_selected_layer(); } @@ -465,7 +460,7 @@ public: { // assert(view->layer_tree); - if(!view->layer_tree) { DEBUGPOINT(); synfig::error("%s:%d canvas_view.layer_tree not defined!?", __FILE__, __LINE__); return; } + if(!view->layer_tree) { synfig::error("%s:%d canvas_view.layer_tree not defined!?", __FILE__, __LINE__); return; } view->layer_tree->select_layers(layer_list); //view->get_smach().process_event(EVENT_REFRESH_DUCKS); @@ -477,7 +472,7 @@ public: { // assert(view->layer_tree); - if(!view->layer_tree) { DEBUGPOINT(); synfig::error("canvas_view.layer_tree not defined!?"); return; } + if(!view->layer_tree) { synfig::error("canvas_view.layer_tree not defined!?"); return; } view->layer_tree->select_layer(layer); //view->queue_rebuild_ducks(); } @@ -709,9 +704,9 @@ CanvasView::CanvasView(etl::loose_handle instance,etl::handleshow(); - //notebook->append_page(*create_layer_tree(),"Layers"); - //notebook->append_page(*create_children_tree(),"Children"); - //notebook->append_page(*create_keyframe_tree(),"Keyframes"); + //notebook->append_page(*create_layer_tree(),_("Layers")); + //notebook->append_page(*create_children_tree(),_("Children")); + //notebook->append_page(*create_keyframe_tree(),_("Keyframes")); //synfig::info("Canvasview: Before big chunk of allocation and tabling stuff"); //create all allocated stuff for this canvas @@ -784,7 +779,7 @@ CanvasView::CanvasView(etl::loose_handle instance,etl::handlequeue_render_preview(); @@ -802,7 +797,7 @@ CanvasView::CanvasView(etl::loose_handle instance,etl::handle // WorkArea::set_zoom(float) => // WorkArea::async_update_preview() => - // desc.set_time(cur_time), where cur_time isn't initialised + // desc.set_time(cur_time), where cur_time isn't initialized work_area->set_time(0); work_area->zoom_out(); w=round_to_int(get_canvas()->rend_desc().get_w()*work_area->get_zoom()+70); @@ -947,11 +942,11 @@ CanvasView::create_time_bar() //time_scroll->signal_value_changed().connect(sigc::mem_fun(*work_area, &studio::WorkArea::render_preview_hook)); //time_scroll->set_update_policy(Gtk::UPDATE_DISCONTINUOUS); - NORMAL_BUTTON(animatebutton,"gtk-yes","Animate"); + NORMAL_BUTTON(animatebutton,"gtk-yes",_("Animate")); animatebutton->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::on_animate_button_pressed)); animatebutton->show(); - NORMAL_BUTTON(keyframebutton,"synfig-keyframe_lock_all","All Keyframes Locked"); + NORMAL_BUTTON(keyframebutton,"synfig-keyframe_lock_all",_("All Keyframes Locked")); keyframebutton->signal_clicked().connect(sigc::mem_fun(*this, &studio::CanvasView::on_keyframe_button_pressed)); keyframebutton->show(); @@ -1006,11 +1001,11 @@ CanvasView::create_status_bar() Gtk::Table *statusbartable= manage(new class Gtk::Table(7, 1, false)); // statusbar = manage(new class Gtk::Statusbar()); // This is already done at construction progressbar =manage(new class Gtk::ProgressBar()); - SMALL_BUTTON(stopbutton,"gtk-stop","Stop"); - SMALL_BUTTON(refreshbutton,"gtk-refresh","Refresh"); - //SMALL_BUTTON(treetogglebutton,"gtk-go-down","Toggle Layer Tree"); -// NEW_SMALL_BUTTON(raisebutton,"gtk-go-up","Raise Layer"); -// NEW_SMALL_BUTTON(lowerbutton,"gtk-go-down","Lower Layer"); + SMALL_BUTTON(stopbutton,"gtk-stop",_("Stop")); + SMALL_BUTTON(refreshbutton,"gtk-refresh",_("Refresh")); + //SMALL_BUTTON(treetogglebutton,"gtk-go-down",_("Toggle Layer Tree")); +// NEW_SMALL_BUTTON(raisebutton,"gtk-go-up",_("Raise Layer")); +// NEW_SMALL_BUTTON(lowerbutton,"gtk-go-down",_("Lower Layer")); //statusbartable->attach(*treetogglebutton, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); // statusbartable->attach(*lowerbutton, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); // statusbartable->attach(*raisebutton, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK, 0, 0); @@ -1100,9 +1095,9 @@ CanvasView::create_keyframe_tree() Gtk::Image *icon; Gtk::IconSize iconsize(Gtk::IconSize::from_name("synfig-small_icon")); - NEW_SMALL_BUTTON(button_add,"gtk-add","New Keyframe"); - NEW_SMALL_BUTTON(button_duplicate,"synfig-duplicate","Duplicate Keyframe"); - NEW_SMALL_BUTTON(button_delete,"gtk-delete","Delete Keyframe"); + NEW_SMALL_BUTTON(button_add,"gtk-add",_("New Keyframe")); + NEW_SMALL_BUTTON(button_duplicate,"synfig-duplicate",_("Duplicate Keyframe")); + NEW_SMALL_BUTTON(button_delete,"gtk-delete",_("Delete Keyframe")); Gtk::HBox *hbox(manage(new Gtk::HBox())); layout_table->attach(*hbox, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK, 0, 0); @@ -1184,7 +1179,7 @@ CanvasView::init_menus() */ action_group = Gtk::ActionGroup::create(); - //action_group->add( Gtk::Action::create("MenuFile", "_File") ); + //action_group->add( Gtk::Action::create("MenuFile", _("_File")) ); action_group->add( Gtk::Action::create("save", Gtk::Stock::SAVE), hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::save)) ); @@ -1267,8 +1262,12 @@ CanvasView::init_menus() ); for(i=1;i<=10;i++) { - Glib::RefPtr action(Gtk::RadioAction::create(quality_group,strprintf("quality-%02d",i), strprintf("Set Quality to %d",i))); - if(i==10) + String note; + if (i == 1) note = _(" (best)"); + if (i == 10) note = _(" (fastest)"); + Glib::RefPtr action(Gtk::RadioAction::create(quality_group,strprintf("quality-%02d",i), + strprintf(_("Set Quality to %d"),i) + note)); + if(i==9) // default quality { action->set_active(); work_area->set_quality(i); @@ -1355,8 +1354,8 @@ CanvasView::init_menus() } -#define DUCK_MASK(lower,upper) \ - duck_mask_##lower=Gtk::ToggleAction::create("mask-" #lower "-ducks", _("Show "#lower" ducks")); \ +#define DUCK_MASK(lower,upper,string) \ + duck_mask_##lower=Gtk::ToggleAction::create("mask-" #lower "-ducks", string); \ duck_mask_##lower->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_##upper)); \ action_group->add( duck_mask_##lower, \ sigc::bind( \ @@ -1364,12 +1363,12 @@ CanvasView::init_menus() Duck::TYPE_##upper \ ) \ ) - DUCK_MASK(position,POSITION); - DUCK_MASK(tangent,TANGENT); - DUCK_MASK(vertex,VERTEX); - DUCK_MASK(radius,RADIUS); - DUCK_MASK(width,WIDTH); - DUCK_MASK(angle,ANGLE); + DUCK_MASK(position,POSITION,_("Show Position Ducks")); + DUCK_MASK(tangent,TANGENT,_("Show Tangent Ducks")); + DUCK_MASK(vertex,VERTEX,_("Show Vertex Ducks")); + DUCK_MASK(radius,RADIUS,_("Show Radius Ducks")); + DUCK_MASK(width,WIDTH,_("Show Width Ducks")); + DUCK_MASK(angle,ANGLE,_("Show Angle Ducks")); #undef DUCK_MASK add_accel_group(App::ui_manager()->get_accel_group()); @@ -1432,245 +1431,247 @@ CanvasView::init_menus() #if 0 - - //Test some key stuff - - filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-save"), - hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::save)))); - filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-save-as"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_save_as)))); - filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-revert-to-saved"),hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::safe_revert)))); - filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - - filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-cvs_add"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_add)))); - filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-cvs_update"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_update)))); - filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-cvs_commit"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_commit)))); - - filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Import..."),Gtk::AccelKey('I',Gdk::CONTROL_MASK),sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::image_import)))); - filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Render"),Gtk::AccelKey("F9"), - sigc::mem_fun(render_settings,&studio::RenderSettings::present) - )); - filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Preview"),Gtk::AccelKey("F11"), - sigc::mem_fun(*this,&CanvasView::on_preview_option) - )); - filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Sound File"), - sigc::mem_fun(*this,&CanvasView::on_audio_option) - )); - - filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Options"),Gtk::AccelKey("F12"), - sigc::mem_fun(canvas_options,&studio::CanvasOptions::present) - )); - filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Close View"), - sigc::hide_return(sigc::mem_fun(*this,&studio::CanvasView::close_view)) - )); - filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Close Document"), - sigc::hide_return(sigc::mem_fun(*this,&studio::CanvasView::close_document)) - )); - - editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-undo"),Gtk::AccelKey('Z',Gdk::CONTROL_MASK),SLOT_EVENT(EVENT_UNDO))); - editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-redo"),Gtk::AccelKey('R',Gdk::CONTROL_MASK),SLOT_EVENT(EVENT_REDO))); - editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-cut"),NOT_IMPLEMENTED_SLOT)); - editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-copy"),NOT_IMPLEMENTED_SLOT)); - editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-paste"),NOT_IMPLEMENTED_SLOT)); - editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - editmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Ducks"),Gtk::AccelKey('E',Gdk::CONTROL_MASK),sigc::mem_fun(*work_area,&studio::WorkArea::select_all_ducks))); - editmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Unselect All Layers"),Gtk::AccelKey('D',Gdk::CONTROL_MASK),sigc::mem_fun(*this,&CanvasView::on_unselect_layers))); - editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - - //editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-stop"),Gtk::AccelKey(GDK_Escape,static_cast(0)),sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::stop)))); - //editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-refresh"),Gtk::AccelKey('k',Gdk::CONTROL_MASK),sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::on_refresh_pressed)))); - editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-stop"),Gtk::AccelKey(GDK_Escape,static_cast(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("gtk-properties"),Gtk::AccelKey("F8"), - sigc::mem_fun(canvas_properties,&studio::CanvasProperties::present) - )); - - build_new_layer_menu(newlayermenu); - layermenu.items().push_back(Gtk::Menu_Helpers::MenuElem("New",newlayermenu)); - - - { - synfigapp::Action::ParamList param_list; - param_list.add("canvas",Canvas::Handle(get_canvas())); - param_list.add("canvas_interface",canvas_interface()); - add_actions_to_menu(&canvasmenu, param_list,synfigapp::Action::CATEGORY_CANVAS); - } - - - //canvasmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("Keyframe Dialog",sigc::mem_fun(keyframe_dialog,&studio::Dialog_Keyframe::present))); - - // Duck Mask Menu - if(1) - { - duckmaskmenu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); - - duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Position Ducks"),Gtk::AccelKey('1',Gdk::MOD1_MASK))); - duck_mask_position=static_cast(&duckmaskmenu.items().back()); - duck_mask_position->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_POSITION)); - duck_mask_position->signal_toggled().connect( - sigc::bind( - sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), - Duck::TYPE_POSITION - ) - ); - - duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Vertex Ducks"),Gtk::AccelKey('2',Gdk::MOD1_MASK))); - duck_mask_vertex=static_cast(&duckmaskmenu.items().back()); - duck_mask_vertex->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_VERTEX)); - duck_mask_vertex->signal_toggled().connect( - sigc::bind( - sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), - Duck::TYPE_VERTEX - ) - ); - - duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Tangent Ducks"),Gtk::AccelKey('3',Gdk::MOD1_MASK))); - duck_mask_tangent=static_cast(&duckmaskmenu.items().back()); - duck_mask_tangent->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_TANGENT)); - duck_mask_tangent->signal_toggled().connect( - sigc::bind( - sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), - Duck::TYPE_TANGENT - ) - ); - - duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Radius Ducks"),Gtk::AccelKey('4',Gdk::MOD1_MASK))); - duck_mask_radius=static_cast(&duckmaskmenu.items().back()); - duck_mask_radius->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_RADIUS)); - duck_mask_radius->signal_toggled().connect( - sigc::bind( - sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), - Duck::TYPE_RADIUS - ) - ); - - duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Width Ducks"),Gtk::AccelKey('5',Gdk::MOD1_MASK))); - duck_mask_width=static_cast(&duckmaskmenu.items().back()); - duck_mask_width->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_WIDTH)); - duck_mask_width->signal_toggled().connect( - sigc::bind( - sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), - Duck::TYPE_WIDTH - ) - ); - - duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Angle Ducks"),Gtk::AccelKey('6',Gdk::MOD1_MASK))); - duck_mask_angle=static_cast(&duckmaskmenu.items().back()); - duck_mask_angle->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_ANGLE)); - duck_mask_angle->signal_toggled().connect( - sigc::bind( - sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), - Duck::TYPE_ANGLE - ) - ); - - viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Mask Ducks"),duckmaskmenu)); - } - - // Preview Quality Menu - if(1) - { - qualitymenu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); - int i; - qualitymenu.items().push_back(Gtk::Menu_Helpers::MenuElem(strprintf(_("Use Parametric Renderer"),0), - sigc::bind( - sigc::mem_fun(*work_area, &studio::WorkArea::set_quality), - 0 - ) - )); - for(i=1;i<=10;i++) - { - qualitymenu.items().push_back(Gtk::Menu_Helpers::MenuElem(strprintf(_("Set Quality to %d"),i),Gtk::AccelKey('0'+(i%10),Gdk::CONTROL_MASK), - sigc::bind( - sigc::mem_fun(*work_area, &studio::WorkArea::set_quality), - i - ) - )); - } - viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Preview Quality"),qualitymenu)); - } - - viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::Stock::MEDIA_PLAY, - sigc::mem_fun(*this, &studio::CanvasView::play))); - viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("Flipbook Dialog"), - sigc::mem_fun(*preview_dialog, &studio::Dialog_Preview::present))); - - viewmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - - viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Grid Show"),Gtk::AccelKey('g',Gdk::CONTROL_MASK), - sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid))); - viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Grid Snap"),Gtk::AccelKey('l',Gdk::CONTROL_MASK), - sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid_snap))); - viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Guide Snap"),Gtk::AccelKey('k',Gdk::CONTROL_MASK), - sigc::mem_fun(*work_area, &studio::WorkArea::toggle_guide_snap))); - viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Low-Res"),Gtk::AccelKey('`',Gdk::CONTROL_MASK), - sigc::mem_fun(*work_area, &studio::WorkArea::toggle_low_resolution_flag))); - - viewmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - - viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-in"),Gtk::AccelKey('=',static_cast(0)), - sigc::mem_fun(*work_area, &studio::WorkArea::zoom_in))); - viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-out"),Gtk::AccelKey('-',static_cast(0)), - sigc::mem_fun(*work_area, &studio::WorkArea::zoom_out))); - viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-fit"), - sigc::mem_fun(*work_area, &studio::WorkArea::zoom_fit))); - viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-100"),Gtk::AccelKey('`',static_cast(0)), - sigc::mem_fun(*work_area, &studio::WorkArea::zoom_norm))); - viewmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - - viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-in"),Gtk::AccelKey('+',static_cast(0)), - sigc::mem_fun(*this, &studio::CanvasView::time_zoom_in))); - viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-out"),Gtk::AccelKey('_',static_cast(0)), - sigc::mem_fun(*this, &studio::CanvasView::time_zoom_out))); - - viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Jump to Next Keyframe"),Gtk::AccelKey(']',static_cast(0)), - sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_next_keyframe))); - viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Jump to Prev Keyframe"),Gtk::AccelKey('[',static_cast(0)), - sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_prev_keyframe))); - - mainmenu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); - mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("_File",filemenu)); - mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("_Edit",editmenu)); - mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("_View",viewmenu)); - mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("_Canvas",canvasmenu)); - mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("_Layer",layermenu)); - - mainmenu.accelerate(*this); - - { - - trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("New Waypoint",NOT_IMPLEMENTED_SLOT)); - trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("Delete Waypoint",NOT_IMPLEMENTED_SLOT)); - trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("Export",NOT_IMPLEMENTED_SLOT)); - trackmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); - trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem("Properties",NOT_IMPLEMENTED_SLOT)); - } - mainmenu.show(); - filemenu.show(); - editmenu.show(); - canvasmenu.show(); - layermenu.show(); - - keyframemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-properties"), - sigc::mem_fun(*this,&studio::CanvasView::show_keyframe_dialog) - )); - - - get_accel_group()->unlock(); - - //Set the accelerator paths for all the menus - filemenu.set_accel_path("/File"); - editmenu.set_accel_path("/Edit"); - layermenu.set_accel_path("/Layer"); - //mainmenu.set_accel_path(""); - canvasmenu.set_accel_path("/Canvas"); - viewmenu.set_accel_path("/View"); - duckmaskmenu.set_accel_path("/DuckMask"); +// +// //Test some key stuff +// +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-save"), +// hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::save)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-save-as"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_save_as)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-revert-to-saved"),hide_return(sigc::mem_fun(*get_instance().get(), &studio::Instance::safe_revert)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-cvs_add"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_add)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-cvs_update"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_update)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("synfig-cvs_commit"),sigc::hide_return(sigc::mem_fun(*get_instance(), &studio::Instance::dialog_cvs_commit)))); +// +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Import..."),Gtk::AccelKey('I',Gdk::CONTROL_MASK),sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::image_import)))); +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Render"),Gtk::AccelKey("F9"), +// sigc::mem_fun(render_settings,&studio::RenderSettings::present) +// )); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Preview"),Gtk::AccelKey("F11"), +// sigc::mem_fun(*this,&CanvasView::on_preview_option) +// )); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Sound File"), +// sigc::mem_fun(*this,&CanvasView::on_audio_option) +// )); +// +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Options"),Gtk::AccelKey("F12"), +// sigc::mem_fun(canvas_options,&studio::CanvasOptions::present) +// )); +// filemenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Close View"), +// sigc::hide_return(sigc::mem_fun(*this,&studio::CanvasView::close_view)) +// )); +// filemenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Close Document"), +// sigc::hide_return(sigc::mem_fun(*this,&studio::CanvasView::close_document)) +// )); +// +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-undo"),Gtk::AccelKey('Z',Gdk::CONTROL_MASK),SLOT_EVENT(EVENT_UNDO))); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-redo"),Gtk::AccelKey('R',Gdk::CONTROL_MASK),SLOT_EVENT(EVENT_REDO))); +// editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-cut"),NOT_IMPLEMENTED_SLOT)); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-copy"),NOT_IMPLEMENTED_SLOT)); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-paste"),NOT_IMPLEMENTED_SLOT)); +// editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// editmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Ducks"),Gtk::AccelKey('E',Gdk::CONTROL_MASK),sigc::mem_fun(*work_area,&studio::WorkArea::select_all_ducks))); +// editmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Unselect All Layers"),Gtk::AccelKey('D',Gdk::CONTROL_MASK),sigc::mem_fun(*this,&CanvasView::on_unselect_layers))); +// editmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// //editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-stop"),Gtk::AccelKey(GDK_Escape,static_cast(0)),sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::stop)))); +// //editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-refresh"),Gtk::AccelKey('k',Gdk::CONTROL_MASK),sigc::hide_return(sigc::mem_fun(*this, &studio::CanvasView::on_refresh_pressed)))); +// editmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-stop"),Gtk::AccelKey(GDK_Escape,static_cast(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("gtk-properties"),Gtk::AccelKey("F8"), +// sigc::mem_fun(canvas_properties,&studio::CanvasProperties::present) +// )); +// +// build_new_layer_menu(newlayermenu); +// layermenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New"),newlayermenu)); +// +// +// { +// synfigapp::Action::ParamList param_list; +// param_list.add("canvas",Canvas::Handle(get_canvas())); +// param_list.add("canvas_interface",canvas_interface()); +// add_actions_to_menu(&canvasmenu, param_list,synfigapp::Action::CATEGORY_CANVAS); +// } +// +// +// //canvasmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Keyframe Dialog"),sigc::mem_fun(keyframe_dialog,&studio::Dialog_Keyframe::present))); +// +// // Duck Mask Menu +// if(1) +// { +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Position Ducks"),Gtk::AccelKey('1',Gdk::MOD1_MASK))); +// duck_mask_position=static_cast(&duckmaskmenu.items().back()); +// duck_mask_position->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_POSITION)); +// duck_mask_position->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_POSITION +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Vertex Ducks"),Gtk::AccelKey('2',Gdk::MOD1_MASK))); +// duck_mask_vertex=static_cast(&duckmaskmenu.items().back()); +// duck_mask_vertex->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_VERTEX)); +// duck_mask_vertex->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_VERTEX +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Tangent Ducks"),Gtk::AccelKey('3',Gdk::MOD1_MASK))); +// duck_mask_tangent=static_cast(&duckmaskmenu.items().back()); +// duck_mask_tangent->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_TANGENT)); +// duck_mask_tangent->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_TANGENT +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Radius Ducks"),Gtk::AccelKey('4',Gdk::MOD1_MASK))); +// duck_mask_radius=static_cast(&duckmaskmenu.items().back()); +// duck_mask_radius->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_RADIUS)); +// duck_mask_radius->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_RADIUS +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Width Ducks"),Gtk::AccelKey('5',Gdk::MOD1_MASK))); +// duck_mask_width=static_cast(&duckmaskmenu.items().back()); +// duck_mask_width->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_WIDTH)); +// duck_mask_width->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_WIDTH +// ) +// ); +// +// duckmaskmenu.items().push_back(Gtk::Menu_Helpers::CheckMenuElem(_("Angle Ducks"),Gtk::AccelKey('6',Gdk::MOD1_MASK))); +// duck_mask_angle=static_cast(&duckmaskmenu.items().back()); +// duck_mask_angle->set_active((bool)(work_area->get_type_mask()&Duck::TYPE_ANGLE)); +// duck_mask_angle->signal_toggled().connect( +// sigc::bind( +// sigc::mem_fun(*this, &studio::CanvasView::toggle_duck_mask), +// Duck::TYPE_ANGLE +// ) +// ); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Mask Ducks"),duckmaskmenu)); +// } +// +// // Preview Quality Menu +// if(1) +// { +// qualitymenu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); +// int i; +// qualitymenu.items().push_back(Gtk::Menu_Helpers::MenuElem(strprintf(_("Use Parametric Renderer"),0), +// sigc::bind( +// sigc::mem_fun(*work_area, &studio::WorkArea::set_quality), +// 0 +// ) +// )); +// for(i=1;i<=10;i++) +// { +// qualitymenu.items().push_back(Gtk::Menu_Helpers::MenuElem(strprintf(_("Set Quality to %d"),i),Gtk::AccelKey('0'+(i%10),Gdk::CONTROL_MASK), +// sigc::bind( +// sigc::mem_fun(*work_area, &studio::WorkArea::set_quality), +// i +// ) +// )); +// } +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Preview Quality"),qualitymenu)); +// } +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::Stock::MEDIA_PLAY, +// sigc::mem_fun(*this, &studio::CanvasView::play))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("Flipbook Dialog"), +// sigc::mem_fun(*preview_dialog, &studio::Dialog_Preview::present))); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Grid Show"),Gtk::AccelKey('g',Gdk::CONTROL_MASK), +// sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Grid Snap"),Gtk::AccelKey('l',Gdk::CONTROL_MASK), +// sigc::mem_fun(*work_area, &studio::WorkArea::toggle_grid_snap))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Guide Snap"),Gtk::AccelKey('k',Gdk::CONTROL_MASK), +// sigc::mem_fun(*work_area, &studio::WorkArea::toggle_guide_snap))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Toggle Low-Res"),Gtk::AccelKey('`',Gdk::CONTROL_MASK), +// sigc::mem_fun(*work_area, &studio::WorkArea::toggle_low_resolution_flag))); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-in"),Gtk::AccelKey('=',static_cast(0)), +// sigc::mem_fun(*work_area, &studio::WorkArea::zoom_in))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-out"),Gtk::AccelKey('-',static_cast(0)), +// sigc::mem_fun(*work_area, &studio::WorkArea::zoom_out))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-fit"), +// sigc::mem_fun(*work_area, &studio::WorkArea::zoom_fit))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-100"),Gtk::AccelKey('`',static_cast(0)), +// sigc::mem_fun(*work_area, &studio::WorkArea::zoom_norm))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-in"),Gtk::AccelKey('+',static_cast(0)), +// sigc::mem_fun(*this, &studio::CanvasView::time_zoom_in))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-zoom-out"),Gtk::AccelKey('_',static_cast(0)), +// sigc::mem_fun(*this, &studio::CanvasView::time_zoom_out))); +// +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Jump to Next Keyframe"),Gtk::AccelKey(']',static_cast(0)), +// sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_next_keyframe))); +// viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Jump to Prev Keyframe"),Gtk::AccelKey('[',static_cast(0)), +// sigc::mem_fun(*canvas_interface().get(), &synfigapp::CanvasInterface::jump_to_prev_keyframe))); +// +// mainmenu.items().push_back(Gtk::Menu_Helpers::TearoffMenuElem()); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_File"),filemenu)); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Edit"),editmenu)); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_View"),viewmenu)); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Canvas"),canvasmenu)); +// mainmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("_Layer"),layermenu)); +// +// mainmenu.accelerate(*this); +// +///* +// { +// +// trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New Waypoint"),NOT_IMPLEMENTED_SLOT)); +// trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Delete Waypoint"),NOT_IMPLEMENTED_SLOT)); +// trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Export"),NOT_IMPLEMENTED_SLOT)); +// trackmenu.items().push_back(Gtk::Menu_Helpers::SeparatorElem()); +// trackmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Properties"),NOT_IMPLEMENTED_SLOT)); +// } +//*/ +// mainmenu.show(); +// filemenu.show(); +// editmenu.show(); +// canvasmenu.show(); +// layermenu.show(); +// +// keyframemenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-properties"), +// sigc::mem_fun(*this,&studio::CanvasView::show_keyframe_dialog) +// )); +// +// +// get_accel_group()->unlock(); +// +// //Set the accelerator paths for all the menus +// filemenu.set_accel_path("/File"); +// editmenu.set_accel_path("/Edit"); +// layermenu.set_accel_path("/Layer"); +// //mainmenu.set_accel_path(""); +// canvasmenu.set_accel_path("/Canvas"); +// viewmenu.set_accel_path("/View"); +// duckmaskmenu.set_accel_path("/DuckMask"); #endif } @@ -1762,7 +1763,7 @@ CanvasView::popup_layer_menu(synfig::Layer::Handle layer) void CanvasView::register_layer_type(synfig::Layer::Book::value_type &/*lyr*/,std::map* /*category_map*/) { -/* if(lyr.second.category==_("Do Not Use")) +/* if(lyr.second.category==CATEGORY_DO_NOT_USE) return; if(category_map->count(lyr.second.category)==0) @@ -1986,7 +1987,7 @@ CanvasView::close_instance() } handle -CanvasView::create(loose_handle instance,handle canvas) +CanvasView::create(etl::loose_handle instance, etl::handle canvas) { etl::handle view(new CanvasView(instance,instance->synfigapp::Instance::find_canvas_interface(canvas))); instance->canvas_view_list().push_front(view); @@ -2196,9 +2197,11 @@ CanvasView::on_layer_user_click(int button, Gtk::TreeRow /*row*/, LayerTree::Col parammenu.items().clear(); Gtk::Menu *newlayers(manage(new Gtk::Menu())); + // do we need this? the code is all #ifdef'ed out anyway + // newlayers->signal_hide().connect(sigc::bind(sigc::ptr_fun(&delete_widget), newlayers)); build_new_layer_menu(*newlayers); - parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem("New Layer",*newlayers)); + parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New Layer"),*newlayers)); if(!multiple_selected && layer->get_name()=="PasteCanvas") { parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Children"), @@ -2235,10 +2238,10 @@ CanvasView::on_layer_user_click(int button, Gtk::TreeRow /*row*/, LayerTree::Col #warning update me! #if 0 parammenu.items().clear(); - parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem("Connect", + parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Connect"), hide_return(sigc::mem_fun(*canvas_interface().get(),&synfigapp::CanvasInterface::connect_selected_layer_params)) )); - parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem("Disconnect", + parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Disconnect"), hide_return(sigc::mem_fun(*canvas_interface().get(),&synfigapp::CanvasInterface::disconnect_selected_layer_params)) )); parammenu.popup(0,0); @@ -2431,7 +2434,7 @@ CanvasView::on_id_changed() void CanvasView::on_mode_changed(synfigapp::CanvasInterface::Mode mode) { - // If the aninimate flag was set in mode... + // If the animate flag was set in mode... if(mode&synfigapp::MODE_ANIMATE) { Gtk::Image *icon; @@ -2530,7 +2533,7 @@ CanvasView::on_keyframe_button_pressed() } bool -CanvasView::duck_change_param(const Point &value,synfig::Layer::Handle layer, synfig::String param_name) +CanvasView::duck_change_param(const synfig::Point &value,synfig::Layer::Handle layer, synfig::String param_name) { return canvas_interface()->change_value(synfigapp::ValueDesc(layer,param_name),value); } @@ -2554,8 +2557,16 @@ CanvasView::on_duck_changed(const synfig::Point &value,const synfigapp::ValueDes return true; } +bool +CanvasView::on_duck_angle_changed(const synfig::Angle &rotation,const synfigapp::ValueDesc& value_desc) +{ + // \todo will this really always be the case? + assert(value_desc.get_value_type() == ValueBase::TYPE_ANGLE); + return canvas_interface()->change_value(value_desc, value_desc.get_value(get_time()).get(Angle()) + rotation); +} + void -CanvasView::selected_layer_color_set(Color color) +CanvasView::selected_layer_color_set(synfig::Color color) { synfigapp::SelectionManager::LayerList selected_list(get_selection_manager()->get_selected_layers()); synfigapp::SelectionManager::LayerList::iterator iter; @@ -2574,7 +2585,7 @@ CanvasView::selected_layer_color_set(Color color) } void -CanvasView::rebuild_ducks_layer_(synfig::TransformStack& transform_stack, Canvas::Handle canvas, std::set& selected_list) +CanvasView::rebuild_ducks_layer_(synfig::TransformStack& transform_stack, synfig::Canvas::Handle canvas, std::set& selected_list) { int transforms(0); String layer_name; @@ -2604,7 +2615,7 @@ CanvasView::rebuild_ducks_layer_(synfig::TransformStack& transform_stack, Canvas // do the bounding box thing bbox|=transform_stack.perform(layer->get_bounding_rect()); - // Grab the layer's list pf parameters + // Grab the layer's list of parameters Layer::ParamList paramlist(layer->get_param_list()); // Grab the layer vocabulary @@ -2990,6 +3001,7 @@ CanvasView::on_waypoint_clicked(synfigapp::ValueDesc value_desc,synfig::Waypoint case 2: { Gtk::Menu* waypoint_menu(manage(new Gtk::Menu())); + waypoint_menu->signal_hide().connect(sigc::bind(sigc::ptr_fun(&delete_widget), waypoint_menu)); waypoint_menu->items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-jump-to"), sigc::bind( @@ -3001,7 +3013,7 @@ CanvasView::on_waypoint_clicked(synfigapp::ValueDesc value_desc,synfig::Waypoint ) )); - waypoint_menu->items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("Edit Waypoint"), + waypoint_menu->items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID(_("Edit Waypoint")), sigc::mem_fun( waypoint_dialog, &Gtk::Widget::show @@ -3071,8 +3083,8 @@ CanvasView::on_drop_drag_data_received(const Glib::RefPtr& con { // We will make this true once we have a solid drop bool success(false); - //synfig::info("Droped data of type \"%s\"",selection_data.get_data_type()); - //synfig::info("Droped data of target \"%s\"",gdk_atom_name(selection_data->target)); + //synfig::info("Dropped data of type \"%s\"",selection_data.get_data_type()); + //synfig::info("Dropped data of target \"%s\"",gdk_atom_name(selection_data->target)); //synfig::info("selection=\"%s\"",gdk_atom_name(selection_data->selection)); if ((selection_data_.get_length() >= 0) && (selection_data_.get_format() == 8)) @@ -3108,8 +3120,8 @@ CanvasView::on_drop_drag_data_received(const Glib::RefPtr& con { synfig::String selection_data((gchar *)(selection_data_.get_data())); - // For some reason, GTK hands us a list of URL's seperated - // by not only Carrage-Returns, but also Line-Feeds. + // For some reason, GTK hands us a list of URLs separated + // by not only Carriage-Returns, but also Line-Feeds. // Line-Feeds will mess us up. Remove all the line-feeds. while(selection_data.find_first_of('\r')!=synfig::String::npos) selection_data.erase(selection_data.begin()+selection_data.find_first_of('\r')); @@ -3137,8 +3149,8 @@ CanvasView::on_drop_drag_data_received(const Glib::RefPtr& con // Strip the "file://" part from the filename filename=synfig::String(filename.begin()+sizeof("file://")-1,filename.end()); - String ext; - try{ext=(String(filename.begin()+filename.find_last_of('.')+1,filename.end()));}catch(...){continue;} + String ext(filename_extension(filename)); + if (ext.size()) ext = ext.substr(1); // skip initial '.' // If this is a SIF file, then we need to do things slightly differently if(ext=="sketch") @@ -3406,7 +3418,7 @@ CanvasView::on_audio_file_change(const std::string &f) } void -CanvasView::on_audio_offset_change(const Time &t) +CanvasView::on_audio_offset_change(const synfig::Time &t) { canvas_interface()->set_meta_data("audiooffset",t.get_string()); }