#ifndef COMMAND_H
#define COMMAND_H

#include <QColor>
#include <QStringList>

class Command
{
public:
    enum SelectionType {Any, TreeItem, Branch, BranchLike, Image, BranchOrImage, XLink}; 
    enum ParameterType {Undefined,String, Int, Double, Color, Bool};
    Command (const QString &n, SelectionType st);
    QString getName();
    QString getDescription();
    QString getDescriptionLaTeX();
    void addPar (ParameterType t, bool opt, const QString &c=QString() );
    int parCount();
    ParameterType getParType (int n);
    QString getParTypeName (int n);
    SelectionType getSelectionType ();
    QString getSelectionTypeName ();
    bool isParOptional (int n);
    QString getParComment(int n);

private:
	QString name;
	SelectionType selectionType;
	QList <ParameterType> parTypes;
	QList <bool> parOpts;
	QStringList parComments;
};

#endif
