1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 25 module atk.c.types; 26 27 public import glib.c.types; 28 public import gobject.c.types; 29 30 31 /** 32 * This is a singly-linked list (a #GSList) of #AtkAttribute. It is 33 * used by atk_text_get_run_attributes(), 34 * atk_text_get_default_attributes(), 35 * atk_editable_text_set_run_attributes(), 36 * atk_document_get_attributes() and atk_object_get_attributes() 37 */ 38 public alias GSList AtkAttributeSet; 39 40 public alias ulong AtkState; 41 42 /** 43 * Specifies how xy coordinates are to be interpreted. Used by functions such 44 * as atk_component_get_position() and atk_text_get_character_extents() 45 */ 46 public enum AtkCoordType 47 { 48 /** 49 * specifies xy coordinates relative to the screen 50 */ 51 SCREEN = 0, 52 /** 53 * specifies xy coordinates relative to the widget's 54 * top-level window 55 */ 56 WINDOW = 1, 57 /** 58 * specifies xy coordinates relative to the widget's 59 * immediate parent. Since: 2.30 60 */ 61 PARENT = 2, 62 } 63 alias AtkCoordType CoordType; 64 65 /** 66 * Describes the type of link 67 */ 68 public enum AtkHyperlinkStateFlags 69 { 70 /** 71 * Link is inline 72 */ 73 INLINE = 1, 74 } 75 alias AtkHyperlinkStateFlags HyperlinkStateFlags; 76 77 /** 78 * Specifies the type of a keyboard evemt. 79 */ 80 public enum AtkKeyEventType 81 { 82 /** 83 * specifies a key press event 84 */ 85 PRESS = 0, 86 /** 87 * specifies a key release event 88 */ 89 RELEASE = 1, 90 /** 91 * Not a valid value; specifies end of enumeration 92 */ 93 LAST_DEFINED = 2, 94 } 95 alias AtkKeyEventType KeyEventType; 96 97 /** 98 * Describes the layer of a component 99 * 100 * These enumerated "layer values" are used when determining which UI 101 * rendering layer a component is drawn into, which can help in making 102 * determinations of when components occlude one another. 103 */ 104 public enum AtkLayer 105 { 106 /** 107 * The object does not have a layer 108 */ 109 INVALID = 0, 110 /** 111 * This layer is reserved for the desktop background 112 */ 113 BACKGROUND = 1, 114 /** 115 * This layer is used for Canvas components 116 */ 117 CANVAS = 2, 118 /** 119 * This layer is normally used for components 120 */ 121 WIDGET = 3, 122 /** 123 * This layer is used for layered components 124 */ 125 MDI = 4, 126 /** 127 * This layer is used for popup components, such as menus 128 */ 129 POPUP = 5, 130 /** 131 * This layer is reserved for future use. 132 */ 133 OVERLAY = 6, 134 /** 135 * This layer is used for toplevel windows. 136 */ 137 WINDOW = 7, 138 } 139 alias AtkLayer Layer; 140 141 /** 142 * Describes the type of the relation 143 */ 144 public enum AtkRelationType 145 { 146 /** 147 * Not used, represens "no relationship" or an error condition. 148 */ 149 NULL = 0, 150 /** 151 * Indicates an object controlled by one or more target objects. 152 */ 153 CONTROLLED_BY = 1, 154 /** 155 * Indicates an object is an controller for one or more target objects. 156 */ 157 CONTROLLER_FOR = 2, 158 /** 159 * Indicates an object is a label for one or more target objects. 160 */ 161 LABEL_FOR = 3, 162 /** 163 * Indicates an object is labelled by one or more target objects. 164 */ 165 LABELLED_BY = 4, 166 /** 167 * Indicates an object is a member of a group of one or more target objects. 168 */ 169 MEMBER_OF = 5, 170 /** 171 * Indicates an object is a cell in a treetable which is displayed because a cell in the same column is expanded and identifies that cell. 172 */ 173 NODE_CHILD_OF = 6, 174 /** 175 * Indicates that the object has content that flows logically to another 176 * AtkObject in a sequential way, (for instance text-flow). 177 */ 178 FLOWS_TO = 7, 179 /** 180 * Indicates that the object has content that flows logically from 181 * another AtkObject in a sequential way, (for instance text-flow). 182 */ 183 FLOWS_FROM = 8, 184 /** 185 * Indicates a subwindow attached to a component but otherwise has no connection in the UI heirarchy to that component. 186 */ 187 SUBWINDOW_OF = 9, 188 /** 189 * Indicates that the object visually embeds 190 * another object's content, i.e. this object's content flows around 191 * another's content. 192 */ 193 EMBEDS = 10, 194 /** 195 * Reciprocal of %ATK_RELATION_EMBEDS, indicates that 196 * this object's content is visualy embedded in another object. 197 */ 198 EMBEDDED_BY = 11, 199 /** 200 * Indicates that an object is a popup for another object. 201 */ 202 POPUP_FOR = 12, 203 /** 204 * Indicates that an object is a parent window of another object. 205 */ 206 PARENT_WINDOW_OF = 13, 207 /** 208 * Reciprocal of %ATK_RELATION_DESCRIPTION_FOR. Indicates that one 209 * or more target objects provide descriptive information about this object. This relation 210 * type is most appropriate for information that is not essential as its presentation may 211 * be user-configurable and/or limited to an on-demand mechanism such as an assistive 212 * technology command. For brief, essential information such as can be found in a widget's 213 * on-screen label, use %ATK_RELATION_LABELLED_BY. For an on-screen error message, use 214 * %ATK_RELATION_ERROR_MESSAGE. For lengthy extended descriptive information contained in 215 * an on-screen object, consider using %ATK_RELATION_DETAILS as assistive technologies may 216 * provide a means for the user to navigate to objects containing detailed descriptions so 217 * that their content can be more closely reviewed. 218 */ 219 DESCRIBED_BY = 14, 220 /** 221 * Reciprocal of %ATK_RELATION_DESCRIBED_BY. Indicates that this 222 * object provides descriptive information about the target object(s). See also 223 * %ATK_RELATION_DETAILS_FOR and %ATK_RELATION_ERROR_FOR. 224 */ 225 DESCRIPTION_FOR = 15, 226 /** 227 * Indicates an object is a cell in a treetable and is expanded to display other cells in the same column. 228 */ 229 NODE_PARENT_OF = 16, 230 /** 231 * Reciprocal of %ATK_RELATION_DETAILS_FOR. Indicates that this object 232 * has a detailed or extended description, the contents of which can be found in the target 233 * object(s). This relation type is most appropriate for information that is sufficiently 234 * lengthy as to make navigation to the container of that information desirable. For less 235 * verbose information suitable for announcement only, see %ATK_RELATION_DESCRIBED_BY. If 236 * the detailed information describes an error condition, %ATK_RELATION_ERROR_FOR should be 237 * used instead. @Since: ATK-2.26. 238 */ 239 DETAILS = 17, 240 /** 241 * Reciprocal of %ATK_RELATION_DETAILS. Indicates that this object 242 * provides a detailed or extended description about the target object(s). See also 243 * %ATK_RELATION_DESCRIPTION_FOR and %ATK_RELATION_ERROR_FOR. @Since: ATK-2.26. 244 */ 245 DETAILS_FOR = 18, 246 /** 247 * Reciprocal of %ATK_RELATION_ERROR_FOR. Indicates that this object 248 * has one or more errors, the nature of which is described in the contents of the target 249 * object(s). Objects that have this relation type should also contain %ATK_STATE_INVALID_ENTRY 250 * in their #AtkStateSet. @Since: ATK-2.26. 251 */ 252 ERROR_MESSAGE = 19, 253 /** 254 * Reciprocal of %ATK_RELATION_ERROR_MESSAGE. Indicates that this object 255 * contains an error message describing an invalid condition in the target object(s). @Since: 256 * ATK_2.26. 257 */ 258 ERROR_FOR = 20, 259 /** 260 * Not used, this value indicates the end of the enumeration. 261 */ 262 LAST_DEFINED = 21, 263 } 264 alias AtkRelationType RelationType; 265 266 /** 267 * Describes the role of an object 268 * 269 * These are the built-in enumerated roles that UI components can have 270 * in ATK. Other roles may be added at runtime, so an AtkRole >= 271 * %ATK_ROLE_LAST_DEFINED is not necessarily an error. 272 */ 273 public enum AtkRole 274 { 275 /** 276 * Invalid role 277 */ 278 INVALID = 0, 279 /** 280 * A label which represents an accelerator 281 */ 282 ACCELERATOR_LABEL = 1, 283 /** 284 * An object which is an alert to the user. Assistive Technologies typically respond to ATK_ROLE_ALERT by reading the entire onscreen contents of containers advertising this role. Should be used for warning dialogs, etc. 285 */ 286 ALERT = 2, 287 /** 288 * An object which is an animated image 289 */ 290 ANIMATION = 3, 291 /** 292 * An arrow in one of the four cardinal directions 293 */ 294 ARROW = 4, 295 /** 296 * An object that displays a calendar and allows the user to select a date 297 */ 298 CALENDAR = 5, 299 /** 300 * An object that can be drawn into and is used to trap events 301 */ 302 CANVAS = 6, 303 /** 304 * A choice that can be checked or unchecked and provides a separate indicator for the current state 305 */ 306 CHECK_BOX = 7, 307 /** 308 * A menu item with a check box 309 */ 310 CHECK_MENU_ITEM = 8, 311 /** 312 * A specialized dialog that lets the user choose a color 313 */ 314 COLOR_CHOOSER = 9, 315 /** 316 * The header for a column of data 317 */ 318 COLUMN_HEADER = 10, 319 /** 320 * A collapsible list of choices the user can select from 321 */ 322 COMBO_BOX = 11, 323 /** 324 * An object whose purpose is to allow a user to edit a date 325 */ 326 DATE_EDITOR = 12, 327 /** 328 * An inconifed internal frame within a DESKTOP_PANE 329 */ 330 DESKTOP_ICON = 13, 331 /** 332 * A pane that supports internal frames and iconified versions of those internal frames 333 */ 334 DESKTOP_FRAME = 14, 335 /** 336 * An object whose purpose is to allow a user to set a value 337 */ 338 DIAL = 15, 339 /** 340 * A top level window with title bar and a border 341 */ 342 DIALOG = 16, 343 /** 344 * A pane that allows the user to navigate through and select the contents of a directory 345 */ 346 DIRECTORY_PANE = 17, 347 /** 348 * An object used for drawing custom user interface elements 349 */ 350 DRAWING_AREA = 18, 351 /** 352 * A specialized dialog that lets the user choose a file 353 */ 354 FILE_CHOOSER = 19, 355 /** 356 * A object that fills up space in a user interface 357 */ 358 FILLER = 20, 359 /** 360 * A specialized dialog that lets the user choose a font 361 */ 362 FONT_CHOOSER = 21, 363 /** 364 * A top level window with a title bar, border, menubar, etc. 365 */ 366 FRAME = 22, 367 /** 368 * A pane that is guaranteed to be painted on top of all panes beneath it 369 */ 370 GLASS_PANE = 23, 371 /** 372 * A document container for HTML, whose children represent the document content 373 */ 374 HTML_CONTAINER = 24, 375 /** 376 * A small fixed size picture, typically used to decorate components 377 */ 378 ICON = 25, 379 /** 380 * An object whose primary purpose is to display an image 381 */ 382 IMAGE = 26, 383 /** 384 * A frame-like object that is clipped by a desktop pane 385 */ 386 INTERNAL_FRAME = 27, 387 /** 388 * An object used to present an icon or short string in an interface 389 */ 390 LABEL = 28, 391 /** 392 * A specialized pane that allows its children to be drawn in layers, providing a form of stacking order 393 */ 394 LAYERED_PANE = 29, 395 /** 396 * An object that presents a list of objects to the user and allows the user to select one or more of them 397 */ 398 LIST = 30, 399 /** 400 * An object that represents an element of a list 401 */ 402 LIST_ITEM = 31, 403 /** 404 * An object usually found inside a menu bar that contains a list of actions the user can choose from 405 */ 406 MENU = 32, 407 /** 408 * An object usually drawn at the top of the primary dialog box of an application that contains a list of menus the user can choose from 409 */ 410 MENU_BAR = 33, 411 /** 412 * An object usually contained in a menu that presents an action the user can choose 413 */ 414 MENU_ITEM = 34, 415 /** 416 * A specialized pane whose primary use is inside a DIALOG 417 */ 418 OPTION_PANE = 35, 419 /** 420 * An object that is a child of a page tab list 421 */ 422 PAGE_TAB = 36, 423 /** 424 * An object that presents a series of panels (or page tabs), one at a time, through some mechanism provided by the object 425 */ 426 PAGE_TAB_LIST = 37, 427 /** 428 * A generic container that is often used to group objects 429 */ 430 PANEL = 38, 431 /** 432 * A text object uses for passwords, or other places where the text content is not shown visibly to the user 433 */ 434 PASSWORD_TEXT = 39, 435 /** 436 * A temporary window that is usually used to offer the user a list of choices, and then hides when the user selects one of those choices 437 */ 438 POPUP_MENU = 40, 439 /** 440 * An object used to indicate how much of a task has been completed 441 */ 442 PROGRESS_BAR = 41, 443 /** 444 * An object the user can manipulate to tell the application to do something 445 */ 446 PUSH_BUTTON = 42, 447 /** 448 * A specialized check box that will cause other radio buttons in the same group to become unchecked when this one is checked 449 */ 450 RADIO_BUTTON = 43, 451 /** 452 * A check menu item which belongs to a group. At each instant exactly one of the radio menu items from a group is selected 453 */ 454 RADIO_MENU_ITEM = 44, 455 /** 456 * A specialized pane that has a glass pane and a layered pane as its children 457 */ 458 ROOT_PANE = 45, 459 /** 460 * The header for a row of data 461 */ 462 ROW_HEADER = 46, 463 /** 464 * An object usually used to allow a user to incrementally view a large amount of data. 465 */ 466 SCROLL_BAR = 47, 467 /** 468 * An object that allows a user to incrementally view a large amount of information 469 */ 470 SCROLL_PANE = 48, 471 /** 472 * An object usually contained in a menu to provide a visible and logical separation of the contents in a menu 473 */ 474 SEPARATOR = 49, 475 /** 476 * An object that allows the user to select from a bounded range 477 */ 478 SLIDER = 50, 479 /** 480 * A specialized panel that presents two other panels at the same time 481 */ 482 SPLIT_PANE = 51, 483 /** 484 * An object used to get an integer or floating point number from the user 485 */ 486 SPIN_BUTTON = 52, 487 /** 488 * An object which reports messages of minor importance to the user 489 */ 490 STATUSBAR = 53, 491 /** 492 * An object used to represent information in terms of rows and columns 493 */ 494 TABLE = 54, 495 /** 496 * A cell in a table 497 */ 498 TABLE_CELL = 55, 499 /** 500 * The header for a column of a table 501 */ 502 TABLE_COLUMN_HEADER = 56, 503 /** 504 * The header for a row of a table 505 */ 506 TABLE_ROW_HEADER = 57, 507 /** 508 * A menu item used to tear off and reattach its menu 509 */ 510 TEAR_OFF_MENU_ITEM = 58, 511 /** 512 * An object that represents an accessible terminal. (Since: 0.6) 513 */ 514 TERMINAL = 59, 515 /** 516 * An interactive widget that supports multiple lines of text and 517 * optionally accepts user input, but whose purpose is not to solicit user input. 518 * Thus ATK_ROLE_TEXT is appropriate for the text view in a plain text editor 519 * but inappropriate for an input field in a dialog box or web form. For widgets 520 * whose purpose is to solicit input from the user, see ATK_ROLE_ENTRY and 521 * ATK_ROLE_PASSWORD_TEXT. For generic objects which display a brief amount of 522 * textual information, see ATK_ROLE_STATIC. 523 */ 524 TEXT = 60, 525 /** 526 * A specialized push button that can be checked or unchecked, but does not provide a separate indicator for the current state 527 */ 528 TOGGLE_BUTTON = 61, 529 /** 530 * A bar or palette usually composed of push buttons or toggle buttons 531 */ 532 TOOL_BAR = 62, 533 /** 534 * An object that provides information about another object 535 */ 536 TOOL_TIP = 63, 537 /** 538 * An object used to represent hierarchical information to the user 539 */ 540 TREE = 64, 541 /** 542 * An object capable of expanding and collapsing rows as well as showing multiple columns of data. (Since: 0.7) 543 */ 544 TREE_TABLE = 65, 545 /** 546 * The object contains some Accessible information, but its role is not known 547 */ 548 UNKNOWN = 66, 549 /** 550 * An object usually used in a scroll pane 551 */ 552 VIEWPORT = 67, 553 /** 554 * A top level window with no title or border. 555 */ 556 WINDOW = 68, 557 /** 558 * An object that serves as a document header. (Since: 1.1.1) 559 */ 560 HEADER = 69, 561 /** 562 * An object that serves as a document footer. (Since: 1.1.1) 563 */ 564 FOOTER = 70, 565 /** 566 * An object which is contains a paragraph of text content. (Since: 1.1.1) 567 */ 568 PARAGRAPH = 71, 569 /** 570 * An object which describes margins and tab stops, etc. for text objects which it controls (should have CONTROLLER_FOR relation to such). (Since: 1.1.1) 571 */ 572 RULER = 72, 573 /** 574 * The object is an application object, which may contain @ATK_ROLE_FRAME objects or other types of accessibles. The root accessible of any application's ATK hierarchy should have ATK_ROLE_APPLICATION. (Since: 1.1.4) 575 */ 576 APPLICATION = 73, 577 /** 578 * The object is a dialog or list containing items for insertion into an entry widget, for instance a list of words for completion of a text entry. (Since: 1.3) 579 */ 580 AUTOCOMPLETE = 74, 581 /** 582 * The object is an editable text object in a toolbar. (Since: 1.5) 583 */ 584 EDIT_BAR = 75, 585 /** 586 * The object is an embedded container within a document or panel. This role is a grouping "hint" indicating that the contained objects share a context. (Since: 1.7.2) 587 */ 588 EMBEDDED = 76, 589 /** 590 * The object is a component whose textual content may be entered or modified by the user, provided @ATK_STATE_EDITABLE is present. (Since: 1.11) 591 */ 592 ENTRY = 77, 593 /** 594 * The object is a graphical depiction of quantitative data. It may contain multiple subelements whose attributes and/or description may be queried to obtain both the quantitative data and information about how the data is being presented. The LABELLED_BY relation is particularly important in interpreting objects of this type, as is the accessible-description property. (Since: 1.11) 595 */ 596 CHART = 78, 597 /** 598 * The object contains descriptive information, usually textual, about another user interface element such as a table, chart, or image. (Since: 1.11) 599 */ 600 CAPTION = 79, 601 /** 602 * The object is a visual frame or container which contains a view of document content. Document frames may occur within another Document instance, in which case the second document may be said to be embedded in the containing instance. HTML frames are often ROLE_DOCUMENT_FRAME. Either this object, or a singleton descendant, should implement the Document interface. (Since: 1.11) 603 */ 604 DOCUMENT_FRAME = 80, 605 /** 606 * The object serves as a heading for content which follows it in a document. The 'heading level' of the heading, if availabe, may be obtained by querying the object's attributes. 607 */ 608 HEADING = 81, 609 /** 610 * The object is a containing instance which encapsulates a page of information. @ATK_ROLE_PAGE is used in documents and content which support a paginated navigation model. (Since: 1.11) 611 */ 612 PAGE = 82, 613 /** 614 * The object is a containing instance of document content which constitutes a particular 'logical' section of the document. The type of content within a section, and the nature of the section division itself, may be obtained by querying the object's attributes. Sections may be nested. (Since: 1.11) 615 */ 616 SECTION = 83, 617 /** 618 * The object is redundant with another object in the hierarchy, and is exposed for purely technical reasons. Objects of this role should normally be ignored by clients. (Since: 1.11) 619 */ 620 REDUNDANT_OBJECT = 84, 621 /** 622 * The object is a container for form controls, for instance as part of a 623 * web form or user-input form within a document. This role is primarily a tag/convenience for 624 * clients when navigating complex documents, it is not expected that ordinary GUI containers will 625 * always have ATK_ROLE_FORM. (Since: 1.12.0) 626 */ 627 FORM = 85, 628 /** 629 * The object is a hypertext anchor, i.e. a "link" in a 630 * hypertext document. Such objects are distinct from 'inline' 631 * content which may also use the Hypertext/Hyperlink interfaces 632 * to indicate the range/location within a text object where 633 * an inline or embedded object lies. (Since: 1.12.1) 634 */ 635 LINK = 86, 636 /** 637 * The object is a window or similar viewport 638 * which is used to allow composition or input of a 'complex character', 639 * in other words it is an "input method window." (Since: 1.12.1) 640 */ 641 INPUT_METHOD_WINDOW = 87, 642 /** 643 * A row in a table. (Since: 2.1.0) 644 */ 645 TABLE_ROW = 88, 646 /** 647 * An object that represents an element of a tree. (Since: 2.1.0) 648 */ 649 TREE_ITEM = 89, 650 /** 651 * A document frame which contains a spreadsheet. (Since: 2.1.0) 652 */ 653 DOCUMENT_SPREADSHEET = 90, 654 /** 655 * A document frame which contains a presentation or slide content. (Since: 2.1.0) 656 */ 657 DOCUMENT_PRESENTATION = 91, 658 /** 659 * A document frame which contains textual content, such as found in a word processing application. (Since: 2.1.0) 660 */ 661 DOCUMENT_TEXT = 92, 662 /** 663 * A document frame which contains HTML or other markup suitable for display in a web browser. (Since: 2.1.0) 664 */ 665 DOCUMENT_WEB = 93, 666 /** 667 * A document frame which contains email content to be displayed or composed either in plain text or HTML. (Since: 2.1.0) 668 */ 669 DOCUMENT_EMAIL = 94, 670 /** 671 * An object found within a document and designed to present a comment, note, or other annotation. In some cases, this object might not be visible until activated. (Since: 2.1.0) 672 */ 673 COMMENT = 95, 674 /** 675 * A non-collapsible list of choices the user can select from. (Since: 2.1.0) 676 */ 677 LIST_BOX = 96, 678 /** 679 * A group of related widgets. This group typically has a label. (Since: 2.1.0) 680 */ 681 GROUPING = 97, 682 /** 683 * An image map object. Usually a graphic with multiple hotspots, where each hotspot can be activated resulting in the loading of another document or section of a document. (Since: 2.1.0) 684 */ 685 IMAGE_MAP = 98, 686 /** 687 * A transitory object designed to present a message to the user, typically at the desktop level rather than inside a particular application. (Since: 2.1.0) 688 */ 689 NOTIFICATION = 99, 690 /** 691 * An object designed to present a message to the user within an existing window. (Since: 2.1.0) 692 */ 693 INFO_BAR = 100, 694 /** 695 * A bar that serves as a level indicator to, for instance, show the strength of a password or the state of a battery. (Since: 2.7.3) 696 */ 697 LEVEL_BAR = 101, 698 /** 699 * A bar that serves as the title of a window or a 700 * dialog. (Since: 2.12) 701 */ 702 TITLE_BAR = 102, 703 /** 704 * An object which contains a text section 705 * that is quoted from another source. (Since: 2.12) 706 */ 707 BLOCK_QUOTE = 103, 708 /** 709 * An object which represents an audio element. (Since: 2.12) 710 */ 711 AUDIO = 104, 712 /** 713 * An object which represents a video element. (Since: 2.12) 714 */ 715 VIDEO = 105, 716 /** 717 * A definition of a term or concept. (Since: 2.12) 718 */ 719 DEFINITION = 106, 720 /** 721 * A section of a page that consists of a 722 * composition that forms an independent part of a document, page, or 723 * site. Examples: A blog entry, a news story, a forum post. (Since: 2.12) 724 */ 725 ARTICLE = 107, 726 /** 727 * A region of a web page intended as a 728 * navigational landmark. This is designed to allow Assistive 729 * Technologies to provide quick navigation among key regions within a 730 * document. (Since: 2.12) 731 */ 732 LANDMARK = 108, 733 /** 734 * A text widget or container holding log content, such 735 * as chat history and error logs. In this role there is a 736 * relationship between the arrival of new items in the log and the 737 * reading order. The log contains a meaningful sequence and new 738 * information is added only to the end of the log, not at arbitrary 739 * points. (Since: 2.12) 740 */ 741 LOG = 109, 742 /** 743 * A container where non-essential information 744 * changes frequently. Common usages of marquee include stock tickers 745 * and ad banners. The primary difference between a marquee and a log 746 * is that logs usually have a meaningful order or sequence of 747 * important content changes. (Since: 2.12) 748 */ 749 MARQUEE = 110, 750 /** 751 * A text widget or container that holds a mathematical 752 * expression. (Since: 2.12) 753 */ 754 MATH = 111, 755 /** 756 * A widget whose purpose is to display a rating, 757 * such as the number of stars associated with a song in a media 758 * player. Objects of this role should also implement 759 * AtkValue. (Since: 2.12) 760 */ 761 RATING = 112, 762 /** 763 * An object containing a numerical counter which 764 * indicates an amount of elapsed time from a start point, or the time 765 * remaining until an end point. (Since: 2.12) 766 */ 767 TIMER = 113, 768 /** 769 * An object that represents a list of 770 * term-value groups. A term-value group represents a individual 771 * description and consist of one or more names 772 * (ATK_ROLE_DESCRIPTION_TERM) followed by one or more values 773 * (ATK_ROLE_DESCRIPTION_VALUE). For each list, there should not be 774 * more than one group with the same term name. (Since: 2.12) 775 */ 776 DESCRIPTION_LIST = 114, 777 /** 778 * An object that represents a term or phrase 779 * with a corresponding definition. (Since: 2.12) 780 */ 781 DESCRIPTION_TERM = 115, 782 /** 783 * An object that represents the 784 * description, definition or value of a term. (Since: 2.12) 785 */ 786 DESCRIPTION_VALUE = 116, 787 /** 788 * A generic non-container object whose purpose is to display a 789 * brief amount of information to the user and whose role is known by the 790 * implementor but lacks semantic value for the user. Examples in which 791 * %ATK_ROLE_STATIC is appropriate include the message displayed in a message box 792 * and an image used as an alternative means to display text. %ATK_ROLE_STATIC 793 * should not be applied to widgets which are traditionally interactive, objects 794 * which display a significant amount of content, or any object which has an 795 * accessible relation pointing to another object. Implementors should expose the 796 * displayed information through the accessible name of the object. If doing so seems 797 * inappropriate, it may indicate that a different role should be used. For 798 * labels which describe another widget, see %ATK_ROLE_LABEL. For text views, see 799 * %ATK_ROLE_TEXT. For generic containers, see %ATK_ROLE_PANEL. For objects whose 800 * role is not known by the implementor, see %ATK_ROLE_UNKNOWN. (Since: 2.16) 801 */ 802 STATIC = 117, 803 /** 804 * An object that represents a mathematical fraction. 805 * (Since: 2.16) 806 */ 807 MATH_FRACTION = 118, 808 /** 809 * An object that represents a mathematical expression 810 * displayed with a radical. (Since: 2.16) 811 */ 812 MATH_ROOT = 119, 813 /** 814 * An object that contains text that is displayed as a 815 * subscript. (Since: 2.16) 816 */ 817 SUBSCRIPT = 120, 818 /** 819 * An object that contains text that is displayed as a 820 * superscript. (Since: 2.16) 821 */ 822 SUPERSCRIPT = 121, 823 /** 824 * An object that contains the text of a footnote. (Since: 2.26) 825 */ 826 FOOTNOTE = 122, 827 /** 828 * Content previously deleted or proposed to be 829 * deleted, e.g. in revision history or a content view providing suggestions 830 * from reviewers. (Since: 2.34) 831 */ 832 CONTENT_DELETION = 123, 833 /** 834 * Content previously inserted or proposed to be 835 * inserted, e.g. in revision history or a content view providing suggestions 836 * from reviewers. (Since: 2.34) 837 */ 838 CONTENT_INSERTION = 124, 839 /** 840 * not a valid role, used for finding end of the enumeration 841 */ 842 LAST_DEFINED = 125, 843 } 844 alias AtkRole Role; 845 846 /** 847 * Specifies where an object should be placed on the screen when using scroll_to. 848 * 849 * Since: 2.30 850 */ 851 public enum AtkScrollType 852 { 853 /** 854 * Scroll the object vertically and horizontally to the top 855 * left corner of the window. 856 */ 857 TOP_LEFT = 0, 858 /** 859 * Scroll the object vertically and horizontally to the 860 * bottom right corner of the window. 861 */ 862 BOTTOM_RIGHT = 1, 863 /** 864 * Scroll the object vertically to the top edge of the 865 * window. 866 */ 867 TOP_EDGE = 2, 868 /** 869 * Scroll the object vertically to the bottom edge of 870 * the window. 871 */ 872 BOTTOM_EDGE = 3, 873 /** 874 * Scroll the object vertically and horizontally to the 875 * left edge of the window. 876 */ 877 LEFT_EDGE = 4, 878 /** 879 * Scroll the object vertically and horizontally to the 880 * right edge of the window. 881 */ 882 RIGHT_EDGE = 5, 883 /** 884 * Scroll the object vertically and horizontally so that 885 * as much as possible of the object becomes visible. The exact placement is 886 * determined by the application. 887 */ 888 ANYWHERE = 6, 889 } 890 alias AtkScrollType ScrollType; 891 892 /** 893 * The possible types of states of an object 894 */ 895 public enum AtkStateType 896 { 897 /** 898 * Indicates an invalid state - probably an error condition. 899 */ 900 INVALID = 0, 901 /** 902 * Indicates a window is currently the active window, or an object is the active subelement within a container or table. ATK_STATE_ACTIVE should not be used for objects which have ATK_STATE_FOCUSABLE or ATK_STATE_SELECTABLE: Those objects should use ATK_STATE_FOCUSED and ATK_STATE_SELECTED respectively. ATK_STATE_ACTIVE is a means to indicate that an object which is not focusable and not selectable is the currently-active item within its parent container. 903 */ 904 ACTIVE = 1, 905 /** 906 * Indicates that the object is 'armed', i.e. will be activated by if a pointer button-release event occurs within its bounds. Buttons often enter this state when a pointer click occurs within their bounds, as a precursor to activation. ATK_STATE_ARMED has been deprecated since ATK-2.16 and should not be used in newly-written code. 907 */ 908 ARMED = 2, 909 /** 910 * Indicates the current object is busy, i.e. onscreen representation is in the process of changing, or the object is temporarily unavailable for interaction due to activity already in progress. This state may be used by implementors of Document to indicate that content loading is underway. It also may indicate other 'pending' conditions; clients may wish to interrogate this object when the ATK_STATE_BUSY flag is removed. 911 */ 912 BUSY = 3, 913 /** 914 * Indicates this object is currently checked, for instance a checkbox is 'non-empty'. 915 */ 916 CHECKED = 4, 917 /** 918 * Indicates that this object no longer has a valid backing widget (for instance, if its peer object has been destroyed) 919 */ 920 DEFUNCT = 5, 921 /** 922 * Indicates that this object can contain text, and that the 923 * user can change the textual contents of this object by editing those contents 924 * directly. For an object which is expected to be editable due to its type, but 925 * which cannot be edited due to the application or platform preventing the user 926 * from doing so, that object's #AtkStateSet should lack ATK_STATE_EDITABLE and 927 * should contain ATK_STATE_READ_ONLY. 928 */ 929 EDITABLE = 6, 930 /** 931 * Indicates that this object is enabled, i.e. that it currently reflects some application state. Objects that are "greyed out" may lack this state, and may lack the STATE_SENSITIVE if direct user interaction cannot cause them to acquire STATE_ENABLED. See also: ATK_STATE_SENSITIVE 932 */ 933 ENABLED = 7, 934 /** 935 * Indicates this object allows progressive disclosure of its children 936 */ 937 EXPANDABLE = 8, 938 /** 939 * Indicates this object its expanded - see ATK_STATE_EXPANDABLE above 940 */ 941 EXPANDED = 9, 942 /** 943 * Indicates this object can accept keyboard focus, which means all events resulting from typing on the keyboard will normally be passed to it when it has focus 944 */ 945 FOCUSABLE = 10, 946 /** 947 * Indicates this object currently has the keyboard focus 948 */ 949 FOCUSED = 11, 950 /** 951 * Indicates the orientation of this object is horizontal; used, for instance, by objects of ATK_ROLE_SCROLL_BAR. For objects where vertical/horizontal orientation is especially meaningful. 952 */ 953 HORIZONTAL = 12, 954 /** 955 * Indicates this object is minimized and is represented only by an icon 956 */ 957 ICONIFIED = 13, 958 /** 959 * Indicates something must be done with this object before the user can interact with an object in a different window 960 */ 961 MODAL = 14, 962 /** 963 * Indicates this (text) object can contain multiple lines of text 964 */ 965 MULTI_LINE = 15, 966 /** 967 * Indicates this object allows more than one of its children to be selected at the same time, or in the case of text objects, that the object supports non-contiguous text selections. 968 */ 969 MULTISELECTABLE = 16, 970 /** 971 * Indicates this object paints every pixel within its rectangular region. 972 */ 973 OPAQUE = 17, 974 /** 975 * Indicates this object is currently pressed. 976 */ 977 PRESSED = 18, 978 /** 979 * Indicates the size of this object is not fixed 980 */ 981 RESIZABLE = 19, 982 /** 983 * Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that can be selected 984 */ 985 SELECTABLE = 20, 986 /** 987 * Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that has been selected 988 */ 989 SELECTED = 21, 990 /** 991 * Indicates this object is sensitive, e.g. to user interaction. 992 * STATE_SENSITIVE usually accompanies STATE_ENABLED for user-actionable controls, 993 * but may be found in the absence of STATE_ENABLED if the current visible state of the 994 * control is "disconnected" from the application state. In such cases, direct user interaction 995 * can often result in the object gaining STATE_SENSITIVE, for instance if a user makes 996 * an explicit selection using an object whose current state is ambiguous or undefined. 997 * @see STATE_ENABLED, STATE_INDETERMINATE. 998 */ 999 SENSITIVE = 22, 1000 /** 1001 * Indicates this object, the object's parent, the object's parent's parent, and so on, 1002 * are all 'shown' to the end-user, i.e. subject to "exposure" if blocking or obscuring objects do not interpose 1003 * between this object and the top of the window stack. 1004 */ 1005 SHOWING = 23, 1006 /** 1007 * Indicates this (text) object can contain only a single line of text 1008 */ 1009 SINGLE_LINE = 24, 1010 /** 1011 * Indicates that the information returned for this object may no longer be 1012 * synchronized with the application state. This is implied if the object has STATE_TRANSIENT, 1013 * and can also occur towards the end of the object peer's lifecycle. It can also be used to indicate that 1014 * the index associated with this object has changed since the user accessed the object (in lieu of 1015 * "index-in-parent-changed" events). 1016 */ 1017 STALE = 25, 1018 /** 1019 * Indicates this object is transient, i.e. a snapshot which may not emit events when its 1020 * state changes. Data from objects with ATK_STATE_TRANSIENT should not be cached, since there may be no 1021 * notification given when the cached data becomes obsolete. 1022 */ 1023 TRANSIENT = 26, 1024 /** 1025 * Indicates the orientation of this object is vertical 1026 */ 1027 VERTICAL = 27, 1028 /** 1029 * Indicates this object is visible, e.g. has been explicitly marked for exposure to the user. 1030 * **note**: %ATK_STATE_VISIBLE is no guarantee that the object is actually unobscured on the screen, only 1031 * that it is 'potentially' visible, barring obstruction, being scrolled or clipped out of the 1032 * field of view, or having an ancestor container that has not yet made visible. 1033 * A widget is potentially onscreen if it has both %ATK_STATE_VISIBLE and %ATK_STATE_SHOWING. 1034 * The absence of %ATK_STATE_VISIBLE and %ATK_STATE_SHOWING is semantically equivalent to saying 1035 * that an object is 'hidden'. See also %ATK_STATE_TRUNCATED, which applies if an object with 1036 * %ATK_STATE_VISIBLE and %ATK_STATE_SHOWING set lies within a viewport which means that its 1037 * contents are clipped, e.g. a truncated spreadsheet cell or 1038 * an image within a scrolling viewport. Mostly useful for screen-review and magnification 1039 * algorithms. 1040 */ 1041 VISIBLE = 28, 1042 /** 1043 * Indicates that "active-descendant-changed" event 1044 * is sent when children become 'active' (i.e. are selected or navigated to onscreen). 1045 * Used to prevent need to enumerate all children in very large containers, like tables. 1046 * The presence of STATE_MANAGES_DESCENDANTS is an indication to the client. 1047 * that the children should not, and need not, be enumerated by the client. 1048 * Objects implementing this state are expected to provide relevant state 1049 * notifications to listening clients, for instance notifications of visibility 1050 * changes and activation of their contained child objects, without the client 1051 * having previously requested references to those children. 1052 */ 1053 MANAGES_DESCENDANTS = 29, 1054 /** 1055 * Indicates that the value, or some other quantifiable 1056 * property, of this AtkObject cannot be fully determined. In the case of a large 1057 * data set in which the total number of items in that set is unknown (e.g. 1 of 1058 * 999+), implementors should expose the currently-known set size (999) along 1059 * with this state. In the case of a check box, this state should be used to 1060 * indicate that the check box is a tri-state check box which is currently 1061 * neither checked nor unchecked. 1062 */ 1063 INDETERMINATE = 30, 1064 /** 1065 * Indicates that an object is truncated, e.g. a text value in a speradsheet cell. 1066 */ 1067 TRUNCATED = 31, 1068 /** 1069 * Indicates that explicit user interaction with an object is required by the user interface, e.g. a required field in a "web-form" interface. 1070 */ 1071 REQUIRED = 32, 1072 /** 1073 * Indicates that the object has encountered an error condition due to failure of input validation. For instance, a form control may acquire this state in response to invalid or malformed user input. 1074 */ 1075 INVALID_ENTRY = 33, 1076 /** 1077 * Indicates that the object in question implements some form of ¨typeahead¨ or 1078 * pre-selection behavior whereby entering the first character of one or more sub-elements 1079 * causes those elements to scroll into view or become selected. Subsequent character input 1080 * may narrow the selection further as long as one or more sub-elements match the string. 1081 * This state is normally only useful and encountered on objects that implement Selection. 1082 * In some cases the typeahead behavior may result in full or partial ¨completion¨ of 1083 * the data in the input field, in which case these input events may trigger text-changed 1084 * events from the AtkText interface. This state supplants @ATK_ROLE_AUTOCOMPLETE. 1085 */ 1086 SUPPORTS_AUTOCOMPLETION = 34, 1087 /** 1088 * Indicates that the object in question supports text selection. It should only be exposed on objects which implement the Text interface, in order to distinguish this state from @ATK_STATE_SELECTABLE, which infers that the object in question is a selectable child of an object which implements Selection. While similar, text selection and subelement selection are distinct operations. 1089 */ 1090 SELECTABLE_TEXT = 35, 1091 /** 1092 * Indicates that the object is the "default" active component, i.e. the object which is activated by an end-user press of the "Enter" or "Return" key. Typically a "close" or "submit" button. 1093 */ 1094 DEFAULT = 36, 1095 /** 1096 * Indicates that the object changes its appearance dynamically as an inherent part of its presentation. This state may come and go if an object is only temporarily animated on the way to a 'final' onscreen presentation. 1097 * **note**: some applications, notably content viewers, may not be able to detect 1098 * all kinds of animated content. Therefore the absence of this state should not 1099 * be taken as definitive evidence that the object's visual representation is 1100 * static; this state is advisory. 1101 */ 1102 ANIMATED = 37, 1103 /** 1104 * Indicates that the object (typically a hyperlink) has already been 'activated', and/or its backing data has already been downloaded, rendered, or otherwise "visited". 1105 */ 1106 VISITED = 38, 1107 /** 1108 * Indicates this object has the potential to be 1109 * checked, such as a checkbox or toggle-able table cell. @Since: 1110 * ATK-2.12 1111 */ 1112 CHECKABLE = 39, 1113 /** 1114 * Indicates that the object has a popup context 1115 * menu or sub-level menu which may or may not be showing. This means 1116 * that activation renders conditional content. Note that ordinary 1117 * tooltips are not considered popups in this context. @Since: ATK-2.12 1118 */ 1119 HAS_POPUP = 40, 1120 /** 1121 * Indicates this object has a tooltip. @Since: ATK-2.16 1122 */ 1123 HAS_TOOLTIP = 41, 1124 /** 1125 * Indicates that a widget which is ENABLED and SENSITIVE 1126 * has a value which can be read, but not modified, by the user. Note that this 1127 * state should only be applied to widget types whose value is normally directly 1128 * user modifiable, such as check boxes, radio buttons, spin buttons, text input 1129 * fields, and combo boxes, as a means to convey that the expected interaction 1130 * with that widget is not possible. When the expected interaction with a 1131 * widget does not include modification by the user, as is the case with 1132 * labels and containers, ATK_STATE_READ_ONLY should not be applied. See also 1133 * ATK_STATE_EDITABLE. @Since: ATK-2-16 1134 */ 1135 READ_ONLY = 42, 1136 /** 1137 * Not a valid state, used for finding end of enumeration 1138 */ 1139 LAST_DEFINED = 43, 1140 } 1141 alias AtkStateType StateType; 1142 1143 /** 1144 * Describes the text attributes supported 1145 */ 1146 public enum AtkTextAttribute 1147 { 1148 /** 1149 * Invalid attribute, like bad spelling or grammar. 1150 */ 1151 INVALID = 0, 1152 /** 1153 * The pixel width of the left margin 1154 */ 1155 LEFT_MARGIN = 1, 1156 /** 1157 * The pixel width of the right margin 1158 */ 1159 RIGHT_MARGIN = 2, 1160 /** 1161 * The number of pixels that the text is indented 1162 */ 1163 INDENT = 3, 1164 /** 1165 * Either "true" or "false" indicating whether text is visible or not 1166 */ 1167 INVISIBLE = 4, 1168 /** 1169 * Either "true" or "false" indicating whether text is editable or not 1170 */ 1171 EDITABLE = 5, 1172 /** 1173 * Pixels of blank space to leave above each newline-terminated line. 1174 */ 1175 PIXELS_ABOVE_LINES = 6, 1176 /** 1177 * Pixels of blank space to leave below each newline-terminated line. 1178 */ 1179 PIXELS_BELOW_LINES = 7, 1180 /** 1181 * Pixels of blank space to leave between wrapped lines inside the same newline-terminated line (paragraph). 1182 */ 1183 PIXELS_INSIDE_WRAP = 8, 1184 /** 1185 * "true" or "false" whether to make the background color for each character the height of the highest font used on the current line, or the height of the font used for the current character. 1186 */ 1187 BG_FULL_HEIGHT = 9, 1188 /** 1189 * Number of pixels that the characters are risen above the baseline 1190 */ 1191 RISE = 10, 1192 /** 1193 * "none", "single", "double", "low", or "error" 1194 */ 1195 UNDERLINE = 11, 1196 /** 1197 * "true" or "false" whether the text is strikethrough 1198 */ 1199 STRIKETHROUGH = 12, 1200 /** 1201 * The size of the characters in points. eg: 10 1202 */ 1203 SIZE = 13, 1204 /** 1205 * The scale of the characters. The value is a string representation of a double 1206 */ 1207 SCALE = 14, 1208 /** 1209 * The weight of the characters. 1210 */ 1211 WEIGHT = 15, 1212 /** 1213 * The language used 1214 */ 1215 LANGUAGE = 16, 1216 /** 1217 * The font family name 1218 */ 1219 FAMILY_NAME = 17, 1220 /** 1221 * The background color. The value is an RGB value of the format "%u,%u,%u" 1222 */ 1223 BG_COLOR = 18, 1224 /** 1225 * The foreground color. The value is an RGB value of the format "%u,%u,%u" 1226 */ 1227 FG_COLOR = 19, 1228 /** 1229 * "true" if a #GdkBitmap is set for stippling the background color. 1230 */ 1231 BG_STIPPLE = 20, 1232 /** 1233 * "true" if a #GdkBitmap is set for stippling the foreground color. 1234 */ 1235 FG_STIPPLE = 21, 1236 /** 1237 * The wrap mode of the text, if any. Values are "none", "char", "word", or "word_char". 1238 */ 1239 WRAP_MODE = 22, 1240 /** 1241 * The direction of the text, if set. Values are "none", "ltr" or "rtl" 1242 */ 1243 DIRECTION = 23, 1244 /** 1245 * The justification of the text, if set. Values are "left", "right", "center" or "fill" 1246 */ 1247 JUSTIFICATION = 24, 1248 /** 1249 * The stretch of the text, if set. Values are "ultra_condensed", "extra_condensed", "condensed", "semi_condensed", "normal", "semi_expanded", "expanded", "extra_expanded" or "ultra_expanded" 1250 */ 1251 STRETCH = 25, 1252 /** 1253 * The capitalization variant of the text, if set. Values are "normal" or "small_caps" 1254 */ 1255 VARIANT = 26, 1256 /** 1257 * The slant style of the text, if set. Values are "normal", "oblique" or "italic" 1258 */ 1259 STYLE = 27, 1260 /** 1261 * not a valid text attribute, used for finding end of enumeration 1262 */ 1263 LAST_DEFINED = 28, 1264 } 1265 alias AtkTextAttribute TextAttribute; 1266 1267 /** 1268 * Text boundary types used for specifying boundaries for regions of text. 1269 * This enumeration is deprecated since 2.9.4 and should not be used. Use 1270 * AtkTextGranularity with #atk_text_get_string_at_offset instead. 1271 */ 1272 public enum AtkTextBoundary 1273 { 1274 /** 1275 * Boundary is the boundary between characters 1276 * (including non-printing characters) 1277 */ 1278 CHAR = 0, 1279 /** 1280 * Boundary is the start (i.e. first character) of a word. 1281 */ 1282 WORD_START = 1, 1283 /** 1284 * Boundary is the end (i.e. last 1285 * character) of a word. 1286 */ 1287 WORD_END = 2, 1288 /** 1289 * Boundary is the first character in a sentence. 1290 */ 1291 SENTENCE_START = 3, 1292 /** 1293 * Boundary is the last (terminal) 1294 * character in a sentence; in languages which use "sentence stop" 1295 * punctuation such as English, the boundary is thus the '.', '?', or 1296 * similar terminal punctuation character. 1297 */ 1298 SENTENCE_END = 4, 1299 /** 1300 * Boundary is the initial character of the content or a 1301 * character immediately following a newline, linefeed, or return character. 1302 */ 1303 LINE_START = 5, 1304 /** 1305 * Boundary is the linefeed, or return 1306 * character. 1307 */ 1308 LINE_END = 6, 1309 } 1310 alias AtkTextBoundary TextBoundary; 1311 1312 /** 1313 * Describes the type of clipping required. 1314 */ 1315 public enum AtkTextClipType 1316 { 1317 /** 1318 * No clipping to be done 1319 */ 1320 NONE = 0, 1321 /** 1322 * Text clipped by min coordinate is omitted 1323 */ 1324 MIN = 1, 1325 /** 1326 * Text clipped by max coordinate is omitted 1327 */ 1328 MAX = 2, 1329 /** 1330 * Only text fully within mix/max bound is retained 1331 */ 1332 BOTH = 3, 1333 } 1334 alias AtkTextClipType TextClipType; 1335 1336 /** 1337 * Text granularity types used for specifying the granularity of the region of 1338 * text we are interested in. 1339 */ 1340 public enum AtkTextGranularity 1341 { 1342 /** 1343 * Granularity is defined by the boundaries between characters 1344 * (including non-printing characters) 1345 */ 1346 CHAR = 0, 1347 /** 1348 * Granularity is defined by the boundaries of a word, 1349 * starting at the beginning of the current word and finishing at the beginning of 1350 * the following one, if present. 1351 */ 1352 WORD = 1, 1353 /** 1354 * Granularity is defined by the boundaries of a sentence, 1355 * starting at the beginning of the current sentence and finishing at the beginning of 1356 * the following one, if present. 1357 */ 1358 SENTENCE = 2, 1359 /** 1360 * Granularity is defined by the boundaries of a line, 1361 * starting at the beginning of the current line and finishing at the beginning of 1362 * the following one, if present. 1363 */ 1364 LINE = 3, 1365 /** 1366 * Granularity is defined by the boundaries of a paragraph, 1367 * starting at the beginning of the current paragraph and finishing at the beginning of 1368 * the following one, if present. 1369 */ 1370 PARAGRAPH = 4, 1371 } 1372 alias AtkTextGranularity TextGranularity; 1373 1374 /** 1375 * Default types for a given value. Those are defined in order to 1376 * easily get localized strings to describe a given value or a given 1377 * subrange, using atk_value_type_get_localized_name(). 1378 */ 1379 public enum AtkValueType 1380 { 1381 VERY_WEAK = 0, 1382 WEAK = 1, 1383 ACCEPTABLE = 2, 1384 STRONG = 3, 1385 VERY_STRONG = 4, 1386 VERY_LOW = 5, 1387 LOW = 6, 1388 MEDIUM = 7, 1389 HIGH = 8, 1390 VERY_HIGH = 9, 1391 VERY_BAD = 10, 1392 BAD = 11, 1393 GOOD = 12, 1394 VERY_GOOD = 13, 1395 BEST = 14, 1396 LAST_DEFINED = 15, 1397 } 1398 alias AtkValueType ValueType; 1399 1400 struct AtkAction; 1401 1402 /** 1403 * The #AtkAction interface should be supported by any object that can 1404 * perform one or more actions. The interface provides the standard 1405 * mechanism for an assistive technology to determine what those actions 1406 * are as well as tell the object to perform them. Any object that can 1407 * be manipulated should support this interface. 1408 */ 1409 struct AtkActionIface 1410 { 1411 GTypeInterface parent; 1412 /** 1413 * 1414 * Params: 1415 * action = a #GObject instance that implements AtkActionIface 1416 * i = the action index corresponding to the action to be performed 1417 * Returns: %TRUE if success, %FALSE otherwise 1418 */ 1419 extern(C) int function(AtkAction* action, int i) doAction; 1420 /** 1421 * 1422 * Params: 1423 * action = a #GObject instance that implements AtkActionIface 1424 * Returns: a the number of actions, or 0 if @action does not 1425 * implement this interface. 1426 */ 1427 extern(C) int function(AtkAction* action) getNActions; 1428 /** 1429 * 1430 * Params: 1431 * action = a #GObject instance that implements AtkActionIface 1432 * i = the action index corresponding to the action to be performed 1433 * Returns: a description string, or %NULL if @action does 1434 * not implement this interface. 1435 */ 1436 extern(C) const(char)* function(AtkAction* action, int i) getDescription; 1437 /** 1438 * 1439 * Params: 1440 * action = a #GObject instance that implements AtkActionIface 1441 * i = the action index corresponding to the action to be performed 1442 * Returns: a name string, or %NULL if @action does not 1443 * implement this interface. 1444 */ 1445 extern(C) const(char)* function(AtkAction* action, int i) getName; 1446 /** 1447 * 1448 * Params: 1449 * action = a #GObject instance that implements AtkActionIface 1450 * i = the action index corresponding to the action to be performed 1451 * Returns: the keybinding which can be used to activate 1452 * this action, or %NULL if there is no keybinding for this action. 1453 */ 1454 extern(C) const(char)* function(AtkAction* action, int i) getKeybinding; 1455 /** 1456 * 1457 * Params: 1458 * action = a #GObject instance that implements AtkActionIface 1459 * i = the action index corresponding to the action to be performed 1460 * desc = the description to be assigned to this action 1461 * Returns: a gboolean representing if the description was successfully set; 1462 */ 1463 extern(C) int function(AtkAction* action, int i, const(char)* desc) setDescription; 1464 /** 1465 * 1466 * Params: 1467 * action = a #GObject instance that implements AtkActionIface 1468 * i = the action index corresponding to the action to be performed 1469 * Returns: a name string, or %NULL if @action does not 1470 * implement this interface. 1471 */ 1472 extern(C) const(char)* function(AtkAction* action, int i) getLocalizedName; 1473 } 1474 1475 struct AtkComponent; 1476 1477 /** 1478 * The AtkComponent interface should be supported by any object that is 1479 * rendered on the screen. The interface provides the standard mechanism 1480 * for an assistive technology to determine and set the graphical 1481 * representation of an object. 1482 */ 1483 struct AtkComponentIface 1484 { 1485 GTypeInterface parent; 1486 /** 1487 * 1488 * Params: 1489 * component = The #AtkComponent to attach the @handler to 1490 * handler = The #AtkFocusHandler to be attached to @component 1491 * Returns: a handler id which can be used in atk_component_remove_focus_handler() 1492 * or zero if the handler was already added. 1493 */ 1494 extern(C) uint function(AtkComponent* component, AtkFocusHandler handler) addFocusHandler; 1495 /** 1496 * 1497 * Params: 1498 * component = the #AtkComponent 1499 * x = x coordinate 1500 * y = y coordinate 1501 * coordType = specifies whether the coordinates are relative to the screen 1502 * or to the components top level window 1503 * Returns: %TRUE or %FALSE indicating whether the specified point is within 1504 * the extent of the @component or not 1505 */ 1506 extern(C) int function(AtkComponent* component, int x, int y, AtkCoordType coordType) contains; 1507 /** 1508 * 1509 * Params: 1510 * component = the #AtkComponent 1511 * x = x coordinate 1512 * y = y coordinate 1513 * coordType = specifies whether the coordinates are relative to the screen 1514 * or to the components top level window 1515 * Returns: a reference to the accessible 1516 * child, if one exists 1517 */ 1518 extern(C) AtkObject* function(AtkComponent* component, int x, int y, AtkCoordType coordType) refAccessibleAtPoint; 1519 /** */ 1520 extern(C) void function(AtkComponent* component, int* x, int* y, int* width, int* height, AtkCoordType coordType) getExtents; 1521 /** */ 1522 extern(C) void function(AtkComponent* component, int* x, int* y, AtkCoordType coordType) getPosition; 1523 /** */ 1524 extern(C) void function(AtkComponent* component, int* width, int* height) getSize; 1525 /** 1526 * 1527 * Params: 1528 * component = an #AtkComponent 1529 * Returns: %TRUE if successful, %FALSE otherwise. 1530 */ 1531 extern(C) int function(AtkComponent* component) grabFocus; 1532 /** */ 1533 extern(C) void function(AtkComponent* component, uint handlerId) removeFocusHandler; 1534 /** 1535 * 1536 * Params: 1537 * component = an #AtkComponent 1538 * x = x coordinate 1539 * y = y coordinate 1540 * width = width to set for @component 1541 * height = height to set for @component 1542 * coordType = specifies whether the coordinates are relative to the screen 1543 * or to the components top level window 1544 * Returns: %TRUE or %FALSE whether the extents were set or not 1545 */ 1546 extern(C) int function(AtkComponent* component, int x, int y, int width, int height, AtkCoordType coordType) setExtents; 1547 /** 1548 * 1549 * Params: 1550 * component = an #AtkComponent 1551 * x = x coordinate 1552 * y = y coordinate 1553 * coordType = specifies whether the coordinates are relative to the screen 1554 * or to the component's top level window 1555 * Returns: %TRUE or %FALSE whether or not the position was set or not 1556 */ 1557 extern(C) int function(AtkComponent* component, int x, int y, AtkCoordType coordType) setPosition; 1558 /** 1559 * 1560 * Params: 1561 * component = an #AtkComponent 1562 * width = width to set for @component 1563 * height = height to set for @component 1564 * Returns: %TRUE or %FALSE whether the size was set or not 1565 */ 1566 extern(C) int function(AtkComponent* component, int width, int height) setSize; 1567 /** 1568 * 1569 * Params: 1570 * component = an #AtkComponent 1571 * Returns: an #AtkLayer which is the layer of the component 1572 */ 1573 extern(C) AtkLayer function(AtkComponent* component) getLayer; 1574 /** 1575 * 1576 * Params: 1577 * component = an #AtkComponent 1578 * Returns: a gint which is the zorder of the component, i.e. the depth at 1579 * which the component is shown in relation to other components in the same 1580 * container. 1581 */ 1582 extern(C) int function(AtkComponent* component) getMdiZorder; 1583 /** */ 1584 extern(C) void function(AtkComponent* component, AtkRectangle* bounds) boundsChanged; 1585 /** 1586 * 1587 * Params: 1588 * component = an #AtkComponent 1589 * Returns: An alpha value from 0 to 1.0, inclusive. 1590 */ 1591 extern(C) double function(AtkComponent* component) getAlpha; 1592 /** 1593 * 1594 * Params: 1595 * component = an #AtkComponent 1596 * type = specify where the object should be made visible. 1597 * Returns: whether scrolling was successful. 1598 */ 1599 extern(C) int function(AtkComponent* component, AtkScrollType type) scrollTo; 1600 /** 1601 * 1602 * Params: 1603 * component = an #AtkComponent 1604 * coords = specify whether coordinates are relative to the screen or to the 1605 * parent object. 1606 * x = x-position where to scroll to 1607 * y = y-position where to scroll to 1608 * Returns: whether scrolling was successful. 1609 */ 1610 extern(C) int function(AtkComponent* component, AtkCoordType coords, int x, int y) scrollToPoint; 1611 } 1612 1613 struct AtkDocument; 1614 1615 struct AtkDocumentIface 1616 { 1617 GTypeInterface parent; 1618 /** 1619 * 1620 * Params: 1621 * document = a #GObject instance that implements AtkDocumentIface 1622 * Returns: a string indicating the document type 1623 */ 1624 extern(C) const(char)* function(AtkDocument* document) getDocumentType; 1625 /** 1626 * 1627 * Params: 1628 * document = a #GObject instance that implements AtkDocumentIface 1629 * Returns: a %gpointer that points to an instance of the DOM. 1630 */ 1631 extern(C) void* function(AtkDocument* document) getDocument; 1632 /** 1633 * 1634 * Params: 1635 * document = a #GObject instance that implements AtkDocumentIface 1636 * Returns: a UTF-8 string indicating the POSIX-style LC_MESSAGES 1637 * locale of the document content as a whole, or NULL if 1638 * the document content does not specify a locale. 1639 */ 1640 extern(C) const(char)* function(AtkDocument* document) getDocumentLocale; 1641 /** 1642 * 1643 * Params: 1644 * document = a #GObject instance that implements AtkDocumentIface 1645 * Returns: An AtkAttributeSet containing the explicitly 1646 * set name-value-pair attributes associated with this document 1647 * as a whole. 1648 */ 1649 extern(C) AtkAttributeSet* function(AtkDocument* document) getDocumentAttributes; 1650 /** 1651 * 1652 * Params: 1653 * document = a #GObject instance that implements AtkDocumentIface 1654 * attributeName = a character string representing the name of the attribute 1655 * whose value is being queried. 1656 * Returns: a string value associated with the named 1657 * attribute for this document, or %NULL if a value for 1658 * @attribute_name has not been specified for this document. 1659 */ 1660 extern(C) const(char)* function(AtkDocument* document, const(char)* attributeName) getDocumentAttributeValue; 1661 /** 1662 * 1663 * Params: 1664 * document = a #GObject instance that implements #AtkDocumentIface 1665 * attributeName = a character string representing the name of the attribute 1666 * whose value is being set. 1667 * attributeValue = a string value to be associated with @attribute_name. 1668 * Returns: %TRUE if @attribute_value is successfully associated 1669 * with @attribute_name for this @document, and %FALSE if if the 1670 * document does not allow the attribute to be modified 1671 */ 1672 extern(C) int function(AtkDocument* document, const(char)* attributeName, const(char)* attributeValue) setDocumentAttribute; 1673 /** 1674 * 1675 * Params: 1676 * document = the #AtkDocument 1677 * Returns: the current page number inside @document, or -1 if 1678 * not implemented, not know by the implementor, or irrelevant. 1679 */ 1680 extern(C) int function(AtkDocument* document) getCurrentPageNumber; 1681 /** 1682 * 1683 * Params: 1684 * document = the #AtkDocument 1685 * Returns: total page count of @document, or -1 if not implemented, 1686 * not know by the implementor or irrelevant. 1687 */ 1688 extern(C) int function(AtkDocument* document) getPageCount; 1689 } 1690 1691 struct AtkEditableText; 1692 1693 struct AtkEditableTextIface 1694 { 1695 GTypeInterface parentInterface; 1696 /** 1697 * 1698 * Params: 1699 * text = an #AtkEditableText 1700 * attribSet = an #AtkAttributeSet 1701 * startOffset = start of range in which to set attributes 1702 * endOffset = end of range in which to set attributes 1703 * Returns: %TRUE if attributes successfully set for the specified 1704 * range, otherwise %FALSE 1705 */ 1706 extern(C) int function(AtkEditableText* text, AtkAttributeSet* attribSet, int startOffset, int endOffset) setRunAttributes; 1707 /** */ 1708 extern(C) void function(AtkEditableText* text, const(char)* string_) setTextContents; 1709 /** */ 1710 extern(C) void function(AtkEditableText* text, const(char)* string_, int length, int* position) insertText; 1711 /** */ 1712 extern(C) void function(AtkEditableText* text, int startPos, int endPos) copyText; 1713 /** */ 1714 extern(C) void function(AtkEditableText* text, int startPos, int endPos) cutText; 1715 /** */ 1716 extern(C) void function(AtkEditableText* text, int startPos, int endPos) deleteText; 1717 /** */ 1718 extern(C) void function(AtkEditableText* text, int position) pasteText; 1719 } 1720 1721 struct AtkGObjectAccessible 1722 { 1723 AtkObject parent; 1724 } 1725 1726 struct AtkGObjectAccessibleClass 1727 { 1728 AtkObjectClass parentClass; 1729 AtkFunction pad1; 1730 AtkFunction pad2; 1731 } 1732 1733 struct AtkHyperlink 1734 { 1735 GObject parent; 1736 } 1737 1738 struct AtkHyperlinkClass 1739 { 1740 GObjectClass parent; 1741 /** 1742 * 1743 * Params: 1744 * link = an #AtkHyperlink 1745 * i = a (zero-index) integer specifying the desired anchor 1746 * Returns: a string specifying the URI 1747 */ 1748 extern(C) char* function(AtkHyperlink* link, int i) getUri; 1749 /** 1750 * 1751 * Params: 1752 * link = an #AtkHyperlink 1753 * i = a (zero-index) integer specifying the desired anchor 1754 * Returns: an #AtkObject associated with this hyperlinks 1755 * i-th anchor 1756 */ 1757 extern(C) AtkObject* function(AtkHyperlink* link, int i) getObject; 1758 /** 1759 * 1760 * Params: 1761 * link = an #AtkHyperlink 1762 * Returns: the index with the hypertext document at which this link ends 1763 */ 1764 extern(C) int function(AtkHyperlink* link) getEndIndex; 1765 /** 1766 * 1767 * Params: 1768 * link = an #AtkHyperlink 1769 * Returns: the index with the hypertext document at which this link begins 1770 */ 1771 extern(C) int function(AtkHyperlink* link) getStartIndex; 1772 /** 1773 * 1774 * Params: 1775 * link = an #AtkHyperlink 1776 * Returns: whether or not this link is still valid 1777 */ 1778 extern(C) int function(AtkHyperlink* link) isValid; 1779 /** 1780 * 1781 * Params: 1782 * link = an #AtkHyperlink 1783 * Returns: the number of anchors associated with this hyperlink 1784 */ 1785 extern(C) int function(AtkHyperlink* link) getNAnchors; 1786 /** */ 1787 extern(C) uint function(AtkHyperlink* link) linkState; 1788 /** 1789 * 1790 * Params: 1791 * link = an #AtkHyperlink 1792 * Returns: True if the AtkHyperlink is selected, False otherwise 1793 */ 1794 extern(C) int function(AtkHyperlink* link) isSelectedLink; 1795 /** */ 1796 extern(C) void function(AtkHyperlink* link) linkActivated; 1797 AtkFunction pad1; 1798 } 1799 1800 struct AtkHyperlinkImpl; 1801 1802 struct AtkHyperlinkImplIface 1803 { 1804 GTypeInterface parent; 1805 /** 1806 * 1807 * Params: 1808 * impl = a #GObject instance that implements AtkHyperlinkImplIface 1809 * Returns: an AtkHyperlink object which points to this 1810 * implementing AtkObject. 1811 */ 1812 extern(C) AtkHyperlink* function(AtkHyperlinkImpl* impl) getHyperlink; 1813 } 1814 1815 struct AtkHypertext; 1816 1817 struct AtkHypertextIface 1818 { 1819 GTypeInterface parent; 1820 /** 1821 * 1822 * Params: 1823 * hypertext = an #AtkHypertext 1824 * linkIndex = an integer specifying the desired link 1825 * Returns: the link in this hypertext document at 1826 * index @link_index 1827 */ 1828 extern(C) AtkHyperlink* function(AtkHypertext* hypertext, int linkIndex) getLink; 1829 /** 1830 * 1831 * Params: 1832 * hypertext = an #AtkHypertext 1833 * Returns: the number of links within this hypertext document 1834 */ 1835 extern(C) int function(AtkHypertext* hypertext) getNLinks; 1836 /** 1837 * 1838 * Params: 1839 * hypertext = an #AtkHypertext 1840 * charIndex = a character index 1841 * Returns: an index into the array of hyperlinks in @hypertext, 1842 * or -1 if there is no hyperlink associated with this character. 1843 */ 1844 extern(C) int function(AtkHypertext* hypertext, int charIndex) getLinkIndex; 1845 /** */ 1846 extern(C) void function(AtkHypertext* hypertext, int linkIndex) linkSelected; 1847 } 1848 1849 struct AtkImage; 1850 1851 struct AtkImageIface 1852 { 1853 GTypeInterface parent; 1854 /** */ 1855 extern(C) void function(AtkImage* image, int* x, int* y, AtkCoordType coordType) getImagePosition; 1856 /** 1857 * 1858 * Params: 1859 * image = a #GObject instance that implements AtkImageIface 1860 * Returns: a string representing the image description 1861 */ 1862 extern(C) const(char)* function(AtkImage* image) getImageDescription; 1863 /** */ 1864 extern(C) void function(AtkImage* image, int* width, int* height) getImageSize; 1865 /** 1866 * 1867 * Params: 1868 * image = a #GObject instance that implements AtkImageIface 1869 * description = a string description to set for @image 1870 * Returns: boolean TRUE, or FALSE if operation could 1871 * not be completed. 1872 */ 1873 extern(C) int function(AtkImage* image, const(char)* description) setImageDescription; 1874 /** 1875 * 1876 * Params: 1877 * image = An #AtkImage 1878 * Returns: a string corresponding to the POSIX 1879 * `LC_MESSAGES` locale used by the image description, or 1880 * %NULL if the image does not specify a locale. 1881 */ 1882 extern(C) const(char)* function(AtkImage* image) getImageLocale; 1883 } 1884 1885 struct AtkImplementor; 1886 1887 /** 1888 * Encapsulates information about a key event. 1889 */ 1890 struct AtkKeyEventStruct 1891 { 1892 /** 1893 * An AtkKeyEventType, generally one of ATK_KEY_EVENT_PRESS or ATK_KEY_EVENT_RELEASE 1894 */ 1895 int type; 1896 /** 1897 * A bitmask representing the state of the modifier keys immediately after the event takes place. 1898 * The meaning of the bits is currently defined to match the bitmask used by GDK in 1899 * GdkEventType.state, see 1900 * http://developer.gnome.org/doc/API/2.0/gdk/gdk-Event-Structures.html#GdkEventKey 1901 */ 1902 uint state; 1903 /** 1904 * A guint representing a keysym value corresponding to those used by GDK and X11: see 1905 * /usr/X11/include/keysymdef.h. 1906 */ 1907 uint keyval; 1908 /** 1909 * The length of member #string. 1910 */ 1911 int length; 1912 /** 1913 * A string containing one of the following: either a string approximating the text that would 1914 * result from this keypress, if the key is a control or graphic character, or a symbolic name for this keypress. 1915 * Alphanumeric and printable keys will have the symbolic key name in this string member, for instance "A". "0", 1916 * "semicolon", "aacute". Keypad keys have the prefix "KP". 1917 */ 1918 char* string_; 1919 /** 1920 * The raw hardware code that generated the key event. This field is raraly useful. 1921 */ 1922 ushort keycode; 1923 /** 1924 * A timestamp in milliseconds indicating when the event occurred. 1925 * These timestamps are relative to a starting point which should be considered arbitrary, 1926 * and only used to compare the dispatch times of events to one another. 1927 */ 1928 uint timestamp; 1929 } 1930 1931 struct AtkMisc 1932 { 1933 GObject parent; 1934 } 1935 1936 /** 1937 * Usage of AtkMisc is deprecated since 2.12 and heavily discouraged. 1938 */ 1939 struct AtkMiscClass 1940 { 1941 GObjectClass parent; 1942 /** */ 1943 extern(C) void function(AtkMisc* misc) threadsEnter; 1944 /** */ 1945 extern(C) void function(AtkMisc* misc) threadsLeave; 1946 void*[32] vfuncs; 1947 } 1948 1949 struct AtkNoOpObject 1950 { 1951 AtkObject parent; 1952 } 1953 1954 struct AtkNoOpObjectClass 1955 { 1956 AtkObjectClass parentClass; 1957 } 1958 1959 struct AtkNoOpObjectFactory 1960 { 1961 AtkObjectFactory parent; 1962 } 1963 1964 struct AtkNoOpObjectFactoryClass 1965 { 1966 AtkObjectFactoryClass parentClass; 1967 } 1968 1969 struct AtkObject 1970 { 1971 GObject parent; 1972 char* description; 1973 char* name; 1974 AtkObject* accessibleParent; 1975 AtkRole role; 1976 AtkRelationSet* relationSet; 1977 AtkLayer layer; 1978 } 1979 1980 struct AtkObjectClass 1981 { 1982 GObjectClass parent; 1983 /** 1984 * 1985 * Params: 1986 * accessible = an #AtkObject 1987 * Returns: a character string representing the accessible name of the object. 1988 */ 1989 extern(C) const(char)* function(AtkObject* accessible) getName; 1990 /** 1991 * 1992 * Params: 1993 * accessible = an #AtkObject 1994 * Returns: a character string representing the accessible description 1995 * of the accessible. 1996 */ 1997 extern(C) const(char)* function(AtkObject* accessible) getDescription; 1998 /** 1999 * 2000 * Params: 2001 * accessible = an #AtkObject 2002 * Returns: an #AtkObject representing the accessible 2003 * parent of the accessible 2004 */ 2005 extern(C) AtkObject* function(AtkObject* accessible) getParent; 2006 /** */ 2007 extern(C) int function(AtkObject* accessible) getNChildren; 2008 /** */ 2009 extern(C) AtkObject* function(AtkObject* accessible, int i) refChild; 2010 /** 2011 * 2012 * Params: 2013 * accessible = an #AtkObject 2014 * Returns: an integer which is the index of the accessible in its parent 2015 */ 2016 extern(C) int function(AtkObject* accessible) getIndexInParent; 2017 /** 2018 * 2019 * Params: 2020 * accessible = an #AtkObject 2021 * Returns: an #AtkRelationSet representing the relation set 2022 * of the object. 2023 */ 2024 extern(C) AtkRelationSet* function(AtkObject* accessible) refRelationSet; 2025 /** 2026 * 2027 * Params: 2028 * accessible = an #AtkObject 2029 * Returns: an #AtkRole which is the role of the accessible 2030 */ 2031 extern(C) AtkRole function(AtkObject* accessible) getRole; 2032 /** 2033 * 2034 * Params: 2035 * accessible = an #AtkObject 2036 * Returns: an #AtkLayer which is the layer of the accessible 2037 */ 2038 extern(C) AtkLayer function(AtkObject* accessible) getLayer; 2039 /** 2040 * 2041 * Params: 2042 * accessible = an #AtkObject 2043 * Returns: a gint which is the zorder of the accessible, i.e. the depth at 2044 * which the component is shown in relation to other components in the same 2045 * container. 2046 */ 2047 extern(C) int function(AtkObject* accessible) getMdiZorder; 2048 /** 2049 * 2050 * Params: 2051 * accessible = an #AtkObject 2052 * Returns: a reference to an #AtkStateSet which is the state 2053 * set of the accessible 2054 */ 2055 extern(C) AtkStateSet* function(AtkObject* accessible) refStateSet; 2056 /** */ 2057 extern(C) void function(AtkObject* accessible, const(char)* name) setName; 2058 /** */ 2059 extern(C) void function(AtkObject* accessible, const(char)* description) setDescription; 2060 /** */ 2061 extern(C) void function(AtkObject* accessible, AtkObject* parent) setParent; 2062 /** */ 2063 extern(C) void function(AtkObject* accessible, AtkRole role) setRole; 2064 /** 2065 * 2066 * Params: 2067 * accessible = an #AtkObject 2068 * handler = a function to be called when a property changes its value 2069 * Returns: a #guint which is the handler id used in 2070 * atk_object_remove_property_change_handler() 2071 */ 2072 extern(C) uint function(AtkObject* accessible, AtkPropertyChangeHandler* handler) connectPropertyChangeHandler; 2073 /** */ 2074 extern(C) void function(AtkObject* accessible, uint handlerId) removePropertyChangeHandler; 2075 /** */ 2076 extern(C) void function(AtkObject* accessible, void* data) initialize; 2077 /** */ 2078 extern(C) void function(AtkObject* accessible, uint changeIndex, void* changedChild) childrenChanged; 2079 /** */ 2080 extern(C) void function(AtkObject* accessible, int focusIn) focusEvent; 2081 /** */ 2082 extern(C) void function(AtkObject* accessible, AtkPropertyValues* values) propertyChange; 2083 /** */ 2084 extern(C) void function(AtkObject* accessible, const(char)* name, int stateSet) stateChange; 2085 /** */ 2086 extern(C) void function(AtkObject* accessible) visibleDataChanged; 2087 /** */ 2088 extern(C) void function(AtkObject* accessible, void** child) activeDescendantChanged; 2089 /** 2090 * 2091 * Params: 2092 * accessible = An #AtkObject. 2093 * Returns: an #AtkAttributeSet consisting of all 2094 * explicit properties/annotations applied to the object, or an empty 2095 * set if the object has no name-value pair attributes assigned to 2096 * it. This #atkattributeset should be freed by a call to 2097 * atk_attribute_set_free(). 2098 */ 2099 extern(C) AtkAttributeSet* function(AtkObject* accessible) getAttributes; 2100 /** 2101 * 2102 * Params: 2103 * accessible = an #AtkObject 2104 * Returns: a UTF-8 string indicating the POSIX-style LC_MESSAGES 2105 * locale of @accessible. 2106 */ 2107 extern(C) const(char)* function(AtkObject* accessible) getObjectLocale; 2108 AtkFunction pad1; 2109 } 2110 2111 struct AtkObjectFactory 2112 { 2113 GObject parent; 2114 } 2115 2116 struct AtkObjectFactoryClass 2117 { 2118 GObjectClass parentClass; 2119 /** */ 2120 extern(C) AtkObject* function(GObject* obj) createAccessible; 2121 /** */ 2122 extern(C) void function(AtkObjectFactory* factory) invalidate; 2123 /** */ 2124 extern(C) GType function() getAccessibleType; 2125 AtkFunction pad1; 2126 AtkFunction pad2; 2127 } 2128 2129 struct AtkPlug 2130 { 2131 AtkObject parent; 2132 } 2133 2134 struct AtkPlugClass 2135 { 2136 AtkObjectClass parentClass; 2137 /** */ 2138 extern(C) char* function(AtkPlug* obj) getObjectId; 2139 } 2140 2141 /** 2142 * Note: @old_value field of #AtkPropertyValues will not contain a 2143 * valid value. This is a field defined with the purpose of contain 2144 * the previous value of the property, but is not used anymore. 2145 */ 2146 struct AtkPropertyValues 2147 { 2148 /** 2149 * The name of the ATK property which has changed. 2150 */ 2151 const(char)* propertyName; 2152 /** 2153 * NULL. This field is not used anymore. 2154 */ 2155 GValue oldValue; 2156 /** 2157 * The new value of the named property. 2158 */ 2159 GValue newValue; 2160 } 2161 2162 struct AtkRange; 2163 2164 /** 2165 * A data structure for holding a rectangle. Those coordinates are 2166 * relative to the component top-level parent. 2167 */ 2168 struct AtkRectangle 2169 { 2170 /** 2171 * X coordinate of the left side of the rectangle. 2172 */ 2173 int x; 2174 /** 2175 * Y coordinate of the top side of the rectangle. 2176 */ 2177 int y; 2178 /** 2179 * width of the rectangle. 2180 */ 2181 int width; 2182 /** 2183 * height of the rectangle. 2184 */ 2185 int height; 2186 } 2187 2188 struct AtkRegistry 2189 { 2190 GObject parent; 2191 GHashTable* factoryTypeRegistry; 2192 GHashTable* factorySingletonCache; 2193 } 2194 2195 struct AtkRegistryClass 2196 { 2197 GObjectClass parentClass; 2198 } 2199 2200 struct AtkRelation 2201 { 2202 GObject parent; 2203 GPtrArray* target; 2204 AtkRelationType relationship; 2205 } 2206 2207 struct AtkRelationClass 2208 { 2209 GObjectClass parent; 2210 } 2211 2212 struct AtkRelationSet 2213 { 2214 GObject parent; 2215 GPtrArray* relations; 2216 } 2217 2218 struct AtkRelationSetClass 2219 { 2220 GObjectClass parent; 2221 AtkFunction pad1; 2222 AtkFunction pad2; 2223 } 2224 2225 struct AtkSelection; 2226 2227 struct AtkSelectionIface 2228 { 2229 GTypeInterface parent; 2230 /** 2231 * 2232 * Params: 2233 * selection = a #GObject instance that implements AtkSelectionIface 2234 * i = a #gint specifying the child index. 2235 * Returns: TRUE if success, FALSE otherwise. 2236 */ 2237 extern(C) int function(AtkSelection* selection, int i) addSelection; 2238 /** 2239 * 2240 * Params: 2241 * selection = a #GObject instance that implements AtkSelectionIface 2242 * Returns: TRUE if success, FALSE otherwise. 2243 */ 2244 extern(C) int function(AtkSelection* selection) clearSelection; 2245 /** 2246 * 2247 * Params: 2248 * selection = a #GObject instance that implements AtkSelectionIface 2249 * i = a #gint specifying the index in the selection set. (e.g. the 2250 * ith selection as opposed to the ith child). 2251 * Returns: an #AtkObject representing the 2252 * selected accessible, or %NULL if @selection does not implement this 2253 * interface. 2254 */ 2255 extern(C) AtkObject* function(AtkSelection* selection, int i) refSelection; 2256 /** 2257 * 2258 * Params: 2259 * selection = a #GObject instance that implements AtkSelectionIface 2260 * Returns: a gint representing the number of items selected, or 0 2261 * if @selection does not implement this interface. 2262 */ 2263 extern(C) int function(AtkSelection* selection) getSelectionCount; 2264 /** 2265 * 2266 * Params: 2267 * selection = a #GObject instance that implements AtkSelectionIface 2268 * i = a #gint specifying the child index. 2269 * Returns: a gboolean representing the specified child is selected, or 0 2270 * if @selection does not implement this interface. 2271 */ 2272 extern(C) int function(AtkSelection* selection, int i) isChildSelected; 2273 /** 2274 * 2275 * Params: 2276 * selection = a #GObject instance that implements AtkSelectionIface 2277 * i = a #gint specifying the index in the selection set. (e.g. the 2278 * ith selection as opposed to the ith child). 2279 * Returns: TRUE if success, FALSE otherwise. 2280 */ 2281 extern(C) int function(AtkSelection* selection, int i) removeSelection; 2282 /** 2283 * 2284 * Params: 2285 * selection = a #GObject instance that implements AtkSelectionIface 2286 * Returns: TRUE if success, FALSE otherwise. 2287 */ 2288 extern(C) int function(AtkSelection* selection) selectAllSelection; 2289 /** */ 2290 extern(C) void function(AtkSelection* selection) selectionChanged; 2291 } 2292 2293 struct AtkSocket 2294 { 2295 AtkObject parent; 2296 char* embeddedPlugId; 2297 } 2298 2299 struct AtkSocketClass 2300 { 2301 AtkObjectClass parentClass; 2302 /** */ 2303 extern(C) void function(AtkSocket* obj, char* plugId) embed; 2304 } 2305 2306 struct AtkStateSet 2307 { 2308 GObject parent; 2309 } 2310 2311 struct AtkStateSetClass 2312 { 2313 GObjectClass parent; 2314 } 2315 2316 struct AtkStreamableContent; 2317 2318 struct AtkStreamableContentIface 2319 { 2320 GTypeInterface parent; 2321 /** 2322 * 2323 * Params: 2324 * streamable = a GObject instance that implements AtkStreamableContentIface 2325 * Returns: a gint which is the number of mime types supported by the object. 2326 */ 2327 extern(C) int function(AtkStreamableContent* streamable) getNMimeTypes; 2328 /** 2329 * 2330 * Params: 2331 * streamable = a GObject instance that implements AtkStreamableContent 2332 * i = a gint representing the position of the mime type starting from 0 2333 * Returns: a gchar* representing the specified mime type; the caller 2334 * should not free the character string. 2335 */ 2336 extern(C) const(char)* function(AtkStreamableContent* streamable, int i) getMimeType; 2337 /** 2338 * 2339 * Params: 2340 * streamable = a GObject instance that implements AtkStreamableContentIface 2341 * mimeType = a gchar* representing the mime type 2342 * Returns: A #GIOChannel which contains the content in the 2343 * specified mime type. 2344 */ 2345 extern(C) GIOChannel* function(AtkStreamableContent* streamable, const(char)* mimeType) getStream; 2346 /** 2347 * 2348 * Params: 2349 * streamable = a GObject instance that implements AtkStreamableContentIface 2350 * mimeType = a gchar* representing the mime type, or NULL to request a URI 2351 * for the default mime type. 2352 * Returns: Returns a string representing a URI, or %NULL 2353 * if no corresponding URI can be constructed. 2354 */ 2355 extern(C) const(char)* function(AtkStreamableContent* streamable, const(char)* mimeType) getUri; 2356 AtkFunction pad1; 2357 AtkFunction pad2; 2358 AtkFunction pad3; 2359 } 2360 2361 struct AtkTable; 2362 2363 struct AtkTableCell; 2364 2365 /** 2366 * AtkTableCell is an interface for cells inside an #AtkTable. 2367 * 2368 * Since: 2.12 2369 */ 2370 struct AtkTableCellIface 2371 { 2372 GTypeInterface parent; 2373 /** 2374 * 2375 * Params: 2376 * cell = a GObject instance that implements AtkTableCellIface 2377 * Returns: a gint representing the number of columns occupied by this cell, 2378 * or 0 if the cell does not implement this method. 2379 */ 2380 extern(C) int function(AtkTableCell* cell) getColumnSpan; 2381 /** 2382 * 2383 * Params: 2384 * cell = a GObject instance that implements AtkTableCellIface 2385 * Returns: a GPtrArray of AtkObjects 2386 * representing the column header cells. 2387 */ 2388 extern(C) GPtrArray* function(AtkTableCell* cell) getColumnHeaderCells; 2389 /** 2390 * 2391 * Params: 2392 * cell = a GObject instance that implements AtkTableCellIface 2393 * row = the row of the given cell. 2394 * column = the column of the given cell. 2395 * Returns: TRUE if successful; FALSE otherwise. 2396 */ 2397 extern(C) int function(AtkTableCell* cell, int* row, int* column) getPosition; 2398 /** 2399 * 2400 * Params: 2401 * cell = a GObject instance that implements AtkTableCellIface 2402 * Returns: a gint representing the number of rows occupied by this cell, 2403 * or 0 if the cell does not implement this method. 2404 */ 2405 extern(C) int function(AtkTableCell* cell) getRowSpan; 2406 /** 2407 * 2408 * Params: 2409 * cell = a GObject instance that implements AtkTableCellIface 2410 * Returns: a GPtrArray of AtkObjects 2411 * representing the row header cells. 2412 */ 2413 extern(C) GPtrArray* function(AtkTableCell* cell) getRowHeaderCells; 2414 /** 2415 * 2416 * Params: 2417 * cell = a GObject instance that implements AtkTableCellIface 2418 * row = the row index of the given cell. 2419 * column = the column index of the given cell. 2420 * rowSpan = the number of rows occupied by this cell. 2421 * columnSpan = the number of columns occupied by this cell. 2422 * Returns: TRUE if successful; FALSE otherwise. 2423 */ 2424 extern(C) int function(AtkTableCell* cell, int* row, int* column, int* rowSpan, int* columnSpan) getRowColumnSpan; 2425 /** 2426 * 2427 * Params: 2428 * cell = a GObject instance that implements AtkTableCellIface 2429 * Returns: the atk object for the containing table. 2430 */ 2431 extern(C) AtkObject* function(AtkTableCell* cell) getTable; 2432 } 2433 2434 struct AtkTableIface 2435 { 2436 GTypeInterface parent; 2437 /** 2438 * 2439 * Params: 2440 * table = a GObject instance that implements AtkTableIface 2441 * row = a #gint representing a row in @table 2442 * column = a #gint representing a column in @table 2443 * Returns: an #AtkObject representing the referred 2444 * to accessible 2445 */ 2446 extern(C) AtkObject* function(AtkTable* table, int row, int column) refAt; 2447 /** 2448 * 2449 * Params: 2450 * table = a GObject instance that implements AtkTableIface 2451 * row = a #gint representing a row in @table 2452 * column = a #gint representing a column in @table 2453 * Returns: a #gint representing the index at specified position. 2454 * The value -1 is returned if the object at row,column is not a child 2455 * of table or table does not implement this interface. 2456 */ 2457 extern(C) int function(AtkTable* table, int row, int column) getIndexAt; 2458 /** 2459 * 2460 * Params: 2461 * table = a GObject instance that implements AtkTableInterface 2462 * index = a #gint representing an index in @table 2463 * Returns: a gint representing the column at the specified index, 2464 * or -1 if the table does not implement this method. 2465 */ 2466 extern(C) int function(AtkTable* table, int index) getColumnAtIndex; 2467 /** 2468 * 2469 * Params: 2470 * table = a GObject instance that implements AtkTableInterface 2471 * index = a #gint representing an index in @table 2472 * Returns: a gint representing the row at the specified index, 2473 * or -1 if the table does not implement this method. 2474 */ 2475 extern(C) int function(AtkTable* table, int index) getRowAtIndex; 2476 /** 2477 * 2478 * Params: 2479 * table = a GObject instance that implements AtkTableIface 2480 * Returns: a gint representing the number of columns, or 0 2481 * if value does not implement this interface. 2482 */ 2483 extern(C) int function(AtkTable* table) getNColumns; 2484 /** 2485 * 2486 * Params: 2487 * table = a GObject instance that implements AtkTableIface 2488 * Returns: a gint representing the number of rows, or 0 2489 * if value does not implement this interface. 2490 */ 2491 extern(C) int function(AtkTable* table) getNRows; 2492 /** 2493 * 2494 * Params: 2495 * table = a GObject instance that implements AtkTableIface 2496 * row = a #gint representing a row in @table 2497 * column = a #gint representing a column in @table 2498 * Returns: a gint representing the column extent at specified position, or 0 2499 * if value does not implement this interface. 2500 */ 2501 extern(C) int function(AtkTable* table, int row, int column) getColumnExtentAt; 2502 /** 2503 * 2504 * Params: 2505 * table = a GObject instance that implements AtkTableIface 2506 * row = a #gint representing a row in @table 2507 * column = a #gint representing a column in @table 2508 * Returns: a gint representing the row extent at specified position, or 0 2509 * if value does not implement this interface. 2510 */ 2511 extern(C) int function(AtkTable* table, int row, int column) getRowExtentAt; 2512 /** 2513 * 2514 * Params: 2515 * table = a GObject instance that implements AtkTableInterface 2516 * Returns: a AtkObject* representing the 2517 * table caption, or %NULL if value does not implement this interface. 2518 */ 2519 extern(C) AtkObject* function(AtkTable* table) getCaption; 2520 /** 2521 * 2522 * Params: 2523 * table = a GObject instance that implements AtkTableIface 2524 * column = a #gint representing a column in @table 2525 * Returns: a gchar* representing the column description, or %NULL 2526 * if value does not implement this interface. 2527 */ 2528 extern(C) const(char)* function(AtkTable* table, int column) getColumnDescription; 2529 /** 2530 * 2531 * Params: 2532 * table = a GObject instance that implements AtkTableIface 2533 * column = a #gint representing a column in the table 2534 * Returns: a AtkObject* representing the 2535 * specified column header, or %NULL if value does not implement this 2536 * interface. 2537 */ 2538 extern(C) AtkObject* function(AtkTable* table, int column) getColumnHeader; 2539 /** 2540 * 2541 * Params: 2542 * table = a GObject instance that implements AtkTableIface 2543 * row = a #gint representing a row in @table 2544 * Returns: a gchar* representing the row description, or 2545 * %NULL if value does not implement this interface. 2546 */ 2547 extern(C) const(char)* function(AtkTable* table, int row) getRowDescription; 2548 /** 2549 * 2550 * Params: 2551 * table = a GObject instance that implements AtkTableIface 2552 * row = a #gint representing a row in the table 2553 * Returns: a AtkObject* representing the 2554 * specified row header, or %NULL if value does not implement this 2555 * interface. 2556 */ 2557 extern(C) AtkObject* function(AtkTable* table, int row) getRowHeader; 2558 /** 2559 * 2560 * Params: 2561 * table = a GObject instance that implements AtkTableIface 2562 * Returns: a AtkObject* representing a summary description 2563 * of the table, or zero if value does not implement this interface. 2564 */ 2565 extern(C) AtkObject* function(AtkTable* table) getSummary; 2566 /** */ 2567 extern(C) void function(AtkTable* table, AtkObject* caption) setCaption; 2568 /** */ 2569 extern(C) void function(AtkTable* table, int column, const(char)* description) setColumnDescription; 2570 /** */ 2571 extern(C) void function(AtkTable* table, int column, AtkObject* header) setColumnHeader; 2572 /** */ 2573 extern(C) void function(AtkTable* table, int row, const(char)* description) setRowDescription; 2574 /** */ 2575 extern(C) void function(AtkTable* table, int row, AtkObject* header) setRowHeader; 2576 /** */ 2577 extern(C) void function(AtkTable* table, AtkObject* accessible) setSummary; 2578 /** 2579 * 2580 * Params: 2581 * table = a GObject instance that implements AtkTableIface 2582 * selected = a #gint** that is to contain the selected columns numbers 2583 * Returns: a gint representing the number of selected columns, 2584 * or %0 if value does not implement this interface. 2585 */ 2586 extern(C) int function(AtkTable* table, int** selected) getSelectedColumns; 2587 /** 2588 * 2589 * Params: 2590 * table = a GObject instance that implements AtkTableIface 2591 * selected = a #gint** that is to contain the selected row numbers 2592 * Returns: a gint representing the number of selected rows, 2593 * or zero if value does not implement this interface. 2594 */ 2595 extern(C) int function(AtkTable* table, int** selected) getSelectedRows; 2596 /** 2597 * 2598 * Params: 2599 * table = a GObject instance that implements AtkTableIface 2600 * column = a #gint representing a column in @table 2601 * Returns: a gboolean representing if the column is selected, or 0 2602 * if value does not implement this interface. 2603 */ 2604 extern(C) int function(AtkTable* table, int column) isColumnSelected; 2605 /** 2606 * 2607 * Params: 2608 * table = a GObject instance that implements AtkTableIface 2609 * row = a #gint representing a row in @table 2610 * Returns: a gboolean representing if the row is selected, or 0 2611 * if value does not implement this interface. 2612 */ 2613 extern(C) int function(AtkTable* table, int row) isRowSelected; 2614 /** 2615 * 2616 * Params: 2617 * table = a GObject instance that implements AtkTableIface 2618 * row = a #gint representing a row in @table 2619 * column = a #gint representing a column in @table 2620 * Returns: a gboolean representing if the cell is selected, or 0 2621 * if value does not implement this interface. 2622 */ 2623 extern(C) int function(AtkTable* table, int row, int column) isSelected; 2624 /** 2625 * 2626 * Params: 2627 * table = a GObject instance that implements AtkTableIface 2628 * row = a #gint representing a row in @table 2629 * Returns: a gboolean representing if row was successfully added to selection, 2630 * or 0 if value does not implement this interface. 2631 */ 2632 extern(C) int function(AtkTable* table, int row) addRowSelection; 2633 /** 2634 * 2635 * Params: 2636 * table = a GObject instance that implements AtkTableIface 2637 * row = a #gint representing a row in @table 2638 * Returns: a gboolean representing if the row was successfully removed from 2639 * the selection, or 0 if value does not implement this interface. 2640 */ 2641 extern(C) int function(AtkTable* table, int row) removeRowSelection; 2642 /** 2643 * 2644 * Params: 2645 * table = a GObject instance that implements AtkTableIface 2646 * column = a #gint representing a column in @table 2647 * Returns: a gboolean representing if the column was successfully added to 2648 * the selection, or 0 if value does not implement this interface. 2649 */ 2650 extern(C) int function(AtkTable* table, int column) addColumnSelection; 2651 /** 2652 * 2653 * Params: 2654 * table = a GObject instance that implements AtkTableIface 2655 * column = a #gint representing a column in @table 2656 * Returns: a gboolean representing if the column was successfully removed from 2657 * the selection, or 0 if value does not implement this interface. 2658 */ 2659 extern(C) int function(AtkTable* table, int column) removeColumnSelection; 2660 /** */ 2661 extern(C) void function(AtkTable* table, int row, int numInserted) rowInserted; 2662 /** */ 2663 extern(C) void function(AtkTable* table, int column, int numInserted) columnInserted; 2664 /** */ 2665 extern(C) void function(AtkTable* table, int row, int numDeleted) rowDeleted; 2666 /** */ 2667 extern(C) void function(AtkTable* table, int column, int numDeleted) columnDeleted; 2668 /** */ 2669 extern(C) void function(AtkTable* table) rowReordered; 2670 /** */ 2671 extern(C) void function(AtkTable* table) columnReordered; 2672 /** */ 2673 extern(C) void function(AtkTable* table) modelChanged; 2674 } 2675 2676 struct AtkText; 2677 2678 struct AtkTextIface 2679 { 2680 GTypeInterface parent; 2681 /** 2682 * 2683 * Params: 2684 * text = an #AtkText 2685 * startOffset = a starting character offset within @text 2686 * endOffset = an ending character offset within @text, or -1 for the end of the string. 2687 * Returns: a newly allocated string containing the text from @start_offset up 2688 * to, but not including @end_offset. Use g_free() to free the returned 2689 * string. 2690 */ 2691 extern(C) char* function(AtkText* text, int startOffset, int endOffset) getText; 2692 /** 2693 * 2694 * Params: 2695 * text = an #AtkText 2696 * offset = position 2697 * boundaryType = An #AtkTextBoundary 2698 * startOffset = the starting character offset of the returned string 2699 * endOffset = the offset of the first character after the 2700 * returned substring 2701 * Returns: a newly allocated string containing the text after @offset bounded 2702 * by the specified @boundary_type. Use g_free() to free the returned 2703 * string. 2704 */ 2705 extern(C) char* function(AtkText* text, int offset, AtkTextBoundary boundaryType, int* startOffset, int* endOffset) getTextAfterOffset; 2706 /** 2707 * 2708 * Params: 2709 * text = an #AtkText 2710 * offset = position 2711 * boundaryType = An #AtkTextBoundary 2712 * startOffset = the starting character offset of the returned string 2713 * endOffset = the offset of the first character after the 2714 * returned substring 2715 * Returns: a newly allocated string containing the text at @offset bounded 2716 * by the specified @boundary_type. Use g_free() to free the returned 2717 * string. 2718 */ 2719 extern(C) char* function(AtkText* text, int offset, AtkTextBoundary boundaryType, int* startOffset, int* endOffset) getTextAtOffset; 2720 /** 2721 * 2722 * Params: 2723 * text = an #AtkText 2724 * offset = a character offset within @text 2725 * Returns: the character at @offset or 0 in the case of failure. 2726 */ 2727 extern(C) dchar function(AtkText* text, int offset) getCharacterAtOffset; 2728 /** 2729 * 2730 * Params: 2731 * text = an #AtkText 2732 * offset = position 2733 * boundaryType = An #AtkTextBoundary 2734 * startOffset = the starting character offset of the returned string 2735 * endOffset = the offset of the first character after the 2736 * returned substring 2737 * Returns: a newly allocated string containing the text before @offset bounded 2738 * by the specified @boundary_type. Use g_free() to free the returned 2739 * string. 2740 */ 2741 extern(C) char* function(AtkText* text, int offset, AtkTextBoundary boundaryType, int* startOffset, int* endOffset) getTextBeforeOffset; 2742 /** 2743 * 2744 * Params: 2745 * text = an #AtkText 2746 * Returns: the character offset of the position of the caret or -1 if 2747 * the caret is not located inside the element or in the case of 2748 * any other failure. 2749 */ 2750 extern(C) int function(AtkText* text) getCaretOffset; 2751 /** 2752 * 2753 * Params: 2754 * text = an #AtkText 2755 * offset = the character offset at which to get the attributes, -1 means the offset of 2756 * the character to be inserted at the caret location. 2757 * startOffset = the address to put the start offset of the range 2758 * endOffset = the address to put the end offset of the range 2759 * Returns: an #AtkAttributeSet which contains the attributes 2760 * explicitly set at @offset. This #AtkAttributeSet should be freed by 2761 * a call to atk_attribute_set_free(). 2762 */ 2763 extern(C) AtkAttributeSet* function(AtkText* text, int offset, int* startOffset, int* endOffset) getRunAttributes; 2764 /** 2765 * 2766 * Params: 2767 * text = an #AtkText 2768 * Returns: an #AtkAttributeSet which contains the default text 2769 * attributes for this #AtkText. This #AtkAttributeSet should be freed by 2770 * a call to atk_attribute_set_free(). 2771 */ 2772 extern(C) AtkAttributeSet* function(AtkText* text) getDefaultAttributes; 2773 /** */ 2774 extern(C) void function(AtkText* text, int offset, int* x, int* y, int* width, int* height, AtkCoordType coords) getCharacterExtents; 2775 /** 2776 * 2777 * Params: 2778 * text = an #AtkText 2779 * Returns: the number of characters or -1 in case of failure. 2780 */ 2781 extern(C) int function(AtkText* text) getCharacterCount; 2782 /** 2783 * 2784 * Params: 2785 * text = an #AtkText 2786 * x = screen x-position of character 2787 * y = screen y-position of character 2788 * coords = specify whether coordinates are relative to the screen or 2789 * widget window 2790 * Returns: the offset to the character which is located at the specified 2791 * @x and @y coordinates of -1 in case of failure. 2792 */ 2793 extern(C) int function(AtkText* text, int x, int y, AtkCoordType coords) getOffsetAtPoint; 2794 /** 2795 * 2796 * Params: 2797 * text = an #AtkText 2798 * Returns: The number of selected regions, or -1 in the case of failure. 2799 */ 2800 extern(C) int function(AtkText* text) getNSelections; 2801 /** 2802 * 2803 * Params: 2804 * text = an #AtkText 2805 * selectionNum = The selection number. The selected regions are 2806 * assigned numbers that correspond to how far the region is from the 2807 * start of the text. The selected region closest to the beginning 2808 * of the text region is assigned the number 0, etc. Note that adding, 2809 * moving or deleting a selected region can change the numbering. 2810 * startOffset = passes back the starting character offset of the selected region 2811 * endOffset = passes back the ending character offset (offset immediately past) 2812 * of the selected region 2813 * Returns: a newly allocated string containing the selected text. Use g_free() 2814 * to free the returned string. 2815 */ 2816 extern(C) char* function(AtkText* text, int selectionNum, int* startOffset, int* endOffset) getSelection; 2817 /** 2818 * 2819 * Params: 2820 * text = an #AtkText 2821 * startOffset = the starting character offset of the selected region 2822 * endOffset = the offset of the first character after the selected region. 2823 * Returns: %TRUE if successful, %FALSE otherwise 2824 */ 2825 extern(C) int function(AtkText* text, int startOffset, int endOffset) addSelection; 2826 /** 2827 * 2828 * Params: 2829 * text = an #AtkText 2830 * selectionNum = The selection number. The selected regions are 2831 * assigned numbers that correspond to how far the region is from the 2832 * start of the text. The selected region closest to the beginning 2833 * of the text region is assigned the number 0, etc. Note that adding, 2834 * moving or deleting a selected region can change the numbering. 2835 * Returns: %TRUE if successful, %FALSE otherwise 2836 */ 2837 extern(C) int function(AtkText* text, int selectionNum) removeSelection; 2838 /** 2839 * 2840 * Params: 2841 * text = an #AtkText 2842 * selectionNum = The selection number. The selected regions are 2843 * assigned numbers that correspond to how far the region is from the 2844 * start of the text. The selected region closest to the beginning 2845 * of the text region is assigned the number 0, etc. Note that adding, 2846 * moving or deleting a selected region can change the numbering. 2847 * startOffset = the new starting character offset of the selection 2848 * endOffset = the new end position of (e.g. offset immediately past) 2849 * the selection 2850 * Returns: %TRUE if successful, %FALSE otherwise 2851 */ 2852 extern(C) int function(AtkText* text, int selectionNum, int startOffset, int endOffset) setSelection; 2853 /** 2854 * 2855 * Params: 2856 * text = an #AtkText 2857 * offset = the character offset of the new caret position 2858 * Returns: %TRUE if successful, %FALSE otherwise. 2859 */ 2860 extern(C) int function(AtkText* text, int offset) setCaretOffset; 2861 /** */ 2862 extern(C) void function(AtkText* text, int position, int length) textChanged; 2863 /** */ 2864 extern(C) void function(AtkText* text, int location) textCaretMoved; 2865 /** */ 2866 extern(C) void function(AtkText* text) textSelectionChanged; 2867 /** */ 2868 extern(C) void function(AtkText* text) textAttributesChanged; 2869 /** */ 2870 extern(C) void function(AtkText* text, int startOffset, int endOffset, AtkCoordType coordType, AtkTextRectangle* rect) getRangeExtents; 2871 /** 2872 * 2873 * Params: 2874 * text = an #AtkText 2875 * rect = An AtkTextRectangle giving the dimensions of the bounding box. 2876 * coordType = Specify whether coordinates are relative to the screen or widget window. 2877 * xClipType = Specify the horizontal clip type. 2878 * yClipType = Specify the vertical clip type. 2879 * Returns: Array of AtkTextRange. The last 2880 * element of the array returned by this function will be NULL. 2881 */ 2882 extern(C) AtkTextRange** function(AtkText* text, AtkTextRectangle* rect, AtkCoordType coordType, AtkTextClipType xClipType, AtkTextClipType yClipType) getBoundedRanges; 2883 /** 2884 * 2885 * Params: 2886 * text = an #AtkText 2887 * offset = position 2888 * granularity = An #AtkTextGranularity 2889 * startOffset = the starting character offset of the returned string, or -1 2890 * in the case of error (e.g. invalid offset, not implemented) 2891 * endOffset = the offset of the first character after the returned string, 2892 * or -1 in the case of error (e.g. invalid offset, not implemented) 2893 * Returns: a newly allocated string containing the text at 2894 * the @offset bounded by the specified @granularity. Use g_free() 2895 * to free the returned string. Returns %NULL if the offset is invalid 2896 * or no implementation is available. 2897 */ 2898 extern(C) char* function(AtkText* text, int offset, AtkTextGranularity granularity, int* startOffset, int* endOffset) getStringAtOffset; 2899 /** 2900 * 2901 * Params: 2902 * text = an #AtkText 2903 * startOffset = start position 2904 * endOffset = end position, or -1 for the end of the string. 2905 * type = specify where the object should be made visible. 2906 * Returns: whether scrolling was successful. 2907 */ 2908 extern(C) int function(AtkText* text, int startOffset, int endOffset, AtkScrollType type) scrollSubstringTo; 2909 /** 2910 * 2911 * Params: 2912 * text = an #AtkText 2913 * startOffset = start position 2914 * endOffset = end position, or -1 for the end of the string. 2915 * coords = specify whether coordinates are relative to the screen or to the 2916 * parent object. 2917 * x = x-position where to scroll to 2918 * y = y-position where to scroll to 2919 * Returns: whether scrolling was successful. 2920 */ 2921 extern(C) int function(AtkText* text, int startOffset, int endOffset, AtkCoordType coords, int x, int y) scrollSubstringToPoint; 2922 } 2923 2924 /** 2925 * A structure used to describe a text range. 2926 */ 2927 struct AtkTextRange 2928 { 2929 /** 2930 * A rectangle giving the bounds of the text range 2931 */ 2932 AtkTextRectangle bounds; 2933 /** 2934 * The start offset of a AtkTextRange 2935 */ 2936 int startOffset; 2937 /** 2938 * The end offset of a AtkTextRange 2939 */ 2940 int endOffset; 2941 /** 2942 * The text in the text range 2943 */ 2944 char* content; 2945 } 2946 2947 /** 2948 * A structure used to store a rectangle used by AtkText. 2949 */ 2950 struct AtkTextRectangle 2951 { 2952 /** 2953 * The horizontal coordinate of a rectangle 2954 */ 2955 int x; 2956 /** 2957 * The vertical coordinate of a rectangle 2958 */ 2959 int y; 2960 /** 2961 * The width of a rectangle 2962 */ 2963 int width; 2964 /** 2965 * The height of a rectangle 2966 */ 2967 int height; 2968 } 2969 2970 /** 2971 * A set of ATK utility functions which are used to support event 2972 * registration of various types, and obtaining the 'root' accessible 2973 * of a process and information about the current ATK implementation 2974 * and toolkit version. 2975 */ 2976 struct AtkUtil 2977 { 2978 GObject parent; 2979 } 2980 2981 struct AtkUtilClass 2982 { 2983 GObjectClass parent; 2984 /** */ 2985 extern(C) uint function(GSignalEmissionHook listener, const(char)* eventType) addGlobalEventListener; 2986 /** */ 2987 extern(C) void function(uint listenerId) removeGlobalEventListener; 2988 /** */ 2989 extern(C) uint function(AtkKeySnoopFunc listener, void* data) addKeyEventListener; 2990 /** */ 2991 extern(C) void function(uint listenerId) removeKeyEventListener; 2992 /** */ 2993 extern(C) AtkObject* function() getRoot; 2994 /** */ 2995 extern(C) const(char)* function() getToolkitName; 2996 /** */ 2997 extern(C) const(char)* function() getToolkitVersion; 2998 } 2999 3000 struct AtkValue; 3001 3002 struct AtkValueIface 3003 { 3004 GTypeInterface parent; 3005 /** */ 3006 extern(C) void function(AtkValue* obj, GValue* value) getCurrentValue; 3007 /** */ 3008 extern(C) void function(AtkValue* obj, GValue* value) getMaximumValue; 3009 /** */ 3010 extern(C) void function(AtkValue* obj, GValue* value) getMinimumValue; 3011 /** 3012 * 3013 * Params: 3014 * obj = a GObject instance that implements AtkValueIface 3015 * value = a #GValue which is the desired new accessible value. 3016 * Returns: %TRUE if new value is successfully set, %FALSE otherwise. 3017 */ 3018 extern(C) int function(AtkValue* obj, GValue* value) setCurrentValue; 3019 /** */ 3020 extern(C) void function(AtkValue* obj, GValue* value) getMinimumIncrement; 3021 /** */ 3022 extern(C) void function(AtkValue* obj, double* value, char** text) getValueAndText; 3023 /** 3024 * 3025 * Params: 3026 * obj = a GObject instance that implements AtkValueIface 3027 * Returns: a newly allocated #AtkRange 3028 * that represents the minimum, maximum and descriptor (if available) 3029 * of @obj. NULL if that range is not defined. 3030 */ 3031 extern(C) AtkRange* function(AtkValue* obj) getRange; 3032 /** 3033 * 3034 * Params: 3035 * obj = a GObject instance that implements AtkValueIface 3036 * Returns: the minimum increment by which the value of this 3037 * object may be changed. zero if undefined. 3038 */ 3039 extern(C) double function(AtkValue* obj) getIncrement; 3040 /** 3041 * 3042 * Params: 3043 * obj = a GObject instance that implements AtkValueIface 3044 * Returns: an #GSList of 3045 * #AtkRange which each of the subranges defined for this object. Free 3046 * the returns list with g_slist_free(). 3047 */ 3048 extern(C) GSList* function(AtkValue* obj) getSubRanges; 3049 /** */ 3050 extern(C) void function(AtkValue* obj, double newValue) setValue; 3051 } 3052 3053 struct AtkWindow; 3054 3055 struct AtkWindowIface 3056 { 3057 GTypeInterface parent; 3058 } 3059 3060 /** 3061 * A function which is called when an object emits a matching event, 3062 * as used in #atk_add_focus_tracker. 3063 * Currently the only events for which object-specific handlers are 3064 * supported are events of type "focus:". Most clients of ATK will prefer to 3065 * attach signal handlers for the various ATK signals instead. 3066 * 3067 * see atk_add_focus_tracker. 3068 * 3069 * Params: 3070 * obj = An #AtkObject instance for whom the callback will be called when 3071 * the specified event (e.g. 'focus:') takes place. 3072 */ 3073 public alias extern(C) void function(AtkObject* obj) AtkEventListener; 3074 3075 /** 3076 * An #AtkEventListenerInit function is a special function that is 3077 * called in order to initialize the per-object event registration system 3078 * used by #AtkEventListener, if any preparation is required. 3079 * 3080 * see atk_focus_tracker_init. 3081 */ 3082 public alias extern(C) void function() AtkEventListenerInit; 3083 3084 /** 3085 * The type of callback function used for 3086 * atk_component_add_focus_handler() and 3087 * atk_component_remove_focus_handler() 3088 * 3089 * Deprecated: Deprecated with atk_component_add_focus_handler() 3090 * and atk_component_remove_focus_handler(). See those 3091 * methods for more information. 3092 * 3093 * Params: 3094 * object = the #AtkObject that receives/lose the focus 3095 * focusIn = TRUE if the object receives the focus 3096 */ 3097 public alias extern(C) void function(AtkObject* object, int focusIn) AtkFocusHandler; 3098 3099 /** 3100 * An AtkFunction is a function definition used for padding which has 3101 * been added to class and interface structures to allow for expansion 3102 * in the future. 3103 * 3104 * Params: 3105 * userData = custom data defined by the user 3106 * 3107 * Returns: not used 3108 */ 3109 public alias extern(C) int function(void* userData) AtkFunction; 3110 3111 /** 3112 * An #AtkKeySnoopFunc is a type of callback which is called whenever a key event occurs, 3113 * if registered via atk_add_key_event_listener. It allows for pre-emptive 3114 * interception of key events via the return code as described below. 3115 * 3116 * Params: 3117 * event = an AtkKeyEventStruct containing information about the key event for which 3118 * notification is being given. 3119 * userData = a block of data which will be passed to the event listener, on notification. 3120 * 3121 * Returns: TRUE (nonzero) if the event emission should be stopped and the event 3122 * discarded without being passed to the normal GUI recipient; FALSE (zero) if the 3123 * event dispatch to the client application should proceed as normal. 3124 * 3125 * see atk_add_key_event_listener. 3126 */ 3127 public alias extern(C) int function(AtkKeyEventStruct* event, void* userData) AtkKeySnoopFunc; 3128 3129 /** 3130 * An AtkPropertyChangeHandler is a function which is executed when an 3131 * AtkObject's property changes value. It is specified in a call to 3132 * atk_object_connect_property_change_handler(). 3133 * 3134 * Deprecated: Since 2.12. 3135 * 3136 * Params: 3137 * obj = atkobject which property changes 3138 * vals = values changed 3139 */ 3140 public alias extern(C) void function(AtkObject* obj, AtkPropertyValues* vals) AtkPropertyChangeHandler; 3141 3142 /** 3143 * Like atk_get_binary_age(), but from the headers used at 3144 * application compile time, rather than from the library linked 3145 * against at application run time. 3146 */ 3147 enum BINARY_AGE = 23411; 3148 alias ATK_BINARY_AGE = BINARY_AGE; 3149 3150 /** 3151 * Like atk_get_interface_age(), but from the headers used at 3152 * application compile time, rather than from the library linked 3153 * against at application run time. 3154 */ 3155 enum INTERFACE_AGE = 1; 3156 alias ATK_INTERFACE_AGE = INTERFACE_AGE; 3157 3158 /** 3159 * Like atk_get_major_version(), but from the headers used at 3160 * application compile time, rather than from the library linked 3161 * against at application run time. 3162 */ 3163 enum MAJOR_VERSION = 2; 3164 alias ATK_MAJOR_VERSION = MAJOR_VERSION; 3165 3166 /** 3167 * Like atk_get_micro_version(), but from the headers used at 3168 * application compile time, rather than from the library linked 3169 * against at application run time. 3170 */ 3171 enum MICRO_VERSION = 1; 3172 alias ATK_MICRO_VERSION = MICRO_VERSION; 3173 3174 /** 3175 * Like atk_get_minor_version(), but from the headers used at 3176 * application compile time, rather than from the library linked 3177 * against at application run time. 3178 */ 3179 enum MINOR_VERSION = 34; 3180 alias ATK_MINOR_VERSION = MINOR_VERSION; 3181 3182 /** 3183 * A macro that should be defined by the user prior to including 3184 * the atk/atk.h header. 3185 * The definition should be one of the predefined ATK version 3186 * macros: %ATK_VERSION_2_12, %ATK_VERSION_2_14,... 3187 * 3188 * This macro defines the earliest version of ATK that the package is 3189 * required to be able to compile against. 3190 * 3191 * If the compiler is configured to warn about the use of deprecated 3192 * functions, then using functions that were deprecated in version 3193 * %ATK_VERSION_MIN_REQUIRED or earlier will cause warnings (but 3194 * using functions deprecated in later releases will not). 3195 */ 3196 enum VERSION_MIN_REQUIRED = 2; 3197 alias ATK_VERSION_MIN_REQUIRED = VERSION_MIN_REQUIRED;