X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Fsrc%2Fgui%2Fmetadatatreestore.h;fp=synfig-studio%2Fsrc%2Fgui%2Fmetadatatreestore.h;h=6ad41d4f27bc5a54348803232cf1a4c8651aa916;hb=254e11cc9af58ba7978466da54cbebf69096eb91;hp=0000000000000000000000000000000000000000;hpb=c11c4966980ed301f40b3dcc24e4fbec525f93e3;p=synfig.git diff --git a/synfig-studio/src/gui/metadatatreestore.h b/synfig-studio/src/gui/metadatatreestore.h new file mode 100644 index 0000000..6ad41d4 --- /dev/null +++ b/synfig-studio/src/gui/metadatatreestore.h @@ -0,0 +1,133 @@ +/* === S Y N F I G ========================================================= */ +/*! \file metadatatreestore.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_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