1/*
2 * Copyright 2001-2010, Haiku.
3 * Copyright (c) 2003-4 Kian Duffy <myob@users.sourceforge.net>
4 * Parts Copyright (C) 1998,99 Kazuho Okui and Takashi Murai.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining
7 * a copy of this software and associated documentation files or portions
8 * thereof (the "Software"), to deal in the Software without restriction,
9 * including without limitation the rights to use, copy, modify, merge,
10 * publish, distribute, sublicense, and/or sell copies of the Software,
11 * and to permit persons to whom the Software is furnished to do so, subject
12 * to the following conditions:
13 *
14 *  * Redistributions of source code must retain the above copyright notice,
15 *    this list of conditions and the following disclaimer.
16 *
17 *  * Redistributions in binary form must reproduce the above copyright notice
18 *    in the  binary, as well as this list of conditions and the following
19 *    disclaimer in the documentation and/or other materials provided with
20 *    the distribution.
21 *
22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
25 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
28 * THE SOFTWARE.
29 *
30 */
31#ifndef TERM_APP_H
32#define TERM_APP_H
33
34
35#include <Application.h>
36#include <Catalog.h>
37#include <File.h>
38#include <String.h>
39
40
41class Arguments;
42class BRect;
43class BWindow;
44
45
46class TermApp : public BApplication {
47public:
48								TermApp();
49	virtual						~TermApp();
50
51protected:
52	virtual	void				ReadyToRun();
53	virtual bool				QuitRequested();
54	virtual	void				Quit();
55	virtual	void				MessageReceived(BMessage* message);
56	virtual	void				RefsReceived(BMessage* message);
57	virtual	void				ArgvReceived(int32 argc, char** argv);
58
59private:
60			status_t			_MakeTermWindow();
61
62			void				_HandleChildCleanup();
63	static	void				_SigChildHandler(int signal, void* data);
64	static	status_t			_ChildCleanupThread(void* data);
65
66			void				_Usage(char *name);
67
68private:
69			bool				fStartFullscreen;
70			BString				fWindowTitle;
71
72			BWindow*			fTermWindow;
73			Arguments*			fArgs;
74};
75
76
77#endif	// TERM_APP_H
78