1/* 2 * Copyright 2013, Axel D��rfler, axeld@pinc-software.de. 3 * Copyright 2009-2010, Stephan A��mus <superstippi@gmx.de> 4 * Copyright 2009, Bryce Groff, brycegroff@gmail.com. 5 * Distributed under the terms of the MIT License. 6 */ 7 8 9#include <stdio.h> 10 11#include "InitializeParameterEditor.h" 12 13#include <Button.h> 14#include <Catalog.h> 15#include <ControlLook.h> 16#include <GridLayoutBuilder.h> 17#include <Partition.h> 18#include <SpaceLayoutItem.h> 19#include <TextControl.h> 20#include <Variant.h> 21#include <View.h> 22#include <Window.h> 23 24 25#undef B_TRANSLATION_CONTEXT 26#define B_TRANSLATION_CONTEXT "NTFS_Initialize_Parameter" 27 28 29static uint32 MSG_NAME_CHANGED = 'nmch'; 30 31 32InitializeNTFSEditor::InitializeNTFSEditor() 33 : 34 BPartitionParameterEditor(), 35 fView(NULL), 36 fNameControl(NULL), 37 fParameters(NULL) 38{ 39 _CreateViewControls(); 40} 41 42 43InitializeNTFSEditor::~InitializeNTFSEditor() 44{ 45} 46 47 48void 49InitializeNTFSEditor::SetTo(BPartition* partition) 50{ 51 BString name = partition->Name(); 52 if (name.IsEmpty()) 53 name = partition->RawContentName(); 54 if (!name.IsEmpty()) 55 fNameControl->SetText(name.String()); 56} 57 58 59BView* 60InitializeNTFSEditor::View() 61{ 62 return fView; 63} 64 65 66bool 67InitializeNTFSEditor::ValidateParameters() const 68{ 69 // The name must be set 70 return fNameControl->TextView()->TextLength() > 0; 71} 72 73 74status_t 75InitializeNTFSEditor::ParameterChanged(const char* name, 76 const BVariant& variant) 77{ 78 if (!strcmp(name, "name")) 79 fNameControl->SetText(variant.ToString()); 80 return B_OK; 81} 82 83 84status_t 85InitializeNTFSEditor::GetParameters(BString& parameters) 86{ 87 parameters = "name \""; 88 parameters << fNameControl->Text() << "\";\n"; 89 return B_OK; 90} 91 92 93void 94InitializeNTFSEditor::_CreateViewControls() 95{ 96 fNameControl = new BTextControl(B_TRANSLATE("Name:"), "New NTFS Volume", 97 NULL); 98 fNameControl->SetModificationMessage(new BMessage(MSG_NAME_CHANGED)); 99 fNameControl->TextView()->SetMaxBytes(127); 100 101 float spacing = be_control_look->DefaultItemSpacing(); 102 103 fView = BGridLayoutBuilder(spacing, spacing) 104 .Add(fNameControl->CreateLabelLayoutItem(), 0, 0) 105 .Add(fNameControl->CreateTextViewLayoutItem(), 1, 0).View() 106 ; 107} 108