/**************************************************************
 * 
 * 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
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



#ifndef __com_sun_star_ui_ItemDescriptor_idl__
#define __com_sun_star_ui_ItemDescriptor_idl__

#ifndef __com_sun_star_container_XIndexAccess_idl__
#include <com/sun/star/container/XIndexAccess.idl>
#endif

//=============================================================================

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

/**
    describes a user interface item that is part of a user interface
    element.
    <p>Common examples for such elements are:
        <ul>
            <li>menus</li>
            <li>tool bars</li>
            <li>status bars</li>
        </ul>
       No assumption is made about any graphical representation:
       You could have a menu or a toolbox working with the same item descriptor.
    </p>
    
    @since OOo 2.0
*/
service ItemDescriptor
{
    /** specifies which type this item descriptor belongs to.<p>See constant definition
        <type>ItemType</type>.</p>
    */
    [property] short Type;
    
    /** the text of the user interface item. 
    */
    [property] string Label;
    
    /** contains the command URL which specifies which action should be accomplished.
     */
    [property] string CommandURL;
    
    /** contains the a URL that points to a help text.
     */
    [property] string HelpURL;
    
    /** different styles which influence the appearance of the item and its behavior.
        <p>This property is only valid if the item describes a toolbar or statusbar 
        item. See <type>ItemStyle</type> for more information about possible styles.</p>
    */
    [optional, property] short Style;
    
    /** specifies the pixel distance by which the text of the item is shifted on the x-axis. 
        <p>This property is only valid if the item describes a statusbar item.</p>
    */
    [optional, property] short Offset;
    
    /** specifies an optional sub container.
        <p>This property is valid for menus only. It can be used to define sub menus.</p>
    */
    [optional, property] com::sun::star::container::XIndexAccess ItemDescriptorContainer;
    
    /** specifies if this item is visible or not. 
        <p>This property is only valid if the item describes a toolbar or statusbar item.</p>
    */
    [optional, property] boolean IsVisible;

    /** specifies a pixel width for this item inside the user interface element. 
        <p>This property is only valid if the item describes a toolbar or statusbar item.</p>
    */
    [optional, property] short Width;
};

}; }; }; };

#endif