tins2020/dialogs.go

54 lines
945 B
Go
Raw Normal View History

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)
}