-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Atk bindings
--   
--   Bindings for Atk, autogenerated by haskell-gi.
@package gi-atk
@version 2.0.28


-- | Build time configuration used during code generation.
module GI.Atk.Config

-- | Overrides used when generating these bindings.
overrides :: Text

-- | Modules in this package
modules :: [Text]


module GI.Atk.Constants

-- | A macro that should be defined by the user prior to including the
--   atk/atk.h header. The definition should be one of the predefined ATK
--   version macros: <tt><i>ATK_VERSION_2_12</i></tt>,
--   <tt><i>ATK_VERSION_2_14</i></tt>,...
--   
--   This macro defines the earliest version of ATK that the package is
--   required to be able to compile against.
--   
--   If the compiler is configured to warn about the use of deprecated
--   functions, then using functions that were deprecated in version
--   <a>VERSION_MIN_REQUIRED</a> or earlier will cause warnings (but using
--   functions deprecated in later releases will not).
--   
--   <i>Since: 2.14</i>
pattern VERSION_MIN_REQUIRED :: Int32

-- | Like <a>getMinorVersion</a>, but from the headers used at application
--   compile time, rather than from the library linked against at
--   application run time.
--   
--   <i>Since: 2.7.4</i>
pattern MINOR_VERSION :: Int32

-- | Like <a>getMicroVersion</a>, but from the headers used at application
--   compile time, rather than from the library linked against at
--   application run time.
--   
--   <i>Since: 2.7.4</i>
pattern MICRO_VERSION :: Int32

-- | Like <a>getMajorVersion</a>, but from the headers used at application
--   compile time, rather than from the library linked against at
--   application run time.
--   
--   <i>Since: 2.7.4</i>
pattern MAJOR_VERSION :: Int32

-- | Like <a>getInterfaceAge</a>, but from the headers used at application
--   compile time, rather than from the library linked against at
--   application run time.
--   
--   <i>Since: 2.7.4</i>
pattern INTERFACE_AGE :: Int32

-- | Like <a>getBinaryAge</a>, but from the headers used at application
--   compile time, rather than from the library linked against at
--   application run time.
--   
--   <i>Since: 2.7.4</i>
pattern BINARY_AGE :: Int32


module GI.Atk.Enums

-- | Specifies how xy coordinates are to be interpreted. Used by functions
--   such as <a>componentGetPosition</a> and <a>textGetCharacterExtents</a>
data CoordType

-- | specifies xy coordinates relative to the screen
CoordTypeScreen :: CoordType

-- | specifies xy coordinates relative to the widget's top-level window
CoordTypeWindow :: CoordType

-- | specifies xy coordinates relative to the widget's immediate parent.
--   Since: 2.30
CoordTypeParent :: CoordType

-- | Catch-all for unknown values
AnotherCoordType :: Int -> CoordType

-- | Specifies the type of a keyboard evemt.
data KeyEventType

-- | specifies a key press event
KeyEventTypePress :: KeyEventType

-- | specifies a key release event
KeyEventTypeRelease :: KeyEventType

-- | Not a valid value; specifies end of enumeration
KeyEventTypeLastDefined :: KeyEventType

-- | Catch-all for unknown values
AnotherKeyEventType :: Int -> KeyEventType

-- | Describes the layer of a component
--   
--   These enumerated "layer values" are used when determining which UI
--   rendering layer a component is drawn into, which can help in making
--   determinations of when components occlude one another.
data Layer

-- | The object does not have a layer
LayerInvalid :: Layer

-- | This layer is reserved for the desktop background
LayerBackground :: Layer

-- | This layer is used for Canvas components
LayerCanvas :: Layer

-- | This layer is normally used for components
LayerWidget :: Layer

-- | This layer is used for layered components
LayerMdi :: Layer

-- | This layer is used for popup components, such as menus
LayerPopup :: Layer

-- | This layer is reserved for future use.
LayerOverlay :: Layer

-- | This layer is used for toplevel windows.
LayerWindow :: Layer

-- | Catch-all for unknown values
AnotherLayer :: Int -> Layer

-- | Enumeration used to indicate a type of live region and how assertive
--   it should be in terms of speaking notifications. Currently, this is
--   only used for "notification" events, but it may be used for additional
--   purposes in the future.
--   
--   <i>Since: 2.50</i>
data Live

-- | No live region.
LiveNone :: Live

-- | This live region should be considered polite.
LivePolite :: Live

-- | This live region should be considered assertive.
LiveAssertive :: Live

-- | Catch-all for unknown values
AnotherLive :: Int -> Live

-- | Describes the type of the relation
data RelationType

-- | Not used, represens "no relationship" or an error condition.
RelationTypeNull :: RelationType

-- | Indicates an object controlled by one or more target objects.
RelationTypeControlledBy :: RelationType

-- | Indicates an object is an controller for one or more target objects.
RelationTypeControllerFor :: RelationType

-- | Indicates an object is a label for one or more target objects.
RelationTypeLabelFor :: RelationType

-- | Indicates an object is labelled by one or more target objects.
RelationTypeLabelledBy :: RelationType

-- | Indicates an object is a member of a group of one or more target
--   objects.
RelationTypeMemberOf :: RelationType

-- | 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.
RelationTypeNodeChildOf :: RelationType

-- | Indicates that the object has content that flows logically to another
--   AtkObject in a sequential way, (for instance text-flow).
RelationTypeFlowsTo :: RelationType

-- | Indicates that the object has content that flows logically from
--   another AtkObject in a sequential way, (for instance text-flow).
RelationTypeFlowsFrom :: RelationType

-- | Indicates a subwindow attached to a component but otherwise has no
--   connection in the UI heirarchy to that component.
RelationTypeSubwindowOf :: RelationType

-- | Indicates that the object visually embeds another object's content,
--   i.e. this object's content flows around another's content.
RelationTypeEmbeds :: RelationType

-- | Reciprocal of <a>RelationTypeEmbeds</a>, indicates that this object's
--   content is visualy embedded in another object.
RelationTypeEmbeddedBy :: RelationType

-- | Indicates that an object is a popup for another object.
RelationTypePopupFor :: RelationType

-- | Indicates that an object is a parent window of another object.
RelationTypeParentWindowOf :: RelationType

-- | Reciprocal of <a>RelationTypeDescriptionFor</a>. Indicates that one or
--   more target objects provide descriptive information about this object.
--   This relation type is most appropriate for information that is not
--   essential as its presentation may be user-configurable and/or limited
--   to an on-demand mechanism such as an assistive technology command. For
--   brief, essential information such as can be found in a widget's
--   on-screen label, use <a>RelationTypeLabelledBy</a>. For an on-screen
--   error message, use <a>RelationTypeErrorMessage</a>. For lengthy
--   extended descriptive information contained in an on-screen object,
--   consider using <a>RelationTypeDetails</a> as assistive technologies
--   may provide a means for the user to navigate to objects containing
--   detailed descriptions so that their content can be more closely
--   reviewed.
RelationTypeDescribedBy :: RelationType

-- | Reciprocal of <a>RelationTypeDescribedBy</a>. Indicates that this
--   object provides descriptive information about the target object(s).
--   See also <a>RelationTypeDetailsFor</a> and
--   <a>RelationTypeErrorFor</a>.
RelationTypeDescriptionFor :: RelationType

-- | Indicates an object is a cell in a treetable and is expanded to
--   display other cells in the same column.
RelationTypeNodeParentOf :: RelationType

-- | Reciprocal of <a>RelationTypeDetailsFor</a>. Indicates that this
--   object has a detailed or extended description, the contents of which
--   can be found in the target object(s). This relation type is most
--   appropriate for information that is sufficiently lengthy as to make
--   navigation to the container of that information desirable. For less
--   verbose information suitable for announcement only, see
--   <a>RelationTypeDescribedBy</a>. If the detailed information describes
--   an error condition, <a>RelationTypeErrorFor</a> should be used
--   instead.
RelationTypeDetails :: RelationType

-- | Reciprocal of <a>RelationTypeDetails</a>. Indicates that this object
--   provides a detailed or extended description about the target
--   object(s). See also <a>RelationTypeDescriptionFor</a> and
--   <a>RelationTypeErrorFor</a>.
--   
--   <i>Since: 2.26</i>
RelationTypeDetailsFor :: RelationType

-- | Reciprocal of <a>RelationTypeErrorFor</a>. Indicates that this object
--   has one or more errors, the nature of which is described in the
--   contents of the target object(s). Objects that have this relation type
--   should also contain <a>StateTypeInvalidEntry</a> in their
--   <a>StateSet</a>.
--   
--   <i>Since: 2.26</i>
RelationTypeErrorMessage :: RelationType

-- | Reciprocal of <a>RelationTypeErrorMessage</a>. Indicates that this
--   object contains an error message describing an invalid condition in
--   the target object(s).
--   
--   <i>Since: 2.26</i>
RelationTypeErrorFor :: RelationType

-- | Not used, this value indicates the end of the enumeration.
RelationTypeLastDefined :: RelationType

-- | Catch-all for unknown values
AnotherRelationType :: Int -> RelationType

-- | Describes the role of an object
--   
--   These are the built-in enumerated roles that UI components can have in
--   ATK. Other roles may be added at runtime, so an AtkRole &gt;=
--   <a>RoleLastDefined</a> is not necessarily an error.
data Role

-- | Invalid role
RoleInvalid :: Role

-- | A label which represents an accelerator
RoleAcceleratorLabel :: Role

-- | 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.
RoleAlert :: Role

-- | An object which is an animated image
RoleAnimation :: Role

-- | An arrow in one of the four cardinal directions
RoleArrow :: Role

-- | An object that displays a calendar and allows the user to select a
--   date
RoleCalendar :: Role

-- | An object that can be drawn into and is used to trap events
RoleCanvas :: Role

-- | A choice that can be checked or unchecked and provides a separate
--   indicator for the current state
RoleCheckBox :: Role

-- | A menu item with a check box
RoleCheckMenuItem :: Role

-- | A specialized dialog that lets the user choose a color
RoleColorChooser :: Role

-- | The header for a column of data
RoleColumnHeader :: Role

-- | A collapsible list of choices the user can select from
RoleComboBox :: Role

-- | An object whose purpose is to allow a user to edit a date
RoleDateEditor :: Role

-- | An inconifed internal frame within a DESKTOP_PANE
RoleDesktopIcon :: Role

-- | A pane that supports internal frames and iconified versions of those
--   internal frames
RoleDesktopFrame :: Role

-- | An object whose purpose is to allow a user to set a value
RoleDial :: Role

-- | A top level window with title bar and a border
RoleDialog :: Role

-- | A pane that allows the user to navigate through and select the
--   contents of a directory
RoleDirectoryPane :: Role

-- | An object used for drawing custom user interface elements
RoleDrawingArea :: Role

-- | A specialized dialog that lets the user choose a file
RoleFileChooser :: Role

-- | A object that fills up space in a user interface
RoleFiller :: Role

-- | A specialized dialog that lets the user choose a font
RoleFontChooser :: Role

-- | A top level window with a title bar, border, menubar, etc.
RoleFrame :: Role

-- | A pane that is guaranteed to be painted on top of all panes beneath it
RoleGlassPane :: Role

-- | A document container for HTML, whose children represent the document
--   content
RoleHtmlContainer :: Role

-- | A small fixed size picture, typically used to decorate components
RoleIcon :: Role

-- | An object whose primary purpose is to display an image
RoleImage :: Role

-- | A frame-like object that is clipped by a desktop pane
RoleInternalFrame :: Role

-- | An object used to present an icon or short string in an interface
RoleLabel :: Role

-- | A specialized pane that allows its children to be drawn in layers,
--   providing a form of stacking order
RoleLayeredPane :: Role

-- | An object that presents a list of objects to the user and allows the
--   user to select one or more of them
RoleList :: Role

-- | An object that represents an element of a list
RoleListItem :: Role

-- | An object usually found inside a menu bar that contains a list of
--   actions the user can choose from
RoleMenu :: Role

-- | 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
RoleMenuBar :: Role

-- | An object usually contained in a menu that presents an action the user
--   can choose
RoleMenuItem :: Role

-- | A specialized pane whose primary use is inside a DIALOG
RoleOptionPane :: Role

-- | An object that is a child of a page tab list
RolePageTab :: Role

-- | An object that presents a series of panels (or page tabs), one at a
--   time, through some mechanism provided by the object
RolePageTabList :: Role

-- | A generic container that is often used to group objects
RolePanel :: Role

-- | A text object uses for passwords, or other places where the text
--   content is not shown visibly to the user
RolePasswordText :: Role

-- | 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
RolePopupMenu :: Role

-- | An object used to indicate how much of a task has been completed
RoleProgressBar :: Role

-- | An object the user can manipulate to tell the application to do
--   something
RoleButton :: Role

-- | A specialized check box that will cause other radio buttons in the
--   same group to become unchecked when this one is checked
RoleRadioButton :: Role

-- | A check menu item which belongs to a group. At each instant exactly
--   one of the radio menu items from a group is selected
RoleRadioMenuItem :: Role

-- | A specialized pane that has a glass pane and a layered pane as its
--   children
RoleRootPane :: Role

-- | The header for a row of data
RoleRowHeader :: Role

-- | An object usually used to allow a user to incrementally view a large
--   amount of data.
RoleScrollBar :: Role

-- | An object that allows a user to incrementally view a large amount of
--   information
RoleScrollPane :: Role

-- | An object usually contained in a menu to provide a visible and logical
--   separation of the contents in a menu
RoleSeparator :: Role

-- | An object that allows the user to select from a bounded range
RoleSlider :: Role

-- | A specialized panel that presents two other panels at the same time
RoleSplitPane :: Role

-- | An object used to get an integer or floating point number from the
--   user
RoleSpinButton :: Role

-- | An object which reports messages of minor importance to the user
RoleStatusbar :: Role

-- | An object used to represent information in terms of rows and columns
RoleTable :: Role

-- | A cell in a table
RoleTableCell :: Role

-- | The header for a column of a table
RoleTableColumnHeader :: Role

-- | The header for a row of a table
RoleTableRowHeader :: Role

-- | A menu item used to tear off and reattach its menu
RoleTearOffMenuItem :: Role

-- | An object that represents an accessible terminal.
--   
--   <i>Since: 0.6</i>
RoleTerminal :: Role

-- | An interactive widget that supports multiple lines of text and
--   optionally accepts user input, but whose purpose is not to solicit
--   user input. Thus ATK_ROLE_TEXT is appropriate for the text view in a
--   plain text editor but inappropriate for an input field in a dialog box
--   or web form. For widgets whose purpose is to solicit input from the
--   user, see ATK_ROLE_ENTRY and ATK_ROLE_PASSWORD_TEXT. For generic
--   objects which display a brief amount of textual information, see
--   ATK_ROLE_STATIC.
RoleText :: Role

-- | A specialized push button that can be checked or unchecked, but does
--   not provide a separate indicator for the current state
RoleToggleButton :: Role

-- | A bar or palette usually composed of push buttons or toggle buttons
RoleToolBar :: Role

-- | An object that provides information about another object
RoleToolTip :: Role

-- | An object used to represent hierarchical information to the user
RoleTree :: Role

-- | An object capable of expanding and collapsing rows as well as showing
--   multiple columns of data.
--   
--   <i>Since: 0.7</i>
RoleTreeTable :: Role

-- | The object contains some Accessible information, but its role is not
--   known
RoleUnknown :: Role

-- | An object usually used in a scroll pane
RoleViewport :: Role

-- | A top level window with no title or border.
RoleWindow :: Role

-- | An object that serves as a document header.
--   
--   <i>Since: 1.1.1</i>
RoleHeader :: Role

-- | An object that serves as a document footer.
--   
--   <i>Since: 1.1.1</i>
RoleFooter :: Role

-- | An object which contains a paragraph of text content.
--   
--   <i>Since: 1.1.1</i>
RoleParagraph :: Role

-- | An object which describes margins and tab stops, etc. for text objects
--   which it controls (should have CONTROLLER_FOR relation to such).
--   
--   <i>Since: 1.1.1</i>
RoleRuler :: Role

-- | The object is an application object, which may contain
--   <i><tt>aTKROLEFRAME</tt></i> objects or other types of accessibles.
--   The root accessible of any application's ATK hierarchy should have
--   ATK_ROLE_APPLICATION.
--   
--   <i>Since: 1.1.4</i>
RoleApplication :: Role

-- | 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.
--   
--   <i>Since: 1.3</i>
RoleAutocomplete :: Role

-- | The object is an editable text object in a toolbar.
--   
--   <i>Since: 1.5</i>
RoleEditBar :: Role

-- | 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.
--   
--   <i>Since: 1.7.2</i>
RoleEmbedded :: Role

-- | The object is a component whose textual content may be entered or
--   modified by the user, provided <i><tt>aTKSTATEEDITABLE</tt></i> is
--   present.
--   
--   <i>Since: 1.11</i>
RoleEntry :: Role

-- | 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.
--   
--   <i>Since: 1.11</i>
RoleChart :: Role

-- | The object contains descriptive information, usually textual, about
--   another user interface element such as a table, chart, or image.
--   
--   <i>Since: 1.11</i>
RoleCaption :: Role

-- | 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.
--   
--   <i>Since: 1.11</i>
RoleDocumentFrame :: Role

-- | The object serves as a heading for content which follows it in a
--   document. The 'heading level' of the heading, if available, may be
--   obtained by querying the object's attributes.
RoleHeading :: Role

-- | The object is a containing instance which encapsulates a page of
--   information. <i><tt>aTKROLEPAGE</tt></i> is used in documents and
--   content which support a paginated navigation model.
--   
--   <i>Since: 1.11</i>
RolePage :: Role

-- | 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.
--   
--   <i>Since: 1.11</i>
RoleSection :: Role

-- | 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.
--   
--   <i>Since: 1.11</i>
RoleRedundantObject :: Role

-- | The object is a container for form controls, for instance as part of a
--   web form or user-input form within a document. This role is primarily
--   a tag/convenience for clients when navigating complex documents, it is
--   not expected that ordinary GUI containers will always have
--   ATK_ROLE_FORM.
--   
--   <i>Since: 1.12.0</i>
RoleForm :: Role

-- | The object is a hypertext anchor, i.e. a "link" in a hypertext
--   document. Such objects are distinct from 'inline' content which may
--   also use the Hypertext/Hyperlink interfaces to indicate the
--   range/location within a text object where an inline or embedded object
--   lies.
--   
--   <i>Since: 1.12.1</i>
RoleLink :: Role

-- | The object is a window or similar viewport which is used to allow
--   composition or input of a 'complex character', in other words it is an
--   "input method window."
--   
--   <i>Since: 1.12.1</i>
RoleInputMethodWindow :: Role

-- | A row in a table.
--   
--   <i>Since: 2.1.0</i>
RoleTableRow :: Role

-- | An object that represents an element of a tree.
--   
--   <i>Since: 2.1.0</i>
RoleTreeItem :: Role

-- | A document frame which contains a spreadsheet.
--   
--   <i>Since: 2.1.0</i>
RoleDocumentSpreadsheet :: Role

-- | A document frame which contains a presentation or slide content.
--   
--   <i>Since: 2.1.0</i>
RoleDocumentPresentation :: Role

-- | A document frame which contains textual content, such as found in a
--   word processing application.
--   
--   <i>Since: 2.1.0</i>
RoleDocumentText :: Role

-- | A document frame which contains HTML or other markup suitable for
--   display in a web browser.
--   
--   <i>Since: 2.1.0</i>
RoleDocumentWeb :: Role

-- | A document frame which contains email content to be displayed or
--   composed either in plain text or HTML.
--   
--   <i>Since: 2.1.0</i>
RoleDocumentEmail :: Role

-- | 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.
--   
--   <i>Since: 2.1.0</i>
RoleComment :: Role

-- | A non-collapsible list of choices the user can select from.
--   
--   <i>Since: 2.1.0</i>
RoleListBox :: Role

-- | A group of related widgets. This group typically has a label.
--   
--   <i>Since: 2.1.0</i>
RoleGrouping :: Role

-- | 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.
--   
--   <i>Since: 2.1.0</i>
RoleImageMap :: Role

-- | A transitory object designed to present a message to the user,
--   typically at the desktop level rather than inside a particular
--   application.
--   
--   <i>Since: 2.1.0</i>
RoleNotification :: Role

-- | An object designed to present a message to the user within an existing
--   window.
--   
--   <i>Since: 2.1.0</i>
RoleInfoBar :: Role

-- | A bar that serves as a level indicator to, for instance, show the
--   strength of a password or the state of a battery.
--   
--   <i>Since: 2.7.3</i>
RoleLevelBar :: Role

-- | A bar that serves as the title of a window or a dialog.
--   
--   <i>Since: 2.12</i>
RoleTitleBar :: Role

-- | An object which contains a text section that is quoted from another
--   source.
--   
--   <i>Since: 2.12</i>
RoleBlockQuote :: Role

-- | An object which represents an audio element.
--   
--   <i>Since: 2.12</i>
RoleAudio :: Role

-- | An object which represents a video element.
--   
--   <i>Since: 2.12</i>
RoleVideo :: Role

-- | A definition of a term or concept.
--   
--   <i>Since: 2.12</i>
RoleDefinition :: Role

-- | A section of a page that consists of a composition that forms an
--   independent part of a document, page, or site. Examples: A blog entry,
--   a news story, a forum post.
--   
--   <i>Since: 2.12</i>
RoleArticle :: Role

-- | A region of a web page intended as a * navigational landmark. This is
--   designed to allow Assistive Technologies to provide quick navigation
--   among key regions within a * document.
--   
--   <i>Since: 2.12</i>
RoleLandmark :: Role

-- | A text widget or container holding log content, such as chat history
--   and error logs. In this role there is a relationship between the
--   arrival of new items in the log and the reading order. The log
--   contains a meaningful sequence and new information is added only to
--   the end of the log, not at arbitrary points.
--   
--   <i>Since: 2.12</i>
RoleLog :: Role

-- | A container where non-essential information changes frequently. Common
--   usages of marquee include stock tickers * and ad banners. The primary
--   difference between a marquee and a log is that logs usually have a
--   meaningful order or sequence of important content changes.
--   
--   <i>Since: 2.12</i>
RoleMarquee :: Role

-- | A text widget or container that holds a mathematical expression.
--   
--   <i>Since: 2.12</i>
RoleMath :: Role

-- | A widget whose purpose is to display a rating, such as the number of
--   stars associated with a song in a media player. Objects of this role
--   should also implement AtkValue.
--   
--   <i>Since: 2.12</i>
RoleRating :: Role

-- | An object containing a numerical counter which indicates an amount of
--   elapsed time from a start point, or the time remaining until an end
--   point.
--   
--   <i>Since: 2.12</i>
RoleTimer :: Role

-- | An object that represents a list of term-value groups. A term-value
--   group represents an individual description and consist of one or more
--   names (ATK_ROLE_DESCRIPTION_TERM) followed by one or more values
--   (ATK_ROLE_DESCRIPTION_VALUE). For each list, there should not be more
--   than one group with the same term name.
--   
--   <i>Since: 2.12</i>
RoleDescriptionList :: Role

-- | An object that represents a term or phrase with a corresponding
--   definition.
--   
--   <i>Since: 2.12</i>
RoleDescriptionTerm :: Role

-- | An object that represents the description, definition or value of a
--   term.
--   
--   <i>Since: 2.12</i>
RoleDescriptionValue :: Role

-- | A generic non-container object whose purpose is to display a brief
--   amount of information to the user and whose role is known by the
--   implementor but lacks semantic value for the user. Examples in which
--   <a>RoleStatic</a> is appropriate include the message displayed in a
--   message box and an image used as an alternative means to display text.
--   <a>RoleStatic</a> should not be applied to widgets which are
--   traditionally interactive, objects which display a significant amount
--   of content, or any object which has an accessible relation pointing to
--   another object. Implementors should expose the displayed information
--   through the accessible name of the object. If doing so seems
--   inappropriate, it may indicate that a different role should be used.
--   For labels which describe another widget, see <a>RoleLabel</a>. For
--   text views, see <a>RoleText</a>. For generic containers, see
--   <a>RolePanel</a>. For objects whose role is not known by the
--   implementor, see <a>RoleUnknown</a>.
--   
--   <i>Since: 2.16</i>
RoleStatic :: Role

-- | An object that represents a mathematical fraction.
--   
--   <i>Since: 2.16</i>
RoleMathFraction :: Role

-- | An object that represents a mathematical expression displayed with a
--   radical.
--   
--   <i>Since: 2.16</i>
RoleMathRoot :: Role

-- | An object that contains text that is displayed as a subscript.
--   
--   <i>Since: 2.16</i>
RoleSubscript :: Role

-- | An object that contains text that is displayed as a superscript.
--   
--   <i>Since: 2.16</i>
RoleSuperscript :: Role

-- | An object that contains the text of a footnote.
--   
--   <i>Since: 2.26</i>
RoleFootnote :: Role

-- | Content previously deleted or proposed to be deleted, e.g. in revision
--   history or a content view providing suggestions from reviewers.
--   
--   <i>Since: 2.34</i>
RoleContentDeletion :: Role

-- | Content previously inserted or proposed to be inserted, e.g. in
--   revision history or a content view providing suggestions from
--   reviewers.
--   
--   <i>Since: 2.34</i>
RoleContentInsertion :: Role

-- | A run of content that is marked or highlighted, such as for reference
--   purposes, or to call it out as having a special purpose. If the marked
--   content has an associated section in the document elaborating on the
--   reason for the mark, then <a>RelationTypeDetails</a> should be used on
--   the mark to point to that associated section. In addition, the
--   reciprocal relation <a>RelationTypeDetailsFor</a> should be used on
--   the associated content section to point back to the mark.
--   
--   <i>Since: 2.36</i>
RoleMark :: Role

-- | A container for content that is called out as a proposed change from
--   the current version of the document, such as by a reviewer of the
--   content. This role should include either <a>RoleContentDeletion</a>
--   and/or <a>RoleContentInsertion</a> children, in any order, to indicate
--   what the actual change is.
--   
--   <i>Since: 2.36</i>
RoleSuggestion :: Role

-- | A specialized push button to open a menu.
--   
--   <i>Since: 2.46</i>
RolePushButtonMenu :: Role

-- | A switch that can be toggled on/off.
--   
--   <i>Since: 2.56</i>
RoleSwitch :: Role

-- | not a valid role, used for finding end of the enumeration
RoleLastDefined :: Role

-- | <i>No description available in the introspection data.</i>
RolePushButton :: Role

-- | Catch-all for unknown values
AnotherRole :: Int -> Role

-- | Specifies where an object should be placed on the screen when using
--   scroll_to.
--   
--   <i>Since: 2.30</i>
data ScrollType

-- | Scroll the object vertically and horizontally to bring its top left
--   corner to the top left corner of the window.
ScrollTypeTopLeft :: ScrollType

-- | Scroll the object vertically and horizontally to bring its bottom
--   right corner to the bottom right corner of the window.
ScrollTypeBottomRight :: ScrollType

-- | Scroll the object vertically to bring its top edge to the top edge of
--   the window.
ScrollTypeTopEdge :: ScrollType

-- | Scroll the object vertically to bring its bottom edge to the bottom
--   edge of the window.
ScrollTypeBottomEdge :: ScrollType

-- | Scroll the object vertically and horizontally to bring its left edge
--   to the left edge of the window.
ScrollTypeLeftEdge :: ScrollType

-- | Scroll the object vertically and horizontally to bring its right edge
--   to the right edge of the window.
ScrollTypeRightEdge :: ScrollType

-- | Scroll the object vertically and horizontally so that as much as
--   possible of the object becomes visible. The exact placement is
--   determined by the application.
ScrollTypeAnywhere :: ScrollType

-- | Catch-all for unknown values
AnotherScrollType :: Int -> ScrollType

-- | The possible types of states of an object
data StateType

-- | Indicates an invalid state - probably an error condition.
StateTypeInvalid :: StateType

-- | Indicates a window is currently the active window, or an object is the
--   active subelement within a container or table. ATK_STATE_ACTIVE should
--   not be used for objects which have ATK_STATE_FOCUSABLE or
--   ATK_STATE_SELECTABLE: Those objects should use ATK_STATE_FOCUSED and
--   ATK_STATE_SELECTED respectively. ATK_STATE_ACTIVE is a means to
--   indicate that an object which is not focusable and not selectable is
--   the currently-active item within its parent container.
StateTypeActive :: StateType

-- | Indicates that the object is 'armed', i.e. will be activated by if a
--   pointer button-release event occurs within its bounds. Buttons often
--   enter this state when a pointer click occurs within their bounds, as a
--   precursor to activation. ATK_STATE_ARMED has been deprecated since
--   ATK-2.16 and should not be used in newly-written code.
StateTypeArmed :: StateType

-- | 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.
StateTypeBusy :: StateType

-- | Indicates this object is currently checked, for instance a checkbox is
--   'non-empty'.
StateTypeChecked :: StateType

-- | Indicates that this object no longer has a valid backing widget (for
--   instance, if its peer object has been destroyed)
StateTypeDefunct :: StateType

-- | Indicates that this object can contain text, and that the user can
--   change the textual contents of this object by editing those contents
--   directly. For an object which is expected to be editable due to its
--   type, but which cannot be edited due to the application or platform
--   preventing the user from doing so, that object's <a>StateSet</a>
--   should lack ATK_STATE_EDITABLE and should contain ATK_STATE_READ_ONLY.
StateTypeEditable :: StateType

-- | 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
StateTypeEnabled :: StateType

-- | Indicates this object allows progressive disclosure of its children
StateTypeExpandable :: StateType

-- | Indicates this object its expanded - see ATK_STATE_EXPANDABLE above
StateTypeExpanded :: StateType

-- | 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
StateTypeFocusable :: StateType

-- | Indicates this object currently has the keyboard focus
StateTypeFocused :: StateType

-- | 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.
StateTypeHorizontal :: StateType

-- | Indicates this object is minimized and is represented only by an icon
StateTypeIconified :: StateType

-- | Indicates something must be done with this object before the user can
--   interact with an object in a different window
StateTypeModal :: StateType

-- | Indicates this (text) object can contain multiple lines of text
StateTypeMultiLine :: StateType

-- | 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.
StateTypeMultiselectable :: StateType

-- | Indicates this object paints every pixel within its rectangular
--   region.
StateTypeOpaque :: StateType

-- | Indicates this object is currently pressed.
StateTypePressed :: StateType

-- | Indicates the size of this object is not fixed
StateTypeResizable :: StateType

-- | 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
StateTypeSelectable :: StateType

-- | 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
StateTypeSelected :: StateType

-- | Indicates this object is sensitive, e.g. to user interaction.
--   STATE_SENSITIVE usually accompanies STATE_ENABLED for user-actionable
--   controls, but may be found in the absence of STATE_ENABLED if the
--   current visible state of the control is "disconnected" from the
--   application state. In such cases, direct user interaction can often
--   result in the object gaining STATE_SENSITIVE, for instance if a user
--   makes an explicit selection using an object whose current state is
--   ambiguous or undefined. <i><tt>see</tt></i> STATE_ENABLED,
--   STATE_INDETERMINATE.
StateTypeSensitive :: StateType

-- | Indicates this object, the object's parent, the object's parent's
--   parent, and so on, are all 'shown' to the end-user, i.e. subject to
--   "exposure" if blocking or obscuring objects do not interpose between
--   this object and the top of the window stack.
StateTypeShowing :: StateType

-- | Indicates this (text) object can contain only a single line of text
StateTypeSingleLine :: StateType

-- | Indicates that the information returned for this object may no longer
--   be synchronized with the application state. This is implied if the
--   object has STATE_TRANSIENT, and can also occur towards the end of the
--   object peer's lifecycle. It can also be used to indicate that the
--   index associated with this object has changed since the user accessed
--   the object (in lieu of "index-in-parent-changed" events).
StateTypeStale :: StateType

-- | Indicates this object is transient, i.e. a snapshot which may not emit
--   events when its state changes. Data from objects with
--   ATK_STATE_TRANSIENT should not be cached, since there may be no
--   notification given when the cached data becomes obsolete.
StateTypeTransient :: StateType

-- | Indicates the orientation of this object is vertical
StateTypeVertical :: StateType

-- | Indicates this object is visible, e.g. has been explicitly marked for
--   exposure to the user. <b>note</b>: <a>StateTypeVisible</a> is no
--   guarantee that the object is actually unobscured on the screen, only
--   that it is 'potentially' visible, barring obstruction, being scrolled
--   or clipped out of the field of view, or having an ancestor container
--   that has not yet made visible. A widget is potentially onscreen if it
--   has both <a>StateTypeVisible</a> and <a>StateTypeShowing</a>. The
--   absence of <a>StateTypeVisible</a> and <a>StateTypeShowing</a> is
--   semantically equivalent to saying that an object is 'hidden'. See also
--   <a>StateTypeTruncated</a>, which applies if an object with
--   <a>StateTypeVisible</a> and <a>StateTypeShowing</a> set lies within a
--   viewport which means that its contents are clipped, e.g. a truncated
--   spreadsheet cell or an image within a scrolling viewport. Mostly
--   useful for screen-review and magnification algorithms.
StateTypeVisible :: StateType

-- | Indicates that "active-descendant-changed" event is sent when children
--   become 'active' (i.e. are selected or navigated to onscreen). Used to
--   prevent need to enumerate all children in very large containers, like
--   tables. The presence of STATE_MANAGES_DESCENDANTS is an indication to
--   the client. that the children should not, and need not, be enumerated
--   by the client. Objects implementing this state are expected to provide
--   relevant state notifications to listening clients, for instance
--   notifications of visibility changes and activation of their contained
--   child objects, without the client having previously requested
--   references to those children.
StateTypeManagesDescendants :: StateType

-- | Indicates that the value, or some other quantifiable property, of this
--   AtkObject cannot be fully determined. In the case of a large data set
--   in which the total number of items in that set is unknown (e.g. 1 of
--   999+), implementors should expose the currently-known set size (999)
--   along with this state. In the case of a check box, this state should
--   be used to indicate that the check box is a tri-state check box which
--   is currently neither checked nor unchecked.
StateTypeIndeterminate :: StateType

-- | Indicates that an object is truncated, e.g. a text value in a
--   speradsheet cell.
StateTypeTruncated :: StateType

-- | Indicates that explicit user interaction with an object is required by
--   the user interface, e.g. a required field in a "web-form" interface.
StateTypeRequired :: StateType

-- | 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.
StateTypeInvalidEntry :: StateType

-- | Indicates that the object in question implements some form of
--   ¨typeahead¨ or pre-selection behavior whereby entering the first
--   character of one or more sub-elements causes those elements to scroll
--   into view or become selected. Subsequent character input may narrow
--   the selection further as long as one or more sub-elements match the
--   string. This state is normally only useful and encountered on objects
--   that implement Selection. In some cases the typeahead behavior may
--   result in full or partial ¨completion¨ of the data in the input field,
--   in which case these input events may trigger text-changed events from
--   the AtkText interface. This state supplants
--   <i><tt>aTKROLEAUTOCOMPLETE</tt></i>.
StateTypeSupportsAutocompletion :: StateType

-- | 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
--   <i><tt>aTKSTATESELECTABLE</tt></i>, 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.
StateTypeSelectableText :: StateType

-- | 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.
StateTypeDefault :: StateType

-- | 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. <b>note</b>: some applications, notably content viewers,
--   may not be able to detect all kinds of animated content. Therefore the
--   absence of this state should not be taken as definitive evidence that
--   the object's visual representation is static; this state is advisory.
StateTypeAnimated :: StateType

-- | Indicates that the object (typically a hyperlink) has already been
--   'activated', and/or its backing data has already been downloaded,
--   rendered, or otherwise "visited".
StateTypeVisited :: StateType

-- | Indicates this object has the potential to be checked, such as a
--   checkbox or toggle-able table cell.
--   
--   <i>Since: 2.12</i>
StateTypeCheckable :: StateType

-- | Indicates that the object has a popup context menu or sub-level menu
--   which may or may not be showing. This means that activation renders
--   conditional content. Note that ordinary tooltips are not considered
--   popups in this context.
--   
--   <i>Since: 2.12</i>
StateTypeHasPopup :: StateType

-- | Indicates this object has a tooltip.
--   
--   <i>Since: 2.16</i>
StateTypeHasTooltip :: StateType

-- | Indicates that a widget which is ENABLED and SENSITIVE has a value
--   which can be read, but not modified, by the user. Note that this state
--   should only be applied to widget types whose value is normally
--   directly user modifiable, such as check boxes, radio buttons, spin
--   buttons, text input fields, and combo boxes, as a means to convey that
--   the expected interaction with that widget is not possible. When the
--   expected interaction with a widget does not include modification by
--   the user, as is the case with labels and containers,
--   ATK_STATE_READ_ONLY should not be applied. See also
--   ATK_STATE_EDITABLE.
--   
--   <i>Since: 2.16</i>
StateTypeReadOnly :: StateType

-- | Indicates this object is collapsed.
--   
--   <i>Since: 2.38</i>
StateTypeCollapsed :: StateType

-- | Not a valid state, used for finding end of enumeration
StateTypeLastDefined :: StateType

-- | Catch-all for unknown values
AnotherStateType :: Int -> StateType

-- | Describes the text attributes supported
data TextAttribute

-- | Invalid attribute, like bad spelling or grammar.
TextAttributeInvalid :: TextAttribute

-- | The pixel width of the left margin
TextAttributeLeftMargin :: TextAttribute

-- | The pixel width of the right margin
TextAttributeRightMargin :: TextAttribute

-- | The number of pixels that the text is indented
TextAttributeIndent :: TextAttribute

-- | Either "true" or "false" indicating whether text is visible or not.
TextAttributeInvisible :: TextAttribute

-- | Either "true" or "false" indicating whether text is editable or not.
TextAttributeEditable :: TextAttribute

-- | Pixels of blank space to leave above each newline-terminated line.
TextAttributePixelsAboveLines :: TextAttribute

-- | Pixels of blank space to leave below each newline-terminated line.
TextAttributePixelsBelowLines :: TextAttribute

-- | Pixels of blank space to leave between wrapped lines inside the same
--   newline-terminated line (paragraph).
TextAttributePixelsInsideWrap :: TextAttribute

-- | "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.
TextAttributeBgFullHeight :: TextAttribute

-- | Number of pixels that the characters are risen above the baseline. See
--   also ATK_TEXT_ATTR_TEXT_POSITION.
TextAttributeRise :: TextAttribute

-- | "none", "single", "double", "low", or "error"
TextAttributeUnderline :: TextAttribute

-- | "true" or "false" whether the text is strikethrough
TextAttributeStrikethrough :: TextAttribute

-- | The size of the characters in points. eg: 10
TextAttributeSize :: TextAttribute

-- | The scale of the characters. The value is a string representation of a
--   double
TextAttributeScale :: TextAttribute

-- | The weight of the characters.
TextAttributeWeight :: TextAttribute

-- | The language used
TextAttributeLanguage :: TextAttribute

-- | The font family name
TextAttributeFamilyName :: TextAttribute

-- | The background color. The value is an RGB value of the format
--   "<tt><i>u</i></tt>,<tt><i>u</i></tt>,<tt><i>u</i></tt>"
TextAttributeBgColor :: TextAttribute

-- | The foreground color. The value is an RGB value of the format
--   "<tt><i>u</i></tt>,<tt><i>u</i></tt>,<tt><i>u</i></tt>"
TextAttributeFgColor :: TextAttribute

-- | "true" if a <tt><i>GdkBitmap</i></tt> is set for stippling the
--   background color.
TextAttributeBgStipple :: TextAttribute

-- | "true" if a <tt><i>GdkBitmap</i></tt> is set for stippling the
--   foreground color.
TextAttributeFgStipple :: TextAttribute

-- | The wrap mode of the text, if any. Values are "none", "char", "word",
--   or "word_char".
TextAttributeWrapMode :: TextAttribute

-- | The direction of the text, if set. Values are "none", "ltr" or "rtl"
TextAttributeDirection :: TextAttribute

-- | The justification of the text, if set. Values are "left", "right",
--   "center" or "fill"
TextAttributeJustification :: TextAttribute

-- | 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"
TextAttributeStretch :: TextAttribute

-- | The capitalization variant of the text, if set. Values are "normal" or
--   "small_caps"
TextAttributeVariant :: TextAttribute

-- | The slant style of the text, if set. Values are "normal", "oblique" or
--   "italic"
TextAttributeStyle :: TextAttribute

-- | The vertical position with respect to the baseline. Values are
--   "baseline", "super", or "sub". Note that a super or sub text attribute
--   refers to position with respect to the baseline of the prior
--   character.
TextAttributeTextPosition :: TextAttribute

-- | A run of content that is marked or highlighted, such as for reference
--   purposes, or to call it out as having a special purpose that is clear
--   from context. This is similar to ATK_ROLE_MARK, but this is used where
--   it may apply to a partial span of text in an object, rather than to an
--   entire object. Values are "true" or "false".
--   
--   <i>Since: 2.60</i>
TextAttributeMark :: TextAttribute

-- | not a valid text attribute, used for finding end of enumeration
TextAttributeLastDefined :: TextAttribute

-- | Catch-all for unknown values
AnotherTextAttribute :: Int -> TextAttribute

-- | Text boundary types used for specifying boundaries for regions of
--   text. This enumeration is deprecated since 2.9.4 and should not be
--   used. Use AtkTextGranularity with
--   <tt><i>atk_text_get_string_at_offset</i></tt> instead.
data TextBoundary

-- | Boundary is the boundary between characters (including non-printing
--   characters)
TextBoundaryChar :: TextBoundary

-- | Boundary is the start (i.e. first character) of a word.
TextBoundaryWordStart :: TextBoundary

-- | Boundary is the end (i.e. last character) of a word.
TextBoundaryWordEnd :: TextBoundary

-- | Boundary is the first character in a sentence.
TextBoundarySentenceStart :: TextBoundary

-- | Boundary is the last (terminal) character in a sentence; in languages
--   which use "sentence stop" punctuation such as English, the boundary is
--   thus the '.', '?', or similar terminal punctuation character.
TextBoundarySentenceEnd :: TextBoundary

-- | Boundary is the initial character of the content or a character
--   immediately following a newline, linefeed, or return character.
TextBoundaryLineStart :: TextBoundary

-- | Boundary is the linefeed, or return character.
TextBoundaryLineEnd :: TextBoundary

-- | Catch-all for unknown values
AnotherTextBoundary :: Int -> TextBoundary

-- | Describes the type of clipping required.
data TextClipType

-- | No clipping to be done
TextClipTypeNone :: TextClipType

-- | Text clipped by min coordinate is omitted
TextClipTypeMin :: TextClipType

-- | Text clipped by max coordinate is omitted
TextClipTypeMax :: TextClipType

-- | Only text fully within mix/max bound is retained
TextClipTypeBoth :: TextClipType

-- | Catch-all for unknown values
AnotherTextClipType :: Int -> TextClipType

-- | Text granularity types used for specifying the granularity of the
--   region of text we are interested in.
data TextGranularity

-- | Granularity is defined by the boundaries between characters (including
--   non-printing characters)
TextGranularityChar :: TextGranularity

-- | Granularity is defined by the boundaries of a word, starting at the
--   beginning of the current word and finishing at the beginning of the
--   following one, if present.
TextGranularityWord :: TextGranularity

-- | Granularity is defined by the boundaries of a sentence, starting at
--   the beginning of the current sentence and finishing at the beginning
--   of the following one, if present.
TextGranularitySentence :: TextGranularity

-- | Granularity is defined by the boundaries of a line, starting at the
--   beginning of the current line and finishing at the beginning of the
--   following one, if present.
TextGranularityLine :: TextGranularity

-- | Granularity is defined by the boundaries of a paragraph, starting at
--   the beginning of the current paragraph and finishing at the beginning
--   of the following one, if present.
TextGranularityParagraph :: TextGranularity

-- | Catch-all for unknown values
AnotherTextGranularity :: Int -> TextGranularity

-- | Default types for a given value. Those are defined in order to easily
--   get localized strings to describe a given value or a given subrange,
--   using <a>valueTypeGetLocalizedName</a>.
data ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeVeryWeak :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeWeak :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeAcceptable :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeStrong :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeVeryStrong :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeVeryLow :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeLow :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeMedium :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeHigh :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeVeryHigh :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeVeryBad :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeBad :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeGood :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeVeryGood :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeBest :: ValueType

-- | <i>No description available in the introspection data.</i>
ValueTypeLastDefined :: ValueType

-- | Catch-all for unknown values
AnotherValueType :: Int -> ValueType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.CoordType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.KeyEventType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.Layer
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.Live
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.RelationType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.Role
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.ScrollType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.StateType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.TextAttribute
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.TextBoundary
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.TextClipType
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.TextGranularity
instance Data.GI.Base.BasicTypes.BoxedEnum GI.Atk.Enums.ValueType
instance GHC.Internal.Enum.Enum GI.Atk.Enums.CoordType
instance GHC.Internal.Enum.Enum GI.Atk.Enums.KeyEventType
instance GHC.Internal.Enum.Enum GI.Atk.Enums.Layer
instance GHC.Internal.Enum.Enum GI.Atk.Enums.Live
instance GHC.Internal.Enum.Enum GI.Atk.Enums.RelationType
instance GHC.Internal.Enum.Enum GI.Atk.Enums.Role
instance GHC.Internal.Enum.Enum GI.Atk.Enums.ScrollType
instance GHC.Internal.Enum.Enum GI.Atk.Enums.StateType
instance GHC.Internal.Enum.Enum GI.Atk.Enums.TextAttribute
instance GHC.Internal.Enum.Enum GI.Atk.Enums.TextBoundary
instance GHC.Internal.Enum.Enum GI.Atk.Enums.TextClipType
instance GHC.Internal.Enum.Enum GI.Atk.Enums.TextGranularity
instance GHC.Internal.Enum.Enum GI.Atk.Enums.ValueType
instance GHC.Classes.Eq GI.Atk.Enums.CoordType
instance GHC.Classes.Eq GI.Atk.Enums.KeyEventType
instance GHC.Classes.Eq GI.Atk.Enums.Layer
instance GHC.Classes.Eq GI.Atk.Enums.Live
instance GHC.Classes.Eq GI.Atk.Enums.RelationType
instance GHC.Classes.Eq GI.Atk.Enums.Role
instance GHC.Classes.Eq GI.Atk.Enums.ScrollType
instance GHC.Classes.Eq GI.Atk.Enums.StateType
instance GHC.Classes.Eq GI.Atk.Enums.TextAttribute
instance GHC.Classes.Eq GI.Atk.Enums.TextBoundary
instance GHC.Classes.Eq GI.Atk.Enums.TextClipType
instance GHC.Classes.Eq GI.Atk.Enums.TextGranularity
instance GHC.Classes.Eq GI.Atk.Enums.ValueType
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.CoordType
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.KeyEventType
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.Layer
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.Live
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.RelationType
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.Role
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.ScrollType
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.StateType
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.TextAttribute
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.TextBoundary
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.TextClipType
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.TextGranularity
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Enums.ValueType
instance GHC.Classes.Ord GI.Atk.Enums.CoordType
instance GHC.Classes.Ord GI.Atk.Enums.KeyEventType
instance GHC.Classes.Ord GI.Atk.Enums.Layer
instance GHC.Classes.Ord GI.Atk.Enums.Live
instance GHC.Classes.Ord GI.Atk.Enums.RelationType
instance GHC.Classes.Ord GI.Atk.Enums.Role
instance GHC.Classes.Ord GI.Atk.Enums.ScrollType
instance GHC.Classes.Ord GI.Atk.Enums.StateType
instance GHC.Classes.Ord GI.Atk.Enums.TextAttribute
instance GHC.Classes.Ord GI.Atk.Enums.TextBoundary
instance GHC.Classes.Ord GI.Atk.Enums.TextClipType
instance GHC.Classes.Ord GI.Atk.Enums.TextGranularity
instance GHC.Classes.Ord GI.Atk.Enums.ValueType
instance GHC.Internal.Show.Show GI.Atk.Enums.CoordType
instance GHC.Internal.Show.Show GI.Atk.Enums.KeyEventType
instance GHC.Internal.Show.Show GI.Atk.Enums.Layer
instance GHC.Internal.Show.Show GI.Atk.Enums.Live
instance GHC.Internal.Show.Show GI.Atk.Enums.RelationType
instance GHC.Internal.Show.Show GI.Atk.Enums.Role
instance GHC.Internal.Show.Show GI.Atk.Enums.ScrollType
instance GHC.Internal.Show.Show GI.Atk.Enums.StateType
instance GHC.Internal.Show.Show GI.Atk.Enums.TextAttribute
instance GHC.Internal.Show.Show GI.Atk.Enums.TextBoundary
instance GHC.Internal.Show.Show GI.Atk.Enums.TextClipType
instance GHC.Internal.Show.Show GI.Atk.Enums.TextGranularity
instance GHC.Internal.Show.Show GI.Atk.Enums.ValueType
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.CoordType
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.KeyEventType
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.Layer
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.Live
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.RelationType
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.Role
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.ScrollType
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.StateType
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.TextAttribute
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.TextBoundary
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.TextClipType
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.TextGranularity
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Enums.ValueType


module GI.Atk.Flags

-- | Describes the type of link
data HyperlinkStateFlags

-- | Link is inline
HyperlinkStateFlagsInline :: HyperlinkStateFlags

-- | Catch-all for unknown values
AnotherHyperlinkStateFlags :: Int -> HyperlinkStateFlags
instance Data.GI.Base.BasicTypes.BoxedFlags GI.Atk.Flags.HyperlinkStateFlags
instance GHC.Internal.Enum.Enum GI.Atk.Flags.HyperlinkStateFlags
instance GHC.Classes.Eq GI.Atk.Flags.HyperlinkStateFlags
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Flags.HyperlinkStateFlags
instance Data.GI.Base.BasicTypes.IsGFlag GI.Atk.Flags.HyperlinkStateFlags
instance GHC.Classes.Ord GI.Atk.Flags.HyperlinkStateFlags
instance GHC.Internal.Show.Show GI.Atk.Flags.HyperlinkStateFlags
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Flags.HyperlinkStateFlags


-- | The ATK interface provided by UI components which the user can
--   activate/interact with.
--   
--   <a>Action</a> should be implemented by instances of <a>Object</a>
--   classes with which the user can interact directly, i.e. buttons,
--   checkboxes, scrollbars, e.g. components which are not "passive"
--   providers of UI information.
--   
--   Exceptions: when the user interaction is already covered by another
--   appropriate interface such as <a>EditableText</a> (insert/delete text,
--   etc.) or <a>Value</a> (set value) then these actions should not be
--   exposed by <a>Action</a> as well.
--   
--   Though most UI interactions on components should be invocable via
--   keyboard as well as mouse, there will generally be a close mapping
--   between "mouse actions" that are possible on a component and the
--   AtkActions. Where mouse and keyboard actions are redundant in effect,
--   <a>Action</a> should expose only one action rather than exposing
--   redundant actions if possible. By convention we have been using "mouse
--   centric" terminology for <a>Action</a> names.
module GI.Atk.Interfaces.Action

-- | Memory-managed wrapper type.
newtype Action
Action :: ManagedPtr Action -> Action

-- | Type class for types which implement <a>Action</a>.
class (ManagedPtrNewtype o, IsDescendantOf Action o) => IsAction o

-- | Perform the specified action on the object.
actionDoAction :: (HasCallStack, MonadIO m, IsAction a) => a -> Int32 -> m Bool

-- | Returns a description of the specified action of the object.
actionGetDescription :: (HasCallStack, MonadIO m, IsAction a) => a -> Int32 -> m (Maybe Text)

-- | Gets the keybinding which can be used to activate this action, if one
--   exists. The string returned should contain localized, human-readable,
--   key sequences as they would appear when displayed on screen. It must
--   be in the format "mnemonic;sequence;shortcut".
--   
--   <ul>
--   <li>The mnemonic key activates the object if it is presently enabled
--   onscreen. This typically corresponds to the underlined letter within
--   the widget. Example: "n" in a traditional "New..." menu item or the
--   "a" in "Apply" for a button.</li>
--   <li>The sequence is the full list of keys which invoke the action even
--   if the relevant element is not currently shown on screen. For
--   instance, for a menu item the sequence is the keybindings used to open
--   the parent menus before invoking. The sequence string is
--   colon-delimited. Example: "Alt+F:N" in a traditional "New..." menu
--   item.</li>
--   <li>The shortcut, if it exists, will invoke the same action without
--   showing the component or its enclosing menus or dialogs. Example:
--   "Ctrl+N" in a traditional "New..." menu item.</li>
--   </ul>
--   
--   Example: For a traditional "New..." menu item, the expected return
--   value would be: "N;Alt+F:N;Ctrl+N" for the English locale and
--   "N;Alt+D:N;Strg+N" for the German locale. If, hypothetically, this
--   menu item lacked a mnemonic, it would be represented by ";;Ctrl+N" and
--   ";;Strg+N" respectively.
actionGetKeybinding :: (HasCallStack, MonadIO m, IsAction a) => a -> Int32 -> m (Maybe Text)

-- | Returns the localized name of the specified action of the object.
actionGetLocalizedName :: (HasCallStack, MonadIO m, IsAction a) => a -> Int32 -> m (Maybe Text)

-- | Gets the number of accessible actions available on the object. If
--   there are more than one, the first one is considered the "default"
--   action of the object.
actionGetNActions :: (HasCallStack, MonadIO m, IsAction a) => a -> m Int32

-- | Returns a non-localized string naming the specified action of the
--   object. This name is generally not descriptive of the end result of
--   the action, but instead names the 'interaction type' which the object
--   supports. By convention, the above strings should be used to represent
--   the actions which correspond to the common point-and-click interaction
--   techniques of the same name: i.e. "click", "press", "release", "drag",
--   "drop", "popup", etc. The "popup" action should be used to pop up a
--   context menu for the object, if one exists.
--   
--   For technical reasons, some toolkits cannot guarantee that the
--   reported action is actually 'bound' to a nontrivial user event; i.e.
--   the result of some actions via <a>actionDoAction</a> may be NIL.
actionGetName :: (HasCallStack, MonadIO m, IsAction a) => a -> Int32 -> m (Maybe Text)

-- | Sets a description of the specified action of the object.
actionSetDescription :: (HasCallStack, MonadIO m, IsAction a) => a -> Int32 -> Text -> m Bool
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Interfaces.Action.Action
instance GHC.Classes.Eq GI.Atk.Interfaces.Action.Action
instance (Data.GI.Base.BasicTypes.ManagedPtrNewtype o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Action.Action o) => GI.Atk.Interfaces.Action.IsAction o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Action.Action


-- | The ATK interface implemented by components containing user-editable
--   text content.
--   
--   <a>EditableText</a> should be implemented by UI components which
--   contain text which the user can edit, via the <a>Object</a>
--   corresponding to that component (see <a>Object</a>).
--   
--   <a>EditableText</a> is a subclass of <a>Text</a>, and as such, an
--   object which implements <a>EditableText</a> is by definition an
--   <a>Text</a> implementor as well.
--   
--   See [iface<i><tt>atkText</tt></i>]
module GI.Atk.Interfaces.EditableText

-- | Memory-managed wrapper type.
newtype EditableText
EditableText :: ManagedPtr EditableText -> EditableText

-- | Type class for types which implement <a>EditableText</a>.
class (ManagedPtrNewtype o, IsDescendantOf EditableText o) => IsEditableText o

-- | Copy text from <i><tt>startPos</tt></i> up to, but not including
--   <i><tt>endPos</tt></i> to the clipboard.
editableTextCopyText :: (HasCallStack, MonadIO m, IsEditableText a) => a -> Int32 -> Int32 -> m ()

-- | Copy text from <i><tt>startPos</tt></i> up to, but not including
--   <i><tt>endPos</tt></i> to the clipboard and then delete from the
--   widget.
editableTextCutText :: (HasCallStack, MonadIO m, IsEditableText a) => a -> Int32 -> Int32 -> m ()

-- | Delete text <i><tt>startPos</tt></i> up to, but not including
--   <i><tt>endPos</tt></i>.
editableTextDeleteText :: (HasCallStack, MonadIO m, IsEditableText a) => a -> Int32 -> Int32 -> m ()

-- | Insert text at a given position.
editableTextInsertText :: (HasCallStack, MonadIO m, IsEditableText a) => a -> Text -> Int32 -> Int32 -> m ()

-- | Paste text from clipboard to specified <i><tt>position</tt></i>.
editableTextPasteText :: (HasCallStack, MonadIO m, IsEditableText a) => a -> Int32 -> m ()

-- | Sets the attributes for a specified range. See the ATK_ATTRIBUTE
--   macros (such as <tt><i>ATK_ATTRIBUTE_LEFT_MARGIN</i></tt>) for
--   examples of attributes that can be set. Note that other attributes
--   that do not have corresponding ATK_ATTRIBUTE macros may also be set
--   for certain text widgets.
editableTextSetRunAttributes :: (HasCallStack, MonadIO m, IsEditableText a) => a -> [Ptr ()] -> Int32 -> Int32 -> m Bool

-- | Set text contents of <i><tt>text</tt></i>.
editableTextSetTextContents :: (HasCallStack, MonadIO m, IsEditableText a) => a -> Text -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Interfaces.EditableText.EditableText
instance GHC.Classes.Eq GI.Atk.Interfaces.EditableText.EditableText
instance (Data.GI.Base.BasicTypes.ManagedPtrNewtype o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.EditableText.EditableText o) => GI.Atk.Interfaces.EditableText.IsEditableText o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.EditableText.EditableText


-- | The ATK Interface implemented by components which expose image or
--   pixmap content on-screen.
--   
--   <a>Image</a> should be implemented by <a>Object</a> subtypes on behalf
--   of components which display image/pixmap information onscreen, and
--   which provide information (other than just widget borders, etc.) via
--   that image content. For instance, icons, buttons with icons, toolbar
--   elements, and image viewing panes typically should implement
--   <a>Image</a>.
--   
--   <a>Image</a> primarily provides two types of information: coordinate
--   information (useful for screen review mode of screenreaders, and for
--   use by onscreen magnifiers), and descriptive information. The
--   descriptive information is provided for alternative, text-only
--   presentation of the most significant information present in the image.
module GI.Atk.Interfaces.Image

-- | Memory-managed wrapper type.
newtype Image
Image :: ManagedPtr Image -> Image

-- | Type class for types which implement <a>Image</a>.
class (ManagedPtrNewtype o, IsDescendantOf Image o) => IsImage o

-- | Get a textual description of this image.
imageGetImageDescription :: (HasCallStack, MonadIO m, IsImage a) => a -> m Text

-- | Retrieves the locale identifier associated to the <a>Image</a>.
--   
--   <i>Since: 1.12</i>
imageGetImageLocale :: (HasCallStack, MonadIO m, IsImage a) => a -> m (Maybe Text)

-- | Gets the position of the image in the form of a point specifying the
--   images top-left corner.
--   
--   If the position can not be obtained (e.g. missing support), x and y
--   are set to -1.
imageGetImagePosition :: (HasCallStack, MonadIO m, IsImage a) => a -> CoordType -> m (Int32, Int32)

-- | Get the width and height in pixels for the specified image. The values
--   of <i><tt>width</tt></i> and <i><tt>height</tt></i> are returned as -1
--   if the values cannot be obtained (for instance, if the object is not
--   onscreen).
--   
--   If the size can not be obtained (e.g. missing support), x and y are
--   set to -1.
imageGetImageSize :: (HasCallStack, MonadIO m, IsImage a) => a -> m (Int32, Int32)

-- | Sets the textual description for this image.
imageSetImageDescription :: (HasCallStack, MonadIO m, IsImage a) => a -> Text -> m Bool
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Interfaces.Image.Image
instance GHC.Classes.Eq GI.Atk.Interfaces.Image.Image
instance (Data.GI.Base.BasicTypes.ManagedPtrNewtype o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Image.Image o) => GI.Atk.Interfaces.Image.IsImage o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Image.Image


-- | The AtkImplementor interface is implemented by objects for which
--   AtkObject peers may be obtained via calls to
--   iface-&gt;(ref_accessible)(implementor);
module GI.Atk.Interfaces.ImplementorIface

-- | Memory-managed wrapper type.
newtype ImplementorIface
ImplementorIface :: ManagedPtr ImplementorIface -> ImplementorIface

-- | Type class for types which implement <a>ImplementorIface</a>.
class (ManagedPtrNewtype o, IsDescendantOf ImplementorIface o) => IsImplementorIface o
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Interfaces.ImplementorIface.ImplementorIface
instance GHC.Classes.Eq GI.Atk.Interfaces.ImplementorIface.ImplementorIface
instance (Data.GI.Base.BasicTypes.ManagedPtrNewtype o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.ImplementorIface.ImplementorIface o) => GI.Atk.Interfaces.ImplementorIface.IsImplementorIface o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.ImplementorIface.ImplementorIface


-- | The ATK interface which provides access to streamable content.
--   
--   An interface whereby an object allows its backing content to be
--   streamed to clients. Typical implementors would be images or icons,
--   HTML content, or multimedia display/rendering widgets.
--   
--   Negotiation of content type is allowed. Clients may examine the
--   backing data and transform, convert, or parse the content in order to
--   present it in an alternate form to end-users.
--   
--   The AtkStreamableContent interface is particularly useful for saving,
--   printing, or post-processing entire documents, or for persisting
--   alternate views of a document. If document content itself is being
--   serialized, stored, or converted, then use of the AtkStreamableContent
--   interface can help address performance issues. Unlike most ATK
--   interfaces, this interface is not strongly tied to the current
--   user-agent view of the a particular document, but may in some cases
--   give access to the underlying model data.
module GI.Atk.Interfaces.StreamableContent

-- | Memory-managed wrapper type.
newtype StreamableContent
StreamableContent :: ManagedPtr StreamableContent -> StreamableContent

-- | Type class for types which implement <a>StreamableContent</a>.
class (ManagedPtrNewtype o, IsDescendantOf StreamableContent o) => IsStreamableContent o

-- | Gets the character string of the specified mime type. The first mime
--   type is at position 0, the second at position 1, and so on.
streamableContentGetMimeType :: (HasCallStack, MonadIO m, IsStreamableContent a) => a -> Int32 -> m Text

-- | Gets the number of mime types supported by this object.
streamableContentGetNMimeTypes :: (HasCallStack, MonadIO m, IsStreamableContent a) => a -> m Int32

-- | Gets the content in the specified mime type.
streamableContentGetStream :: (HasCallStack, MonadIO m, IsStreamableContent a) => a -> Text -> m IOChannel

-- | Get a string representing a URI in IETF standard format (see
--   http://www.ietf.org/rfc/rfc2396.txt) from which the object's content
--   may be streamed in the specified mime-type, if one is available. If
--   mime_type is NULL, the URI for the default (and possibly only)
--   mime-type is returned.
--   
--   Note that it is possible for get_uri to return NULL but for get_stream
--   to work nonetheless, since not all GIOChannels connect to URIs.
--   
--   <i>Since: 1.12</i>
streamableContentGetUri :: (HasCallStack, MonadIO m, IsStreamableContent a) => a -> Text -> m (Maybe Text)
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Interfaces.StreamableContent.StreamableContent
instance GHC.Classes.Eq GI.Atk.Interfaces.StreamableContent.StreamableContent
instance (Data.GI.Base.BasicTypes.ManagedPtrNewtype o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.StreamableContent.StreamableContent o) => GI.Atk.Interfaces.StreamableContent.IsStreamableContent o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.StreamableContent.StreamableContent


-- | A set of ATK utility functions for thread locking
--   
--   A set of utility functions for thread locking. This interface and all
--   his related methods are deprecated since 2.12.
module GI.Atk.Objects.Misc

-- | Memory-managed wrapper type.
newtype Misc
Misc :: ManagedPtr Misc -> Misc

-- | Type class for types which can be safely cast to <a>Misc</a>, for
--   instance with <a>toMisc</a>.
class (GObject o, IsDescendantOf Misc o) => IsMisc o

-- | Cast to <a>Misc</a>, for types for which this is known to be safe. For
--   general casts, use <a>castTo</a>.
toMisc :: (MonadIO m, IsMisc o) => o -> m Misc

-- | Obtain the singleton instance of AtkMisc for this application.
--   
--   <i>Since: 1.13</i>

-- | <i>Deprecated: Since 2.12.</i>
miscGetInstance :: (HasCallStack, MonadIO m) => m Misc

-- | Take the thread mutex for the GUI toolkit, if one exists. (This method
--   is implemented by the toolkit ATK implementation layer; for instance,
--   for GTK+, GAIL implements this via GDK_THREADS_ENTER).
--   
--   <i>Since: 1.13</i>

-- | <i>Deprecated: Since 2.12.</i>
miscThreadsEnter :: (HasCallStack, MonadIO m, IsMisc a) => a -> m ()

-- | Release the thread mutex for the GUI toolkit, if one exists. This
--   method, and atk_misc_threads_enter, are needed in some situations by
--   threaded application code which services ATK requests, since
--   fulfilling ATK requests often requires calling into the GUI toolkit.
--   If a long-running or potentially blocking call takes place inside such
--   a block, it should be bracketed by
--   atk_misc_threads_leave/atk_misc_threads_enter calls. (This method is
--   implemented by the toolkit ATK implementation layer; for instance, for
--   GTK+, GAIL implements this via GDK_THREADS_LEAVE).
--   
--   <i>Since: 1.13</i>

-- | <i>Deprecated: Since 2.12.</i>
miscThreadsLeave :: (HasCallStack, MonadIO m, IsMisc a) => a -> m ()
instance GHC.Classes.Eq GI.Atk.Objects.Misc.Misc
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.Misc.Misc
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.Misc.Misc
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.Misc.Misc)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.Misc.Misc o) => GI.Atk.Objects.Misc.IsMisc o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.Misc.Misc
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.Misc.Misc


-- | An AtkStateSet contains the states of an object.
--   
--   An AtkStateSet is a read-only representation of the full set of
--   <tt><i>AtkStates</i></tt> that apply to an object at a given time.
--   This set is not meant to be modified, but rather created when
--   <tt><i>atk_object_ref_state_set</i></tt>() is called.
module GI.Atk.Objects.StateSet

-- | Memory-managed wrapper type.
newtype StateSet
StateSet :: ManagedPtr StateSet -> StateSet

-- | Type class for types which can be safely cast to <a>StateSet</a>, for
--   instance with <a>toStateSet</a>.
class (GObject o, IsDescendantOf StateSet o) => IsStateSet o

-- | Cast to <a>StateSet</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toStateSet :: (MonadIO m, IsStateSet o) => o -> m StateSet

-- | Adds the state of the specified type to the state set if it is not
--   already present.
--   
--   Note that because an <a>StateSet</a> is a read-only object, this
--   method should be used to add a state to a newly-created set which will
--   then be returned by <tt><i>atk_object_ref_state_set</i></tt>. It
--   should not be used to modify the existing state of an object. See also
--   <tt><i>atk_object_notify_state_change</i></tt>.
stateSetAddState :: (HasCallStack, MonadIO m, IsStateSet a) => a -> StateType -> m Bool

-- | Adds the states of the specified types to the state set.
--   
--   Note that because an <a>StateSet</a> is a read-only object, this
--   method should be used to add states to a newly-created set which will
--   then be returned by <tt><i>atk_object_ref_state_set</i></tt>. It
--   should not be used to modify the existing state of an object. See also
--   <tt><i>atk_object_notify_state_change</i></tt>.
stateSetAddStates :: (HasCallStack, MonadIO m, IsStateSet a) => a -> [StateType] -> m ()

-- | Constructs the intersection of the two sets, returning <a>Nothing</a>
--   if the intersection is empty.
stateSetAndSets :: (HasCallStack, MonadIO m, IsStateSet a, IsStateSet b) => a -> b -> m StateSet

-- | Removes all states from the state set.
stateSetClearStates :: (HasCallStack, MonadIO m, IsStateSet a) => a -> m ()

-- | Checks whether the state for the specified type is in the specified
--   set.
stateSetContainsState :: (HasCallStack, MonadIO m, IsStateSet a) => a -> StateType -> m Bool

-- | Checks whether the states for all the specified types are in the
--   specified set.
stateSetContainsStates :: (HasCallStack, MonadIO m, IsStateSet a) => a -> [StateType] -> m Bool

-- | Checks whether the state set is empty, i.e. has no states set.
stateSetIsEmpty :: (HasCallStack, MonadIO m, IsStateSet a) => a -> m Bool

-- | Creates a new empty state set.
stateSetNew :: (HasCallStack, MonadIO m) => m StateSet

-- | Constructs the union of the two sets.
stateSetOrSets :: (HasCallStack, MonadIO m, IsStateSet a, IsStateSet b) => a -> b -> m (Maybe StateSet)

-- | Removes the state for the specified type from the state set.
--   
--   Note that because an <a>StateSet</a> is a read-only object, this
--   method should be used to remove a state to a newly-created set which
--   will then be returned by <tt><i>atk_object_ref_state_set</i></tt>. It
--   should not be used to modify the existing state of an object. See also
--   <tt><i>atk_object_notify_state_change</i></tt>.
stateSetRemoveState :: (HasCallStack, MonadIO m, IsStateSet a) => a -> StateType -> m Bool

-- | Constructs the exclusive-or of the two sets, returning <a>Nothing</a>
--   is empty. The set returned by this operation contains the states in
--   exactly one of the two sets.
stateSetXorSets :: (HasCallStack, MonadIO m, IsStateSet a, IsStateSet b) => a -> b -> m StateSet
instance GHC.Classes.Eq GI.Atk.Objects.StateSet.StateSet
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.StateSet.StateSet
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.StateSet.StateSet
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.StateSet.StateSet)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.StateSet.StateSet o) => GI.Atk.Objects.StateSet.IsStateSet o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.StateSet.StateSet
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.StateSet.StateSet


-- | A set of ATK utility functions for event and toolkit support.
--   
--   A set of ATK utility functions which are used to support event
--   registration of various types, and obtaining the 'root' accessible of
--   a process and information about the current ATK implementation and
--   toolkit version.
module GI.Atk.Objects.Util

-- | Memory-managed wrapper type.
newtype Util
Util :: ManagedPtr Util -> Util

-- | Type class for types which can be safely cast to <a>Util</a>, for
--   instance with <a>toUtil</a>.
class (GObject o, IsDescendantOf Util o) => IsUtil o

-- | Cast to <a>Util</a>, for types for which this is known to be safe. For
--   general casts, use <a>castTo</a>.
toUtil :: (MonadIO m, IsUtil o) => o -> m Util
instance GHC.Classes.Eq GI.Atk.Objects.Util.Util
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.Util.Util
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.Util.Util
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.Util.Util)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.Util.Util o) => GI.Atk.Objects.Util.IsUtil o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.Util.Util
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.Util.Util


-- | AtkAttribute is a string name/value pair representing a generic
--   attribute. This can be used to expose additional information from an
--   accessible object as a whole (see <a>objectGetAttributes</a>) or an
--   document (see <a>documentGetAttributes</a>). In the case of text
--   attributes (see <a>textGetDefaultAttributes</a>), <a>TextAttribute</a>
--   enum defines all the possible text attribute names. You can use
--   <a>textAttributeGetName</a> to get the string name from the enum
--   value. See also <a>textAttributeForName</a> and
--   <a>textAttributeGetValue</a> for more information.
--   
--   A string name/value pair representing a generic attribute.
module GI.Atk.Structs.Attribute

-- | Memory-managed wrapper type.
newtype Attribute
Attribute :: ManagedPtr Attribute -> Attribute

-- | Construct a <a>Attribute</a> struct initialized to zero.
newZeroAttribute :: MonadIO m => m Attribute

-- | Frees the memory used by an <tt><i>AtkAttributeSet</i></tt>, including
--   all its <tt><i>AtkAttributes</i></tt>.
attributeSetFree :: (HasCallStack, MonadIO m) => [Ptr ()] -> m ()

-- | Set the value of the “<tt>name</tt>” field to <a>Nothing</a>. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #name
--   </pre>
clearAttributeName :: MonadIO m => Attribute -> m ()

-- | Get the value of the “<tt>name</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> attribute #name
--   </pre>
getAttributeName :: MonadIO m => Attribute -> m (Maybe Text)

-- | Set the value of the “<tt>name</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> attribute [ #name <a>:=</a> value ]
--   </pre>
setAttributeName :: MonadIO m => Attribute -> CString -> m ()

-- | Set the value of the “<tt>value</tt>” field to <a>Nothing</a>. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #value
--   </pre>
clearAttributeValue :: MonadIO m => Attribute -> m ()

-- | Get the value of the “<tt>value</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> attribute #value
--   </pre>
getAttributeValue :: MonadIO m => Attribute -> m (Maybe Text)

-- | Set the value of the “<tt>value</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> attribute [ #value <a>:=</a> value ]
--   </pre>
setAttributeValue :: MonadIO m => Attribute -> CString -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Structs.Attribute.Attribute
instance Data.GI.Base.BasicTypes.CallocPtr GI.Atk.Structs.Attribute.Attribute
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Atk.Structs.Attribute.Attribute tag
instance GHC.Classes.Eq GI.Atk.Structs.Attribute.Attribute
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Structs.Attribute.Attribute


-- | Encapsulates information about a key event.
module GI.Atk.Structs.KeyEventStruct

-- | Memory-managed wrapper type.
newtype KeyEventStruct
KeyEventStruct :: ManagedPtr KeyEventStruct -> KeyEventStruct

-- | Construct a <a>KeyEventStruct</a> struct initialized to zero.
newZeroKeyEventStruct :: MonadIO m => m KeyEventStruct

-- | Get the value of the “<tt>keycode</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keyEventStruct #keycode
--   </pre>
getKeyEventStructKeycode :: MonadIO m => KeyEventStruct -> m Word16

-- | Set the value of the “<tt>keycode</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keyEventStruct [ #keycode <a>:=</a> value ]
--   </pre>
setKeyEventStructKeycode :: MonadIO m => KeyEventStruct -> Word16 -> m ()

-- | Get the value of the “<tt>keyval</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keyEventStruct #keyval
--   </pre>
getKeyEventStructKeyval :: MonadIO m => KeyEventStruct -> m Word32

-- | Set the value of the “<tt>keyval</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keyEventStruct [ #keyval <a>:=</a> value ]
--   </pre>
setKeyEventStructKeyval :: MonadIO m => KeyEventStruct -> Word32 -> m ()

-- | Get the value of the “<tt>length</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keyEventStruct #length
--   </pre>
getKeyEventStructLength :: MonadIO m => KeyEventStruct -> m Int32

-- | Set the value of the “<tt>length</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keyEventStruct [ #length <a>:=</a> value ]
--   </pre>
setKeyEventStructLength :: MonadIO m => KeyEventStruct -> Int32 -> m ()

-- | Get the value of the “<tt>state</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keyEventStruct #state
--   </pre>
getKeyEventStructState :: MonadIO m => KeyEventStruct -> m Word32

-- | Set the value of the “<tt>state</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keyEventStruct [ #state <a>:=</a> value ]
--   </pre>
setKeyEventStructState :: MonadIO m => KeyEventStruct -> Word32 -> m ()

-- | Set the value of the “<tt>string</tt>” field to <a>Nothing</a>. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #string
--   </pre>
clearKeyEventStructString :: MonadIO m => KeyEventStruct -> m ()

-- | Get the value of the “<tt>string</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keyEventStruct #string
--   </pre>
getKeyEventStructString :: MonadIO m => KeyEventStruct -> m (Maybe Text)

-- | Set the value of the “<tt>string</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keyEventStruct [ #string <a>:=</a> value ]
--   </pre>
setKeyEventStructString :: MonadIO m => KeyEventStruct -> CString -> m ()

-- | Get the value of the “<tt>timestamp</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keyEventStruct #timestamp
--   </pre>
getKeyEventStructTimestamp :: MonadIO m => KeyEventStruct -> m Word32

-- | Set the value of the “<tt>timestamp</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keyEventStruct [ #timestamp <a>:=</a> value ]
--   </pre>
setKeyEventStructTimestamp :: MonadIO m => KeyEventStruct -> Word32 -> m ()

-- | Get the value of the “<tt>type</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> keyEventStruct #type
--   </pre>
getKeyEventStructType :: MonadIO m => KeyEventStruct -> m Int32

-- | Set the value of the “<tt>type</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> keyEventStruct [ #type <a>:=</a> value ]
--   </pre>
setKeyEventStructType :: MonadIO m => KeyEventStruct -> Int32 -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Structs.KeyEventStruct.KeyEventStruct
instance Data.GI.Base.BasicTypes.CallocPtr GI.Atk.Structs.KeyEventStruct.KeyEventStruct
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Atk.Structs.KeyEventStruct.KeyEventStruct tag
instance GHC.Classes.Eq GI.Atk.Structs.KeyEventStruct.KeyEventStruct
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Structs.KeyEventStruct.KeyEventStruct


-- | valid value. This is a field defined with the purpose of contain the
--   previous value of the property, but is not used anymore.
module GI.Atk.Structs.PropertyValues

-- | Memory-managed wrapper type.
newtype PropertyValues
PropertyValues :: ManagedPtr PropertyValues -> PropertyValues

-- | Construct a <a>PropertyValues</a> struct initialized to zero.
newZeroPropertyValues :: MonadIO m => m PropertyValues

-- | Set the value of the “<tt>new_value</tt>” field to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #newValue
--   </pre>
clearPropertyValuesNewValue :: MonadIO m => PropertyValues -> m ()

-- | Get the value of the “<tt>new_value</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> propertyValues #newValue
--   </pre>
getPropertyValuesNewValue :: MonadIO m => PropertyValues -> m (Maybe GValue)

-- | Set the value of the “<tt>new_value</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> propertyValues [ #newValue <a>:=</a> value ]
--   </pre>
setPropertyValuesNewValue :: MonadIO m => PropertyValues -> Ptr GValue -> m ()

-- | Set the value of the “<tt>old_value</tt>” field to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #oldValue
--   </pre>
clearPropertyValuesOldValue :: MonadIO m => PropertyValues -> m ()

-- | Get the value of the “<tt>old_value</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> propertyValues #oldValue
--   </pre>
getPropertyValuesOldValue :: MonadIO m => PropertyValues -> m (Maybe GValue)

-- | Set the value of the “<tt>old_value</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> propertyValues [ #oldValue <a>:=</a> value ]
--   </pre>
setPropertyValuesOldValue :: MonadIO m => PropertyValues -> Ptr GValue -> m ()

-- | Set the value of the “<tt>property_name</tt>” field to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #propertyName
--   </pre>
clearPropertyValuesPropertyName :: MonadIO m => PropertyValues -> m ()

-- | Get the value of the “<tt>property_name</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> propertyValues #propertyName
--   </pre>
getPropertyValuesPropertyName :: MonadIO m => PropertyValues -> m (Maybe Text)

-- | Set the value of the “<tt>property_name</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> propertyValues [ #propertyName <a>:=</a> value ]
--   </pre>
setPropertyValuesPropertyName :: MonadIO m => PropertyValues -> CString -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Structs.PropertyValues.PropertyValues
instance Data.GI.Base.BasicTypes.CallocPtr GI.Atk.Structs.PropertyValues.PropertyValues
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Atk.Structs.PropertyValues.PropertyValues tag
instance GHC.Classes.Eq GI.Atk.Structs.PropertyValues.PropertyValues
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Structs.PropertyValues.PropertyValues


-- | <i>No description available in the introspection data.</i>
module GI.Atk.Structs.Implementor

-- | Memory-managed wrapper type.
newtype Implementor
Implementor :: ManagedPtr Implementor -> Implementor

-- | Gets a reference to an object's <a>Object</a> implementation, if the
--   object implements <tt><i>AtkObjectIface</i></tt>
implementorRefAccessible :: (HasCallStack, MonadIO m) => Implementor -> m Object
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Structs.Implementor.Implementor
instance GHC.Classes.Eq GI.Atk.Structs.Implementor.Implementor
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Structs.Implementor.Implementor


-- | A set of AtkRelations, normally the set of AtkRelations which an
--   AtkObject has.
--   
--   The AtkRelationSet held by an object establishes its relationships
--   with objects beyond the normal "parent/child" hierarchical
--   relationships that all user interface objects have. AtkRelationSets
--   establish whether objects are labelled or controlled by other
--   components, share group membership with other components (for instance
--   within a radio-button group), or share content which "flows" between
--   them, among other types of possible relationships.
module GI.Atk.Objects.RelationSet

-- | Memory-managed wrapper type.
newtype RelationSet
RelationSet :: ManagedPtr RelationSet -> RelationSet

-- | Type class for types which can be safely cast to <a>RelationSet</a>,
--   for instance with <a>toRelationSet</a>.
class (GObject o, IsDescendantOf RelationSet o) => IsRelationSet o

-- | Cast to <a>RelationSet</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toRelationSet :: (MonadIO m, IsRelationSet o) => o -> m RelationSet

-- | Add a new relation to the current relation set if it is not already
--   present. This function ref's the AtkRelation so the caller of this
--   function should unref it to ensure that it will be destroyed when the
--   AtkRelationSet is destroyed.
relationSetAdd :: (HasCallStack, MonadIO m, IsRelationSet a, IsRelation b) => a -> b -> m ()

-- | Add a new relation of the specified type with the specified target to
--   the current relation set if the relation set does not contain a
--   relation of that type. If it is does contain a relation of that typea
--   the target is added to the relation.
--   
--   <i>Since: 1.9</i>
relationSetAddRelationByType :: (HasCallStack, MonadIO m, IsRelationSet a, IsObject b) => a -> RelationType -> b -> m ()

-- | Determines whether the relation set contains a relation that matches
--   the specified type.
relationSetContains :: (HasCallStack, MonadIO m, IsRelationSet a) => a -> RelationType -> m Bool

-- | Determines whether the relation set contains a relation that matches
--   the specified pair formed by type <i><tt>relationship</tt></i> and
--   object <i><tt>target</tt></i>.
relationSetContainsTarget :: (HasCallStack, MonadIO m, IsRelationSet a, IsObject b) => a -> RelationType -> b -> m Bool

-- | Determines the number of relations in a relation set.
relationSetGetNRelations :: (HasCallStack, MonadIO m, IsRelationSet a) => a -> m Int32

-- | Determines the relation at the specified position in the relation set.
relationSetGetRelation :: (HasCallStack, MonadIO m, IsRelationSet a) => a -> Int32 -> m Relation

-- | Finds a relation that matches the specified type.
relationSetGetRelationByType :: (HasCallStack, MonadIO m, IsRelationSet a) => a -> RelationType -> m Relation

-- | Creates a new empty relation set.
relationSetNew :: (HasCallStack, MonadIO m) => m RelationSet

-- | Removes a relation from the relation set. This function unref's the
--   <a>Relation</a> so it will be deleted unless there is another
--   reference to it.
relationSetRemove :: (HasCallStack, MonadIO m, IsRelationSet a, IsRelation b) => a -> b -> m ()
instance GHC.Classes.Eq GI.Atk.Objects.RelationSet.RelationSet
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.RelationSet.RelationSet
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.RelationSet.RelationSet
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.RelationSet.RelationSet)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.RelationSet.RelationSet o) => GI.Atk.Objects.RelationSet.IsRelationSet o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.RelationSet.RelationSet
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.RelationSet.RelationSet


-- | An object used to describe a relation between a object and one or more
--   other objects.
--   
--   An AtkRelation describes a relation between an object and one or more
--   other objects. The actual relations that an object has with other
--   objects are defined as an AtkRelationSet, which is a set of
--   AtkRelations.
module GI.Atk.Objects.Relation

-- | Memory-managed wrapper type.
newtype Relation
Relation :: ManagedPtr Relation -> Relation

-- | Type class for types which can be safely cast to <a>Relation</a>, for
--   instance with <a>toRelation</a>.
class (GObject o, IsDescendantOf Relation o) => IsRelation o

-- | Cast to <a>Relation</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toRelation :: (MonadIO m, IsRelation o) => o -> m Relation

-- | Adds the specified AtkObject to the target for the relation, if it is
--   not already present. See also <a>objectAddRelationship</a>.
--   
--   <i>Since: 1.9</i>
relationAddTarget :: (HasCallStack, MonadIO m, IsRelation a, IsObject b) => a -> b -> m ()

-- | Gets the type of <i><tt>relation</tt></i>
relationGetRelationType :: (HasCallStack, MonadIO m, IsRelation a) => a -> m RelationType

-- | Gets the target list of <i><tt>relation</tt></i>
relationGetTarget :: (HasCallStack, MonadIO m, IsRelation a) => a -> m [Object]

-- | Create a new relation for the specified key and the specified list of
--   targets. See also <a>objectAddRelationship</a>.
relationNew :: (HasCallStack, MonadIO m) => [Object] -> RelationType -> m Relation

-- | Remove the specified AtkObject from the target for the relation.
relationRemoveTarget :: (HasCallStack, MonadIO m, IsRelation a, IsObject b) => a -> b -> m Bool

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>relation-type</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructRelationRelationType :: (IsRelation o, MonadIO m) => RelationType -> m (GValueConstruct o)

-- | Get the value of the “<tt>relation-type</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> relation #relationType
--   </pre>
getRelationRelationType :: (MonadIO m, IsRelation o) => o -> m RelationType

-- | Set the value of the “<tt>relation-type</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> relation [ #relationType <a>:=</a> value ]
--   </pre>
setRelationRelationType :: (MonadIO m, IsRelation o) => o -> RelationType -> m ()

-- | Set the value of the “<tt>target</tt>” property to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #target
--   </pre>
clearRelationTarget :: (MonadIO m, IsRelation o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>target</tt>” property. This is rarely needed directly, but it is
--   used by <a>new</a>.
constructRelationTarget :: (IsRelation o, MonadIO m) => ValueArray -> m (GValueConstruct o)

-- | Get the value of the “<tt>target</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> relation #target
--   </pre>
getRelationTarget :: (MonadIO m, IsRelation o) => o -> m (Maybe ValueArray)

-- | Set the value of the “<tt>target</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> relation [ #target <a>:=</a> value ]
--   </pre>
setRelationTarget :: (MonadIO m, IsRelation o) => o -> ValueArray -> m ()
instance GHC.Classes.Eq GI.Atk.Objects.Relation.Relation
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.Relation.Relation
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.Relation.Relation
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.Relation.Relation)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.Relation.Relation o) => GI.Atk.Objects.Relation.IsRelation o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.Relation.Relation
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.Relation.Relation


-- | An object used to store the GType of the factories used to create an
--   accessible object for an object of a particular GType.
--   
--   The AtkRegistry is normally used to create appropriate ATK "peers" for
--   user interface components. Application developers usually need only
--   interact with the AtkRegistry by associating appropriate ATK
--   implementation classes with GObject classes via the
--   atk_registry_set_factory_type call, passing the appropriate GType for
--   application custom widget classes.
module GI.Atk.Objects.Registry

-- | Memory-managed wrapper type.
newtype Registry
Registry :: ManagedPtr Registry -> Registry

-- | Type class for types which can be safely cast to <a>Registry</a>, for
--   instance with <a>toRegistry</a>.
class (GObject o, IsDescendantOf Registry o) => IsRegistry o

-- | Cast to <a>Registry</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toRegistry :: (MonadIO m, IsRegistry o) => o -> m Registry

-- | Gets an <a>ObjectFactory</a> appropriate for creating
--   <tt><i>AtkObjects</i></tt> appropriate for <i><tt>type</tt></i>.
registryGetFactory :: (HasCallStack, MonadIO m, IsRegistry a) => a -> GType -> m ObjectFactory

-- | Provides a <a>GType</a> indicating the <a>ObjectFactory</a> subclass
--   associated with <i><tt>type</tt></i>.
registryGetFactoryType :: (HasCallStack, MonadIO m, IsRegistry a) => a -> GType -> m GType

-- | Associate an <a>ObjectFactory</a> subclass with a <a>GType</a>. Note:
--   The associated <i><tt>factoryType</tt></i> will thereafter be
--   responsible for the creation of new <a>Object</a> implementations for
--   instances appropriate for <i><tt>type</tt></i>.
registrySetFactoryType :: (HasCallStack, MonadIO m, IsRegistry a) => a -> GType -> GType -> m ()
instance GHC.Classes.Eq GI.Atk.Objects.Registry.Registry
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.Registry.Registry
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.Registry.Registry
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.Registry.Registry)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.Registry.Registry o) => GI.Atk.Objects.Registry.IsRegistry o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.Registry.Registry
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.Registry.Registry


-- | The base object class for a factory used to create accessible objects
--   for objects of a specific GType.
--   
--   This class is the base object class for a factory used to create an
--   accessible object for a specific GType. The function
--   <a>registrySetFactoryType</a> is normally called to store in the
--   registry the factory type to be used to create an accessible of a
--   particular GType.
module GI.Atk.Objects.ObjectFactory

-- | Memory-managed wrapper type.
newtype ObjectFactory
ObjectFactory :: ManagedPtr ObjectFactory -> ObjectFactory

-- | Type class for types which can be safely cast to <a>ObjectFactory</a>,
--   for instance with <a>toObjectFactory</a>.
class (GObject o, IsDescendantOf ObjectFactory o) => IsObjectFactory o

-- | Cast to <a>ObjectFactory</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toObjectFactory :: (MonadIO m, IsObjectFactory o) => o -> m ObjectFactory

-- | Provides an <a>Object</a> that implements an accessibility interface
--   on behalf of <i><tt>obj</tt></i>
objectFactoryCreateAccessible :: (HasCallStack, MonadIO m, IsObjectFactory a, IsObject b) => a -> b -> m Object

-- | Gets the GType of the accessible which is created by the factory.
objectFactoryGetAccessibleType :: (HasCallStack, MonadIO m, IsObjectFactory a) => a -> m GType

-- | Inform <i><tt>factory</tt></i> that it is no longer being used to
--   create accessibles. When called, <i><tt>factory</tt></i> may need to
--   inform <tt><i>AtkObjects</i></tt> which it has created that they need
--   to be re-instantiated. Note: primarily used for runtime replacement of
--   <tt><i>AtkObjectFactorys</i></tt> in object registries.
objectFactoryInvalidate :: (HasCallStack, MonadIO m, IsObjectFactory a) => a -> m ()
instance GHC.Classes.Eq GI.Atk.Objects.ObjectFactory.ObjectFactory
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.ObjectFactory.ObjectFactory
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.ObjectFactory.ObjectFactory
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.ObjectFactory.ObjectFactory)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.ObjectFactory.ObjectFactory o) => GI.Atk.Objects.ObjectFactory.IsObjectFactory o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.ObjectFactory.ObjectFactory
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.ObjectFactory.ObjectFactory


-- | The base object class for the Accessibility Toolkit API.
--   
--   This class is the primary class for accessibility support via the
--   Accessibility ToolKit (ATK). Objects which are instances of
--   <a>Object</a> (or instances of AtkObject-derived types) are queried
--   for properties which relate basic (and generic) properties of a UI
--   component such as name and description. Instances of <a>Object</a> may
--   also be queried as to whether they implement other ATK interfaces
--   (e.g. <a>Action</a>, <a>Component</a>, etc.), as appropriate to the
--   role which a given UI component plays in a user interface.
--   
--   All UI components in an application which provide useful information
--   or services to the user must provide corresponding <a>Object</a>
--   instances on request (in GTK+, for instance, usually on a call to
--   <tt><i>gtk_widget_get_accessible</i></tt> ()), either via ATK support
--   built into the toolkit for the widget class or ancestor class, or in
--   the case of custom widgets, if the inherited <a>Object</a>
--   implementation is insufficient, via instances of a new <a>Object</a>
--   subclass.
--   
--   See [class<i><tt>atkObjectFactory</tt></i>],
--   [class<i><tt>atkRegistry</tt></i>]. (GTK+ users see also
--   <tt><i>GtkAccessible</i></tt>).
module GI.Atk.Objects.Object

-- | Memory-managed wrapper type.
newtype Object
Object :: ManagedPtr Object -> Object

-- | Type class for types which can be safely cast to <a>Object</a>, for
--   instance with <a>toObject</a>.
class (GObject o, IsDescendantOf Object o) => IsObject o

-- | Cast to <a>Object</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toObject :: (MonadIO m, IsObject o) => o -> m Object

-- | Adds a relationship of the specified type with the specified target.
objectAddRelationship :: (HasCallStack, MonadIO m, IsObject a, IsObject b) => a -> RelationType -> b -> m Bool

-- | Gets the accessible id of the accessible.
--   
--   <i>Since: 2.34</i>
objectGetAccessibleId :: (HasCallStack, MonadIO m, IsObject a) => a -> m Text

-- | Get a list of properties applied to this object as a whole, as an
--   <tt><i>AtkAttributeSet</i></tt> consisting of name-value pairs. As
--   such these attributes may be considered weakly-typed properties or
--   annotations, as distinct from strongly-typed object data available via
--   other get/set methods. Not all objects have explicit "name-value pair"
--   <tt><i>AtkAttributeSet</i></tt> properties.
--   
--   <i>Since: 1.12</i>
objectGetAttributes :: (HasCallStack, MonadIO m, IsObject a) => a -> m [Ptr ()]

-- | Gets the accessible description of the accessible.
objectGetDescription :: (HasCallStack, MonadIO m, IsObject a) => a -> m Text

-- | Gets the help text associated with the accessible.
--   
--   <i>Since: 2.52</i>
objectGetHelpText :: (HasCallStack, MonadIO m, IsObject a) => a -> m Text

-- | Gets the 0-based index of this accessible in its parent; returns -1 if
--   the accessible does not have an accessible parent.
objectGetIndexInParent :: (HasCallStack, MonadIO m, IsObject a) => a -> m Int32

-- | Gets the layer of the accessible.

-- | <i>Deprecated: Use atk_component_get_layer instead.</i>
objectGetLayer :: (HasCallStack, MonadIO m, IsObject a) => a -> m Layer

-- | Gets the zorder of the accessible. The value G_MININT will be returned
--   if the layer of the accessible is not ATK_LAYER_MDI.

-- | <i>Deprecated: Use atk_component_get_mdi_zorder instead.</i>
objectGetMdiZorder :: (HasCallStack, MonadIO m, IsObject a) => a -> m Int32

-- | Gets the number of accessible children of the accessible.
objectGetNAccessibleChildren :: (HasCallStack, MonadIO m, IsObject a) => a -> m Int32

-- | Gets the accessible name of the accessible.
objectGetName :: (HasCallStack, MonadIO m, IsObject a) => a -> m Text

-- | Gets a UTF-8 string indicating the POSIX-style LC_MESSAGES locale of
--   <i><tt>accessible</tt></i>.
--   
--   <i>Since: 2.8</i>
objectGetObjectLocale :: (HasCallStack, MonadIO m, IsObject a) => a -> m Text

-- | Gets the accessible parent of the accessible. By default this is the
--   one assigned with <a>objectSetParent</a>, but it is assumed that ATK
--   implementors have ways to get the parent of the object without the
--   need of assigning it manually with <a>objectSetParent</a>, and will
--   return it with this method.
--   
--   If you are only interested on the parent assigned with
--   <a>objectSetParent</a>, use <a>objectPeekParent</a>.
objectGetParent :: (HasCallStack, MonadIO m, IsObject a) => a -> m Object

-- | Gets the role of the accessible.
objectGetRole :: (HasCallStack, MonadIO m, IsObject a) => a -> m Role

-- | This function is called when implementing subclasses of <a>Object</a>.
--   It does initialization required for the new object. It is intended
--   that this function should called only in the ...<tt><i>_new()</i></tt>
--   functions used to create an instance of a subclass of <a>Object</a>
objectInitialize :: (HasCallStack, MonadIO m, IsObject a) => a -> Ptr () -> m ()

-- | Emits a state-change signal for the specified state.
--   
--   Note that as a general rule when the state of an existing object
--   changes, emitting a notification is expected.
objectNotifyStateChange :: (HasCallStack, MonadIO m, IsObject a) => a -> Word64 -> Bool -> m ()

-- | Gets the accessible parent of the accessible, if it has been manually
--   assigned with atk_object_set_parent. Otherwise, this function returns
--   <a>Nothing</a>.
--   
--   This method is intended as an utility for ATK implementors, and not to
--   be exposed to accessible tools. See <a>objectGetParent</a> for further
--   reference.
objectPeekParent :: (HasCallStack, MonadIO m, IsObject a) => a -> m Object

-- | Gets a reference to the specified accessible child of the object. The
--   accessible children are 0-based so the first accessible child is at
--   index 0, the second at index 1 and so on.
objectRefAccessibleChild :: (HasCallStack, MonadIO m, IsObject a) => a -> Int32 -> m Object

-- | Gets the <a>RelationSet</a> associated with the object.
objectRefRelationSet :: (HasCallStack, MonadIO m, IsObject a) => a -> m RelationSet

-- | Gets a reference to the state set of the accessible; the caller must
--   unreference it when it is no longer needed.
objectRefStateSet :: (HasCallStack, MonadIO m, IsObject a) => a -> m StateSet

-- | Removes a property change handler.

-- | <i>Deprecated: (Since version 2.12)See
--   <tt><i>atk_object_connect_property_change_handler()</i></tt></i>
objectRemovePropertyChangeHandler :: (HasCallStack, MonadIO m, IsObject a) => a -> Word32 -> m ()

-- | Removes a relationship of the specified type with the specified
--   target.
objectRemoveRelationship :: (HasCallStack, MonadIO m, IsObject a, IsObject b) => a -> RelationType -> b -> m Bool

-- | Sets the accessible ID of the accessible. This is not meant to be
--   presented to the user, but to be an ID which is stable over
--   application development. Typically, this is the gtkbuilder ID. Such an
--   ID will be available for instance to identify a given well-known
--   accessible object for tailored screen reading, or for automatic
--   regression testing.
--   
--   <i>Since: 2.34</i>
objectSetAccessibleId :: (HasCallStack, MonadIO m, IsObject a) => a -> Text -> m ()

-- | Sets the accessible description of the accessible. You can't set the
--   description to NULL. This is reserved for the initial value. In this
--   aspect NULL is similar to ATK_ROLE_UNKNOWN. If you want to set the
--   name to a empty value you can use "".
objectSetDescription :: (HasCallStack, MonadIO m, IsObject a) => a -> Text -> m ()

-- | Sets the help text associated with the accessible. This can be used to
--   expose context-sensitive information to help a user understand how to
--   interact with the object. You can't set the help text to NULL. This is
--   reserved for the initial value. If you want to set the name to an
--   empty value, you can use "".
--   
--   <i>Since: 2.52</i>
objectSetHelpText :: (HasCallStack, MonadIO m, IsObject a) => a -> Text -> m ()

-- | Sets the accessible name of the accessible. You can't set the name to
--   NULL. This is reserved for the initial value. In this aspect NULL is
--   similar to ATK_ROLE_UNKNOWN. If you want to set the name to a empty
--   value you can use "".
objectSetName :: (HasCallStack, MonadIO m, IsObject a) => a -> Text -> m ()

-- | Sets the accessible parent of the accessible. <i><tt>parent</tt></i>
--   can be NULL.
objectSetParent :: (HasCallStack, MonadIO m, IsObject a, IsObject b) => a -> b -> m ()

-- | Sets the role of the accessible.
objectSetRole :: (HasCallStack, MonadIO m, IsObject a) => a -> Role -> m ()

-- | Get the value of the “<tt>accessible-component-layer</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleComponentLayer
--   </pre>
getObjectAccessibleComponentLayer :: (MonadIO m, IsObject o) => o -> m Int32

-- | Get the value of the “<tt>accessible-component-mdi-zorder</tt>”
--   property. When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleComponentMdiZorder
--   </pre>
getObjectAccessibleComponentMdiZorder :: (MonadIO m, IsObject o) => o -> m Int32

-- | Set the value of the “<tt>accessible-description</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #accessibleDescription
--   </pre>
clearObjectAccessibleDescription :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-description</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructObjectAccessibleDescription :: (IsObject o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-description</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleDescription
--   </pre>
getObjectAccessibleDescription :: (MonadIO m, IsObject o) => o -> m (Maybe Text)

-- | Set the value of the “<tt>accessible-description</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleDescription <a>:=</a> value ]
--   </pre>
setObjectAccessibleDescription :: (MonadIO m, IsObject o) => o -> Text -> m ()

-- | Set the value of the “<tt>accessible-help-text</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #accessibleHelpText
--   </pre>
clearObjectAccessibleHelpText :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-help-text</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructObjectAccessibleHelpText :: (IsObject o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-help-text</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleHelpText
--   </pre>
getObjectAccessibleHelpText :: (MonadIO m, IsObject o) => o -> m (Maybe Text)

-- | Set the value of the “<tt>accessible-help-text</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleHelpText <a>:=</a> value ]
--   </pre>
setObjectAccessibleHelpText :: (MonadIO m, IsObject o) => o -> Text -> m ()

-- | Get the value of the “<tt>accessible-hypertext-nlinks</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleHypertextNlinks
--   </pre>
getObjectAccessibleHypertextNlinks :: (MonadIO m, IsObject o) => o -> m Int32

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-id</tt>” property. This is rarely needed directly, but
--   it is used by <a>new</a>.
constructObjectAccessibleId :: (IsObject o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-id</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleId
--   </pre>
getObjectAccessibleId :: (MonadIO m, IsObject o) => o -> m Text

-- | Set the value of the “<tt>accessible-id</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleId <a>:=</a> value ]
--   </pre>
setObjectAccessibleId :: (MonadIO m, IsObject o) => o -> Text -> m ()

-- | Set the value of the “<tt>accessible-name</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #accessibleName
--   </pre>
clearObjectAccessibleName :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-name</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructObjectAccessibleName :: (IsObject o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-name</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleName
--   </pre>
getObjectAccessibleName :: (MonadIO m, IsObject o) => o -> m (Maybe Text)

-- | Set the value of the “<tt>accessible-name</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleName <a>:=</a> value ]
--   </pre>
setObjectAccessibleName :: (MonadIO m, IsObject o) => o -> Text -> m ()

-- | Set the value of the “<tt>accessible-parent</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #accessibleParent
--   </pre>
clearObjectAccessibleParent :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-parent</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructObjectAccessibleParent :: (IsObject o, MonadIO m, IsObject a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-parent</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleParent
--   </pre>
getObjectAccessibleParent :: (MonadIO m, IsObject o) => o -> m (Maybe Object)

-- | Set the value of the “<tt>accessible-parent</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleParent <a>:=</a> value ]
--   </pre>
setObjectAccessibleParent :: (MonadIO m, IsObject o, IsObject a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-role</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructObjectAccessibleRole :: (IsObject o, MonadIO m) => Role -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-role</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleRole
--   </pre>
getObjectAccessibleRole :: (MonadIO m, IsObject o) => o -> m Role

-- | Set the value of the “<tt>accessible-role</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleRole <a>:=</a> value ]
--   </pre>
setObjectAccessibleRole :: (MonadIO m, IsObject o) => o -> Role -> m ()

-- | Set the value of the “<tt>accessible-table-caption</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #accessibleTableCaption
--   </pre>
clearObjectAccessibleTableCaption :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-table-caption</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructObjectAccessibleTableCaption :: (IsObject o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-table-caption</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleTableCaption
--   </pre>
getObjectAccessibleTableCaption :: (MonadIO m, IsObject o) => o -> m (Maybe Text)

-- | Set the value of the “<tt>accessible-table-caption</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleTableCaption <a>:=</a> value ]
--   </pre>
setObjectAccessibleTableCaption :: (MonadIO m, IsObject o) => o -> Text -> m ()

-- | Set the value of the “<tt>accessible-table-caption-object</tt>”
--   property to <a>Nothing</a>. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>clear</a> #accessibleTableCaptionObject
--   </pre>
clearObjectAccessibleTableCaptionObject :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-table-caption-object</tt>” property. This is rarely
--   needed directly, but it is used by <a>new</a>.
constructObjectAccessibleTableCaptionObject :: (IsObject o, MonadIO m, IsObject a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-table-caption-object</tt>”
--   property. When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleTableCaptionObject
--   </pre>
getObjectAccessibleTableCaptionObject :: (MonadIO m, IsObject o) => o -> m (Maybe Object)

-- | Set the value of the “<tt>accessible-table-caption-object</tt>”
--   property. When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleTableCaptionObject <a>:=</a> value ]
--   </pre>
setObjectAccessibleTableCaptionObject :: (MonadIO m, IsObject o, IsObject a) => o -> a -> m ()

-- | Set the value of the “<tt>accessible-table-column-description</tt>”
--   property to <a>Nothing</a>. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>clear</a> #accessibleTableColumnDescription
--   </pre>
clearObjectAccessibleTableColumnDescription :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-table-column-description</tt>” property. This is
--   rarely needed directly, but it is used by <a>new</a>.
constructObjectAccessibleTableColumnDescription :: (IsObject o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-table-column-description</tt>”
--   property. When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleTableColumnDescription
--   </pre>
getObjectAccessibleTableColumnDescription :: (MonadIO m, IsObject o) => o -> m (Maybe Text)

-- | Set the value of the “<tt>accessible-table-column-description</tt>”
--   property. When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleTableColumnDescription <a>:=</a> value ]
--   </pre>
setObjectAccessibleTableColumnDescription :: (MonadIO m, IsObject o) => o -> Text -> m ()

-- | Set the value of the “<tt>accessible-table-column-header</tt>”
--   property to <a>Nothing</a>. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>clear</a> #accessibleTableColumnHeader
--   </pre>
clearObjectAccessibleTableColumnHeader :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-table-column-header</tt>” property. This is rarely
--   needed directly, but it is used by <a>new</a>.
constructObjectAccessibleTableColumnHeader :: (IsObject o, MonadIO m, IsObject a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-table-column-header</tt>”
--   property. When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleTableColumnHeader
--   </pre>
getObjectAccessibleTableColumnHeader :: (MonadIO m, IsObject o) => o -> m (Maybe Object)

-- | Set the value of the “<tt>accessible-table-column-header</tt>”
--   property. When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleTableColumnHeader <a>:=</a> value ]
--   </pre>
setObjectAccessibleTableColumnHeader :: (MonadIO m, IsObject o, IsObject a) => o -> a -> m ()

-- | Set the value of the “<tt>accessible-table-row-description</tt>”
--   property to <a>Nothing</a>. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>clear</a> #accessibleTableRowDescription
--   </pre>
clearObjectAccessibleTableRowDescription :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-table-row-description</tt>” property. This is rarely
--   needed directly, but it is used by <a>new</a>.
constructObjectAccessibleTableRowDescription :: (IsObject o, MonadIO m) => Text -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-table-row-description</tt>”
--   property. When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleTableRowDescription
--   </pre>
getObjectAccessibleTableRowDescription :: (MonadIO m, IsObject o) => o -> m (Maybe Text)

-- | Set the value of the “<tt>accessible-table-row-description</tt>”
--   property. When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleTableRowDescription <a>:=</a> value ]
--   </pre>
setObjectAccessibleTableRowDescription :: (MonadIO m, IsObject o) => o -> Text -> m ()

-- | Set the value of the “<tt>accessible-table-row-header</tt>” property
--   to <a>Nothing</a>. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>clear</a> #accessibleTableRowHeader
--   </pre>
clearObjectAccessibleTableRowHeader :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-table-row-header</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructObjectAccessibleTableRowHeader :: (IsObject o, MonadIO m, IsObject a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-table-row-header</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleTableRowHeader
--   </pre>
getObjectAccessibleTableRowHeader :: (MonadIO m, IsObject o) => o -> m (Maybe Object)

-- | Set the value of the “<tt>accessible-table-row-header</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleTableRowHeader <a>:=</a> value ]
--   </pre>
setObjectAccessibleTableRowHeader :: (MonadIO m, IsObject o, IsObject a) => o -> a -> m ()

-- | Set the value of the “<tt>accessible-table-summary</tt>” property to
--   <a>Nothing</a>. When <a>overloading</a> is enabled, this is equivalent
--   to
--   
--   <pre>
--   <a>clear</a> #accessibleTableSummary
--   </pre>
clearObjectAccessibleTableSummary :: (MonadIO m, IsObject o) => o -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-table-summary</tt>” property. This is rarely needed
--   directly, but it is used by <a>new</a>.
constructObjectAccessibleTableSummary :: (IsObject o, MonadIO m, IsObject a) => a -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-table-summary</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleTableSummary
--   </pre>
getObjectAccessibleTableSummary :: (MonadIO m, IsObject o) => o -> m (Maybe Object)

-- | Set the value of the “<tt>accessible-table-summary</tt>” property.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleTableSummary <a>:=</a> value ]
--   </pre>
setObjectAccessibleTableSummary :: (MonadIO m, IsObject o, IsObject a) => o -> a -> m ()

-- | Construct a <a>GValueConstruct</a> with valid value for the
--   “<tt>accessible-value</tt>” property. This is rarely needed directly,
--   but it is used by <a>new</a>.
constructObjectAccessibleValue :: (IsObject o, MonadIO m) => Double -> m (GValueConstruct o)

-- | Get the value of the “<tt>accessible-value</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> object #accessibleValue
--   </pre>
getObjectAccessibleValue :: (MonadIO m, IsObject o) => o -> m Double

-- | Set the value of the “<tt>accessible-value</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> object [ #accessibleValue <a>:=</a> value ]
--   </pre>
setObjectAccessibleValue :: (MonadIO m, IsObject o) => o -> Double -> m ()

-- | The "active-descendant-changed" signal is emitted by an object which
--   has the state ATK_STATE_MANAGES_DESCENDANTS when the focus object in
--   the object changes. For instance, a table will emit the signal when
--   the cell in the table which has focus changes.
type ObjectActiveDescendantChangedCallback = Maybe Object -> IO ()

-- | Connect a signal handler for the <a>activeDescendantChanged</a>
--   signal, to be run after the default handler. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>after</a> object #activeDescendantChanged callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to
--   “<tt>active-descendant-changed::detail</tt>” instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterObjectActiveDescendantChanged :: (IsObject a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => ObjectActiveDescendantChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>activeDescendantChanged</a>
--   signal, to be run before the default handler. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>on</a> object #activeDescendantChanged callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to
--   “<tt>active-descendant-changed::detail</tt>” instead.
onObjectActiveDescendantChanged :: (IsObject a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => ObjectActiveDescendantChangedCallback) -> m SignalHandlerId

-- | The "announcement" signal can be emitted to pass an announcement on to
--   be read by a screen reader.
--   
--   Depcrecated (2.50): Use AtkObject<a>notification</a> instead.
--   
--   <i>Since: 2.46</i>
type ObjectAnnouncementCallback = Text -> IO ()

-- | Connect a signal handler for the <a>announcement</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> object #announcement callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterObjectAnnouncement :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectAnnouncementCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>announcement</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> object #announcement callback
--   </pre>
onObjectAnnouncement :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectAnnouncementCallback) -> m SignalHandlerId

-- | The "attribute-changed" signal should be emitted when one of an
--   object's attributes changes.
--   
--   <i>Since: 2.52</i>
type ObjectAttributeChangedCallback = Text -> Text -> IO ()

-- | Connect a signal handler for the <a>attributeChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> object #attributeChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterObjectAttributeChanged :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectAttributeChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>attributeChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> object #attributeChanged callback
--   </pre>
onObjectAttributeChanged :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectAttributeChangedCallback) -> m SignalHandlerId

-- | The signal "children-changed" is emitted when a child is added or
--   removed from an object. It supports two details: "add" and "remove"
type ObjectChildrenChangedCallback = Word32 -> Maybe Object -> IO ()

-- | Connect a signal handler for the <a>childrenChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> object #childrenChanged callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to
--   “<tt>children-changed::detail</tt>” instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterObjectChildrenChanged :: (IsObject a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => ObjectChildrenChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>childrenChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> object #childrenChanged callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to
--   “<tt>children-changed::detail</tt>” instead.
onObjectChildrenChanged :: (IsObject a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => ObjectChildrenChangedCallback) -> m SignalHandlerId

-- | The signal "focus-event" is emitted when an object gained or lost
--   focus.

-- | <i>Deprecated: (Since version 2.9.4)Use the <a>Object::stateChange</a>
--   signal instead.</i>
type ObjectFocusEventCallback = Bool -> IO ()

-- | Connect a signal handler for the <a>focusEvent</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> object #focusEvent callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterObjectFocusEvent :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectFocusEventCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>focusEvent</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> object #focusEvent callback
--   </pre>
onObjectFocusEvent :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectFocusEventCallback) -> m SignalHandlerId

-- | The "notification" signal can be emitted to pass an announcement on to
--   be read by a screen reader.
--   
--   <i>Since: 2.50</i>
type ObjectNotificationCallback = Text -> Int32 -> IO ()

-- | Connect a signal handler for the <a>notification</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> object #notification callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterObjectNotification :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectNotificationCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>notification</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> object #notification callback
--   </pre>
onObjectNotification :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectNotificationCallback) -> m SignalHandlerId

-- | The signal "property-change" is emitted when an object's property
--   value changes. <i><tt>arg1</tt></i> contains an <a>PropertyValues</a>
--   with the name and the new value of the property whose value has
--   changed. Note that, as with GObject notify, getting this signal does
--   not guarantee that the value of the property has actually changed; it
--   may also be emitted when the setter of the property is called to
--   reinstate the previous value.
--   
--   Toolkit implementor note: ATK implementors should use
--   <a>objectNotify</a> to emit property-changed notifications.
--   <a>Object</a>::<tt><i>property-changed</i></tt> is needed by the
--   implementation of <tt><i>atk_add_global_event_listener()</i></tt>
--   because GObject notify doesn't support emission hooks.
type ObjectPropertyChangeCallback = Maybe PropertyValues -> IO ()

-- | Connect a signal handler for the <a>propertyChange</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> object #propertyChange callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to
--   “<tt>property-change::detail</tt>” instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterObjectPropertyChange :: (IsObject a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => ObjectPropertyChangeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>propertyChange</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> object #propertyChange callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to
--   “<tt>property-change::detail</tt>” instead.
onObjectPropertyChange :: (IsObject a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => ObjectPropertyChangeCallback) -> m SignalHandlerId

-- | The "state-change" signal is emitted when an object's state changes.
--   The detail value identifies the state type which has changed.
type ObjectStateChangeCallback = Text -> Bool -> IO ()

-- | Connect a signal handler for the <a>stateChange</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> object #stateChange callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to “<tt>state-change::detail</tt>”
--   instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterObjectStateChange :: (IsObject a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => ObjectStateChangeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>stateChange</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> object #stateChange callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to “<tt>state-change::detail</tt>”
--   instead.
onObjectStateChange :: (IsObject a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => ObjectStateChangeCallback) -> m SignalHandlerId

-- | The "visible-data-changed" signal is emitted when the visual
--   appearance of the object changed.
type ObjectVisibleDataChangedCallback = IO ()

-- | Connect a signal handler for the <a>visibleDataChanged</a> signal, to
--   be run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> object #visibleDataChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterObjectVisibleDataChanged :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectVisibleDataChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>visibleDataChanged</a> signal, to
--   be run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> object #visibleDataChanged callback
--   </pre>
onObjectVisibleDataChanged :: (IsObject a, MonadIO m) => a -> ((?self :: a) => ObjectVisibleDataChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Objects.Object.Object
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.Object.Object
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.Object.Object
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.Object.Object)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.Object.Object o) => GI.Atk.Objects.Object.IsObject o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.Object.Object
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.Object.Object


-- | The AtkObjectFactory which creates an AtkNoOpObject.
--   
--   The AtkObjectFactory which creates an AtkNoOpObject. An instance of
--   this is created by an AtkRegistry if no factory type has not been
--   specified to create an accessible object of a particular type.
module GI.Atk.Objects.NoOpObjectFactory

-- | Memory-managed wrapper type.
newtype NoOpObjectFactory
NoOpObjectFactory :: ManagedPtr NoOpObjectFactory -> NoOpObjectFactory

-- | Type class for types which can be safely cast to
--   <a>NoOpObjectFactory</a>, for instance with
--   <a>toNoOpObjectFactory</a>.
class (GObject o, IsDescendantOf NoOpObjectFactory o) => IsNoOpObjectFactory o

-- | Cast to <a>NoOpObjectFactory</a>, for types for which this is known to
--   be safe. For general casts, use <a>castTo</a>.
toNoOpObjectFactory :: (MonadIO m, IsNoOpObjectFactory o) => o -> m NoOpObjectFactory

-- | Creates an instance of an <a>ObjectFactory</a> which generates
--   primitive (non-functioning) <tt><i>AtkObjects</i></tt>.
noOpObjectFactoryNew :: (HasCallStack, MonadIO m) => m NoOpObjectFactory
instance GHC.Classes.Eq GI.Atk.Objects.NoOpObjectFactory.NoOpObjectFactory
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.NoOpObjectFactory.NoOpObjectFactory
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.NoOpObjectFactory.NoOpObjectFactory
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.NoOpObjectFactory.NoOpObjectFactory)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.NoOpObjectFactory.NoOpObjectFactory o) => GI.Atk.Objects.NoOpObjectFactory.IsNoOpObjectFactory o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.NoOpObjectFactory.NoOpObjectFactory
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.NoOpObjectFactory.NoOpObjectFactory


-- | An ATK object which encapsulates a link or set of links in a hypertext
--   document.
--   
--   An ATK object which encapsulates a link or set of links (for instance
--   in the case of client-side image maps) in a hypertext document. It may
--   implement the AtkAction interface. AtkHyperlink may also be used to
--   refer to inline embedded content, since it allows specification of a
--   start and end offset within the host AtkHypertext object.
module GI.Atk.Objects.Hyperlink

-- | Memory-managed wrapper type.
newtype Hyperlink
Hyperlink :: ManagedPtr Hyperlink -> Hyperlink

-- | Type class for types which can be safely cast to <a>Hyperlink</a>, for
--   instance with <a>toHyperlink</a>.
class (GObject o, IsDescendantOf Hyperlink o) => IsHyperlink o

-- | Cast to <a>Hyperlink</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toHyperlink :: (MonadIO m, IsHyperlink o) => o -> m Hyperlink

-- | Gets the index with the hypertext document at which this link ends.
hyperlinkGetEndIndex :: (HasCallStack, MonadIO m, IsHyperlink a) => a -> m Int32

-- | Gets the number of anchors associated with this hyperlink.
hyperlinkGetNAnchors :: (HasCallStack, MonadIO m, IsHyperlink a) => a -> m Int32

-- | Returns the item associated with this hyperlinks nth anchor. For
--   instance, the returned <a>Object</a> will implement <a>Text</a> if
--   <i><tt>link_</tt></i> is a text hyperlink, <a>Image</a> if
--   <i><tt>link_</tt></i> is an image hyperlink etc.
--   
--   Multiple anchors are primarily used by client-side image maps.
hyperlinkGetObject :: (HasCallStack, MonadIO m, IsHyperlink a) => a -> Int32 -> m Object

-- | Gets the index with the hypertext document at which this link begins.
hyperlinkGetStartIndex :: (HasCallStack, MonadIO m, IsHyperlink a) => a -> m Int32

-- | Get a the URI associated with the anchor specified by
--   <i><tt>i</tt></i> of <i><tt>link_</tt></i>.
--   
--   Multiple anchors are primarily used by client-side image maps.
hyperlinkGetUri :: (HasCallStack, MonadIO m, IsHyperlink a) => a -> Int32 -> m Text

-- | Indicates whether the link currently displays some or all of its
--   content inline. Ordinary HTML links will usually return <a>False</a>,
--   but an inline &amp;lt;src&amp;gt; HTML element will return
--   <a>True</a>.
hyperlinkIsInline :: (HasCallStack, MonadIO m, IsHyperlink a) => a -> m Bool

-- | Determines whether this AtkHyperlink is selected
--   
--   <i>Since: 1.4</i>

-- | <i>Deprecated: (Since version 1.8)Please use ATK_STATE_FOCUSABLE for
--   all links,and ATK_STATE_FOCUSED for focused links.</i>
hyperlinkIsSelectedLink :: (HasCallStack, MonadIO m, IsHyperlink a) => a -> m Bool

-- | Since the document that a link is associated with may have changed
--   this method returns <a>True</a> if the link is still valid (with
--   respect to the document it references) and <a>False</a> otherwise.
hyperlinkIsValid :: (HasCallStack, MonadIO m, IsHyperlink a) => a -> m Bool

-- | Get the value of the “<tt>end-index</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> hyperlink #endIndex
--   </pre>
getHyperlinkEndIndex :: (MonadIO m, IsHyperlink o) => o -> m Int32

-- | Get the value of the “<tt>number-of-anchors</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> hyperlink #numberOfAnchors
--   </pre>
getHyperlinkNumberOfAnchors :: (MonadIO m, IsHyperlink o) => o -> m Int32

-- | Get the value of the “<tt>selected-link</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> hyperlink #selectedLink
--   </pre>
getHyperlinkSelectedLink :: (MonadIO m, IsHyperlink o) => o -> m Bool

-- | Get the value of the “<tt>start-index</tt>” property. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> hyperlink #startIndex
--   </pre>
getHyperlinkStartIndex :: (MonadIO m, IsHyperlink o) => o -> m Int32

-- | The signal link-activated is emitted when a link is activated.
type HyperlinkLinkActivatedCallback = IO ()

-- | Connect a signal handler for the <a>linkActivated</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> hyperlink #linkActivated callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterHyperlinkLinkActivated :: (IsHyperlink a, MonadIO m) => a -> ((?self :: a) => HyperlinkLinkActivatedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>linkActivated</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> hyperlink #linkActivated callback
--   </pre>
onHyperlinkLinkActivated :: (IsHyperlink a, MonadIO m) => a -> ((?self :: a) => HyperlinkLinkActivatedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Objects.Hyperlink.Hyperlink
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.Hyperlink.Hyperlink
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.Hyperlink.Hyperlink
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.Hyperlink.Hyperlink)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.Hyperlink.Hyperlink o) => GI.Atk.Objects.Hyperlink.IsHyperlink o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.Hyperlink.Hyperlink
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.Hyperlink.Hyperlink


-- | This object class is derived from AtkObject and can be used as a basis
--   implementing accessible objects.
--   
--   This object class is derived from AtkObject. It can be used as a basis
--   for implementing accessible objects for GObjects which are not derived
--   from GtkWidget. One example of its use is in providing an accessible
--   object for GnomeCanvasItem in the GAIL library.
module GI.Atk.Objects.GObjectAccessible

-- | Memory-managed wrapper type.
newtype GObjectAccessible
GObjectAccessible :: ManagedPtr GObjectAccessible -> GObjectAccessible

-- | Type class for types which can be safely cast to
--   <a>GObjectAccessible</a>, for instance with
--   <a>toGObjectAccessible</a>.
class (GObject o, IsDescendantOf GObjectAccessible o) => IsGObjectAccessible o

-- | Cast to <a>GObjectAccessible</a>, for types for which this is known to
--   be safe. For general casts, use <a>castTo</a>.
toGObjectAccessible :: (MonadIO m, IsGObjectAccessible o) => o -> m GObjectAccessible

-- | Gets the accessible object for the specified <i><tt>obj</tt></i>.
gObjectAccessibleForObject :: (HasCallStack, MonadIO m, IsObject a) => a -> m Object

-- | Gets the GObject for which <i><tt>obj</tt></i> is the accessible
--   object.
gObjectAccessibleGetObject :: (HasCallStack, MonadIO m, IsGObjectAccessible a) => a -> m Object
instance GHC.Classes.Eq GI.Atk.Objects.GObjectAccessible.GObjectAccessible
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.GObjectAccessible.GObjectAccessible
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.GObjectAccessible.GObjectAccessible
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.GObjectAccessible.GObjectAccessible o) => GI.Atk.Objects.GObjectAccessible.IsGObjectAccessible o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.GObjectAccessible.GObjectAccessible)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.GObjectAccessible.GObjectAccessible
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.GObjectAccessible.GObjectAccessible


-- | The ATK Interface provided by UI components that represent a top-level
--   window.
--   
--   <a>Window</a> should be implemented by the UI elements that represent
--   a top-level window, such as the main window of an application or
--   dialog.
--   
--   See [class<i><tt>atkObject</tt></i>]
module GI.Atk.Interfaces.Window

-- | Memory-managed wrapper type.
newtype Window
Window :: ManagedPtr Window -> Window

-- | Type class for types which can be safely cast to <a>Window</a>, for
--   instance with <a>toWindow</a>.
class (GObject o, IsDescendantOf Window o) => IsWindow o

-- | Cast to <a>Window</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toWindow :: (MonadIO m, IsWindow o) => o -> m Window

-- | The signal <a>Window::activate</a> is emitted when a window becomes
--   the active window of the application or session.
--   
--   <i>Since: 2.2</i>
type WindowActivateCallback = IO ()

-- | Connect a signal handler for the <a>activate</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> window #activate callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterWindowActivate :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowActivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>activate</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> window #activate callback
--   </pre>
onWindowActivate :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowActivateCallback) -> m SignalHandlerId

-- | The signal <a>Window::create</a> is emitted when a new window is
--   created.
--   
--   <i>Since: 2.2</i>
type WindowCreateCallback = IO ()

-- | Connect a signal handler for the <a>create</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> window #create callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterWindowCreate :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowCreateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>create</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> window #create callback
--   </pre>
onWindowCreate :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowCreateCallback) -> m SignalHandlerId

-- | The signal <a>Window::deactivate</a> is emitted when a window is no
--   longer the active window of the application or session.
--   
--   <i>Since: 2.2</i>
type WindowDeactivateCallback = IO ()

-- | Connect a signal handler for the <a>deactivate</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> window #deactivate callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterWindowDeactivate :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowDeactivateCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>deactivate</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> window #deactivate callback
--   </pre>
onWindowDeactivate :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowDeactivateCallback) -> m SignalHandlerId

-- | The signal <a>Window::destroy</a> is emitted when a window is
--   destroyed.
--   
--   <i>Since: 2.2</i>
type WindowDestroyCallback = IO ()

-- | Connect a signal handler for the <a>destroy</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> window #destroy callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterWindowDestroy :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowDestroyCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>destroy</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> window #destroy callback
--   </pre>
onWindowDestroy :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowDestroyCallback) -> m SignalHandlerId

-- | The signal <a>Window::maximize</a> is emitted when a window is
--   maximized.
--   
--   <i>Since: 2.2</i>
type WindowMaximizeCallback = IO ()

-- | Connect a signal handler for the <a>maximize</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> window #maximize callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterWindowMaximize :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowMaximizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>maximize</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> window #maximize callback
--   </pre>
onWindowMaximize :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowMaximizeCallback) -> m SignalHandlerId

-- | The signal <a>Window::minimize</a> is emitted when a window is
--   minimized.
--   
--   <i>Since: 2.2</i>
type WindowMinimizeCallback = IO ()

-- | Connect a signal handler for the <a>minimize</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> window #minimize callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterWindowMinimize :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowMinimizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>minimize</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> window #minimize callback
--   </pre>
onWindowMinimize :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowMinimizeCallback) -> m SignalHandlerId

-- | The signal <a>Window::move</a> is emitted when a window is moved.
--   
--   <i>Since: 2.2</i>
type WindowMoveCallback = IO ()

-- | Connect a signal handler for the <a>move</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> window #move callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterWindowMove :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowMoveCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>move</a> signal, to be run before
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>on</a> window #move callback
--   </pre>
onWindowMove :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowMoveCallback) -> m SignalHandlerId

-- | The signal <a>Window::resize</a> is emitted when a window is resized.
--   
--   <i>Since: 2.2</i>
type WindowResizeCallback = IO ()

-- | Connect a signal handler for the <a>resize</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> window #resize callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterWindowResize :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowResizeCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>resize</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> window #resize callback
--   </pre>
onWindowResize :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowResizeCallback) -> m SignalHandlerId

-- | The signal <a>Window::restore</a> is emitted when a window is
--   restored.
--   
--   <i>Since: 2.2</i>
type WindowRestoreCallback = IO ()

-- | Connect a signal handler for the <a>restore</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> window #restore callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterWindowRestore :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowRestoreCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>restore</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> window #restore callback
--   </pre>
onWindowRestore :: (IsWindow a, MonadIO m) => a -> ((?self :: a) => WindowRestoreCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Interfaces.Window.Window
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Interfaces.Window.Window
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Interfaces.Window.Window
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Interfaces.Window.Window)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Window.Window o) => GI.Atk.Interfaces.Window.IsWindow o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Window.Window
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Interfaces.Window.Window


-- | The ATK interface implemented for a cell inside a two-dimentional
--   <a>Table</a>
--   
--   Being <a>Table</a> a component which present elements ordered via rows
--   and columns, an <a>TableCell</a> is the interface which each of those
--   elements, so "cells" should implement.
--   
--   See [iface<i><tt>atkTable</tt></i>]
module GI.Atk.Interfaces.TableCell

-- | Memory-managed wrapper type.
newtype TableCell
TableCell :: ManagedPtr TableCell -> TableCell

-- | Type class for types which can be safely cast to <a>TableCell</a>, for
--   instance with <a>toTableCell</a>.
class (GObject o, IsDescendantOf TableCell o) => IsTableCell o

-- | Cast to <a>TableCell</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toTableCell :: (MonadIO m, IsTableCell o) => o -> m TableCell

-- | Returns the column headers as an array of cell accessibles.
--   
--   <i>Since: 2.12</i>
tableCellGetColumnHeaderCells :: (HasCallStack, MonadIO m, IsTableCell a) => a -> m [Object]

-- | Returns the number of columns occupied by this cell accessible.
--   
--   <i>Since: 2.12</i>
tableCellGetColumnSpan :: (HasCallStack, MonadIO m, IsTableCell a) => a -> m Int32

-- | Retrieves the tabular position of this cell.
--   
--   <i>Since: 2.12</i>
tableCellGetPosition :: (HasCallStack, MonadIO m, IsTableCell a) => a -> m (Bool, Int32, Int32)

-- | Gets the row and column indexes and span of this cell accessible.
--   
--   Note: If the object does not implement this function, then, by
--   default, atk will implement this function by calling get_row_span and
--   get_column_span on the object.
--   
--   <i>Since: 2.12</i>
tableCellGetRowColumnSpan :: (HasCallStack, MonadIO m, IsTableCell a) => a -> m (Bool, Int32, Int32, Int32, Int32)

-- | Returns the row headers as an array of cell accessibles.
--   
--   <i>Since: 2.12</i>
tableCellGetRowHeaderCells :: (HasCallStack, MonadIO m, IsTableCell a) => a -> m [Object]

-- | Returns the number of rows occupied by this cell accessible.
--   
--   <i>Since: 2.12</i>
tableCellGetRowSpan :: (HasCallStack, MonadIO m, IsTableCell a) => a -> m Int32

-- | Returns a reference to the accessible of the containing table.
--   
--   <i>Since: 2.12</i>
tableCellGetTable :: (HasCallStack, MonadIO m, IsTableCell a) => a -> m Object
instance GHC.Classes.Eq GI.Atk.Interfaces.TableCell.TableCell
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Interfaces.TableCell.TableCell
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Interfaces.TableCell.TableCell
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Interfaces.TableCell.TableCell)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.TableCell.TableCell o) => GI.Atk.Interfaces.TableCell.IsTableCell o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.TableCell.TableCell
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Interfaces.TableCell.TableCell


-- | The ATK interface implemented for UI components which contain tabular
--   or row/column information.
--   
--   <a>Table</a> should be implemented by components which present
--   elements ordered via rows and columns. It may also be used to present
--   tree-structured information if the nodes of the trees can be said to
--   contain multiple "columns". Individual elements of an <a>Table</a> are
--   typically referred to as "cells". Those cells should implement the
--   interface <a>TableCell</a>, but <tt><i>Atk</i></tt> doesn't require
--   them to be direct children of the current <a>Table</a>. They can be
--   grand-children, grand-grand-children etc. <a>Table</a> provides the
--   API needed to get a individual cell based on the row and column
--   numbers.
--   
--   Children of <a>Table</a> are frequently "lightweight" objects, that
--   is, they may not have backing widgets in the host UI toolkit. They are
--   therefore often transient.
--   
--   Since tables are often very complex, <a>Table</a> includes provision
--   for offering simplified summary information, as well as row and column
--   headers and captions. Headers and captions are
--   <tt><i>AtkObjects</i></tt> which may implement other interfaces
--   (t<a>Text</a>, <a>Image</a>, etc.) as appropriate. <a>Table</a>
--   summaries may themselves be (simplified) <tt><i>AtkTables</i></tt>,
--   etc.
--   
--   Note for implementors: in the past, <a>Table</a> required that all the
--   cells should be direct children of <a>Table</a>, and provided some
--   index based methods to request the cells. The practice showed that
--   that forcing made <a>Table</a> implementation complex, and hard to
--   expose other kind of children, like rows or captions. Right now,
--   index-based methods are deprecated.
module GI.Atk.Interfaces.Table

-- | Memory-managed wrapper type.
newtype Table
Table :: ManagedPtr Table -> Table

-- | Type class for types which can be safely cast to <a>Table</a>, for
--   instance with <a>toTable</a>.
class (GObject o, IsDescendantOf Table o) => IsTable o

-- | Cast to <a>Table</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toTable :: (MonadIO m, IsTable o) => o -> m Table

-- | Adds the specified <i><tt>column</tt></i> to the selection.
tableAddColumnSelection :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Bool

-- | Adds the specified <i><tt>row</tt></i> to the selection.
tableAddRowSelection :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Bool

-- | Gets the caption for the <i><tt>table</tt></i>.
tableGetCaption :: (HasCallStack, MonadIO m, IsTable a) => a -> m (Maybe Object)

-- | Gets a <tt><i>gint</i></tt> representing the column at the specified
--   <i><tt>index_</tt></i>.

-- | <i>Deprecated: Since 2.12.</i>
tableGetColumnAtIndex :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Int32

-- | Gets the description text of the specified <i><tt>column</tt></i> in
--   the table
tableGetColumnDescription :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Text

-- | Gets the number of columns occupied by the accessible object at the
--   specified <i><tt>row</tt></i> and <i><tt>column</tt></i> in the
--   <i><tt>table</tt></i>.
tableGetColumnExtentAt :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> Int32 -> m Int32

-- | Gets the column header of a specified column in an accessible table.
tableGetColumnHeader :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m (Maybe Object)

-- | Gets a <tt><i>gint</i></tt> representing the index at the specified
--   <i><tt>row</tt></i> and <i><tt>column</tt></i>.

-- | <i>Deprecated: Since 2.12. Use <a>tableRefAt</a> in order to get
--   theaccessible that represents the cell at (<i><tt>row</tt></i>,
--   <i><tt>column</tt></i>)</i>
tableGetIndexAt :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> Int32 -> m Int32

-- | Gets the number of columns in the table.
tableGetNColumns :: (HasCallStack, MonadIO m, IsTable a) => a -> m Int32

-- | Gets the number of rows in the table.
tableGetNRows :: (HasCallStack, MonadIO m, IsTable a) => a -> m Int32

-- | Gets a <tt><i>gint</i></tt> representing the row at the specified
--   <i><tt>index_</tt></i>.

-- | <i>Deprecated: since 2.12.</i>
tableGetRowAtIndex :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Int32

-- | Gets the description text of the specified row in the table
tableGetRowDescription :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m (Maybe Text)

-- | Gets the number of rows occupied by the accessible object at a
--   specified <i><tt>row</tt></i> and <i><tt>column</tt></i> in the
--   <i><tt>table</tt></i>.
tableGetRowExtentAt :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> Int32 -> m Int32

-- | Gets the row header of a specified row in an accessible table.
tableGetRowHeader :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m (Maybe Object)

-- | Gets the selected columns of the table by initializing __selected with
--   the selected column numbers. This array should be freed by the caller.
tableGetSelectedColumns :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Int32

-- | Gets the selected rows of the table by initializing __selected with
--   the selected row numbers. This array should be freed by the caller.
tableGetSelectedRows :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Int32

-- | Gets the summary description of the table.
tableGetSummary :: (HasCallStack, MonadIO m, IsTable a) => a -> m Object

-- | Gets a boolean value indicating whether the specified
--   <i><tt>column</tt></i> is selected
tableIsColumnSelected :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Bool

-- | Gets a boolean value indicating whether the specified
--   <i><tt>row</tt></i> is selected
tableIsRowSelected :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Bool

-- | Gets a boolean value indicating whether the accessible object at the
--   specified <i><tt>row</tt></i> and <i><tt>column</tt></i> is selected
tableIsSelected :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> Int32 -> m Bool

-- | Get a reference to the table cell at <i><tt>row</tt></i>,
--   <i><tt>column</tt></i>. This cell should implement the interface
--   <a>TableCell</a>
tableRefAt :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> Int32 -> m Object

-- | Adds the specified <i><tt>column</tt></i> to the selection.
tableRemoveColumnSelection :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Bool

-- | Removes the specified <i><tt>row</tt></i> from the selection.
tableRemoveRowSelection :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> m Bool

-- | Sets the caption for the table.
tableSetCaption :: (HasCallStack, MonadIO m, IsTable a, IsObject b) => a -> b -> m ()

-- | Sets the description text for the specified <i><tt>column</tt></i> of
--   the <i><tt>table</tt></i>.
tableSetColumnDescription :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> Text -> m ()

-- | Sets the specified column header to <i><tt>header</tt></i>.
tableSetColumnHeader :: (HasCallStack, MonadIO m, IsTable a, IsObject b) => a -> Int32 -> b -> m ()

-- | Sets the description text for the specified <i><tt>row</tt></i> of
--   <i><tt>table</tt></i>.
tableSetRowDescription :: (HasCallStack, MonadIO m, IsTable a) => a -> Int32 -> Text -> m ()

-- | Sets the specified row header to <i><tt>header</tt></i>.
tableSetRowHeader :: (HasCallStack, MonadIO m, IsTable a, IsObject b) => a -> Int32 -> b -> m ()

-- | Sets the summary description of the table.
tableSetSummary :: (HasCallStack, MonadIO m, IsTable a, IsObject b) => a -> b -> m ()

-- | The "column-deleted" signal is emitted by an object which implements
--   the AtkTable interface when a column is deleted.
type TableColumnDeletedCallback = Int32 -> Int32 -> IO ()

-- | Connect a signal handler for the <a>columnDeleted</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> table #columnDeleted callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTableColumnDeleted :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableColumnDeletedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>columnDeleted</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> table #columnDeleted callback
--   </pre>
onTableColumnDeleted :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableColumnDeletedCallback) -> m SignalHandlerId

-- | The "column-inserted" signal is emitted by an object which implements
--   the AtkTable interface when a column is inserted.
type TableColumnInsertedCallback = Int32 -> Int32 -> IO ()

-- | Connect a signal handler for the <a>columnInserted</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> table #columnInserted callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTableColumnInserted :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableColumnInsertedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>columnInserted</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> table #columnInserted callback
--   </pre>
onTableColumnInserted :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableColumnInsertedCallback) -> m SignalHandlerId

-- | The "column-reordered" signal is emitted by an object which implements
--   the AtkTable interface when the columns are reordered.
type TableColumnReorderedCallback = IO ()

-- | Connect a signal handler for the <a>columnReordered</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> table #columnReordered callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTableColumnReordered :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableColumnReorderedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>columnReordered</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> table #columnReordered callback
--   </pre>
onTableColumnReordered :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableColumnReorderedCallback) -> m SignalHandlerId

-- | The "model-changed" signal is emitted by an object which implements
--   the AtkTable interface when the model displayed by the table changes.
type TableModelChangedCallback = IO ()

-- | Connect a signal handler for the <a>modelChanged</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> table #modelChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTableModelChanged :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableModelChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>modelChanged</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> table #modelChanged callback
--   </pre>
onTableModelChanged :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableModelChangedCallback) -> m SignalHandlerId

-- | The "row-deleted" signal is emitted by an object which implements the
--   AtkTable interface when a row is deleted.
type TableRowDeletedCallback = Int32 -> Int32 -> IO ()

-- | Connect a signal handler for the <a>rowDeleted</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> table #rowDeleted callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTableRowDeleted :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableRowDeletedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>rowDeleted</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> table #rowDeleted callback
--   </pre>
onTableRowDeleted :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableRowDeletedCallback) -> m SignalHandlerId

-- | The "row-inserted" signal is emitted by an object which implements the
--   AtkTable interface when a row is inserted.
type TableRowInsertedCallback = Int32 -> Int32 -> IO ()

-- | Connect a signal handler for the <a>rowInserted</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> table #rowInserted callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTableRowInserted :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableRowInsertedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>rowInserted</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> table #rowInserted callback
--   </pre>
onTableRowInserted :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableRowInsertedCallback) -> m SignalHandlerId

-- | The "row-reordered" signal is emitted by an object which implements
--   the AtkTable interface when the rows are reordered.
type TableRowReorderedCallback = IO ()

-- | Connect a signal handler for the <a>rowReordered</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> table #rowReordered callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTableRowReordered :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableRowReorderedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>rowReordered</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> table #rowReordered callback
--   </pre>
onTableRowReordered :: (IsTable a, MonadIO m) => a -> ((?self :: a) => TableRowReorderedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Interfaces.Table.Table
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Interfaces.Table.Table
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Interfaces.Table.Table
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Interfaces.Table.Table)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Table.Table o) => GI.Atk.Interfaces.Table.IsTable o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Table.Table
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Interfaces.Table.Table


-- | The ATK interface implemented by container objects whose <a>Object</a>
--   children can be selected.
--   
--   <a>Selection</a> should be implemented by UI components with children
--   which are exposed by <tt><i>atk_object_ref_child</i></tt> and
--   <tt><i>atk_object_get_n_children</i></tt>, if the use of the parent UI
--   component ordinarily involves selection of one or more of the objects
--   corresponding to those <a>Object</a> children - for example,
--   selectable lists.
--   
--   Note that other types of "selection" (for instance text selection) are
--   accomplished a other ATK interfaces - <a>Selection</a> is limited to
--   the selection/deselection of children.
module GI.Atk.Interfaces.Selection

-- | Memory-managed wrapper type.
newtype Selection
Selection :: ManagedPtr Selection -> Selection

-- | Type class for types which can be safely cast to <a>Selection</a>, for
--   instance with <a>toSelection</a>.
class (GObject o, IsDescendantOf Selection o) => IsSelection o

-- | Cast to <a>Selection</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toSelection :: (MonadIO m, IsSelection o) => o -> m Selection

-- | Adds the specified accessible child of the object to the object's
--   selection.
selectionAddSelection :: (HasCallStack, MonadIO m, IsSelection a) => a -> Int32 -> m Bool

-- | Clears the selection in the object so that no children in the object
--   are selected.
selectionClearSelection :: (HasCallStack, MonadIO m, IsSelection a) => a -> m Bool

-- | Gets the number of accessible children currently selected. Note:
--   callers should not rely on <a>Nothing</a> or on a zero value for
--   indication of whether AtkSelectionIface is implemented, they should
--   use type checking/interface checking macros or the
--   <tt><i>atk_get_accessible_value()</i></tt> convenience method.
selectionGetSelectionCount :: (HasCallStack, MonadIO m, IsSelection a) => a -> m Int32

-- | Determines if the current child of this object is selected Note:
--   callers should not rely on <a>Nothing</a> or on a zero value for
--   indication of whether AtkSelectionIface is implemented, they should
--   use type checking/interface checking macros or the
--   <tt><i>atk_get_accessible_value()</i></tt> convenience method.
selectionIsChildSelected :: (HasCallStack, MonadIO m, IsSelection a) => a -> Int32 -> m Bool

-- | Gets a reference to the accessible object representing the specified
--   selected child of the object. Note: callers should not rely on
--   <a>Nothing</a> or on a zero value for indication of whether
--   AtkSelectionIface is implemented, they should use type
--   checking/interface checking macros or the
--   <tt><i>atk_get_accessible_value()</i></tt> convenience method.
selectionRefSelection :: (HasCallStack, MonadIO m, IsSelection a) => a -> Int32 -> m (Maybe Object)

-- | Removes the specified child of the object from the object's selection.
selectionRemoveSelection :: (HasCallStack, MonadIO m, IsSelection a) => a -> Int32 -> m Bool

-- | Causes every child of the object to be selected if the object supports
--   multiple selections.
selectionSelectAllSelection :: (HasCallStack, MonadIO m, IsSelection a) => a -> m Bool

-- | The "selection-changed" signal is emitted by an object which
--   implements AtkSelection interface when the selection changes.
type SelectionSelectionChangedCallback = IO ()

-- | Connect a signal handler for the <a>selectionChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> selection #selectionChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterSelectionSelectionChanged :: (IsSelection a, MonadIO m) => a -> ((?self :: a) => SelectionSelectionChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>selectionChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> selection #selectionChanged callback
--   </pre>
onSelectionSelectionChanged :: (IsSelection a, MonadIO m) => a -> ((?self :: a) => SelectionSelectionChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Interfaces.Selection.Selection
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Interfaces.Selection.Selection
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Interfaces.Selection.Selection
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Interfaces.Selection.Selection)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Selection.Selection o) => GI.Atk.Interfaces.Selection.IsSelection o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Selection.Selection
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Interfaces.Selection.Selection


-- | The ATK interface which provides standard mechanism for manipulating
--   hyperlinks.
--   
--   An interface used for objects which implement linking between multiple
--   resource or content locations, or multiple 'markers' within a single
--   document. A Hypertext instance is associated with one or more
--   Hyperlinks, which are associated with particular offsets within the
--   Hypertext's included content. While this interface is derived from
--   Text, there is no requirement that Hypertext instances have textual
--   content; they may implement Image as well, and Hyperlinks need not
--   have non-zero text offsets.
module GI.Atk.Interfaces.Hypertext

-- | Memory-managed wrapper type.
newtype Hypertext
Hypertext :: ManagedPtr Hypertext -> Hypertext

-- | Type class for types which can be safely cast to <a>Hypertext</a>, for
--   instance with <a>toHypertext</a>.
class (GObject o, IsDescendantOf Hypertext o) => IsHypertext o

-- | Cast to <a>Hypertext</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toHypertext :: (MonadIO m, IsHypertext o) => o -> m Hypertext

-- | Gets the link in this hypertext document at index
--   <i><tt>linkIndex</tt></i>
hypertextGetLink :: (HasCallStack, MonadIO m, IsHypertext a) => a -> Int32 -> m Hyperlink

-- | Gets the index into the array of hyperlinks that is associated with
--   the character specified by <i><tt>charIndex</tt></i>.
hypertextGetLinkIndex :: (HasCallStack, MonadIO m, IsHypertext a) => a -> Int32 -> m Int32

-- | Gets the number of links within this hypertext document.
hypertextGetNLinks :: (HasCallStack, MonadIO m, IsHypertext a) => a -> m Int32

-- | The "link-selected" signal is emitted by an AtkHyperText object when
--   one of the hyperlinks associated with the object is selected.
type HypertextLinkSelectedCallback = Int32 -> IO ()

-- | Connect a signal handler for the <a>linkSelected</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> hypertext #linkSelected callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterHypertextLinkSelected :: (IsHypertext a, MonadIO m) => a -> ((?self :: a) => HypertextLinkSelectedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>linkSelected</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> hypertext #linkSelected callback
--   </pre>
onHypertextLinkSelected :: (IsHypertext a, MonadIO m) => a -> ((?self :: a) => HypertextLinkSelectedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Interfaces.Hypertext.Hypertext
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Interfaces.Hypertext.Hypertext
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Interfaces.Hypertext.Hypertext
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Interfaces.Hypertext.Hypertext)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Hypertext.Hypertext o) => GI.Atk.Interfaces.Hypertext.IsHypertext o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Hypertext.Hypertext
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Interfaces.Hypertext.Hypertext


-- | A queryable interface which allows AtkHyperlink instances associated
--   with an AtkObject to be obtained. AtkHyperlinkImpl corresponds to
--   AT-SPI's Hyperlink interface, and differs from AtkHyperlink in that
--   AtkHyperlink is an object type, rather than an interface, and thus
--   cannot be directly queried. FTW
module GI.Atk.Interfaces.HyperlinkImpl

-- | Memory-managed wrapper type.
newtype HyperlinkImpl
HyperlinkImpl :: ManagedPtr HyperlinkImpl -> HyperlinkImpl

-- | Type class for types which implement <a>HyperlinkImpl</a>.
class (ManagedPtrNewtype o, IsDescendantOf HyperlinkImpl o) => IsHyperlinkImpl o

-- | Gets the hyperlink associated with this object.
--   
--   <i>Since: 1.12</i>
hyperlinkImplGetHyperlink :: (HasCallStack, MonadIO m, IsHyperlinkImpl a) => a -> m Hyperlink
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Interfaces.HyperlinkImpl.HyperlinkImpl
instance GHC.Classes.Eq GI.Atk.Interfaces.HyperlinkImpl.HyperlinkImpl
instance (Data.GI.Base.BasicTypes.ManagedPtrNewtype o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.HyperlinkImpl.HyperlinkImpl o) => GI.Atk.Interfaces.HyperlinkImpl.IsHyperlinkImpl o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.HyperlinkImpl.HyperlinkImpl


module GI.Atk.Functions

-- | Cause the focus tracker functions which have been specified to be
--   executed for the object.

-- | <i>Deprecated: (Since version 2.9.4)Focus tracking has been dropped as
--   a featureto be implemented by ATK itself. As <a>Object::focusEvent</a>
--   wasdeprecated in favor of a <a>Object::stateChange</a> signal, in
--   orderto notify a focus change on your implementation, you can
--   use<a>objectNotifyStateChange</a> instead.</i>
focusTrackerNotify :: (HasCallStack, MonadIO m, IsObject a) => a -> m ()

-- | Returns the binary age as passed to libtool when building the ATK
--   library the process is running against.
--   
--   <i>Since: 2.8</i>
getBinaryAge :: (HasCallStack, MonadIO m) => m Word32

-- | Gets a default implementation of the <a>ObjectFactory</a>/type
--   registry. Note: For most toolkit maintainers, this will be the correct
--   registry for registering new <a>Object</a> factories. Following a call
--   to this function, maintainers may call <a>registrySetFactoryType</a>
--   to associate an <a>ObjectFactory</a> subclass with the GType of
--   objects for whom accessibility information will be provided.
getDefaultRegistry :: (HasCallStack, MonadIO m) => m Registry

-- | Gets the currently focused object.
--   
--   <i>Since: 1.6</i>
getFocusObject :: (HasCallStack, MonadIO m) => m Object

-- | Returns the interface age as passed to libtool when building the ATK
--   library the process is running against.
--   
--   <i>Since: 2.8</i>
getInterfaceAge :: (HasCallStack, MonadIO m) => m Word32

-- | Returns the major version number of the ATK library. (e.g. in ATK
--   version 2.7.4 this is 2.)
--   
--   This function is in the library, so it represents the ATK library your
--   code is running against. In contrast, the <a>MAJOR_VERSION</a> macro
--   represents the major version of the ATK headers you have included when
--   compiling your code.
--   
--   <i>Since: 2.8</i>
getMajorVersion :: (HasCallStack, MonadIO m) => m Word32

-- | Returns the micro version number of the ATK library. (e.g. in ATK
--   version 2.7.4 this is 4.)
--   
--   This function is in the library, so it represents the ATK library your
--   code is are running against. In contrast, the <a>MICRO_VERSION</a>
--   macro represents the micro version of the ATK headers you have
--   included when compiling your code.
--   
--   <i>Since: 2.8</i>
getMicroVersion :: (HasCallStack, MonadIO m) => m Word32

-- | Returns the minor version number of the ATK library. (e.g. in ATK
--   version 2.7.4 this is 7.)
--   
--   This function is in the library, so it represents the ATK library your
--   code is are running against. In contrast, the <a>MINOR_VERSION</a>
--   macro represents the minor version of the ATK headers you have
--   included when compiling your code.
--   
--   <i>Since: 2.8</i>
getMinorVersion :: (HasCallStack, MonadIO m) => m Word32

-- | Gets the root accessible container for the current application.
getRoot :: (HasCallStack, MonadIO m) => m Object

-- | Gets name string for the GUI toolkit implementing ATK for this
--   application.
getToolkitName :: (HasCallStack, MonadIO m) => m Text

-- | Gets version string for the GUI toolkit implementing ATK for this
--   application.
getToolkitVersion :: (HasCallStack, MonadIO m) => m Text

-- | Gets the current version for ATK.
--   
--   <i>Since: 1.20</i>
getVersion :: (HasCallStack, MonadIO m) => m Text

-- | Removes the specified focus tracker from the list of functions to be
--   called when any object receives focus.

-- | <i>Deprecated: (Since version 2.9.4)Focus tracking has been dropped as
--   a featureto be implemented by ATK itself. If you need focus tracking
--   on yourimplementation, subscribe to the <a>Object::stateChange</a>
--   "focused"signal.</i>
removeFocusTracker :: (HasCallStack, MonadIO m) => Word32 -> m ()

-- | <i><tt>listenerId</tt></i> is the value returned by
--   <tt><i>atk_add_global_event_listener</i></tt> when you registered that
--   event listener.
--   
--   Toolkit implementor note: ATK provides a default implementation for
--   this virtual method. ATK implementors are discouraged from
--   reimplementing this method.
--   
--   Toolkit implementor note: this method is not intended to be used by
--   ATK implementors but by ATK consumers.
--   
--   Removes the specified event listener
removeGlobalEventListener :: (HasCallStack, MonadIO m) => Word32 -> m ()

-- | <i><tt>listenerId</tt></i> is the value returned by
--   <tt><i>atk_add_key_event_listener</i></tt> when you registered that
--   event listener.
--   
--   Removes the specified event listener.
removeKeyEventListener :: (HasCallStack, MonadIO m) => Word32 -> m ()


module GI.Atk.Callbacks

-- | Type for the callback on the (unwrapped) C side.
type C_EventListener = Ptr Object -> IO ()

-- | A function which is called when an object emits a matching event, as
--   used in <tt><i>atk_add_focus_tracker</i></tt>. Currently the only
--   events for which object-specific handlers are supported are events of
--   type "focus:". Most clients of ATK will prefer to attach signal
--   handlers for the various ATK signals instead.
--   
--   see <tt><i>atk_add_focus_tracker()</i></tt>
type EventListener = Object -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_EventListener :: (HasCallStack, MonadIO m, IsObject a) => FunPtr C_EventListener -> a -> m ()

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_EventListener :: MonadIO m => EventListener -> m (GClosure C_EventListener)

-- | Generate a function pointer callable from C code, from a
--   <a>C_EventListener</a>.
mk_EventListener :: C_EventListener -> IO (FunPtr C_EventListener)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>EventListener</a></tt>.
noEventListener :: Maybe EventListener

-- | Wrap a <a>EventListener</a> into a <a>C_EventListener</a>.
wrap_EventListener :: Maybe (Ptr (FunPtr C_EventListener)) -> EventListener -> C_EventListener

-- | Type for the callback on the (unwrapped) C side.
type C_EventListenerInit = IO ()

-- | An <a>EventListenerInit</a> function is a special function that is
--   called in order to initialize the per-object event registration system
--   used by <a>EventListener</a>, if any preparation is required.
--   
--   see <tt><i>atk_focus_tracker_init()</i></tt>
type EventListenerInit = IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_EventListenerInit :: (HasCallStack, MonadIO m) => FunPtr C_EventListenerInit -> m ()

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_EventListenerInit :: MonadIO m => EventListenerInit -> m (GClosure C_EventListenerInit)

-- | Generate a function pointer callable from C code, from a
--   <a>C_EventListenerInit</a>.
mk_EventListenerInit :: C_EventListenerInit -> IO (FunPtr C_EventListenerInit)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>EventListenerInit</a></tt>.
noEventListenerInit :: Maybe EventListenerInit

-- | Wrap a <a>EventListenerInit</a> into a <a>C_EventListenerInit</a>.
wrap_EventListenerInit :: Maybe (Ptr (FunPtr C_EventListenerInit)) -> EventListenerInit -> C_EventListenerInit

-- | Type for the callback on the (unwrapped) C side.
type C_FocusHandler = Ptr Object -> CInt -> IO ()

-- | The type of callback function used for
--   <tt><i>atk_component_add_focus_handler()</i></tt> and
--   <a>componentRemoveFocusHandler</a>

-- | <i>Deprecated: (Since version 2.9.4)Deprecated with
--   <tt><i>atk_component_add_focus_handler()</i></tt>and
--   <a>componentRemoveFocusHandler</a>. See thosemethods for more
--   information.</i>
type FocusHandler = Object -> Bool -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_FocusHandler :: (HasCallStack, MonadIO m, IsObject a) => FunPtr C_FocusHandler -> a -> Bool -> m ()

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_FocusHandler :: MonadIO m => FocusHandler -> m (GClosure C_FocusHandler)

-- | Generate a function pointer callable from C code, from a
--   <a>C_FocusHandler</a>.
mk_FocusHandler :: C_FocusHandler -> IO (FunPtr C_FocusHandler)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>FocusHandler</a></tt>.
noFocusHandler :: Maybe FocusHandler

-- | Wrap a <a>FocusHandler</a> into a <a>C_FocusHandler</a>.
wrap_FocusHandler :: Maybe (Ptr (FunPtr C_FocusHandler)) -> FocusHandler -> C_FocusHandler

-- | Type for the callback on the (unwrapped) C side.
type C_Function = Ptr () -> IO CInt

-- | An AtkFunction is a function definition used for padding which has
--   been added to class and interface structures to allow for expansion in
--   the future.
type Function = IO Bool

-- | An AtkFunction is a function definition used for padding which has
--   been added to class and interface structures to allow for expansion in
--   the future.
type Function_WithClosures = Ptr () -> IO Bool

-- | A simple wrapper that ignores the closure arguments.
drop_closures_Function :: Function -> Function_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_Function :: (HasCallStack, MonadIO m) => FunPtr C_Function -> Ptr () -> m Bool

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_Function :: MonadIO m => Function -> m (GClosure C_Function)

-- | Generate a function pointer callable from C code, from a
--   <a>C_Function</a>.
mk_Function :: C_Function -> IO (FunPtr C_Function)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>Function</a></tt>.
noFunction :: Maybe Function

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>Function_WithClosures</a></tt>.
noFunction_WithClosures :: Maybe Function_WithClosures

-- | Wrap a <a>Function</a> into a <a>C_Function</a>.
wrap_Function :: Maybe (Ptr (FunPtr C_Function)) -> Function_WithClosures -> C_Function

-- | Type for the callback on the (unwrapped) C side.
type C_KeySnoopFunc = Ptr KeyEventStruct -> Ptr () -> IO Int32

-- | An <a>KeySnoopFunc</a> is a type of callback which is called whenever
--   a key event occurs, if registered via atk_add_key_event_listener. It
--   allows for pre-emptive interception of key events via the return code
--   as described below.
type KeySnoopFunc = KeyEventStruct -> IO Int32

-- | An <a>KeySnoopFunc</a> is a type of callback which is called whenever
--   a key event occurs, if registered via atk_add_key_event_listener. It
--   allows for pre-emptive interception of key events via the return code
--   as described below.
type KeySnoopFunc_WithClosures = KeyEventStruct -> Ptr () -> IO Int32

-- | A simple wrapper that ignores the closure arguments.
drop_closures_KeySnoopFunc :: KeySnoopFunc -> KeySnoopFunc_WithClosures

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_KeySnoopFunc :: (HasCallStack, MonadIO m) => FunPtr C_KeySnoopFunc -> KeyEventStruct -> Ptr () -> m Int32

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_KeySnoopFunc :: MonadIO m => KeySnoopFunc -> m (GClosure C_KeySnoopFunc)

-- | Generate a function pointer callable from C code, from a
--   <a>C_KeySnoopFunc</a>.
mk_KeySnoopFunc :: C_KeySnoopFunc -> IO (FunPtr C_KeySnoopFunc)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>KeySnoopFunc</a></tt>.
noKeySnoopFunc :: Maybe KeySnoopFunc

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>KeySnoopFunc_WithClosures</a></tt>.
noKeySnoopFunc_WithClosures :: Maybe KeySnoopFunc_WithClosures

-- | Wrap a <a>KeySnoopFunc</a> into a <a>C_KeySnoopFunc</a>.
wrap_KeySnoopFunc :: Maybe (Ptr (FunPtr C_KeySnoopFunc)) -> KeySnoopFunc_WithClosures -> C_KeySnoopFunc

-- | Type for the callback on the (unwrapped) C side.
type C_PropertyChangeHandler = Ptr Object -> Ptr PropertyValues -> IO ()

-- | An AtkPropertyChangeHandler is a function which is executed when an
--   AtkObject's property changes value. It is specified in a call to
--   <tt><i>atk_object_connect_property_change_handler()</i></tt>.

-- | <i>Deprecated: Since 2.12.</i>
type PropertyChangeHandler = Object -> PropertyValues -> IO ()

-- | Given a pointer to a foreign C function, wrap it into a function
--   callable from Haskell.
dynamic_PropertyChangeHandler :: (HasCallStack, MonadIO m, IsObject a) => FunPtr C_PropertyChangeHandler -> a -> PropertyValues -> m ()

-- | Wrap the callback into a <a>GClosure</a>.
genClosure_PropertyChangeHandler :: MonadIO m => PropertyChangeHandler -> m (GClosure C_PropertyChangeHandler)

-- | Generate a function pointer callable from C code, from a
--   <a>C_PropertyChangeHandler</a>.
mk_PropertyChangeHandler :: C_PropertyChangeHandler -> IO (FunPtr C_PropertyChangeHandler)

-- | A convenience synonym for <tt><a>Nothing</a> :: <a>Maybe</a>
--   <a>PropertyChangeHandler</a></tt>.
noPropertyChangeHandler :: Maybe PropertyChangeHandler

-- | Wrap a <a>PropertyChangeHandler</a> into a
--   <a>C_PropertyChangeHandler</a>.
wrap_PropertyChangeHandler :: Maybe (Ptr (FunPtr C_PropertyChangeHandler)) -> PropertyChangeHandler -> C_PropertyChangeHandler


-- | A given range or subrange, to be used with <a>Value</a>
--   
--   <a>Range</a> are used on <a>Value</a>, in order to represent the full
--   range of a given component (for example an slider or a range control),
--   or to define each individual subrange this full range is splitted if
--   available. See <a>Value</a> documentation for further details.
module GI.Atk.Structs.Range

-- | Memory-managed wrapper type.
newtype Range
Range :: ManagedPtr Range -> Range

-- | Returns a new <a>Range</a> that is a exact copy of <i><tt>src</tt></i>
--   
--   <i>Since: 2.12</i>
rangeCopy :: (HasCallStack, MonadIO m) => Range -> m Range

-- | Free <i><tt>range</tt></i>
--   
--   <i>Since: 2.12</i>
rangeFree :: (HasCallStack, MonadIO m) => Range -> m ()

-- | Returns the human readable description of <i><tt>range</tt></i>
--   
--   <i>Since: 2.12</i>
rangeGetDescription :: (HasCallStack, MonadIO m) => Range -> m Text

-- | Returns the lower limit of <i><tt>range</tt></i>
--   
--   <i>Since: 2.12</i>
rangeGetLowerLimit :: (HasCallStack, MonadIO m) => Range -> m Double

-- | Returns the upper limit of <i><tt>range</tt></i>
--   
--   <i>Since: 2.12</i>
rangeGetUpperLimit :: (HasCallStack, MonadIO m) => Range -> m Double

-- | Creates a new <a>Range</a>.
--   
--   <i>Since: 2.12</i>
rangeNew :: (HasCallStack, MonadIO m) => Double -> Double -> Text -> m Range
instance GHC.Classes.Eq GI.Atk.Structs.Range.Range
instance Data.GI.Base.BasicTypes.GBoxed GI.Atk.Structs.Range.Range
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Structs.Range.Range
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Structs.Range.Range)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Structs.Range.Range
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Structs.Range.Range


-- | The ATK interface implemented by valuators and components which
--   display or select a value from a bounded range of values.
--   
--   <a>Value</a> should be implemented for components which either display
--   a value from a bounded range, or which allow the user to specify a
--   value from a bounded range, or both. For instance, most sliders and
--   range controls, as well as dials, should have <a>Object</a>
--   representations which implement <a>Value</a> on the component's
--   behalf. <tt><i>AtKValues</i></tt> may be read-only, in which case
--   attempts to alter the value return would fail.
--   
--   &lt;refsect1 id="current-value-text"&gt; &lt;title&gt;On the subject
--   of current value text&lt;/title&gt; &lt;para&gt; In addition to
--   providing the current value, implementors can optionally provide an
--   end-user-consumable textual description associated with this value.
--   This description should be included when the numeric value fails to
--   convey the full, on-screen representation seen by users. &lt;/para&gt;
--   
--   &lt;example&gt; &lt;title&gt;Password strength&lt;/title&gt; A
--   password strength meter whose value changes as the user types their
--   new password. Red is used for values less than 4.0, yellow for values
--   between 4.0 and 7.0, and green for values greater than 7.0. In this
--   instance, value text should be provided by the implementor.
--   Appropriate value text would be "weak", "acceptable," and "strong"
--   respectively. &lt;/example&gt;
--   
--   A level bar whose value changes to reflect the battery charge. The
--   color remains the same regardless of the charge and there is no
--   on-screen text reflecting the fullness of the battery. In this case,
--   because the position within the bar is the only indication the user
--   has of the current charge, value text should not be provided by the
--   implementor.
--   
--   &lt;refsect2 id="implementor-notes"&gt; &lt;title&gt;Implementor
--   Notes&lt;/title&gt; &lt;para&gt; Implementors should bear in mind that
--   assistive technologies will likely prefer the value text provided over
--   the numeric value when presenting a widget's value. As a result,
--   strings not intended for end users should not be exposed in the value
--   text, and strings which are exposed should be localized. In the case
--   of widgets which display value text on screen, for instance through a
--   separate label in close proximity to the value-displaying widget, it
--   is still expected that implementors will expose the value text using
--   the above API. &lt;/para&gt;
--   
--   &lt;para&gt; <a>Value</a> should NOT be implemented for widgets whose
--   displayed value is not reflective of a meaningful amount. For
--   instance, a progress pulse indicator whose value alternates between
--   0.0 and 1.0 to indicate that some process is still taking place should
--   not implement <a>Value</a> because the current value does not reflect
--   progress towards completion. &lt;/para&gt; &lt;/refsect2&gt;
--   &lt;/refsect1&gt;
--   
--   &lt;refsect1 id="ranges"&gt; &lt;title&gt;On the subject of
--   ranges&lt;/title&gt; &lt;para&gt; In addition to providing the minimum
--   and maximum values, implementors can optionally provide details about
--   subranges associated with the widget. These details should be provided
--   by the implementor when both of the following are communicated
--   visually to the end user: &lt;/para&gt; &lt;itemizedlist&gt;
--   &lt;listitem&gt;The existence of distinct ranges such as "weak",
--   "acceptable", and "strong" indicated by color, bar tick marks, and/or
--   on-screen text.&lt;/listitem&gt; &lt;listitem&gt;Where the current
--   value stands within a given subrange, for instance illustrating
--   progression from very "weak" towards nearly "acceptable" through
--   changes in shade and/or position on the bar within the "weak"
--   subrange.&lt;/listitem&gt; &lt;/itemizedlist&gt; &lt;para&gt; If both
--   of the above do not apply to the widget, it should be sufficient to
--   expose the numeric value, along with the value text if appropriate, to
--   make the widget accessible. &lt;/para&gt;
--   
--   &lt;refsect2 id="ranges-implementor-notes"&gt;
--   &lt;title&gt;Implementor Notes&lt;/title&gt; &lt;para&gt; If providing
--   subrange details is deemed necessary, all possible values of the
--   widget are expected to fall within one of the subranges defined by the
--   implementor. &lt;/para&gt; &lt;/refsect2&gt; &lt;/refsect1&gt;
--   
--   &lt;refsect1 id="localization"&gt; &lt;title&gt;On the subject of
--   localization of end-user-consumable text values&lt;/title&gt;
--   &lt;para&gt; Because value text and subrange descriptors are
--   human-consumable, implementors are expected to provide localized
--   strings which can be directly presented to end users via their
--   assistive technology. In order to simplify this for implementors,
--   implementors can use <a>valueTypeGetLocalizedName</a> with the
--   following already-localized constants for commonly-needed values can
--   be used: &lt;/para&gt;
--   
--   &lt;itemizedlist&gt;
--   &lt;listitem&gt;ATK_VALUE_VERY_WEAK&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_WEAK&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_ACCEPTABLE&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_STRONG&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_VERY_STRONG&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_VERY_LOW&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_LOW&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_MEDIUM&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_HIGH&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_VERY_HIGH&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_VERY_BAD&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_BAD&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_GOOD&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_VERY_GOOD&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_BEST&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_SUBSUBOPTIMAL&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_SUBOPTIMAL&lt;/listitem&gt;
--   &lt;listitem&gt;ATK_VALUE_OPTIMAL&lt;/listitem&gt;
--   &lt;/itemizedlist&gt; &lt;para&gt; Proposals for additional constants,
--   along with their use cases, should be submitted to the GNOME
--   Accessibility Team. &lt;/para&gt; &lt;/refsect1&gt;
--   
--   &lt;refsect1 id="changes"&gt; &lt;title&gt;On the subject of
--   changes&lt;/title&gt; &lt;para&gt; Note that if there is a textual
--   description associated with the new numeric value, that description
--   should be included regardless of whether or not it has also changed.
--   &lt;/para&gt; &lt;/refsect1&gt;
module GI.Atk.Interfaces.Value

-- | Memory-managed wrapper type.
newtype Value
Value :: ManagedPtr Value -> Value

-- | Type class for types which can be safely cast to <a>Value</a>, for
--   instance with <a>toValue</a>.
class (GObject o, IsDescendantOf Value o) => IsValue o

-- | Cast to <a>Value</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toValue :: (MonadIO m, IsValue o) => o -> m Value

-- | Gets the value of this object.

-- | <i>Deprecated: Since 2.12. Use <a>valueGetValueAndText</a>instead.</i>
valueGetCurrentValue :: (HasCallStack, MonadIO m, IsValue a) => a -> m GValue

-- | Gets the minimum increment by which the value of this object may be
--   changed. If zero, the minimum increment is undefined, which may mean
--   that it is limited only by the floating point precision of the
--   platform.
--   
--   <i>Since: 2.12</i>
valueGetIncrement :: (HasCallStack, MonadIO m, IsValue a) => a -> m Double

-- | Gets the maximum value of this object.

-- | <i>Deprecated: Since 2.12. Use <a>valueGetRange</a> instead.</i>
valueGetMaximumValue :: (HasCallStack, MonadIO m, IsValue a) => a -> m GValue

-- | Gets the minimum increment by which the value of this object may be
--   changed. If zero, the minimum increment is undefined, which may mean
--   that it is limited only by the floating point precision of the
--   platform.
--   
--   <i>Since: 1.12</i>

-- | <i>Deprecated: Since 2.12. Use <a>valueGetIncrement</a> instead.</i>
valueGetMinimumIncrement :: (HasCallStack, MonadIO m, IsValue a) => a -> m GValue

-- | Gets the minimum value of this object.

-- | <i>Deprecated: Since 2.12. Use <a>valueGetRange</a> instead.</i>
valueGetMinimumValue :: (HasCallStack, MonadIO m, IsValue a) => a -> m GValue

-- | Gets the range of this object.
--   
--   <i>Since: 2.12</i>
valueGetRange :: (HasCallStack, MonadIO m, IsValue a) => a -> m (Maybe Range)

-- | Gets the list of subranges defined for this object. See <a>Value</a>
--   introduction for examples of subranges and when to expose them.
--   
--   <i>Since: 2.12</i>
valueGetSubRanges :: (HasCallStack, MonadIO m, IsValue a) => a -> m [Range]

-- | Gets the current value and the human readable text alternative of
--   <i><tt>obj</tt></i>. <i><tt>text</tt></i> is a newly created string,
--   that must be freed by the caller. Can be NULL if no descriptor is
--   available.
--   
--   <i>Since: 2.12</i>
valueGetValueAndText :: (HasCallStack, MonadIO m, IsValue a) => a -> m (Double, Text)

-- | Sets the value of this object.

-- | <i>Deprecated: Since 2.12. Use <a>valueSetValue</a> instead.</i>
valueSetCurrentValue :: (HasCallStack, MonadIO m, IsValue a) => a -> GValue -> m Bool

-- | Sets the value of this object.
--   
--   This method is intended to provide a way to change the value of the
--   object. In any case, it is possible that the value can't be modified
--   (ie: a read-only component). If the value changes due this call, it is
--   possible that the text could change, and will trigger an
--   <a>Value::valueChanged</a> signal emission.
--   
--   Note for implementors: the deprecated <a>valueSetCurrentValue</a>
--   method returned TRUE or FALSE depending if the value was assigned or
--   not. In the practice several implementors were not able to decide it,
--   and returned TRUE in any case. For that reason it is not required
--   anymore to return if the value was properly assigned or not.
--   
--   <i>Since: 2.12</i>
valueSetValue :: (HasCallStack, MonadIO m, IsValue a) => a -> Double -> m ()

-- | The 'value-changed' signal is emitted when the current value that
--   represent the object changes. <i><tt>value</tt></i> is the numerical
--   representation of this new value. <i><tt>text</tt></i> is the human
--   readable text alternative of <i><tt>value</tt></i>, and can be NULL if
--   it is not available. Note that if there is a textual description
--   associated with the new numeric value, that description should be
--   included regardless of whether or not it has also changed.
--   
--   Example: a password meter whose value changes as the user types their
--   new password. Appropiate value text would be "weak", "acceptable" and
--   "strong".
--   
--   <i>Since: 2.12</i>
type ValueValueChangedCallback = Double -> Text -> IO ()

-- | Connect a signal handler for the <a>valueChanged</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> value #valueChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterValueValueChanged :: (IsValue a, MonadIO m) => a -> ((?self :: a) => ValueValueChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>valueChanged</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> value #valueChanged callback
--   </pre>
onValueValueChanged :: (IsValue a, MonadIO m) => a -> ((?self :: a) => ValueValueChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Interfaces.Value.Value
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Interfaces.Value.Value
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Interfaces.Value.Value
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Interfaces.Value.Value)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Value.Value o) => GI.Atk.Interfaces.Value.IsValue o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Value.Value
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Interfaces.Value.Value


-- | A data structure for holding a rectangle. Those coordinates are
--   relative to the component top-level parent.
module GI.Atk.Structs.Rectangle

-- | Memory-managed wrapper type.
newtype Rectangle
Rectangle :: ManagedPtr Rectangle -> Rectangle

-- | Construct a <a>Rectangle</a> struct initialized to zero.
newZeroRectangle :: MonadIO m => m Rectangle

-- | Get the value of the “<tt>height</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rectangle #height
--   </pre>
getRectangleHeight :: MonadIO m => Rectangle -> m Int32

-- | Set the value of the “<tt>height</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rectangle [ #height <a>:=</a> value ]
--   </pre>
setRectangleHeight :: MonadIO m => Rectangle -> Int32 -> m ()

-- | Get the value of the “<tt>width</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rectangle #width
--   </pre>
getRectangleWidth :: MonadIO m => Rectangle -> m Int32

-- | Set the value of the “<tt>width</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rectangle [ #width <a>:=</a> value ]
--   </pre>
setRectangleWidth :: MonadIO m => Rectangle -> Int32 -> m ()

-- | Get the value of the “<tt>x</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rectangle #x
--   </pre>
getRectangleX :: MonadIO m => Rectangle -> m Int32

-- | Set the value of the “<tt>x</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rectangle [ #x <a>:=</a> value ]
--   </pre>
setRectangleX :: MonadIO m => Rectangle -> Int32 -> m ()

-- | Get the value of the “<tt>y</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> rectangle #y
--   </pre>
getRectangleY :: MonadIO m => Rectangle -> m Int32

-- | Set the value of the “<tt>y</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> rectangle [ #y <a>:=</a> value ]
--   </pre>
setRectangleY :: MonadIO m => Rectangle -> Int32 -> m ()
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Atk.Structs.Rectangle.Rectangle tag
instance GHC.Classes.Eq GI.Atk.Structs.Rectangle.Rectangle
instance Data.GI.Base.BasicTypes.GBoxed GI.Atk.Structs.Rectangle.Rectangle
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Structs.Rectangle.Rectangle
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Structs.Rectangle.Rectangle)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Structs.Rectangle.Rectangle
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Structs.Rectangle.Rectangle


-- | Container for AtkPlug objects from other processes
--   
--   Together with <a>Plug</a>, <a>Socket</a> provides the ability to embed
--   accessibles from one process into another in a fashion that is
--   transparent to assistive technologies. <a>Socket</a> works as the
--   container of <a>Plug</a>, embedding it using the method
--   <a>socketEmbed</a>. Any accessible contained in the <a>Plug</a> will
--   appear to the assistive technologies as being inside the application
--   that created the <a>Socket</a>.
--   
--   The communication between a <a>Socket</a> and a <a>Plug</a> is done by
--   the IPC layer of the accessibility framework, normally implemented by
--   the D-Bus based implementation of AT-SPI (at-spi2). If that is the
--   case, at-spi-atk2 is the responsible to implement the abstract methods
--   <a>plugGetId</a> and <a>socketEmbed</a>, so an ATK implementor
--   shouldn't reimplement them. The process that contains the <a>Plug</a>
--   is responsible to send the ID returned by
--   <tt><i>atk_plug_id()</i></tt> to the process that contains the
--   <a>Socket</a>, so it could call the method <a>socketEmbed</a> in order
--   to embed it.
--   
--   For the same reasons, an implementor doesn't need to implement
--   <a>objectGetNAccessibleChildren</a> and
--   <a>objectRefAccessibleChild</a>. All the logic related to those
--   functions will be implemented by the IPC layer.
--   
--   See [class<i><tt>atkPlug</tt></i>]
module GI.Atk.Objects.Socket

-- | Memory-managed wrapper type.
newtype Socket
Socket :: ManagedPtr Socket -> Socket

-- | Type class for types which can be safely cast to <a>Socket</a>, for
--   instance with <a>toSocket</a>.
class (GObject o, IsDescendantOf Socket o) => IsSocket o

-- | Cast to <a>Socket</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toSocket :: (MonadIO m, IsSocket o) => o -> m Socket

-- | Embeds the children of an <a>Plug</a> as the children of the
--   <a>Socket</a>. The plug may be in the same process or in a different
--   process.
--   
--   The class item used by this function should be filled in by the IPC
--   layer (usually at-spi2-atk). The implementor of the AtkSocket should
--   call this function and pass the id for the plug as returned by
--   <a>plugGetId</a>. It is the responsibility of the application to pass
--   the plug id on to the process implementing the <a>Socket</a> as
--   needed.
--   
--   <i>Since: 1.30</i>
socketEmbed :: (HasCallStack, MonadIO m, IsSocket a) => a -> Text -> m ()

-- | Determines whether or not the socket has an embedded plug.
--   
--   <i>Since: 1.30</i>
socketIsOccupied :: (HasCallStack, MonadIO m, IsSocket a) => a -> m Bool

-- | Creates a new <a>Socket</a>.
socketNew :: (HasCallStack, MonadIO m) => m Socket
instance GHC.Classes.Eq GI.Atk.Objects.Socket.Socket
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.Socket.Socket
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.Socket.Socket
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.Socket.Socket)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.Socket.Socket o) => GI.Atk.Objects.Socket.IsSocket o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.Socket.Socket
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.Socket.Socket


-- | Toplevel for embedding into other processes
--   
--   See [class<i><tt>atkSocket</tt></i>]
module GI.Atk.Objects.Plug

-- | Memory-managed wrapper type.
newtype Plug
Plug :: ManagedPtr Plug -> Plug

-- | Type class for types which can be safely cast to <a>Plug</a>, for
--   instance with <a>toPlug</a>.
class (GObject o, IsDescendantOf Plug o) => IsPlug o

-- | Cast to <a>Plug</a>, for types for which this is known to be safe. For
--   general casts, use <a>castTo</a>.
toPlug :: (MonadIO m, IsPlug o) => o -> m Plug

-- | Gets the unique ID of an <a>Plug</a> object, which can be used to
--   embed inside of an <a>Socket</a> using <a>socketEmbed</a>.
--   
--   Internally, this calls a class function that should be registered by
--   the IPC layer (usually at-spi2-atk). The implementor of an <a>Plug</a>
--   object should call this function (after atk-bridge is loaded) and pass
--   the value to the process implementing the <a>Socket</a>, so it could
--   embed the plug.
--   
--   <i>Since: 1.30</i>
plugGetId :: (HasCallStack, MonadIO m, IsPlug a) => a -> m Text

-- | Creates a new <a>Plug</a> instance.
--   
--   <i>Since: 1.30</i>
plugNew :: (HasCallStack, MonadIO m) => m Plug

-- | Sets <i><tt>child</tt></i> as accessible child of <i><tt>plug</tt></i>
--   and <i><tt>plug</tt></i> as accessible parent of
--   <i><tt>child</tt></i>. <i><tt>child</tt></i> can be NULL.
--   
--   In some cases, one can not use the AtkPlug type directly as accessible
--   object for the toplevel widget of the application. For instance in the
--   gtk case, GtkPlugAccessible can not inherit both from
--   GtkWindowAccessible and from AtkPlug. In such a case, one can create,
--   in addition to the standard accessible object for the toplevel widget,
--   an AtkPlug object, and make the former the child of the latter by
--   calling <a>plugSetChild</a>.
--   
--   <i>Since: 2.35.0</i>
plugSetChild :: (HasCallStack, MonadIO m, IsPlug a, IsObject b) => a -> b -> m ()
instance GHC.Classes.Eq GI.Atk.Objects.Plug.Plug
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.Plug.Plug
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.Plug.Plug
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.Plug.Plug)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.Plug.Plug o) => GI.Atk.Objects.Plug.IsPlug o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.Plug.Plug
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.Plug.Plug


-- | The ATK interface provided by UI components which occupy a physical
--   area on the screen. which the user can activate/interact with.
--   
--   <a>Component</a> should be implemented by most if not all UI elements
--   with an actual on-screen presence, i.e. components which can be said
--   to have a screen-coordinate bounding box. Virtually all widgets will
--   need to have <a>Component</a> implementations provided for their
--   corresponding <a>Object</a> class. In short, only UI elements which
--   are *not* GUI elements will omit this ATK interface.
--   
--   A possible exception might be textual information with a transparent
--   background, in which case text glyph bounding box information is
--   provided by <a>Text</a>.
module GI.Atk.Interfaces.Component

-- | Memory-managed wrapper type.
newtype Component
Component :: ManagedPtr Component -> Component

-- | Type class for types which can be safely cast to <a>Component</a>, for
--   instance with <a>toComponent</a>.
class (GObject o, IsDescendantOf Component o) => IsComponent o

-- | Cast to <a>Component</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toComponent :: (MonadIO m, IsComponent o) => o -> m Component

-- | Checks whether the specified point is within the extent of the
--   <i><tt>component</tt></i>.
--   
--   Toolkit implementor note: ATK provides a default implementation for
--   this virtual method. In general there are little reason to
--   re-implement it.
componentContains :: (HasCallStack, MonadIO m, IsComponent a) => a -> Int32 -> Int32 -> CoordType -> m Bool

-- | Returns the alpha value (i.e. the opacity) for this
--   <i><tt>component</tt></i>, on a scale from 0 (fully transparent) to
--   1.0 (fully opaque).
--   
--   <i>Since: 1.12</i>
componentGetAlpha :: (HasCallStack, MonadIO m, IsComponent a) => a -> m Double

-- | Gets the rectangle which gives the extent of the
--   <i><tt>component</tt></i>.
--   
--   If the extent can not be obtained (e.g. a non-embedded plug or missing
--   support), all of x, y, width, height are set to -1.
componentGetExtents :: (HasCallStack, MonadIO m, IsComponent a) => a -> CoordType -> m (Int32, Int32, Int32, Int32)

-- | Gets the layer of the component.
componentGetLayer :: (HasCallStack, MonadIO m, IsComponent a) => a -> m Layer

-- | Gets the zorder of the component. The value G_MININT will be returned
--   if the layer of the component is not ATK_LAYER_MDI or
--   ATK_LAYER_WINDOW.
componentGetMdiZorder :: (HasCallStack, MonadIO m, IsComponent a) => a -> m Int32

-- | Gets the position of <i><tt>component</tt></i> in the form of a point
--   specifying <i><tt>component</tt></i>'s top-left corner.
--   
--   If the position can not be obtained (e.g. a non-embedded plug or
--   missing support), x and y are set to -1.

-- | <i>Deprecated: Since 2.12. Use <a>componentGetExtents</a> instead.</i>
componentGetPosition :: (HasCallStack, MonadIO m, IsComponent a) => a -> CoordType -> m (Int32, Int32)

-- | Gets the size of the <i><tt>component</tt></i> in terms of width and
--   height.
--   
--   If the size can not be obtained (e.g. a non-embedded plug or missing
--   support), width and height are set to -1.

-- | <i>Deprecated: Since 2.12. Use <a>componentGetExtents</a> instead.</i>
componentGetSize :: (HasCallStack, MonadIO m, IsComponent a) => a -> m (Int32, Int32)

-- | Grabs focus for this <i><tt>component</tt></i>.
componentGrabFocus :: (HasCallStack, MonadIO m, IsComponent a) => a -> m Bool

-- | Gets a reference to the accessible child, if one exists, at the
--   coordinate point specified by <i><tt>x</tt></i> and <i><tt>y</tt></i>.
componentRefAccessibleAtPoint :: (HasCallStack, MonadIO m, IsComponent a) => a -> Int32 -> Int32 -> CoordType -> m (Maybe Object)

-- | Remove the handler specified by <i><tt>handlerId</tt></i> from the
--   list of functions to be executed when this object receives focus
--   events (in or out).

-- | <i>Deprecated: (Since version 2.9.4)If you need to track when an
--   object gains orlose the focus, use the <a>Object::stateChange</a>
--   "focused" notification instead.</i>
componentRemoveFocusHandler :: (HasCallStack, MonadIO m, IsComponent a) => a -> Word32 -> m ()

-- | Makes <i><tt>component</tt></i> visible on the screen by scrolling all
--   necessary parents.
--   
--   Contrary to atk_component_set_position, this does not actually move
--   <i><tt>component</tt></i> in its parent, this only makes the parents
--   scroll so that the object shows up on the screen, given its current
--   position within the parents.
--   
--   <i>Since: 2.30</i>
componentScrollTo :: (HasCallStack, MonadIO m, IsComponent a) => a -> ScrollType -> m Bool

-- | Move the top-left of <i><tt>component</tt></i> to a given position of
--   the screen by scrolling all necessary parents.
--   
--   <i>Since: 2.30</i>
componentScrollToPoint :: (HasCallStack, MonadIO m, IsComponent a) => a -> CoordType -> Int32 -> Int32 -> m Bool

-- | Sets the extents of <i><tt>component</tt></i>.
componentSetExtents :: (HasCallStack, MonadIO m, IsComponent a) => a -> Int32 -> Int32 -> Int32 -> Int32 -> CoordType -> m Bool

-- | Sets the position of <i><tt>component</tt></i>.
--   
--   Contrary to atk_component_scroll_to, this does not trigger any
--   scrolling, this just moves <i><tt>component</tt></i> in its parent.
componentSetPosition :: (HasCallStack, MonadIO m, IsComponent a) => a -> Int32 -> Int32 -> CoordType -> m Bool

-- | Set the size of the <i><tt>component</tt></i> in terms of width and
--   height.
componentSetSize :: (HasCallStack, MonadIO m, IsComponent a) => a -> Int32 -> Int32 -> m Bool

-- | The 'bounds-changed" signal is emitted when the position or size of
--   the component changes.
type ComponentBoundsChangedCallback = Rectangle -> IO ()

-- | Connect a signal handler for the <a>boundsChanged</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> component #boundsChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterComponentBoundsChanged :: (IsComponent a, MonadIO m) => a -> ((?self :: a) => ComponentBoundsChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>boundsChanged</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> component #boundsChanged callback
--   </pre>
onComponentBoundsChanged :: (IsComponent a, MonadIO m) => a -> ((?self :: a) => ComponentBoundsChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Interfaces.Component.Component
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Interfaces.Component.Component
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Interfaces.Component.Component
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Component.Component o) => GI.Atk.Interfaces.Component.IsComponent o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Interfaces.Component.Component)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Component.Component
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Interfaces.Component.Component


-- | A structure used to store a rectangle used by AtkText.
module GI.Atk.Structs.TextRectangle

-- | Memory-managed wrapper type.
newtype TextRectangle
TextRectangle :: ManagedPtr TextRectangle -> TextRectangle

-- | Construct a <a>TextRectangle</a> struct initialized to zero.
newZeroTextRectangle :: MonadIO m => m TextRectangle

-- | Get the value of the “<tt>height</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textRectangle #height
--   </pre>
getTextRectangleHeight :: MonadIO m => TextRectangle -> m Int32

-- | Set the value of the “<tt>height</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textRectangle [ #height <a>:=</a> value ]
--   </pre>
setTextRectangleHeight :: MonadIO m => TextRectangle -> Int32 -> m ()

-- | Get the value of the “<tt>width</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textRectangle #width
--   </pre>
getTextRectangleWidth :: MonadIO m => TextRectangle -> m Int32

-- | Set the value of the “<tt>width</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textRectangle [ #width <a>:=</a> value ]
--   </pre>
setTextRectangleWidth :: MonadIO m => TextRectangle -> Int32 -> m ()

-- | Get the value of the “<tt>x</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textRectangle #x
--   </pre>
getTextRectangleX :: MonadIO m => TextRectangle -> m Int32

-- | Set the value of the “<tt>x</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textRectangle [ #x <a>:=</a> value ]
--   </pre>
setTextRectangleX :: MonadIO m => TextRectangle -> Int32 -> m ()

-- | Get the value of the “<tt>y</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textRectangle #y
--   </pre>
getTextRectangleY :: MonadIO m => TextRectangle -> m Int32

-- | Set the value of the “<tt>y</tt>” field. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textRectangle [ #y <a>:=</a> value ]
--   </pre>
setTextRectangleY :: MonadIO m => TextRectangle -> Int32 -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Structs.TextRectangle.TextRectangle
instance Data.GI.Base.BasicTypes.CallocPtr GI.Atk.Structs.TextRectangle.TextRectangle
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Atk.Structs.TextRectangle.TextRectangle tag
instance GHC.Classes.Eq GI.Atk.Structs.TextRectangle.TextRectangle
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Structs.TextRectangle.TextRectangle


-- | A structure used to describe a text range.
module GI.Atk.Structs.TextRange

-- | Memory-managed wrapper type.
newtype TextRange
TextRange :: ManagedPtr TextRange -> TextRange

-- | Construct a <a>TextRange</a> struct initialized to zero.
newZeroTextRange :: MonadIO m => m TextRange

-- | Get the value of the “<tt>bounds</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textRange #bounds
--   </pre>
getTextRangeBounds :: MonadIO m => TextRange -> m TextRectangle

-- | Set the value of the “<tt>content</tt>” field to <a>Nothing</a>. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #content
--   </pre>
clearTextRangeContent :: MonadIO m => TextRange -> m ()

-- | Get the value of the “<tt>content</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textRange #content
--   </pre>
getTextRangeContent :: MonadIO m => TextRange -> m (Maybe Text)

-- | Set the value of the “<tt>content</tt>” field. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textRange [ #content <a>:=</a> value ]
--   </pre>
setTextRangeContent :: MonadIO m => TextRange -> CString -> m ()

-- | Get the value of the “<tt>end_offset</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textRange #endOffset
--   </pre>
getTextRangeEndOffset :: MonadIO m => TextRange -> m Int32

-- | Set the value of the “<tt>end_offset</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textRange [ #endOffset <a>:=</a> value ]
--   </pre>
setTextRangeEndOffset :: MonadIO m => TextRange -> Int32 -> m ()

-- | Get the value of the “<tt>start_offset</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textRange #startOffset
--   </pre>
getTextRangeStartOffset :: MonadIO m => TextRange -> m Int32

-- | Set the value of the “<tt>start_offset</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textRange [ #startOffset <a>:=</a> value ]
--   </pre>
setTextRangeStartOffset :: MonadIO m => TextRange -> Int32 -> m ()
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Atk.Structs.TextRange.TextRange tag
instance GHC.Classes.Eq GI.Atk.Structs.TextRange.TextRange
instance Data.GI.Base.BasicTypes.GBoxed GI.Atk.Structs.TextRange.TextRange
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Structs.TextRange.TextRange
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Structs.TextRange.TextRange)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Structs.TextRange.TextRange
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Structs.TextRange.TextRange


-- | The ATK interface implemented by components with text content.
--   
--   <a>Text</a> should be implemented by <tt><i>AtkObjects</i></tt> on
--   behalf of widgets that have text content which is either attributed or
--   otherwise non-trivial. <tt><i>AtkObjects</i></tt> whose text content
--   is simple, unattributed, and very brief may expose that content via
--   <tt><i>atk_object_get_name</i></tt> instead; however if the text is
--   editable, multi-line, typically longer than three or four words,
--   attributed, selectable, or if the object already uses the 'name' ATK
--   property for other information, the <a>Text</a> interface should be
--   used to expose the text content. In the case of editable text content,
--   <a>EditableText</a> (a subtype of the <a>Text</a> interface) should be
--   implemented instead.
--   
--   <a>Text</a> provides not only traversal facilities and change
--   notification for text content, but also caret tracking and glyph
--   bounding box calculations. Note that the text strings are exposed as
--   UTF-8, and are therefore potentially multi-byte, and caret-to-byte
--   offset mapping makes no assumptions about the character length; also
--   bounding box glyph-to-offset mapping may be complex for languages
--   which use ligatures.
module GI.Atk.Interfaces.Text

-- | Memory-managed wrapper type.
newtype Text
Text :: ManagedPtr Text -> Text

-- | Type class for types which can be safely cast to <a>Text</a>, for
--   instance with <a>toText</a>.
class (GObject o, IsDescendantOf Text o) => IsText o

-- | Cast to <a>Text</a>, for types for which this is known to be safe. For
--   general casts, use <a>castTo</a>.
toText :: (MonadIO m, IsText o) => o -> m Text

-- | Adds a selection bounded by the specified offsets.
textAddSelection :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> m Bool

-- | Frees the memory associated with an array of AtkTextRange. It is
--   assumed that the array was returned by the function
--   atk_text_get_bounded_ranges and is NULL terminated.
--   
--   <i>Since: 1.3</i>
textFreeRanges :: (HasCallStack, MonadIO m) => [TextRange] -> m ()

-- | Get the ranges of text in the specified bounding box.
--   
--   <i>Since: 1.3</i>
textGetBoundedRanges :: (HasCallStack, MonadIO m, IsText a) => a -> TextRectangle -> CoordType -> TextClipType -> TextClipType -> m [TextRange]

-- | Gets the offset of the position of the caret (cursor).
textGetCaretOffset :: (HasCallStack, MonadIO m, IsText a) => a -> m Int32

-- | Gets the specified text.
textGetCharacterAtOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m Char

-- | Gets the character count.
textGetCharacterCount :: (HasCallStack, MonadIO m, IsText a) => a -> m Int32

-- | If the extent can not be obtained (e.g. missing support), all of x, y,
--   width, height are set to -1.
--   
--   Get the bounding box containing the glyph representing the character
--   at a particular text offset.
textGetCharacterExtents :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> CoordType -> m (Int32, Int32, Int32, Int32)

-- | Creates an <tt><i>AtkAttributeSet</i></tt> which consists of the
--   default values of attributes for the text. See the enum
--   AtkTextAttribute for types of text attributes that can be returned.
--   Note that other attributes may also be returned.
textGetDefaultAttributes :: (HasCallStack, MonadIO m, IsText a) => a -> m [Ptr ()]

-- | Gets the number of selected regions.
textGetNSelections :: (HasCallStack, MonadIO m, IsText a) => a -> m Int32

-- | Gets the offset of the character located at coordinates
--   <i><tt>x</tt></i> and <i><tt>y</tt></i>. <i><tt>x</tt></i> and
--   <i><tt>y</tt></i> are interpreted as being relative to the screen or
--   this widget's window depending on <i><tt>coords</tt></i>.
textGetOffsetAtPoint :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> CoordType -> m Int32

-- | Get the bounding box for text within the specified range.
--   
--   If the extents can not be obtained (e.g. or missing support), the
--   rectangle fields are set to -1.
--   
--   <i>Since: 1.3</i>
textGetRangeExtents :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> CoordType -> m TextRectangle

-- | Creates an <tt><i>AtkAttributeSet</i></tt> which consists of the
--   attributes explicitly set at the position <i><tt>offset</tt></i> in
--   the text. <i><tt>startOffset</tt></i> and <i><tt>endOffset</tt></i>
--   are set to the start and end of the range around
--   <i><tt>offset</tt></i> where the attributes are invariant. Note that
--   <i><tt>endOffset</tt></i> is the offset of the first character after
--   the range. See the enum AtkTextAttribute for types of text attributes
--   that can be returned. Note that other attributes may also be returned.
textGetRunAttributes :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m ([Ptr ()], Int32, Int32)

-- | Gets the text from the specified selection.
textGetSelection :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m (Text, Int32, Int32)

-- | Gets a portion of the text exposed through an <a>Text</a> according to
--   a given <i><tt>offset</tt></i> and a specific
--   <i><tt>granularity</tt></i>, along with the start and end offsets
--   defining the boundaries of such a portion of text.
--   
--   If <i><tt>granularity</tt></i> is ATK_TEXT_GRANULARITY_CHAR the
--   character at the offset is returned.
--   
--   If <i><tt>granularity</tt></i> is ATK_TEXT_GRANULARITY_WORD the
--   returned string is from the word start at or before the offset to the
--   word start after the offset.
--   
--   The returned string will contain the word at the offset if the offset
--   is inside a word and will contain the word before the offset if the
--   offset is not inside a word.
--   
--   If <i><tt>granularity</tt></i> is ATK_TEXT_GRANULARITY_SENTENCE the
--   returned string is from the sentence start at or before the offset to
--   the sentence start after the offset.
--   
--   The returned string will contain the sentence at the offset if the
--   offset is inside a sentence and will contain the sentence before the
--   offset if the offset is not inside a sentence.
--   
--   If <i><tt>granularity</tt></i> is ATK_TEXT_GRANULARITY_LINE the
--   returned string is from the line start at or before the offset to the
--   line start after the offset.
--   
--   If <i><tt>granularity</tt></i> is ATK_TEXT_GRANULARITY_PARAGRAPH the
--   returned string is from the start of the paragraph at or before the
--   offset to the start of the following paragraph after the offset.
--   
--   <i>Since: 2.10</i>
textGetStringAtOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> TextGranularity -> m (Maybe Text, Int32, Int32)

-- | Gets the specified text.
textGetText :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> m Text

-- | Gets the specified text.

-- | <i>Deprecated: (Since version 2.9.3)Please use
--   <a>textGetStringAtOffset</a> instead.</i>
textGetTextAfterOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> TextBoundary -> m (Text, Int32, Int32)

-- | Gets the specified text.
--   
--   If the boundary_type if ATK_TEXT_BOUNDARY_CHAR the character at the
--   offset is returned.
--   
--   If the boundary_type is ATK_TEXT_BOUNDARY_WORD_START the returned
--   string is from the word start at or before the offset to the word
--   start after the offset.
--   
--   The returned string will contain the word at the offset if the offset
--   is inside a word and will contain the word before the offset if the
--   offset is not inside a word.
--   
--   If the boundary type is ATK_TEXT_BOUNDARY_SENTENCE_START the returned
--   string is from the sentence start at or before the offset to the
--   sentence start after the offset.
--   
--   The returned string will contain the sentence at the offset if the
--   offset is inside a sentence and will contain the sentence before the
--   offset if the offset is not inside a sentence.
--   
--   If the boundary type is ATK_TEXT_BOUNDARY_LINE_START the returned
--   string is from the line start at or before the offset to the line
--   start after the offset.

-- | <i>Deprecated: This method is deprecated since ATK version2.9.4.
--   Please use <a>textGetStringAtOffset</a> instead.</i>
textGetTextAtOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> TextBoundary -> m (Text, Int32, Int32)

-- | Gets the specified text.

-- | <i>Deprecated: (Since version 2.9.3)Please use
--   <a>textGetStringAtOffset</a> instead.</i>
textGetTextBeforeOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> TextBoundary -> m (Text, Int32, Int32)

-- | Removes the specified selection.
textRemoveSelection :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m Bool

-- | Makes a substring of <i><tt>text</tt></i> visible on the screen by
--   scrolling all necessary parents.
--   
--   <i>Since: 2.32</i>
textScrollSubstringTo :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> ScrollType -> m Bool

-- | Move the top-left of a substring of <i><tt>text</tt></i> to a given
--   position of the screen by scrolling all necessary parents.
--   
--   <i>Since: 2.32</i>
textScrollSubstringToPoint :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> CoordType -> Int32 -> Int32 -> m Bool

-- | Sets the caret (cursor) position to the specified
--   <i><tt>offset</tt></i>.
--   
--   In the case of rich-text content, this method should either grab focus
--   or move the sequential focus navigation starting point (if the
--   application supports this concept) as if the user had clicked on the
--   new caret position. Typically, this means that the target of this
--   operation is the node containing the new caret position or one of its
--   ancestors. In other words, after this method is called, if the user
--   advances focus, it should move to the first focusable node following
--   the new caret position.
--   
--   Calling this method should also scroll the application viewport in a
--   way that matches the behavior of the application's typical caret
--   motion or tab navigation as closely as possible. This also means that
--   if the application's caret motion or focus navigation does not trigger
--   a scroll operation, this method should not trigger one either. If the
--   application does not have a caret motion or focus navigation
--   operation, this method should try to scroll the new caret position
--   into view while minimizing unnecessary scroll motion.
textSetCaretOffset :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> m Bool

-- | Changes the start and end offset of the specified selection.
textSetSelection :: (HasCallStack, MonadIO m, IsText a) => a -> Int32 -> Int32 -> Int32 -> m Bool

-- | The "text-attributes-changed" signal is emitted when the text
--   attributes of the text of an object which implements AtkText changes.
type TextTextAttributesChangedCallback = IO ()

-- | Connect a signal handler for the <a>textAttributesChanged</a> signal,
--   to be run after the default handler. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>after</a> text #textAttributesChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTextTextAttributesChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextAttributesChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textAttributesChanged</a> signal,
--   to be run before the default handler. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>on</a> text #textAttributesChanged callback
--   </pre>
onTextTextAttributesChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextAttributesChangedCallback) -> m SignalHandlerId

-- | The "text-caret-moved" signal is emitted when the caret position of
--   the text of an object which implements AtkText changes.
type TextTextCaretMovedCallback = Int32 -> IO ()

-- | Connect a signal handler for the <a>textCaretMoved</a> signal, to be
--   run after the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>after</a> text #textCaretMoved callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTextTextCaretMoved :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextCaretMovedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textCaretMoved</a> signal, to be
--   run before the default handler. When <a>overloading</a> is enabled,
--   this is equivalent to
--   
--   <pre>
--   <a>on</a> text #textCaretMoved callback
--   </pre>
onTextTextCaretMoved :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextCaretMovedCallback) -> m SignalHandlerId

-- | The "text-changed" signal is emitted when the text of the object which
--   implements the AtkText interface changes, This signal will have a
--   detail which is either "insert" or "delete" which identifies whether
--   the text change was an insertion or a deletion.

-- | <i>Deprecated: (Since version 2.9.4)Use
--   <a>Object</a>::<tt><i>text-insert</i></tt>
--   or<a>Object</a>::<tt><i>text-remove</i></tt> instead.</i>
type TextTextChangedCallback = Int32 -> Int32 -> IO ()

-- | Connect a signal handler for the <a>textChanged</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> text #textChanged callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to “<tt>text-changed::detail</tt>”
--   instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTextTextChanged :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textChanged</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> text #textChanged callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to “<tt>text-changed::detail</tt>”
--   instead.
onTextTextChanged :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextChangedCallback) -> m SignalHandlerId

-- | The "text-insert" signal is emitted when a new text is inserted. If
--   the signal was not triggered by the user (e.g. typing or pasting
--   text), the "system" detail should be included.
type TextTextInsertCallback = Int32 -> Int32 -> Text -> IO ()

-- | Connect a signal handler for the <a>textInsert</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> text #textInsert callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to “<tt>text-insert::detail</tt>”
--   instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTextTextInsert :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextInsertCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textInsert</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> text #textInsert callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to “<tt>text-insert::detail</tt>”
--   instead.
onTextTextInsert :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextInsertCallback) -> m SignalHandlerId

-- | The "text-remove" signal is emitted when a new text is removed. If the
--   signal was not triggered by the user (e.g. typing or pasting text),
--   the "system" detail should be included.
type TextTextRemoveCallback = Int32 -> Int32 -> Text -> IO ()

-- | Connect a signal handler for the <a>textRemove</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> text #textRemove callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to “<tt>text-remove::detail</tt>”
--   instead.
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTextTextRemove :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextRemoveCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textRemove</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> text #textRemove callback
--   </pre>
--   
--   This signal admits a optional parameter <tt>detail</tt>. If it's not
--   <tt>Nothing</tt>, we will connect to “<tt>text-remove::detail</tt>”
--   instead.
onTextTextRemove :: (IsText a, MonadIO m) => a -> Maybe Text -> ((?self :: a) => TextTextRemoveCallback) -> m SignalHandlerId

-- | The "text-selection-changed" signal is emitted when the selected text
--   of an object which implements AtkText changes.
type TextTextSelectionChangedCallback = IO ()

-- | Connect a signal handler for the <a>textSelectionChanged</a> signal,
--   to be run after the default handler. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>after</a> text #textSelectionChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterTextTextSelectionChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextSelectionChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>textSelectionChanged</a> signal,
--   to be run before the default handler. When <a>overloading</a> is
--   enabled, this is equivalent to
--   
--   <pre>
--   <a>on</a> text #textSelectionChanged callback
--   </pre>
onTextTextSelectionChanged :: (IsText a, MonadIO m) => a -> ((?self :: a) => TextTextSelectionChangedCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Interfaces.Text.Text
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Interfaces.Text.Text
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Interfaces.Text.Text
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Interfaces.Text.Text)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Text.Text o) => GI.Atk.Interfaces.Text.IsText o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Text.Text
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Interfaces.Text.Text


-- | This structure represents a single text selection within a document.
--   This selection is defined by two points in the content, where each one
--   is defined by an AtkObject supporting the AtkText interface and a
--   character offset relative to it.
--   
--   The end object must appear after the start object in the accessibility
--   tree, i.e. the end object must be reachable from the start object by
--   navigating forward (next, first child etc).
--   
--   This struct also contains a <i><tt>startIsActive</tt></i> boolean, to
--   communicate if the start of the selection is the active point or not.
--   
--   The active point corresponds to the user's focus or point of interest.
--   The user moves the active point to expand or collapse the range. The
--   anchor point is the other point of the range and typically remains
--   constant. In most cases, anchor is the start of the range and active
--   is the end. However, when selecting backwards (e.g. pressing
--   shift+left arrow in a text field), the start of the range is the
--   active point, as the user moves this to manipulate the selection.
--   
--   <i>Since: 2.52</i>
module GI.Atk.Structs.TextSelection

-- | Memory-managed wrapper type.
newtype TextSelection
TextSelection :: ManagedPtr TextSelection -> TextSelection

-- | Construct a <a>TextSelection</a> struct initialized to zero.
newZeroTextSelection :: MonadIO m => m TextSelection

-- | Set the value of the “<tt>end_object</tt>” field to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #endObject
--   </pre>
clearTextSelectionEndObject :: MonadIO m => TextSelection -> m ()

-- | Get the value of the “<tt>end_object</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textSelection #endObject
--   </pre>
getTextSelectionEndObject :: MonadIO m => TextSelection -> m (Maybe Object)

-- | Set the value of the “<tt>end_object</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textSelection [ #endObject <a>:=</a> value ]
--   </pre>
setTextSelectionEndObject :: MonadIO m => TextSelection -> Ptr Object -> m ()

-- | Get the value of the “<tt>end_offset</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textSelection #endOffset
--   </pre>
getTextSelectionEndOffset :: MonadIO m => TextSelection -> m Int32

-- | Set the value of the “<tt>end_offset</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textSelection [ #endOffset <a>:=</a> value ]
--   </pre>
setTextSelectionEndOffset :: MonadIO m => TextSelection -> Int32 -> m ()

-- | Get the value of the “<tt>start_is_active</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textSelection #startIsActive
--   </pre>
getTextSelectionStartIsActive :: MonadIO m => TextSelection -> m Bool

-- | Set the value of the “<tt>start_is_active</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textSelection [ #startIsActive <a>:=</a> value ]
--   </pre>
setTextSelectionStartIsActive :: MonadIO m => TextSelection -> Bool -> m ()

-- | Set the value of the “<tt>start_object</tt>” field to <a>Nothing</a>.
--   When <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>clear</a> #startObject
--   </pre>
clearTextSelectionStartObject :: MonadIO m => TextSelection -> m ()

-- | Get the value of the “<tt>start_object</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textSelection #startObject
--   </pre>
getTextSelectionStartObject :: MonadIO m => TextSelection -> m (Maybe Object)

-- | Set the value of the “<tt>start_object</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textSelection [ #startObject <a>:=</a> value ]
--   </pre>
setTextSelectionStartObject :: MonadIO m => TextSelection -> Ptr Object -> m ()

-- | Get the value of the “<tt>start_offset</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>get</a> textSelection #startOffset
--   </pre>
getTextSelectionStartOffset :: MonadIO m => TextSelection -> m Int32

-- | Set the value of the “<tt>start_offset</tt>” field. When
--   <a>overloading</a> is enabled, this is equivalent to
--   
--   <pre>
--   <a>set</a> textSelection [ #startOffset <a>:=</a> value ]
--   </pre>
setTextSelectionStartOffset :: MonadIO m => TextSelection -> Int32 -> m ()
instance Data.GI.Base.BasicTypes.BoxedPtr GI.Atk.Structs.TextSelection.TextSelection
instance Data.GI.Base.BasicTypes.CallocPtr GI.Atk.Structs.TextSelection.TextSelection
instance (tag GHC.Types.~ 'Data.GI.Base.Attributes.AttrSet) => Data.GI.Base.Constructible.Constructible GI.Atk.Structs.TextSelection.TextSelection tag
instance GHC.Classes.Eq GI.Atk.Structs.TextSelection.TextSelection
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Structs.TextSelection.TextSelection


module GI.Atk.Structs


-- | An AtkObject which purports to implement all ATK interfaces.
--   
--   An AtkNoOpObject is an AtkObject which purports to implement all ATK
--   interfaces. It is the type of AtkObject which is created if an
--   accessible object is requested for an object type for which no factory
--   type is specified.
module GI.Atk.Objects.NoOpObject

-- | Memory-managed wrapper type.
newtype NoOpObject
NoOpObject :: ManagedPtr NoOpObject -> NoOpObject

-- | Type class for types which can be safely cast to <a>NoOpObject</a>,
--   for instance with <a>toNoOpObject</a>.
class (GObject o, IsDescendantOf NoOpObject o) => IsNoOpObject o

-- | Cast to <a>NoOpObject</a>, for types for which this is known to be
--   safe. For general casts, use <a>castTo</a>.
toNoOpObject :: (MonadIO m, IsNoOpObject o) => o -> m NoOpObject

-- | Provides a default (non-functioning stub) <a>Object</a>. Application
--   maintainers should not use this method.
noOpObjectNew :: (HasCallStack, MonadIO m, IsObject a) => a -> m NoOpObject
instance GHC.Classes.Eq GI.Atk.Objects.NoOpObject.NoOpObject
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Objects.NoOpObject.NoOpObject
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Objects.NoOpObject.NoOpObject
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Objects.NoOpObject.NoOpObject)
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Objects.NoOpObject.NoOpObject o) => GI.Atk.Objects.NoOpObject.IsNoOpObject o
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Objects.NoOpObject.NoOpObject
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Objects.NoOpObject.NoOpObject


module GI.Atk.Objects


-- | The ATK interface which represents the toplevel container for document
--   content.
--   
--   The AtkDocument interface should be supported by any object whose
--   content is a representation or view of a document. The AtkDocument
--   interface should appear on the toplevel container for the document
--   content; however AtkDocument instances may be nested (i.e. an
--   AtkDocument may be a descendant of another AtkDocument) in those cases
--   where one document contains "embedded content" which can reasonably be
--   considered a document in its own right.
module GI.Atk.Interfaces.Document

-- | Memory-managed wrapper type.
newtype Document
Document :: ManagedPtr Document -> Document

-- | Type class for types which can be safely cast to <a>Document</a>, for
--   instance with <a>toDocument</a>.
class (GObject o, IsDescendantOf Document o) => IsDocument o

-- | Cast to <a>Document</a>, for types for which this is known to be safe.
--   For general casts, use <a>castTo</a>.
toDocument :: (MonadIO m, IsDocument o) => o -> m Document

-- | Retrieves the value of the given <i><tt>attributeName</tt></i> inside
--   <i><tt>document</tt></i>.
--   
--   <i>Since: 1.12</i>
documentGetAttributeValue :: (HasCallStack, MonadIO m, IsDocument a) => a -> Text -> m (Maybe Text)

-- | Gets an AtkAttributeSet which describes document-wide attributes as
--   name-value pairs.
--   
--   <i>Since: 1.12</i>
documentGetAttributes :: (HasCallStack, MonadIO m, IsDocument a) => a -> m [Ptr ()]

-- | Retrieves the current page number inside <i><tt>document</tt></i>.
--   
--   <i>Since: 2.12</i>
documentGetCurrentPageNumber :: (HasCallStack, MonadIO m, IsDocument a) => a -> m Int32

-- | Gets a <tt><i>gpointer</i></tt> that points to an instance of the DOM.
--   It is up to the caller to check atk_document_get_type to determine how
--   to cast this pointer.

-- | <i>Deprecated: Since 2.12. <i><tt>document</tt></i> is already a
--   representation ofthe document. Use it directly, or one of its
--   children, as aninstance of the DOM.</i>
documentGetDocument :: (HasCallStack, MonadIO m, IsDocument a) => a -> m (Ptr ())

-- | Gets a string indicating the document type.

-- | <i>Deprecated: Since 2.12. Please use <a>documentGetAttributes</a>
--   toask for the document type if it applies.</i>
documentGetDocumentType :: (HasCallStack, MonadIO m, IsDocument a) => a -> m Text

-- | Gets a UTF-8 string indicating the POSIX-style LC_MESSAGES locale of
--   the content of this document instance. Individual text substrings or
--   images within this document may have a different locale, see
--   atk_text_get_attributes and atk_image_get_image_locale.

-- | <i>Deprecated: (Since version 2.7.90)Please use
--   <a>objectGetObjectLocale</a> instead.</i>
documentGetLocale :: (HasCallStack, MonadIO m, IsDocument a) => a -> m Text

-- | Retrieves the total number of pages inside <i><tt>document</tt></i>.
--   
--   <i>Since: 2.12</i>
documentGetPageCount :: (HasCallStack, MonadIO m, IsDocument a) => a -> m Int32

-- | Returns an array of AtkTextSelections within this document.
--   
--   <i>Since: 2.52</i>
documentGetTextSelections :: (HasCallStack, MonadIO m, IsDocument a) => a -> m [TextSelection]

-- | Sets the value for the given <i><tt>attributeName</tt></i> inside
--   <i><tt>document</tt></i>.
--   
--   <i>Since: 1.12</i>
documentSetAttributeValue :: (HasCallStack, MonadIO m, IsDocument a) => a -> Text -> Text -> m Bool

-- | Makes 1 or more selections within this document denoted by the given
--   array of AtkTextSelections. Any existing physical selection (inside or
--   outside this document) is replaced by the new selections. All objects
--   within the given selection ranges must be descendants of this
--   document. Otherwise FALSE will be returned.
--   
--   <i>Since: 2.52</i>
documentSetTextSelections :: (HasCallStack, MonadIO m, IsDocument a) => a -> [TextSelection] -> m Bool

-- | The "document-attribute-changed" signal should be emitted when there
--   is a change to one of the document attributes returned by
--   atk_document_get_attributes.
--   
--   <i>Since: 2.52</i>
type DocumentDocumentAttributeChangedCallback = Text -> Text -> IO ()

-- | Connect a signal handler for the <a>documentAttributeChanged</a>
--   signal, to be run after the default handler. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>after</a> document #documentAttributeChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDocumentDocumentAttributeChanged :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentDocumentAttributeChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>documentAttributeChanged</a>
--   signal, to be run before the default handler. When <a>overloading</a>
--   is enabled, this is equivalent to
--   
--   <pre>
--   <a>on</a> document #documentAttributeChanged callback
--   </pre>
onDocumentDocumentAttributeChanged :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentDocumentAttributeChangedCallback) -> m SignalHandlerId

-- | The 'load-complete' signal is emitted when a pending load of a static
--   document has completed. This signal is to be expected by ATK clients
--   if and when AtkDocument implementors expose ATK_STATE_BUSY. If the
--   state of an AtkObject which implements AtkDocument does not include
--   ATK_STATE_BUSY, it should be safe for clients to assume that the
--   AtkDocument's static contents are fully loaded into the container.
--   (Dynamic document contents should be exposed via other signals.)
type DocumentLoadCompleteCallback = IO ()

-- | Connect a signal handler for the <a>loadComplete</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> document #loadComplete callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDocumentLoadComplete :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentLoadCompleteCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>loadComplete</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> document #loadComplete callback
--   </pre>
onDocumentLoadComplete :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentLoadCompleteCallback) -> m SignalHandlerId

-- | The 'load-stopped' signal is emitted when a pending load of document
--   contents is cancelled, paused, or otherwise interrupted by the user or
--   application logic. It should not however be emitted while waiting for
--   a resource (for instance while blocking on a file or network read)
--   unless a user-significant timeout has occurred.
type DocumentLoadStoppedCallback = IO ()

-- | Connect a signal handler for the <a>loadStopped</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> document #loadStopped callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDocumentLoadStopped :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentLoadStoppedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>loadStopped</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> document #loadStopped callback
--   </pre>
onDocumentLoadStopped :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentLoadStoppedCallback) -> m SignalHandlerId

-- | The 'page-changed' signal is emitted when the current page of a
--   document changes, e.g. pressing page up/down in a document viewer.
--   
--   <i>Since: 2.12</i>
type DocumentPageChangedCallback = Int32 -> IO ()

-- | Connect a signal handler for the <a>pageChanged</a> signal, to be run
--   after the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> document #pageChanged callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDocumentPageChanged :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentPageChangedCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>pageChanged</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> document #pageChanged callback
--   </pre>
onDocumentPageChanged :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentPageChangedCallback) -> m SignalHandlerId

-- | The 'reload' signal is emitted when the contents of a document is
--   refreshed from its source. Once 'reload' has been emitted, a matching
--   'load-complete' or 'load-stopped' signal should follow, which clients
--   may await before interrogating ATK for the latest document content.
type DocumentReloadCallback = IO ()

-- | Connect a signal handler for the <a>reload</a> signal, to be run after
--   the default handler. When <a>overloading</a> is enabled, this is
--   equivalent to
--   
--   <pre>
--   <a>after</a> document #reload callback
--   </pre>
--   
--   By default the object invoking the signal is not passed to the
--   callback. If you need to access it, you can use the implit
--   <tt>?self</tt> parameter. Note that this requires activating the
--   <tt>ImplicitParams</tt> GHC extension.
afterDocumentReload :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentReloadCallback) -> m SignalHandlerId

-- | Connect a signal handler for the <a>reload</a> signal, to be run
--   before the default handler. When <a>overloading</a> is enabled, this
--   is equivalent to
--   
--   <pre>
--   <a>on</a> document #reload callback
--   </pre>
onDocumentReload :: (IsDocument a, MonadIO m) => a -> ((?self :: a) => DocumentReloadCallback) -> m SignalHandlerId
instance GHC.Classes.Eq GI.Atk.Interfaces.Document.Document
instance Data.GI.Base.BasicTypes.GObject GI.Atk.Interfaces.Document.Document
instance Data.GI.Base.Overloading.HasParentTypes GI.Atk.Interfaces.Document.Document
instance (Data.GI.Base.BasicTypes.GObject o, Data.GI.Base.Overloading.IsDescendantOf GI.Atk.Interfaces.Document.Document o) => GI.Atk.Interfaces.Document.IsDocument o
instance Data.GI.Base.GValue.IsGValue (GHC.Internal.Maybe.Maybe GI.Atk.Interfaces.Document.Document)
instance Data.GI.Base.BasicTypes.ManagedPtrNewtype GI.Atk.Interfaces.Document.Document
instance Data.GI.Base.BasicTypes.TypedObject GI.Atk.Interfaces.Document.Document


module GI.Atk.Interfaces


module GI.Atk
