xref: /haiku/src/apps/icon-o-matic/generic/property/view/specific_properties/IntValueView.cpp (revision 61b0e9e3149012ccbd48a10dcbc7f83600bb4769)
164d80db6SStephan Aßmus /*
264d80db6SStephan Aßmus  * Copyright 2006, Haiku.
364d80db6SStephan Aßmus  * Distributed under the terms of the MIT License.
464d80db6SStephan Aßmus  *
564d80db6SStephan Aßmus  * Authors:
664d80db6SStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
764d80db6SStephan Aßmus  */
864d80db6SStephan Aßmus 
964d80db6SStephan Aßmus #include "IntValueView.h"
1064d80db6SStephan Aßmus 
1164d80db6SStephan Aßmus #include <stdio.h>
1264d80db6SStephan Aßmus 
1364d80db6SStephan Aßmus #include "NummericalTextView.h"
1464d80db6SStephan Aßmus 
1564d80db6SStephan Aßmus // constructor
IntValueView(IntProperty * property)1664d80db6SStephan Aßmus IntValueView::IntValueView(IntProperty* property)
17e2a31283SStephan Aßmus 	: TextInputValueView(),
1864d80db6SStephan Aßmus 	  fProperty(property)
1964d80db6SStephan Aßmus {
2064d80db6SStephan Aßmus 	BRect b = Bounds();
2164d80db6SStephan Aßmus 	fTextView = new NummericalTextView(b, "nummerical input", b,
2264d80db6SStephan Aßmus 									   B_FOLLOW_LEFT | B_FOLLOW_TOP,
2364d80db6SStephan Aßmus 									   B_WILL_DRAW);
2464d80db6SStephan Aßmus 
2564d80db6SStephan Aßmus 	AddChild(fTextView);
2664d80db6SStephan Aßmus 	fTextView->SetFloatMode(false);
2764d80db6SStephan Aßmus 
2864d80db6SStephan Aßmus 	if (fProperty)
2964d80db6SStephan Aßmus 		fTextView->SetValue(fProperty->Value());
3064d80db6SStephan Aßmus }
3164d80db6SStephan Aßmus 
3264d80db6SStephan Aßmus // destructor
~IntValueView()3364d80db6SStephan Aßmus IntValueView::~IntValueView()
3464d80db6SStephan Aßmus {
3564d80db6SStephan Aßmus }
3664d80db6SStephan Aßmus 
3764d80db6SStephan Aßmus // TextView
3864d80db6SStephan Aßmus InputTextView*
TextView() const3964d80db6SStephan Aßmus IntValueView::TextView() const
4064d80db6SStephan Aßmus {
4164d80db6SStephan Aßmus 	return fTextView;
4264d80db6SStephan Aßmus }
4364d80db6SStephan Aßmus 
4464d80db6SStephan Aßmus // ValueChanged
4564d80db6SStephan Aßmus void
ValueChanged()4664d80db6SStephan Aßmus IntValueView::ValueChanged()
4764d80db6SStephan Aßmus {
4864d80db6SStephan Aßmus 	if (fProperty) {
4964d80db6SStephan Aßmus 		fProperty->SetValue(fTextView->IntValue());
5064d80db6SStephan Aßmus 		fTextView->SetValue(fProperty->Value());
5164d80db6SStephan Aßmus 		TextInputValueView::ValueChanged();
5264d80db6SStephan Aßmus 	}
5364d80db6SStephan Aßmus }
5464d80db6SStephan Aßmus 
5564d80db6SStephan Aßmus // AdoptProperty
5664d80db6SStephan Aßmus bool
AdoptProperty(Property * property)5764d80db6SStephan Aßmus IntValueView::AdoptProperty(Property* property)
5864d80db6SStephan Aßmus {
5964d80db6SStephan Aßmus 	IntProperty* p = dynamic_cast<IntProperty*>(property);
6064d80db6SStephan Aßmus 	if (p) {
6164d80db6SStephan Aßmus 		if (fTextView->IntValue() != p->Value())
6264d80db6SStephan Aßmus 			fTextView->SetValue(p->Value());
6364d80db6SStephan Aßmus 		fProperty = p;
6464d80db6SStephan Aßmus 		return true;
6564d80db6SStephan Aßmus 	}
6664d80db6SStephan Aßmus 	return false;
6764d80db6SStephan Aßmus }
6864d80db6SStephan Aßmus 
69*61b0e9e3SStephan Aßmus // GetProperty
70*61b0e9e3SStephan Aßmus Property*
GetProperty() const71*61b0e9e3SStephan Aßmus IntValueView::GetProperty() const
72*61b0e9e3SStephan Aßmus {
73*61b0e9e3SStephan Aßmus 	return fProperty;
74*61b0e9e3SStephan Aßmus }
75*61b0e9e3SStephan Aßmus 
76