Resolved some of window.go's TODOs.
This commit is contained in:
parent
40f375fdb9
commit
2c97007551
34
window.go
34
window.go
|
@ -6,8 +6,6 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO adorn errors in each stage with which stage failed?
|
|
||||||
|
|
||||||
// Window represents an on-screen window.
|
// Window represents an on-screen window.
|
||||||
type Window struct {
|
type Window struct {
|
||||||
// If this channel is non-nil, the event loop will receive on this when the user clicks the window's close button.
|
// If this channel is non-nil, the event loop will receive on this when the user clicks the window's close button.
|
||||||
|
@ -38,7 +36,11 @@ func (w *Window) SetTitle(title string) (err error) {
|
||||||
defer w.lock.Unlock()
|
defer w.lock.Unlock()
|
||||||
|
|
||||||
if w.created {
|
if w.created {
|
||||||
return w.sysData.setText(title)
|
err = w.sysData.setText(title)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error setting window title: %v", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
w.initTitle = title
|
w.initTitle = title
|
||||||
return nil
|
return nil
|
||||||
|
@ -70,27 +72,39 @@ func (w *Window) Open(control Control) (err error) {
|
||||||
w.sysData.event = w.Closing
|
w.sysData.event = w.Closing
|
||||||
err = w.sysData.make(w.initTitle, w.initWidth, w.initHeight, nil)
|
err = w.sysData.make(w.initTitle, w.initWidth, w.initHeight, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return fmt.Errorf("error opening window: %v", err)
|
||||||
}
|
}
|
||||||
if control != nil {
|
if control != nil {
|
||||||
w.sysData.resize = control.setRect
|
w.sysData.resize = control.setRect
|
||||||
err = control.make(w.sysData)
|
err = control.make(w.sysData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return fmt.Errorf("error adding window's control: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// TODO resize window to apply control sizes
|
||||||
|
// TODO separate showing?
|
||||||
|
err = w.sysData.show()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error showing window (in Window.Open()): %v", err)
|
||||||
|
}
|
||||||
w.created = true
|
w.created = true
|
||||||
// TODO resize window to apply control sizes
|
return nil
|
||||||
// TODO ensure the window has been shown before setting create?
|
|
||||||
return w.sysData.show()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show shows the window.
|
// Show shows the window.
|
||||||
func (w *Window) Show() (err error) {
|
func (w *Window) Show() (err error) {
|
||||||
return w.sysData.show()
|
err = w.sysData.show()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error showing window: %v", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hide hides the window.
|
// Hide hides the window.
|
||||||
func (w *Window) Hide() (err error) {
|
func (w *Window) Hide() (err error) {
|
||||||
return w.sysData.hide()
|
err = w.sysData.hide()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error hiding window: %v", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue