summaryrefslogtreecommitdiffstatshomepage
path: root/lineedit.go
diff options
context:
space:
mode:
authorAlexander Neumann <an2048@gmail.com>2012-10-05 15:30:07 +0200
committerAlexander Neumann <an2048@gmail.com>2012-10-05 15:30:07 +0200
commita8cf8f3e42556e24ee5b95ed2e48cd91151dc87f (patch)
tree3760dbc0a592315187ba9f407377053a21cb62ed /lineedit.go
parentdeclarative: Make Dialog and MainWindow not implement Widget (diff)
downloadwireguard-windows-a8cf8f3e42556e24ee5b95ed2e48cd91151dc87f.tar.xz
wireguard-windows-a8cf8f3e42556e24ee5b95ed2e48cd91151dc87f.zip
Add initial support for data binding
Diffstat (limited to 'lineedit.go')
-rw-r--r--lineedit.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/lineedit.go b/lineedit.go
index 577bce79..4cc825ba 100644
--- a/lineedit.go
+++ b/lineedit.go
@@ -18,6 +18,7 @@ const (
type LineEdit struct {
WidgetBase
+ bindingMember string
validator Validator
editingFinishedPublisher EventPublisher
returnPressedPublisher EventPublisher
@@ -68,6 +69,32 @@ func NewLineEdit(parent Container) (*LineEdit, error) {
return le, nil
}
+func (le *LineEdit) BindingMember() string {
+ return le.bindingMember
+}
+
+func (le *LineEdit) SetBindingMember(member string) error {
+ if err := validateBindingMemberSyntax(member); err != nil {
+ return err
+ }
+
+ le.bindingMember = member
+
+ return nil
+}
+
+func (le *LineEdit) BindingValue() interface{} {
+ return le.Text()
+}
+
+func (le *LineEdit) SetBindingValue(value interface{}) error {
+ return le.SetText(value.(string))
+}
+
+func (le *LineEdit) BindingValueChanged() *Event {
+ return le.TextChanged()
+}
+
func (le *LineEdit) CueBanner() string {
buf := make([]uint16, 128)
if FALSE == le.SendMessage(EM_GETCUEBANNER, uintptr(unsafe.Pointer(&buf[0])), uintptr(len(buf))) {