summaryrefslogtreecommitdiff
path: root/src/wayland-client.ads
blob: 2d6fff0c01dbe12b06bed9d732e2b3eb2a84d991 (plain)
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206


package Wayland.Client is


    subtype Num_Events_Dispatched is Natural;
    subtype Num_Bytes_Sent is Natural;




    type Proxy is new Wayland_Object with private;
    type Proxy_Access is access Proxy;


    type Display is new Proxy with private;
    type Display_Access is access Display;


    type Event_Queue is new Wayland_Object private;
    type Event_Queue_Access is access Event_Queue;




    type Dispatcher_Function is access procedure
           (Obj : in Wayland_Object;
            Op  : in Opcode);




    --  Proxy

    function Create
           (Factory      : in Proxy;
            My_Interface : in Protocol_Interface)
        return Proxy;

    procedure Marshal
           (This : in out Proxy;
            Op   : in     Opcode;
            Args : in     Argument_Array);

    function Marshal_Constructor
           (This         : in out Proxy;
            My_Interface : in     Protocol_Interface;
            Op           : in     Opcode;
            Args         : in     Argument_Array)
        return Proxy;

    function Marshal_Constructor
           (This         : in out Proxy;
            My_Interface : in     Protocol_Interface;
            Op           : in     Opcode;
            Args         : in     Argument_Array;
            Version      : in     Version_Number)
        return Proxy;

    procedure Add_Listener
           (This : in out Proxy;
            Op   : in     Opcode;
            Func : in     Listener_Function);

    function Get_Listener
           (This : in Proxy;
            Op   : in Opcode)
        return Listener_Function;

    procedure Remove_Listener
           (This : in out Proxy;
            Op   : in     Opcode);

    procedure Set_Dispatcher
           (This : in out Proxy;
            Func : in     Dispatcher_Function);

    function Get_Version
           (This : in Proxy)
        return Version_Number;

    function Get_ID
           (This : in Proxy)
        return ID_Number;

    function Get_Interface_Name
           (This : in Proxy)
        return String;

    procedure Set_Queue
           (This  : in out Proxy;
            Queue : in     Event_Queue_Access);




    --  Display

    function Connect
           (Name : in String)
        return Display;

    function Connect_To_FD
           (FD : in File_Descriptor)
        return Display;

    procedure Disconnect
           (This : in out Display);

    function Get_FD
           (This : in Display)
        return File_Descriptor;

    function Dispatch
           (This : in out Display)
        return Num_Events_Dispatched;

    function Dispatch_Pending
           (This : in out Display)
        return Num_Events_Dispatched;

    function Dispatch_Queue
           (This  : in out Display;
            Queue : in out Event_Queue)
        return Num_Events_Dispatched;

    function Dispatch_Queue_Pending
           (This  : in out Display;
            Queue : in out Event_Queue)
        return Num_Events_Dispatched;

    function Get_Error
           (This : in out Display)
        return Error_Value;

    function Get_Protocol_Error
           (This         : in Display;
            My_Interface : in Protocol_Interface_Access;
            ID           : in ID_Number)
        return Error_Value;

    function Flush
           (This : in out Display)
        return Num_Bytes_Sent;

    function Roundtrip_Queue
           (This  : in out Display;
            Queue : in out Event_Queue)
        return Num_Events_Dispatched;

    function Roundtrip
           (This : in out Display)
        return Num_Events_Dispatched;

    procedure Read_Events
           (This  : in out Display);

    procedure Read_Events
           (This  : in out Display;
            Queue : in out Event_Queue);




    --  Event_Queue

    function Create_Queue
           (This : in out Display)
        return Event_Queue;




    --  Log

    procedure Set_Log_Handler
           (Handler : in Log_Function);


private


    type Proxy is new Wayland_Object with null record;

    procedure Finalize
           (This : in out Proxy);




    type Display is new Proxy with null record;

    procedure Finalize
           (This : in out Display);




    type Event_Queue is new Wayland_Object with null record;

    procedure Finalize
           (This : in out Event_Queue);


end Wayland.Client;