X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Flayertree.cpp;h=9f84d8d6dcdb0da3c448ed5c3fd35884292e1b30;hb=74d03302d1e6f05f1f90d4c2a3b38a03aa51dc86;hp=a480cf8e24c24d5e65f062a8b6e974a6462a8e1b;hpb=02252941b29de64037116f4d37991a38d9ff0d94;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/layertree.cpp b/synfig-studio/trunk/src/gtkmm/layertree.cpp index a480cf8..9f84d8d 100644 --- a/synfig-studio/trunk/src/gtkmm/layertree.cpp +++ b/synfig-studio/trunk/src/gtkmm/layertree.cpp @@ -5,16 +5,17 @@ ** $Id: layertree.cpp,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** 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. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** 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 */ /* ========================================================================= */ @@ -187,10 +188,21 @@ LayerTree::create_layer_tree() { // --- O N / O F F ---------------------------------------------------- - int index; - index=get_layer_tree_view().append_column_editable(_(" "),layer_model.active); + //int index; + //index=get_layer_tree_view().append_column_editable(_(" "),layer_model.active); //Gtk::TreeView::Column* column = get_layer_tree_view().get_column(index-1); - } + + Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column(_(" ")) ); + + // Set up the icon cell-renderer + Gtk::CellRendererToggle* cellrenderer = Gtk::manage( new Gtk::CellRendererToggle() ); + cellrenderer->signal_toggled().connect(sigc::mem_fun(*this, &studio::LayerTree::on_layer_toggle)); + + column->pack_start(*cellrenderer,false); + column->add_attribute(cellrenderer->property_active(), layer_model.active); + get_layer_tree_view().append_column(*column); + } + { // --- I C O N -------------------------------------------------------- int index; index=get_layer_tree_view().append_column(_("Z"),layer_model.icon); @@ -209,8 +221,19 @@ LayerTree::create_layer_tree() } //get_layer_tree_view().append_column(_("Z"),layer_model.z_depth); { // --- N A M E -------------------------------------------------------- - int index; - index=get_layer_tree_view().append_column_editable(_("Layer"),layer_model.label); + Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column(_("Layer")) ); + + // Set up the icon cell-renderer + Gtk::CellRendererText* cellrenderer = Gtk::manage( new Gtk::CellRendererText() ); + cellrenderer->signal_edited().connect(sigc::mem_fun(*this, &studio::LayerTree::on_layer_renamed)); + cellrenderer->property_editable()=true; + + column->pack_start(*cellrenderer,false); + column->add_attribute(cellrenderer->property_text(), layer_model.label); + get_layer_tree_view().append_column(*column); + + // int index; +// index=get_layer_tree_view().append_column_editable(_("Layer"),layer_model.label); //Gtk::TreeView::Column* column = get_layer_tree_view().get_column(index-1); //column->set_sort_column_id(layer_model.index); @@ -235,48 +258,7 @@ LayerTree::create_layer_tree() column_z_depth->set_sort_column_id(layer_model.z_depth); } - /* - { // --- N A M E -------------------------------------------------------- - Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column(_("Layer")) ); - // Set up the icon cell-renderer - Gtk::CellRendererPixbuf* icon_cellrenderer = Gtk::manage( new Gtk::CellRendererPixbuf() ); - column->pack_start(*icon_cellrenderer,false); - column->add_attribute(icon_cellrenderer->property_pixbuf(), layer_model.icon); - - // Set up the text attributes - Pango::AttrList attr_list; - { - Pango::AttrInt pango_size(Pango::Attribute::create_attr_size(Pango::SCALE*8)); - pango_size.set_start_index(0); - pango_size.set_end_index(64); - attr_list.change(pango_size); - } - - // Pack the label into the column - //column->pack_start(layer_model.label,true); - Gtk::CellRendererText* text_cellrenderer = Gtk::manage( new Gtk::CellRendererText() ); - column->pack_start(*text_cellrenderer,false); - column->add_attribute(text_cellrenderer->property_text(), layer_model.label); - text_cellrenderer->property_attributes()=attr_list; - - // Finish setting up the column - column->set_reorderable(); - column->set_resizable(); - column->set_clickable(); - get_layer_tree_view().append_column(*column); - get_layer_tree_view().set_expander_column(*column); - } - */ - -/* { - Gtk::Widget& widget(get_layer_tree_view()); - Pango::FontDescription font(widget.get_modifier_style()->get_font()); - font.set_size(font.get_size()*3/4); - widget.get_modifier_style()->set_font(font); - widget.modify_style(widget.get_modifier_style()); - } -*/ get_layer_tree_view().set_enable_search(true); get_layer_tree_view().set_search_column(layer_model.label); get_layer_tree_view().set_search_equal_func(sigc::ptr_fun(&studio::LayerTreeStore::search_func)); @@ -739,17 +721,26 @@ LayerTree::on_edited_value(const Glib::ustring&path_string,synfig::ValueBase val //signal_edited_value()(row[param_model.value_desc],value); } -/* +void +LayerTree::on_layer_renamed(const Glib::ustring&path_string,const Glib::ustring& value) +{ + Gtk::TreePath path(path_string); + + const Gtk::TreeRow row = *(get_layer_tree_view().get_model()->get_iter(path)); + if(!row) + return; + row[layer_model.label]=value; +} + void LayerTree::on_layer_toggle(const Glib::ustring& path_string) { Gtk::TreePath path(path_string); const Gtk::TreeRow row = *(get_layer_tree_view().get_model()->get_iter(path)); - - signal_layer_toggle()(row[layer_model.layer]); + bool active=static_cast(row[layer_model.active]); + row[layer_model.active]=!active; } -*/ void LayerTree::on_waypoint_clicked(const Glib::ustring &path_string, synfig::Waypoint waypoint,int button)