1/*****************************************************************************/
2// Print to file transport add-on.
3//
4// Author
5//   Philippe Houdoin
6//
7// This application and all source files used in its construction, except
8// where noted, are licensed under the MIT License, and have been written
9// and are:
10//
11// Copyright (c) 2001,2002 Haiku Project
12//
13// Permission is hereby granted, free of charge, to any person obtaining a
14// copy of this software and associated documentation files (the "Software"),
15// to deal in the Software without restriction, including without limitation
16// the rights to use, copy, modify, merge, publish, distribute, sublicense,
17// and/or sell copies of the Software, and to permit persons to whom the
18// Software is furnished to do so, subject to the following conditions:
19//
20// The above copyright notice and this permission notice shall be included
21// in all copies or substantial portions of the Software.
22//
23// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29// DEALINGS IN THE SOFTWARE.
30/*****************************************************************************/
31
32#ifndef FILESELECTOR_H
33#define FILESELECTOR_H
34
35#include <InterfaceKit.h>
36#include <StorageKit.h>
37
38class FileSelector : public BWindow {
39	public:
40		// Constructors, destructors, operators...
41
42								FileSelector(void);
43								~FileSelector(void);
44
45		typedef BWindow 		inherited;
46
47		// public constantes
48		enum	{
49			START_MSG			= 'strt',
50			SAVE_INTO_MSG		= 'save'
51		};
52
53		// Virtual function overrides
54	public:
55		virtual void 			MessageReceived(BMessage * msg);
56		virtual bool 			QuitRequested();
57		status_t 				Go(entry_ref * ref);
58
59		// From here, it's none of your business! ;-)
60	private:
61		BEntry					fEntry;
62		volatile status_t 		fResult;
63		sem_id 					fExitSem;
64		BFilePanel *			fSavePanel;
65};
66
67#endif // FILESELECTOR_H
68
69