1*e1f99aaeSthreedeyes /* 2*e1f99aaeSthreedeyes * Copyright 2009-2010, Stephan Aßmus <superstippi@gmx.de> 3*e1f99aaeSthreedeyes * Copyright 2009, Bryce Groff, brycegroff@gmail.com. 4*e1f99aaeSthreedeyes * Distributed under the terms of the MIT License. 5*e1f99aaeSthreedeyes */ 6*e1f99aaeSthreedeyes 7*e1f99aaeSthreedeyes 8*e1f99aaeSthreedeyes #include <stdio.h> 9*e1f99aaeSthreedeyes 10*e1f99aaeSthreedeyes #include "InitializeParameterEditor.h" 11*e1f99aaeSthreedeyes 12*e1f99aaeSthreedeyes #include <Button.h> 13*e1f99aaeSthreedeyes #include <Catalog.h> 14*e1f99aaeSthreedeyes #include <CheckBox.h> 15*e1f99aaeSthreedeyes #include <ControlLook.h> 16*e1f99aaeSthreedeyes #include <GridLayoutBuilder.h> 17*e1f99aaeSthreedeyes #include <MenuField.h> 18*e1f99aaeSthreedeyes #include <MenuItem.h> 19*e1f99aaeSthreedeyes #include <PartitionParameterEditor.h> 20*e1f99aaeSthreedeyes #include <PopUpMenu.h> 21*e1f99aaeSthreedeyes #include <SpaceLayoutItem.h> 22*e1f99aaeSthreedeyes #include <TextControl.h> 23*e1f99aaeSthreedeyes #include <View.h> 24*e1f99aaeSthreedeyes #include <Window.h> 25*e1f99aaeSthreedeyes 26*e1f99aaeSthreedeyes 27*e1f99aaeSthreedeyes static uint32 MSG_NAME_CHANGED = 'nmch'; 28*e1f99aaeSthreedeyes 29*e1f99aaeSthreedeyes 30*e1f99aaeSthreedeyes InitializeNTFSEditor::InitializeNTFSEditor() 31*e1f99aaeSthreedeyes : 32*e1f99aaeSthreedeyes BPartitionParameterEditor(), 33*e1f99aaeSthreedeyes fView(NULL), 34*e1f99aaeSthreedeyes fNameTC(NULL), 35*e1f99aaeSthreedeyes fParameters(NULL) 36*e1f99aaeSthreedeyes { 37*e1f99aaeSthreedeyes _CreateViewControls(); 38*e1f99aaeSthreedeyes } 39*e1f99aaeSthreedeyes 40*e1f99aaeSthreedeyes 41*e1f99aaeSthreedeyes InitializeNTFSEditor::~InitializeNTFSEditor() 42*e1f99aaeSthreedeyes { 43*e1f99aaeSthreedeyes } 44*e1f99aaeSthreedeyes 45*e1f99aaeSthreedeyes 46*e1f99aaeSthreedeyes BView* 47*e1f99aaeSthreedeyes InitializeNTFSEditor::View() 48*e1f99aaeSthreedeyes { 49*e1f99aaeSthreedeyes return fView; 50*e1f99aaeSthreedeyes } 51*e1f99aaeSthreedeyes 52*e1f99aaeSthreedeyes 53*e1f99aaeSthreedeyes bool 54*e1f99aaeSthreedeyes InitializeNTFSEditor::FinishedEditing() 55*e1f99aaeSthreedeyes { 56*e1f99aaeSthreedeyes fParameters = ""; 57*e1f99aaeSthreedeyes fParameters << "name \"" << fNameTC->Text() << "\";\n"; 58*e1f99aaeSthreedeyes 59*e1f99aaeSthreedeyes return true; 60*e1f99aaeSthreedeyes } 61*e1f99aaeSthreedeyes 62*e1f99aaeSthreedeyes 63*e1f99aaeSthreedeyes status_t 64*e1f99aaeSthreedeyes InitializeNTFSEditor::GetParameters(BString* parameters) 65*e1f99aaeSthreedeyes { 66*e1f99aaeSthreedeyes if (parameters == NULL) 67*e1f99aaeSthreedeyes return B_BAD_VALUE; 68*e1f99aaeSthreedeyes 69*e1f99aaeSthreedeyes *parameters = fParameters; 70*e1f99aaeSthreedeyes return B_OK; 71*e1f99aaeSthreedeyes } 72*e1f99aaeSthreedeyes 73*e1f99aaeSthreedeyes 74*e1f99aaeSthreedeyes status_t 75*e1f99aaeSthreedeyes InitializeNTFSEditor::PartitionNameChanged(const char* name) 76*e1f99aaeSthreedeyes { 77*e1f99aaeSthreedeyes fNameTC->SetText(name); 78*e1f99aaeSthreedeyes return B_OK; 79*e1f99aaeSthreedeyes } 80*e1f99aaeSthreedeyes 81*e1f99aaeSthreedeyes 82*e1f99aaeSthreedeyes void 83*e1f99aaeSthreedeyes InitializeNTFSEditor::_CreateViewControls() 84*e1f99aaeSthreedeyes { 85*e1f99aaeSthreedeyes fNameTC = new BTextControl("Name:", "Haiku", NULL); 86*e1f99aaeSthreedeyes fNameTC->SetModificationMessage(new BMessage(MSG_NAME_CHANGED)); 87*e1f99aaeSthreedeyes // TODO find out what is the max length for this specific FS partition name 88*e1f99aaeSthreedeyes fNameTC->TextView()->SetMaxBytes(31); 89*e1f99aaeSthreedeyes 90*e1f99aaeSthreedeyes float spacing = be_control_look->DefaultItemSpacing(); 91*e1f99aaeSthreedeyes 92*e1f99aaeSthreedeyes fView = BGridLayoutBuilder(spacing, spacing) 93*e1f99aaeSthreedeyes // row 1 94*e1f99aaeSthreedeyes .Add(fNameTC->CreateLabelLayoutItem(), 0, 0) 95*e1f99aaeSthreedeyes .Add(fNameTC->CreateTextViewLayoutItem(), 1, 0).View() 96*e1f99aaeSthreedeyes ; 97*e1f99aaeSthreedeyes } 98