41 lines
966 B
Go
41 lines
966 B
Go
// 23 october 2014
|
|
|
|
package ui
|
|
|
|
// #include "winapi_windows.h"
|
|
import "C"
|
|
|
|
type textbox struct {
|
|
*controlSingleHWNDWithText
|
|
}
|
|
|
|
// TODO autohide scrollbars
|
|
func newTextbox() Textbox {
|
|
hwnd := C.newControl(editclass,
|
|
// TODO ES_AUTOHSCROLL/ES_AUTOVSCROLL as well?
|
|
// TODO word wrap
|
|
C.ES_LEFT | C.ES_MULTILINE | C.ES_NOHIDESEL | C.ES_WANTRETURN | C.WS_HSCROLL | C.WS_VSCROLL,
|
|
C.WS_EX_CLIENTEDGE)
|
|
t := &textbox{
|
|
controlSingleHWNDWithText: newControlSingleHWNDWithText(hwnd),
|
|
}
|
|
t.fpreferredSize = t.xpreferredSize
|
|
C.controlSetControlFont(t.hwnd)
|
|
return t
|
|
}
|
|
|
|
func (t *textbox) Text() string {
|
|
return t.text()
|
|
}
|
|
|
|
func (t *textbox) SetText(text string) {
|
|
t.setText(text)
|
|
}
|
|
|
|
// just reuse the preferred textfield width
|
|
// TODO allow alternate widths
|
|
// TODO current height probably can be better calculated
|
|
func (t *textbox) xpreferredSize(d *sizing) (width, height int) {
|
|
return fromdlgunitsX(textfieldWidth, d), fromdlgunitsY(textfieldHeight, d) * 3
|
|
}
|