package tins2020 type Dialogs struct { Proxy intro Control settings Control dialogClosed *Events dialogOpened *Events } func NewDialogs() *Dialogs { return &Dialogs{ dialogClosed: NewEvents(), dialogOpened: NewEvents(), } } func (d *Dialogs) DialogClosed() EventHandler { return d.dialogClosed } func (d *Dialogs) DialogOpened() EventHandler { return d.dialogOpened } func (d *Dialogs) Init(ctx *Context) error { d.intro = &Intro{} d.settings = &DialogBase{} err := d.intro.Init(ctx) if err != nil { return err } err = d.settings.Init(ctx) if err != nil { return err } return nil } func (d *Dialogs) Close() { d.Proxied = nil d.dialogClosed.Notify(nil) } func (d *Dialogs) ShowIntro() { d.Proxied = d.intro d.intro.(Dialog).ShowDialog(d.Close) d.dialogOpened.Notify(nil) } func (d *Dialogs) ShowSettings() { d.Proxied = d.settings d.settings.(Dialog).ShowDialog(d.Close) d.dialogOpened.Notify(nil) }