diff options
| author | Pietro Gagliardi <[email protected]> | 2014-07-02 17:13:40 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-07-02 17:13:40 -0400 |
| commit | 5d339e656b66d00356960ae057969532d34245b4 (patch) | |
| tree | 01f00932aba2a4b996603beeda788995e0f0a382 /prevlib/lineedit.go | |
| parent | 2d7e168e6a350a0cfb52970fbf74c9e37834eaec (diff) | |
Moved everything out of the way pending rewrite.
Diffstat (limited to 'prevlib/lineedit.go')
| -rw-r--r-- | prevlib/lineedit.go | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/prevlib/lineedit.go b/prevlib/lineedit.go new file mode 100644 index 0000000..56ac97c --- /dev/null +++ b/prevlib/lineedit.go @@ -0,0 +1,77 @@ +// 14 february 2014 + +package ui + +// A LineEdit is a control which allows you to enter a single line of text. +type LineEdit struct { + created bool + sysData *sysData + initText string + password bool +} + +// NewLineEdit makes a new LineEdit with the specified text. +func NewLineEdit(text string) *LineEdit { + return &LineEdit{ + sysData: mksysdata(c_lineedit), + initText: text, + } +} + +// NewPasswordEdit makes a new LineEdit which allows the user to enter a password. +func NewPasswordEdit() *LineEdit { + return &LineEdit{ + sysData: mksysdata(c_lineedit), + password: true, + } +} + +// SetText sets the LineEdit's text. +func (l *LineEdit) SetText(text string) { + if l.created { + l.sysData.setText(text) + return + } + l.initText = text +} + +// Text returns the LineEdit's text. +func (l *LineEdit) Text() string { + if l.created { + return l.sysData.text() + } + return l.initText +} + +func (l *LineEdit) make(window *sysData) error { + l.sysData.alternate = l.password + err := l.sysData.make(window) + if err != nil { + return err + } + l.sysData.setText(l.initText) + l.created = true + return nil +} + +func (l *LineEdit) allocate(x int, y int, width int, height int, d *sysSizeData) []*allocation { + return []*allocation{&allocation{ + x: x, + y: y, + width: width, + height: height, + this: l, + }} +} + +func (l *LineEdit) preferredSize(d *sysSizeData) (width int, height int) { + return l.sysData.preferredSize(d) +} + +func (l *LineEdit) commitResize(a *allocation, d *sysSizeData) { + l.sysData.commitResize(a, d) +} + +func (l *LineEdit) getAuxResizeInfo(d *sysSizeData) { + l.sysData.getAuxResizeInfo(d) +} |
