Added copyright lines for files I've edited this year.
[synfig.git] / synfig-studio / trunk / src / gtkmm / layertree.cpp
index 09a7f26..ab05c82 100644 (file)
@@ -6,6 +6,7 @@
 **
 **     \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
@@ -41,6 +42,8 @@
 #include "instance.h"
 #include <gtkmm/treemodelsort.h>
 
+#include "general.h"
+
 #endif
 
 /* === U S I N G =========================================================== */
@@ -116,9 +119,6 @@ LayerTree::LayerTree():
        attach(*layer_amount_hscale, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK, 1, 1);
        layer_amount_adjustment_.signal_value_changed().connect(sigc::mem_fun(*this, &studio::LayerTree::on_amount_value_changed));
 
-
-
-
        Gtk::Image *icon;
        //Gtk::IconSize iconsize(Gtk::IconSize::from_name("synfig-small_icon"));
        Gtk::IconSize iconsize(Gtk::ICON_SIZE_SMALL_TOOLBAR);
@@ -143,19 +143,14 @@ LayerTree::LayerTree():
        button_duplicate->set_sensitive(false);
        button_delete->set_sensitive(false);
 
-
-
-
        get_selection()->signal_changed().connect(sigc::mem_fun(*this, &studio::LayerTree::on_selection_changed));
 
-
        get_layer_tree_view().set_reorderable(true);
        get_selection()->set_mode(Gtk::SELECTION_MULTIPLE);
        //get_param_tree_view().get_selection()->set_mode(Gtk::SELECTION_MULTIPLE);
        get_layer_tree_view().show();
        get_param_tree_view().show();
 
-
        hbox->show();
        layer_amount_hscale->show();
        blend_method_widget.show();
@@ -163,10 +158,6 @@ LayerTree::LayerTree():
        tooltips_.enable();
        disable_amount_changed_signal=false;
 
-
-
-
-
        blend_method_widget.set_param_desc(ParamDesc(Color::BlendMethod(),"blend_method"));
 
        blend_method_widget.set_value((int)Color::BLEND_COMPOSITE);
@@ -175,10 +166,10 @@ LayerTree::LayerTree():
        blend_method_widget.signal_activate().connect(sigc::mem_fun(*this, &studio::LayerTree::on_blend_method_changed));
 }
 
-
 LayerTree::~LayerTree()
 {
-       synfig::info("LayerTree::~LayerTree(): Deleted");
+       if (getenv("SYNFIG_DEBUG_DESTRUCTORS"))
+               synfig::info("LayerTree::~LayerTree(): Deleted");
 }
 
 Gtk::Widget*
@@ -186,7 +177,6 @@ LayerTree::create_layer_tree()
 {
        const LayerTreeStore::Model model;
 
-
        {       // --- O N / O F F ----------------------------------------------------
                //int index;
                //index=get_layer_tree_view().append_column_editable(_(" "),layer_model.active);
@@ -209,8 +199,7 @@ LayerTree::create_layer_tree()
                Gtk::TreeView::Column* column = get_layer_tree_view().get_column(index-1);
                get_layer_tree_view().set_expander_column(*column);
 
-
-               column->set_sort_column_id(layer_model.z_depth);
+               column->set_sort_column(layer_model.z_depth);
                //column->set_reorderable();
                //column->set_resizable();
                //column->set_clickable();
@@ -221,27 +210,27 @@ LayerTree::create_layer_tree()
        }
        //get_layer_tree_view().append_column(_("Z"),layer_model.z_depth);
        {       // --- N A M E --------------------------------------------------------
-               Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column(_("Layer")) );
+               Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column(_("Name")) );
 
                // Set up the icon cell-renderer
                Gtk::CellRendererText* cellrenderer = Gtk::manage( new Gtk::CellRendererText() );
+               column->pack_start(*cellrenderer,false);
+               column->add_attribute(cellrenderer->property_text(), layer_model.label);
                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);
+               column->set_reorderable();
+               // column->set_resizable();
+               column->set_clickable(true);
+               column->set_sort_column(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);
-
                //get_layer_tree_view().set_expander_column(*column);
-               //column->set_reorderable();
-               //column->set_resizable();
-               //column->set_clickable(false);
 
                //Gtk::CellRendererPixbuf* icon_cellrenderer = Gtk::manage( new Gtk::CellRendererPixbuf() );
                //column->pack_start(*icon_cellrenderer,false);
@@ -256,7 +245,7 @@ LayerTree::create_layer_tree()
                column_z_depth->set_resizable();
                column_z_depth->set_clickable();
 
-               column_z_depth->set_sort_column_id(layer_model.z_depth);
+               column_z_depth->set_sort_column(layer_model.z_depth);
        }
 
        get_layer_tree_view().set_enable_search(true);
@@ -267,7 +256,6 @@ LayerTree::create_layer_tree()
        listTargets.push_back( Gtk::TargetEntry("LAYER") );
        get_layer_tree_view().drag_dest_set(listTargets);
 
-
        // This makes things easier to read.
        get_layer_tree_view().set_rules_hint();
 
@@ -277,8 +265,6 @@ LayerTree::create_layer_tree()
        get_layer_tree_view().signal_event().connect(sigc::mem_fun(*this, &studio::LayerTree::on_layer_tree_event));
        get_layer_tree_view().show();
 
-
-
        Gtk::ScrolledWindow *scroll = manage(new class Gtk::ScrolledWindow());
        scroll->set_flags(Gtk::CAN_FOCUS);
        scroll->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
@@ -366,7 +352,7 @@ LayerTree::create_param_tree()
                column->set_reorderable();
                column->set_resizable();
                column->set_clickable();
-               column->set_sort_column_id(param_model.type);
+               column->set_sort_column(param_model.type);
        }
        /*{     // --- T I M E   T R A C K --------------------------------------------
                Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column(_("Time Track")) );
@@ -375,7 +361,7 @@ LayerTree::create_param_tree()
                // Set up the value-node cell-renderer
                cellrenderer_time_track=LayerParamTreeStore::add_cell_renderer_value_node(column);
                cellrenderer_time_track->property_mode()=Gtk::CELL_RENDERER_MODE_ACTIVATABLE;
-               cellrenderer_time_track->signal_waypoint_clicked().connect(sigc::mem_fun(*this, &studio::LayerTree::on_waypoint_clicked) );
+               cellrenderer_time_track->signal_waypoint_clicked_cellrenderer().connect(sigc::mem_fun(*this, &studio::LayerTree::on_waypoint_clicked_layertree) );
                cellrenderer_time_track->signal_waypoint_changed().connect(sigc::mem_fun(*this, &studio::LayerTree::on_waypoint_changed) );
                column->add_attribute(cellrenderer_time_track->property_value_desc(), param_model.value_desc);
                column->add_attribute(cellrenderer_time_track->property_canvas(), param_model.canvas);
@@ -390,8 +376,6 @@ LayerTree::create_param_tree()
                //get_param_tree_view().append_column(*column);
        }*/
 
-
-
        // This makes things easier to read.
        get_param_tree_view().set_rules_hint();
 
@@ -427,7 +411,7 @@ LayerTree::on_waypoint_changed( synfig::Waypoint waypoint , synfig::ValueNode::H
 }
 
 void
-LayerTree::select_layer(Layer::Handle layer)
+LayerTree::select_layer(synfig::Layer::Handle layer)
 {
        Gtk::TreeModel::Children::iterator iter;
        if(layer_tree_store_->find_layer_row(layer,iter))
@@ -522,18 +506,6 @@ LayerTree::clear_selected_layers()
        get_layer_tree_view().get_selection()->unselect_all();
 }
 
-
-
-
-
-
-
-
-
-
-
-
-
 void
 LayerTree::set_show_timetrack(bool x)
 {
@@ -547,7 +519,6 @@ LayerTree::set_model(Glib::RefPtr<LayerTreeStore> layer_tree_store)
 {
        layer_tree_store_=layer_tree_store;
 
-
        if(false)
        {
                sorted_layer_tree_store_=Gtk::TreeModelSort::create(layer_tree_store);
@@ -555,7 +526,7 @@ LayerTree::set_model(Glib::RefPtr<LayerTreeStore> layer_tree_store)
                sorted_layer_tree_store_->set_default_sort_func(sigc::ptr_fun(&studio::LayerTreeStore::z_sorter));
 
                //sorted_store->set_sort_func(model.time.index(),sigc::mem_fun(&studio::KeyframeTreeStore::time_sorter));
-               //sorted_store->set_sort_column_id(model.time.index(), Gtk::SORT_ASCENDING);
+               //sorted_store->set_sort_column(model.time.index(), Gtk::SORT_ASCENDING);
 
                get_layer_tree_view().set_model(sorted_layer_tree_store_);
        }
@@ -630,7 +601,6 @@ LayerTree::on_selection_changed()
                }
        }
 
-
        {
                if(!layer_list.empty())
                {
@@ -643,7 +613,6 @@ LayerTree::on_selection_changed()
                }
        }
 
-
        if(layer_list.empty())
        {
                button_raise->set_sensitive(false);
@@ -690,7 +659,6 @@ LayerTree::on_selection_changed()
        }
 }
 
-
 void
 LayerTree::on_blend_method_changed()
 {
@@ -720,7 +688,6 @@ LayerTree::on_amount_value_changed()
        disable_amount_changed_signal=false;
 }
 
-
 void
 LayerTree::on_edited_value(const Glib::ustring&path_string,synfig::ValueBase value)
 {
@@ -742,6 +709,7 @@ LayerTree::on_layer_renamed(const Glib::ustring&path_string,const Glib::ustring&
        if(!row)
                return;
        row[layer_model.label]=value;
+       get_layer_tree_view().columns_autosize();
 }
 
 void
@@ -755,15 +723,17 @@ LayerTree::on_layer_toggle(const Glib::ustring& path_string)
 }
 
 void
-LayerTree::on_waypoint_clicked(const Glib::ustring &path_string, synfig::Waypoint waypoint,int button)
+LayerTree::on_waypoint_clicked_layertree(const etl::handle<synfig::Node>& node __attribute__ ((unused)),
+                                                                                const synfig::Time& time __attribute__ ((unused)),
+                                                                                const synfig::Time& time_offset __attribute__ ((unused)),
+                                                                                int button __attribute__ ((unused)),
+                                                                                synfig::Waypoint::Side side __attribute__ ((unused)))
 {
-       Gtk::TreePath path(path_string);
-
-       const Gtk::TreeRow row = *(get_param_tree_view().get_model()->get_iter(path));
-       if(!row)
-               return;
+       //! \todo writeme
 
-       signal_waypoint_clicked()(static_cast<synfigapp::ValueDesc>(row[param_model.value_desc]),waypoint,button);
+       // synfigapp::ValueDesc value_desc;
+       // std::set<synfig::Waypoint, std::less<UniqueID> > waypoint_set;
+       // signal_waypoint_clicked_layertree()(value_desc,waypoint_set,button,side);
 }
 
 bool
@@ -843,7 +813,6 @@ LayerTree::on_layer_tree_event(GdkEvent *event)
        return false;
 }
 
-
 bool
 LayerTree::on_param_tree_event(GdkEvent *event)
 {
@@ -1074,25 +1043,6 @@ LayerTree::on_delete_pressed()
        layer_tree_store_->canvas_interface()->get_instance()->perform_action(action);
 }
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 /*
 void
 LayerTree::on_drag_data_get(const Glib::RefPtr<Gdk::DragContext>&context, Gtk::SelectionData& selection_data, guint info, guint time)
@@ -1101,24 +1051,19 @@ LayerTree::on_drag_data_get(const Glib::RefPtr<Gdk::DragContext>&context, Gtk::S
        synfig::info("Dragged data of target \"%s\"",gdk_atom_name(selection_data->target));
        synfig::info("Dragged selection=\"%s\"",gdk_atom_name(selection_data->selection));
 
-       DEBUGPOINT();
-
        Gtk::TreeModel::Path path;
        Gtk::TreeViewColumn *column;
        int cell_x, cell_y;
        if(get_selection()
        Gtk::TreeRow row = *(get_selection()->get_selected());
-       DEBUGPOINT();
 
        if(synfig::String(gdk_atom_name(selection_data->target))=="LAYER" && (bool)row[model.is_layer])
        {
-               DEBUGPOINT();
                Layer* layer(((Layer::Handle)row[model.layer]).get());
                assert(layer);
                selection_data.set(8, reinterpret_cast<const guchar*>(&layer), sizeof(layer));
                return;
        }
-       DEBUGPOINT();
 }
 
 void
@@ -1149,7 +1094,6 @@ LayerTree::on_drop_drag_data_received(const Glib::RefPtr<Gdk::DragContext>& cont
 
        Gtk::TreeRow row = *(get_model()->get_iter(path));
 
-
        if ((selection_data.get_length() >= 0) && (selection_data.get_format() == 8))
        {
                if(synfig::String(selection_data.get_data_type())=="LAYER")do