X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Fsrc%2Fgtkmm%2Fdock_layers.cpp;fp=synfig-studio%2Fsrc%2Fgtkmm%2Fdock_layers.cpp;h=0000000000000000000000000000000000000000;hb=254e11cc9af58ba7978466da54cbebf69096eb91;hp=2c75e8305b3f089723f2fdff0392de590a540c26;hpb=c11c4966980ed301f40b3dcc24e4fbec525f93e3;p=synfig.git diff --git a/synfig-studio/src/gtkmm/dock_layers.cpp b/synfig-studio/src/gtkmm/dock_layers.cpp deleted file mode 100644 index 2c75e83..0000000 --- a/synfig-studio/src/gtkmm/dock_layers.cpp +++ /dev/null @@ -1,295 +0,0 @@ -/* === S Y N F I G ========================================================= */ -/*! \file dock_layers.cpp -** \brief Template File -** -** $Id$ -** -** \legal -** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007, 2008 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 -** 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 -*/ -/* ========================================================================= */ - -/* === H E A D E R S ======================================================= */ - -#ifdef USING_PCH -# include "pch.h" -#else -#ifdef HAVE_CONFIG_H -# include -#endif - -#include "dock_layers.h" -#include "app.h" - -#include -#include -#include "instance.h" -#include -#include -#include -#include -#include "layertreestore.h" -#include "layertree.h" -#include "canvasview.h" -#include "layeractionmanager.h" -//#include - -#include "general.h" - -#endif - -/* === U S I N G =========================================================== */ - -using namespace std; -using namespace etl; -using namespace synfig; -using namespace studio; - -/* === M A C R O S ========================================================= */ - -/* === G L O B A L S ======================================================= */ - -/* === P R O C E D U R E S ================================================= */ - -/*static void do_nothing(reference_counter x) -{ - synfig::info(__FILE__":%d:ref_count.count()=%d",__LINE__,x.count()); -}*/ - -/* === M E T H O D S ======================================================= */ - -Dock_Layers::Dock_Layers(): - Dock_CanvasSpecific("layers",_("Layers"),Gtk::StockID("synfig-layer")), - layer_action_manager(new LayerActionManager) -{ - if(layer_action_manager)layer_action_manager->set_ui_manager(App::ui_manager()); - - action_group_new_layers=Gtk::ActionGroup::create("action_group_new_layers"); - action_group_layer_ops=Gtk::ActionGroup::create("action_group_layer_ops"); - - std::map category_map; - - // Build layer creation actions - synfig::Layer::Book::iterator iter; - for(iter=synfig::Layer::book().begin();iter!=synfig::Layer::book().end();++iter) - { - synfig::Layer::Book::value_type lyr(*iter); - - if(lyr.second.category==CATEGORY_DO_NOT_USE) - continue; - - action_group_new_layers->add(Gtk::Action::create( - strprintf("layer-new-%s",lyr.first.c_str()), - layer_icon(lyr.first.c_str()), - lyr.second.local_name,lyr.second.local_name - ), - sigc::hide_return( - sigc::bind( - sigc::mem_fun(*this,&studio::Dock_Layers::add_layer), - lyr.first - ) - ) - ); - - category_map[lyr.second.category]+=strprintf("",lyr.first.c_str()); - - //(*category_map)[lyr.second.category]->items().push_back(Gtk::Menu_Helpers::MenuElem(lyr.second.local_name, - //)); - } - - { - Glib::RefPtr action_group_categories(Gtk::ActionGroup::create("layer-category")); - synfig::String layer_ui_info; - - layer_ui_info+=""; - - std::map::iterator iter; - for(iter=category_map.begin();iter!=category_map.end();++iter) - { - layer_ui_info+=strprintf("%s",iter->first.c_str(),iter->second.c_str()); - action_group_categories->add(Gtk::Action::create(iter->first.c_str(),dgettext("synfig", iter->first.c_str()))); - } - - layer_ui_info+=""; - - App::ui_manager()->insert_action_group(action_group_categories); - App::ui_manager()->insert_action_group(action_group_new_layers); - - try - { - App::ui_manager()->add_ui_from_string(layer_ui_info); - } - catch(Glib::MarkupError x) - { - error("%s:%d caught MarkupError code %d: %s", __FILE__, __LINE__, x.code(), x.what().c_str()); - error("%s:%d with markup: \"%s\"", __FILE__, __LINE__, layer_ui_info.c_str()); - exit(1); - } - } - - if(layer_action_manager) - action_group_layer_ops->add(layer_action_manager->get_action_select_all_child_layers()); - - action_group_layer_ops->add( Gtk::Action::create("toolbar-layer", _("Layer Ops")) ); - App::ui_manager()->insert_action_group(action_group_layer_ops); - - Glib::ustring ui_info = - "" - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - "" - ; - - App::ui_manager()->add_ui_from_string(ui_info); - - action_group_new_layers->set_sensitive(false); - - set_toolbar(*dynamic_cast(App::ui_manager()->get_widget("/toolbar-layer"))); - - - - - - /* - reference_counter ref_count; - synfig::info(__FILE__":%d:ref_count.count()=%d",__LINE__,ref_count.count()); - - { - sigc::signal tmp_signal; - - tmp_signal.connect( - sigc::bind( - sigc::ptr_fun(do_nothing), - ref_count - ) - ); - - synfig::info(__FILE__":%d:ref_count.count()=%d",__LINE__,ref_count.count()); - tmp_signal(); - synfig::info(__FILE__":%d:ref_count.count()=%d",__LINE__,ref_count.count()); - - tmp_signal.clear(); - synfig::info(__FILE__":%d:ref_count.count()=%d",__LINE__,ref_count.count()); - - tmp_signal(); - synfig::info(__FILE__":%d:ref_count.count()=%d",__LINE__,ref_count.count()); - tmp_signal.connect( - sigc::bind( - sigc::ptr_fun(do_nothing), - ref_count - ) - ); - synfig::info(__FILE__":%d:ref_count.count()=%d",__LINE__,ref_count.count()); - } - synfig::info(__FILE__":%d:ref_count.count()=%d",__LINE__,ref_count.count()); - assert(ref_count.count()==1); - */ -} - - -Dock_Layers::~Dock_Layers() -{ - delete layer_action_manager; -} - - -void -Dock_Layers::init_canvas_view_vfunc(etl::loose_handle canvas_view) -{ - Glib::RefPtr layer_tree_store; - layer_tree_store=LayerTreeStore::create(canvas_view->canvas_interface()); - - canvas_view->set_tree_model(get_name(),layer_tree_store); - LayerTree* layer_tree(new LayerTree()); - layer_tree->set_time_adjustment(canvas_view->time_adjustment()); - - layer_tree->signal_edited_value().connect( - sigc::hide_return( - sigc::mem_fun(*canvas_view->canvas_interface(), &synfigapp::CanvasInterface::change_value) - ) - ); - - // (a) should be before (b), (b) should be before (c) - canvas_view->set_ext_widget(get_name()+"_cmp",layer_tree); // (a) - canvas_view->set_ext_widget(get_name(),&layer_tree->get_layer_tree_view()); - canvas_view->set_ext_widget("params",&layer_tree->get_param_tree_view()); - - layer_tree->set_model(layer_tree_store); // (b) - canvas_view->set_tree_model("params",layer_tree->get_param_tree_view().get_model()); // (c) - - /* - canvas_view->layermenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("gtk-delete"),Gtk::AccelKey("Delete"), - sigc::mem_fun(*layer_tree, &LayerTree::on_delete_pressed)) - ); - */ - - // Hide the time bar - if(canvas_view->get_canvas()->rend_desc().get_time_start()==canvas_view->get_canvas()->rend_desc().get_time_end()) - canvas_view->hide_timebar(); - layer_tree_store->rebuild(); - present(); -} - -void -Dock_Layers::changed_canvas_view_vfunc(etl::loose_handle canvas_view) -{ - if(canvas_view) - { - Gtk::Widget* tree_view(canvas_view->get_ext_widget(get_name())); - - add(*tree_view); - tree_view->show(); - action_group_new_layers->set_sensitive(true); - if(layer_action_manager) - { - layer_action_manager->set_layer_tree(dynamic_cast(canvas_view->get_ext_widget(get_name()+"_cmp"))); - layer_action_manager->set_canvas_interface(canvas_view->canvas_interface()); - layer_action_manager->refresh(); - } - } - else - { - action_group_new_layers->set_sensitive(false); - if(layer_action_manager) - { - layer_action_manager->clear(); - layer_action_manager->set_canvas_interface(0); - layer_action_manager->set_layer_tree(0); - } - - clear_previous(); - } -} - -void -Dock_Layers::add_layer(synfig::String id) -{ - etl::loose_handle canvas_view(get_canvas_view()); - if(canvas_view) - { - canvas_view->add_layer(id); - } -}