Display methods now route through IPC bus instead of direct Manager calls. Menu/tray setup uses PERFORM. Tray click actions handled via HandleIPCEvents. WindowInfo aliased from window package. Direct Manager refs removed. Integration tests verify full 4-service conclave startup and communication. Service struct no longer holds windows/tray/menus fields — uses windowService() for direct Manager access where IPC messages are not yet defined. Co-Authored-By: Virgil <virgil@lethean.io>
19 lines
443 B
Go
19 lines
443 B
Go
package display
|
|
|
|
// mockEventSource implements EventSource for testing.
|
|
type mockEventSource struct {
|
|
themeHandlers []func(isDark bool)
|
|
}
|
|
|
|
func newMockEventSource() *mockEventSource {
|
|
return &mockEventSource{}
|
|
}
|
|
|
|
func (m *mockEventSource) OnThemeChange(handler func(isDark bool)) func() {
|
|
m.themeHandlers = append(m.themeHandlers, handler)
|
|
return func() {}
|
|
}
|
|
|
|
func (m *mockEventSource) Emit(name string, data ...any) bool {
|
|
return true
|
|
}
|