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_frame_StatusbarController_idl__
24#define __com_sun_star_frame_StatusbarController_idl__
25
26#ifndef __com_sun_star_lang_XInitialization_idl__
27#include <com/sun/star/lang/XInitialization.idl>
28#endif
29
30#ifndef __com_sun_star_util_XUpdatable_idl__
31#include <com/sun/star/util/XUpdatable.idl>
32#endif
33
34#ifndef __com_sun_star_frame_XStatusListener_idl__
35#include <com/sun/star/frame/XStatusListener.idl>
36#endif
37
38#ifndef __com_sun_star_frame_XStatusbarController_idl__
39#include <com/sun/star/frame/XStatusbarController.idl>
40#endif
41
42//=============================================================================
43
44 module com {  module sun {  module star {  module frame {
45
46//=============================================================================
47/** is an abstract service for a component which offers a more complex user
48    interface to users within a status bar.
49
50    <p>
51    A generic status bar function is represented as a text field which
52    provides status information to the user. A status bar controller can be
53    added to a status bar and provides information or functions with a more
54    sophisticated user interface.<br/>
55    A typical example for a status bar controller is the zoom level chooser
56    within the statusbar. It provides an option to change the zoom level of
57    an application.
58    <p>
59
60    @see com::sun::star::frame::XDispatchProvider
61    @see com::sun::star::frame::XStatusbarController
62
63    @since OOo 2.0
64 */
65
66service StatusbarController
67{
68    //-------------------------------------------------------------------------
69    /** with this interface a component can receive events if a feature has
70        changed.
71
72        <p>
73        The status bar controller implementation should register itself as a
74        listener when its <member scope="com::sun::star::util">XUpdatable</member>
75        interface has been called.
76        </p>
77     */
78    interface com::sun::star::frame::XStatusListener;
79
80    /** used to initialize a component with required arguments.
81
82        <b>A status bar controller needs at least three additional arguments
83        provided as <type scope="com::sun::star::beans">PropertyValue</type>:
84        <ul>
85            <li><b>Frame</b><br>a
86                   <type scope="com::sun::star::frame">XFrame</type> instance
87                   to which the status bar controller belongs.</li>
88            <li><b>CommandURL</b><br>a string which specifies the command
89                   associated with the statusbar controller. The command is
90                   used to identify the status bar controller
91                   implementation.</li>
92            <li><b>ServiceManager</b><br>a <type scope="com::sun::star::lang">
93                   XMultiServiceFactory</type> instance which can be used to
94                   create additional UNO services.</li>
95            <li><b>Parent</b><br>a <type scope="com::sun::star::awt">Window</type>
96                   instance which represents the parent window (status bar
97                   window).</li>
98            <li><b>Identifier</b><br>an integer value which is the unique id
99                   used by the status bar implementation to identify a status
100                   bar entry. This value is currently only used by internal
101                   OpenOffice.org status bar controller implementations.</li>
102        </ul>
103    */
104    interface com::sun::star::lang::XInitialization;
105
106    /** used to notify an implementation that it needs to add its listener or
107        remove and add them again.
108
109        <p>
110        A status bar controller instance is ready for use after this call has
111        been made the first time. The status bar implementation guarentees that
112        the controller's item window has been added to the status bar and its
113        reference is held by it.
114        </p>
115    */
116    interface com::sun::star::util::XUpdatable;
117
118    //-------------------------------------------------------------------------
119    /** used to notify changed features and requests for additional user
120        interface items.
121
122        <p>
123        Mostly used by a status bar implementation to forward information to
124        and request services from a status bar controller component. This
125        interface must be useable after
126        <member scope="com::sun::star::lang">XInitialitation::initialize</member>
127        has been called.  The behavior of the interface is undefined if the
128        controller component hasn't been initialized.
129        </p>
130     */
131    interface com::sun::star::frame::XStatusbarController;
132};
133
134//=============================================================================
135
136}; }; }; };
137
138#endif
139