X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=synfig-studio%2Ftags%2Fsynfigstudio_%40VERSION_MAJ%40_%40VERSION_MIN%40_%40VERSION_REV%40%2Fsrc%2Fgtkmm%2Fkeyframetree.h;fp=synfig-studio%2Ftags%2Fsynfigstudio_%40VERSION_MAJ%40_%40VERSION_MIN%40_%40VERSION_REV%40%2Fsrc%2Fgtkmm%2Fkeyframetree.h;h=31d820e9b0ef6291cd84aee6efb751629eb5a665;hb=d98a5bdd45e2c836aa7996f22516008f1ce29947;hp=0000000000000000000000000000000000000000;hpb=c33037508a9f5a0607b14f3feed692a0d364d68a;p=synfig.git diff --git a/synfig-studio/tags/synfigstudio_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@/src/gtkmm/keyframetree.h b/synfig-studio/tags/synfigstudio_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@/src/gtkmm/keyframetree.h new file mode 100644 index 0000000..31d820e --- /dev/null +++ b/synfig-studio/tags/synfigstudio_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@/src/gtkmm/keyframetree.h @@ -0,0 +1,149 @@ +/* === S Y N F I G ========================================================= */ +/*! \file keyframetree.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_KEYFRAMETREE_H +#define __SYNFIG_STUDIO_KEYFRAMETREE_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include +#include +#include "keyframetreestore.h" +#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 studio { + +class CellRenderer_Time; + +class KeyframeTree : public Gtk::TreeView +{ + /* + -- ** -- P U B L I C T Y P E S --------------------------------------------- + */ + +public: + + enum ColumnID + { + COLUMNID_TIME, + COLUMNID_DESCRIPTION, + COLUMNID_JUMP, + + COLUMNID_END //!< \internal + }; + + /* + -- ** -- P U B L I C D A T A ------------------------------------------------ + */ + +public: + + KeyframeTreeStore::Model model; + + /* + -- ** -- P R I V A T E D A T A --------------------------------------------- + */ + +private: + + Glib::RefPtr keyframe_tree_store_; + + CellRenderer_Time *cell_renderer_time; + + CellRenderer_Time *cell_renderer_time_delta; + + Gtk::CellRendererText *cell_renderer_description; + + sigc::signal signal_edited_; + + sigc::signal signal_edited_time_; + + sigc::signal signal_edited_description_; + + sigc::signal signal_user_click_; + + bool editable_; + + /* + -- ** -- 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 on_edited_time(const Glib::ustring&path_string,synfig::Time time); + + void on_edited_time_delta(const Glib::ustring&path_string,synfig::Time time); + + void on_edited_description(const Glib::ustring&path_string,const Glib::ustring &description); + + bool on_event(GdkEvent *event); + + void on_rend_desc_changed(); + + /* + -- ** -- P U B L I C M E T H O D S ----------------------------------------- + */ + +public: + + KeyframeTree(); + ~KeyframeTree(); + + void set_model(Glib::RefPtr keyframe_tree_store_); + + void set_editable(bool x=true); + + bool get_editable()const { return editable_; } + + //! Signal called when a keyframe has been edited in any way + sigc::signal& signal_edited() { return signal_edited_; } + + //! Signal called when a time has been edited. + sigc::signal& signal_edited_time() { return signal_edited_time_; } + + //! Signal called when a description has been edited. + sigc::signal& signal_edited_description() { return signal_edited_description_; } + + sigc::signal& signal_user_click() { return signal_user_click_; } +}; // END of KeyframeTree + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif