/****************************************************************************
**
** One line to give the program's name and a brief idea of what it does.
** Copyright (C) 2005      Romain Gaucher
**
** 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
****************************************************************************/
#ifndef INTERFACE_H
#define INTERFACE_H

class Model;
class QStringList;

/**
	This class provide the interface of plugins
	You can develop your plugins to make many modifications
	of the current LP (given as a Model)
*/
class PluginInterface
{
public:
	//! Virtual destructor
	virtual ~PluginInterface() {};

	//! Get the name of plugins (a plugin file can have many plugins)
	virtual QStringList plugins() const = 0;

	//! Return the model (it would modify the LP file)
	virtual void setModel(Model *) = 0;
};

Q_DECLARE_INTERFACE(PluginInterface,"com.modelib.LPditor.PluginInterface/1.0")

#endif
