gtk4/auto/
multi_filter.rsuse crate::{ffi, Buildable, Filter};
use glib::{prelude::*, translate::*};
glib::wrapper! {
#[doc(alias = "GtkMultiFilter")]
pub struct MultiFilter(Object<ffi::GtkMultiFilter, ffi::GtkMultiFilterClass>) @extends Filter, @implements gio::ListModel, Buildable;
match fn {
type_ => || ffi::gtk_multi_filter_get_type(),
}
}
impl MultiFilter {
pub const NONE: Option<&'static MultiFilter> = None;
}
mod sealed {
pub trait Sealed {}
impl<T: super::IsA<super::MultiFilter>> Sealed for T {}
}
pub trait MultiFilterExt: IsA<MultiFilter> + sealed::Sealed + 'static {
#[doc(alias = "gtk_multi_filter_append")]
fn append(&self, filter: impl IsA<Filter>) {
unsafe {
ffi::gtk_multi_filter_append(
self.as_ref().to_glib_none().0,
filter.upcast().into_glib_ptr(),
);
}
}
#[doc(alias = "gtk_multi_filter_remove")]
fn remove(&self, position: u32) {
unsafe {
ffi::gtk_multi_filter_remove(self.as_ref().to_glib_none().0, position);
}
}
}
impl<O: IsA<MultiFilter>> MultiFilterExt for O {}