xref: /haiku/src/add-ons/disk_systems/ntfs/InitializeParameterEditor.cpp (revision e1f99aae5900d5b4361c28b8e8fee7a1fd16cb45)
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