1/*
2 * Copyright 2013, Axel D��rfler, axeld@pinc-software.de.
3 * Copyright 2009, Bryce Groff, brycegroff@gmail.com.
4 * Distributed under the terms of the MIT License.
5 */
6
7
8#include "PrimaryParameterEditor.h"
9
10#include <Catalog.h>
11#include <DiskDeviceTypes.h>
12#include <GroupView.h>
13#include <PartitionParameterEditor.h>
14#include <Variant.h>
15#include <View.h>
16
17
18#undef B_TRANSLATION_CONTEXT
19#define B_TRANSLATION_CONTEXT "PrimaryPartitionEditor"
20
21
22PrimaryPartitionEditor::PrimaryPartitionEditor()
23{
24	fActiveCheckBox = new BCheckBox("active", B_TRANSLATE("Active partition"),
25		NULL);
26	fView = new BGroupView(B_VERTICAL);
27	fView->AddChild(fActiveCheckBox);
28}
29
30
31PrimaryPartitionEditor::~PrimaryPartitionEditor()
32{
33}
34
35
36BView*
37PrimaryPartitionEditor::View()
38{
39	return fView;
40}
41
42
43status_t
44PrimaryPartitionEditor::ParameterChanged(const char* name,
45	const BVariant& variant)
46{
47	if (strcmp(name, "type") == 0) {
48		fActiveCheckBox->SetEnabled(strcmp(variant.ToString(),
49			kPartitionTypeIntelExtended) != 0);
50		fActiveCheckBox->SetValue(false);
51	}
52
53	if (strcmp(name, "active") == 0)
54		fActiveCheckBox->SetValue(variant.ToBool());
55
56	return B_OK;
57}
58
59
60status_t
61PrimaryPartitionEditor::GetParameters(BString& parameters)
62{
63	if (fActiveCheckBox->IsEnabled()) {
64		if (fActiveCheckBox->Value() == B_CONTROL_ON)
65			parameters.SetTo("active true ;");
66		else
67			parameters.SetTo("active false ;");
68	} else
69		parameters.SetTo("");
70
71	return B_OK;
72}
73