1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef __com_sun_star_ui_ActionTriggerContainer_idl__
24#define __com_sun_star_ui_ActionTriggerContainer_idl__
25
26#ifndef __com_sun_star_container_XIndexContainer_idl__
27#include <com/sun/star/container/XIndexContainer.idl>
28#endif
29#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__
30#include <com/sun/star/lang/XMultiServiceFactory.idl>
31#endif
32#ifndef __com_sun_star_container_XContainer_idl__
33#include <com/sun/star/container/XContainer.idl>
34#endif
35#ifndef __com_sun_star_container_XEnumerationAccess_idl__
36#include <com/sun/star/container/XEnumerationAccess.idl>
37#endif
38
39module com {  module sun {  module star {  module ui {
40
41
42/** describes a container of user actions.
43
44    <p>No assumption is made about any graphical representation:
45    You could have a menu or a toolbox working with the same container
46    describing their entries.</p>
47
48	<p>Possible elements of the <type>ActionTriggerContainer</type> are
49		<ul>
50            <li><type>ActionTrigger</type> -
51                        represents a simply clickable menu entry</li>
52            <li><type>ActionTriggerSeparator</type> -
53                        represents a separator between two entries<br/>
54                 This entry type is of interest for components rendering a an
55                 <type>ActionTriggerContainer</type>
56             </li>
57            <li><type>ActionTriggerContainer</type> -
58                represents a sub container</li>
59		</ul>
60	</p>
61*/
62published service ActionTriggerContainer
63{
64    /** provides access to the entries of a menu. The element type
65     is <type scope="com::sun::star::beans">XPropertySet</type>.
66     The property set contains attributes like CommandURL, HelpURL
67     as defined in the service <type scope="com::sun::star::ui">ActionTrigger</type>
68     and optional a <type scope="com::sun::star::ui">ActionTriggerContainer</type>.
69     */
70
71    interface ::com::sun::star::container::XIndexContainer;
72
73    /** creates elements to be inserted into the container.
74		<p>Usually, the <method>XMultiServiceFactory::getSupportedServiceNames</method>
75        gives you a <type>ActionTrigger</type> and
76        optionally <type>ActionTriggerContainer</type> and
77        <type>ActionTriggerSeparator</type>
78
79     .</p>
80     */
81    interface ::com::sun::star::lang::XMultiServiceFactory;
82
83    /** allows to enumerate the elements of the container
84	*/
85    [optional] interface ::com::sun::star::container::XEnumerationAccess;
86
87	/** allows foreign components to register themself as listener for the container
88		structure.
89	*/
90	[optional] interface ::com::sun::star::container::XContainer;
91};
92}; }; }; };
93#endif
94