summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sysdata.go4
-rw-r--r--sysdata_windows.go25
2 files changed, 25 insertions, 4 deletions
diff --git a/sysdata.go b/sysdata.go
index eee6c88..a331ddc 100644
--- a/sysdata.go
+++ b/sysdata.go
@@ -36,7 +36,9 @@ func (c *cSysData) text() (string, error) {
func (c *cSysData) append(string) error {
panic(runtime.GOOS + " sysData does not define append()")
}
-// TODO insertAfter
+func (c *cSysData) insertBefore(string, int) error {
+ panic(runtime.GOOS + " sysData does not define insertBefore()")
+}
// TODO selectedIndex, selectedIndices, selectedTexts
const (
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
+}