Files

38 lines
1.5 KiB
Go

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