forked from gonutz/wui
/
label.go
41 lines (32 loc) · 847 Bytes
/
label.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
//+build windows
package wui
import "github.com/gonutz/w32"
func NewLabel() *Label {
return &Label{align: w32.SS_LEFT}
}
type Label struct {
textControl
align uint
}
func (l *Label) create(id int) {
l.textControl.create(id, 0, "STATIC", w32.SS_CENTERIMAGE|l.align)
}
func (l *Label) setAlign(align uint) *Label {
l.align = align
if l.handle != 0 {
style := uint(w32.GetWindowLongPtr(l.handle, w32.GWL_STYLE))
style = style &^ w32.SS_LEFT &^ w32.SS_CENTER &^ w32.SS_RIGHT
w32.SetWindowLongPtr(l.handle, w32.GWL_STYLE, uintptr(style|l.align))
w32.InvalidateRect(l.handle, nil, true)
}
return l
}
func (l *Label) SetLeftAlign() *Label {
return l.setAlign(w32.SS_LEFT)
}
func (l *Label) SetCenterAlign() *Label {
return l.setAlign(w32.SS_CENTER)
}
func (l *Label) SetRightAlign() *Label {
return l.setAlign(w32.SS_RIGHT)
}