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->ContentName(); 52 if (!name.IsEmpty()) 53 fNameControl->SetText(name.String()); 54} 55 56 57BView* 58InitializeNTFSEditor::View() 59{ 60 return fView; 61} 62 63 64bool 65InitializeNTFSEditor::ValidateParameters() const 66{ 67 // The name must be set 68 return fNameControl->TextView()->TextLength() > 0; 69} 70 71 72status_t 73InitializeNTFSEditor::ParameterChanged(const char* name, 74 const BVariant& variant) 75{ 76 if (!strcmp(name, "name")) 77 fNameControl->SetText(variant.ToString()); 78 return B_OK; 79} 80 81 82status_t 83InitializeNTFSEditor::GetParameters(BString& parameters) 84{ 85 parameters = "name \""; 86 parameters << fNameControl->Text() << "\";\n"; 87 return B_OK; 88} 89 90 91void 92InitializeNTFSEditor::_CreateViewControls() 93{ 94 fNameControl = new BTextControl(B_TRANSLATE("Name:"), "New NTFS Volume", 95 NULL); 96 fNameControl->SetModificationMessage(new BMessage(MSG_NAME_CHANGED)); 97 fNameControl->TextView()->SetMaxBytes(127); 98 99 float spacing = be_control_look->DefaultItemSpacing(); 100 101 fView = BGridLayoutBuilder(spacing, spacing) 102 .Add(fNameControl->CreateLabelLayoutItem(), 0, 0) 103 .Add(fNameControl->CreateTextViewLayoutItem(), 1, 0).View() 104 ; 105} 106