Cthulhu is no longer a fork. Now it is a screen reader written in Golang.

This commit is contained in:
Storm Dragon committed 2026-10-14 00:16:34 -04:00
1 parent a998fe67de
commit 069fc674dc
708 files changed
+112482 -532

No files matched your search

+37
View File
@@ -0,0 +1,37 @@
// Copyright (c) 2026 Storm Dragon
// SPDX-License-Identifier: GPL-3.0-or-later
package remote
import (
"git.stormux.org/storm/cthulhu/internal/atspi"
"git.stormux.org/storm/cthulhu/internal/wine"
"github.com/godbus/dbus/v5"
)
// Optional so legacy handlers and Orca exports retain their existing contract.
type WineReviewHandler interface {
RegisterProvider(string, dbus.ObjectPath, uint32) bool
PresentFocus(string, wine.ReviewFocusNotice) bool
}
type WineReviewConnectionHandler interface{ BindWineReviewConnection(*dbus.Conn) }
func (e *endpoint) RegisterWineReviewProvider(sender dbus.Sender, path dbus.ObjectPath, version uint32) (bool, *dbus.Error) {
if err := e.begin(sender, "RegisterWineReviewProvider"); err != nil {
return false, err
}
defer e.end()
if handler, ok := e.handler.(WineReviewHandler); ok {
return handler.RegisterProvider(string(sender), path, version), nil
}
return false, nil
}
func (e *endpoint) PresentWineReviewFocus(sender dbus.Sender, instance, window, focus string, revision uint64, title, role string, protected bool, bounds atspi.Rectangle) (bool, *dbus.Error) {
if err := e.begin(sender, "PresentWineReviewFocus"); err != nil {
return false, err
}
defer e.end()
if handler, ok := e.handler.(WineReviewHandler); ok {
return handler.PresentFocus(string(sender), wine.ReviewFocusNotice{Instance: instance, Window: window, Focus: focus, Revision: revision, Title: title, Role: role, Protected: protected, Bounds: bounds}), nil
}
return false, nil
}