From 9c0d7d72d70082a54f823cd44c0ccda5da64bb6f Mon Sep 17 00:00:00 2001 From: Doug McLain Date: Mon, 2 Jun 2008 05:02:28 +0000 Subject: remove empty sigc++2 directory git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/pbd/pbd/functor_command.h | 121 ----------------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 libs/pbd/pbd/functor_command.h (limited to 'libs/pbd/pbd/functor_command.h') diff --git a/libs/pbd/pbd/functor_command.h b/libs/pbd/pbd/functor_command.h deleted file mode 100644 index e335f4418e..0000000000 --- a/libs/pbd/pbd/functor_command.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - Copyright (C) 2007 Paul Davis - - This program 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 program 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. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#ifndef __lib_pbd_functor_command_h__ -#define __lib_pbd_functor_command_h__ - -#include -#include -#include -#include - -#include -#include -#include -#include - -/** This command class is initialized - */ - -namespace PBD { - -template -class FunctorCommand : public Command -{ - private: - typedef void (obj_type::*functor_type)(arg_type); - typedef std::map< std::string, functor_type > FunctorMap; - typedef typename FunctorMap::iterator FunctorMapIterator; - - public: - FunctorCommand( - std::string functor, - obj_type object, - arg_type b, - arg_type a - ) : functor_name(functor), - object(object), - before(b), - after(a) - { - method = find_functor(functor); - - /* catch destruction of the object */ - new PBD::Shiva< obj_type, FunctorCommand > (object, *this); - } - - ~FunctorCommand() { - GoingAway(); - } - - void operator() () { - (object.*method) (after); - } - - void undo() { - (object.*method) (before); - } - - virtual XMLNode &get_state() { - std::stringstream ss; - - XMLNode *node = new XMLNode("FunctorCommand"); - node->add_property("functor", functor_name); - ss << before; - node->add_property("before", ss.str()); - ss.clear (); - ss << after; - node->add_property("after", ss.str()); - - return *node; - } - - static void register_functor(std::string name, functor_type f) { - functor_map[name] = f; - } - - private: - static functor_type find_functor(std::string name) { - FunctorMapIterator iter; - - if((iter = functor_map.find(name)) == functor_map.end()) { - throw failed_constructor(); - } - - return iter->second; - } - - protected: - std::string functor_name; - obj_type &object; - arg_type before; - arg_type after; - functor_type method; - static FunctorMap functor_map; -}; - -// static initialization of functor_map... -template -typename FunctorCommand::FunctorMap -FunctorCommand::functor_map; - -}; - -#endif // __lib_pbd_functor_command_h__ - -- cgit v1.2.3