gdk4/auto/
content_formats.rs1use crate::ffi;
6use glib::translate::*;
7
8glib::wrapper! {
9 #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
10 pub struct ContentFormats(Shared<ffi::GdkContentFormats>);
11
12 match fn {
13 ref => |ptr| ffi::gdk_content_formats_ref(ptr),
14 unref => |ptr| ffi::gdk_content_formats_unref(ptr),
15 type_ => || ffi::gdk_content_formats_get_type(),
16 }
17}
18
19impl ContentFormats {
20 #[doc(alias = "gdk_content_formats_new")]
21 pub fn new(mime_types: &[&str]) -> ContentFormats {
22 assert_initialized_main_thread!();
23 let n_mime_types = mime_types.len() as _;
24 unsafe {
25 from_glib_full(ffi::gdk_content_formats_new(
26 mime_types.to_glib_none().0,
27 n_mime_types,
28 ))
29 }
30 }
31
32 #[doc(alias = "gdk_content_formats_new_for_gtype")]
33 #[doc(alias = "new_for_gtype")]
34 pub fn for_type(type_: glib::types::Type) -> ContentFormats {
35 assert_initialized_main_thread!();
36 unsafe { from_glib_full(ffi::gdk_content_formats_new_for_gtype(type_.into_glib())) }
37 }
38
39 #[doc(alias = "gdk_content_formats_contain_gtype")]
40 #[doc(alias = "contain_gtype")]
41 pub fn contains_type(&self, type_: glib::types::Type) -> bool {
42 unsafe {
43 from_glib(ffi::gdk_content_formats_contain_gtype(
44 self.to_glib_none().0,
45 type_.into_glib(),
46 ))
47 }
48 }
49
50 #[doc(alias = "gdk_content_formats_contain_mime_type")]
51 pub fn contain_mime_type(&self, mime_type: &str) -> bool {
52 unsafe {
53 from_glib(ffi::gdk_content_formats_contain_mime_type(
54 self.to_glib_none().0,
55 mime_type.to_glib_none().0,
56 ))
57 }
58 }
59
60 #[doc(alias = "gdk_content_formats_get_mime_types")]
61 #[doc(alias = "get_mime_types")]
62 pub fn mime_types(&self) -> Vec<glib::GString> {
63 unsafe {
64 let mut n_mime_types = std::mem::MaybeUninit::uninit();
65 let ret = FromGlibContainer::from_glib_none_num(
66 ffi::gdk_content_formats_get_mime_types(
67 self.to_glib_none().0,
68 n_mime_types.as_mut_ptr(),
69 ),
70 n_mime_types.assume_init() as _,
71 );
72 ret
73 }
74 }
75
76 #[cfg(feature = "v4_18")]
77 #[cfg_attr(docsrs, doc(cfg(feature = "v4_18")))]
78 #[doc(alias = "gdk_content_formats_is_empty")]
79 pub fn is_empty(&self) -> bool {
80 unsafe { from_glib(ffi::gdk_content_formats_is_empty(self.to_glib_none().0)) }
81 }
82
83 #[doc(alias = "gdk_content_formats_match")]
84 #[doc(alias = "match")]
85 pub fn match_(&self, second: &ContentFormats) -> bool {
86 unsafe {
87 from_glib(ffi::gdk_content_formats_match(
88 self.to_glib_none().0,
89 second.to_glib_none().0,
90 ))
91 }
92 }
93
94 #[doc(alias = "gdk_content_formats_match_gtype")]
95 #[doc(alias = "match_gtype")]
96 pub fn match_type(&self, second: &ContentFormats) -> glib::types::Type {
97 unsafe {
98 from_glib(ffi::gdk_content_formats_match_gtype(
99 self.to_glib_none().0,
100 second.to_glib_none().0,
101 ))
102 }
103 }
104
105 #[doc(alias = "gdk_content_formats_match_mime_type")]
106 pub fn match_mime_type(&self, second: &ContentFormats) -> Option<glib::GString> {
107 unsafe {
108 from_glib_none(ffi::gdk_content_formats_match_mime_type(
109 self.to_glib_none().0,
110 second.to_glib_none().0,
111 ))
112 }
113 }
114
115 #[doc(alias = "gdk_content_formats_to_string")]
116 #[doc(alias = "to_string")]
117 pub fn to_str(&self) -> glib::GString {
118 unsafe { from_glib_full(ffi::gdk_content_formats_to_string(self.to_glib_none().0)) }
119 }
120
121 #[doc(alias = "gdk_content_formats_union")]
122 #[must_use]
123 pub fn union(self, second: &ContentFormats) -> ContentFormats {
124 unsafe {
125 from_glib_full(ffi::gdk_content_formats_union(
126 self.into_glib_ptr(),
127 second.to_glib_none().0,
128 ))
129 }
130 }
131
132 #[doc(alias = "gdk_content_formats_union_deserialize_gtypes")]
133 #[doc(alias = "union_deserialize_gtypes")]
134 #[must_use]
135 pub fn union_deserialize_types(self) -> ContentFormats {
136 unsafe {
137 from_glib_full(ffi::gdk_content_formats_union_deserialize_gtypes(
138 self.into_glib_ptr(),
139 ))
140 }
141 }
142
143 #[doc(alias = "gdk_content_formats_union_deserialize_mime_types")]
144 #[must_use]
145 pub fn union_deserialize_mime_types(self) -> ContentFormats {
146 unsafe {
147 from_glib_full(ffi::gdk_content_formats_union_deserialize_mime_types(
148 self.into_glib_ptr(),
149 ))
150 }
151 }
152
153 #[doc(alias = "gdk_content_formats_union_serialize_gtypes")]
154 #[doc(alias = "union_serialize_gtypes")]
155 #[must_use]
156 pub fn union_serialize_types(self) -> ContentFormats {
157 unsafe {
158 from_glib_full(ffi::gdk_content_formats_union_serialize_gtypes(
159 self.into_glib_ptr(),
160 ))
161 }
162 }
163
164 #[doc(alias = "gdk_content_formats_union_serialize_mime_types")]
165 #[must_use]
166 pub fn union_serialize_mime_types(self) -> ContentFormats {
167 unsafe {
168 from_glib_full(ffi::gdk_content_formats_union_serialize_mime_types(
169 self.into_glib_ptr(),
170 ))
171 }
172 }
173
174 #[cfg(feature = "v4_4")]
175 #[cfg_attr(docsrs, doc(cfg(feature = "v4_4")))]
176 #[doc(alias = "gdk_content_formats_parse")]
177 pub fn parse(string: &str) -> Result<ContentFormats, glib::BoolError> {
178 assert_initialized_main_thread!();
179 unsafe {
180 Option::<_>::from_glib_full(ffi::gdk_content_formats_parse(string.to_glib_none().0))
181 .ok_or_else(|| glib::bool_error!("Can't parse ContentFormats"))
182 }
183 }
184}
185
186impl std::fmt::Display for ContentFormats {
187 #[inline]
188 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
189 f.write_str(&self.to_str())
190 }
191}