X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftags%2Fsynfigstudio_0_61_06%2Fsrc%2Fgtkmm%2Flayergrouptree.h;fp=synfig-studio%2Ftags%2Fsynfigstudio_0_61_06%2Fsrc%2Fgtkmm%2Flayergrouptree.h;h=a17c4700f5ae9e278ae76a3b86260589356e4447;hb=5fd3dd11683d8b3e3aae5a4655f1525b91bc3e67;hp=0000000000000000000000000000000000000000;hpb=e9077d5c0858c23469cc10d6aeb8ad1d6d86caae;p=synfig.git diff --git a/synfig-studio/tags/synfigstudio_0_61_06/src/gtkmm/layergrouptree.h b/synfig-studio/tags/synfigstudio_0_61_06/src/gtkmm/layergrouptree.h new file mode 100644 index 0000000..a17c470 --- /dev/null +++ b/synfig-studio/tags/synfigstudio_0_61_06/src/gtkmm/layergrouptree.h @@ -0,0 +1,127 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layergrouptree.h +** \brief Template Header +** +** $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 +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_STUDIO_LAYERGROUPTREE_H +#define __SYNFIG_STUDIO_LAYERGROUPTREE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include "layergrouptreestore.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { class Layer; } + +namespace studio { + +class LayerGroupTree : public Gtk::TreeView +{ + /* + -- ** -- P U B L I C T Y P E S --------------------------------------------- + */ + +public: + + typedef std::list LayerList; + + /* + -- ** -- P U B L I C D A T A ------------------------------------------------ + */ + +public: + + LayerGroupTreeStore::Model model; + + /* + -- ** -- P R I V A T E D A T A --------------------------------------------- + */ + +private: + + Glib::RefPtr layer_group_tree_store_; + + Gtk::CellRendererText *cell_renderer_description; + + bool editable_; + + + sigc::signal > signal_popup_layer_menu_; + +// sigc::signal signal_select_layers_; + Gtk::TreeView::Column* label_column; + + /* + -- ** -- P R I V A T E M E T H O D S --------------------------------------- + */ + +private: + + /* + -- ** -- S I G N A L T E R M I N A L S ------------------------------------- + */ + +private: + + bool on_event(GdkEvent *event); + + /* + -- ** -- P U B L I C M E T H O D S ----------------------------------------- + */ + +public: + + LayerGroupTree(); + ~LayerGroupTree(); + void set_cursor(const Gtk::TreeModel::Path& path, bool start_editing=false); + + Glib::RefPtr get_model() { return layer_group_tree_store_; } + + sigc::signal >& signal_popup_layer_menu() { return signal_popup_layer_menu_; } + +// sigc::signal& signal_select_layers() { return signal_select_layers_; } + + void set_model(Glib::RefPtr layer_group_tree_store_); + + void set_editable(bool x=true); + + bool get_editable()const { return editable_; } + + std::list get_selected_groups()const; + + LayerList get_selected_layers()const; +}; // END of LayerGroupTree + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif