/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#ifndef __com_sun_star_accessibility_AccessibleRole_idl__
#define __com_sun_star_accessibility_AccessibleRole_idl__

module com { module sun { module star { module accessibility {

/** Collection of roles.

    <p>This collection of constants defines the set of possible roles of
    classes implementing the XAccessible interface according to
    the Java class javax.accessibility.AccessibleRole.  The role of an
    object describes its generic function like "button", "menu", or "text".
    You can obtain an object's role by calling the
    getAccessibleRole() method of the
    XAccessibleContext interface.</p>

    <p>We are using constants instead of a more typesafe enum.  The reason
    for this is that IDL enums may not be extended.  Therefore, in order to
    include future extensions to the set of roles we have to use constants
    here.</p>

    <p>For some roles there exist two labels with the same value.  Please
    use the one with the underscores.  The other ones are somewhat
    deprecated and will be removed in the future. </p>

    @see XAccessibleContext

    @since OOo 1.1.2
*/
constants AccessibleRole
{

    /** Unknown role.

        <p>The object contains some Accessible information, but its role is
        not known.</p>
    */
    const short UNKNOWN = 0;

    /** Object is used to alert the user about something.
    */
    const short ALERT = 1;

    /** The header for a column of data.
    */
    const short COLUMN_HEADER = 2;

    /** Object that can be drawn into and is used to trap events.

        <p>See also FRAME, GLASS_PANE, and
        LAYERED_PANE.</p>
    */
    const short CANVAS = 3;

    /** Check box role.

        <p>A choice that can be checked or unchecked and provides a separate
        indicator for the current state.</p>

        <p>See also PUSH_BUTTON, TOGGLE_BUTTON,
        and RADIO_BUTTON.</p>
    */
    const short CHECK_BOX = 4;

    /** This role is used for check buttons that are menu items.

        @see CHECK_BOX, MENU_ITEM
    */
    const short CHECK_MENU_ITEM = 5;

    /** A specialized dialog that lets the user choose a color.
    */
    const short COLOR_CHOOSER = 6;

    /** Combo box role.

        <p>A list of choices the user can select from.  Also optionally
        allows the user to enter a choice of their own.</p>
    */
    const short COMBO_BOX = 7;

    /** Date editor role.

        <p>A DATE_EDITOR is a component that allows users to
        edit java.util.Date and java.util.Time objects.</p>
    */
    const short DATE_EDITOR = 8;

    /** An iconified internal frame in a DESKTOP_PANE.

        <p>See also DESKTOP_PANE and
        INTERNAL_FRAME.</p>
    */
    const short DESKTOP_ICON = 9;

    /** Desktop pane role.

        <p>A pane that supports internal frames and iconified versions of
        those internal frames.</p>
    */
    const short DESKTOP_PANE = 10;

    /** Directory pane role.

        <p>A pane that allows the user to navigate through and select the
        contents of a directory. May be used by a file chooser.</p>

        <p>See also FILE_CHOOSER.</p>
    */
    const short DIRECTORY_PANE = 11;

    /** Dialog box role.

        <p>A top level window with title bar and a border. A dialog is
        similar to a frame, but it has fewer properties and is often used as
        a secondary window for an application.</p>

        <p>See also FRAME and WINDOW.</p>
    */
    const short DIALOG = 12;

    /** View of a document.

        <p>The view of an actual document.  Its content depends on the
        document type.</p>
    */
    const short DOCUMENT = 13;

    /** Embedded (OLE) object.
    */
    const short EMBEDDED_OBJECT = 14;

    /** Text that is used as an endnote (footnote at the end of a chapter or
        section.
    */
    const short END_NOTE = 15;

    /** File chooser role.

        <p>A specialized dialog that displays the files in the directory
        and lets the user select a file, browse a different directory, or
        specify a filename. May use the directory pane to show the contents
        of a directory.</p>

        <p>See also DIRECTORY_PANE.</p>
    */
    const short FILE_CHOOSER = 16;

    /** Filler role.

        <p>An object that fills up space in a user interface. It is often
        used in interfaces to tweak the spacing between components, but
        serves no other purpose.</p>
    */
    const short FILLER = 17;

    /** Font chooser role.

        <p>A FONT_CHOOSER is a component that lets the user pick various
        attributes for fonts.</p>
    */
    const short FONT_CHOOSER = 18;

    /** Footer of a document page.
        @see HEADER
    */
    const short FOOTER = 19;

    /** Text that is used as a footnote.
    */
    const short FOOTNOTE = 20;

    /** Frame role.

        <p>A top level window with a title bar, border, menu bar, etc.  It
        is often used as the primary window for an application.</p>

        <p>See also DIALOG, CANVAS, and
        WINDOW.</p>
    */
    const short FRAME = 21;

    /** Glass pane role.

        <p>A pane that is guaranteed to be painted on top of all panes
        beneath it.</p>

        <p>See also ROOT_PANE and CANVAS.</p>
    */
    const short GLASS_PANE = 22;

    /** Graphical object.
    */
    const short GRAPHIC = 23;

    /** Group box role.

        <p>A GROUP_BOX is a simple container that contains a
        border around it and contains components inside it.</p>
    */
    const short GROUP_BOX = 24;

    /** Header of a document page.
        @see FOOTER
    */
    const short HEADER = 25;

    /** Chapter or section heading.
    */
    const short HEADING = 26;

    /** A hypertext anchor.
    */
    const short HYPER_LINK = 27;

    /** A small fixed size picture, typically used to decorate components.
    */
    const short ICON = 28;

    /** Internal frame role.

        <p>A frame-like object that is clipped by a desktop pane.  The
        desktop pane, internal frame, and desktop icon objects are often
        used to create multiple document interfaces within an
        application.</p>

        <p>See also DESKTOP_ICON, DESKTOP_PANE,
        and FRAME.</p>
    */
    const short INTERNAL_FRAME = 29;

    /** An object used to present an icon or short string in an interface.
    */
    const short LABEL = 30;

    /** layered pane role.

        <p>A specialized pane that allows its children to be drawn in
        layers, providing a form of stacking order. This is usually the pane
        that holds the menu bar as well as the pane that contains most of
        the visual components in a window.</p>

        <p>See also GLASS_PANE and
        ROOT_PANE.</p>
    */
    const short LAYERED_PANE = 31;

    /** List role.

        <p>An object that presents a list of objects to the user and allows
        the user to select one or more of them. A list is usually contained
        within a scroll pane.</p>

        <p>See also SCROLL_PANE and
        LIST_ITEM.</p>
    */
    const short LIST = 32;

    /** List item role.

        <p>An object that presents an element in a list. A list is usually
        contained within a scroll pane.</p>

        <p>See also SCROLL_PANE and LIST.</p>
    */
    const short LIST_ITEM = 33;

    /** Menu role.

        <p>An object usually found inside a menu bar that contains a list of
        actions the user can choose from. A menu can have any object as its
        children, but most often they are menu items, other menus, or
        rudimentary objects such as radio buttons, check boxes, or
        separators. For example, an application may have an "Edit" menu that
        contains menu items for "Cut" and "Paste."</p>

        <p>See also MENU_BAR, MENU_ITEM,
        SEPARATOR, RADIO_BUTTON,
        CHECK_BOX, and POPUP_MENU.</p>
    */
    const short MENU = 34;

    /** Menu bar role.

        <p>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. For example, a menu bar might contain menus for "File,"
        "Edit," and "Help."</p>

        <p>See also MENU, POPUP_MENU, and
        LAYERED_PANE.</p>
    */
    const short MENU_BAR = 35;

    /** Menu item role.

        <p>An object usually contained in a menu that presents an action the
        user can choose. For example, the "Cut" menu item in an "Edit" menu
        would be an action the user can select to cut the selected area of
        text in a document.</p>

        <p>See also MENUBAR, SEPARATOR, and
        POPUP_MENU.</p>
    */
    const short MENU_ITEM = 36;

    /** A specialized pane whose primary use is inside a DIALOG.

        <p>See also DIALOG.</p>
    */
    const short OPTION_PANE = 37;

    /** Page tab role.

        <p>An object that is a child of a page tab list. Its sole child is
        the panel that is to be presented to the user when the user selects
        the page tab from the list of tabs in the page tab list.</p>

        <p>See also PAGE_TAB_LIST.</p>
    */
    const short PAGE_TAB = 38;

    /** Page tab list role.

        <p>An object that presents a series of panels (or page tabs), one at
        a time, through some mechanism provided by the object. The most
        common mechanism is a list of tabs at the top of the panel. The
        children of a page tab list are all page tabs.</p>

        <p>See also PAGE_TAB.</p>
    */
    const short PAGE_TAB_LIST = 39;

    /** A generic container that is often used to group objects.
    */
    const short PANEL = 40;

    /** Paragraph of text.
    */
    const short PARAGRAPH = 41;

    /** Password text role.

        <p>A text object used for passwords, or other places where the text
        contents is not shown visibly to the user.</p>
    */
    const short PASSWORD_TEXT = 42;

    /** Pop-up menu role.

        <p>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.</p>

        <p>See also MENU and MENU_ITEM.</p>
    */
    const short POPUP_MENU = 43;

    /** Push button role.

        <p>An object the user can manipulate to tell the application to do
        something.</p>

        <p>See also CHECK_BOX, TOGGLE_BUTTON,
        RADIO_BUTTON, BUTTON_MENU and
        BUTTON_DROPDOWN.</p>
    */
    const short PUSH_BUTTON = 44;

    /** An object used to indicate how much of a task has been completed.
    */
    const short PROGRESS_BAR = 45;

    /** Radio button role.

        <p>A specialized check box that will cause other radio buttons in
        the same group to become unchecked when this one is checked.</p>

        <p>See also PUSH_BUTTON, TOGGLE_BUTTON,
        and CHECK_BOX.</p>
    */
    const short RADIO_BUTTON = 46;

    /** This role is used for radio buttons that are menu items.

        @see RADIO_BUTTON, MENU_ITEM
    */
    const short RADIO_MENU_ITEM = 47;

    /** The header for a row of data.
    */
    const short ROW_HEADER = 48;

    /** Root pane role.

        <p>A specialized pane that has a glass pane and a layered pane as
        its children.</p>

        <p>See also GLASS_PANE and LAYERED_PANE.</p>
    */
    const short ROOT_PANE = 49;

    /** Scroll bar role.

        <p>An object usually used to allow a user to incrementally view a
        large amount of data. Usually used only by a scroll pane.</p>

        <p>See also SCROLL_PANE.</p>
    */
    const short SCROLL_BAR = 50;

    /** Scroll pane role.

        <p>An object that allows a user to incrementally view a large amount
        of information. Its children can include scroll bars and a
        viewport.</p>

        <p>See also SCROLL_BAR and VIEW_PORT.</p>
    */
    const short SCROLL_PANE = 51;

    /** Object with graphical representation used to represent content on
        draw pages.

        @see com::sun::star::drawing::AccessibleShape
    */
    const short SHAPE = 52;

    /** Separator role.

        <p>An object usually contained in a menu to provide a visual and
        logical separation of the contents in a menu. For example, the
        "File" menu of an application might contain menu items for "Open,"
        "Close," and "Exit," and will place a separator between "Close" and
        "Exit" menu items.</p>

        <p>See also MENU and MENU_ITEM.</p>
    */
    const short SEPARATOR = 53;

    /** Slider role.

        <p>An object that allows the user to select from a bounded
        range. For example, a slider might be used to select a number
        between 0 and 100.</p>
    */
    const short SLIDER = 54;

    /** Spin box role.

        <p>A SPIN_BOX is a simple spinner component and its
        main use is for simple numbers.</p>
    */
    const short SPIN_BOX = 55;

    /** Split pane role.

        <p>A specialized panel that presents two other panels at the same
        time. Between the two panels is a divider the user can manipulate to
        make one panel larger and the other panel smaller.</p>
    */
    const short SPLIT_PANE = 56;

    /** Status bar role.

        <p>A STATUS_BAR is an simple component that can
        contain multiple labels of status information to the user.</p>
    */
    const short STATUS_BAR = 57;

    /** Table component.

        <p>An object used to present information in terms of rows and
        columns. An example might include a spreadsheet application.</p>
    */
    const short TABLE = 58;

    /** Single cell in a table.
    */
    const short TABLE_CELL = 59;

    /** Text role.

        <p>An object that presents text to the user. The text is usually
        editable by the user as opposed to a label.</p>

        <p>See also LABEL.</p>
    */
    const short TEXT = 60;

    /** Collection of objects that constitute a logical text entity.
    */
    const short TEXT_FRAME = 61;

    /** Toggle button role.

        <p>A specialized push button that can be checked or unchecked, but
        does not provide a separate indicator for the current state.</p>

        <p>See also PUSH_BUTTON, CHECK_BOX and
        RADIO_BUTTON.</p>
    */
    const short TOGGLE_BUTTON = 62;

    /** Tool bar role.

        <p>A bar or palette usually composed of push buttons or toggle
        buttons. It is often used to provide the most frequently used
        functions for an application.</p>
    */
    const short TOOL_BAR = 63;

    /** Tool tip role.

        <p>An object that provides information about another object. The
        accessible Description property of the tool tip is often displayed to
        the user in a small "help bubble" when the user causes the mouse to
        hover over the object associated with the tool tip.</p>
    */
    const short TOOL_TIP = 64;

    /** Tree role.

        <p>An object used to present hierarchical information to the
        user. The individual nodes in the tree can be collapsed and expanded
        to provide selective disclosure of the tree's contents.</p>
    */
    const short TREE = 65;

    /** Viewport role.

        <p>An object usually used in a scroll pane. It represents the
        portion of the entire data that the user can see. As the user
        manipulates the scroll bars, the contents of the viewport can
        change.</p>

        <p>See also SCROLL_PANE.</p>
    */
    const short VIEW_PORT = 66;

    /** A top level window with no title or border.

        <p>See also FRAME and DIALOG.</p>
    */
    const short WINDOW = 67;

    /** Button dropdown role

        <p>The object represents a button that drops down a list of items.</p>

        <p>See also PUSH_BUTTON and BUTTON_MENU.</p>

        @since OOo 3.0
    */
    const short BUTTON_DROPDOWN = 68;

    /** Button menu role

        <p>The object represents a button that drops down a menu.</p>

        <p>See also PUSH_BUTTON and BUTTON_DROPDOWN.</p>

        @since OOo 3.0
    */
    const short BUTTON_MENU = 69;

    /** Caption role

        <p>The object contains descriptive information, usually textual, about
        another user interface element such as a table, chart, or image.</p>.

        @since OOo 3.0
    */
    const short CAPTION = 70;

    /** Chart role

        <p>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.</p>

        @since OOo 3.0
    */
    const short CHART = 71;

    /** Edit bar role

        <p>A role indicating the object acts as a formula for calculating a value.</p>

         @since OOo 3.0
    */
    const short EDIT_BAR = 72;

    /** Form role

        <p>The object is a container for form controls, for instance as part of a web form
        or user-input form within a document.</p>

        @since OOo 3.0
    */
    const short FORM = 73;

    /** Image map role

    <p>Usually a graphic with multiple hotspots, where each hotspot can be activated
        resulting in the loading of another document or section of a document.</p>

        @since OOo 3.0
    */
    const short IMAGE_MAP = 74;

    /** Note role

        <p>An embedded note which is not visible until activated.</p>

        @since OOo 3.0
    */
    const short NOTE = 75;

    /** Page role

        <p>An object representing a page of document content. It is used in documents
        which are accessed by the user on a page by page basis.</p>

        @since OOo 3.0
    */
    const short PAGE = 76;

    /** Ruler role

        <p>An object which describes margins and tab stops, etc. for text objects which it controls.</p>

        @since OOo 3.0
    */
    const short RULER = 77;

    /** Section role

        <p>The object is a containing instance of document content which constitutes a particular
        "logical" section of the document.</p>

        @since OOo 3.0
    */
    const short SECTION = 78;

    /** Tree item role

        <p>An object that presents an element in a tree</p>

        </p>See also TREE and TREE_TABLE.</p>

        @since OOo 3.0
    */
    const short TREE_ITEM = 79;

    /** Tree table role

        <p>An object which represents both hierarchical and tabular information.</p>

        @since OOo 3.0
    */
    const short TREE_TABLE = 80;

    /** Comment role

        <p>An object which represents a comment.</p>

        <p>A comment is anchored at a certain content position in the document and
        annotates this document content position or a certain text range of the document content.
        In the OpenDocument file format a comment is known as an annotation.</p>

        <p>See also COMMENT_END.</p>

        @since OOo 3.2
    */
    const short COMMENT = 81;

    /** Comment end role

        <p>An invisible object which represents the end position of a text range which
        is annotated by a comment - see COMMENT.</p>

        <p>This object and the corresponding object representing the comment shall be
        in relation of type MEMBER_OF.</p>

        @since OOo 3.2
    */
    const short COMMENT_END = 82;

    /** View of an presentation document.

        <p>It's an specific variation of DOCUMENT for presentations.</p>

        @since LibreOffice 4.3
    */
    const short DOCUMENT_PRESENTATION = 83;

    /** View of an spreadsheet document.

        <p>It's an specific variation of DOCUMENT for spreadsheets.</p>

        @since LibreOffice 4.3
    */
    const short DOCUMENT_SPREADSHEET = 84;

    /** View of an text document.

        <p>It's an specific variation of DOCUMENT for text.</p>

        @since LibreOffice 4.3
    */
    const short DOCUMENT_TEXT = 85;

};

}; }; }; };

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
