gtk4/auto/
property_expression.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, Expression};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9    #[doc(alias = "GtkPropertyExpression")]
10    pub struct PropertyExpression(Shared<ffi::GtkPropertyExpression>);
11
12    match fn {
13        ref => |ptr| ffi::gtk_expression_ref(ptr as *mut ffi::GtkExpression),
14        unref => |ptr| ffi::gtk_expression_unref(ptr as *mut ffi::GtkExpression),
15    }
16}
17
18impl StaticType for PropertyExpression {
19    fn static_type() -> glib::Type {
20        unsafe { from_glib(ffi::gtk_property_expression_get_type()) }
21    }
22}
23
24impl PropertyExpression {
25    #[doc(alias = "gtk_property_expression_new")]
26    pub fn new(
27        this_type: glib::types::Type,
28        expression: Option<impl AsRef<Expression>>,
29        property_name: &str,
30    ) -> PropertyExpression {
31        assert_initialized_main_thread!();
32        unsafe {
33            from_glib_full(ffi::gtk_property_expression_new(
34                this_type.into_glib(),
35                expression
36                    .map(|p| p.as_ref().clone().upcast())
37                    .into_glib_ptr(),
38                property_name.to_glib_none().0,
39            ))
40        }
41    }
42
43    #[doc(alias = "gtk_property_expression_new_for_pspec")]
44    #[doc(alias = "new_for_pspec")]
45    pub fn for_pspec(
46        expression: Option<impl AsRef<Expression>>,
47        pspec: impl AsRef<glib::ParamSpec>,
48    ) -> PropertyExpression {
49        assert_initialized_main_thread!();
50        unsafe {
51            from_glib_full(ffi::gtk_property_expression_new_for_pspec(
52                expression
53                    .map(|p| p.as_ref().clone().upcast())
54                    .into_glib_ptr(),
55                pspec.as_ref().to_glib_none().0,
56            ))
57        }
58    }
59
60    #[doc(alias = "gtk_property_expression_get_expression")]
61    #[doc(alias = "get_expression")]
62    pub fn expression(&self) -> Option<Expression> {
63        unsafe {
64            from_glib_none(ffi::gtk_property_expression_get_expression(
65                self.to_glib_none().0,
66            ))
67        }
68    }
69
70    #[doc(alias = "gtk_property_expression_get_pspec")]
71    #[doc(alias = "get_pspec")]
72    pub fn pspec(&self) -> glib::ParamSpec {
73        unsafe {
74            from_glib_none(ffi::gtk_property_expression_get_pspec(
75                self.to_glib_none().0,
76            ))
77        }
78    }
79}