summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/frame/XStatusbarController.idl
blob: 5ded8dc55c1a4de97743ab7e228c3c4d0911dac1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/
#ifndef __com_sun_star_frame_XStatusbarController_idl__
#define __com_sun_star_frame_XStatusbarController_idl__

#ifndef __com_sun_star_awt_Point_idl__
#include <com/sun/star/awt/Point.idl>
#endif

#ifndef __com_sun_star_awt_MouseEvent_idl__
#include <com/sun/star/awt/MouseEvent.idl>
#endif

#ifndef __com_sun_star_awt_Rectangle_idl__
#include <com/sun/star/awt/Rectangle.idl>
#endif

#ifndef __com_sun_star_awt_XGraphics_idl__
#include <com/sun/star/awt/XGraphics.idl>
#endif

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

module com {  module sun {  module star {  module frame {

//=============================================================================
/** is an abstract service for a component which offers a more complex user interface
    to users within a status bar.

    <p>
    A generic status bar field is represented as a simple text field. A status
    bar controller can be added to a Statusbar and provide information or
    functions with a more sophisticated user interface.<br/>
    A typical example for status bar controller is a zoom chooser. It shows
    the current zoom and provides general zoom levels on a popup menu
    that can be activated by a mouse action for context menus.
    <p>

    @see com::sun::star::frame::XDispatchProvider

    @since OOo 2.0
 */
interface XStatusbarController : ::com::sun::star::uno::XInterface
{
    //=============================================================================
    /** is called by a status bar if the mouse position is within the controller
        and a mouse button has been pressed. If the controller has captured the
        mouse input this function is also called when the mouse position is not
        within the controller.

        @param aMouseEvent
            current information about the mouse pointer.

        @return
            return <TRUE/> if the event should not be processed and <FALSE/>
            if the event should be processed by the status bar.
    */
    boolean mouseButtonDown( [in] ::com::sun::star::awt::MouseEvent aMouseEvent );

    //=============================================================================
    /** is called by a status bar if the mouse position is within the controller
        and a mouse has been moved. If the controller has captured the
        mouse input this function is also called when the mouse position is not
        within the controller.

        @param aMouseEvent
            current information about the mouse pointer.

        @return
            return <TRUE/> if the event should not be processed and <FALSE/>
            if the event should be processed by the status bar.
    */
    boolean mouseMove( [in] ::com::sun::star::awt::MouseEvent aMouseEvent );

    //=============================================================================
    /** is called by a status bar if the mouse position is within the controller
        and a mouse button has been released. If the controller has captured the
        mouse input this function is also called when the mouse position is not
        within the controller.

        @param aMouseEvent
            current information about the mouse pointer.

        @return
            return <TRUE/> if the event should not be processed and <FALSE/>
            if the event should be processed by the status bar.
    */
    boolean mouseButtonUp( [in] ::com::sun::star::awt::MouseEvent aMouseEvent );

    //=============================================================================
    /** is called by a status bar if a command event is available for a controller.

        @param aPos
            the current mouse position in pixel.

        @param nCommand
            describes which command has been invoked.

        @param bMouseEvent
            <TRUE/> if the command is based on a mouse event, otherwise <FALSE/>.

        @param aData
            for future use only.
    */
    void command( [in] ::com::sun::star::awt::Point aPos,
                  [in] long nCommand,
                  [in] boolean bMouseEvent,
                  [in] any aData );

    //=============================================================================
    /** is called by a status bar if the controller has to update the visual
        representation.

        @param xGraphics
            a reference to a <type scope="com::sun::star::awt">XGraphics</type>
            which has to be used to update the visual representation.

        @param nCommand
            a <type scope="com::sun::star::awt">Rectangle</type> which
            determine the output rectangle for all drawing operations

        @param nItemID
            the unique ID of the control within the status bar.

        @param nStyle
            reserved for future use.
    */
    void paint( [in] ::com::sun::star::awt::XGraphics xGraphics,
                [in] ::com::sun::star::awt::Rectangle rOutputRectangle,
                [in] long nItemId,
                [in] long nStyle );

    //=============================================================================
    /** is called by a status bar if the user clicked with mouse into the
        field of the corresponding control.
    */
    void click();

    //=============================================================================
    /** is called by a status bar if the user double-clicked with mouse
        into the field of the corresponding control.
    */
    void doubleClick();
};

}; }; }; };

#endif