summaryrefslogtreecommitdiff
path: root/sysdata_windows.go
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-02-15 12:06:29 -0500
committerPietro Gagliardi <[email protected]>2014-02-15 12:06:29 -0500
commit0e2c1d23140bbc92100638e5e66ca9eb75ea7b4b (patch)
treece852dc68d47f6b4efc7f3269693b02d242b53b6 /sysdata_windows.go
parent2c9700755198e12969f9969103b25b7a96908790 (diff)
Added sysData.insertBefore().
Diffstat (limited to 'sysdata_windows.go')
-rw-r--r--sysdata_windows.go25
1 files changed, 22 insertions, 3 deletions
diff --git a/sysdata_windows.go b/sysdata_windows.go
index 5c1345d..8d9d7ed 100644
--- a/sysdata_windows.go
+++ b/sysdata_windows.go
@@ -25,7 +25,7 @@ type classData struct {
mkid bool
altStyle uint32
appendMsg uintptr
- insertAfterMsg uintptr
+ insertBeforeString uintptr
deleteMsg uintptr
}
@@ -53,7 +53,7 @@ var classTypes = [nctypes]*classData{
xstyle: 0 | controlxstyle,
altStyle: _CBS_DROPDOWN | _CBS_AUTOHSCROLL | controlstyle,
appendMsg: _CB_ADDSTRING,
- insertAfterMsg: _CB_INSERTSTRING,
+ insertBeforeMsg: _CB_INSERTSTRING,
deleteMsg: _CB_DELETESTRING,
},
c_lineedit: &classData{
@@ -73,7 +73,7 @@ var classTypes = [nctypes]*classData{
xstyle: 0 | controlxstyle,
altStyle: _LBS_EXTENDEDSEL | _WS_VSCROLL | controlstyle,
appendMsg: _LB_ADDSTRING,
- insertAfterMsg: _LB_INSERTSTRING,
+ insertBeforeMsg: _LB_INSERTSTRING,
deleteMsg: _LB_DELETESTRING,
},
}
@@ -311,3 +311,22 @@ func (s *sysData) append(what string) (err error) {
// TODO error handling
return nil
}
+
+// TODO figure out how to handle errors
+func (s *sysData) insertBefore(what string, index int) (err error) {
+ ret := make(chan uiret)
+ defer close(ret)
+ uitask <- &uimsg{
+ call: _sendMessage,
+ p: []uintptr{
+ uintptr(s.hwnd),
+ uintptr(classTypes[s.ctype].insertBeforeMsg),
+ uintptr(_WPARAM(index)),
+ uintptr(_LPARAM(unsafe.Pointer(syscall.StringToUTF16Ptr(what)))),
+ },
+ ret: ret,
+ }
+ <-ret
+ // TODO error handling
+ return nil
+}