36 lines
758 B
Go
36 lines
758 B
Go
package main
|
|
|
|
import (
|
|
"github.com/egoist/mygo/ui"
|
|
|
|
mujica "mujicaui"
|
|
)
|
|
|
|
type gallery struct {
|
|
pages []page
|
|
selected int
|
|
events []string
|
|
}
|
|
|
|
func newGallery() *gallery { return &gallery{pages: catalog()} }
|
|
|
|
func (g *gallery) log(s string) { g.events = append(g.events, s) }
|
|
|
|
func (g *gallery) view(c *ui.Context) {
|
|
mujica.Use(c, mujica.Settings{})
|
|
ui.Row(c).Fill().Children(func() {
|
|
ui.Scroll(c).Width(240).FillHeight().Children(func() {
|
|
for i, p := range g.pages {
|
|
if mujica.Button(c, p.ID+" "+p.Name, mujica.ButtonOptions{Variant: mujica.Ghost}).Key(p.ID).Clicked() {
|
|
g.selected = i
|
|
}
|
|
}
|
|
})
|
|
ui.Scroll(c).Fill().Padding(24).Children(func() {
|
|
if len(g.pages) > 0 {
|
|
g.pages[g.selected].Demo(c, g.log)
|
|
}
|
|
})
|
|
})
|
|
}
|