/* -*- 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_ui_ItemStyle_idl__
#define __com_sun_star_ui_ItemStyle_idl__


module com {  module sun {  module star {  module ui {

/**
    specifies styles which influence the appearance and the behavior of an
    user interface item.

    <p>
    These styles are only valid if the item describes a toolbar or statusbar item.
    The style values can be combined with the OR operator. Styles which are not valid
    for an item will be ignored by the implementation.<br/>
    There are two styles where
    only one value is valid:
    Alignment:
    <ul>
        <li>ALIGN_LEFT</li>
        <li>ALIGN_CENTER</li>
        <li>ALIGN_RIGHT</li>
    </ul>
    Drawing:
    <ul>
        <li>DRAW_OUT3D</li>
        <li>DRAW_IN3D</li>
        <li>DRAW_FLAT</li>
    </ul>
    </p>

    @since OOo 2.0
*/
constants ItemStyle
{
    /** specifies how the output of the item is aligned in the bounding box of
        the user interface element.
        <p>This style is only valid for an item which describes a statusbar item.
        Draw item with a left aligned output.</p>
    */
    const short ALIGN_LEFT   = 1;

    /** specifies how the output of the item is aligned in the bounding box of
        the user interface element.
        <p>This style is only valid for an item which describes a statusbar item.
        Draw item with a centered aligned output.</p>
    */
    const short ALIGN_CENTER = 2;

    /** specifies how the output of the item is aligned in the bounding box of
        the user interface element.
        <p>This style is only valid for an item which describes a statusbar item.
        Draw item with a right aligned output.</p>
    */
    const short ALIGN_RIGHT  = 3;

    /** specifies how the implementation should draw the item.
        <p>This style is only valid for an item which describes a statusbar item.
        Draw item with an embossed 3D effect.</p>
    */
    const short DRAW_OUT3D   = 4;

    /** specifies how the implementation should draw the item.
        <p>This style is only valid for an item which describes a statusbar item.
        Draw item with an impressed 3D effect.</p>
    */
    const short DRAW_IN3D    = 8;

    /** specifies how the implementation should draw the item.
        <p>This style is only valid for an item which describes a statusbar item.
        Draw item without an 3D effect.</p>
    */
    const short DRAW_FLAT    = 12;

    /** specifies whether or not an item is displayed using an external function.
        <p>This style is only valid if the item describes a statusbar item.</p>
    */
    const short OWNER_DRAW    = 16;

    /** specifies whether or not the size of the item is set automatically by
        the parent user interface element.
        <p>This style is only valid if the item describes a toolbar or statusbar item.</p>
    */
    const short AUTO_SIZE     = 32;

    /**  determines whether the item unchecks neighbor entries which have also this style set.
         <p>This style is only valid if the item describes a toolbar item.</p>
    */
    const short RADIO_CHECK   = 64;

    /** specifies if an icon is placed on left side of the text, like an entry in a taskbar.
        <p>This style is only valid if the item describes a toolbar item and visible if
        style of the toolbar is set to symboltext.</p>

        <p>This style can also be used for custom toolbars and menus, in a
        custom toolbar an item's Style setting can used to override the
        toolbar container setting, the style can be bitwise OR-ed with
        ::com::sun::star::ui::ItemStyle::TEXT to define text,
        text+icon or icon only is to be displayed. Similarly for menu items,
        an items Style can override the application setting to display either
        text or icon (note: for menu an icon only setting interpreted as
        icon+text)</p>
    */
    const short ICON          = 128;

    /** specifies that the item supports a dropdown menu or toolbar for additional functions.
        <p>This style is only valid if the item describes a toolbar item.</p>
    */
    const short DROP_DOWN     = 256;

    /** indicates that the item continues to execute the command while you click and hold
        the mouse button.
        <p>This style is only valid if the item describes a toolbar item.</p>
    */
    const short REPEAT        = 512;

    /** indicates that the item only supports a dropdown menu or toolbar for
        additional functions. There is no function on the button itself.
        <p>This style is only valid if the item describes a toolbar item.</p>
    */
    const short DROPDOWN_ONLY = 1024;
    /** indicates if icon, text or text+icon is displayed for the item.

        <p>This style can be used for custom toolbars and menus, in a custom
        toolbar an item's Style setting can used to override the toolbar
        container setting, the style can be bitwise OR-ed with
        com::sun::star::ui::ItemStyle::ICON to define text,
        text+icon or icon only is to be displayed. Similarly for menu items,
        an items Style can override the application setting to display either
        text or icon (note: for menu an icon only setting interpreted as
        icon+text)</p>
    */
    const short TEXT = 2048;

    /** marks always visible element which can not be removed when statusbar
        width is not sufficient.

        @since LibreOffice 6.1
    */
    const short MANDATORY = 4096;
};

}; }; }; };

#endif

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