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 extern crate atk_sys;
6 extern crate shell_words;
7 extern crate tempfile;
8 use atk_sys::*;
9 use std::env;
10 use std::error::Error;
11 use std::mem::{align_of, size_of};
12 use std::path::Path;
13 use std::process::Command;
14 use std::str;
15 use tempfile::Builder;
16
17 static PACKAGES: &[&str] = &["atk"];
18
19 #[derive(Clone, Debug)]
20 struct Compiler {
21 pub args: Vec<String>,
22 }
23
24 impl Compiler {
new() -> Result<Compiler, Box<dyn Error>>25 pub fn new() -> Result<Compiler, Box<dyn Error>> {
26 let mut args = get_var("CC", "cc")?;
27 args.push("-Wno-deprecated-declarations".to_owned());
28 // For %z support in printf when using MinGW.
29 args.push("-D__USE_MINGW_ANSI_STDIO".to_owned());
30 args.extend(get_var("CFLAGS", "")?);
31 args.extend(get_var("CPPFLAGS", "")?);
32 args.extend(pkg_config_cflags(PACKAGES)?);
33 Ok(Compiler { args })
34 }
35
define<'a, V: Into<Option<&'a str>>>(&mut self, var: &str, val: V)36 pub fn define<'a, V: Into<Option<&'a str>>>(&mut self, var: &str, val: V) {
37 let arg = match val.into() {
38 None => format!("-D{}", var),
39 Some(val) => format!("-D{}={}", var, val),
40 };
41 self.args.push(arg);
42 }
43
compile(&self, src: &Path, out: &Path) -> Result<(), Box<dyn Error>>44 pub fn compile(&self, src: &Path, out: &Path) -> Result<(), Box<dyn Error>> {
45 let mut cmd = self.to_command();
46 cmd.arg(src);
47 cmd.arg("-o");
48 cmd.arg(out);
49 let status = cmd.spawn()?.wait()?;
50 if !status.success() {
51 return Err(format!("compilation command {:?} failed, {}", &cmd, status).into());
52 }
53 Ok(())
54 }
55
to_command(&self) -> Command56 fn to_command(&self) -> Command {
57 let mut cmd = Command::new(&self.args[0]);
58 cmd.args(&self.args[1..]);
59 cmd
60 }
61 }
62
get_var(name: &str, default: &str) -> Result<Vec<String>, Box<dyn Error>>63 fn get_var(name: &str, default: &str) -> Result<Vec<String>, Box<dyn Error>> {
64 match env::var(name) {
65 Ok(value) => Ok(shell_words::split(&value)?),
66 Err(env::VarError::NotPresent) => Ok(shell_words::split(default)?),
67 Err(err) => Err(format!("{} {}", name, err).into()),
68 }
69 }
70
pkg_config_cflags(packages: &[&str]) -> Result<Vec<String>, Box<dyn Error>>71 fn pkg_config_cflags(packages: &[&str]) -> Result<Vec<String>, Box<dyn Error>> {
72 if packages.is_empty() {
73 return Ok(Vec::new());
74 }
75 let mut cmd = Command::new("pkg-config");
76 cmd.arg("--cflags");
77 cmd.args(packages);
78 let out = cmd.output()?;
79 if !out.status.success() {
80 return Err(format!("command {:?} returned {}", &cmd, out.status).into());
81 }
82 let stdout = str::from_utf8(&out.stdout)?;
83 Ok(shell_words::split(stdout.trim())?)
84 }
85
86 #[derive(Copy, Clone, Debug, Eq, PartialEq)]
87 struct Layout {
88 size: usize,
89 alignment: usize,
90 }
91
92 #[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
93 struct Results {
94 /// Number of successfully completed tests.
95 passed: usize,
96 /// Total number of failed tests (including those that failed to compile).
97 failed: usize,
98 /// Number of tests that failed to compile.
99 failed_to_compile: usize,
100 }
101
102 impl Results {
record_passed(&mut self)103 fn record_passed(&mut self) {
104 self.passed += 1;
105 }
record_failed(&mut self)106 fn record_failed(&mut self) {
107 self.failed += 1;
108 }
record_failed_to_compile(&mut self)109 fn record_failed_to_compile(&mut self) {
110 self.failed += 1;
111 self.failed_to_compile += 1;
112 }
summary(&self) -> String113 fn summary(&self) -> String {
114 format!(
115 "{} passed; {} failed (compilation errors: {})",
116 self.passed, self.failed, self.failed_to_compile
117 )
118 }
expect_total_success(&self)119 fn expect_total_success(&self) {
120 if self.failed == 0 {
121 println!("OK: {}", self.summary());
122 } else {
123 panic!("FAILED: {}", self.summary());
124 };
125 }
126 }
127
128 #[test]
cross_validate_constants_with_c()129 fn cross_validate_constants_with_c() {
130 let tmpdir = Builder::new()
131 .prefix("abi")
132 .tempdir()
133 .expect("temporary directory");
134 let cc = Compiler::new().expect("configured compiler");
135
136 assert_eq!(
137 "1",
138 get_c_value(tmpdir.path(), &cc, "1").expect("C constant"),
139 "failed to obtain correct constant value for 1"
140 );
141
142 let mut results: Results = Default::default();
143 for (i, &(name, rust_value)) in RUST_CONSTANTS.iter().enumerate() {
144 match get_c_value(tmpdir.path(), &cc, name) {
145 Err(e) => {
146 results.record_failed_to_compile();
147 eprintln!("{}", e);
148 }
149 Ok(ref c_value) => {
150 if rust_value == c_value {
151 results.record_passed();
152 } else {
153 results.record_failed();
154 eprintln!(
155 "Constant value mismatch for {}\nRust: {:?}\nC: {:?}",
156 name, rust_value, c_value
157 );
158 }
159 }
160 };
161 if (i + 1) % 25 == 0 {
162 println!("constants ... {}", results.summary());
163 }
164 }
165 results.expect_total_success();
166 }
167
168 #[test]
cross_validate_layout_with_c()169 fn cross_validate_layout_with_c() {
170 let tmpdir = Builder::new()
171 .prefix("abi")
172 .tempdir()
173 .expect("temporary directory");
174 let cc = Compiler::new().expect("configured compiler");
175
176 assert_eq!(
177 Layout {
178 size: 1,
179 alignment: 1
180 },
181 get_c_layout(tmpdir.path(), &cc, "char").expect("C layout"),
182 "failed to obtain correct layout for char type"
183 );
184
185 let mut results: Results = Default::default();
186 for (i, &(name, rust_layout)) in RUST_LAYOUTS.iter().enumerate() {
187 match get_c_layout(tmpdir.path(), &cc, name) {
188 Err(e) => {
189 results.record_failed_to_compile();
190 eprintln!("{}", e);
191 }
192 Ok(c_layout) => {
193 if rust_layout == c_layout {
194 results.record_passed();
195 } else {
196 results.record_failed();
197 eprintln!(
198 "Layout mismatch for {}\nRust: {:?}\nC: {:?}",
199 name, rust_layout, &c_layout
200 );
201 }
202 }
203 };
204 if (i + 1) % 25 == 0 {
205 println!("layout ... {}", results.summary());
206 }
207 }
208 results.expect_total_success();
209 }
210
get_c_layout(dir: &Path, cc: &Compiler, name: &str) -> Result<Layout, Box<dyn Error>>211 fn get_c_layout(dir: &Path, cc: &Compiler, name: &str) -> Result<Layout, Box<dyn Error>> {
212 let exe = dir.join("layout");
213 let mut cc = cc.clone();
214 cc.define("ABI_TYPE_NAME", name);
215 cc.compile(Path::new("tests/layout.c"), &exe)?;
216
217 let mut abi_cmd = Command::new(exe);
218 let output = abi_cmd.output()?;
219 if !output.status.success() {
220 return Err(format!("command {:?} failed, {:?}", &abi_cmd, &output).into());
221 }
222
223 let stdout = str::from_utf8(&output.stdout)?;
224 let mut words = stdout.trim().split_whitespace();
225 let size = words.next().unwrap().parse().unwrap();
226 let alignment = words.next().unwrap().parse().unwrap();
227 Ok(Layout { size, alignment })
228 }
229
get_c_value(dir: &Path, cc: &Compiler, name: &str) -> Result<String, Box<dyn Error>>230 fn get_c_value(dir: &Path, cc: &Compiler, name: &str) -> Result<String, Box<dyn Error>> {
231 let exe = dir.join("constant");
232 let mut cc = cc.clone();
233 cc.define("ABI_CONSTANT_NAME", name);
234 cc.compile(Path::new("tests/constant.c"), &exe)?;
235
236 let mut abi_cmd = Command::new(exe);
237 let output = abi_cmd.output()?;
238 if !output.status.success() {
239 return Err(format!("command {:?} failed, {:?}", &abi_cmd, &output).into());
240 }
241
242 let output = str::from_utf8(&output.stdout)?.trim();
243 if !output.starts_with("###gir test###") || !output.ends_with("###gir test###") {
244 return Err(format!(
245 "command {:?} return invalid output, {:?}",
246 &abi_cmd, &output
247 )
248 .into());
249 }
250
251 Ok(String::from(&output[14..(output.len() - 14)]))
252 }
253
254 const RUST_LAYOUTS: &[(&str, Layout)] = &[
255 (
256 "AtkActionIface",
257 Layout {
258 size: size_of::<AtkActionIface>(),
259 alignment: align_of::<AtkActionIface>(),
260 },
261 ),
262 (
263 "AtkAttribute",
264 Layout {
265 size: size_of::<AtkAttribute>(),
266 alignment: align_of::<AtkAttribute>(),
267 },
268 ),
269 (
270 "AtkAttributeSet",
271 Layout {
272 size: size_of::<AtkAttributeSet>(),
273 alignment: align_of::<AtkAttributeSet>(),
274 },
275 ),
276 (
277 "AtkComponentIface",
278 Layout {
279 size: size_of::<AtkComponentIface>(),
280 alignment: align_of::<AtkComponentIface>(),
281 },
282 ),
283 (
284 "AtkCoordType",
285 Layout {
286 size: size_of::<AtkCoordType>(),
287 alignment: align_of::<AtkCoordType>(),
288 },
289 ),
290 (
291 "AtkDocumentIface",
292 Layout {
293 size: size_of::<AtkDocumentIface>(),
294 alignment: align_of::<AtkDocumentIface>(),
295 },
296 ),
297 (
298 "AtkEditableTextIface",
299 Layout {
300 size: size_of::<AtkEditableTextIface>(),
301 alignment: align_of::<AtkEditableTextIface>(),
302 },
303 ),
304 (
305 "AtkGObjectAccessible",
306 Layout {
307 size: size_of::<AtkGObjectAccessible>(),
308 alignment: align_of::<AtkGObjectAccessible>(),
309 },
310 ),
311 (
312 "AtkGObjectAccessibleClass",
313 Layout {
314 size: size_of::<AtkGObjectAccessibleClass>(),
315 alignment: align_of::<AtkGObjectAccessibleClass>(),
316 },
317 ),
318 (
319 "AtkHyperlink",
320 Layout {
321 size: size_of::<AtkHyperlink>(),
322 alignment: align_of::<AtkHyperlink>(),
323 },
324 ),
325 (
326 "AtkHyperlinkClass",
327 Layout {
328 size: size_of::<AtkHyperlinkClass>(),
329 alignment: align_of::<AtkHyperlinkClass>(),
330 },
331 ),
332 (
333 "AtkHyperlinkImplIface",
334 Layout {
335 size: size_of::<AtkHyperlinkImplIface>(),
336 alignment: align_of::<AtkHyperlinkImplIface>(),
337 },
338 ),
339 (
340 "AtkHyperlinkStateFlags",
341 Layout {
342 size: size_of::<AtkHyperlinkStateFlags>(),
343 alignment: align_of::<AtkHyperlinkStateFlags>(),
344 },
345 ),
346 (
347 "AtkHypertextIface",
348 Layout {
349 size: size_of::<AtkHypertextIface>(),
350 alignment: align_of::<AtkHypertextIface>(),
351 },
352 ),
353 (
354 "AtkImageIface",
355 Layout {
356 size: size_of::<AtkImageIface>(),
357 alignment: align_of::<AtkImageIface>(),
358 },
359 ),
360 (
361 "AtkKeyEventStruct",
362 Layout {
363 size: size_of::<AtkKeyEventStruct>(),
364 alignment: align_of::<AtkKeyEventStruct>(),
365 },
366 ),
367 (
368 "AtkKeyEventType",
369 Layout {
370 size: size_of::<AtkKeyEventType>(),
371 alignment: align_of::<AtkKeyEventType>(),
372 },
373 ),
374 (
375 "AtkLayer",
376 Layout {
377 size: size_of::<AtkLayer>(),
378 alignment: align_of::<AtkLayer>(),
379 },
380 ),
381 (
382 "AtkMisc",
383 Layout {
384 size: size_of::<AtkMisc>(),
385 alignment: align_of::<AtkMisc>(),
386 },
387 ),
388 (
389 "AtkMiscClass",
390 Layout {
391 size: size_of::<AtkMiscClass>(),
392 alignment: align_of::<AtkMiscClass>(),
393 },
394 ),
395 (
396 "AtkNoOpObject",
397 Layout {
398 size: size_of::<AtkNoOpObject>(),
399 alignment: align_of::<AtkNoOpObject>(),
400 },
401 ),
402 (
403 "AtkNoOpObjectClass",
404 Layout {
405 size: size_of::<AtkNoOpObjectClass>(),
406 alignment: align_of::<AtkNoOpObjectClass>(),
407 },
408 ),
409 (
410 "AtkNoOpObjectFactory",
411 Layout {
412 size: size_of::<AtkNoOpObjectFactory>(),
413 alignment: align_of::<AtkNoOpObjectFactory>(),
414 },
415 ),
416 (
417 "AtkNoOpObjectFactoryClass",
418 Layout {
419 size: size_of::<AtkNoOpObjectFactoryClass>(),
420 alignment: align_of::<AtkNoOpObjectFactoryClass>(),
421 },
422 ),
423 (
424 "AtkObject",
425 Layout {
426 size: size_of::<AtkObject>(),
427 alignment: align_of::<AtkObject>(),
428 },
429 ),
430 (
431 "AtkObjectClass",
432 Layout {
433 size: size_of::<AtkObjectClass>(),
434 alignment: align_of::<AtkObjectClass>(),
435 },
436 ),
437 (
438 "AtkObjectFactory",
439 Layout {
440 size: size_of::<AtkObjectFactory>(),
441 alignment: align_of::<AtkObjectFactory>(),
442 },
443 ),
444 (
445 "AtkObjectFactoryClass",
446 Layout {
447 size: size_of::<AtkObjectFactoryClass>(),
448 alignment: align_of::<AtkObjectFactoryClass>(),
449 },
450 ),
451 (
452 "AtkPlug",
453 Layout {
454 size: size_of::<AtkPlug>(),
455 alignment: align_of::<AtkPlug>(),
456 },
457 ),
458 (
459 "AtkPlugClass",
460 Layout {
461 size: size_of::<AtkPlugClass>(),
462 alignment: align_of::<AtkPlugClass>(),
463 },
464 ),
465 (
466 "AtkPropertyValues",
467 Layout {
468 size: size_of::<AtkPropertyValues>(),
469 alignment: align_of::<AtkPropertyValues>(),
470 },
471 ),
472 (
473 "AtkRectangle",
474 Layout {
475 size: size_of::<AtkRectangle>(),
476 alignment: align_of::<AtkRectangle>(),
477 },
478 ),
479 (
480 "AtkRegistry",
481 Layout {
482 size: size_of::<AtkRegistry>(),
483 alignment: align_of::<AtkRegistry>(),
484 },
485 ),
486 (
487 "AtkRegistryClass",
488 Layout {
489 size: size_of::<AtkRegistryClass>(),
490 alignment: align_of::<AtkRegistryClass>(),
491 },
492 ),
493 (
494 "AtkRelation",
495 Layout {
496 size: size_of::<AtkRelation>(),
497 alignment: align_of::<AtkRelation>(),
498 },
499 ),
500 (
501 "AtkRelationClass",
502 Layout {
503 size: size_of::<AtkRelationClass>(),
504 alignment: align_of::<AtkRelationClass>(),
505 },
506 ),
507 (
508 "AtkRelationSet",
509 Layout {
510 size: size_of::<AtkRelationSet>(),
511 alignment: align_of::<AtkRelationSet>(),
512 },
513 ),
514 (
515 "AtkRelationSetClass",
516 Layout {
517 size: size_of::<AtkRelationSetClass>(),
518 alignment: align_of::<AtkRelationSetClass>(),
519 },
520 ),
521 (
522 "AtkRelationType",
523 Layout {
524 size: size_of::<AtkRelationType>(),
525 alignment: align_of::<AtkRelationType>(),
526 },
527 ),
528 (
529 "AtkRole",
530 Layout {
531 size: size_of::<AtkRole>(),
532 alignment: align_of::<AtkRole>(),
533 },
534 ),
535 (
536 "AtkScrollType",
537 Layout {
538 size: size_of::<AtkScrollType>(),
539 alignment: align_of::<AtkScrollType>(),
540 },
541 ),
542 (
543 "AtkSelectionIface",
544 Layout {
545 size: size_of::<AtkSelectionIface>(),
546 alignment: align_of::<AtkSelectionIface>(),
547 },
548 ),
549 (
550 "AtkSocket",
551 Layout {
552 size: size_of::<AtkSocket>(),
553 alignment: align_of::<AtkSocket>(),
554 },
555 ),
556 (
557 "AtkSocketClass",
558 Layout {
559 size: size_of::<AtkSocketClass>(),
560 alignment: align_of::<AtkSocketClass>(),
561 },
562 ),
563 (
564 "AtkState",
565 Layout {
566 size: size_of::<AtkState>(),
567 alignment: align_of::<AtkState>(),
568 },
569 ),
570 (
571 "AtkStateSet",
572 Layout {
573 size: size_of::<AtkStateSet>(),
574 alignment: align_of::<AtkStateSet>(),
575 },
576 ),
577 (
578 "AtkStateSetClass",
579 Layout {
580 size: size_of::<AtkStateSetClass>(),
581 alignment: align_of::<AtkStateSetClass>(),
582 },
583 ),
584 (
585 "AtkStateType",
586 Layout {
587 size: size_of::<AtkStateType>(),
588 alignment: align_of::<AtkStateType>(),
589 },
590 ),
591 (
592 "AtkStreamableContentIface",
593 Layout {
594 size: size_of::<AtkStreamableContentIface>(),
595 alignment: align_of::<AtkStreamableContentIface>(),
596 },
597 ),
598 (
599 "AtkTableCellIface",
600 Layout {
601 size: size_of::<AtkTableCellIface>(),
602 alignment: align_of::<AtkTableCellIface>(),
603 },
604 ),
605 (
606 "AtkTableIface",
607 Layout {
608 size: size_of::<AtkTableIface>(),
609 alignment: align_of::<AtkTableIface>(),
610 },
611 ),
612 (
613 "AtkTextAttribute",
614 Layout {
615 size: size_of::<AtkTextAttribute>(),
616 alignment: align_of::<AtkTextAttribute>(),
617 },
618 ),
619 (
620 "AtkTextBoundary",
621 Layout {
622 size: size_of::<AtkTextBoundary>(),
623 alignment: align_of::<AtkTextBoundary>(),
624 },
625 ),
626 (
627 "AtkTextClipType",
628 Layout {
629 size: size_of::<AtkTextClipType>(),
630 alignment: align_of::<AtkTextClipType>(),
631 },
632 ),
633 (
634 "AtkTextGranularity",
635 Layout {
636 size: size_of::<AtkTextGranularity>(),
637 alignment: align_of::<AtkTextGranularity>(),
638 },
639 ),
640 (
641 "AtkTextIface",
642 Layout {
643 size: size_of::<AtkTextIface>(),
644 alignment: align_of::<AtkTextIface>(),
645 },
646 ),
647 (
648 "AtkTextRange",
649 Layout {
650 size: size_of::<AtkTextRange>(),
651 alignment: align_of::<AtkTextRange>(),
652 },
653 ),
654 (
655 "AtkTextRectangle",
656 Layout {
657 size: size_of::<AtkTextRectangle>(),
658 alignment: align_of::<AtkTextRectangle>(),
659 },
660 ),
661 (
662 "AtkUtil",
663 Layout {
664 size: size_of::<AtkUtil>(),
665 alignment: align_of::<AtkUtil>(),
666 },
667 ),
668 (
669 "AtkUtilClass",
670 Layout {
671 size: size_of::<AtkUtilClass>(),
672 alignment: align_of::<AtkUtilClass>(),
673 },
674 ),
675 (
676 "AtkValueIface",
677 Layout {
678 size: size_of::<AtkValueIface>(),
679 alignment: align_of::<AtkValueIface>(),
680 },
681 ),
682 (
683 "AtkValueType",
684 Layout {
685 size: size_of::<AtkValueType>(),
686 alignment: align_of::<AtkValueType>(),
687 },
688 ),
689 (
690 "AtkWindowIface",
691 Layout {
692 size: size_of::<AtkWindowIface>(),
693 alignment: align_of::<AtkWindowIface>(),
694 },
695 ),
696 ];
697
698 const RUST_CONSTANTS: &[(&str, &str)] = &[
699 ("(guint) ATK_HYPERLINK_IS_INLINE", "1"),
700 ("(gint) ATK_KEY_EVENT_LAST_DEFINED", "2"),
701 ("(gint) ATK_KEY_EVENT_PRESS", "0"),
702 ("(gint) ATK_KEY_EVENT_RELEASE", "1"),
703 ("(gint) ATK_LAYER_BACKGROUND", "1"),
704 ("(gint) ATK_LAYER_CANVAS", "2"),
705 ("(gint) ATK_LAYER_INVALID", "0"),
706 ("(gint) ATK_LAYER_MDI", "4"),
707 ("(gint) ATK_LAYER_OVERLAY", "6"),
708 ("(gint) ATK_LAYER_POPUP", "5"),
709 ("(gint) ATK_LAYER_WIDGET", "3"),
710 ("(gint) ATK_LAYER_WINDOW", "7"),
711 ("(gint) ATK_RELATION_CONTROLLED_BY", "1"),
712 ("(gint) ATK_RELATION_CONTROLLER_FOR", "2"),
713 ("(gint) ATK_RELATION_DESCRIBED_BY", "14"),
714 ("(gint) ATK_RELATION_DESCRIPTION_FOR", "15"),
715 ("(gint) ATK_RELATION_DETAILS", "17"),
716 ("(gint) ATK_RELATION_DETAILS_FOR", "18"),
717 ("(gint) ATK_RELATION_EMBEDDED_BY", "11"),
718 ("(gint) ATK_RELATION_EMBEDS", "10"),
719 ("(gint) ATK_RELATION_ERROR_FOR", "20"),
720 ("(gint) ATK_RELATION_ERROR_MESSAGE", "19"),
721 ("(gint) ATK_RELATION_FLOWS_FROM", "8"),
722 ("(gint) ATK_RELATION_FLOWS_TO", "7"),
723 ("(gint) ATK_RELATION_LABELLED_BY", "4"),
724 ("(gint) ATK_RELATION_LABEL_FOR", "3"),
725 ("(gint) ATK_RELATION_LAST_DEFINED", "21"),
726 ("(gint) ATK_RELATION_MEMBER_OF", "5"),
727 ("(gint) ATK_RELATION_NODE_CHILD_OF", "6"),
728 ("(gint) ATK_RELATION_NODE_PARENT_OF", "16"),
729 ("(gint) ATK_RELATION_NULL", "0"),
730 ("(gint) ATK_RELATION_PARENT_WINDOW_OF", "13"),
731 ("(gint) ATK_RELATION_POPUP_FOR", "12"),
732 ("(gint) ATK_RELATION_SUBWINDOW_OF", "9"),
733 ("(gint) ATK_ROLE_ACCEL_LABEL", "1"),
734 ("(gint) ATK_ROLE_ALERT", "2"),
735 ("(gint) ATK_ROLE_ANIMATION", "3"),
736 ("(gint) ATK_ROLE_APPLICATION", "73"),
737 ("(gint) ATK_ROLE_ARROW", "4"),
738 ("(gint) ATK_ROLE_ARTICLE", "107"),
739 ("(gint) ATK_ROLE_AUDIO", "104"),
740 ("(gint) ATK_ROLE_AUTOCOMPLETE", "74"),
741 ("(gint) ATK_ROLE_BLOCK_QUOTE", "103"),
742 ("(gint) ATK_ROLE_CALENDAR", "5"),
743 ("(gint) ATK_ROLE_CANVAS", "6"),
744 ("(gint) ATK_ROLE_CAPTION", "79"),
745 ("(gint) ATK_ROLE_CHART", "78"),
746 ("(gint) ATK_ROLE_CHECK_BOX", "7"),
747 ("(gint) ATK_ROLE_CHECK_MENU_ITEM", "8"),
748 ("(gint) ATK_ROLE_COLOR_CHOOSER", "9"),
749 ("(gint) ATK_ROLE_COLUMN_HEADER", "10"),
750 ("(gint) ATK_ROLE_COMBO_BOX", "11"),
751 ("(gint) ATK_ROLE_COMMENT", "95"),
752 ("(gint) ATK_ROLE_CONTENT_DELETION", "123"),
753 ("(gint) ATK_ROLE_CONTENT_INSERTION", "124"),
754 ("(gint) ATK_ROLE_DATE_EDITOR", "12"),
755 ("(gint) ATK_ROLE_DEFINITION", "106"),
756 ("(gint) ATK_ROLE_DESCRIPTION_LIST", "114"),
757 ("(gint) ATK_ROLE_DESCRIPTION_TERM", "115"),
758 ("(gint) ATK_ROLE_DESCRIPTION_VALUE", "116"),
759 ("(gint) ATK_ROLE_DESKTOP_FRAME", "14"),
760 ("(gint) ATK_ROLE_DESKTOP_ICON", "13"),
761 ("(gint) ATK_ROLE_DIAL", "15"),
762 ("(gint) ATK_ROLE_DIALOG", "16"),
763 ("(gint) ATK_ROLE_DIRECTORY_PANE", "17"),
764 ("(gint) ATK_ROLE_DOCUMENT_EMAIL", "94"),
765 ("(gint) ATK_ROLE_DOCUMENT_FRAME", "80"),
766 ("(gint) ATK_ROLE_DOCUMENT_PRESENTATION", "91"),
767 ("(gint) ATK_ROLE_DOCUMENT_SPREADSHEET", "90"),
768 ("(gint) ATK_ROLE_DOCUMENT_TEXT", "92"),
769 ("(gint) ATK_ROLE_DOCUMENT_WEB", "93"),
770 ("(gint) ATK_ROLE_DRAWING_AREA", "18"),
771 ("(gint) ATK_ROLE_EDITBAR", "75"),
772 ("(gint) ATK_ROLE_EMBEDDED", "76"),
773 ("(gint) ATK_ROLE_ENTRY", "77"),
774 ("(gint) ATK_ROLE_FILE_CHOOSER", "19"),
775 ("(gint) ATK_ROLE_FILLER", "20"),
776 ("(gint) ATK_ROLE_FONT_CHOOSER", "21"),
777 ("(gint) ATK_ROLE_FOOTER", "70"),
778 ("(gint) ATK_ROLE_FOOTNOTE", "122"),
779 ("(gint) ATK_ROLE_FORM", "85"),
780 ("(gint) ATK_ROLE_FRAME", "22"),
781 ("(gint) ATK_ROLE_GLASS_PANE", "23"),
782 ("(gint) ATK_ROLE_GROUPING", "97"),
783 ("(gint) ATK_ROLE_HEADER", "69"),
784 ("(gint) ATK_ROLE_HEADING", "81"),
785 ("(gint) ATK_ROLE_HTML_CONTAINER", "24"),
786 ("(gint) ATK_ROLE_ICON", "25"),
787 ("(gint) ATK_ROLE_IMAGE", "26"),
788 ("(gint) ATK_ROLE_IMAGE_MAP", "98"),
789 ("(gint) ATK_ROLE_INFO_BAR", "100"),
790 ("(gint) ATK_ROLE_INPUT_METHOD_WINDOW", "87"),
791 ("(gint) ATK_ROLE_INTERNAL_FRAME", "27"),
792 ("(gint) ATK_ROLE_INVALID", "0"),
793 ("(gint) ATK_ROLE_LABEL", "28"),
794 ("(gint) ATK_ROLE_LANDMARK", "108"),
795 ("(gint) ATK_ROLE_LAST_DEFINED", "125"),
796 ("(gint) ATK_ROLE_LAYERED_PANE", "29"),
797 ("(gint) ATK_ROLE_LEVEL_BAR", "101"),
798 ("(gint) ATK_ROLE_LINK", "86"),
799 ("(gint) ATK_ROLE_LIST", "30"),
800 ("(gint) ATK_ROLE_LIST_BOX", "96"),
801 ("(gint) ATK_ROLE_LIST_ITEM", "31"),
802 ("(gint) ATK_ROLE_LOG", "109"),
803 ("(gint) ATK_ROLE_MARQUEE", "110"),
804 ("(gint) ATK_ROLE_MATH", "111"),
805 ("(gint) ATK_ROLE_MATH_FRACTION", "118"),
806 ("(gint) ATK_ROLE_MATH_ROOT", "119"),
807 ("(gint) ATK_ROLE_MENU", "32"),
808 ("(gint) ATK_ROLE_MENU_BAR", "33"),
809 ("(gint) ATK_ROLE_MENU_ITEM", "34"),
810 ("(gint) ATK_ROLE_NOTIFICATION", "99"),
811 ("(gint) ATK_ROLE_OPTION_PANE", "35"),
812 ("(gint) ATK_ROLE_PAGE", "82"),
813 ("(gint) ATK_ROLE_PAGE_TAB", "36"),
814 ("(gint) ATK_ROLE_PAGE_TAB_LIST", "37"),
815 ("(gint) ATK_ROLE_PANEL", "38"),
816 ("(gint) ATK_ROLE_PARAGRAPH", "71"),
817 ("(gint) ATK_ROLE_PASSWORD_TEXT", "39"),
818 ("(gint) ATK_ROLE_POPUP_MENU", "40"),
819 ("(gint) ATK_ROLE_PROGRESS_BAR", "41"),
820 ("(gint) ATK_ROLE_PUSH_BUTTON", "42"),
821 ("(gint) ATK_ROLE_RADIO_BUTTON", "43"),
822 ("(gint) ATK_ROLE_RADIO_MENU_ITEM", "44"),
823 ("(gint) ATK_ROLE_RATING", "112"),
824 ("(gint) ATK_ROLE_REDUNDANT_OBJECT", "84"),
825 ("(gint) ATK_ROLE_ROOT_PANE", "45"),
826 ("(gint) ATK_ROLE_ROW_HEADER", "46"),
827 ("(gint) ATK_ROLE_RULER", "72"),
828 ("(gint) ATK_ROLE_SCROLL_BAR", "47"),
829 ("(gint) ATK_ROLE_SCROLL_PANE", "48"),
830 ("(gint) ATK_ROLE_SECTION", "83"),
831 ("(gint) ATK_ROLE_SEPARATOR", "49"),
832 ("(gint) ATK_ROLE_SLIDER", "50"),
833 ("(gint) ATK_ROLE_SPIN_BUTTON", "52"),
834 ("(gint) ATK_ROLE_SPLIT_PANE", "51"),
835 ("(gint) ATK_ROLE_STATIC", "117"),
836 ("(gint) ATK_ROLE_STATUSBAR", "53"),
837 ("(gint) ATK_ROLE_SUBSCRIPT", "120"),
838 ("(gint) ATK_ROLE_SUPERSCRIPT", "121"),
839 ("(gint) ATK_ROLE_TABLE", "54"),
840 ("(gint) ATK_ROLE_TABLE_CELL", "55"),
841 ("(gint) ATK_ROLE_TABLE_COLUMN_HEADER", "56"),
842 ("(gint) ATK_ROLE_TABLE_ROW", "88"),
843 ("(gint) ATK_ROLE_TABLE_ROW_HEADER", "57"),
844 ("(gint) ATK_ROLE_TEAR_OFF_MENU_ITEM", "58"),
845 ("(gint) ATK_ROLE_TERMINAL", "59"),
846 ("(gint) ATK_ROLE_TEXT", "60"),
847 ("(gint) ATK_ROLE_TIMER", "113"),
848 ("(gint) ATK_ROLE_TITLE_BAR", "102"),
849 ("(gint) ATK_ROLE_TOGGLE_BUTTON", "61"),
850 ("(gint) ATK_ROLE_TOOL_BAR", "62"),
851 ("(gint) ATK_ROLE_TOOL_TIP", "63"),
852 ("(gint) ATK_ROLE_TREE", "64"),
853 ("(gint) ATK_ROLE_TREE_ITEM", "89"),
854 ("(gint) ATK_ROLE_TREE_TABLE", "65"),
855 ("(gint) ATK_ROLE_UNKNOWN", "66"),
856 ("(gint) ATK_ROLE_VIDEO", "105"),
857 ("(gint) ATK_ROLE_VIEWPORT", "67"),
858 ("(gint) ATK_ROLE_WINDOW", "68"),
859 ("(gint) ATK_SCROLL_ANYWHERE", "6"),
860 ("(gint) ATK_SCROLL_BOTTOM_EDGE", "3"),
861 ("(gint) ATK_SCROLL_BOTTOM_RIGHT", "1"),
862 ("(gint) ATK_SCROLL_LEFT_EDGE", "4"),
863 ("(gint) ATK_SCROLL_RIGHT_EDGE", "5"),
864 ("(gint) ATK_SCROLL_TOP_EDGE", "2"),
865 ("(gint) ATK_SCROLL_TOP_LEFT", "0"),
866 ("(gint) ATK_STATE_ACTIVE", "1"),
867 ("(gint) ATK_STATE_ANIMATED", "37"),
868 ("(gint) ATK_STATE_ARMED", "2"),
869 ("(gint) ATK_STATE_BUSY", "3"),
870 ("(gint) ATK_STATE_CHECKABLE", "39"),
871 ("(gint) ATK_STATE_CHECKED", "4"),
872 ("(gint) ATK_STATE_DEFAULT", "36"),
873 ("(gint) ATK_STATE_DEFUNCT", "5"),
874 ("(gint) ATK_STATE_EDITABLE", "6"),
875 ("(gint) ATK_STATE_ENABLED", "7"),
876 ("(gint) ATK_STATE_EXPANDABLE", "8"),
877 ("(gint) ATK_STATE_EXPANDED", "9"),
878 ("(gint) ATK_STATE_FOCUSABLE", "10"),
879 ("(gint) ATK_STATE_FOCUSED", "11"),
880 ("(gint) ATK_STATE_HAS_POPUP", "40"),
881 ("(gint) ATK_STATE_HAS_TOOLTIP", "41"),
882 ("(gint) ATK_STATE_HORIZONTAL", "12"),
883 ("(gint) ATK_STATE_ICONIFIED", "13"),
884 ("(gint) ATK_STATE_INDETERMINATE", "30"),
885 ("(gint) ATK_STATE_INVALID", "0"),
886 ("(gint) ATK_STATE_INVALID_ENTRY", "33"),
887 ("(gint) ATK_STATE_LAST_DEFINED", "43"),
888 ("(gint) ATK_STATE_MANAGES_DESCENDANTS", "29"),
889 ("(gint) ATK_STATE_MODAL", "14"),
890 ("(gint) ATK_STATE_MULTISELECTABLE", "16"),
891 ("(gint) ATK_STATE_MULTI_LINE", "15"),
892 ("(gint) ATK_STATE_OPAQUE", "17"),
893 ("(gint) ATK_STATE_PRESSED", "18"),
894 ("(gint) ATK_STATE_READ_ONLY", "42"),
895 ("(gint) ATK_STATE_REQUIRED", "32"),
896 ("(gint) ATK_STATE_RESIZABLE", "19"),
897 ("(gint) ATK_STATE_SELECTABLE", "20"),
898 ("(gint) ATK_STATE_SELECTABLE_TEXT", "35"),
899 ("(gint) ATK_STATE_SELECTED", "21"),
900 ("(gint) ATK_STATE_SENSITIVE", "22"),
901 ("(gint) ATK_STATE_SHOWING", "23"),
902 ("(gint) ATK_STATE_SINGLE_LINE", "24"),
903 ("(gint) ATK_STATE_STALE", "25"),
904 ("(gint) ATK_STATE_SUPPORTS_AUTOCOMPLETION", "34"),
905 ("(gint) ATK_STATE_TRANSIENT", "26"),
906 ("(gint) ATK_STATE_TRUNCATED", "31"),
907 ("(gint) ATK_STATE_VERTICAL", "27"),
908 ("(gint) ATK_STATE_VISIBLE", "28"),
909 ("(gint) ATK_STATE_VISITED", "38"),
910 ("(gint) ATK_TEXT_ATTR_BG_COLOR", "18"),
911 ("(gint) ATK_TEXT_ATTR_BG_FULL_HEIGHT", "9"),
912 ("(gint) ATK_TEXT_ATTR_BG_STIPPLE", "20"),
913 ("(gint) ATK_TEXT_ATTR_DIRECTION", "23"),
914 ("(gint) ATK_TEXT_ATTR_EDITABLE", "5"),
915 ("(gint) ATK_TEXT_ATTR_FAMILY_NAME", "17"),
916 ("(gint) ATK_TEXT_ATTR_FG_COLOR", "19"),
917 ("(gint) ATK_TEXT_ATTR_FG_STIPPLE", "21"),
918 ("(gint) ATK_TEXT_ATTR_INDENT", "3"),
919 ("(gint) ATK_TEXT_ATTR_INVALID", "0"),
920 ("(gint) ATK_TEXT_ATTR_INVISIBLE", "4"),
921 ("(gint) ATK_TEXT_ATTR_JUSTIFICATION", "24"),
922 ("(gint) ATK_TEXT_ATTR_LANGUAGE", "16"),
923 ("(gint) ATK_TEXT_ATTR_LAST_DEFINED", "28"),
924 ("(gint) ATK_TEXT_ATTR_LEFT_MARGIN", "1"),
925 ("(gint) ATK_TEXT_ATTR_PIXELS_ABOVE_LINES", "6"),
926 ("(gint) ATK_TEXT_ATTR_PIXELS_BELOW_LINES", "7"),
927 ("(gint) ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP", "8"),
928 ("(gint) ATK_TEXT_ATTR_RIGHT_MARGIN", "2"),
929 ("(gint) ATK_TEXT_ATTR_RISE", "10"),
930 ("(gint) ATK_TEXT_ATTR_SCALE", "14"),
931 ("(gint) ATK_TEXT_ATTR_SIZE", "13"),
932 ("(gint) ATK_TEXT_ATTR_STRETCH", "25"),
933 ("(gint) ATK_TEXT_ATTR_STRIKETHROUGH", "12"),
934 ("(gint) ATK_TEXT_ATTR_STYLE", "27"),
935 ("(gint) ATK_TEXT_ATTR_UNDERLINE", "11"),
936 ("(gint) ATK_TEXT_ATTR_VARIANT", "26"),
937 ("(gint) ATK_TEXT_ATTR_WEIGHT", "15"),
938 ("(gint) ATK_TEXT_ATTR_WRAP_MODE", "22"),
939 ("(gint) ATK_TEXT_BOUNDARY_CHAR", "0"),
940 ("(gint) ATK_TEXT_BOUNDARY_LINE_END", "6"),
941 ("(gint) ATK_TEXT_BOUNDARY_LINE_START", "5"),
942 ("(gint) ATK_TEXT_BOUNDARY_SENTENCE_END", "4"),
943 ("(gint) ATK_TEXT_BOUNDARY_SENTENCE_START", "3"),
944 ("(gint) ATK_TEXT_BOUNDARY_WORD_END", "2"),
945 ("(gint) ATK_TEXT_BOUNDARY_WORD_START", "1"),
946 ("(gint) ATK_TEXT_CLIP_BOTH", "3"),
947 ("(gint) ATK_TEXT_CLIP_MAX", "2"),
948 ("(gint) ATK_TEXT_CLIP_MIN", "1"),
949 ("(gint) ATK_TEXT_CLIP_NONE", "0"),
950 ("(gint) ATK_TEXT_GRANULARITY_CHAR", "0"),
951 ("(gint) ATK_TEXT_GRANULARITY_LINE", "3"),
952 ("(gint) ATK_TEXT_GRANULARITY_PARAGRAPH", "4"),
953 ("(gint) ATK_TEXT_GRANULARITY_SENTENCE", "2"),
954 ("(gint) ATK_TEXT_GRANULARITY_WORD", "1"),
955 ("(gint) ATK_VALUE_ACCEPTABLE", "2"),
956 ("(gint) ATK_VALUE_BAD", "11"),
957 ("(gint) ATK_VALUE_BEST", "14"),
958 ("(gint) ATK_VALUE_GOOD", "12"),
959 ("(gint) ATK_VALUE_HIGH", "8"),
960 ("(gint) ATK_VALUE_LAST_DEFINED", "15"),
961 ("(gint) ATK_VALUE_LOW", "6"),
962 ("(gint) ATK_VALUE_MEDIUM", "7"),
963 ("(gint) ATK_VALUE_STRONG", "3"),
964 ("(gint) ATK_VALUE_VERY_BAD", "10"),
965 ("(gint) ATK_VALUE_VERY_GOOD", "13"),
966 ("(gint) ATK_VALUE_VERY_HIGH", "9"),
967 ("(gint) ATK_VALUE_VERY_LOW", "5"),
968 ("(gint) ATK_VALUE_VERY_STRONG", "4"),
969 ("(gint) ATK_VALUE_VERY_WEAK", "0"),
970 ("(gint) ATK_VALUE_WEAK", "1"),
971 ("(gint) ATK_XY_PARENT", "2"),
972 ("(gint) ATK_XY_SCREEN", "0"),
973 ("(gint) ATK_XY_WINDOW", "1"),
974 ];
975