gui/pkg/systray/mock_test.go

61 lines
1.7 KiB
Go
Raw Permalink Normal View History

// pkg/systray/mock_test.go
package systray
type mockPlatform struct {
trays []*mockTray
menus []*mockTrayMenu
}
func newMockPlatform() *mockPlatform { return &mockPlatform{} }
func (p *mockPlatform) NewTray() PlatformTray {
t := &mockTray{}
p.trays = append(p.trays, t)
return t
}
func (p *mockPlatform) NewMenu() PlatformMenu {
m := &mockTrayMenu{}
p.menus = append(p.menus, m)
return m
}
type mockTrayMenu struct {
items []string
submenus []*mockTrayMenu
}
func (m *mockTrayMenu) Add(label string) PlatformMenuItem {
m.items = append(m.items, label)
return &mockTrayMenuItem{}
}
func (m *mockTrayMenu) AddSeparator() { m.items = append(m.items, "---") }
func (m *mockTrayMenu) AddSubmenu(label string) PlatformMenu {
m.items = append(m.items, label)
sub := &mockTrayMenu{}
m.submenus = append(m.submenus, sub)
return sub
}
type mockTrayMenuItem struct{}
func (mi *mockTrayMenuItem) SetTooltip(text string) {}
func (mi *mockTrayMenuItem) SetChecked(checked bool) {}
func (mi *mockTrayMenuItem) SetEnabled(enabled bool) {}
func (mi *mockTrayMenuItem) OnClick(fn func()) {}
func (mi *mockTrayMenuItem) AddSubmenu() PlatformMenu { return &mockTrayMenu{} }
type mockTray struct {
icon, templateIcon []byte
tooltip, label string
menu PlatformMenu
attachedWindow WindowHandle
}
func (t *mockTray) SetIcon(data []byte) { t.icon = data }
func (t *mockTray) SetTemplateIcon(data []byte) { t.templateIcon = data }
func (t *mockTray) SetTooltip(text string) { t.tooltip = text }
func (t *mockTray) SetLabel(text string) { t.label = text }
func (t *mockTray) SetMenu(menu PlatformMenu) { t.menu = menu }
func (t *mockTray) AttachWindow(w WindowHandle) { t.attachedWindow = w }