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