summaryrefslogtreecommitdiff
path: root/sysdata_windows.go
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-02-15 13:02:10 -0500
committerPietro Gagliardi <[email protected]>2014-02-15 13:02:10 -0500
commit32e70f64143b840292b4f763ede9585d792aaccb (patch)
treed30086b55ab486da395d5f4093d78200b34c601f /sysdata_windows.go
parent0247935cbf9a6ebed3640d0879f4854b4e7fd8c1 (diff)
Added sysData.setWindowSize(), which will simplify a few things in Window.Open() and Control.make().
Diffstat (limited to 'sysdata_windows.go')
-rw-r--r--sysdata_windows.go26
1 files changed, 25 insertions, 1 deletions
diff --git a/sysdata_windows.go b/sysdata_windows.go
index da7e14b..6d56b83 100644
--- a/sysdata_windows.go
+++ b/sysdata_windows.go
@@ -240,7 +240,7 @@ func (s *sysData) setRect(x int, y int, width int, height int) error {
}
r := <-ret
if r.ret == 0 { // failure
- return r.err
+ return fmt.Errorf("error setting window/control rect: %v", r.err)
}
return nil
}
@@ -437,3 +437,27 @@ func (s *sysData) selectedTexts() ([]string, error) {
}
return strings, nil
}
+
+func (s *sysData) setWindowSize(width int, height int) error {
+ var rect _RECT
+
+ ret := make(chan uiret)
+ defer close(ret)
+ uitask <- &uimsg{
+ call: _getClientRect,
+ p: []uintptr{
+ uintptr(s.hwnd),
+ uintptr(unsafe.Pointer(&rect)),
+ },
+ ret: ret,
+ }
+ r := <-ret
+ if r.ret == 0 {
+ return fmt.Errorf("error getting upper-left of window for resize: %v", r.err)
+ }
+ err := s.setRect(int(rect.Left), int(rect.Top), width, height)
+ if err != nil {
+ return fmt.Errorf("error actually resizing window: %v", err)
+ }
+ return nil
+}