From 99feed762802516b74ab8b251cf376f3affa6cbb Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 15 Feb 2014 13:07:46 -0500 Subject: [PATCH] Removed setting the initial width and height in sysData.make() (this gets rid of the dummy 300x300 sizes from the controls) and added an explicit sysData.setWindowSize() to Window.Open() to ensure everything's sized properly. --- button.go | 2 +- checkbox.go | 2 +- combobox.go | 2 +- label.go | 2 +- lineedit.go | 2 +- listbox.go | 2 +- sysdata.go | 2 +- sysdata_windows.go | 8 ++++---- window.go | 7 +++++-- 9 files changed, 16 insertions(+), 13 deletions(-) diff --git a/button.go b/button.go index 4e3d7e1..aa1c0bd 100644 --- a/button.go +++ b/button.go @@ -42,7 +42,7 @@ func (b *Button) make(window *sysData) error { defer b.lock.Unlock() b.sysData.event = b.Clicked - err := b.sysData.make(b.initText, 300, 300, window) + err := b.sysData.make(b.initText, window) if err != nil { return err } diff --git a/checkbox.go b/checkbox.go index 017b81a..dc148e2 100644 --- a/checkbox.go +++ b/checkbox.go @@ -53,7 +53,7 @@ func (c *Checkbox) make(window *sysData) error { c.lock.Lock() defer c.lock.Unlock() - err := c.sysData.make(c.initText, 300, 300, window) + err := c.sysData.make(c.initText, window) if err != nil { return err } diff --git a/combobox.go b/combobox.go index 5080d38..e018cce 100644 --- a/combobox.go +++ b/combobox.go @@ -45,7 +45,7 @@ func (c *Combobox) make(window *sysData) (err error) { c.lock.Lock() defer c.lock.Unlock() - err = c.sysData.make("", 300, 300, window) + err = c.sysData.make("", window) if err != nil { return err } diff --git a/label.go b/label.go index 12cec5b..d924cd3 100644 --- a/label.go +++ b/label.go @@ -29,7 +29,7 @@ func (l *Label) make(window *sysData) error { l.lock.Lock() defer l.lock.Unlock() - err := l.sysData.make(l.initText, 300, 300, window) + err := l.sysData.make(l.initText, window) if err != nil { return err } diff --git a/lineedit.go b/lineedit.go index a8c9057..9c5b25d 100644 --- a/lineedit.go +++ b/lineedit.go @@ -42,7 +42,7 @@ func (l *LineEdit) make(window *sysData) error { l.lock.Lock() defer l.lock.Unlock() - err := l.sysData.make(l.initText, 300, 300, window) + err := l.sysData.make(l.initText, window) if err != nil { return err } diff --git a/listbox.go b/listbox.go index b973714..20f1ffd 100644 --- a/listbox.go +++ b/listbox.go @@ -36,7 +36,7 @@ func (l *Listbox) make(window *sysData) (err error) { l.lock.Lock() defer l.lock.Unlock() - err = l.sysData.make("", 300, 300, window) + err = l.sysData.make("", window) if err != nil { return err } diff --git a/sysdata.go b/sysdata.go index 929c015..a49db08 100644 --- a/sysdata.go +++ b/sysdata.go @@ -12,7 +12,7 @@ type cSysData struct { resize func(x int, y int, width int, height int) error alternate bool // editable for Combobox, multi-select for listbox } -func (c *cSysData) make(initText string, initWidth int, initHeight int, window *sysData) error { +func (c *cSysData) make(initText string, window *sysData) error { panic(runtime.GOOS + " sysData does not define make()") } func (c *cSysData) show() error { diff --git a/sysdata_windows.go b/sysdata_windows.go index 6d56b83..3f20964 100644 --- a/sysdata_windows.go +++ b/sysdata_windows.go @@ -102,7 +102,7 @@ func (s *sysData) delChild(id _HMENU) { } // TODO adorn error messages with what stage failed? -func (s *sysData) make(initText string, initWidth int, initHeight int, window *sysData) (err error) { +func (s *sysData) make(initText string, window *sysData) (err error) { ret := make(chan uiret) defer close(ret) ct := classTypes[s.ctype] @@ -130,10 +130,10 @@ func (s *sysData) make(initText string, initWidth int, initHeight int, window *s uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(classname))), uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(initText))), style, - uintptr(_CW_USEDEFAULT), // TODO uintptr(_CW_USEDEFAULT), - uintptr(initWidth), - uintptr(initHeight), + uintptr(_CW_USEDEFAULT), + uintptr(_CW_USEDEFAULT), + uintptr(_CW_USEDEFAULT), pwin, uintptr(cid), uintptr(hInstance), diff --git a/window.go b/window.go index d77fdd0..770cc81 100644 --- a/window.go +++ b/window.go @@ -71,7 +71,7 @@ func (w *Window) Open(control Control) (err error) { panic("window already open") } w.sysData.event = w.Closing - err = w.sysData.make(w.initTitle, w.initWidth, w.initHeight, nil) + err = w.sysData.make(w.initTitle, nil) if err != nil { return fmt.Errorf("error opening window: %v", err) } @@ -82,7 +82,10 @@ func (w *Window) Open(control Control) (err error) { return fmt.Errorf("error adding window's control: %v", err) } } - // TODO resize window to apply control sizes + err = w.sysData.setWindowSize(w.initWidth, w.initHeight) + if err != nil { + return fmt.Errorf("error setting window size (in Window.Open()): %v", err) + } // TODO separate showing? err = w.sysData.show() if err != nil {