Blame synfig-studio/src/gui/pluginmanager.h

bb9720
/* === S Y N F I G ========================================================= */
bb9720
/*!	\file synfigapp/pluginmanager.h
bb9720
**	\brief Plugin Manager responsible for loading plugins
bb9720
**
bb9720
**	$Id$
bb9720
**
bb9720
**	\legal
bb9720
**	Copyright (c) 2012-2013 Konstantin Dmitriev
bb9720
**
bb9720
**	This package is free software; you can redistribute it and/or
bb9720
**	modify it under the terms of the GNU General Public License as
bb9720
**	published by the Free Software Foundation; either version 2 of
bb9720
**	the License, or (at your option) any later version.
bb9720
**
bb9720
**	This package is distributed in the hope that it will be useful,
bb9720
**	but WITHOUT ANY WARRANTY; without even the implied warranty of
bb9720
**	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
bb9720
**	General Public License for more details.
bb9720
**	\endlegal
bb9720
*/
bb9720
/* ========================================================================= */
bb9720
bb9720
/* === S T A R T =========================================================== */
bb9720
300985
#ifndef __SYNFIG_GTKMM_PLUGINMANAGER_H
300985
#define __SYNFIG_GTKMM_PLUGINMANAGER_H
bb9720
bb9720
/* === H E A D E R S ======================================================= */
bb9720
bb9720
#include <synfig string.h=""></synfig>
862ccf
#include <synfig canvas.h=""></synfig>
bb9720
#include <list></list>
bb9720
#include <etl handle=""></etl>
bb9720
bb9720
/* === M A C R O S ========================================================= */
bb9720
bb9720
/* === T Y P E D E F S ===================================================== */
bb9720
bb9720
/* === C L A S S E S & S T R U C T S ======================================= */
bb9720
300985
namespace studio {
862ccf
bb9720
class PluginManager
bb9720
{
bb9720
	/*
bb9720
 -- ** -- P U B L I C   T Y P E S ---------------------------------------------
bb9720
	*/
bb9720
bb9720
public:
bb9720
	struct plugin{
bb9720
		std::string id;
bb9720
		std::string name;
bb9720
		std::string path;
bb9720
	};
bb9720
bb9720
	/*
bb9720
 -- ** -- P U B L I C  D A T A ------------------------------------------------
bb9720
	*/
bb9720
bb9720
public:
bb9720
bb9720
	/*
bb9720
 -- ** -- P R I V A T E   D A T A ---------------------------------------------
bb9720
	*/
bb9720
bb9720
private:
bb9720
bb9720
	std::list< plugin > list_;
bb9720
bb9720
protected:
bb9720
	
bb9720
	/*
bb9720
 -- ** -- P U B L I C   M E T H O D S -----------------------------------------
bb9720
	*/
bb9720
bb9720
public:
bb9720
	PluginManager();
bb9720
	~PluginManager();
bb9720
bb9720
	void load_dir( const std::string &pluginsprefix );
bb9720
	void load_plugin( const std::string &path );
bb9720
bb9720
	std::list< plugin > get_list() { return list_; };
bb9720
862ccf
}; // END class PluginManager
bb9720
bb9720
bb9720
}; // END namespace synfigapp
bb9720
bb9720
/* === E N D =============================================================== */
bb9720
bb9720
#endif