-
Notifications
You must be signed in to change notification settings - Fork 38
/
auto.go
118 lines (93 loc) · 3.38 KB
/
auto.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Code generated by "./generator ./session/com.deepin.wmswitcher"; DO NOT EDIT.
// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later
package wmswitcher
import "errors"
import "fmt"
import "github.com/godbus/dbus/v5"
import "github.com/linuxdeepin/go-lib/dbusutil"
import "github.com/linuxdeepin/go-lib/dbusutil/proxy"
import "unsafe"
type WMSwitcher interface {
wmSwitcher // interface com.deepin.WMSwitcher
proxy.Object
}
type objectWMSwitcher struct {
interfaceWmSwitcher // interface com.deepin.WMSwitcher
proxy.ImplObject
}
func NewWMSwitcher(conn *dbus.Conn) WMSwitcher {
obj := new(objectWMSwitcher)
obj.ImplObject.Init_(conn, "com.deepin.WMSwitcher", "/com/deepin/WMSwitcher")
return obj
}
type wmSwitcher interface {
GoAllowSwitch(flags dbus.Flags, ch chan *dbus.Call) *dbus.Call
AllowSwitch(flags dbus.Flags) (bool, error)
GoCurrentWM(flags dbus.Flags, ch chan *dbus.Call) *dbus.Call
CurrentWM(flags dbus.Flags) (string, error)
GoRequestSwitchWM(flags dbus.Flags, ch chan *dbus.Call) *dbus.Call
RequestSwitchWM(flags dbus.Flags) error
ConnectWMChanged(cb func(wmName string)) (dbusutil.SignalHandlerId, error)
}
type interfaceWmSwitcher struct{}
func (v *interfaceWmSwitcher) GetObject_() *proxy.ImplObject {
return (*proxy.ImplObject)(unsafe.Pointer(v))
}
func (*interfaceWmSwitcher) GetInterfaceName_() string {
return "com.deepin.WMSwitcher"
}
// method AllowSwitch
func (v *interfaceWmSwitcher) GoAllowSwitch(flags dbus.Flags, ch chan *dbus.Call) *dbus.Call {
return v.GetObject_().Go_(v.GetInterfaceName_()+".AllowSwitch", flags, ch)
}
func (*interfaceWmSwitcher) StoreAllowSwitch(call *dbus.Call) (allow bool, err error) {
err = call.Store(&allow)
return
}
func (v *interfaceWmSwitcher) AllowSwitch(flags dbus.Flags) (bool, error) {
return v.StoreAllowSwitch(
<-v.GoAllowSwitch(flags, make(chan *dbus.Call, 1)).Done)
}
// method CurrentWM
func (v *interfaceWmSwitcher) GoCurrentWM(flags dbus.Flags, ch chan *dbus.Call) *dbus.Call {
return v.GetObject_().Go_(v.GetInterfaceName_()+".CurrentWM", flags, ch)
}
func (*interfaceWmSwitcher) StoreCurrentWM(call *dbus.Call) (wmName string, err error) {
err = call.Store(&wmName)
return
}
func (v *interfaceWmSwitcher) CurrentWM(flags dbus.Flags) (string, error) {
return v.StoreCurrentWM(
<-v.GoCurrentWM(flags, make(chan *dbus.Call, 1)).Done)
}
// method RequestSwitchWM
func (v *interfaceWmSwitcher) GoRequestSwitchWM(flags dbus.Flags, ch chan *dbus.Call) *dbus.Call {
return v.GetObject_().Go_(v.GetInterfaceName_()+".RequestSwitchWM", flags, ch)
}
func (v *interfaceWmSwitcher) RequestSwitchWM(flags dbus.Flags) error {
return (<-v.GoRequestSwitchWM(flags, make(chan *dbus.Call, 1)).Done).Err
}
// signal WMChanged
func (v *interfaceWmSwitcher) ConnectWMChanged(cb func(wmName string)) (dbusutil.SignalHandlerId, error) {
if cb == nil {
return 0, errors.New("nil callback")
}
obj := v.GetObject_()
rule := fmt.Sprintf(
"type='signal',interface='%s',member='%s',path='%s',sender='%s'",
v.GetInterfaceName_(), "WMChanged", obj.Path_(), obj.ServiceName_())
sigRule := &dbusutil.SignalRule{
Path: obj.Path_(),
Name: v.GetInterfaceName_() + ".WMChanged",
}
handlerFunc := func(sig *dbus.Signal) {
var wmName string
err := dbus.Store(sig.Body, &wmName)
if err == nil {
cb(wmName)
}
}
return obj.ConnectSignal_(rule, sigRule, handlerFunc)
}