5
using MonoMac.Foundation;
10
public class SpinButtonBackend : ViewBackend<MacSpinButton, ISpinButtonEventSink>, ISpinButtonBackend
12
public override void Initialize ()
14
ViewObject = new MacSpinButton (EventSink);
15
//Widget.SizeToFit ();
18
protected new ISpinButtonEventSink EventSink {
19
get { return (ISpinButtonEventSink)base.EventSink; }
22
public override void EnableEvent (object eventId)
26
public override void DisableEvent (object eventId)
30
public double ClimbRate {
31
get { return Widget.ClimbRate; }
32
set { Widget.ClimbRate = value; }
36
get { return Widget.Digits; }
37
set { Widget.Digits = value; }
41
get { return Widget.Value; }
42
set { Widget.Value = value; }
46
get { return Widget.Wrap; }
47
set { Widget.Wrap = value; }
50
public double MinimumValue {
51
get { return Widget.MinimumValue; }
52
set { Widget.MinimumValue = value; }
55
public double MaximumValue {
56
get { return Widget.MaximumValue; }
57
set { Widget.MaximumValue = value; }
60
public double IncrementValue {
61
get { return Widget.IncrementValue; }
62
set { Widget.IncrementValue = value; }
65
public void SetButtonStyle (ButtonStyle style)
67
Widget.SetButtonStyle (style);
71
public class MacSpinButton : NSView, IViewObject
75
NSNumberFormatter formater;
76
NSLayoutConstraint constraint;
78
public MacSpinButton (ISpinButtonEventSink eventSink)
80
formater = new NSNumberFormatter ();
81
stepper = new NSStepper ();
82
input = new NSTextField ();
83
input.Formatter = formater;
84
input.Alignment = NSTextAlignment.Right;
85
formater.NumberStyle = NSNumberFormatterStyle.Decimal;
86
stepper.Activated += (sender, e) => input.DoubleValue = stepper.DoubleValue;
88
SetFrameSize (new System.Drawing.SizeF (55, 22));
89
stepper.Frame = new System.Drawing.RectangleF (new System.Drawing.PointF (36, 0), new System.Drawing.SizeF (19, 22));
90
input.Frame = new System.Drawing.RectangleF (new System.Drawing.PointF (4, 0), new System.Drawing.SizeF (26, 22));
92
AutoresizesSubviews = true;
93
stepper.AutoresizingMask = NSViewResizingMask.MinXMargin | NSViewResizingMask.MinYMargin;
94
input.AutoresizingMask = NSViewResizingMask.WidthSizable | NSViewResizingMask.MaxYMargin;
100
public double ClimbRate {
101
get { return stepper.Increment; }
102
set { stepper.Increment = value; }
106
get { return (int)formater.MaximumSignificantDigits; }
107
set { formater.MaximumSignificantDigits = (uint)value; }
110
public double Value {
111
get { return input.DoubleValue; }
113
stepper.DoubleValue = value;
114
input.DoubleValue = value;
119
get { return stepper.ValueWraps; }
120
set { stepper.ValueWraps = value; }
123
public double MinimumValue {
124
get { return stepper.MinValue; }
126
stepper.MinValue = value;
127
formater.Minimum = new NSNumber (value);
131
public double MaximumValue {
132
get { return stepper.MaxValue; }
134
stepper.MaxValue = value;
135
formater.Maximum = new NSNumber (value);
139
public double IncrementValue {
140
get { return stepper.Increment; }
141
set { stepper.Increment = value; }
144
public void SetButtonStyle (ButtonStyle style)
147
case ButtonStyle.Borderless:
148
case ButtonStyle.Flat:
149
input.Bordered = false;
152
input.Bordered = true;
157
public Widget Frontend { get; set; }
163
public void EnableEvent (Xwt.Backends.ButtonEvent ev)
167
public void DisableEvent (Xwt.Backends.ButtonEvent ev)