X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=synfig-studio%2Ftags%2Fstable%2Fsynfig-studio%2Fsrc%2Fgtkmm%2Fmetadatatreestore.h;fp=synfig-studio%2Ftags%2Fstable%2Fsynfig-studio%2Fsrc%2Fgtkmm%2Fmetadatatreestore.h;h=9331c15419f0265d32980e9bcef07f7903da31ec;hb=21d980ed71bb16a1ae1b2ecf2e49ed94bcb29043;hp=0000000000000000000000000000000000000000;hpb=f01d338fbbb649c71735734341919299a3d913b0;p=synfig.git diff --git a/synfig-studio/tags/stable/synfig-studio/src/gtkmm/metadatatreestore.h b/synfig-studio/tags/stable/synfig-studio/src/gtkmm/metadatatreestore.h new file mode 100644 index 0000000..9331c15 --- /dev/null +++ b/synfig-studio/tags/stable/synfig-studio/src/gtkmm/metadatatreestore.h @@ -0,0 +1,133 @@ +/* === S Y N F I G ========================================================= */ +/*! \file metadatatreestore.h +** \brief Template Header +** +** $Id: metadatatreestore.h,v 1.1.1.1 2005/01/07 03:34:36 darco Exp $ +** +** \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_METADATATREESTORE_H +#define __SYNFIG_STUDIO_METADATATREESTORE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include + +/* === 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 synfigapp { class CanvasInterface; } + +namespace studio { + +class MetaDataTreeStore : virtual public Gtk::TreeStore +{ + /* + -- ** -- P U B L I C T Y P E S --------------------------------------------- + */ + +public: + + class Model : public Gtk::TreeModel::ColumnRecord + { + public: + public: + Gtk::TreeModelColumn key; + Gtk::TreeModelColumn data; + + Model() + { + add(key); + add(data); + } + }; + + /* + -- ** -- P U B L I C D A T A ------------------------------------------------ + */ + +public: + + const Model model; + + /* + -- ** -- P R I V A T E D A T A --------------------------------------------- + */ + +private: + + etl::loose_handle canvas_interface_; + + /* + -- ** -- 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: + + void meta_data_changed(synfig::String key); + + /* + -- ** -- P U B L I C M E T H O D S ----------------------------------------- + */ + +public: + + ~MetaDataTreeStore(); + + etl::loose_handle get_canvas_interface() { return canvas_interface_; } + etl::loose_handle get_canvas_interface()const { return canvas_interface_; } + synfig::Canvas::Handle get_canvas()const { return canvas_interface_->get_canvas(); } + synfig::Canvas::Handle get_canvas() { return canvas_interface_->get_canvas(); } + + void rebuild(); + + void refresh() { rebuild(); } + + /* + -- ** -- P R O T E C T E D M E T H O D S ----------------------------------- + */ + +protected: + MetaDataTreeStore(etl::loose_handle); + void get_value_vfunc (const Gtk::TreeModel::iterator& iter, int column, Glib::ValueBase& value)const; + void set_value_impl(const Gtk::TreeModel::iterator& iter, int column, const Glib::ValueBase& value); + +public: + + static Glib::RefPtr create(etl::loose_handle); + +}; // END of class MetaDataTreeStore + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif