X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=inline;f=synfig-studio%2Ftags%2F0.61.08%2Fsrc%2Fgtkmm%2Fdock_params.cpp;fp=synfig-studio%2Ftags%2F0.61.08%2Fsrc%2Fgtkmm%2Fdock_params.cpp;h=a3b478c946b0e4c5f0479f57d567faf96811ecb2;hb=79fcd5b32f0accf9f1d13f9b6ded0d628e6f4b33;hp=0000000000000000000000000000000000000000;hpb=c1f365570ac471ede0668ad976fad345747aa8de;p=synfig.git diff --git a/synfig-studio/tags/0.61.08/src/gtkmm/dock_params.cpp b/synfig-studio/tags/0.61.08/src/gtkmm/dock_params.cpp new file mode 100644 index 0000000..a3b478c --- /dev/null +++ b/synfig-studio/tags/0.61.08/src/gtkmm/dock_params.cpp @@ -0,0 +1,140 @@ +/* === S Y N F I G ========================================================= */ +/*! \file dock_params.cpp +** \brief Template File +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** 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_params.h" +#include "app.h" + +#include +#include +#include "instance.h" +#include +#include +#include +#include "canvasview.h" +#include "layerparamtreestore.h" +#include "workarea.h" + +#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 ================================================= */ + +/* === M E T H O D S ======================================================= */ + +Dock_Params::Dock_Params(): + Dock_CanvasSpecific("params",_("Params"),Gtk::Stock::INDEX/*Gtk::StockID("synfig-params")*/), + action_group(Gtk::ActionGroup::create()) +{ +/* + App::ui_manager()->insert_action_group(action_group_layer_ops); + + Glib::ustring ui_info = + "" + " " + " " + " " + " " + "" + ; + + App::ui_manager()->add_ui_from_string(ui_info); + */ +} + +Dock_Params::~Dock_Params() +{ +} + + +void +Dock_Params::init_canvas_view_vfunc(etl::loose_handle canvas_view) +{ + Gtk::TreeView* tree_view( + static_cast(canvas_view->get_ext_widget(get_name())) + ); + + if(tree_view) + { + tree_view->get_selection()->signal_changed().connect( + sigc::mem_fun( + *this, + &Dock_Params::refresh_selected_param + ) + ); + } +} + +void +Dock_Params::refresh_selected_param() +{ + Gtk::TreeView* tree_view( + static_cast(get_canvas_view()->get_ext_widget(get_name())) + ); + Gtk::TreeModel::iterator iter(tree_view->get_selection()->get_selected()); + + if(iter) + { + LayerParamTreeStore::Model model; + get_canvas_view()->work_area->set_selected_value_node( + (synfig::ValueNode::Handle)(*iter)[model.value_node] + ); + } + else + { + get_canvas_view()->work_area->set_selected_value_node(0); + } +} + +void +Dock_Params::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(); + show_all(); + } + else clear_previous(); +}