gtk/auto/
text_mark.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4
5use glib::object::Cast;
6use glib::object::IsA;
7use glib::translate::*;
8use glib::GString;
9use glib::StaticType;
10use glib::ToValue;
11use gtk_sys;
12use std::fmt;
13use TextBuffer;
14
15glib_wrapper! {
16    pub struct TextMark(Object<gtk_sys::GtkTextMark, gtk_sys::GtkTextMarkClass, TextMarkClass>);
17
18    match fn {
19        get_type => || gtk_sys::gtk_text_mark_get_type(),
20    }
21}
22
23impl TextMark {
24    pub fn new(name: Option<&str>, left_gravity: bool) -> TextMark {
25        assert_initialized_main_thread!();
26        unsafe {
27            from_glib_full(gtk_sys::gtk_text_mark_new(
28                name.to_glib_none().0,
29                left_gravity.to_glib(),
30            ))
31        }
32    }
33}
34
35pub struct TextMarkBuilder {
36    left_gravity: Option<bool>,
37    name: Option<String>,
38}
39
40impl TextMarkBuilder {
41    pub fn new() -> Self {
42        Self {
43            left_gravity: None,
44            name: None,
45        }
46    }
47
48    pub fn build(self) -> TextMark {
49        let mut properties: Vec<(&str, &dyn ToValue)> = vec![];
50        if let Some(ref left_gravity) = self.left_gravity {
51            properties.push(("left-gravity", left_gravity));
52        }
53        if let Some(ref name) = self.name {
54            properties.push(("name", name));
55        }
56        glib::Object::new(TextMark::static_type(), &properties)
57            .expect("object new")
58            .downcast()
59            .expect("downcast")
60    }
61
62    pub fn left_gravity(mut self, left_gravity: bool) -> Self {
63        self.left_gravity = Some(left_gravity);
64        self
65    }
66
67    pub fn name(mut self, name: &str) -> Self {
68        self.name = Some(name.to_string());
69        self
70    }
71}
72
73pub const NONE_TEXT_MARK: Option<&TextMark> = None;
74
75pub trait TextMarkExt: 'static {
76    fn get_buffer(&self) -> Option<TextBuffer>;
77
78    fn get_deleted(&self) -> bool;
79
80    fn get_left_gravity(&self) -> bool;
81
82    fn get_name(&self) -> Option<GString>;
83
84    fn get_visible(&self) -> bool;
85
86    fn set_visible(&self, setting: bool);
87}
88
89impl<O: IsA<TextMark>> TextMarkExt for O {
90    fn get_buffer(&self) -> Option<TextBuffer> {
91        unsafe {
92            from_glib_none(gtk_sys::gtk_text_mark_get_buffer(
93                self.as_ref().to_glib_none().0,
94            ))
95        }
96    }
97
98    fn get_deleted(&self) -> bool {
99        unsafe {
100            from_glib(gtk_sys::gtk_text_mark_get_deleted(
101                self.as_ref().to_glib_none().0,
102            ))
103        }
104    }
105
106    fn get_left_gravity(&self) -> bool {
107        unsafe {
108            from_glib(gtk_sys::gtk_text_mark_get_left_gravity(
109                self.as_ref().to_glib_none().0,
110            ))
111        }
112    }
113
114    fn get_name(&self) -> Option<GString> {
115        unsafe {
116            from_glib_none(gtk_sys::gtk_text_mark_get_name(
117                self.as_ref().to_glib_none().0,
118            ))
119        }
120    }
121
122    fn get_visible(&self) -> bool {
123        unsafe {
124            from_glib(gtk_sys::gtk_text_mark_get_visible(
125                self.as_ref().to_glib_none().0,
126            ))
127        }
128    }
129
130    fn set_visible(&self, setting: bool) {
131        unsafe {
132            gtk_sys::gtk_text_mark_set_visible(self.as_ref().to_glib_none().0, setting.to_glib());
133        }
134    }
135}
136
137impl fmt::Display for TextMark {
138    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
139        write!(f, "TextMark")
140    }
141}