1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
// Take a look at the license at the top of the repository in the LICENSE file.
use crate::{Expression, StringSorter};
use glib::translate::*;
impl StringSorter {
/// Creates a new string sorter that compares items using the given
/// `expression`.
///
/// Unless an expression is set on it, this sorter will always
/// compare items as invalid.
/// ## `expression`
/// The expression to evaluate
///
/// # Returns
///
/// a new [`StringSorter`][crate::StringSorter]
#[doc(alias = "gtk_string_sorter_new")]
pub fn new<E: AsRef<Expression>>(expression: Option<&E>) -> Self {
assert_initialized_main_thread!();
unsafe {
from_glib_full(ffi::gtk_string_sorter_new(
expression.map(|e| e.as_ref()).to_glib_full(),
))
}
}
/// Sets the expression that is evaluated to obtain strings from items.
///
/// The expression must have the type `G_TYPE_STRING`.
/// ## `expression`
/// a [`Expression`][crate::Expression]
#[doc(alias = "gtk_string_sorter_set_expression")]
pub fn set_expression<E: AsRef<Expression>>(&self, expression: Option<&E>) {
unsafe {
ffi::gtk_string_sorter_set_expression(
self.to_glib_none().0,
expression.map(|e| e.as_ref()).to_glib_none().0,
);
}
}
}