3
3
// rustdoc-stripper-ignore-next
4
4
//! Traits intended for implementing the [`Acessible`](crate::Acessible) interface.
5
5
6
- use super :: PtrHolder ;
7
6
use crate :: { prelude:: * , subclass:: prelude:: * , ATContext , Accessible , AccessiblePlatformState } ;
8
- use glib:: { translate:: * , Quark } ;
9
- use once_cell:: sync:: Lazy ;
7
+ use glib:: translate:: * ;
10
8
use std:: mem:: MaybeUninit ;
11
9
12
10
pub trait AccessibleImpl : ObjectImpl {
@@ -112,7 +110,7 @@ impl<T: AccessibleImpl> AccessibleImplExt for T {
112
110
. get_at_context
113
111
. expect ( "no parent \" get_at_context\" implementation" ) ;
114
112
115
- from_glib_none ( func (
113
+ from_glib_full ( func (
116
114
self . obj ( ) . unsafe_cast_ref :: < Accessible > ( ) . to_glib_none ( ) . 0 ,
117
115
) )
118
116
}
@@ -128,7 +126,7 @@ impl<T: AccessibleImpl> AccessibleImplExt for T {
128
126
. get_accessible_parent
129
127
. expect ( "no parent \" get_accessible_parent\" implementation" ) ;
130
128
131
- from_glib_none ( func (
129
+ from_glib_full ( func (
132
130
self . obj ( ) . unsafe_cast_ref :: < Accessible > ( ) . to_glib_none ( ) . 0 ,
133
131
) )
134
132
}
@@ -144,7 +142,7 @@ impl<T: AccessibleImpl> AccessibleImplExt for T {
144
142
. get_first_accessible_child
145
143
. expect ( "no parent \" get_first_accessible_child\" implementation" ) ;
146
144
147
- from_glib_none ( func (
145
+ from_glib_full ( func (
148
146
self . obj ( ) . unsafe_cast_ref :: < Accessible > ( ) . to_glib_none ( ) . 0 ,
149
147
) )
150
148
}
@@ -160,7 +158,7 @@ impl<T: AccessibleImpl> AccessibleImplExt for T {
160
158
. get_next_accessible_sibling
161
159
. expect ( "no parent \" get_next_accessible_sibling\" implementation" ) ;
162
160
163
- from_glib_none ( func (
161
+ from_glib_full ( func (
164
162
self . obj ( ) . unsafe_cast_ref :: < Accessible > ( ) . to_glib_none ( ) . 0 ,
165
163
) )
166
164
}
@@ -212,90 +210,38 @@ unsafe extern "C" fn accessible_get_bounds<T: AccessibleImpl>(
212
210
}
213
211
}
214
212
215
- static ACCESSIBLE_GET_AT_CONTEXT_QUARK : Lazy < Quark > =
216
- Lazy :: new ( || Quark :: from_str ( "gtk4-rs-subclass-accessible-get-at-context" ) ) ;
217
213
unsafe extern "C" fn accessible_get_at_context < T : AccessibleImpl > (
218
214
accessible : * mut ffi:: GtkAccessible ,
219
215
) -> * mut ffi:: GtkATContext {
220
216
let instance = & * ( accessible as * mut T :: Instance ) ;
221
217
let imp = instance. imp ( ) ;
222
218
223
- if let Some ( at_context) = imp. at_context ( ) {
224
- let at_context = at_context. into_glib_ptr ( ) ;
225
- imp. obj ( ) . set_qdata (
226
- * ACCESSIBLE_GET_AT_CONTEXT_QUARK ,
227
- PtrHolder ( at_context, |ptr| {
228
- glib:: gobject_ffi:: g_object_unref ( ptr as * mut _ )
229
- } ) ,
230
- ) ;
231
- at_context
232
- } else {
233
- std:: ptr:: null_mut ( )
234
- }
219
+ imp. at_context ( ) . into_glib_ptr ( )
235
220
}
236
221
237
- static ACCESSIBLE_GET_ACCESSIBLE_PARENT : Lazy < Quark > =
238
- Lazy :: new ( || Quark :: from_str ( "gtk4-rs-subclass-accessible-get-accessible-parent" ) ) ;
239
222
unsafe extern "C" fn accessible_get_accessible_parent < T : AccessibleImpl > (
240
223
accessible : * mut ffi:: GtkAccessible ,
241
224
) -> * mut ffi:: GtkAccessible {
242
225
let instance = & * ( accessible as * mut T :: Instance ) ;
243
226
let imp = instance. imp ( ) ;
244
227
245
- if let Some ( accessible_parent) = imp. accessible_parent ( ) {
246
- let accessible_parent = accessible_parent. into_glib_ptr ( ) ;
247
- imp. obj ( ) . set_qdata (
248
- * ACCESSIBLE_GET_ACCESSIBLE_PARENT ,
249
- PtrHolder ( accessible_parent, |ptr| {
250
- glib:: gobject_ffi:: g_object_unref ( ptr as * mut _ )
251
- } ) ,
252
- ) ;
253
- accessible_parent
254
- } else {
255
- std:: ptr:: null_mut ( )
256
- }
228
+ imp. accessible_parent ( ) . into_glib_ptr ( )
257
229
}
258
230
259
- static ACCESSIBLE_GET_FIRST_ACCESSIBLE_CHILD : Lazy < Quark > =
260
- Lazy :: new ( || Quark :: from_str ( "gtk4-rs-subclass-accessible-get-first)accessible-child" ) ) ;
261
231
unsafe extern "C" fn accessible_get_first_accessible_child < T : AccessibleImpl > (
262
232
accessible : * mut ffi:: GtkAccessible ,
263
233
) -> * mut ffi:: GtkAccessible {
264
234
let instance = & * ( accessible as * mut T :: Instance ) ;
265
235
let imp = instance. imp ( ) ;
266
236
267
- if let Some ( first_accessible_child) = imp. first_accessible_child ( ) {
268
- let first_accessible_child = first_accessible_child. into_glib_ptr ( ) ;
269
- imp. obj ( ) . set_qdata (
270
- * ACCESSIBLE_GET_FIRST_ACCESSIBLE_CHILD ,
271
- PtrHolder ( first_accessible_child, |ptr| {
272
- glib:: gobject_ffi:: g_object_unref ( ptr as * mut _ )
273
- } ) ,
274
- ) ;
275
- first_accessible_child
276
- } else {
277
- std:: ptr:: null_mut ( )
278
- }
237
+ imp. first_accessible_child ( ) . into_glib_ptr ( )
279
238
}
280
239
281
- static ACCESSIBLE_GET_NEXT_ACCESSIBLE_SIBLING : Lazy < Quark > =
282
- Lazy :: new ( || Quark :: from_str ( "gtk4-rs-subclass-accessible-get-next-accessible-sibling" ) ) ;
283
240
unsafe extern "C" fn accessible_get_next_accessible_sibling < T : AccessibleImpl > (
284
241
accessible : * mut ffi:: GtkAccessible ,
285
242
) -> * mut ffi:: GtkAccessible {
286
243
let instance = & * ( accessible as * mut T :: Instance ) ;
287
244
let imp = instance. imp ( ) ;
288
245
289
- if let Some ( next_accessible_sibling) = imp. next_accessible_sibling ( ) {
290
- let next_accessible_sibling = next_accessible_sibling. into_glib_ptr ( ) ;
291
- imp. obj ( ) . set_qdata (
292
- * ACCESSIBLE_GET_NEXT_ACCESSIBLE_SIBLING ,
293
- PtrHolder ( next_accessible_sibling, |ptr| {
294
- glib:: gobject_ffi:: g_object_unref ( ptr as * mut _ )
295
- } ) ,
296
- ) ;
297
- next_accessible_sibling
298
- } else {
299
- std:: ptr:: null_mut ( )
300
- }
246
+ imp. next_accessible_sibling ( ) . into_glib_ptr ( )
301
247
}
0 commit comments