summaryrefslogtreecommitdiff
path: root/Source/Library/Userland/App/ShellApp.proto.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Library/Userland/App/ShellApp.proto.h')
-rw-r--r--Source/Library/Userland/App/ShellApp.proto.h31
1 files changed, 26 insertions, 5 deletions
diff --git a/Source/Library/Userland/App/ShellApp.proto.h b/Source/Library/Userland/App/ShellApp.proto.h
index 846f2b1..5575112 100644
--- a/Source/Library/Userland/App/ShellApp.proto.h
+++ b/Source/Library/Userland/App/ShellApp.proto.h
@@ -4,14 +4,35 @@
#include <App/Application.proto.h>
#include <Binding/VirtualTerminal.class.h>
+#define FT_BOOL 1
+#define FT_STR 2
+#define FT_INT 3
+
+struct flag_t {
+ WChar sName;
+ String lName, desc;
+ int type;
+ String strVal;
+ int intVal;
+ bool boolVal;
+};
+
class ShellApp : public Application {
public:
VirtualTerminal invt, outvt;
-
- ShellApp() : Application(), invt(VirtualTerminal::getIn()), outvt(VirtualTerminal::getOut()) {
- if (!invt.valid()) exit(1);
- if (!outvt.valid()) exit(2);
- }
+ Vector<String> args;
+ Vector<flag_t> flags;
+ String appName, appDesc;
+ ShellApp(String name, String desc);
+
+ virtual void init();
+
+ //Flag handling
+ flag_t* getFlag(String name);
+ void addFlag(WChar sName, String lName, String desc, int type = FT_BOOL, String deflt = "");
+ String sFlag(String name);
+ int iFlag(String name);
+ bool bFlag(String name);
};
#endif