gtk4/auto/style_provider.rs
1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use crate::ffi;
6use glib::{
7 object::ObjectType as _,
8 prelude::*,
9 signal::{connect_raw, SignalHandlerId},
10 translate::*,
11};
12use std::boxed::Box as Box_;
13
14glib::wrapper! {
15 /// An interface for style information used by [`StyleContext`][crate::StyleContext].
16 ///
17 /// See [`StyleContextExt::add_provider()`][crate::prelude::StyleContextExt::add_provider()] and
18 /// [`StyleContext::add_provider_for_display()`][crate::StyleContext::add_provider_for_display()] for
19 /// adding `GtkStyleProviders`.
20 ///
21 /// GTK uses the [`StyleProvider`][crate::StyleProvider] implementation for CSS in
22 /// [`CssProvider`][crate::CssProvider].
23 ///
24 /// ## Signals
25 ///
26 ///
27 /// #### `gtk-private-changed`
28 ///
29 ///
30 /// # Implements
31 ///
32 /// [`StyleProviderExt`][trait@crate::prelude::StyleProviderExt]
33 #[doc(alias = "GtkStyleProvider")]
34 pub struct StyleProvider(Interface<ffi::GtkStyleProvider>);
35
36 match fn {
37 type_ => || ffi::gtk_style_provider_get_type(),
38 }
39}
40
41impl StyleProvider {
42 pub const NONE: Option<&'static StyleProvider> = None;
43}
44
45/// Trait containing all [`struct@StyleProvider`] methods.
46///
47/// # Implementors
48///
49/// [`CssProvider`][struct@crate::CssProvider], [`Settings`][struct@crate::Settings], [`StyleProvider`][struct@crate::StyleProvider]
50pub trait StyleProviderExt: IsA<StyleProvider> + 'static {
51 #[doc(alias = "gtk-private-changed")]
52 fn connect_gtk_private_changed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
53 unsafe extern "C" fn gtk_private_changed_trampoline<
54 P: IsA<StyleProvider>,
55 F: Fn(&P) + 'static,
56 >(
57 this: *mut ffi::GtkStyleProvider,
58 f: glib::ffi::gpointer,
59 ) {
60 let f: &F = &*(f as *const F);
61 f(StyleProvider::from_glib_borrow(this).unsafe_cast_ref())
62 }
63 unsafe {
64 let f: Box_<F> = Box_::new(f);
65 connect_raw(
66 self.as_ptr() as *mut _,
67 c"gtk-private-changed".as_ptr() as *const _,
68 Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
69 gtk_private_changed_trampoline::<Self, F> as *const (),
70 )),
71 Box_::into_raw(f),
72 )
73 }
74 }
75}
76
77impl<O: IsA<StyleProvider>> StyleProviderExt for O {}