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