gtk/auto/
style_properties.rs1use glib;
6use glib::object::IsA;
7use glib::translate::*;
8use gtk_sys;
9use std::fmt;
10use StateFlags;
11use StyleProvider;
12
13glib_wrapper! {
14 pub struct StyleProperties(Object<gtk_sys::GtkStyleProperties, gtk_sys::GtkStylePropertiesClass, StylePropertiesClass>) @implements StyleProvider;
15
16 match fn {
17 get_type => || gtk_sys::gtk_style_properties_get_type(),
18 }
19}
20
21impl StyleProperties {
22 #[cfg_attr(feature = "v3_16", deprecated)]
23 pub fn new() -> StyleProperties {
24 assert_initialized_main_thread!();
25 unsafe { from_glib_full(gtk_sys::gtk_style_properties_new()) }
26 }
27}
28
29#[cfg_attr(feature = "v3_16", deprecated)]
30impl Default for StyleProperties {
31 fn default() -> Self {
32 Self::new()
33 }
34}
35
36pub const NONE_STYLE_PROPERTIES: Option<&StyleProperties> = None;
37
38pub trait StylePropertiesExt: 'static {
39 #[cfg_attr(feature = "v3_16", deprecated)]
40 fn clear(&self);
41
42 #[cfg_attr(feature = "v3_16", deprecated)]
46 fn get_property(&self, property: &str, state: StateFlags) -> Option<glib::Value>;
47
48 #[cfg_attr(feature = "v3_16", deprecated)]
52 fn merge<P: IsA<StyleProperties>>(&self, props_to_merge: &P, replace: bool);
53
54 #[cfg_attr(feature = "v3_16", deprecated)]
58 fn set_property(&self, property: &str, state: StateFlags, value: &glib::Value);
59
60 #[cfg_attr(feature = "v3_16", deprecated)]
64 fn unset_property(&self, property: &str, state: StateFlags);
65}
66
67impl<O: IsA<StyleProperties>> StylePropertiesExt for O {
68 fn clear(&self) {
69 unsafe {
70 gtk_sys::gtk_style_properties_clear(self.as_ref().to_glib_none().0);
71 }
72 }
73
74 fn get_property(&self, property: &str, state: StateFlags) -> Option<glib::Value> {
79 unsafe {
80 let mut value = glib::Value::uninitialized();
81 let ret = from_glib(gtk_sys::gtk_style_properties_get_property(
82 self.as_ref().to_glib_none().0,
83 property.to_glib_none().0,
84 state.to_glib(),
85 value.to_glib_none_mut().0,
86 ));
87 if ret {
88 Some(value)
89 } else {
90 None
91 }
92 }
93 }
94
95 fn merge<P: IsA<StyleProperties>>(&self, props_to_merge: &P, replace: bool) {
100 unsafe {
101 gtk_sys::gtk_style_properties_merge(
102 self.as_ref().to_glib_none().0,
103 props_to_merge.as_ref().to_glib_none().0,
104 replace.to_glib(),
105 );
106 }
107 }
108
109 fn set_property(&self, property: &str, state: StateFlags, value: &glib::Value) {
114 unsafe {
115 gtk_sys::gtk_style_properties_set_property(
116 self.as_ref().to_glib_none().0,
117 property.to_glib_none().0,
118 state.to_glib(),
119 value.to_glib_none().0,
120 );
121 }
122 }
123
124 fn unset_property(&self, property: &str, state: StateFlags) {
129 unsafe {
130 gtk_sys::gtk_style_properties_unset_property(
131 self.as_ref().to_glib_none().0,
132 property.to_glib_none().0,
133 state.to_glib(),
134 );
135 }
136 }
137}
138
139impl fmt::Display for StyleProperties {
140 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
141 write!(f, "StyleProperties")
142 }
143}