xref: /haiku/src/apps/terminal/Arguments.h (revision cbe0a0c436162d78cc3f92a305b64918c839d079)
1 /*
2  * Copyright 2005-2018, Haiku, Inc. All rights reserved.
3  * Copyright 2005, Ingo Weinhold, <bonefish@users.sf.net>
4  *
5  * Distributed under the terms of the MIT License.
6  *
7  * Authors:
8  *	Jeremiah Bailey, <jjbailey@gmail.com>
9  *	Ingo Weinhold, <bonefish@users.sf.net>
10  */
11 
12 
13 #ifndef ARGUMENTS_H
14 #define ARGUMENTS_H
15 
16 #include <Rect.h>
17 
18 class Arguments {
19 public:
20 	Arguments(int defaultArgcNum, const char* const* defaultArgv);
21 	~Arguments();
22 
23 	void Parse(int argc, const char* const* argv);
24 
25 	BRect Bounds() const			{ return fBounds; }
26 	const char* Title() const		{ return fTitle; }
27 	const char* WorkingDir() const	{ return fWorkingDirectory; }
28 	bool StandardShell() const		{ return fStandardShell; }
29 	bool FullScreen() const			{ return fFullScreen; }
30 	bool UsageRequested() const		{ return fUsageRequested; }
31 	void GetShellArguments(int& argc, const char* const*& argv) const;
32 
33 private:
34 	void _SetShellArguments(int argc, const char* const* argv);
35 
36 	bool			fUsageRequested;
37 	BRect			fBounds;
38 	bool			fStandardShell;
39 	bool			fFullScreen;
40 	int				fShellArgumentCount;
41 	const char**	fShellArguments;
42 	const char*		fTitle;
43 	const char*		fWorkingDirectory;
44 };
45 
46 
47 #endif	// ARGUMENTS_H
48