1/*
2 * Copyright 2015, Rene Gollent, rene@gollent.com.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include "TableCellBoolEditor.h"
7
8#include "BoolValue.h"
9
10
11TableCellBoolEditor::TableCellBoolEditor(::Value* initialValue,
12	ValueFormatter* formatter)
13	:
14	TableCellOptionPopUpEditor(initialValue, formatter)
15{
16}
17
18
19TableCellBoolEditor::~TableCellBoolEditor()
20{
21}
22
23
24status_t
25TableCellBoolEditor::ConfigureOptions()
26{
27	BoolValue* initialValue = dynamic_cast<BoolValue*>(InitialValue());
28	if (initialValue == NULL)
29		return B_BAD_VALUE;
30
31	status_t error = AddOption("true", true);
32	if (error != B_OK)
33		return error;
34
35	error = AddOption("false", false);
36	if (error != B_OK)
37		return error;
38
39	return SelectOptionFor(initialValue->GetValue());
40}
41
42
43status_t
44TableCellBoolEditor::GetSelectedValue(::Value*& _value) const
45{
46	const char* name = NULL;
47	int32 selectedValue = 0;
48	SelectedOption(&name, &selectedValue);
49	BoolValue* value = new(std::nothrow) BoolValue((bool)selectedValue);
50	if (value == NULL)
51		return B_NO_MEMORY;
52
53	_value = value;
54	return B_OK;
55}
56