xref: /haiku/src/apps/icon-o-matic/generic/property/view/specific_properties/Int64ValueView.cpp (revision 17889a8c70dbb3d59c1412f6431968753c767bab)
1 /*
2  * Copyright 2006, Haiku.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Stephan Aßmus <superstippi@gmx.de>
7  */
8 
9 #include "Int64ValueView.h"
10 
11 #include <stdio.h>
12 
13 #include "NummericalTextView.h"
14 
15 // constructor
16 Int64ValueView::Int64ValueView(Int64Property* property)
17 	: TextInputValueView(),
18 	  fProperty(property)
19 {
20 	BRect b = Bounds();
21 	fTextView = new NummericalTextView(b, "nummerical input", b,
22 									   B_FOLLOW_LEFT | B_FOLLOW_TOP,
23 									   B_WILL_DRAW);
24 
25 	AddChild(fTextView);
26 	fTextView->SetFloatMode(false);
27 
28 // TODO: make NummericalTextView support int64?
29 	if (fProperty)
30 		fTextView->SetValue((int32)fProperty->Value());
31 }
32 
33 // destructor
34 Int64ValueView::~Int64ValueView()
35 {
36 }
37 
38 // TextView
39 InputTextView*
40 Int64ValueView::TextView() const
41 {
42 	return fTextView;
43 }
44 
45 // ValueChanged
46 void
47 Int64ValueView::ValueChanged()
48 {
49 	if (fProperty) {
50 		fProperty->SetValue(fTextView->IntValue());
51 // TODO: make NummericalTextView support int64?
52 		fTextView->SetValue((int32)fProperty->Value());
53 		TextInputValueView::ValueChanged();
54 	}
55 }
56 
57 // AdoptProperty
58 bool
59 Int64ValueView::AdoptProperty(Property* property)
60 {
61 	Int64Property* p = dynamic_cast<Int64Property*>(property);
62 	if (p) {
63 // TODO: make NummericalTextView support int64?
64 		if (fTextView->IntValue() != (int32)p->Value())
65 			fTextView->SetValue((int32)p->Value());
66 		fProperty = p;
67 		return true;
68 	}
69 	return false;
70 }
71 
72 // GetProperty
73 Property*
74 Int64ValueView::GetProperty() const
75 {
76 	return fProperty;
77 }
78 
79