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 module gtkc.atktypes; 25 26 27 public import gtkc.glibtypes; 28 public import gtkc.gobjecttypes; 29 public alias void* AtkFocusHandler; 30 public struct AtkRectangle; 31 32 33 /** 34 * typedef guint64 AtkState; 35 * The AtkState value should not be referenceed directly. 36 */ 37 public alias ulong AtkState; 38 39 /** 40 * typedef GSList AtkAttributeSet; 41 * This is a singly-linked list (a GSList) of AtkAttribute. It is 42 * used by atk_text_get_run_attributes(), atk_text_get_default_attributes() 43 * and atk_editable_text_set_run_attributes() 44 */ 45 public alias GSList AtkAttributeSet; 46 /** 47 * Describes the type of link 48 * ATK_HYPERLINK_IS_INLINE 49 * Link is inline 50 */ 51 public enum AtkHyperlinkStateFlags 52 { 53 IS_INLINE = 1 << 0 54 } 55 /** 56 * Describes the role of an object 57 * These are the built-in enumerated roles that UI components can have in 58 * ATK. Other roles may be added at runtime, so an AtkRole >= 59 * ATK_ROLE_LAST_DEFINED is not necessarily an error. 60 * ATK_ROLE_INVALID 61 * Invalid role 62 * ATK_ROLE_ACCEL_LABEL 63 * A label which represents an accelerator 64 * ATK_ROLE_ALERT 65 * 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. 66 * ATK_ROLE_ANIMATION 67 * An object which is an animated image 68 * ATK_ROLE_ARROW 69 * An arrow in one of the four cardinal directions 70 * ATK_ROLE_CALENDAR 71 * An object that displays a calendar and allows the user to select a date 72 * ATK_ROLE_CANVAS 73 * An object that can be drawn into and is used to trap events 74 * ATK_ROLE_CHECK_BOX 75 * A choice that can be checked or unchecked and provides a separate indicator for the current state 76 * ATK_ROLE_CHECK_MENU_ITEM 77 * A menu item with a check box 78 * ATK_ROLE_COLOR_CHOOSER 79 * A specialized dialog that lets the user choose a color 80 * ATK_ROLE_COLUMN_HEADER 81 * The header for a column of data 82 * ATK_ROLE_COMBO_BOX 83 * A list of choices the user can select from 84 * ATK_ROLE_DATE_EDITOR 85 * An object whose purpose is to allow a user to edit a date 86 * ATK_ROLE_DESKTOP_ICON 87 * An inconifed internal frame within a DESKTOP_PANE 88 * ATK_ROLE_DESKTOP_FRAME 89 * A pane that supports internal frames and iconified versions of those internal frames 90 * ATK_ROLE_DIAL 91 * An object whose purpose is to allow a user to set a value 92 * ATK_ROLE_DIALOG 93 * A top level window with title bar and a border 94 * ATK_ROLE_DIRECTORY_PANE 95 * A pane that allows the user to navigate through and select the contents of a directory 96 * ATK_ROLE_DRAWING_AREA 97 * An object used for drawing custom user interface elements 98 * ATK_ROLE_FILE_CHOOSER 99 * A specialized dialog that lets the user choose a file 100 * ATK_ROLE_FILLER 101 * A object that fills up space in a user interface 102 * ATK_ROLE_FONT_CHOOSER 103 * A specialized dialog that lets the user choose a font 104 * ATK_ROLE_FRAME 105 * A top level window with a title bar, border, menubar, etc. 106 * ATK_ROLE_GLASS_PANE 107 * A pane that is guaranteed to be painted on top of all panes beneath it 108 * ATK_ROLE_HTML_CONTAINER 109 * A document container for HTML, whose children represent the document content 110 * ATK_ROLE_ICON 111 * A small fixed size picture, typically used to decorate components 112 * ATK_ROLE_IMAGE 113 * An object whose primary purpose is to display an image 114 * ATK_ROLE_INTERNAL_FRAME 115 * A frame-like object that is clipped by a desktop pane 116 * ATK_ROLE_LABEL 117 * An object used to present an icon or short string in an interface 118 * ATK_ROLE_LAYERED_PANE 119 * A specialized pane that allows its children to be drawn in layers, providing a form of stacking order 120 * ATK_ROLE_LIST 121 * An object that presents a list of objects to the user and allows the user to select one or more of them 122 * ATK_ROLE_LIST_ITEM 123 * An object that represents an element of a list 124 * ATK_ROLE_MENU 125 * An object usually found inside a menu bar that contains a list of actions the user can choose from 126 * ATK_ROLE_MENU_BAR 127 * 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 128 * ATK_ROLE_MENU_ITEM 129 * An object usually contained in a menu that presents an action the user can choose 130 * ATK_ROLE_OPTION_PANE 131 * A specialized pane whose primary use is inside a DIALOG 132 * ATK_ROLE_PAGE_TAB 133 * An object that is a child of a page tab list 134 * ATK_ROLE_PAGE_TAB_LIST 135 * An object that presents a series of panels (or page tabs), one at a time, through some mechanism provided by the object 136 * ATK_ROLE_PANEL 137 * A generic container that is often used to group objects 138 * ATK_ROLE_PASSWORD_TEXT 139 * A text object uses for passwords, or other places where the text content is not shown visibly to the user 140 * ATK_ROLE_POPUP_MENU 141 * 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 142 * ATK_ROLE_PROGRESS_BAR 143 * An object used to indicate how much of a task has been completed 144 * ATK_ROLE_PUSH_BUTTON 145 * An object the user can manipulate to tell the application to do something 146 * ATK_ROLE_RADIO_BUTTON 147 * A specialized check box that will cause other radio buttons in the same group to become unchecked when this one is checked 148 * ATK_ROLE_RADIO_MENU_ITEM 149 * A check menu item which belongs to a group. At each instant exactly one of the radio menu items from a group is selected 150 * ATK_ROLE_ROOT_PANE 151 * A specialized pane that has a glass pane and a layered pane as its children 152 * ATK_ROLE_ROW_HEADER 153 * The header for a row of data 154 * ATK_ROLE_SCROLL_BAR 155 * An object usually used to allow a user to incrementally view a large amount of data. 156 * ATK_ROLE_SCROLL_PANE 157 * An object that allows a user to incrementally view a large amount of information 158 * ATK_ROLE_SEPARATOR 159 * An object usually contained in a menu to provide a visible and logical separation of the contents in a menu 160 * ATK_ROLE_SLIDER 161 * An object that allows the user to select from a bounded range 162 * ATK_ROLE_SPLIT_PANE 163 * A specialized panel that presents two other panels at the same time 164 * ATK_ROLE_SPIN_BUTTON 165 * An object used to get an integer or floating point number from the user 166 * ATK_ROLE_STATUSBAR 167 * An object which reports messages of minor importance to the user 168 * ATK_ROLE_TABLE 169 * An object used to represent information in terms of rows and columns 170 * ATK_ROLE_TABLE_CELL 171 * A cell in a table 172 * ATK_ROLE_TABLE_COLUMN_HEADER 173 * The header for a column of a table 174 * ATK_ROLE_TABLE_ROW_HEADER 175 * The header for a row of a table 176 * ATK_ROLE_TEAR_OFF_MENU_ITEM 177 * A menu item used to tear off and reattach its menu 178 * ATK_ROLE_TERMINAL 179 * An object that represents an accessible terminal. Since: ATK-0.6 180 * ATK_ROLE_TEXT 181 * An object that presents text to the user 182 * ATK_ROLE_TOGGLE_BUTTON 183 * A specialized push button that can be checked or unchecked, but does not provide a separate indicator for the current state 184 * ATK_ROLE_TOOL_BAR 185 * A bar or palette usually composed of push buttons or toggle buttons 186 * ATK_ROLE_TOOL_TIP 187 * An object that provides information about another object 188 * ATK_ROLE_TREE 189 * An object used to represent hierarchical information to the user 190 * ATK_ROLE_TREE_TABLE 191 * An object capable of expanding and collapsing rows as well as showing multiple columns of data. Since: ATK-0.7 192 * ATK_ROLE_UNKNOWN 193 * The object contains some Accessible information, but its role is not known 194 * ATK_ROLE_VIEWPORT 195 * An object usually used in a scroll pane 196 * ATK_ROLE_WINDOW 197 * A top level window with no title or border. 198 * ATK_ROLE_HEADER 199 * An object that serves as a document header. Since: ATK-1.1.1 200 * ATK_ROLE_FOOTER 201 * An object that serves as a document footer. Since: ATK-1.1.1 202 * ATK_ROLE_PARAGRAPH 203 * An object which is contains a paragraph of text content. Since: ATK-1.1.1 204 * ATK_ROLE_RULER 205 * 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 206 * ATK_ROLE_APPLICATION 207 * 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 208 * ATK_ROLE_AUTOCOMPLETE 209 * 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 210 * ATK_ROLE_EDITBAR 211 * The object is an editable text object in a toolbar. Since: ATK-1.5 212 * ATK_ROLE_EMBEDDED 213 * 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 214 * ATK_ROLE_ENTRY 215 * 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 216 * ATK_ROLE_CHART 217 * 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 218 * ATK_ROLE_CAPTION 219 * The object contains descriptive information, usually textual, about another user interface element such as a table, chart, or image. Since: ATK-1.11 220 * ATK_ROLE_DOCUMENT_FRAME 221 * 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 222 * ATK_ROLE_HEADING 223 * 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. 224 * ATK_ROLE_PAGE 225 * 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 226 * ATK_ROLE_SECTION 227 * 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 228 * ATK_ROLE_REDUNDANT_OBJECT 229 * 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 230 * ATK_ROLE_FORM 231 * The object is a container for form controls, for instance as part of a 232 * web form or user-input form within a document. This role is primarily a tag/convenience for 233 * clients when navigating complex documents, it is not expected that ordinary GUI containers will 234 * always have ATK_ROLE_FORM. Since: ATK-1.12.0 235 * ATK_ROLE_LINK 236 * The object is a hypertext anchor, i.e. a "link" in a 237 * hypertext document. Such objects are distinct from 'inline' 238 * content which may also use the Hypertext/Hyperlink interfaces 239 * to indicate the range/location within a text object where 240 * an inline or embedded object lies. Since: ATK-1.12.1 241 * ATK_ROLE_INPUT_METHOD_WINDOW 242 * The object is a window or similar viewport 243 * which is used to allow composition or input of a 'complex character', 244 * in other words it is an "input method window." Since: ATK-1.12.1 245 * ATK_ROLE_LAST_DEFINED 246 * not a valid role, used for finding end of the enumeration 247 */ 248 public enum AtkRole 249 { 250 INVALID = 0, 251 ACCEL_LABEL, 252 ALERT, 253 ANIMATION, 254 ARROW, 255 CALENDAR, 256 CANVAS, 257 CHECK_BOX, 258 CHECK_MENU_ITEM, 259 COLOR_CHOOSER, 260 COLUMN_HEADER, 261 COMBO_BOX, 262 DATE_EDITOR, 263 DESKTOP_ICON, 264 DESKTOP_FRAME, 265 DIAL, 266 DIALOG, 267 DIRECTORY_PANE, 268 DRAWING_AREA, 269 FILE_CHOOSER, 270 FILLER, 271 FONT_CHOOSER, 272 FRAME, 273 GLASS_PANE, 274 HTML_CONTAINER, 275 ICON, 276 IMAGE, 277 INTERNAL_FRAME, 278 LABEL, 279 LAYERED_PANE, 280 LIST, 281 LIST_ITEM, 282 MENU, 283 MENU_BAR, 284 MENU_ITEM, 285 OPTION_PANE, 286 PAGE_TAB, 287 PAGE_TAB_LIST, 288 PANEL, 289 PASSWORD_TEXT, 290 POPUP_MENU, 291 PROGRESS_BAR, 292 PUSH_BUTTON, 293 RADIO_BUTTON, 294 RADIO_MENU_ITEM, 295 ROOT_PANE, 296 ROW_HEADER, 297 SCROLL_BAR, 298 SCROLL_PANE, 299 SEPARATOR, 300 SLIDER, 301 SPLIT_PANE, 302 SPIN_BUTTON, 303 STATUSBAR, 304 TABLE, 305 TABLE_CELL, 306 TABLE_COLUMN_HEADER, 307 TABLE_ROW_HEADER, 308 TEAR_OFF_MENU_ITEM, 309 TERMINAL, 310 TEXT, 311 TOGGLE_BUTTON, 312 TOOL_BAR, 313 TOOL_TIP, 314 TREE, 315 TREE_TABLE, 316 UNKNOWN, 317 VIEWPORT, 318 WINDOW, 319 HEADER, 320 FOOTER, 321 PARAGRAPH, 322 RULER, 323 APPLICATION, 324 AUTOCOMPLETE, 325 EDITBAR, 326 EMBEDDED, 327 ENTRY, 328 CHART, 329 CAPTION, 330 DOCUMENT_FRAME, 331 HEADING, 332 PAGE, 333 SECTION, 334 REDUNDANT_OBJECT, 335 FORM, 336 LINK, 337 INPUT_METHOD_WINDOW, 338 LAST_DEFINED 339 } 340 /** 341 * Describes the layer of a component 342 * These enumerated "layer values" are used when determining which UI 343 * rendering layer a component is drawn into, which can help in making 344 * determinations of when components occlude one another. 345 * ATK_LAYER_INVALID 346 * The object does not have a layer 347 * ATK_LAYER_BACKGROUND 348 * This layer is reserved for the desktop background 349 * ATK_LAYER_CANVAS 350 * This layer is used for Canvas components 351 * ATK_LAYER_WIDGET 352 * This layer is normally used for components 353 * ATK_LAYER_MDI 354 * This layer is used for layered components 355 * ATK_LAYER_POPUP 356 * This layer is used for popup components, such as menus 357 * ATK_LAYER_OVERLAY 358 * This layer is reserved for future use. 359 * ATK_LAYER_WINDOW 360 * This layer is used for toplevel windows. 361 */ 362 public enum AtkLayer 363 { 364 INVALID, 365 BACKGROUND, 366 CANVAS, 367 WIDGET, 368 MDI, 369 POPUP, 370 OVERLAY, 371 WINDOW 372 } 373 /** 374 * Describes the type of the relation 375 * ATK_RELATION_NULL 376 * Not used, represens "no relationship" or an error condition. 377 * ATK_RELATION_CONTROLLED_BY 378 * Indicates an object controlled by one or more target objects. 379 * ATK_RELATION_CONTROLLER_FOR 380 * Indicates an object is an controller for one or more target objects. 381 * ATK_RELATION_LABEL_FOR 382 * Indicates an object is a label for one or more target objects. 383 * ATK_RELATION_LABELLED_BY 384 * Indicates an object is labelled by one or more target objects. 385 * ATK_RELATION_MEMBER_OF 386 * Indicates an object is a member of a group of one or more target objects. 387 * ATK_RELATION_NODE_CHILD_OF 388 * 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. 389 * ATK_RELATION_FLOWS_TO 390 * Indicates that the object has content that flows logically to another 391 * AtkObject in a sequential way, (for instance text-flow). 392 * ATK_RELATION_FLOWS_FROM 393 * Indicates that the object has content that flows logically from 394 * another AtkObject in a sequential way, (for instance text-flow). 395 * ATK_RELATION_SUBWINDOW_OF 396 * Indicates a subwindow attached to a component but otherwise has no connection in the UI heirarchy to that component. 397 * ATK_RELATION_EMBEDS 398 * Indicates that the object visually embeds 399 * another object's content, i.e. this object's content flows around 400 * another's content. 401 * ATK_RELATION_EMBEDDED_BY 402 * Inverse of ATK_RELATION_EMBEDS, indicates that 403 * this object's content is visualy embedded in another object. 404 * ATK_RELATION_POPUP_FOR 405 * Indicates that an object is a popup for another object. 406 * ATK_RELATION_PARENT_WINDOW_OF 407 * Indicates that an object is a parent window of another object. 408 * ATK_RELATION_DESCRIBED_BY 409 * Indicates that another object provides descriptive information about this object; more verbose than ATK_RELATION_LABELLED_BY. 410 * ATK_RELATION_DESCRIPTION_FOR 411 * Indicates that an object provides descriptive information about another object; more verbose than ATK_RELATION_LABEL_FOR. 412 * ATK_RELATION_NODE_PARENT_OF 413 * Indicates an object is a cell in a treetable and is expanded to display other cells in the same column. 414 * ATK_RELATION_LAST_DEFINED 415 * Not used, this value indicates the end of the enumeration. 416 */ 417 public enum AtkRelationType 418 { 419 NULL = 0, 420 CONTROLLED_BY, 421 CONTROLLER_FOR, 422 LABEL_FOR, 423 LABELLED_BY, 424 MEMBER_OF, 425 NODE_CHILD_OF, 426 FLOWS_TO, 427 FLOWS_FROM, 428 SUBWINDOW_OF, 429 EMBEDS, 430 EMBEDDED_BY, 431 POPUP_FOR, 432 PARENT_WINDOW_OF, 433 DESCRIBED_BY, 434 DESCRIPTION_FOR, 435 NODE_PARENT_OF, 436 LAST_DEFINED 437 } 438 /** 439 * The possible types of states of an object 440 * ATK_STATE_INVALID 441 * Indicates an invalid state - probably an error condition. 442 * ATK_STATE_ACTIVE 443 * Indicates a window is currently the active window, or is an active subelement within a container or table 444 * ATK_STATE_ARMED 445 * 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. 446 * ATK_STATE_BUSY 447 * 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. 448 * ATK_STATE_CHECKED 449 * Indicates this object is currently checked, for instance a checkbox is 'non-empty'. 450 * ATK_STATE_DEFUNCT 451 * Indicates that this object no longer has a valid backing widget (for instance, if its peer object has been destroyed) 452 * ATK_STATE_EDITABLE 453 * Indicates the user can change the contents of this object 454 * ATK_STATE_ENABLED 455 * 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 456 * ATK_STATE_EXPANDABLE 457 * Indicates this object allows progressive disclosure of its children 458 * ATK_STATE_EXPANDED 459 * Indicates this object its expanded - see ATK_STATE_EXPANDABLE above 460 * ATK_STATE_FOCUSABLE 461 * 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 462 * ATK_STATE_FOCUSED 463 * Indicates this object currently has the keyboard focus 464 * ATK_STATE_HORIZONTAL 465 * 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. 466 * ATK_STATE_ICONIFIED 467 * Indicates this object is minimized and is represented only by an icon 468 * ATK_STATE_MODAL 469 * Indicates something must be done with this object before the user can interact with an object in a different window 470 * ATK_STATE_MULTI_LINE 471 * Indicates this (text) object can contain multiple lines of text 472 * ATK_STATE_MULTISELECTABLE 473 * 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. 474 * ATK_STATE_OPAQUE 475 * Indicates this object paints every pixel within its rectangular region. 476 * ATK_STATE_PRESSED 477 * Indicates this object is currently pressed; c.f. ATK_STATE_ARMED 478 * ATK_STATE_RESIZABLE 479 * Indicates the size of this object is not fixed 480 * ATK_STATE_SELECTABLE 481 * 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 482 * ATK_STATE_SELECTED 483 * 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 484 * ATK_STATE_SENSITIVE 485 * Indicates this object is sensitive, e.g. to user interaction. 486 * STATE_SENSITIVE usually accompanies STATE_ENABLED for user-actionable controls, 487 * but may be found in the absence of STATE_ENABLED if the current visible state of the 488 * control is "disconnected" from the application state. In such cases, direct user interaction 489 * can often result in the object gaining STATE_SENSITIVE, for instance if a user makes 490 * an explicit selection using an object whose current state is ambiguous or undefined. 491 * see STATE_ENABLED, STATE_INDETERMINATE. 492 * ATK_STATE_SHOWING 493 * Indicates this object, the object's parent, the object's parent's parent, and so on, 494 * are all 'shown' to the end-user, i.e. subject to "exposure" if blocking or obscuring objects do not interpose 495 * between this object and the top of the window stack. 496 * ATK_STATE_SINGLE_LINE 497 * Indicates this (text) object can contain only a single line of text 498 * ATK_STATE_STALE 499 * Indicates that the information returned for this object may no longer be 500 * synchronized with the application state. This is implied if the object has STATE_TRANSIENT, 501 * and can also occur towards the end of the object peer's lifecycle. It can also be used to indicate that 502 * the index associated with this object has changed since the user accessed the object (in lieu of 503 * "index-in-parent-changed" events). 504 * ATK_STATE_TRANSIENT 505 * Indicates this object is transient, i.e. a snapshot which may not emit events when its 506 * state changes. Data from objects with ATK_STATE_TRANSIENT should not be cached, since there may be no 507 * notification given when the cached data becomes obsolete. 508 * ATK_STATE_VERTICAL 509 * Indicates the orientation of this object is vertical 510 * ATK_STATE_VISIBLE 511 * Indicates this object is visible, e.g. has been explicitly marked for exposure to the user. 512 * ATK_STATE_MANAGES_DESCENDANTS 513 * Indicates that "active-descendant-changed" event 514 * is sent when children become 'active' (i.e. are selected or navigated to onscreen). 515 * Used to prevent need to enumerate all children in very large containers, like tables. 516 * The presence of STATE_MANAGES_DESCENDANTS is an indication to the client. 517 * that the children should not, and need not, be enumerated by the client. 518 * Objects implementing this state are expected to provide relevant state 519 * notifications to listening clients, for instance notifications of visibility 520 * changes and activation of their contained child objects, without the client 521 * having previously requested references to those children. 522 * ATK_STATE_INDETERMINATE 523 * Indicates that a check box is in a state other than checked or not checked. 524 * This usually means that the boolean value reflected or 525 * controlled by the object does not apply consistently to the entire current context. 526 * For example, a checkbox for the "Bold" attribute of text may have STATE_INDETERMINATE 527 * if the currently selected text contains a mixture of weight attributes. 528 * In many cases interacting with a STATE_INDETERMINATE object will cause 529 * the context's corresponding boolean attribute to be homogenized, whereupon the object 530 * will lose STATE_INDETERMINATE and a corresponding state-changed event will be fired. 531 * ATK_STATE_TRUNCATED 532 * Indicates that an object is truncated, e.g. a text value in a speradsheet cell. 533 * ATK_STATE_REQUIRED 534 * Indicates that explicit user interaction with an object is required by the user interface, e.g. a required field in a "web-form" interface. 535 * ATK_STATE_INVALID_ENTRY 536 * 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. 537 * ATK_STATE_SUPPORTS_AUTOCOMPLETION 538 * Indicates that the object in question implements some form of ¨typeahead¨ or 539 * pre-selection behavior whereby entering the first character of one or more sub-elements 540 * causes those elements to scroll into view or become selected. Subsequent character input 541 * may narrow the selection further as long as one or more sub-elements match the string. 542 * This state is normally only useful and encountered on objects that implement Selection. 543 * In some cases the typeahead behavior may result in full or partial ¨completion¨ of 544 * the data in the input field, in which case these input events may trigger text-changed 545 * events from the AtkText interface. This state supplants ATK_ROLE_AUTOCOMPLETE. 546 * ATK_STATE_SELECTABLE_TEXT 547 * 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. 548 * ATK_STATE_DEFAULT 549 * 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. 550 * ATK_STATE_ANIMATED 551 * 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. 552 * note some applications, notably content viewers, may not be able to detect 553 * all kinds of animated content. Therefore the absence of this state should not 554 * be taken as definitive evidence that the object's visual representation is 555 * static; this state is advisory. 556 * ATK_STATE_VISITED 557 * Indicates that the object (typically a hyperlink) has already been 'activated', and/or its backing data has already been downloaded, rendered, or otherwise "visited". 558 * ATK_STATE_LAST_DEFINED 559 * Not a valid state, used for finding end of enumeration 560 */ 561 public enum AtkStateType 562 { 563 INVALID, 564 ACTIVE, 565 ARMED, 566 BUSY, 567 CHECKED, 568 DEFUNCT, 569 EDITABLE, 570 ENABLED, 571 EXPANDABLE, 572 EXPANDED, 573 FOCUSABLE, 574 FOCUSED, 575 HORIZONTAL, 576 ICONIFIED, 577 MODAL, 578 MULTI_LINE, 579 MULTISELECTABLE, 580 OPAQUE, 581 PRESSED, 582 RESIZABLE, 583 SELECTABLE, 584 SELECTED, 585 SENSITIVE, 586 SHOWING, 587 SINGLE_LINE, 588 STALE, 589 TRANSIENT, 590 VERTICAL, 591 VISIBLE, 592 MANAGES_DESCENDANTS, 593 INDETERMINATE, 594 TRUNCATED, 595 REQUIRED, 596 INVALID_ENTRY, 597 SUPPORTS_AUTOCOMPLETION, 598 SELECTABLE_TEXT, 599 DEFAULT, 600 ANIMATED, 601 VISITED, 602 LAST_DEFINED 603 } 604 /** 605 * Text boundary types used for specifying boundaries for regions of text 606 * ATK_TEXT_BOUNDARY_CHAR 607 * Boundary is the boundary between characters 608 * (including non-printing characters) 609 * ATK_TEXT_BOUNDARY_WORD_START 610 * Boundary is the start (i.e. first character) of a word. 611 * ATK_TEXT_BOUNDARY_WORD_END 612 * Boundary is the end (i.e. last character) of a word. 613 * ATK_TEXT_BOUNDARY_SENTENCE_START 614 * Boundary is the first character in a sentence. 615 * ATK_TEXT_BOUNDARY_SENTENCE_END 616 * Boundary is the last (terminal) character in a sentence; 617 * in languages which use "sentence stop" punctuation such as English, the boundary is thus the 618 * '.', '?', or similar terminal punctuation character. 619 * ATK_TEXT_BOUNDARY_LINE_START 620 * Boundary is the initial character of the content or a 621 * character immediately following a newline, linefeed, or return character. 622 * ATK_TEXT_BOUNDARY_LINE_END 623 * Boundary is the linefeed, or return character. 624 */ 625 public enum AtkTextBoundary 626 { 627 CHAR, 628 WORD_START, 629 WORD_END, 630 SENTENCE_START, 631 SENTENCE_END, 632 LINE_START, 633 LINE_END 634 } 635 /** 636 * Describes the type of clipping required. 637 * ATK_TEXT_CLIP_NONE 638 * No clipping to be done 639 * ATK_TEXT_CLIP_MIN 640 * Text clipped by min coordinate is omitted 641 * ATK_TEXT_CLIP_MAX 642 * Text clipped by max coordinate is omitted 643 * ATK_TEXT_CLIP_BOTH 644 * Only text fully within mix/max bound is retained 645 */ 646 public enum AtkTextClipType 647 { 648 NONE, 649 MIN, 650 MAX, 651 BOTH 652 } 653 /** 654 * Describes the text attributes supported 655 * ATK_TEXT_ATTR_INVALID 656 * Invalid attribute 657 * ATK_TEXT_ATTR_LEFT_MARGIN 658 * The pixel width of the left margin 659 * ATK_TEXT_ATTR_RIGHT_MARGIN 660 * The pixel width of the right margin 661 * ATK_TEXT_ATTR_INDENT 662 * The number of pixels that the text is indented 663 * ATK_TEXT_ATTR_INVISIBLE 664 * Either "true" or "false" indicating whether text is visible or not 665 * ATK_TEXT_ATTR_EDITABLE 666 * Either "true" or "false" indicating whether text is editable or not 667 * ATK_TEXT_ATTR_PIXELS_ABOVE_LINES 668 * Pixels of blank space to leave above each newline-terminated line. 669 * ATK_TEXT_ATTR_PIXELS_BELOW_LINES 670 * Pixels of blank space to leave below each newline-terminated line. 671 * ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP 672 * Pixels of blank space to leave between wrapped lines inside the same newline-terminated line (paragraph). 673 * ATK_TEXT_ATTR_BG_FULL_HEIGHT 674 * "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. 675 * ATK_TEXT_ATTR_RISE 676 * Number of pixels that the characters are risen above the baseline 677 * ATK_TEXT_ATTR_UNDERLINE 678 * "none", "single", "double", "low", or "error" 679 * ATK_TEXT_ATTR_STRIKETHROUGH 680 * "true" or "false" whether the text is strikethrough 681 * ATK_TEXT_ATTR_SIZE 682 * The size of the characters. 683 * ATK_TEXT_ATTR_SCALE 684 * The scale of the characters. The value is a string representation of a double 685 * ATK_TEXT_ATTR_WEIGHT 686 * The weight of the characters. 687 * ATK_TEXT_ATTR_LANGUAGE 688 * The language used 689 * ATK_TEXT_ATTR_FAMILY_NAME 690 * The font family name 691 * ATK_TEXT_ATTR_BG_COLOR 692 * The background color. The value is an RGB value of the format "u,u,u" 693 * ATK_TEXT_ATTR_FG_COLOR 694 * The foreground color. The value is an RGB value of the format "u,u,u" 695 * ATK_TEXT_ATTR_BG_STIPPLE 696 * "true" if a GdkBitmap is set for stippling the background color. 697 * ATK_TEXT_ATTR_FG_STIPPLE 698 * "true" if a GdkBitmap is set for stippling the foreground color. 699 * ATK_TEXT_ATTR_WRAP_MODE 700 * The wrap mode of the text, if any. Values are "none", "char", "word", or "word_char". 701 * ATK_TEXT_ATTR_DIRECTION 702 * The direction of the text, if set. Values are "none", "ltr" or "rtl" 703 * ATK_TEXT_ATTR_JUSTIFICATION 704 * The justification of the text, if set. Values are "left", "right", "center" or "fill" 705 * ATK_TEXT_ATTR_STRETCH 706 * 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" 707 * ATK_TEXT_ATTR_VARIANT 708 * The capitalization variant of the text, if set. Values are "normal" or "small_caps" 709 * ATK_TEXT_ATTR_STYLE 710 * The slant style of the text, if set. Values are "normal", "oblique" or "italic" 711 * ATK_TEXT_ATTR_LAST_DEFINED 712 * not a valid text attribute, used for finding end of enumeration 713 */ 714 public enum AtkTextAttribute 715 { 716 INVALID = 0, 717 LEFT_MARGIN, 718 RIGHT_MARGIN, 719 INDENT, 720 INVISIBLE, 721 EDITABLE, 722 PIXELS_ABOVE_LINES, 723 PIXELS_BELOW_LINES, 724 PIXELS_INSIDE_WRAP, 725 BG_FULL_HEIGHT, 726 RISE, 727 UNDERLINE, 728 STRIKETHROUGH, 729 SIZE, 730 SCALE, 731 WEIGHT, 732 LANGUAGE, 733 FAMILY_NAME, 734 BG_COLOR, 735 FG_COLOR, 736 BG_STIPPLE, 737 FG_STIPPLE, 738 WRAP_MODE, 739 DIRECTION, 740 JUSTIFICATION, 741 STRETCH, 742 VARIANT, 743 STYLE, 744 LAST_DEFINED 745 } 746 /** 747 * Specifies how xy coordinates are to be interpreted. Used by functions such 748 * as atk_component_get_position() and atk_text_get_character_extents() 749 * ATK_XY_SCREEN 750 * specifies xy coordinates relative to the screen 751 * ATK_XY_WINDOW 752 * specifies xy coordinates relative to the widget's 753 * top-level window 754 */ 755 public enum AtkCoordType 756 { 757 XY_SCREEN, 758 XY_WINDOW 759 } 760 /** 761 * Specifies the type of a keyboard evemt. 762 * ATK_KEY_EVENT_PRESS 763 * specifies a key press event 764 * ATK_KEY_EVENT_RELEASE 765 * specifies a key release event 766 * ATK_KEY_EVENT_LAST_DEFINED 767 * Not a valid value; specifies end of enumeration 768 */ 769 public enum AtkKeyEventType 770 { 771 PRESS, 772 RELEASE, 773 LAST_DEFINED 774 } 775 776 /** 777 * Main Gtk struct. 778 * The AtkAction structure does not contain any fields. 779 */ 780 public struct AtkAction{} 781 782 783 /** 784 * Main Gtk struct. 785 * The AtkComponent structure does not contain any fields. 786 */ 787 public struct AtkComponent{} 788 789 790 /** 791 * Main Gtk struct. 792 * The AtkDocument structure does not contain any fields. 793 */ 794 public struct AtkDocument{} 795 796 797 /** 798 * Main Gtk struct. 799 * The AtkEditableText structure does not contain any fields. 800 */ 801 public struct AtkEditableText{} 802 803 804 /** 805 * Main Gtk struct. 806 * The AtkGObjectAccessible structure should not be accessed directly. 807 */ 808 public struct AtkGObjectAccessible{} 809 810 811 /** 812 * Main Gtk struct. 813 * The AtkHyperlink structure should not be accessed directly. 814 */ 815 public struct AtkHyperlink{} 816 817 818 /** 819 * Main Gtk struct. 820 * The AtkHypertext structure does not contain any fields. 821 */ 822 public struct AtkHypertext{} 823 824 825 /** 826 * Main Gtk struct. 827 * The AtkImage structure does not contain any fields. 828 */ 829 public struct AtkImage{} 830 831 832 /** 833 * Main Gtk struct. 834 * The AtkNoOpObject structure should not be accessed directly. 835 */ 836 public struct AtkNoOpObject{} 837 838 839 /** 840 * Main Gtk struct. 841 * The AtkNoOpObjectFactory structure should not be accessed directly. 842 */ 843 public struct AtkNoOpObjectFactory{} 844 845 846 /** 847 * Main Gtk struct. 848 * The AtkObject structure should not be accessed directly. 849 */ 850 public struct AtkObject{} 851 852 853 /** 854 * The AtkImplementor interface is implemented by objects for which AtkObject peers may be obtained via calls to iface->(ref_accessible)(implementor); 855 */ 856 public struct AtkImplementor{} 857 858 859 /** 860 * note: For most properties the old_value field of AtkPropertyValues will 861 * not contain a valid value. 862 * Currently, the only property for which old_value is used is 863 * accessible-state; for instance if there is a focus state the 864 * property change handler will be called for the object which lost the focus 865 * with the old_value containing an AtkState value corresponding to focused 866 * and the property change handler will be called for the object which 867 * received the focus with the new_value containing an AtkState value 868 * corresponding to focused. 869 * The Atk PropertyValue structure is used when notifying a change in property. 870 * Currently, the only property for which old_value is used is 871 * accessible-state; for instance if there is a focus change the 872 * property change handler will be called for the object which lost the focus 873 * with the old_value containing the AtkState value corresponding to focused 874 * and the property change handler will be called for the object which 875 * received the focus with the new_value containing the AtkState value 876 * corresponding to focused. 877 * const gchar *property_name; 878 * The name of the ATK property which is being presented or which has been changed. 879 * GValue old_value; 880 * The old property value, NULL; in some contexts this value is undefined (see note below). 881 * GValue new_value; 882 * The new value of the named property. 883 */ 884 public struct AtkPropertyValues 885 { 886 char *propertyName; 887 GValue oldValue; 888 GValue newValue; 889 } 890 891 892 /** 893 * Main Gtk struct. 894 * The AtkObjectFactory structure should not be accessed directly. 895 */ 896 public struct AtkObjectFactory{} 897 898 899 /** 900 * Main Gtk struct. 901 * The AtkRegistry structure should not be accessed directly. 902 */ 903 public struct AtkRegistry{} 904 905 906 /** 907 * Main Gtk struct. 908 * The AtkRelation structure should not be accessed directly. 909 */ 910 public struct AtkRelation{} 911 912 913 /** 914 * Main Gtk struct. 915 * The AtkRelationSet structure should not be accessed directly. 916 */ 917 public struct AtkRelationSet{} 918 919 920 /** 921 * Main Gtk struct. 922 * The AtkAction structure does not contain any fields. 923 */ 924 public struct AtkSelection{} 925 926 927 /** 928 * Main Gtk struct. 929 */ 930 public struct AtkStateSet{} 931 932 933 /** 934 * Main Gtk struct. 935 * The AtkStreamableContent structure does not contain any fields. 936 */ 937 public struct AtkStreamableContent{} 938 939 940 /** 941 * Main Gtk struct. 942 * The AtkTable structure does not contain any fields. 943 */ 944 public struct AtkTable{} 945 946 947 /** 948 * Main Gtk struct. 949 * The AtkText structure does not contain any fields. 950 */ 951 public struct AtkText{} 952 953 954 /** 955 * A structure used to describe a text range. 956 * AtkTextRectangle bounds; 957 * A rectangle giving the bounds of the text range 958 * gint start_offset; 959 * The start offset of a AtkTextRange 960 * gint end_offset; 961 * The end offset of a AtkTextRange 962 * gchar *content; 963 * The text in the text range 964 */ 965 public struct AtkTextRange 966 { 967 AtkTextRectangle bounds; 968 int startOffset; 969 int endOffset; 970 char* content; 971 } 972 973 974 /** 975 * A structure used to store a rectangle used by AtkText. 976 * gint x; 977 * The horizontal coordinate of a rectangle 978 * gint y; 979 * The vertical coordinate of a rectangle 980 * gint width; 981 * The width of a rectangle 982 * gint height; 983 * The height of a rectangle 984 */ 985 public struct AtkTextRectangle 986 { 987 int x; 988 int y; 989 int width; 990 int height; 991 } 992 993 994 /** 995 * A string name/value pair representing a text attribute. 996 * gchar *name; 997 * The attribute name. Call atk_text_attr_get_name() 998 * gchar *value; 999 * the value of the attribute, represented as a string. 1000 * Call atk_text_attr_get_value() for those which are strings. 1001 * For values which are numbers, the string representation of the number 1002 * is in value. 1003 */ 1004 public struct AtkAttribute 1005 { 1006 char* name; 1007 char* value; 1008 } 1009 1010 1011 /** 1012 * The AtkUtil struct does not contain any fields. 1013 */ 1014 public struct AtkUtil{} 1015 1016 1017 /** 1018 * Encapsulates information about a key event. 1019 * gint type; 1020 * An AtkKeyEventType, generally one of ATK_KEY_EVENT_PRESS or ATK_KEY_EVENT_RELEASE 1021 * guint state; 1022 * A bitmask representing the state of the modifier keys immediately after the event takes place. 1023 * The meaning of the bits is currently defined to match the bitmask used by GDK in 1024 * GdkEventType.state, see 1025 * http://developer.gnome.org/doc/API/2.0/gdk/gdk-Event-Structures.htmlGdkEventKey 1026 * guint keyval; 1027 * A guint representing a keysym value corresponding to those used by GDK and X11: see 1028 * /usr/X11/include/keysymdef.h. 1029 * gint length; 1030 * The length of member string. 1031 * gchar *string; 1032 * A string containing one of the following: either a string approximating the text that would 1033 * result from this keypress, if the key is a control or graphic character, or a symbolic name for this keypress. 1034 * Alphanumeric and printable keys will have the symbolic key name in this string member, for instance "A". "0", 1035 * "semicolon", "aacute". Keypad keys have the prefix "KP". 1036 * guint16 keycode; 1037 * The raw hardware code that generated the key event. This field is raraly useful. 1038 * guint32 timestamp; 1039 * A timestamp in milliseconds indicating when the event occurred. 1040 * These timestamps are relative to a starting point which should be considered arbitrary, 1041 * and only used to compare the dispatch times of events to one another. 1042 */ 1043 public struct AtkKeyEventStruct 1044 { 1045 int type; 1046 uint state; 1047 uint keyval; 1048 int length; 1049 char *string; 1050 ushort keycode; 1051 uint timestamp; 1052 } 1053 1054 1055 /** 1056 * Main Gtk struct. 1057 * The AtkValue structure does not contain any fields. 1058 */ 1059 public struct AtkValue{} 1060 1061 1062 /* 1063 * A convenience macro for type ATK implementations, which declares a class 1064 * initialization function, an instance initialization function (see GTypeInfo 1065 * for information about these) and a static variable named 1066 * t_n _parent_class pointing to the parent class. Furthermore, it 1067 * defines a _get_type() function. 1068 * TN : 1069 * The name of the new type, in Camel case. 1070 * t_n : 1071 * The name of the new type, in lowercase, with words separated by '_'. 1072 * T_P : 1073 * The GType of the parent type. 1074 * Since 1.22 1075 */ 1076 // TODO 1077 // #define ATK_DEFINE_TYPE(TN, t_n, T_P) ATK_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {}) 1078 1079 /* 1080 * The most general convenience macro for ATK type implementations, on which 1081 * ATK_DEFINE_TYPE(), etc are based. 1082 * TN : 1083 * The name of the new type, in Camel case. 1084 * t_n : 1085 * The name of the new type, in lowercase, with words separated by '_'. 1086 * T_P : 1087 * The GType of the parent type. 1088 * _f_ : 1089 * GTypeFlags to pass to g_type_register_static() 1090 * _C_ : 1091 * Custom code that gets inserted in the _get_type() function. 1092 * Since 1.22 1093 */ 1094 // TODO 1095 // #define ATK_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_) _ATK_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _ATK_DEFINE_TYPE_EXTENDED_END() 1096 1097 /* 1098 * A convenience macro for ATK type implementations. 1099 * Similar to ATK_DEFINE_TYPE(), but allows you to insert custom code into the 1100 * _get_type() function, e.g. interface implementations via G_IMPLEMENT_INTERFACE(). 1101 * TN : 1102 * The name of the new type, in Camel case. 1103 * t_n : 1104 * The name of the new type in lowercase, with words separated by '_'. 1105 * T_P : 1106 * The GType of the parent type. 1107 * _C_ : 1108 * Custom code that gets inserted in the _get_type() function. 1109 * Since 1.22 1110 */ 1111 // TODO 1112 // #define ATK_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _ATK_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _ATK_DEFINE_TYPE_EXTENDED_END() 1113 1114 /* 1115 * A convenience macro for ATK type implementations. 1116 * Similar to ATK_DEFINE_TYPE(), but defines an abstract type. 1117 * TN : 1118 * The name of the new type, in Camel case. 1119 * t_n : 1120 * The name of the new type, in lowercase, with words separated by '_'. 1121 * T_P : 1122 * The GType of the parent type. 1123 * Since 1.22 1124 */ 1125 // TODO 1126 // #define ATK_DEFINE_ABSTRACT_TYPE(TN, t_n, T_P) ATK_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, {}) 1127 1128 /* 1129 * A convenience macro for ATK type implementations. 1130 * Similar to ATK_DEFINE_TYPE_WITH_CODE(), but defines an abstract type. 1131 * TN : 1132 * The name of the new type, in Camel case. 1133 * t_n : 1134 * The name of the new type, in lowercase, with words separated by '_'. 1135 * T_P : 1136 * The GType of the parent type. 1137 * _C_ : 1138 * Custom code that gets inserted in the _get_type() function. 1139 * Since 1.22 1140 */ 1141 // TODO 1142 // #define ATK_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _ATK_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT) {_C_;} _ATK_DEFINE_TYPE_EXTENDED_END() 1143 1144 /* 1145 * An AtkFunction is a function definition used for padding which has been added 1146 * to class and interface structures to allow for expansion in the future. 1147 * data : 1148 * a gpointer to parameter data. 1149 * Returns : 1150 * Nothing useful, this is only a dummy prototype. 1151 */ 1152 // gboolean (*AtkFunction) (gpointer data); 1153 public alias extern(C) int function(void* data) AtkFunction; 1154 1155 /* 1156 * An AtkPropertyChangeHandler is a function which is executed when an AtkObject's property changes value. It is specified in a call to 1157 * atk_object_connect_property_change_handler(). 1158 * Param1 : 1159 * an AtkObject 1160 * Param2 : 1161 * an AtkPropertyValues 1162 */ 1163 // void (*AtkPropertyChangeHandler) (AtkObject *Param1, AtkPropertyValues *Param2); 1164 public alias extern(C) void function(AtkObject* Param1, AtkPropertyValues* Param2) AtkPropertyChangeHandler; 1165 1166 /* 1167 * A function which is called when an object emits a matching event, 1168 * as used in atk_add_focus_tracker. 1169 * Currently the only events for which object-specific handlers are 1170 * supported are events of type "focus:". Most clients of ATK will prefer to 1171 * attach signal handlers for the various ATK signals instead. 1172 * see atk_add_focus_tracker. 1173 * obj : 1174 * An AtkObject instance for whom the callback will be called when 1175 * the specified event (e.g. 'focus:') takes place. 1176 */ 1177 // void (*AtkEventListener) (AtkObject *obj); 1178 public alias extern(C) void function(AtkObject* obj) AtkEventListener; 1179 1180 /* 1181 * An AtkEventListenerInit function is a special function that is 1182 * called in order to initialize the per-object event registration system 1183 * used by AtkEventListener, if any preparation is required. 1184 * see atk_focus_tracker_init. 1185 */ 1186 // void (*AtkEventListenerInit) (void); 1187 public alias extern(C) void function() AtkEventListenerInit; 1188 1189 /* 1190 * An AtkKeySnoopFunc is a type of callback which is called whenever a key event occurs, 1191 * if registered via atk_add_key_event_listener. It allows for pre-emptive 1192 * interception of key events via the return code as described below. 1193 * event : 1194 * an AtkKeyEventStruct containing information about the key event for which 1195 * notification is being given. 1196 * func_data : 1197 * a block of data which will be passed to the event listener, on notification. 1198 * Returns : 1199 * TRUE (nonzero) if the event emission should be stopped and the event 1200 * discarded without being passed to the normal GUI recipient; FALSE (zero) if the 1201 * event dispatch to the client application should proceed as normal. 1202 * see atk_add_key_event_listener. 1203 */ 1204 // gint (*AtkKeySnoopFunc) (AtkKeyEventStruct *event, gpointer func_data); 1205 public alias extern(C) int function(AtkKeyEventStruct* event, void* funcData) AtkKeySnoopFunc;