diff options
| author | Pietro Gagliardi <[email protected]> | 2014-02-15 13:02:10 -0500 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-02-15 13:02:10 -0500 |
| commit | 32e70f64143b840292b4f763ede9585d792aaccb (patch) | |
| tree | d30086b55ab486da395d5f4093d78200b34c601f /sysdata_windows.go | |
| parent | 0247935cbf9a6ebed3640d0879f4854b4e7fd8c1 (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.go | 26 |
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 +} |
