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 
5 use glib::translate::*;
6 use glib::value::FromValue;
7 use glib::value::ToValue;
8 use glib::StaticType;
9 use glib::Type;
10 use std::fmt;
11 
12 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
13 #[non_exhaustive]
14 #[doc(alias = "AtkCoordType")]
15 pub enum CoordType {
16     #[doc(alias = "ATK_XY_SCREEN")]
17     Screen,
18     #[doc(alias = "ATK_XY_WINDOW")]
19     Window,
20     #[doc(alias = "ATK_XY_PARENT")]
21     Parent,
22     #[doc(hidden)]
23     __Unknown(i32),
24 }
25 
26 impl fmt::Display for CoordType {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result27     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
28         write!(
29             f,
30             "CoordType::{}",
31             match *self {
32                 Self::Screen => "Screen",
33                 Self::Window => "Window",
34                 Self::Parent => "Parent",
35                 _ => "Unknown",
36             }
37         )
38     }
39 }
40 
41 #[doc(hidden)]
42 impl IntoGlib for CoordType {
43     type GlibType = ffi::AtkCoordType;
44 
into_glib(self) -> ffi::AtkCoordType45     fn into_glib(self) -> ffi::AtkCoordType {
46         match self {
47             Self::Screen => ffi::ATK_XY_SCREEN,
48             Self::Window => ffi::ATK_XY_WINDOW,
49             Self::Parent => ffi::ATK_XY_PARENT,
50             Self::__Unknown(value) => value,
51         }
52     }
53 }
54 
55 #[doc(hidden)]
56 impl FromGlib<ffi::AtkCoordType> for CoordType {
from_glib(value: ffi::AtkCoordType) -> Self57     unsafe fn from_glib(value: ffi::AtkCoordType) -> Self {
58         skip_assert_initialized!();
59         match value {
60             ffi::ATK_XY_SCREEN => Self::Screen,
61             ffi::ATK_XY_WINDOW => Self::Window,
62             ffi::ATK_XY_PARENT => Self::Parent,
63             value => Self::__Unknown(value),
64         }
65     }
66 }
67 
68 impl StaticType for CoordType {
static_type() -> Type69     fn static_type() -> Type {
70         unsafe { from_glib(ffi::atk_coord_type_get_type()) }
71     }
72 }
73 
74 impl glib::value::ValueType for CoordType {
75     type Type = Self;
76 }
77 
78 unsafe impl<'a> FromValue<'a> for CoordType {
79     type Checker = glib::value::GenericValueTypeChecker<Self>;
80 
from_value(value: &'a glib::Value) -> Self81     unsafe fn from_value(value: &'a glib::Value) -> Self {
82         skip_assert_initialized!();
83         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
84     }
85 }
86 
87 impl ToValue for CoordType {
to_value(&self) -> glib::Value88     fn to_value(&self) -> glib::Value {
89         let mut value = glib::Value::for_value_type::<Self>();
90         unsafe {
91             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
92         }
93         value
94     }
95 
value_type(&self) -> glib::Type96     fn value_type(&self) -> glib::Type {
97         Self::static_type()
98     }
99 }
100 
101 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
102 #[non_exhaustive]
103 #[doc(alias = "AtkLayer")]
104 pub enum Layer {
105     #[doc(alias = "ATK_LAYER_INVALID")]
106     Invalid,
107     #[doc(alias = "ATK_LAYER_BACKGROUND")]
108     Background,
109     #[doc(alias = "ATK_LAYER_CANVAS")]
110     Canvas,
111     #[doc(alias = "ATK_LAYER_WIDGET")]
112     Widget,
113     #[doc(alias = "ATK_LAYER_MDI")]
114     Mdi,
115     #[doc(alias = "ATK_LAYER_POPUP")]
116     Popup,
117     #[doc(alias = "ATK_LAYER_OVERLAY")]
118     Overlay,
119     #[doc(alias = "ATK_LAYER_WINDOW")]
120     Window,
121     #[doc(hidden)]
122     __Unknown(i32),
123 }
124 
125 impl fmt::Display for Layer {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result126     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
127         write!(
128             f,
129             "Layer::{}",
130             match *self {
131                 Self::Invalid => "Invalid",
132                 Self::Background => "Background",
133                 Self::Canvas => "Canvas",
134                 Self::Widget => "Widget",
135                 Self::Mdi => "Mdi",
136                 Self::Popup => "Popup",
137                 Self::Overlay => "Overlay",
138                 Self::Window => "Window",
139                 _ => "Unknown",
140             }
141         )
142     }
143 }
144 
145 #[doc(hidden)]
146 impl IntoGlib for Layer {
147     type GlibType = ffi::AtkLayer;
148 
into_glib(self) -> ffi::AtkLayer149     fn into_glib(self) -> ffi::AtkLayer {
150         match self {
151             Self::Invalid => ffi::ATK_LAYER_INVALID,
152             Self::Background => ffi::ATK_LAYER_BACKGROUND,
153             Self::Canvas => ffi::ATK_LAYER_CANVAS,
154             Self::Widget => ffi::ATK_LAYER_WIDGET,
155             Self::Mdi => ffi::ATK_LAYER_MDI,
156             Self::Popup => ffi::ATK_LAYER_POPUP,
157             Self::Overlay => ffi::ATK_LAYER_OVERLAY,
158             Self::Window => ffi::ATK_LAYER_WINDOW,
159             Self::__Unknown(value) => value,
160         }
161     }
162 }
163 
164 #[doc(hidden)]
165 impl FromGlib<ffi::AtkLayer> for Layer {
from_glib(value: ffi::AtkLayer) -> Self166     unsafe fn from_glib(value: ffi::AtkLayer) -> Self {
167         skip_assert_initialized!();
168         match value {
169             ffi::ATK_LAYER_INVALID => Self::Invalid,
170             ffi::ATK_LAYER_BACKGROUND => Self::Background,
171             ffi::ATK_LAYER_CANVAS => Self::Canvas,
172             ffi::ATK_LAYER_WIDGET => Self::Widget,
173             ffi::ATK_LAYER_MDI => Self::Mdi,
174             ffi::ATK_LAYER_POPUP => Self::Popup,
175             ffi::ATK_LAYER_OVERLAY => Self::Overlay,
176             ffi::ATK_LAYER_WINDOW => Self::Window,
177             value => Self::__Unknown(value),
178         }
179     }
180 }
181 
182 impl StaticType for Layer {
static_type() -> Type183     fn static_type() -> Type {
184         unsafe { from_glib(ffi::atk_layer_get_type()) }
185     }
186 }
187 
188 impl glib::value::ValueType for Layer {
189     type Type = Self;
190 }
191 
192 unsafe impl<'a> FromValue<'a> for Layer {
193     type Checker = glib::value::GenericValueTypeChecker<Self>;
194 
from_value(value: &'a glib::Value) -> Self195     unsafe fn from_value(value: &'a glib::Value) -> Self {
196         skip_assert_initialized!();
197         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
198     }
199 }
200 
201 impl ToValue for Layer {
to_value(&self) -> glib::Value202     fn to_value(&self) -> glib::Value {
203         let mut value = glib::Value::for_value_type::<Self>();
204         unsafe {
205             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
206         }
207         value
208     }
209 
value_type(&self) -> glib::Type210     fn value_type(&self) -> glib::Type {
211         Self::static_type()
212     }
213 }
214 
215 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
216 #[non_exhaustive]
217 #[doc(alias = "AtkRelationType")]
218 pub enum RelationType {
219     #[doc(alias = "ATK_RELATION_NULL")]
220     Null,
221     #[doc(alias = "ATK_RELATION_CONTROLLED_BY")]
222     ControlledBy,
223     #[doc(alias = "ATK_RELATION_CONTROLLER_FOR")]
224     ControllerFor,
225     #[doc(alias = "ATK_RELATION_LABEL_FOR")]
226     LabelFor,
227     #[doc(alias = "ATK_RELATION_LABELLED_BY")]
228     LabelledBy,
229     #[doc(alias = "ATK_RELATION_MEMBER_OF")]
230     MemberOf,
231     #[doc(alias = "ATK_RELATION_NODE_CHILD_OF")]
232     NodeChildOf,
233     #[doc(alias = "ATK_RELATION_FLOWS_TO")]
234     FlowsTo,
235     #[doc(alias = "ATK_RELATION_FLOWS_FROM")]
236     FlowsFrom,
237     #[doc(alias = "ATK_RELATION_SUBWINDOW_OF")]
238     SubwindowOf,
239     #[doc(alias = "ATK_RELATION_EMBEDS")]
240     Embeds,
241     #[doc(alias = "ATK_RELATION_EMBEDDED_BY")]
242     EmbeddedBy,
243     #[doc(alias = "ATK_RELATION_POPUP_FOR")]
244     PopupFor,
245     #[doc(alias = "ATK_RELATION_PARENT_WINDOW_OF")]
246     ParentWindowOf,
247     #[doc(alias = "ATK_RELATION_DESCRIBED_BY")]
248     DescribedBy,
249     #[doc(alias = "ATK_RELATION_DESCRIPTION_FOR")]
250     DescriptionFor,
251     #[doc(alias = "ATK_RELATION_NODE_PARENT_OF")]
252     NodeParentOf,
253     #[doc(alias = "ATK_RELATION_DETAILS")]
254     Details,
255     #[doc(alias = "ATK_RELATION_DETAILS_FOR")]
256     DetailsFor,
257     #[doc(alias = "ATK_RELATION_ERROR_MESSAGE")]
258     ErrorMessage,
259     #[doc(alias = "ATK_RELATION_ERROR_FOR")]
260     ErrorFor,
261     #[doc(alias = "ATK_RELATION_LAST_DEFINED")]
262     LastDefined,
263     #[doc(hidden)]
264     __Unknown(i32),
265 }
266 
267 impl RelationType {
268     #[doc(alias = "atk_relation_type_for_name")]
for_name(name: &str) -> RelationType269     pub fn for_name(name: &str) -> RelationType {
270         assert_initialized_main_thread!();
271         unsafe { from_glib(ffi::atk_relation_type_for_name(name.to_glib_none().0)) }
272     }
273 
274     #[doc(alias = "atk_relation_type_get_name")]
275     #[doc(alias = "get_name")]
name(self) -> Option<glib::GString>276     pub fn name(self) -> Option<glib::GString> {
277         assert_initialized_main_thread!();
278         unsafe { from_glib_none(ffi::atk_relation_type_get_name(self.into_glib())) }
279     }
280 }
281 
282 impl fmt::Display for RelationType {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result283     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
284         write!(
285             f,
286             "RelationType::{}",
287             match *self {
288                 Self::Null => "Null",
289                 Self::ControlledBy => "ControlledBy",
290                 Self::ControllerFor => "ControllerFor",
291                 Self::LabelFor => "LabelFor",
292                 Self::LabelledBy => "LabelledBy",
293                 Self::MemberOf => "MemberOf",
294                 Self::NodeChildOf => "NodeChildOf",
295                 Self::FlowsTo => "FlowsTo",
296                 Self::FlowsFrom => "FlowsFrom",
297                 Self::SubwindowOf => "SubwindowOf",
298                 Self::Embeds => "Embeds",
299                 Self::EmbeddedBy => "EmbeddedBy",
300                 Self::PopupFor => "PopupFor",
301                 Self::ParentWindowOf => "ParentWindowOf",
302                 Self::DescribedBy => "DescribedBy",
303                 Self::DescriptionFor => "DescriptionFor",
304                 Self::NodeParentOf => "NodeParentOf",
305                 Self::Details => "Details",
306                 Self::DetailsFor => "DetailsFor",
307                 Self::ErrorMessage => "ErrorMessage",
308                 Self::ErrorFor => "ErrorFor",
309                 Self::LastDefined => "LastDefined",
310                 _ => "Unknown",
311             }
312         )
313     }
314 }
315 
316 #[doc(hidden)]
317 impl IntoGlib for RelationType {
318     type GlibType = ffi::AtkRelationType;
319 
into_glib(self) -> ffi::AtkRelationType320     fn into_glib(self) -> ffi::AtkRelationType {
321         match self {
322             Self::Null => ffi::ATK_RELATION_NULL,
323             Self::ControlledBy => ffi::ATK_RELATION_CONTROLLED_BY,
324             Self::ControllerFor => ffi::ATK_RELATION_CONTROLLER_FOR,
325             Self::LabelFor => ffi::ATK_RELATION_LABEL_FOR,
326             Self::LabelledBy => ffi::ATK_RELATION_LABELLED_BY,
327             Self::MemberOf => ffi::ATK_RELATION_MEMBER_OF,
328             Self::NodeChildOf => ffi::ATK_RELATION_NODE_CHILD_OF,
329             Self::FlowsTo => ffi::ATK_RELATION_FLOWS_TO,
330             Self::FlowsFrom => ffi::ATK_RELATION_FLOWS_FROM,
331             Self::SubwindowOf => ffi::ATK_RELATION_SUBWINDOW_OF,
332             Self::Embeds => ffi::ATK_RELATION_EMBEDS,
333             Self::EmbeddedBy => ffi::ATK_RELATION_EMBEDDED_BY,
334             Self::PopupFor => ffi::ATK_RELATION_POPUP_FOR,
335             Self::ParentWindowOf => ffi::ATK_RELATION_PARENT_WINDOW_OF,
336             Self::DescribedBy => ffi::ATK_RELATION_DESCRIBED_BY,
337             Self::DescriptionFor => ffi::ATK_RELATION_DESCRIPTION_FOR,
338             Self::NodeParentOf => ffi::ATK_RELATION_NODE_PARENT_OF,
339             Self::Details => ffi::ATK_RELATION_DETAILS,
340             Self::DetailsFor => ffi::ATK_RELATION_DETAILS_FOR,
341             Self::ErrorMessage => ffi::ATK_RELATION_ERROR_MESSAGE,
342             Self::ErrorFor => ffi::ATK_RELATION_ERROR_FOR,
343             Self::LastDefined => ffi::ATK_RELATION_LAST_DEFINED,
344             Self::__Unknown(value) => value,
345         }
346     }
347 }
348 
349 #[doc(hidden)]
350 impl FromGlib<ffi::AtkRelationType> for RelationType {
from_glib(value: ffi::AtkRelationType) -> Self351     unsafe fn from_glib(value: ffi::AtkRelationType) -> Self {
352         skip_assert_initialized!();
353         match value {
354             ffi::ATK_RELATION_NULL => Self::Null,
355             ffi::ATK_RELATION_CONTROLLED_BY => Self::ControlledBy,
356             ffi::ATK_RELATION_CONTROLLER_FOR => Self::ControllerFor,
357             ffi::ATK_RELATION_LABEL_FOR => Self::LabelFor,
358             ffi::ATK_RELATION_LABELLED_BY => Self::LabelledBy,
359             ffi::ATK_RELATION_MEMBER_OF => Self::MemberOf,
360             ffi::ATK_RELATION_NODE_CHILD_OF => Self::NodeChildOf,
361             ffi::ATK_RELATION_FLOWS_TO => Self::FlowsTo,
362             ffi::ATK_RELATION_FLOWS_FROM => Self::FlowsFrom,
363             ffi::ATK_RELATION_SUBWINDOW_OF => Self::SubwindowOf,
364             ffi::ATK_RELATION_EMBEDS => Self::Embeds,
365             ffi::ATK_RELATION_EMBEDDED_BY => Self::EmbeddedBy,
366             ffi::ATK_RELATION_POPUP_FOR => Self::PopupFor,
367             ffi::ATK_RELATION_PARENT_WINDOW_OF => Self::ParentWindowOf,
368             ffi::ATK_RELATION_DESCRIBED_BY => Self::DescribedBy,
369             ffi::ATK_RELATION_DESCRIPTION_FOR => Self::DescriptionFor,
370             ffi::ATK_RELATION_NODE_PARENT_OF => Self::NodeParentOf,
371             ffi::ATK_RELATION_DETAILS => Self::Details,
372             ffi::ATK_RELATION_DETAILS_FOR => Self::DetailsFor,
373             ffi::ATK_RELATION_ERROR_MESSAGE => Self::ErrorMessage,
374             ffi::ATK_RELATION_ERROR_FOR => Self::ErrorFor,
375             ffi::ATK_RELATION_LAST_DEFINED => Self::LastDefined,
376             value => Self::__Unknown(value),
377         }
378     }
379 }
380 
381 impl StaticType for RelationType {
static_type() -> Type382     fn static_type() -> Type {
383         unsafe { from_glib(ffi::atk_relation_type_get_type()) }
384     }
385 }
386 
387 impl glib::value::ValueType for RelationType {
388     type Type = Self;
389 }
390 
391 unsafe impl<'a> FromValue<'a> for RelationType {
392     type Checker = glib::value::GenericValueTypeChecker<Self>;
393 
from_value(value: &'a glib::Value) -> Self394     unsafe fn from_value(value: &'a glib::Value) -> Self {
395         skip_assert_initialized!();
396         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
397     }
398 }
399 
400 impl ToValue for RelationType {
to_value(&self) -> glib::Value401     fn to_value(&self) -> glib::Value {
402         let mut value = glib::Value::for_value_type::<Self>();
403         unsafe {
404             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
405         }
406         value
407     }
408 
value_type(&self) -> glib::Type409     fn value_type(&self) -> glib::Type {
410         Self::static_type()
411     }
412 }
413 
414 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
415 #[non_exhaustive]
416 #[doc(alias = "AtkRole")]
417 pub enum Role {
418     #[doc(alias = "ATK_ROLE_INVALID")]
419     Invalid,
420     #[doc(alias = "ATK_ROLE_ACCEL_LABEL")]
421     AcceleratorLabel,
422     #[doc(alias = "ATK_ROLE_ALERT")]
423     Alert,
424     #[doc(alias = "ATK_ROLE_ANIMATION")]
425     Animation,
426     #[doc(alias = "ATK_ROLE_ARROW")]
427     Arrow,
428     #[doc(alias = "ATK_ROLE_CALENDAR")]
429     Calendar,
430     #[doc(alias = "ATK_ROLE_CANVAS")]
431     Canvas,
432     #[doc(alias = "ATK_ROLE_CHECK_BOX")]
433     CheckBox,
434     #[doc(alias = "ATK_ROLE_CHECK_MENU_ITEM")]
435     CheckMenuItem,
436     #[doc(alias = "ATK_ROLE_COLOR_CHOOSER")]
437     ColorChooser,
438     #[doc(alias = "ATK_ROLE_COLUMN_HEADER")]
439     ColumnHeader,
440     #[doc(alias = "ATK_ROLE_COMBO_BOX")]
441     ComboBox,
442     #[doc(alias = "ATK_ROLE_DATE_EDITOR")]
443     DateEditor,
444     #[doc(alias = "ATK_ROLE_DESKTOP_ICON")]
445     DesktopIcon,
446     #[doc(alias = "ATK_ROLE_DESKTOP_FRAME")]
447     DesktopFrame,
448     #[doc(alias = "ATK_ROLE_DIAL")]
449     Dial,
450     #[doc(alias = "ATK_ROLE_DIALOG")]
451     Dialog,
452     #[doc(alias = "ATK_ROLE_DIRECTORY_PANE")]
453     DirectoryPane,
454     #[doc(alias = "ATK_ROLE_DRAWING_AREA")]
455     DrawingArea,
456     #[doc(alias = "ATK_ROLE_FILE_CHOOSER")]
457     FileChooser,
458     #[doc(alias = "ATK_ROLE_FILLER")]
459     Filler,
460     #[doc(alias = "ATK_ROLE_FONT_CHOOSER")]
461     FontChooser,
462     #[doc(alias = "ATK_ROLE_FRAME")]
463     Frame,
464     #[doc(alias = "ATK_ROLE_GLASS_PANE")]
465     GlassPane,
466     #[doc(alias = "ATK_ROLE_HTML_CONTAINER")]
467     HtmlContainer,
468     #[doc(alias = "ATK_ROLE_ICON")]
469     Icon,
470     #[doc(alias = "ATK_ROLE_IMAGE")]
471     Image,
472     #[doc(alias = "ATK_ROLE_INTERNAL_FRAME")]
473     InternalFrame,
474     #[doc(alias = "ATK_ROLE_LABEL")]
475     Label,
476     #[doc(alias = "ATK_ROLE_LAYERED_PANE")]
477     LayeredPane,
478     #[doc(alias = "ATK_ROLE_LIST")]
479     List,
480     #[doc(alias = "ATK_ROLE_LIST_ITEM")]
481     ListItem,
482     #[doc(alias = "ATK_ROLE_MENU")]
483     Menu,
484     #[doc(alias = "ATK_ROLE_MENU_BAR")]
485     MenuBar,
486     #[doc(alias = "ATK_ROLE_MENU_ITEM")]
487     MenuItem,
488     #[doc(alias = "ATK_ROLE_OPTION_PANE")]
489     OptionPane,
490     #[doc(alias = "ATK_ROLE_PAGE_TAB")]
491     PageTab,
492     #[doc(alias = "ATK_ROLE_PAGE_TAB_LIST")]
493     PageTabList,
494     #[doc(alias = "ATK_ROLE_PANEL")]
495     Panel,
496     #[doc(alias = "ATK_ROLE_PASSWORD_TEXT")]
497     PasswordText,
498     #[doc(alias = "ATK_ROLE_POPUP_MENU")]
499     PopupMenu,
500     #[doc(alias = "ATK_ROLE_PROGRESS_BAR")]
501     ProgressBar,
502     #[doc(alias = "ATK_ROLE_PUSH_BUTTON")]
503     PushButton,
504     #[doc(alias = "ATK_ROLE_RADIO_BUTTON")]
505     RadioButton,
506     #[doc(alias = "ATK_ROLE_RADIO_MENU_ITEM")]
507     RadioMenuItem,
508     #[doc(alias = "ATK_ROLE_ROOT_PANE")]
509     RootPane,
510     #[doc(alias = "ATK_ROLE_ROW_HEADER")]
511     RowHeader,
512     #[doc(alias = "ATK_ROLE_SCROLL_BAR")]
513     ScrollBar,
514     #[doc(alias = "ATK_ROLE_SCROLL_PANE")]
515     ScrollPane,
516     #[doc(alias = "ATK_ROLE_SEPARATOR")]
517     Separator,
518     #[doc(alias = "ATK_ROLE_SLIDER")]
519     Slider,
520     #[doc(alias = "ATK_ROLE_SPLIT_PANE")]
521     SplitPane,
522     #[doc(alias = "ATK_ROLE_SPIN_BUTTON")]
523     SpinButton,
524     #[doc(alias = "ATK_ROLE_STATUSBAR")]
525     Statusbar,
526     #[doc(alias = "ATK_ROLE_TABLE")]
527     Table,
528     #[doc(alias = "ATK_ROLE_TABLE_CELL")]
529     TableCell,
530     #[doc(alias = "ATK_ROLE_TABLE_COLUMN_HEADER")]
531     TableColumnHeader,
532     #[doc(alias = "ATK_ROLE_TABLE_ROW_HEADER")]
533     TableRowHeader,
534     #[doc(alias = "ATK_ROLE_TEAR_OFF_MENU_ITEM")]
535     TearOffMenuItem,
536     #[doc(alias = "ATK_ROLE_TERMINAL")]
537     Terminal,
538     #[doc(alias = "ATK_ROLE_TEXT")]
539     Text,
540     #[doc(alias = "ATK_ROLE_TOGGLE_BUTTON")]
541     ToggleButton,
542     #[doc(alias = "ATK_ROLE_TOOL_BAR")]
543     ToolBar,
544     #[doc(alias = "ATK_ROLE_TOOL_TIP")]
545     ToolTip,
546     #[doc(alias = "ATK_ROLE_TREE")]
547     Tree,
548     #[doc(alias = "ATK_ROLE_TREE_TABLE")]
549     TreeTable,
550     #[doc(alias = "ATK_ROLE_UNKNOWN")]
551     Unknown,
552     #[doc(alias = "ATK_ROLE_VIEWPORT")]
553     Viewport,
554     #[doc(alias = "ATK_ROLE_WINDOW")]
555     Window,
556     #[doc(alias = "ATK_ROLE_HEADER")]
557     Header,
558     #[doc(alias = "ATK_ROLE_FOOTER")]
559     Footer,
560     #[doc(alias = "ATK_ROLE_PARAGRAPH")]
561     Paragraph,
562     #[doc(alias = "ATK_ROLE_RULER")]
563     Ruler,
564     #[doc(alias = "ATK_ROLE_APPLICATION")]
565     Application,
566     #[doc(alias = "ATK_ROLE_AUTOCOMPLETE")]
567     Autocomplete,
568     #[doc(alias = "ATK_ROLE_EDITBAR")]
569     EditBar,
570     #[doc(alias = "ATK_ROLE_EMBEDDED")]
571     Embedded,
572     #[doc(alias = "ATK_ROLE_ENTRY")]
573     Entry,
574     #[doc(alias = "ATK_ROLE_CHART")]
575     Chart,
576     #[doc(alias = "ATK_ROLE_CAPTION")]
577     Caption,
578     #[doc(alias = "ATK_ROLE_DOCUMENT_FRAME")]
579     DocumentFrame,
580     #[doc(alias = "ATK_ROLE_HEADING")]
581     Heading,
582     #[doc(alias = "ATK_ROLE_PAGE")]
583     Page,
584     #[doc(alias = "ATK_ROLE_SECTION")]
585     Section,
586     #[doc(alias = "ATK_ROLE_REDUNDANT_OBJECT")]
587     RedundantObject,
588     #[doc(alias = "ATK_ROLE_FORM")]
589     Form,
590     #[doc(alias = "ATK_ROLE_LINK")]
591     Link,
592     #[doc(alias = "ATK_ROLE_INPUT_METHOD_WINDOW")]
593     InputMethodWindow,
594     #[doc(alias = "ATK_ROLE_TABLE_ROW")]
595     TableRow,
596     #[doc(alias = "ATK_ROLE_TREE_ITEM")]
597     TreeItem,
598     #[doc(alias = "ATK_ROLE_DOCUMENT_SPREADSHEET")]
599     DocumentSpreadsheet,
600     #[doc(alias = "ATK_ROLE_DOCUMENT_PRESENTATION")]
601     DocumentPresentation,
602     #[doc(alias = "ATK_ROLE_DOCUMENT_TEXT")]
603     DocumentText,
604     #[doc(alias = "ATK_ROLE_DOCUMENT_WEB")]
605     DocumentWeb,
606     #[doc(alias = "ATK_ROLE_DOCUMENT_EMAIL")]
607     DocumentEmail,
608     #[doc(alias = "ATK_ROLE_COMMENT")]
609     Comment,
610     #[doc(alias = "ATK_ROLE_LIST_BOX")]
611     ListBox,
612     #[doc(alias = "ATK_ROLE_GROUPING")]
613     Grouping,
614     #[doc(alias = "ATK_ROLE_IMAGE_MAP")]
615     ImageMap,
616     #[doc(alias = "ATK_ROLE_NOTIFICATION")]
617     Notification,
618     #[doc(alias = "ATK_ROLE_INFO_BAR")]
619     InfoBar,
620     #[doc(alias = "ATK_ROLE_LEVEL_BAR")]
621     LevelBar,
622     #[doc(alias = "ATK_ROLE_TITLE_BAR")]
623     TitleBar,
624     #[doc(alias = "ATK_ROLE_BLOCK_QUOTE")]
625     BlockQuote,
626     #[doc(alias = "ATK_ROLE_AUDIO")]
627     Audio,
628     #[doc(alias = "ATK_ROLE_VIDEO")]
629     Video,
630     #[doc(alias = "ATK_ROLE_DEFINITION")]
631     Definition,
632     #[doc(alias = "ATK_ROLE_ARTICLE")]
633     Article,
634     #[doc(alias = "ATK_ROLE_LANDMARK")]
635     Landmark,
636     #[doc(alias = "ATK_ROLE_LOG")]
637     Log,
638     #[doc(alias = "ATK_ROLE_MARQUEE")]
639     Marquee,
640     #[doc(alias = "ATK_ROLE_MATH")]
641     Math,
642     #[doc(alias = "ATK_ROLE_RATING")]
643     Rating,
644     #[doc(alias = "ATK_ROLE_TIMER")]
645     Timer,
646     #[doc(alias = "ATK_ROLE_DESCRIPTION_LIST")]
647     DescriptionList,
648     #[doc(alias = "ATK_ROLE_DESCRIPTION_TERM")]
649     DescriptionTerm,
650     #[doc(alias = "ATK_ROLE_DESCRIPTION_VALUE")]
651     DescriptionValue,
652     #[doc(alias = "ATK_ROLE_STATIC")]
653     Static,
654     #[doc(alias = "ATK_ROLE_MATH_FRACTION")]
655     MathFraction,
656     #[doc(alias = "ATK_ROLE_MATH_ROOT")]
657     MathRoot,
658     #[doc(alias = "ATK_ROLE_SUBSCRIPT")]
659     Subscript,
660     #[doc(alias = "ATK_ROLE_SUPERSCRIPT")]
661     Superscript,
662     #[doc(alias = "ATK_ROLE_FOOTNOTE")]
663     Footnote,
664     #[doc(alias = "ATK_ROLE_CONTENT_DELETION")]
665     ContentDeletion,
666     #[doc(alias = "ATK_ROLE_CONTENT_INSERTION")]
667     ContentInsertion,
668     #[doc(alias = "ATK_ROLE_MARK")]
669     Mark,
670     #[doc(alias = "ATK_ROLE_SUGGESTION")]
671     Suggestion,
672     #[doc(alias = "ATK_ROLE_LAST_DEFINED")]
673     LastDefined,
674     #[doc(hidden)]
675     __Unknown(i32),
676 }
677 
678 impl Role {
679     #[doc(alias = "atk_role_for_name")]
for_name(name: &str) -> Role680     pub fn for_name(name: &str) -> Role {
681         assert_initialized_main_thread!();
682         unsafe { from_glib(ffi::atk_role_for_name(name.to_glib_none().0)) }
683     }
684 
685     #[doc(alias = "atk_role_get_localized_name")]
686     #[doc(alias = "get_localized_name")]
localized_name(self) -> Option<glib::GString>687     pub fn localized_name(self) -> Option<glib::GString> {
688         assert_initialized_main_thread!();
689         unsafe { from_glib_none(ffi::atk_role_get_localized_name(self.into_glib())) }
690     }
691 
692     #[doc(alias = "atk_role_get_name")]
693     #[doc(alias = "get_name")]
name(self) -> Option<glib::GString>694     pub fn name(self) -> Option<glib::GString> {
695         assert_initialized_main_thread!();
696         unsafe { from_glib_none(ffi::atk_role_get_name(self.into_glib())) }
697     }
698 }
699 
700 impl fmt::Display for Role {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result701     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
702         write!(
703             f,
704             "Role::{}",
705             match *self {
706                 Self::Invalid => "Invalid",
707                 Self::AcceleratorLabel => "AcceleratorLabel",
708                 Self::Alert => "Alert",
709                 Self::Animation => "Animation",
710                 Self::Arrow => "Arrow",
711                 Self::Calendar => "Calendar",
712                 Self::Canvas => "Canvas",
713                 Self::CheckBox => "CheckBox",
714                 Self::CheckMenuItem => "CheckMenuItem",
715                 Self::ColorChooser => "ColorChooser",
716                 Self::ColumnHeader => "ColumnHeader",
717                 Self::ComboBox => "ComboBox",
718                 Self::DateEditor => "DateEditor",
719                 Self::DesktopIcon => "DesktopIcon",
720                 Self::DesktopFrame => "DesktopFrame",
721                 Self::Dial => "Dial",
722                 Self::Dialog => "Dialog",
723                 Self::DirectoryPane => "DirectoryPane",
724                 Self::DrawingArea => "DrawingArea",
725                 Self::FileChooser => "FileChooser",
726                 Self::Filler => "Filler",
727                 Self::FontChooser => "FontChooser",
728                 Self::Frame => "Frame",
729                 Self::GlassPane => "GlassPane",
730                 Self::HtmlContainer => "HtmlContainer",
731                 Self::Icon => "Icon",
732                 Self::Image => "Image",
733                 Self::InternalFrame => "InternalFrame",
734                 Self::Label => "Label",
735                 Self::LayeredPane => "LayeredPane",
736                 Self::List => "List",
737                 Self::ListItem => "ListItem",
738                 Self::Menu => "Menu",
739                 Self::MenuBar => "MenuBar",
740                 Self::MenuItem => "MenuItem",
741                 Self::OptionPane => "OptionPane",
742                 Self::PageTab => "PageTab",
743                 Self::PageTabList => "PageTabList",
744                 Self::Panel => "Panel",
745                 Self::PasswordText => "PasswordText",
746                 Self::PopupMenu => "PopupMenu",
747                 Self::ProgressBar => "ProgressBar",
748                 Self::PushButton => "PushButton",
749                 Self::RadioButton => "RadioButton",
750                 Self::RadioMenuItem => "RadioMenuItem",
751                 Self::RootPane => "RootPane",
752                 Self::RowHeader => "RowHeader",
753                 Self::ScrollBar => "ScrollBar",
754                 Self::ScrollPane => "ScrollPane",
755                 Self::Separator => "Separator",
756                 Self::Slider => "Slider",
757                 Self::SplitPane => "SplitPane",
758                 Self::SpinButton => "SpinButton",
759                 Self::Statusbar => "Statusbar",
760                 Self::Table => "Table",
761                 Self::TableCell => "TableCell",
762                 Self::TableColumnHeader => "TableColumnHeader",
763                 Self::TableRowHeader => "TableRowHeader",
764                 Self::TearOffMenuItem => "TearOffMenuItem",
765                 Self::Terminal => "Terminal",
766                 Self::Text => "Text",
767                 Self::ToggleButton => "ToggleButton",
768                 Self::ToolBar => "ToolBar",
769                 Self::ToolTip => "ToolTip",
770                 Self::Tree => "Tree",
771                 Self::TreeTable => "TreeTable",
772                 Self::Unknown => "Unknown",
773                 Self::Viewport => "Viewport",
774                 Self::Window => "Window",
775                 Self::Header => "Header",
776                 Self::Footer => "Footer",
777                 Self::Paragraph => "Paragraph",
778                 Self::Ruler => "Ruler",
779                 Self::Application => "Application",
780                 Self::Autocomplete => "Autocomplete",
781                 Self::EditBar => "EditBar",
782                 Self::Embedded => "Embedded",
783                 Self::Entry => "Entry",
784                 Self::Chart => "Chart",
785                 Self::Caption => "Caption",
786                 Self::DocumentFrame => "DocumentFrame",
787                 Self::Heading => "Heading",
788                 Self::Page => "Page",
789                 Self::Section => "Section",
790                 Self::RedundantObject => "RedundantObject",
791                 Self::Form => "Form",
792                 Self::Link => "Link",
793                 Self::InputMethodWindow => "InputMethodWindow",
794                 Self::TableRow => "TableRow",
795                 Self::TreeItem => "TreeItem",
796                 Self::DocumentSpreadsheet => "DocumentSpreadsheet",
797                 Self::DocumentPresentation => "DocumentPresentation",
798                 Self::DocumentText => "DocumentText",
799                 Self::DocumentWeb => "DocumentWeb",
800                 Self::DocumentEmail => "DocumentEmail",
801                 Self::Comment => "Comment",
802                 Self::ListBox => "ListBox",
803                 Self::Grouping => "Grouping",
804                 Self::ImageMap => "ImageMap",
805                 Self::Notification => "Notification",
806                 Self::InfoBar => "InfoBar",
807                 Self::LevelBar => "LevelBar",
808                 Self::TitleBar => "TitleBar",
809                 Self::BlockQuote => "BlockQuote",
810                 Self::Audio => "Audio",
811                 Self::Video => "Video",
812                 Self::Definition => "Definition",
813                 Self::Article => "Article",
814                 Self::Landmark => "Landmark",
815                 Self::Log => "Log",
816                 Self::Marquee => "Marquee",
817                 Self::Math => "Math",
818                 Self::Rating => "Rating",
819                 Self::Timer => "Timer",
820                 Self::DescriptionList => "DescriptionList",
821                 Self::DescriptionTerm => "DescriptionTerm",
822                 Self::DescriptionValue => "DescriptionValue",
823                 Self::Static => "Static",
824                 Self::MathFraction => "MathFraction",
825                 Self::MathRoot => "MathRoot",
826                 Self::Subscript => "Subscript",
827                 Self::Superscript => "Superscript",
828                 Self::Footnote => "Footnote",
829                 Self::ContentDeletion => "ContentDeletion",
830                 Self::ContentInsertion => "ContentInsertion",
831                 Self::Mark => "Mark",
832                 Self::Suggestion => "Suggestion",
833                 Self::LastDefined => "LastDefined",
834                 _ => "Unknown",
835             }
836         )
837     }
838 }
839 
840 #[doc(hidden)]
841 impl IntoGlib for Role {
842     type GlibType = ffi::AtkRole;
843 
into_glib(self) -> ffi::AtkRole844     fn into_glib(self) -> ffi::AtkRole {
845         match self {
846             Self::Invalid => ffi::ATK_ROLE_INVALID,
847             Self::AcceleratorLabel => ffi::ATK_ROLE_ACCEL_LABEL,
848             Self::Alert => ffi::ATK_ROLE_ALERT,
849             Self::Animation => ffi::ATK_ROLE_ANIMATION,
850             Self::Arrow => ffi::ATK_ROLE_ARROW,
851             Self::Calendar => ffi::ATK_ROLE_CALENDAR,
852             Self::Canvas => ffi::ATK_ROLE_CANVAS,
853             Self::CheckBox => ffi::ATK_ROLE_CHECK_BOX,
854             Self::CheckMenuItem => ffi::ATK_ROLE_CHECK_MENU_ITEM,
855             Self::ColorChooser => ffi::ATK_ROLE_COLOR_CHOOSER,
856             Self::ColumnHeader => ffi::ATK_ROLE_COLUMN_HEADER,
857             Self::ComboBox => ffi::ATK_ROLE_COMBO_BOX,
858             Self::DateEditor => ffi::ATK_ROLE_DATE_EDITOR,
859             Self::DesktopIcon => ffi::ATK_ROLE_DESKTOP_ICON,
860             Self::DesktopFrame => ffi::ATK_ROLE_DESKTOP_FRAME,
861             Self::Dial => ffi::ATK_ROLE_DIAL,
862             Self::Dialog => ffi::ATK_ROLE_DIALOG,
863             Self::DirectoryPane => ffi::ATK_ROLE_DIRECTORY_PANE,
864             Self::DrawingArea => ffi::ATK_ROLE_DRAWING_AREA,
865             Self::FileChooser => ffi::ATK_ROLE_FILE_CHOOSER,
866             Self::Filler => ffi::ATK_ROLE_FILLER,
867             Self::FontChooser => ffi::ATK_ROLE_FONT_CHOOSER,
868             Self::Frame => ffi::ATK_ROLE_FRAME,
869             Self::GlassPane => ffi::ATK_ROLE_GLASS_PANE,
870             Self::HtmlContainer => ffi::ATK_ROLE_HTML_CONTAINER,
871             Self::Icon => ffi::ATK_ROLE_ICON,
872             Self::Image => ffi::ATK_ROLE_IMAGE,
873             Self::InternalFrame => ffi::ATK_ROLE_INTERNAL_FRAME,
874             Self::Label => ffi::ATK_ROLE_LABEL,
875             Self::LayeredPane => ffi::ATK_ROLE_LAYERED_PANE,
876             Self::List => ffi::ATK_ROLE_LIST,
877             Self::ListItem => ffi::ATK_ROLE_LIST_ITEM,
878             Self::Menu => ffi::ATK_ROLE_MENU,
879             Self::MenuBar => ffi::ATK_ROLE_MENU_BAR,
880             Self::MenuItem => ffi::ATK_ROLE_MENU_ITEM,
881             Self::OptionPane => ffi::ATK_ROLE_OPTION_PANE,
882             Self::PageTab => ffi::ATK_ROLE_PAGE_TAB,
883             Self::PageTabList => ffi::ATK_ROLE_PAGE_TAB_LIST,
884             Self::Panel => ffi::ATK_ROLE_PANEL,
885             Self::PasswordText => ffi::ATK_ROLE_PASSWORD_TEXT,
886             Self::PopupMenu => ffi::ATK_ROLE_POPUP_MENU,
887             Self::ProgressBar => ffi::ATK_ROLE_PROGRESS_BAR,
888             Self::PushButton => ffi::ATK_ROLE_PUSH_BUTTON,
889             Self::RadioButton => ffi::ATK_ROLE_RADIO_BUTTON,
890             Self::RadioMenuItem => ffi::ATK_ROLE_RADIO_MENU_ITEM,
891             Self::RootPane => ffi::ATK_ROLE_ROOT_PANE,
892             Self::RowHeader => ffi::ATK_ROLE_ROW_HEADER,
893             Self::ScrollBar => ffi::ATK_ROLE_SCROLL_BAR,
894             Self::ScrollPane => ffi::ATK_ROLE_SCROLL_PANE,
895             Self::Separator => ffi::ATK_ROLE_SEPARATOR,
896             Self::Slider => ffi::ATK_ROLE_SLIDER,
897             Self::SplitPane => ffi::ATK_ROLE_SPLIT_PANE,
898             Self::SpinButton => ffi::ATK_ROLE_SPIN_BUTTON,
899             Self::Statusbar => ffi::ATK_ROLE_STATUSBAR,
900             Self::Table => ffi::ATK_ROLE_TABLE,
901             Self::TableCell => ffi::ATK_ROLE_TABLE_CELL,
902             Self::TableColumnHeader => ffi::ATK_ROLE_TABLE_COLUMN_HEADER,
903             Self::TableRowHeader => ffi::ATK_ROLE_TABLE_ROW_HEADER,
904             Self::TearOffMenuItem => ffi::ATK_ROLE_TEAR_OFF_MENU_ITEM,
905             Self::Terminal => ffi::ATK_ROLE_TERMINAL,
906             Self::Text => ffi::ATK_ROLE_TEXT,
907             Self::ToggleButton => ffi::ATK_ROLE_TOGGLE_BUTTON,
908             Self::ToolBar => ffi::ATK_ROLE_TOOL_BAR,
909             Self::ToolTip => ffi::ATK_ROLE_TOOL_TIP,
910             Self::Tree => ffi::ATK_ROLE_TREE,
911             Self::TreeTable => ffi::ATK_ROLE_TREE_TABLE,
912             Self::Unknown => ffi::ATK_ROLE_UNKNOWN,
913             Self::Viewport => ffi::ATK_ROLE_VIEWPORT,
914             Self::Window => ffi::ATK_ROLE_WINDOW,
915             Self::Header => ffi::ATK_ROLE_HEADER,
916             Self::Footer => ffi::ATK_ROLE_FOOTER,
917             Self::Paragraph => ffi::ATK_ROLE_PARAGRAPH,
918             Self::Ruler => ffi::ATK_ROLE_RULER,
919             Self::Application => ffi::ATK_ROLE_APPLICATION,
920             Self::Autocomplete => ffi::ATK_ROLE_AUTOCOMPLETE,
921             Self::EditBar => ffi::ATK_ROLE_EDITBAR,
922             Self::Embedded => ffi::ATK_ROLE_EMBEDDED,
923             Self::Entry => ffi::ATK_ROLE_ENTRY,
924             Self::Chart => ffi::ATK_ROLE_CHART,
925             Self::Caption => ffi::ATK_ROLE_CAPTION,
926             Self::DocumentFrame => ffi::ATK_ROLE_DOCUMENT_FRAME,
927             Self::Heading => ffi::ATK_ROLE_HEADING,
928             Self::Page => ffi::ATK_ROLE_PAGE,
929             Self::Section => ffi::ATK_ROLE_SECTION,
930             Self::RedundantObject => ffi::ATK_ROLE_REDUNDANT_OBJECT,
931             Self::Form => ffi::ATK_ROLE_FORM,
932             Self::Link => ffi::ATK_ROLE_LINK,
933             Self::InputMethodWindow => ffi::ATK_ROLE_INPUT_METHOD_WINDOW,
934             Self::TableRow => ffi::ATK_ROLE_TABLE_ROW,
935             Self::TreeItem => ffi::ATK_ROLE_TREE_ITEM,
936             Self::DocumentSpreadsheet => ffi::ATK_ROLE_DOCUMENT_SPREADSHEET,
937             Self::DocumentPresentation => ffi::ATK_ROLE_DOCUMENT_PRESENTATION,
938             Self::DocumentText => ffi::ATK_ROLE_DOCUMENT_TEXT,
939             Self::DocumentWeb => ffi::ATK_ROLE_DOCUMENT_WEB,
940             Self::DocumentEmail => ffi::ATK_ROLE_DOCUMENT_EMAIL,
941             Self::Comment => ffi::ATK_ROLE_COMMENT,
942             Self::ListBox => ffi::ATK_ROLE_LIST_BOX,
943             Self::Grouping => ffi::ATK_ROLE_GROUPING,
944             Self::ImageMap => ffi::ATK_ROLE_IMAGE_MAP,
945             Self::Notification => ffi::ATK_ROLE_NOTIFICATION,
946             Self::InfoBar => ffi::ATK_ROLE_INFO_BAR,
947             Self::LevelBar => ffi::ATK_ROLE_LEVEL_BAR,
948             Self::TitleBar => ffi::ATK_ROLE_TITLE_BAR,
949             Self::BlockQuote => ffi::ATK_ROLE_BLOCK_QUOTE,
950             Self::Audio => ffi::ATK_ROLE_AUDIO,
951             Self::Video => ffi::ATK_ROLE_VIDEO,
952             Self::Definition => ffi::ATK_ROLE_DEFINITION,
953             Self::Article => ffi::ATK_ROLE_ARTICLE,
954             Self::Landmark => ffi::ATK_ROLE_LANDMARK,
955             Self::Log => ffi::ATK_ROLE_LOG,
956             Self::Marquee => ffi::ATK_ROLE_MARQUEE,
957             Self::Math => ffi::ATK_ROLE_MATH,
958             Self::Rating => ffi::ATK_ROLE_RATING,
959             Self::Timer => ffi::ATK_ROLE_TIMER,
960             Self::DescriptionList => ffi::ATK_ROLE_DESCRIPTION_LIST,
961             Self::DescriptionTerm => ffi::ATK_ROLE_DESCRIPTION_TERM,
962             Self::DescriptionValue => ffi::ATK_ROLE_DESCRIPTION_VALUE,
963             Self::Static => ffi::ATK_ROLE_STATIC,
964             Self::MathFraction => ffi::ATK_ROLE_MATH_FRACTION,
965             Self::MathRoot => ffi::ATK_ROLE_MATH_ROOT,
966             Self::Subscript => ffi::ATK_ROLE_SUBSCRIPT,
967             Self::Superscript => ffi::ATK_ROLE_SUPERSCRIPT,
968             Self::Footnote => ffi::ATK_ROLE_FOOTNOTE,
969             Self::ContentDeletion => ffi::ATK_ROLE_CONTENT_DELETION,
970             Self::ContentInsertion => ffi::ATK_ROLE_CONTENT_INSERTION,
971             Self::Mark => ffi::ATK_ROLE_MARK,
972             Self::Suggestion => ffi::ATK_ROLE_SUGGESTION,
973             Self::LastDefined => ffi::ATK_ROLE_LAST_DEFINED,
974             Self::__Unknown(value) => value,
975         }
976     }
977 }
978 
979 #[doc(hidden)]
980 impl FromGlib<ffi::AtkRole> for Role {
from_glib(value: ffi::AtkRole) -> Self981     unsafe fn from_glib(value: ffi::AtkRole) -> Self {
982         skip_assert_initialized!();
983         match value {
984             ffi::ATK_ROLE_INVALID => Self::Invalid,
985             ffi::ATK_ROLE_ACCEL_LABEL => Self::AcceleratorLabel,
986             ffi::ATK_ROLE_ALERT => Self::Alert,
987             ffi::ATK_ROLE_ANIMATION => Self::Animation,
988             ffi::ATK_ROLE_ARROW => Self::Arrow,
989             ffi::ATK_ROLE_CALENDAR => Self::Calendar,
990             ffi::ATK_ROLE_CANVAS => Self::Canvas,
991             ffi::ATK_ROLE_CHECK_BOX => Self::CheckBox,
992             ffi::ATK_ROLE_CHECK_MENU_ITEM => Self::CheckMenuItem,
993             ffi::ATK_ROLE_COLOR_CHOOSER => Self::ColorChooser,
994             ffi::ATK_ROLE_COLUMN_HEADER => Self::ColumnHeader,
995             ffi::ATK_ROLE_COMBO_BOX => Self::ComboBox,
996             ffi::ATK_ROLE_DATE_EDITOR => Self::DateEditor,
997             ffi::ATK_ROLE_DESKTOP_ICON => Self::DesktopIcon,
998             ffi::ATK_ROLE_DESKTOP_FRAME => Self::DesktopFrame,
999             ffi::ATK_ROLE_DIAL => Self::Dial,
1000             ffi::ATK_ROLE_DIALOG => Self::Dialog,
1001             ffi::ATK_ROLE_DIRECTORY_PANE => Self::DirectoryPane,
1002             ffi::ATK_ROLE_DRAWING_AREA => Self::DrawingArea,
1003             ffi::ATK_ROLE_FILE_CHOOSER => Self::FileChooser,
1004             ffi::ATK_ROLE_FILLER => Self::Filler,
1005             ffi::ATK_ROLE_FONT_CHOOSER => Self::FontChooser,
1006             ffi::ATK_ROLE_FRAME => Self::Frame,
1007             ffi::ATK_ROLE_GLASS_PANE => Self::GlassPane,
1008             ffi::ATK_ROLE_HTML_CONTAINER => Self::HtmlContainer,
1009             ffi::ATK_ROLE_ICON => Self::Icon,
1010             ffi::ATK_ROLE_IMAGE => Self::Image,
1011             ffi::ATK_ROLE_INTERNAL_FRAME => Self::InternalFrame,
1012             ffi::ATK_ROLE_LABEL => Self::Label,
1013             ffi::ATK_ROLE_LAYERED_PANE => Self::LayeredPane,
1014             ffi::ATK_ROLE_LIST => Self::List,
1015             ffi::ATK_ROLE_LIST_ITEM => Self::ListItem,
1016             ffi::ATK_ROLE_MENU => Self::Menu,
1017             ffi::ATK_ROLE_MENU_BAR => Self::MenuBar,
1018             ffi::ATK_ROLE_MENU_ITEM => Self::MenuItem,
1019             ffi::ATK_ROLE_OPTION_PANE => Self::OptionPane,
1020             ffi::ATK_ROLE_PAGE_TAB => Self::PageTab,
1021             ffi::ATK_ROLE_PAGE_TAB_LIST => Self::PageTabList,
1022             ffi::ATK_ROLE_PANEL => Self::Panel,
1023             ffi::ATK_ROLE_PASSWORD_TEXT => Self::PasswordText,
1024             ffi::ATK_ROLE_POPUP_MENU => Self::PopupMenu,
1025             ffi::ATK_ROLE_PROGRESS_BAR => Self::ProgressBar,
1026             ffi::ATK_ROLE_PUSH_BUTTON => Self::PushButton,
1027             ffi::ATK_ROLE_RADIO_BUTTON => Self::RadioButton,
1028             ffi::ATK_ROLE_RADIO_MENU_ITEM => Self::RadioMenuItem,
1029             ffi::ATK_ROLE_ROOT_PANE => Self::RootPane,
1030             ffi::ATK_ROLE_ROW_HEADER => Self::RowHeader,
1031             ffi::ATK_ROLE_SCROLL_BAR => Self::ScrollBar,
1032             ffi::ATK_ROLE_SCROLL_PANE => Self::ScrollPane,
1033             ffi::ATK_ROLE_SEPARATOR => Self::Separator,
1034             ffi::ATK_ROLE_SLIDER => Self::Slider,
1035             ffi::ATK_ROLE_SPLIT_PANE => Self::SplitPane,
1036             ffi::ATK_ROLE_SPIN_BUTTON => Self::SpinButton,
1037             ffi::ATK_ROLE_STATUSBAR => Self::Statusbar,
1038             ffi::ATK_ROLE_TABLE => Self::Table,
1039             ffi::ATK_ROLE_TABLE_CELL => Self::TableCell,
1040             ffi::ATK_ROLE_TABLE_COLUMN_HEADER => Self::TableColumnHeader,
1041             ffi::ATK_ROLE_TABLE_ROW_HEADER => Self::TableRowHeader,
1042             ffi::ATK_ROLE_TEAR_OFF_MENU_ITEM => Self::TearOffMenuItem,
1043             ffi::ATK_ROLE_TERMINAL => Self::Terminal,
1044             ffi::ATK_ROLE_TEXT => Self::Text,
1045             ffi::ATK_ROLE_TOGGLE_BUTTON => Self::ToggleButton,
1046             ffi::ATK_ROLE_TOOL_BAR => Self::ToolBar,
1047             ffi::ATK_ROLE_TOOL_TIP => Self::ToolTip,
1048             ffi::ATK_ROLE_TREE => Self::Tree,
1049             ffi::ATK_ROLE_TREE_TABLE => Self::TreeTable,
1050             ffi::ATK_ROLE_UNKNOWN => Self::Unknown,
1051             ffi::ATK_ROLE_VIEWPORT => Self::Viewport,
1052             ffi::ATK_ROLE_WINDOW => Self::Window,
1053             ffi::ATK_ROLE_HEADER => Self::Header,
1054             ffi::ATK_ROLE_FOOTER => Self::Footer,
1055             ffi::ATK_ROLE_PARAGRAPH => Self::Paragraph,
1056             ffi::ATK_ROLE_RULER => Self::Ruler,
1057             ffi::ATK_ROLE_APPLICATION => Self::Application,
1058             ffi::ATK_ROLE_AUTOCOMPLETE => Self::Autocomplete,
1059             ffi::ATK_ROLE_EDITBAR => Self::EditBar,
1060             ffi::ATK_ROLE_EMBEDDED => Self::Embedded,
1061             ffi::ATK_ROLE_ENTRY => Self::Entry,
1062             ffi::ATK_ROLE_CHART => Self::Chart,
1063             ffi::ATK_ROLE_CAPTION => Self::Caption,
1064             ffi::ATK_ROLE_DOCUMENT_FRAME => Self::DocumentFrame,
1065             ffi::ATK_ROLE_HEADING => Self::Heading,
1066             ffi::ATK_ROLE_PAGE => Self::Page,
1067             ffi::ATK_ROLE_SECTION => Self::Section,
1068             ffi::ATK_ROLE_REDUNDANT_OBJECT => Self::RedundantObject,
1069             ffi::ATK_ROLE_FORM => Self::Form,
1070             ffi::ATK_ROLE_LINK => Self::Link,
1071             ffi::ATK_ROLE_INPUT_METHOD_WINDOW => Self::InputMethodWindow,
1072             ffi::ATK_ROLE_TABLE_ROW => Self::TableRow,
1073             ffi::ATK_ROLE_TREE_ITEM => Self::TreeItem,
1074             ffi::ATK_ROLE_DOCUMENT_SPREADSHEET => Self::DocumentSpreadsheet,
1075             ffi::ATK_ROLE_DOCUMENT_PRESENTATION => Self::DocumentPresentation,
1076             ffi::ATK_ROLE_DOCUMENT_TEXT => Self::DocumentText,
1077             ffi::ATK_ROLE_DOCUMENT_WEB => Self::DocumentWeb,
1078             ffi::ATK_ROLE_DOCUMENT_EMAIL => Self::DocumentEmail,
1079             ffi::ATK_ROLE_COMMENT => Self::Comment,
1080             ffi::ATK_ROLE_LIST_BOX => Self::ListBox,
1081             ffi::ATK_ROLE_GROUPING => Self::Grouping,
1082             ffi::ATK_ROLE_IMAGE_MAP => Self::ImageMap,
1083             ffi::ATK_ROLE_NOTIFICATION => Self::Notification,
1084             ffi::ATK_ROLE_INFO_BAR => Self::InfoBar,
1085             ffi::ATK_ROLE_LEVEL_BAR => Self::LevelBar,
1086             ffi::ATK_ROLE_TITLE_BAR => Self::TitleBar,
1087             ffi::ATK_ROLE_BLOCK_QUOTE => Self::BlockQuote,
1088             ffi::ATK_ROLE_AUDIO => Self::Audio,
1089             ffi::ATK_ROLE_VIDEO => Self::Video,
1090             ffi::ATK_ROLE_DEFINITION => Self::Definition,
1091             ffi::ATK_ROLE_ARTICLE => Self::Article,
1092             ffi::ATK_ROLE_LANDMARK => Self::Landmark,
1093             ffi::ATK_ROLE_LOG => Self::Log,
1094             ffi::ATK_ROLE_MARQUEE => Self::Marquee,
1095             ffi::ATK_ROLE_MATH => Self::Math,
1096             ffi::ATK_ROLE_RATING => Self::Rating,
1097             ffi::ATK_ROLE_TIMER => Self::Timer,
1098             ffi::ATK_ROLE_DESCRIPTION_LIST => Self::DescriptionList,
1099             ffi::ATK_ROLE_DESCRIPTION_TERM => Self::DescriptionTerm,
1100             ffi::ATK_ROLE_DESCRIPTION_VALUE => Self::DescriptionValue,
1101             ffi::ATK_ROLE_STATIC => Self::Static,
1102             ffi::ATK_ROLE_MATH_FRACTION => Self::MathFraction,
1103             ffi::ATK_ROLE_MATH_ROOT => Self::MathRoot,
1104             ffi::ATK_ROLE_SUBSCRIPT => Self::Subscript,
1105             ffi::ATK_ROLE_SUPERSCRIPT => Self::Superscript,
1106             ffi::ATK_ROLE_FOOTNOTE => Self::Footnote,
1107             ffi::ATK_ROLE_CONTENT_DELETION => Self::ContentDeletion,
1108             ffi::ATK_ROLE_CONTENT_INSERTION => Self::ContentInsertion,
1109             ffi::ATK_ROLE_MARK => Self::Mark,
1110             ffi::ATK_ROLE_SUGGESTION => Self::Suggestion,
1111             ffi::ATK_ROLE_LAST_DEFINED => Self::LastDefined,
1112             value => Self::__Unknown(value),
1113         }
1114     }
1115 }
1116 
1117 impl StaticType for Role {
static_type() -> Type1118     fn static_type() -> Type {
1119         unsafe { from_glib(ffi::atk_role_get_type()) }
1120     }
1121 }
1122 
1123 impl glib::value::ValueType for Role {
1124     type Type = Self;
1125 }
1126 
1127 unsafe impl<'a> FromValue<'a> for Role {
1128     type Checker = glib::value::GenericValueTypeChecker<Self>;
1129 
from_value(value: &'a glib::Value) -> Self1130     unsafe fn from_value(value: &'a glib::Value) -> Self {
1131         skip_assert_initialized!();
1132         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1133     }
1134 }
1135 
1136 impl ToValue for Role {
to_value(&self) -> glib::Value1137     fn to_value(&self) -> glib::Value {
1138         let mut value = glib::Value::for_value_type::<Self>();
1139         unsafe {
1140             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1141         }
1142         value
1143     }
1144 
value_type(&self) -> glib::Type1145     fn value_type(&self) -> glib::Type {
1146         Self::static_type()
1147     }
1148 }
1149 
1150 #[cfg(any(feature = "v2_30", feature = "dox"))]
1151 #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_30")))]
1152 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1153 #[non_exhaustive]
1154 #[doc(alias = "AtkScrollType")]
1155 pub enum ScrollType {
1156     #[doc(alias = "ATK_SCROLL_TOP_LEFT")]
1157     TopLeft,
1158     #[doc(alias = "ATK_SCROLL_BOTTOM_RIGHT")]
1159     BottomRight,
1160     #[doc(alias = "ATK_SCROLL_TOP_EDGE")]
1161     TopEdge,
1162     #[doc(alias = "ATK_SCROLL_BOTTOM_EDGE")]
1163     BottomEdge,
1164     #[doc(alias = "ATK_SCROLL_LEFT_EDGE")]
1165     LeftEdge,
1166     #[doc(alias = "ATK_SCROLL_RIGHT_EDGE")]
1167     RightEdge,
1168     #[doc(alias = "ATK_SCROLL_ANYWHERE")]
1169     Anywhere,
1170     #[doc(hidden)]
1171     __Unknown(i32),
1172 }
1173 
1174 #[cfg(any(feature = "v2_30", feature = "dox"))]
1175 #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_30")))]
1176 impl fmt::Display for ScrollType {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1177     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1178         write!(
1179             f,
1180             "ScrollType::{}",
1181             match *self {
1182                 Self::TopLeft => "TopLeft",
1183                 Self::BottomRight => "BottomRight",
1184                 Self::TopEdge => "TopEdge",
1185                 Self::BottomEdge => "BottomEdge",
1186                 Self::LeftEdge => "LeftEdge",
1187                 Self::RightEdge => "RightEdge",
1188                 Self::Anywhere => "Anywhere",
1189                 _ => "Unknown",
1190             }
1191         )
1192     }
1193 }
1194 
1195 #[cfg(any(feature = "v2_30", feature = "dox"))]
1196 #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_30")))]
1197 #[doc(hidden)]
1198 impl IntoGlib for ScrollType {
1199     type GlibType = ffi::AtkScrollType;
1200 
into_glib(self) -> ffi::AtkScrollType1201     fn into_glib(self) -> ffi::AtkScrollType {
1202         match self {
1203             Self::TopLeft => ffi::ATK_SCROLL_TOP_LEFT,
1204             Self::BottomRight => ffi::ATK_SCROLL_BOTTOM_RIGHT,
1205             Self::TopEdge => ffi::ATK_SCROLL_TOP_EDGE,
1206             Self::BottomEdge => ffi::ATK_SCROLL_BOTTOM_EDGE,
1207             Self::LeftEdge => ffi::ATK_SCROLL_LEFT_EDGE,
1208             Self::RightEdge => ffi::ATK_SCROLL_RIGHT_EDGE,
1209             Self::Anywhere => ffi::ATK_SCROLL_ANYWHERE,
1210             Self::__Unknown(value) => value,
1211         }
1212     }
1213 }
1214 
1215 #[cfg(any(feature = "v2_30", feature = "dox"))]
1216 #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_30")))]
1217 #[doc(hidden)]
1218 impl FromGlib<ffi::AtkScrollType> for ScrollType {
from_glib(value: ffi::AtkScrollType) -> Self1219     unsafe fn from_glib(value: ffi::AtkScrollType) -> Self {
1220         skip_assert_initialized!();
1221         match value {
1222             ffi::ATK_SCROLL_TOP_LEFT => Self::TopLeft,
1223             ffi::ATK_SCROLL_BOTTOM_RIGHT => Self::BottomRight,
1224             ffi::ATK_SCROLL_TOP_EDGE => Self::TopEdge,
1225             ffi::ATK_SCROLL_BOTTOM_EDGE => Self::BottomEdge,
1226             ffi::ATK_SCROLL_LEFT_EDGE => Self::LeftEdge,
1227             ffi::ATK_SCROLL_RIGHT_EDGE => Self::RightEdge,
1228             ffi::ATK_SCROLL_ANYWHERE => Self::Anywhere,
1229             value => Self::__Unknown(value),
1230         }
1231     }
1232 }
1233 
1234 #[cfg(any(feature = "v2_30", feature = "dox"))]
1235 #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_30")))]
1236 impl StaticType for ScrollType {
static_type() -> Type1237     fn static_type() -> Type {
1238         unsafe { from_glib(ffi::atk_scroll_type_get_type()) }
1239     }
1240 }
1241 
1242 #[cfg(any(feature = "v2_30", feature = "dox"))]
1243 #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_30")))]
1244 impl glib::value::ValueType for ScrollType {
1245     type Type = Self;
1246 }
1247 
1248 #[cfg(any(feature = "v2_30", feature = "dox"))]
1249 #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_30")))]
1250 unsafe impl<'a> FromValue<'a> for ScrollType {
1251     type Checker = glib::value::GenericValueTypeChecker<Self>;
1252 
from_value(value: &'a glib::Value) -> Self1253     unsafe fn from_value(value: &'a glib::Value) -> Self {
1254         skip_assert_initialized!();
1255         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1256     }
1257 }
1258 
1259 #[cfg(any(feature = "v2_30", feature = "dox"))]
1260 #[cfg_attr(feature = "dox", doc(cfg(feature = "v2_30")))]
1261 impl ToValue for ScrollType {
to_value(&self) -> glib::Value1262     fn to_value(&self) -> glib::Value {
1263         let mut value = glib::Value::for_value_type::<Self>();
1264         unsafe {
1265             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1266         }
1267         value
1268     }
1269 
value_type(&self) -> glib::Type1270     fn value_type(&self) -> glib::Type {
1271         Self::static_type()
1272     }
1273 }
1274 
1275 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1276 #[non_exhaustive]
1277 #[doc(alias = "AtkStateType")]
1278 pub enum StateType {
1279     #[doc(alias = "ATK_STATE_INVALID")]
1280     Invalid,
1281     #[doc(alias = "ATK_STATE_ACTIVE")]
1282     Active,
1283     #[doc(alias = "ATK_STATE_ARMED")]
1284     Armed,
1285     #[doc(alias = "ATK_STATE_BUSY")]
1286     Busy,
1287     #[doc(alias = "ATK_STATE_CHECKED")]
1288     Checked,
1289     #[doc(alias = "ATK_STATE_DEFUNCT")]
1290     Defunct,
1291     #[doc(alias = "ATK_STATE_EDITABLE")]
1292     Editable,
1293     #[doc(alias = "ATK_STATE_ENABLED")]
1294     Enabled,
1295     #[doc(alias = "ATK_STATE_EXPANDABLE")]
1296     Expandable,
1297     #[doc(alias = "ATK_STATE_EXPANDED")]
1298     Expanded,
1299     #[doc(alias = "ATK_STATE_FOCUSABLE")]
1300     Focusable,
1301     #[doc(alias = "ATK_STATE_FOCUSED")]
1302     Focused,
1303     #[doc(alias = "ATK_STATE_HORIZONTAL")]
1304     Horizontal,
1305     #[doc(alias = "ATK_STATE_ICONIFIED")]
1306     Iconified,
1307     #[doc(alias = "ATK_STATE_MODAL")]
1308     Modal,
1309     #[doc(alias = "ATK_STATE_MULTI_LINE")]
1310     MultiLine,
1311     #[doc(alias = "ATK_STATE_MULTISELECTABLE")]
1312     Multiselectable,
1313     #[doc(alias = "ATK_STATE_OPAQUE")]
1314     Opaque,
1315     #[doc(alias = "ATK_STATE_PRESSED")]
1316     Pressed,
1317     #[doc(alias = "ATK_STATE_RESIZABLE")]
1318     Resizable,
1319     #[doc(alias = "ATK_STATE_SELECTABLE")]
1320     Selectable,
1321     #[doc(alias = "ATK_STATE_SELECTED")]
1322     Selected,
1323     #[doc(alias = "ATK_STATE_SENSITIVE")]
1324     Sensitive,
1325     #[doc(alias = "ATK_STATE_SHOWING")]
1326     Showing,
1327     #[doc(alias = "ATK_STATE_SINGLE_LINE")]
1328     SingleLine,
1329     #[doc(alias = "ATK_STATE_STALE")]
1330     Stale,
1331     #[doc(alias = "ATK_STATE_TRANSIENT")]
1332     Transient,
1333     #[doc(alias = "ATK_STATE_VERTICAL")]
1334     Vertical,
1335     #[doc(alias = "ATK_STATE_VISIBLE")]
1336     Visible,
1337     #[doc(alias = "ATK_STATE_MANAGES_DESCENDANTS")]
1338     ManagesDescendants,
1339     #[doc(alias = "ATK_STATE_INDETERMINATE")]
1340     Indeterminate,
1341     #[doc(alias = "ATK_STATE_TRUNCATED")]
1342     Truncated,
1343     #[doc(alias = "ATK_STATE_REQUIRED")]
1344     Required,
1345     #[doc(alias = "ATK_STATE_INVALID_ENTRY")]
1346     InvalidEntry,
1347     #[doc(alias = "ATK_STATE_SUPPORTS_AUTOCOMPLETION")]
1348     SupportsAutocompletion,
1349     #[doc(alias = "ATK_STATE_SELECTABLE_TEXT")]
1350     SelectableText,
1351     #[doc(alias = "ATK_STATE_DEFAULT")]
1352     Default,
1353     #[doc(alias = "ATK_STATE_ANIMATED")]
1354     Animated,
1355     #[doc(alias = "ATK_STATE_VISITED")]
1356     Visited,
1357     #[doc(alias = "ATK_STATE_CHECKABLE")]
1358     Checkable,
1359     #[doc(alias = "ATK_STATE_HAS_POPUP")]
1360     HasPopup,
1361     #[doc(alias = "ATK_STATE_HAS_TOOLTIP")]
1362     HasTooltip,
1363     #[doc(alias = "ATK_STATE_READ_ONLY")]
1364     ReadOnly,
1365     #[doc(alias = "ATK_STATE_LAST_DEFINED")]
1366     LastDefined,
1367     #[doc(hidden)]
1368     __Unknown(i32),
1369 }
1370 
1371 impl StateType {
1372     #[doc(alias = "atk_state_type_for_name")]
for_name(name: &str) -> StateType1373     pub fn for_name(name: &str) -> StateType {
1374         assert_initialized_main_thread!();
1375         unsafe { from_glib(ffi::atk_state_type_for_name(name.to_glib_none().0)) }
1376     }
1377 
1378     #[doc(alias = "atk_state_type_get_name")]
1379     #[doc(alias = "get_name")]
name(self) -> Option<glib::GString>1380     pub fn name(self) -> Option<glib::GString> {
1381         assert_initialized_main_thread!();
1382         unsafe { from_glib_none(ffi::atk_state_type_get_name(self.into_glib())) }
1383     }
1384 }
1385 
1386 impl fmt::Display for StateType {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1387     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1388         write!(
1389             f,
1390             "StateType::{}",
1391             match *self {
1392                 Self::Invalid => "Invalid",
1393                 Self::Active => "Active",
1394                 Self::Armed => "Armed",
1395                 Self::Busy => "Busy",
1396                 Self::Checked => "Checked",
1397                 Self::Defunct => "Defunct",
1398                 Self::Editable => "Editable",
1399                 Self::Enabled => "Enabled",
1400                 Self::Expandable => "Expandable",
1401                 Self::Expanded => "Expanded",
1402                 Self::Focusable => "Focusable",
1403                 Self::Focused => "Focused",
1404                 Self::Horizontal => "Horizontal",
1405                 Self::Iconified => "Iconified",
1406                 Self::Modal => "Modal",
1407                 Self::MultiLine => "MultiLine",
1408                 Self::Multiselectable => "Multiselectable",
1409                 Self::Opaque => "Opaque",
1410                 Self::Pressed => "Pressed",
1411                 Self::Resizable => "Resizable",
1412                 Self::Selectable => "Selectable",
1413                 Self::Selected => "Selected",
1414                 Self::Sensitive => "Sensitive",
1415                 Self::Showing => "Showing",
1416                 Self::SingleLine => "SingleLine",
1417                 Self::Stale => "Stale",
1418                 Self::Transient => "Transient",
1419                 Self::Vertical => "Vertical",
1420                 Self::Visible => "Visible",
1421                 Self::ManagesDescendants => "ManagesDescendants",
1422                 Self::Indeterminate => "Indeterminate",
1423                 Self::Truncated => "Truncated",
1424                 Self::Required => "Required",
1425                 Self::InvalidEntry => "InvalidEntry",
1426                 Self::SupportsAutocompletion => "SupportsAutocompletion",
1427                 Self::SelectableText => "SelectableText",
1428                 Self::Default => "Default",
1429                 Self::Animated => "Animated",
1430                 Self::Visited => "Visited",
1431                 Self::Checkable => "Checkable",
1432                 Self::HasPopup => "HasPopup",
1433                 Self::HasTooltip => "HasTooltip",
1434                 Self::ReadOnly => "ReadOnly",
1435                 Self::LastDefined => "LastDefined",
1436                 _ => "Unknown",
1437             }
1438         )
1439     }
1440 }
1441 
1442 #[doc(hidden)]
1443 impl IntoGlib for StateType {
1444     type GlibType = ffi::AtkStateType;
1445 
into_glib(self) -> ffi::AtkStateType1446     fn into_glib(self) -> ffi::AtkStateType {
1447         match self {
1448             Self::Invalid => ffi::ATK_STATE_INVALID,
1449             Self::Active => ffi::ATK_STATE_ACTIVE,
1450             Self::Armed => ffi::ATK_STATE_ARMED,
1451             Self::Busy => ffi::ATK_STATE_BUSY,
1452             Self::Checked => ffi::ATK_STATE_CHECKED,
1453             Self::Defunct => ffi::ATK_STATE_DEFUNCT,
1454             Self::Editable => ffi::ATK_STATE_EDITABLE,
1455             Self::Enabled => ffi::ATK_STATE_ENABLED,
1456             Self::Expandable => ffi::ATK_STATE_EXPANDABLE,
1457             Self::Expanded => ffi::ATK_STATE_EXPANDED,
1458             Self::Focusable => ffi::ATK_STATE_FOCUSABLE,
1459             Self::Focused => ffi::ATK_STATE_FOCUSED,
1460             Self::Horizontal => ffi::ATK_STATE_HORIZONTAL,
1461             Self::Iconified => ffi::ATK_STATE_ICONIFIED,
1462             Self::Modal => ffi::ATK_STATE_MODAL,
1463             Self::MultiLine => ffi::ATK_STATE_MULTI_LINE,
1464             Self::Multiselectable => ffi::ATK_STATE_MULTISELECTABLE,
1465             Self::Opaque => ffi::ATK_STATE_OPAQUE,
1466             Self::Pressed => ffi::ATK_STATE_PRESSED,
1467             Self::Resizable => ffi::ATK_STATE_RESIZABLE,
1468             Self::Selectable => ffi::ATK_STATE_SELECTABLE,
1469             Self::Selected => ffi::ATK_STATE_SELECTED,
1470             Self::Sensitive => ffi::ATK_STATE_SENSITIVE,
1471             Self::Showing => ffi::ATK_STATE_SHOWING,
1472             Self::SingleLine => ffi::ATK_STATE_SINGLE_LINE,
1473             Self::Stale => ffi::ATK_STATE_STALE,
1474             Self::Transient => ffi::ATK_STATE_TRANSIENT,
1475             Self::Vertical => ffi::ATK_STATE_VERTICAL,
1476             Self::Visible => ffi::ATK_STATE_VISIBLE,
1477             Self::ManagesDescendants => ffi::ATK_STATE_MANAGES_DESCENDANTS,
1478             Self::Indeterminate => ffi::ATK_STATE_INDETERMINATE,
1479             Self::Truncated => ffi::ATK_STATE_TRUNCATED,
1480             Self::Required => ffi::ATK_STATE_REQUIRED,
1481             Self::InvalidEntry => ffi::ATK_STATE_INVALID_ENTRY,
1482             Self::SupportsAutocompletion => ffi::ATK_STATE_SUPPORTS_AUTOCOMPLETION,
1483             Self::SelectableText => ffi::ATK_STATE_SELECTABLE_TEXT,
1484             Self::Default => ffi::ATK_STATE_DEFAULT,
1485             Self::Animated => ffi::ATK_STATE_ANIMATED,
1486             Self::Visited => ffi::ATK_STATE_VISITED,
1487             Self::Checkable => ffi::ATK_STATE_CHECKABLE,
1488             Self::HasPopup => ffi::ATK_STATE_HAS_POPUP,
1489             Self::HasTooltip => ffi::ATK_STATE_HAS_TOOLTIP,
1490             Self::ReadOnly => ffi::ATK_STATE_READ_ONLY,
1491             Self::LastDefined => ffi::ATK_STATE_LAST_DEFINED,
1492             Self::__Unknown(value) => value,
1493         }
1494     }
1495 }
1496 
1497 #[doc(hidden)]
1498 impl FromGlib<ffi::AtkStateType> for StateType {
from_glib(value: ffi::AtkStateType) -> Self1499     unsafe fn from_glib(value: ffi::AtkStateType) -> Self {
1500         skip_assert_initialized!();
1501         match value {
1502             ffi::ATK_STATE_INVALID => Self::Invalid,
1503             ffi::ATK_STATE_ACTIVE => Self::Active,
1504             ffi::ATK_STATE_ARMED => Self::Armed,
1505             ffi::ATK_STATE_BUSY => Self::Busy,
1506             ffi::ATK_STATE_CHECKED => Self::Checked,
1507             ffi::ATK_STATE_DEFUNCT => Self::Defunct,
1508             ffi::ATK_STATE_EDITABLE => Self::Editable,
1509             ffi::ATK_STATE_ENABLED => Self::Enabled,
1510             ffi::ATK_STATE_EXPANDABLE => Self::Expandable,
1511             ffi::ATK_STATE_EXPANDED => Self::Expanded,
1512             ffi::ATK_STATE_FOCUSABLE => Self::Focusable,
1513             ffi::ATK_STATE_FOCUSED => Self::Focused,
1514             ffi::ATK_STATE_HORIZONTAL => Self::Horizontal,
1515             ffi::ATK_STATE_ICONIFIED => Self::Iconified,
1516             ffi::ATK_STATE_MODAL => Self::Modal,
1517             ffi::ATK_STATE_MULTI_LINE => Self::MultiLine,
1518             ffi::ATK_STATE_MULTISELECTABLE => Self::Multiselectable,
1519             ffi::ATK_STATE_OPAQUE => Self::Opaque,
1520             ffi::ATK_STATE_PRESSED => Self::Pressed,
1521             ffi::ATK_STATE_RESIZABLE => Self::Resizable,
1522             ffi::ATK_STATE_SELECTABLE => Self::Selectable,
1523             ffi::ATK_STATE_SELECTED => Self::Selected,
1524             ffi::ATK_STATE_SENSITIVE => Self::Sensitive,
1525             ffi::ATK_STATE_SHOWING => Self::Showing,
1526             ffi::ATK_STATE_SINGLE_LINE => Self::SingleLine,
1527             ffi::ATK_STATE_STALE => Self::Stale,
1528             ffi::ATK_STATE_TRANSIENT => Self::Transient,
1529             ffi::ATK_STATE_VERTICAL => Self::Vertical,
1530             ffi::ATK_STATE_VISIBLE => Self::Visible,
1531             ffi::ATK_STATE_MANAGES_DESCENDANTS => Self::ManagesDescendants,
1532             ffi::ATK_STATE_INDETERMINATE => Self::Indeterminate,
1533             ffi::ATK_STATE_TRUNCATED => Self::Truncated,
1534             ffi::ATK_STATE_REQUIRED => Self::Required,
1535             ffi::ATK_STATE_INVALID_ENTRY => Self::InvalidEntry,
1536             ffi::ATK_STATE_SUPPORTS_AUTOCOMPLETION => Self::SupportsAutocompletion,
1537             ffi::ATK_STATE_SELECTABLE_TEXT => Self::SelectableText,
1538             ffi::ATK_STATE_DEFAULT => Self::Default,
1539             ffi::ATK_STATE_ANIMATED => Self::Animated,
1540             ffi::ATK_STATE_VISITED => Self::Visited,
1541             ffi::ATK_STATE_CHECKABLE => Self::Checkable,
1542             ffi::ATK_STATE_HAS_POPUP => Self::HasPopup,
1543             ffi::ATK_STATE_HAS_TOOLTIP => Self::HasTooltip,
1544             ffi::ATK_STATE_READ_ONLY => Self::ReadOnly,
1545             ffi::ATK_STATE_LAST_DEFINED => Self::LastDefined,
1546             value => Self::__Unknown(value),
1547         }
1548     }
1549 }
1550 
1551 impl StaticType for StateType {
static_type() -> Type1552     fn static_type() -> Type {
1553         unsafe { from_glib(ffi::atk_state_type_get_type()) }
1554     }
1555 }
1556 
1557 impl glib::value::ValueType for StateType {
1558     type Type = Self;
1559 }
1560 
1561 unsafe impl<'a> FromValue<'a> for StateType {
1562     type Checker = glib::value::GenericValueTypeChecker<Self>;
1563 
from_value(value: &'a glib::Value) -> Self1564     unsafe fn from_value(value: &'a glib::Value) -> Self {
1565         skip_assert_initialized!();
1566         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1567     }
1568 }
1569 
1570 impl ToValue for StateType {
to_value(&self) -> glib::Value1571     fn to_value(&self) -> glib::Value {
1572         let mut value = glib::Value::for_value_type::<Self>();
1573         unsafe {
1574             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1575         }
1576         value
1577     }
1578 
value_type(&self) -> glib::Type1579     fn value_type(&self) -> glib::Type {
1580         Self::static_type()
1581     }
1582 }
1583 
1584 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1585 #[non_exhaustive]
1586 #[doc(alias = "AtkTextAttribute")]
1587 pub enum TextAttribute {
1588     #[doc(alias = "ATK_TEXT_ATTR_INVALID")]
1589     Invalid,
1590     #[doc(alias = "ATK_TEXT_ATTR_LEFT_MARGIN")]
1591     LeftMargin,
1592     #[doc(alias = "ATK_TEXT_ATTR_RIGHT_MARGIN")]
1593     RightMargin,
1594     #[doc(alias = "ATK_TEXT_ATTR_INDENT")]
1595     Indent,
1596     #[doc(alias = "ATK_TEXT_ATTR_INVISIBLE")]
1597     Invisible,
1598     #[doc(alias = "ATK_TEXT_ATTR_EDITABLE")]
1599     Editable,
1600     #[doc(alias = "ATK_TEXT_ATTR_PIXELS_ABOVE_LINES")]
1601     PixelsAboveLines,
1602     #[doc(alias = "ATK_TEXT_ATTR_PIXELS_BELOW_LINES")]
1603     PixelsBelowLines,
1604     #[doc(alias = "ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP")]
1605     PixelsInsideWrap,
1606     #[doc(alias = "ATK_TEXT_ATTR_BG_FULL_HEIGHT")]
1607     BgFullHeight,
1608     #[doc(alias = "ATK_TEXT_ATTR_RISE")]
1609     Rise,
1610     #[doc(alias = "ATK_TEXT_ATTR_UNDERLINE")]
1611     Underline,
1612     #[doc(alias = "ATK_TEXT_ATTR_STRIKETHROUGH")]
1613     Strikethrough,
1614     #[doc(alias = "ATK_TEXT_ATTR_SIZE")]
1615     Size,
1616     #[doc(alias = "ATK_TEXT_ATTR_SCALE")]
1617     Scale,
1618     #[doc(alias = "ATK_TEXT_ATTR_WEIGHT")]
1619     Weight,
1620     #[doc(alias = "ATK_TEXT_ATTR_LANGUAGE")]
1621     Language,
1622     #[doc(alias = "ATK_TEXT_ATTR_FAMILY_NAME")]
1623     FamilyName,
1624     #[doc(alias = "ATK_TEXT_ATTR_BG_COLOR")]
1625     BgColor,
1626     #[doc(alias = "ATK_TEXT_ATTR_FG_COLOR")]
1627     FgColor,
1628     #[doc(alias = "ATK_TEXT_ATTR_BG_STIPPLE")]
1629     BgStipple,
1630     #[doc(alias = "ATK_TEXT_ATTR_FG_STIPPLE")]
1631     FgStipple,
1632     #[doc(alias = "ATK_TEXT_ATTR_WRAP_MODE")]
1633     WrapMode,
1634     #[doc(alias = "ATK_TEXT_ATTR_DIRECTION")]
1635     Direction,
1636     #[doc(alias = "ATK_TEXT_ATTR_JUSTIFICATION")]
1637     Justification,
1638     #[doc(alias = "ATK_TEXT_ATTR_STRETCH")]
1639     Stretch,
1640     #[doc(alias = "ATK_TEXT_ATTR_VARIANT")]
1641     Variant,
1642     #[doc(alias = "ATK_TEXT_ATTR_STYLE")]
1643     Style,
1644     #[doc(alias = "ATK_TEXT_ATTR_TEXT_POSITION")]
1645     TextPosition,
1646     #[doc(alias = "ATK_TEXT_ATTR_LAST_DEFINED")]
1647     LastDefined,
1648     #[doc(hidden)]
1649     __Unknown(i32),
1650 }
1651 
1652 impl TextAttribute {
1653     #[doc(alias = "atk_text_attribute_for_name")]
for_name(name: &str) -> TextAttribute1654     pub fn for_name(name: &str) -> TextAttribute {
1655         assert_initialized_main_thread!();
1656         unsafe { from_glib(ffi::atk_text_attribute_for_name(name.to_glib_none().0)) }
1657     }
1658 
1659     #[doc(alias = "atk_text_attribute_get_name")]
1660     #[doc(alias = "get_name")]
name(self) -> Option<glib::GString>1661     pub fn name(self) -> Option<glib::GString> {
1662         assert_initialized_main_thread!();
1663         unsafe { from_glib_none(ffi::atk_text_attribute_get_name(self.into_glib())) }
1664     }
1665 
1666     #[doc(alias = "atk_text_attribute_get_value")]
1667     #[doc(alias = "get_value")]
value(self, index_: i32) -> Option<glib::GString>1668     pub fn value(self, index_: i32) -> Option<glib::GString> {
1669         assert_initialized_main_thread!();
1670         unsafe { from_glib_none(ffi::atk_text_attribute_get_value(self.into_glib(), index_)) }
1671     }
1672 }
1673 
1674 impl fmt::Display for TextAttribute {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1675     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1676         write!(
1677             f,
1678             "TextAttribute::{}",
1679             match *self {
1680                 Self::Invalid => "Invalid",
1681                 Self::LeftMargin => "LeftMargin",
1682                 Self::RightMargin => "RightMargin",
1683                 Self::Indent => "Indent",
1684                 Self::Invisible => "Invisible",
1685                 Self::Editable => "Editable",
1686                 Self::PixelsAboveLines => "PixelsAboveLines",
1687                 Self::PixelsBelowLines => "PixelsBelowLines",
1688                 Self::PixelsInsideWrap => "PixelsInsideWrap",
1689                 Self::BgFullHeight => "BgFullHeight",
1690                 Self::Rise => "Rise",
1691                 Self::Underline => "Underline",
1692                 Self::Strikethrough => "Strikethrough",
1693                 Self::Size => "Size",
1694                 Self::Scale => "Scale",
1695                 Self::Weight => "Weight",
1696                 Self::Language => "Language",
1697                 Self::FamilyName => "FamilyName",
1698                 Self::BgColor => "BgColor",
1699                 Self::FgColor => "FgColor",
1700                 Self::BgStipple => "BgStipple",
1701                 Self::FgStipple => "FgStipple",
1702                 Self::WrapMode => "WrapMode",
1703                 Self::Direction => "Direction",
1704                 Self::Justification => "Justification",
1705                 Self::Stretch => "Stretch",
1706                 Self::Variant => "Variant",
1707                 Self::Style => "Style",
1708                 Self::TextPosition => "TextPosition",
1709                 Self::LastDefined => "LastDefined",
1710                 _ => "Unknown",
1711             }
1712         )
1713     }
1714 }
1715 
1716 #[doc(hidden)]
1717 impl IntoGlib for TextAttribute {
1718     type GlibType = ffi::AtkTextAttribute;
1719 
into_glib(self) -> ffi::AtkTextAttribute1720     fn into_glib(self) -> ffi::AtkTextAttribute {
1721         match self {
1722             Self::Invalid => ffi::ATK_TEXT_ATTR_INVALID,
1723             Self::LeftMargin => ffi::ATK_TEXT_ATTR_LEFT_MARGIN,
1724             Self::RightMargin => ffi::ATK_TEXT_ATTR_RIGHT_MARGIN,
1725             Self::Indent => ffi::ATK_TEXT_ATTR_INDENT,
1726             Self::Invisible => ffi::ATK_TEXT_ATTR_INVISIBLE,
1727             Self::Editable => ffi::ATK_TEXT_ATTR_EDITABLE,
1728             Self::PixelsAboveLines => ffi::ATK_TEXT_ATTR_PIXELS_ABOVE_LINES,
1729             Self::PixelsBelowLines => ffi::ATK_TEXT_ATTR_PIXELS_BELOW_LINES,
1730             Self::PixelsInsideWrap => ffi::ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP,
1731             Self::BgFullHeight => ffi::ATK_TEXT_ATTR_BG_FULL_HEIGHT,
1732             Self::Rise => ffi::ATK_TEXT_ATTR_RISE,
1733             Self::Underline => ffi::ATK_TEXT_ATTR_UNDERLINE,
1734             Self::Strikethrough => ffi::ATK_TEXT_ATTR_STRIKETHROUGH,
1735             Self::Size => ffi::ATK_TEXT_ATTR_SIZE,
1736             Self::Scale => ffi::ATK_TEXT_ATTR_SCALE,
1737             Self::Weight => ffi::ATK_TEXT_ATTR_WEIGHT,
1738             Self::Language => ffi::ATK_TEXT_ATTR_LANGUAGE,
1739             Self::FamilyName => ffi::ATK_TEXT_ATTR_FAMILY_NAME,
1740             Self::BgColor => ffi::ATK_TEXT_ATTR_BG_COLOR,
1741             Self::FgColor => ffi::ATK_TEXT_ATTR_FG_COLOR,
1742             Self::BgStipple => ffi::ATK_TEXT_ATTR_BG_STIPPLE,
1743             Self::FgStipple => ffi::ATK_TEXT_ATTR_FG_STIPPLE,
1744             Self::WrapMode => ffi::ATK_TEXT_ATTR_WRAP_MODE,
1745             Self::Direction => ffi::ATK_TEXT_ATTR_DIRECTION,
1746             Self::Justification => ffi::ATK_TEXT_ATTR_JUSTIFICATION,
1747             Self::Stretch => ffi::ATK_TEXT_ATTR_STRETCH,
1748             Self::Variant => ffi::ATK_TEXT_ATTR_VARIANT,
1749             Self::Style => ffi::ATK_TEXT_ATTR_STYLE,
1750             Self::TextPosition => ffi::ATK_TEXT_ATTR_TEXT_POSITION,
1751             Self::LastDefined => ffi::ATK_TEXT_ATTR_LAST_DEFINED,
1752             Self::__Unknown(value) => value,
1753         }
1754     }
1755 }
1756 
1757 #[doc(hidden)]
1758 impl FromGlib<ffi::AtkTextAttribute> for TextAttribute {
from_glib(value: ffi::AtkTextAttribute) -> Self1759     unsafe fn from_glib(value: ffi::AtkTextAttribute) -> Self {
1760         skip_assert_initialized!();
1761         match value {
1762             ffi::ATK_TEXT_ATTR_INVALID => Self::Invalid,
1763             ffi::ATK_TEXT_ATTR_LEFT_MARGIN => Self::LeftMargin,
1764             ffi::ATK_TEXT_ATTR_RIGHT_MARGIN => Self::RightMargin,
1765             ffi::ATK_TEXT_ATTR_INDENT => Self::Indent,
1766             ffi::ATK_TEXT_ATTR_INVISIBLE => Self::Invisible,
1767             ffi::ATK_TEXT_ATTR_EDITABLE => Self::Editable,
1768             ffi::ATK_TEXT_ATTR_PIXELS_ABOVE_LINES => Self::PixelsAboveLines,
1769             ffi::ATK_TEXT_ATTR_PIXELS_BELOW_LINES => Self::PixelsBelowLines,
1770             ffi::ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP => Self::PixelsInsideWrap,
1771             ffi::ATK_TEXT_ATTR_BG_FULL_HEIGHT => Self::BgFullHeight,
1772             ffi::ATK_TEXT_ATTR_RISE => Self::Rise,
1773             ffi::ATK_TEXT_ATTR_UNDERLINE => Self::Underline,
1774             ffi::ATK_TEXT_ATTR_STRIKETHROUGH => Self::Strikethrough,
1775             ffi::ATK_TEXT_ATTR_SIZE => Self::Size,
1776             ffi::ATK_TEXT_ATTR_SCALE => Self::Scale,
1777             ffi::ATK_TEXT_ATTR_WEIGHT => Self::Weight,
1778             ffi::ATK_TEXT_ATTR_LANGUAGE => Self::Language,
1779             ffi::ATK_TEXT_ATTR_FAMILY_NAME => Self::FamilyName,
1780             ffi::ATK_TEXT_ATTR_BG_COLOR => Self::BgColor,
1781             ffi::ATK_TEXT_ATTR_FG_COLOR => Self::FgColor,
1782             ffi::ATK_TEXT_ATTR_BG_STIPPLE => Self::BgStipple,
1783             ffi::ATK_TEXT_ATTR_FG_STIPPLE => Self::FgStipple,
1784             ffi::ATK_TEXT_ATTR_WRAP_MODE => Self::WrapMode,
1785             ffi::ATK_TEXT_ATTR_DIRECTION => Self::Direction,
1786             ffi::ATK_TEXT_ATTR_JUSTIFICATION => Self::Justification,
1787             ffi::ATK_TEXT_ATTR_STRETCH => Self::Stretch,
1788             ffi::ATK_TEXT_ATTR_VARIANT => Self::Variant,
1789             ffi::ATK_TEXT_ATTR_STYLE => Self::Style,
1790             ffi::ATK_TEXT_ATTR_TEXT_POSITION => Self::TextPosition,
1791             ffi::ATK_TEXT_ATTR_LAST_DEFINED => Self::LastDefined,
1792             value => Self::__Unknown(value),
1793         }
1794     }
1795 }
1796 
1797 impl StaticType for TextAttribute {
static_type() -> Type1798     fn static_type() -> Type {
1799         unsafe { from_glib(ffi::atk_text_attribute_get_type()) }
1800     }
1801 }
1802 
1803 impl glib::value::ValueType for TextAttribute {
1804     type Type = Self;
1805 }
1806 
1807 unsafe impl<'a> FromValue<'a> for TextAttribute {
1808     type Checker = glib::value::GenericValueTypeChecker<Self>;
1809 
from_value(value: &'a glib::Value) -> Self1810     unsafe fn from_value(value: &'a glib::Value) -> Self {
1811         skip_assert_initialized!();
1812         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1813     }
1814 }
1815 
1816 impl ToValue for TextAttribute {
to_value(&self) -> glib::Value1817     fn to_value(&self) -> glib::Value {
1818         let mut value = glib::Value::for_value_type::<Self>();
1819         unsafe {
1820             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1821         }
1822         value
1823     }
1824 
value_type(&self) -> glib::Type1825     fn value_type(&self) -> glib::Type {
1826         Self::static_type()
1827     }
1828 }
1829 
1830 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1831 #[non_exhaustive]
1832 #[doc(alias = "AtkTextBoundary")]
1833 pub enum TextBoundary {
1834     #[doc(alias = "ATK_TEXT_BOUNDARY_CHAR")]
1835     Char,
1836     #[doc(alias = "ATK_TEXT_BOUNDARY_WORD_START")]
1837     WordStart,
1838     #[doc(alias = "ATK_TEXT_BOUNDARY_WORD_END")]
1839     WordEnd,
1840     #[doc(alias = "ATK_TEXT_BOUNDARY_SENTENCE_START")]
1841     SentenceStart,
1842     #[doc(alias = "ATK_TEXT_BOUNDARY_SENTENCE_END")]
1843     SentenceEnd,
1844     #[doc(alias = "ATK_TEXT_BOUNDARY_LINE_START")]
1845     LineStart,
1846     #[doc(alias = "ATK_TEXT_BOUNDARY_LINE_END")]
1847     LineEnd,
1848     #[doc(hidden)]
1849     __Unknown(i32),
1850 }
1851 
1852 impl fmt::Display for TextBoundary {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1853     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1854         write!(
1855             f,
1856             "TextBoundary::{}",
1857             match *self {
1858                 Self::Char => "Char",
1859                 Self::WordStart => "WordStart",
1860                 Self::WordEnd => "WordEnd",
1861                 Self::SentenceStart => "SentenceStart",
1862                 Self::SentenceEnd => "SentenceEnd",
1863                 Self::LineStart => "LineStart",
1864                 Self::LineEnd => "LineEnd",
1865                 _ => "Unknown",
1866             }
1867         )
1868     }
1869 }
1870 
1871 #[doc(hidden)]
1872 impl IntoGlib for TextBoundary {
1873     type GlibType = ffi::AtkTextBoundary;
1874 
into_glib(self) -> ffi::AtkTextBoundary1875     fn into_glib(self) -> ffi::AtkTextBoundary {
1876         match self {
1877             Self::Char => ffi::ATK_TEXT_BOUNDARY_CHAR,
1878             Self::WordStart => ffi::ATK_TEXT_BOUNDARY_WORD_START,
1879             Self::WordEnd => ffi::ATK_TEXT_BOUNDARY_WORD_END,
1880             Self::SentenceStart => ffi::ATK_TEXT_BOUNDARY_SENTENCE_START,
1881             Self::SentenceEnd => ffi::ATK_TEXT_BOUNDARY_SENTENCE_END,
1882             Self::LineStart => ffi::ATK_TEXT_BOUNDARY_LINE_START,
1883             Self::LineEnd => ffi::ATK_TEXT_BOUNDARY_LINE_END,
1884             Self::__Unknown(value) => value,
1885         }
1886     }
1887 }
1888 
1889 #[doc(hidden)]
1890 impl FromGlib<ffi::AtkTextBoundary> for TextBoundary {
from_glib(value: ffi::AtkTextBoundary) -> Self1891     unsafe fn from_glib(value: ffi::AtkTextBoundary) -> Self {
1892         skip_assert_initialized!();
1893         match value {
1894             ffi::ATK_TEXT_BOUNDARY_CHAR => Self::Char,
1895             ffi::ATK_TEXT_BOUNDARY_WORD_START => Self::WordStart,
1896             ffi::ATK_TEXT_BOUNDARY_WORD_END => Self::WordEnd,
1897             ffi::ATK_TEXT_BOUNDARY_SENTENCE_START => Self::SentenceStart,
1898             ffi::ATK_TEXT_BOUNDARY_SENTENCE_END => Self::SentenceEnd,
1899             ffi::ATK_TEXT_BOUNDARY_LINE_START => Self::LineStart,
1900             ffi::ATK_TEXT_BOUNDARY_LINE_END => Self::LineEnd,
1901             value => Self::__Unknown(value),
1902         }
1903     }
1904 }
1905 
1906 impl StaticType for TextBoundary {
static_type() -> Type1907     fn static_type() -> Type {
1908         unsafe { from_glib(ffi::atk_text_boundary_get_type()) }
1909     }
1910 }
1911 
1912 impl glib::value::ValueType for TextBoundary {
1913     type Type = Self;
1914 }
1915 
1916 unsafe impl<'a> FromValue<'a> for TextBoundary {
1917     type Checker = glib::value::GenericValueTypeChecker<Self>;
1918 
from_value(value: &'a glib::Value) -> Self1919     unsafe fn from_value(value: &'a glib::Value) -> Self {
1920         skip_assert_initialized!();
1921         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
1922     }
1923 }
1924 
1925 impl ToValue for TextBoundary {
to_value(&self) -> glib::Value1926     fn to_value(&self) -> glib::Value {
1927         let mut value = glib::Value::for_value_type::<Self>();
1928         unsafe {
1929             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
1930         }
1931         value
1932     }
1933 
value_type(&self) -> glib::Type1934     fn value_type(&self) -> glib::Type {
1935         Self::static_type()
1936     }
1937 }
1938 
1939 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
1940 #[non_exhaustive]
1941 #[doc(alias = "AtkTextClipType")]
1942 pub enum TextClipType {
1943     #[doc(alias = "ATK_TEXT_CLIP_NONE")]
1944     None,
1945     #[doc(alias = "ATK_TEXT_CLIP_MIN")]
1946     Min,
1947     #[doc(alias = "ATK_TEXT_CLIP_MAX")]
1948     Max,
1949     #[doc(alias = "ATK_TEXT_CLIP_BOTH")]
1950     Both,
1951     #[doc(hidden)]
1952     __Unknown(i32),
1953 }
1954 
1955 impl fmt::Display for TextClipType {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result1956     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1957         write!(
1958             f,
1959             "TextClipType::{}",
1960             match *self {
1961                 Self::None => "None",
1962                 Self::Min => "Min",
1963                 Self::Max => "Max",
1964                 Self::Both => "Both",
1965                 _ => "Unknown",
1966             }
1967         )
1968     }
1969 }
1970 
1971 #[doc(hidden)]
1972 impl IntoGlib for TextClipType {
1973     type GlibType = ffi::AtkTextClipType;
1974 
into_glib(self) -> ffi::AtkTextClipType1975     fn into_glib(self) -> ffi::AtkTextClipType {
1976         match self {
1977             Self::None => ffi::ATK_TEXT_CLIP_NONE,
1978             Self::Min => ffi::ATK_TEXT_CLIP_MIN,
1979             Self::Max => ffi::ATK_TEXT_CLIP_MAX,
1980             Self::Both => ffi::ATK_TEXT_CLIP_BOTH,
1981             Self::__Unknown(value) => value,
1982         }
1983     }
1984 }
1985 
1986 #[doc(hidden)]
1987 impl FromGlib<ffi::AtkTextClipType> for TextClipType {
from_glib(value: ffi::AtkTextClipType) -> Self1988     unsafe fn from_glib(value: ffi::AtkTextClipType) -> Self {
1989         skip_assert_initialized!();
1990         match value {
1991             ffi::ATK_TEXT_CLIP_NONE => Self::None,
1992             ffi::ATK_TEXT_CLIP_MIN => Self::Min,
1993             ffi::ATK_TEXT_CLIP_MAX => Self::Max,
1994             ffi::ATK_TEXT_CLIP_BOTH => Self::Both,
1995             value => Self::__Unknown(value),
1996         }
1997     }
1998 }
1999 
2000 impl StaticType for TextClipType {
static_type() -> Type2001     fn static_type() -> Type {
2002         unsafe { from_glib(ffi::atk_text_clip_type_get_type()) }
2003     }
2004 }
2005 
2006 impl glib::value::ValueType for TextClipType {
2007     type Type = Self;
2008 }
2009 
2010 unsafe impl<'a> FromValue<'a> for TextClipType {
2011     type Checker = glib::value::GenericValueTypeChecker<Self>;
2012 
from_value(value: &'a glib::Value) -> Self2013     unsafe fn from_value(value: &'a glib::Value) -> Self {
2014         skip_assert_initialized!();
2015         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2016     }
2017 }
2018 
2019 impl ToValue for TextClipType {
to_value(&self) -> glib::Value2020     fn to_value(&self) -> glib::Value {
2021         let mut value = glib::Value::for_value_type::<Self>();
2022         unsafe {
2023             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2024         }
2025         value
2026     }
2027 
value_type(&self) -> glib::Type2028     fn value_type(&self) -> glib::Type {
2029         Self::static_type()
2030     }
2031 }
2032 
2033 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2034 #[non_exhaustive]
2035 #[doc(alias = "AtkTextGranularity")]
2036 pub enum TextGranularity {
2037     #[doc(alias = "ATK_TEXT_GRANULARITY_CHAR")]
2038     Char,
2039     #[doc(alias = "ATK_TEXT_GRANULARITY_WORD")]
2040     Word,
2041     #[doc(alias = "ATK_TEXT_GRANULARITY_SENTENCE")]
2042     Sentence,
2043     #[doc(alias = "ATK_TEXT_GRANULARITY_LINE")]
2044     Line,
2045     #[doc(alias = "ATK_TEXT_GRANULARITY_PARAGRAPH")]
2046     Paragraph,
2047     #[doc(hidden)]
2048     __Unknown(i32),
2049 }
2050 
2051 impl fmt::Display for TextGranularity {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2052     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2053         write!(
2054             f,
2055             "TextGranularity::{}",
2056             match *self {
2057                 Self::Char => "Char",
2058                 Self::Word => "Word",
2059                 Self::Sentence => "Sentence",
2060                 Self::Line => "Line",
2061                 Self::Paragraph => "Paragraph",
2062                 _ => "Unknown",
2063             }
2064         )
2065     }
2066 }
2067 
2068 #[doc(hidden)]
2069 impl IntoGlib for TextGranularity {
2070     type GlibType = ffi::AtkTextGranularity;
2071 
into_glib(self) -> ffi::AtkTextGranularity2072     fn into_glib(self) -> ffi::AtkTextGranularity {
2073         match self {
2074             Self::Char => ffi::ATK_TEXT_GRANULARITY_CHAR,
2075             Self::Word => ffi::ATK_TEXT_GRANULARITY_WORD,
2076             Self::Sentence => ffi::ATK_TEXT_GRANULARITY_SENTENCE,
2077             Self::Line => ffi::ATK_TEXT_GRANULARITY_LINE,
2078             Self::Paragraph => ffi::ATK_TEXT_GRANULARITY_PARAGRAPH,
2079             Self::__Unknown(value) => value,
2080         }
2081     }
2082 }
2083 
2084 #[doc(hidden)]
2085 impl FromGlib<ffi::AtkTextGranularity> for TextGranularity {
from_glib(value: ffi::AtkTextGranularity) -> Self2086     unsafe fn from_glib(value: ffi::AtkTextGranularity) -> Self {
2087         skip_assert_initialized!();
2088         match value {
2089             ffi::ATK_TEXT_GRANULARITY_CHAR => Self::Char,
2090             ffi::ATK_TEXT_GRANULARITY_WORD => Self::Word,
2091             ffi::ATK_TEXT_GRANULARITY_SENTENCE => Self::Sentence,
2092             ffi::ATK_TEXT_GRANULARITY_LINE => Self::Line,
2093             ffi::ATK_TEXT_GRANULARITY_PARAGRAPH => Self::Paragraph,
2094             value => Self::__Unknown(value),
2095         }
2096     }
2097 }
2098 
2099 impl StaticType for TextGranularity {
static_type() -> Type2100     fn static_type() -> Type {
2101         unsafe { from_glib(ffi::atk_text_granularity_get_type()) }
2102     }
2103 }
2104 
2105 impl glib::value::ValueType for TextGranularity {
2106     type Type = Self;
2107 }
2108 
2109 unsafe impl<'a> FromValue<'a> for TextGranularity {
2110     type Checker = glib::value::GenericValueTypeChecker<Self>;
2111 
from_value(value: &'a glib::Value) -> Self2112     unsafe fn from_value(value: &'a glib::Value) -> Self {
2113         skip_assert_initialized!();
2114         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2115     }
2116 }
2117 
2118 impl ToValue for TextGranularity {
to_value(&self) -> glib::Value2119     fn to_value(&self) -> glib::Value {
2120         let mut value = glib::Value::for_value_type::<Self>();
2121         unsafe {
2122             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2123         }
2124         value
2125     }
2126 
value_type(&self) -> glib::Type2127     fn value_type(&self) -> glib::Type {
2128         Self::static_type()
2129     }
2130 }
2131 
2132 #[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
2133 #[non_exhaustive]
2134 #[doc(alias = "AtkValueType")]
2135 pub enum ValueType {
2136     #[doc(alias = "ATK_VALUE_VERY_WEAK")]
2137     VeryWeak,
2138     #[doc(alias = "ATK_VALUE_WEAK")]
2139     Weak,
2140     #[doc(alias = "ATK_VALUE_ACCEPTABLE")]
2141     Acceptable,
2142     #[doc(alias = "ATK_VALUE_STRONG")]
2143     Strong,
2144     #[doc(alias = "ATK_VALUE_VERY_STRONG")]
2145     VeryStrong,
2146     #[doc(alias = "ATK_VALUE_VERY_LOW")]
2147     VeryLow,
2148     #[doc(alias = "ATK_VALUE_LOW")]
2149     Low,
2150     #[doc(alias = "ATK_VALUE_MEDIUM")]
2151     Medium,
2152     #[doc(alias = "ATK_VALUE_HIGH")]
2153     High,
2154     #[doc(alias = "ATK_VALUE_VERY_HIGH")]
2155     VeryHigh,
2156     #[doc(alias = "ATK_VALUE_VERY_BAD")]
2157     VeryBad,
2158     #[doc(alias = "ATK_VALUE_BAD")]
2159     Bad,
2160     #[doc(alias = "ATK_VALUE_GOOD")]
2161     Good,
2162     #[doc(alias = "ATK_VALUE_VERY_GOOD")]
2163     VeryGood,
2164     #[doc(alias = "ATK_VALUE_BEST")]
2165     Best,
2166     #[doc(alias = "ATK_VALUE_LAST_DEFINED")]
2167     LastDefined,
2168     #[doc(hidden)]
2169     __Unknown(i32),
2170 }
2171 
2172 impl ValueType {
2173     #[doc(alias = "atk_value_type_get_localized_name")]
2174     #[doc(alias = "get_localized_name")]
localized_name(self) -> Option<glib::GString>2175     pub fn localized_name(self) -> Option<glib::GString> {
2176         assert_initialized_main_thread!();
2177         unsafe { from_glib_none(ffi::atk_value_type_get_localized_name(self.into_glib())) }
2178     }
2179 
2180     #[doc(alias = "atk_value_type_get_name")]
2181     #[doc(alias = "get_name")]
name(self) -> Option<glib::GString>2182     pub fn name(self) -> Option<glib::GString> {
2183         assert_initialized_main_thread!();
2184         unsafe { from_glib_none(ffi::atk_value_type_get_name(self.into_glib())) }
2185     }
2186 }
2187 
2188 impl fmt::Display for ValueType {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2189     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2190         write!(
2191             f,
2192             "ValueType::{}",
2193             match *self {
2194                 Self::VeryWeak => "VeryWeak",
2195                 Self::Weak => "Weak",
2196                 Self::Acceptable => "Acceptable",
2197                 Self::Strong => "Strong",
2198                 Self::VeryStrong => "VeryStrong",
2199                 Self::VeryLow => "VeryLow",
2200                 Self::Low => "Low",
2201                 Self::Medium => "Medium",
2202                 Self::High => "High",
2203                 Self::VeryHigh => "VeryHigh",
2204                 Self::VeryBad => "VeryBad",
2205                 Self::Bad => "Bad",
2206                 Self::Good => "Good",
2207                 Self::VeryGood => "VeryGood",
2208                 Self::Best => "Best",
2209                 Self::LastDefined => "LastDefined",
2210                 _ => "Unknown",
2211             }
2212         )
2213     }
2214 }
2215 
2216 #[doc(hidden)]
2217 impl IntoGlib for ValueType {
2218     type GlibType = ffi::AtkValueType;
2219 
into_glib(self) -> ffi::AtkValueType2220     fn into_glib(self) -> ffi::AtkValueType {
2221         match self {
2222             Self::VeryWeak => ffi::ATK_VALUE_VERY_WEAK,
2223             Self::Weak => ffi::ATK_VALUE_WEAK,
2224             Self::Acceptable => ffi::ATK_VALUE_ACCEPTABLE,
2225             Self::Strong => ffi::ATK_VALUE_STRONG,
2226             Self::VeryStrong => ffi::ATK_VALUE_VERY_STRONG,
2227             Self::VeryLow => ffi::ATK_VALUE_VERY_LOW,
2228             Self::Low => ffi::ATK_VALUE_LOW,
2229             Self::Medium => ffi::ATK_VALUE_MEDIUM,
2230             Self::High => ffi::ATK_VALUE_HIGH,
2231             Self::VeryHigh => ffi::ATK_VALUE_VERY_HIGH,
2232             Self::VeryBad => ffi::ATK_VALUE_VERY_BAD,
2233             Self::Bad => ffi::ATK_VALUE_BAD,
2234             Self::Good => ffi::ATK_VALUE_GOOD,
2235             Self::VeryGood => ffi::ATK_VALUE_VERY_GOOD,
2236             Self::Best => ffi::ATK_VALUE_BEST,
2237             Self::LastDefined => ffi::ATK_VALUE_LAST_DEFINED,
2238             Self::__Unknown(value) => value,
2239         }
2240     }
2241 }
2242 
2243 #[doc(hidden)]
2244 impl FromGlib<ffi::AtkValueType> for ValueType {
from_glib(value: ffi::AtkValueType) -> Self2245     unsafe fn from_glib(value: ffi::AtkValueType) -> Self {
2246         skip_assert_initialized!();
2247         match value {
2248             ffi::ATK_VALUE_VERY_WEAK => Self::VeryWeak,
2249             ffi::ATK_VALUE_WEAK => Self::Weak,
2250             ffi::ATK_VALUE_ACCEPTABLE => Self::Acceptable,
2251             ffi::ATK_VALUE_STRONG => Self::Strong,
2252             ffi::ATK_VALUE_VERY_STRONG => Self::VeryStrong,
2253             ffi::ATK_VALUE_VERY_LOW => Self::VeryLow,
2254             ffi::ATK_VALUE_LOW => Self::Low,
2255             ffi::ATK_VALUE_MEDIUM => Self::Medium,
2256             ffi::ATK_VALUE_HIGH => Self::High,
2257             ffi::ATK_VALUE_VERY_HIGH => Self::VeryHigh,
2258             ffi::ATK_VALUE_VERY_BAD => Self::VeryBad,
2259             ffi::ATK_VALUE_BAD => Self::Bad,
2260             ffi::ATK_VALUE_GOOD => Self::Good,
2261             ffi::ATK_VALUE_VERY_GOOD => Self::VeryGood,
2262             ffi::ATK_VALUE_BEST => Self::Best,
2263             ffi::ATK_VALUE_LAST_DEFINED => Self::LastDefined,
2264             value => Self::__Unknown(value),
2265         }
2266     }
2267 }
2268 
2269 impl StaticType for ValueType {
static_type() -> Type2270     fn static_type() -> Type {
2271         unsafe { from_glib(ffi::atk_value_type_get_type()) }
2272     }
2273 }
2274 
2275 impl glib::value::ValueType for ValueType {
2276     type Type = Self;
2277 }
2278 
2279 unsafe impl<'a> FromValue<'a> for ValueType {
2280     type Checker = glib::value::GenericValueTypeChecker<Self>;
2281 
from_value(value: &'a glib::Value) -> Self2282     unsafe fn from_value(value: &'a glib::Value) -> Self {
2283         skip_assert_initialized!();
2284         from_glib(glib::gobject_ffi::g_value_get_enum(value.to_glib_none().0))
2285     }
2286 }
2287 
2288 impl ToValue for ValueType {
to_value(&self) -> glib::Value2289     fn to_value(&self) -> glib::Value {
2290         let mut value = glib::Value::for_value_type::<Self>();
2291         unsafe {
2292             glib::gobject_ffi::g_value_set_enum(value.to_glib_none_mut().0, self.into_glib());
2293         }
2294         value
2295     }
2296 
value_type(&self) -> glib::Type2297     fn value_type(&self) -> glib::Type {
2298         Self::static_type()
2299     }
2300 }
2301