Added a new method to AreaHandler, Defocuses(), for navigation events.
This commit is contained in:
parent
503364af51
commit
0a4dfbbae1
|
@ -76,6 +76,10 @@ type AreaHandler interface {
|
||||||
// See KeyEvent for details.
|
// See KeyEvent for details.
|
||||||
// After handling the key event, package ui will decide whether to perform platform-dependent event chain continuation based on that platform's designated action (so it is not possible to override global key events, such as Alt-Tab, this way).
|
// After handling the key event, package ui will decide whether to perform platform-dependent event chain continuation based on that platform's designated action (so it is not possible to override global key events, such as Alt-Tab, this way).
|
||||||
Key(e KeyEvent)
|
Key(e KeyEvent)
|
||||||
|
|
||||||
|
// Defocuses is called when package ui needs to tell the OS if the Area should stop accepting focus.
|
||||||
|
// When and how often Defocuses is called is implementation-defined.
|
||||||
|
Defocuses() bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// MouseEvent contains all the information for a mous event sent by Area.Mouse.
|
// MouseEvent contains all the information for a mous event sent by Area.Mouse.
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
|
|
||||||
var closeOnClick = flag.Bool("close", false, "close on click")
|
var closeOnClick = flag.Bool("close", false, "close on click")
|
||||||
var smallWindow = flag.Bool("small", false, "open a small window (test Mac OS X initial control sizing)")
|
var smallWindow = flag.Bool("small", false, "open a small window (test Mac OS X initial control sizing)")
|
||||||
|
var defocuses = flag.Bool("defocuses", false, "if the Area in the small window (see -small) should defocus")
|
||||||
|
|
||||||
type dtype struct {
|
type dtype struct {
|
||||||
Name string
|
Name string
|
||||||
|
@ -47,7 +48,7 @@ type testwin struct {
|
||||||
wsmall Window
|
wsmall Window
|
||||||
}
|
}
|
||||||
|
|
||||||
type areaHandler struct{}
|
type areaHandler struct{defocuses bool}
|
||||||
func (a *areaHandler) Paint(r image.Rectangle) *image.RGBA {
|
func (a *areaHandler) Paint(r image.Rectangle) *image.RGBA {
|
||||||
i := image.NewRGBA(r)
|
i := image.NewRGBA(r)
|
||||||
draw.Draw(i, r, &image.Uniform{color.RGBA{128,0,128,255}}, image.ZP, draw.Src)
|
draw.Draw(i, r, &image.Uniform{color.RGBA{128,0,128,255}}, image.ZP, draw.Src)
|
||||||
|
@ -55,6 +56,7 @@ func (a *areaHandler) Paint(r image.Rectangle) *image.RGBA {
|
||||||
}
|
}
|
||||||
func (a *areaHandler) Mouse(me MouseEvent) { fmt.Printf("%#v\n", me) }
|
func (a *areaHandler) Mouse(me MouseEvent) { fmt.Printf("%#v\n", me) }
|
||||||
func (a *areaHandler) Key(ke KeyEvent) { fmt.Printf("%#v %q\n", ke, ke.Key) }
|
func (a *areaHandler) Key(ke KeyEvent) { fmt.Printf("%#v %q\n", ke, ke.Key) }
|
||||||
|
func (a *areaHandler) Defocuses() bool { return a.defocuses }
|
||||||
|
|
||||||
func (tw *testwin) make(done chan struct{}) {
|
func (tw *testwin) make(done chan struct{}) {
|
||||||
tw.t = NewTab()
|
tw.t = NewTab()
|
||||||
|
@ -139,7 +141,7 @@ func (tw *testwin) make(done chan struct{}) {
|
||||||
NewVerticalStack(
|
NewVerticalStack(
|
||||||
NewButton("Small"),
|
NewButton("Small"),
|
||||||
NewButton("Small"),
|
NewButton("Small"),
|
||||||
NewArea(200, 200, &areaHandler{})))
|
NewArea(200, 200, &areaHandler{*defocuses})))
|
||||||
tw.wsmall.Show()
|
tw.wsmall.Show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue