xref: /AOO41X/main/slideshow/source/inc/mouseeventhandler.hxx (revision aaef562f9b4401da6d8a910634bb68eaaacb4ebd)
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 
24 #ifndef INCLUDED_SLIDESHOW_MOUSEEVENTHANDLER_HXX
25 #define INCLUDED_SLIDESHOW_MOUSEEVENTHANDLER_HXX
26 
27 #include <boost/shared_ptr.hpp>
28 
29 namespace com { namespace sun { namespace star { namespace awt
30 {
31     struct MouseEvent;
32 } } } }
33 
34 
35 /* Definition of MouseEventHandler interface */
36 
37 namespace slideshow
38 {
39     namespace internal
40     {
41 
42         /** Interface for handling mouse events.
43 
44             Classes implementing this interface can be added to an
45             EventMultiplexer object, and are called from there to
46             handle mouse events.
47          */
48         class MouseEventHandler
49         {
50         public:
~MouseEventHandler()51             virtual ~MouseEventHandler() {}
52 
53             /** Handle a mouse button pressed event.
54 
55                 @param e
56                 The mouse event that occurred. The x,y coordinates of
57                 the event are already transformed back to user
58                 coordinate space, taking the inverse transform of the
59                 view in which the event occurred.
60 
61                 @return true, if this handler has successfully
62                 processed the mouse event. When this method returns
63                 false, possibly other, less prioritized handlers can be
64                 called, too.
65              */
66             virtual bool handleMousePressed( const ::com::sun::star::awt::MouseEvent& e ) = 0;
67 
68             /** Handle a mouse button released event.
69 
70                 @param e
71                 The mouse event that occurred. The x,y coordinates of
72                 the event are already transformed back to user
73                 coordinate space, taking the inverse transform of the
74                 view in which the event occurred.
75 
76                 @return true, if this handler has successfully
77                 processed the pause event. When this method returns
78                 false, possibly other, less prioritized handlers are
79                 called, too.
80              */
81             virtual bool handleMouseReleased( const ::com::sun::star::awt::MouseEvent& e ) = 0;
82 
83             /** Handle a mouse entered the view event.
84 
85                 @param e
86                 The mouse event that occurred. The x,y coordinates of
87                 the event are already transformed back to user
88                 coordinate space, taking the inverse transform of the
89                 view in which the event occurred.
90 
91                 @return true, if this handler has successfully
92                 processed the pause event. When this method returns
93                 false, possibly other, less prioritized handlers are
94                 called, too.
95              */
96             virtual bool handleMouseEntered( const ::com::sun::star::awt::MouseEvent& e ) = 0;
97 
98             /** Handle a mouse exited the view event.
99 
100                 @param e
101                 The mouse event that occurred. The x,y coordinates of
102                 the event are already transformed back to user
103                 coordinate space, taking the inverse transform of the
104                 view in which the event occurred.
105 
106                 @return true, if this handler has successfully
107                 processed the pause event. When this method returns
108                 false, possibly other, less prioritized handlers are
109                 called, too.
110              */
111             virtual bool handleMouseExited( const ::com::sun::star::awt::MouseEvent& e ) = 0;
112 
113             /** Handle a mouse was moved with a pressed button event.
114 
115                 @param e
116                 The mouse event that occurred. The x,y coordinates of
117                 the event are already transformed back to user
118                 coordinate space, taking the inverse transform of the
119                 view in which the event occurred.
120 
121                 @return true, if this handler has successfully
122                 processed the pause event. When this method returns
123                 false, possibly other, less prioritized handlers are
124                 called, too.
125              */
126             virtual bool handleMouseDragged( const ::com::sun::star::awt::MouseEvent& e ) = 0;
127 
128             /** Handle a mouse was moved event.
129 
130                 @param e
131                 The mouse event that occurred. The x,y coordinates of
132                 the event are already transformed back to user
133                 coordinate space, taking the inverse transform of the
134                 view in which the event occurred.
135 
136                 @return true, if this handler has successfully
137                 processed the pause event. When this method returns
138                 false, possibly other, less prioritized handlers are
139                 called, too.
140              */
141             virtual bool handleMouseMoved( const ::com::sun::star::awt::MouseEvent& e ) = 0;
142         };
143 
144         typedef ::boost::shared_ptr< MouseEventHandler > MouseEventHandlerSharedPtr;
145 
146     }
147 }
148 
149 #endif /* INCLUDED_SLIDESHOW_MOUSEEVENTHANDLER_HXX */
150