xref: /haiku/src/apps/drivesetup/AbstractParametersPanel.h (revision 25a7b01d15612846f332751841da3579db313082)
144352255SAxel Dörfler /*
244352255SAxel Dörfler  * Copyright 2008-2013 Haiku, Inc. All rights reserved.
344352255SAxel Dörfler  * Distributed under the terms of the MIT license.
444352255SAxel Dörfler  *
544352255SAxel Dörfler  * Authors:
644352255SAxel Dörfler  *		Stephan Aßmus <superstippi@gmx.de>
744352255SAxel Dörfler  *		Axel Dörfler, axeld@pinc-software.de.
844352255SAxel Dörfler  */
944352255SAxel Dörfler #ifndef ABSTRACT_PARAMETERS_PANEL_H
1044352255SAxel Dörfler #define ABSTRACT_PARAMETERS_PANEL_H
1144352255SAxel Dörfler 
1244352255SAxel Dörfler 
1344352255SAxel Dörfler #include <LayoutBuilder.h>
1444352255SAxel Dörfler #include <Partition.h>
1544352255SAxel Dörfler #include <PartitionParameterEditor.h>
1644352255SAxel Dörfler #include <Window.h>
1744352255SAxel Dörfler 
1844352255SAxel Dörfler #include "Support.h"
1944352255SAxel Dörfler 
2044352255SAxel Dörfler 
2144352255SAxel Dörfler class BMenuField;
2244352255SAxel Dörfler class BTextControl;
2344352255SAxel Dörfler 
2444352255SAxel Dörfler 
2544352255SAxel Dörfler class AbstractParametersPanel : public BWindow {
2644352255SAxel Dörfler public:
2744352255SAxel Dörfler 								AbstractParametersPanel(BWindow* window);
2844352255SAxel Dörfler 	virtual						~AbstractParametersPanel();
2944352255SAxel Dörfler 
3044352255SAxel Dörfler 	virtual	bool				QuitRequested();
3144352255SAxel Dörfler 	virtual	void				MessageReceived(BMessage* message);
3244352255SAxel Dörfler 
3344352255SAxel Dörfler 			status_t			Go(BString& parameters);
3444352255SAxel Dörfler 			void				Cancel();
3544352255SAxel Dörfler 
3644352255SAxel Dörfler protected:
3744352255SAxel Dörfler 			void				Init(B_PARAMETER_EDITOR_TYPE type,
3844352255SAxel Dörfler 									const BString& diskSystem,
3944352255SAxel Dörfler 									BPartition* partition);
4032da57f7SAxel Dörfler 			status_t			Go(BString& parameters, BMessage& storage);
4144352255SAxel Dörfler 
4232da57f7SAxel Dörfler 	virtual bool				NeedsEditor() const;
43*8940ad25SAxel Dörfler 	virtual bool				ValidWithoutEditor() const;
4432da57f7SAxel Dörfler 	virtual status_t			ParametersReceived(const BString& parameters,
4532da57f7SAxel Dörfler 									BMessage& storage);
4644352255SAxel Dörfler 	virtual	void				AddControls(BLayoutBuilder::Group<>& builder,
4744352255SAxel Dörfler 									BView* editorView);
4844352255SAxel Dörfler 
4944352255SAxel Dörfler protected:
5044352255SAxel Dörfler 			BButton*			fOkButton;
5144352255SAxel Dörfler 			status_t			fReturnStatus;
5244352255SAxel Dörfler 
5344352255SAxel Dörfler 			BPartitionParameterEditor* fEditor;
5444352255SAxel Dörfler 
5544352255SAxel Dörfler private:
5644352255SAxel Dörfler 	class EscapeFilter;
5744352255SAxel Dörfler 			EscapeFilter*		fEscapeFilter;
5844352255SAxel Dörfler 			sem_id				fExitSemaphore;
5944352255SAxel Dörfler 			BWindow*			fWindow;
6044352255SAxel Dörfler };
6144352255SAxel Dörfler 
6244352255SAxel Dörfler 
6344352255SAxel Dörfler #endif // ABSTRACT_PARAMETERS_PANEL_H
64