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