]> git.sven.stormbind.net Git - sven/vym.git/blobdiff - src/options.h
New upstream version 2.9.22
[sven/vym.git] / src / options.h
diff --git a/src/options.h b/src/options.h
new file mode 100644 (file)
index 0000000..bc4f4cb
--- /dev/null
@@ -0,0 +1,59 @@
+#ifndef OPTIONS_H
+#define OPTIONS_H
+
+#include <QStringList>
+
+/*! \brief A single option which is listed in Options */
+class Option {
+  public:
+    /*! Types of options */
+    enum Type {
+        Switch, //!< No paramater
+        String  //!< Parameter is a string
+    };
+
+    Option();
+    Option(const QString &, const Type &, const QString &, const QString &);
+    void set(const QString &, const Type &, const QString &, const QString &);
+    QString getName();
+    QString getShort();
+    QString getLong();
+    Type getType();
+    void setArg(const QString &);
+    QString getArg();
+    void setActive();
+    bool isActive();
+
+  private:
+    QString name;
+    Type type;
+    QString sName;
+    QString lName;
+    QString sarg;
+    bool active;
+};
+
+/*! \brief Simple class to deal with command line options */
+
+class Options {
+  public:
+    Options();
+    int parse();
+    void add(Option);
+    void add(const QString &, const Option::Type &, const QString &,
+             const QString &);
+    void setHelpText(const QString &);
+    QString getHelpText();
+    QString getProgramName();
+    QStringList getFileList();
+    bool isOn(const QString &);
+    QString getArg(const QString &);
+
+  private:
+    QString progname;
+    QString helptext;
+    QStringList filelist;
+    QList<Option> optlist;
+};
+
+#endif