forked from lxn/walk
/
numberedit.go
90 lines (77 loc) · 2.51 KB
/
numberedit.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// Copyright 2012 The Walk Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package declarative
import (
"github.com/lxn/walk"
)
type NumberEdit struct {
AssignTo **walk.NumberEdit
Name string
Enabled Property
Visible Property
Font Font
ToolTipText Property
MinSize Size
MaxSize Size
StretchFactor int
Row int
RowSpan int
Column int
ColumnSpan int
ContextMenuItems []MenuItem
OnKeyDown walk.KeyEventHandler
OnKeyPress walk.KeyEventHandler
OnKeyUp walk.KeyEventHandler
OnMouseDown walk.MouseEventHandler
OnMouseMove walk.MouseEventHandler
OnMouseUp walk.MouseEventHandler
OnSizeChanged walk.EventHandler
Decimals int
Prefix string
Suffix string
Increment float64
MinValue float64
MaxValue float64
Value Property
OnValueChanged walk.EventHandler
}
func (ne NumberEdit) Create(builder *Builder) error {
w, err := walk.NewNumberEdit(builder.Parent())
if err != nil {
return err
}
return builder.InitWidget(ne, w, func() error {
if err := w.SetDecimals(ne.Decimals); err != nil {
return err
}
if err := w.SetPrefix(ne.Prefix); err != nil {
return err
}
if err := w.SetSuffix(ne.Suffix); err != nil {
return err
}
inc := ne.Increment
if inc <= 0 {
inc = 1
}
if err := w.SetIncrement(inc); err != nil {
return err
}
if ne.MinValue != 0 || ne.MaxValue != 0 {
if err := w.SetRange(ne.MinValue, ne.MaxValue); err != nil {
return err
}
}
if ne.OnValueChanged != nil {
w.ValueChanged().Attach(ne.OnValueChanged)
}
if ne.AssignTo != nil {
*ne.AssignTo = w
}
return nil
})
}
func (w NumberEdit) WidgetInfo() (name string, disabled, hidden bool, font *Font, toolTipText string, minSize, maxSize Size, stretchFactor, row, rowSpan, column, columnSpan int, contextMenuItems []MenuItem, OnKeyDown walk.KeyEventHandler, OnKeyPress walk.KeyEventHandler, OnKeyUp walk.KeyEventHandler, OnMouseDown walk.MouseEventHandler, OnMouseMove walk.MouseEventHandler, OnMouseUp walk.MouseEventHandler, OnSizeChanged walk.EventHandler) {
return w.Name, false, false, &w.Font, "", w.MinSize, w.MaxSize, w.StretchFactor, w.Row, w.RowSpan, w.Column, w.ColumnSpan, w.ContextMenuItems, w.OnKeyDown, w.OnKeyPress, w.OnKeyUp, w.OnMouseDown, w.OnMouseMove, w.OnMouseUp, w.OnSizeChanged
}