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%2Flayeractionmanager.h;fp=synfig-studio%2Ftags%2Fsynfigstudio_%40VERSION_MAJ%40_%40VERSION_MIN%40_%40VERSION_REV%40%2Fsrc%2Fgtkmm%2Flayeractionmanager.h;h=91c400f10a5ed87ed35d56b71c0a6bf2a69e8711;hb=d98a5bdd45e2c836aa7996f22516008f1ce29947;hp=0000000000000000000000000000000000000000;hpb=c33037508a9f5a0607b14f3feed692a0d364d68a;p=synfig.git diff --git a/synfig-studio/tags/synfigstudio_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@/src/gtkmm/layeractionmanager.h b/synfig-studio/tags/synfigstudio_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@/src/gtkmm/layeractionmanager.h new file mode 100644 index 0000000..91c400f --- /dev/null +++ b/synfig-studio/tags/synfigstudio_@VERSION_MAJ@_@VERSION_MIN@_@VERSION_REV@/src/gtkmm/layeractionmanager.h @@ -0,0 +1,112 @@ +/* === S Y N F I G ========================================================= */ +/*! \file layeractionmanager.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_LAYER_ACTION_MANAGER_H +#define __SYNFIG_LAYER_ACTION_MANAGER_H + +/* === H E A D E R S ======================================================= */ + +#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 studio { + +class LayerTree; + +class LayerActionManager +{ + Glib::RefPtr ui_manager_; + //Glib::RefPtr tree_selection_; + LayerTree* layer_tree_; + etl::handle canvas_interface_; + + Glib::RefPtr action_group_; + Gtk::UIManager::ui_merge_id popup_id_; + + + Glib::RefPtr action_group_copy_paste; + + Glib::RefPtr action_cut_; + Glib::RefPtr action_copy_; + Glib::RefPtr action_paste_; + + Glib::RefPtr action_amount_inc_; + Glib::RefPtr action_amount_dec_; + Glib::RefPtr action_amount_; + + Glib::RefPtr action_select_all_child_layers_; + sigc::connection select_all_child_layers_connection; + + std::list clipboard_; + + sigc::connection selection_changed_connection; + + bool queued; + sigc::connection queue_refresh_connection; + + std::list update_connection_list; + + void cut(); + void copy(); + void paste(); + void export_dup_nodes(synfig::Layer::Handle, synfig::Canvas::Handle, int &); + + void amount_inc(); + void amount_dec(); + +public: + void queue_refresh(); + + LayerActionManager(); + ~LayerActionManager(); + + void set_ui_manager(const Glib::RefPtr &x); + Glib::RefPtr get_ui_manager()const { return ui_manager_; } + + void set_layer_tree(LayerTree* x); + LayerTree* get_layer_tree()const { return layer_tree_; } + + void set_canvas_interface(const etl::handle &x); + etl::handle get_canvas_interface()const { return canvas_interface_; } + + etl::loose_handle get_instance()const { return canvas_interface_->get_instance(); } + + void refresh(); + void clear(); + + Glib::RefPtr get_action_select_all_child_layers() { return action_select_all_child_layers_; } +}; // END of LayerActionManager + +}; // END of namespace studio + +/* === E N D =============================================================== */ + +#endif