gtk4/auto/
property_expression.rs1use 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}