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ßmusIntValueView::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ßmusIntValueView::~IntValueView() 3464d80db6SStephan Aßmus { 3564d80db6SStephan Aßmus } 3664d80db6SStephan Aßmus 3764d80db6SStephan Aßmus // TextView 3864d80db6SStephan Aßmus InputTextView* TextView() const3964d80db6SStephan AßmusIntValueView::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ßmusIntValueView::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ßmusIntValueView::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ßmusIntValueView::GetProperty() const 72*61b0e9e3SStephan Aßmus { 73*61b0e9e3SStephan Aßmus return fProperty; 74*61b0e9e3SStephan Aßmus } 75*61b0e9e3SStephan Aßmus 76