xref: /haiku/src/apps/drivesetup/AbstractParametersPanel.h (revision 25a7b01d15612846f332751841da3579db313082)
1 /*
2  * Copyright 2008-2013 Haiku, Inc. All rights reserved.
3  * Distributed under the terms of the MIT license.
4  *
5  * Authors:
6  *		Stephan Aßmus <superstippi@gmx.de>
7  *		Axel Dörfler, axeld@pinc-software.de.
8  */
9 #ifndef ABSTRACT_PARAMETERS_PANEL_H
10 #define ABSTRACT_PARAMETERS_PANEL_H
11 
12 
13 #include <LayoutBuilder.h>
14 #include <Partition.h>
15 #include <PartitionParameterEditor.h>
16 #include <Window.h>
17 
18 #include "Support.h"
19 
20 
21 class BMenuField;
22 class BTextControl;
23 
24 
25 class AbstractParametersPanel : public BWindow {
26 public:
27 								AbstractParametersPanel(BWindow* window);
28 	virtual						~AbstractParametersPanel();
29 
30 	virtual	bool				QuitRequested();
31 	virtual	void				MessageReceived(BMessage* message);
32 
33 			status_t			Go(BString& parameters);
34 			void				Cancel();
35 
36 protected:
37 			void				Init(B_PARAMETER_EDITOR_TYPE type,
38 									const BString& diskSystem,
39 									BPartition* partition);
40 			status_t			Go(BString& parameters, BMessage& storage);
41 
42 	virtual bool				NeedsEditor() const;
43 	virtual bool				ValidWithoutEditor() const;
44 	virtual status_t			ParametersReceived(const BString& parameters,
45 									BMessage& storage);
46 	virtual	void				AddControls(BLayoutBuilder::Group<>& builder,
47 									BView* editorView);
48 
49 protected:
50 			BButton*			fOkButton;
51 			status_t			fReturnStatus;
52 
53 			BPartitionParameterEditor* fEditor;
54 
55 private:
56 	class EscapeFilter;
57 			EscapeFilter*		fEscapeFilter;
58 			sem_id				fExitSemaphore;
59 			BWindow*			fWindow;
60 };
61 
62 
63 #endif // ABSTRACT_PARAMETERS_PANEL_H
64