1#[cfg(any(feature = "v3_22", feature = "dox"))]
6use glib;
7use glib::translate::*;
8use glib::GString;
9use gtk_sys;
10use std::fmt;
11use Buildable;
12use FileFilterFlags;
13
14glib_wrapper! {
15 pub struct FileFilter(Object<gtk_sys::GtkFileFilter, FileFilterClass>) @implements Buildable;
16
17 match fn {
18 get_type => || gtk_sys::gtk_file_filter_get_type(),
19 }
20}
21
22impl FileFilter {
23 pub fn new() -> FileFilter {
24 assert_initialized_main_thread!();
25 unsafe { from_glib_none(gtk_sys::gtk_file_filter_new()) }
26 }
27
28 #[cfg(any(feature = "v3_22", feature = "dox"))]
29 pub fn new_from_gvariant(variant: &glib::Variant) -> FileFilter {
30 assert_initialized_main_thread!();
31 unsafe {
32 from_glib_full(gtk_sys::gtk_file_filter_new_from_gvariant(
33 variant.to_glib_none().0,
34 ))
35 }
36 }
37
38 pub fn add_mime_type(&self, mime_type: &str) {
43 unsafe {
44 gtk_sys::gtk_file_filter_add_mime_type(
45 self.to_glib_none().0,
46 mime_type.to_glib_none().0,
47 );
48 }
49 }
50
51 pub fn add_pattern(&self, pattern: &str) {
52 unsafe {
53 gtk_sys::gtk_file_filter_add_pattern(self.to_glib_none().0, pattern.to_glib_none().0);
54 }
55 }
56
57 pub fn add_pixbuf_formats(&self) {
58 unsafe {
59 gtk_sys::gtk_file_filter_add_pixbuf_formats(self.to_glib_none().0);
60 }
61 }
62
63 pub fn get_name(&self) -> Option<GString> {
68 unsafe { from_glib_none(gtk_sys::gtk_file_filter_get_name(self.to_glib_none().0)) }
69 }
70
71 pub fn get_needed(&self) -> FileFilterFlags {
72 unsafe { from_glib(gtk_sys::gtk_file_filter_get_needed(self.to_glib_none().0)) }
73 }
74
75 pub fn set_name(&self, name: Option<&str>) {
76 unsafe {
77 gtk_sys::gtk_file_filter_set_name(self.to_glib_none().0, name.to_glib_none().0);
78 }
79 }
80
81 #[cfg(any(feature = "v3_22", feature = "dox"))]
82 pub fn to_gvariant(&self) -> Option<glib::Variant> {
83 unsafe { from_glib_none(gtk_sys::gtk_file_filter_to_gvariant(self.to_glib_none().0)) }
84 }
85}
86
87impl Default for FileFilter {
88 fn default() -> Self {
89 Self::new()
90 }
91}
92
93impl fmt::Display for FileFilter {
94 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
95 write!(f, "FileFilter")
96 }
97}