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