]> git.sven.stormbind.net Git - sven/vym.git/blob - src/options.h
Replace Pierre as the maintainer
[sven/vym.git] / src / options.h
1 #ifndef OPTIONS_H
2 #define OPTIONS_H
3
4 #include <QStringList>
5
6 /*! \brief A single option which is listed in Options */
7 class Option {
8   public:
9     /*! Types of options */
10     enum Type {
11         Switch, //!< No paramater
12         String  //!< Parameter is a string
13     };
14
15     Option();
16     Option(const QString &, const Type &, const QString &, const QString &);
17     void set(const QString &, const Type &, const QString &, const QString &);
18     QString getName();
19     QString getShort();
20     QString getLong();
21     Type getType();
22     void setArg(const QString &);
23     QString getArg();
24     void setActive();
25     bool isActive();
26
27   private:
28     QString name;
29     Type type;
30     QString sName;
31     QString lName;
32     QString sarg;
33     bool active;
34 };
35
36 /*! \brief Simple class to deal with command line options */
37
38 class Options {
39   public:
40     Options();
41     int parse();
42     void add(Option);
43     void add(const QString &, const Option::Type &, const QString &,
44              const QString &);
45     void setHelpText(const QString &);
46     QString getHelpText();
47     QString getProgramName();
48     QStringList getFileList();
49     bool isOn(const QString &);
50     QString getArg(const QString &);
51
52   private:
53     QString progname;
54     QString helptext;
55     QStringList filelist;
56     QList<Option> optlist;
57 };
58
59 #endif