1 *b1cdbd2cSJim Jagielski /**************************************************************
2 *b1cdbd2cSJim Jagielski  *
3 *b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4 *b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5 *b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6 *b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7 *b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8 *b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9 *b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10 *b1cdbd2cSJim Jagielski  *
11 *b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12 *b1cdbd2cSJim Jagielski  *
13 *b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14 *b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15 *b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 *b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17 *b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18 *b1cdbd2cSJim Jagielski  * under the License.
19 *b1cdbd2cSJim Jagielski  *
20 *b1cdbd2cSJim Jagielski  *************************************************************/
21 *b1cdbd2cSJim Jagielski 
22 *b1cdbd2cSJim Jagielski 
23 *b1cdbd2cSJim Jagielski 
24 *b1cdbd2cSJim Jagielski #ifndef INCLUDED_SLIDESHOW_USERPAINTEVENTHANDLER_HXX
25 *b1cdbd2cSJim Jagielski #define INCLUDED_SLIDESHOW_USERPAINTEVENTHANDLER_HXX
26 *b1cdbd2cSJim Jagielski 
27 *b1cdbd2cSJim Jagielski #include <boost/shared_ptr.hpp>
28 *b1cdbd2cSJim Jagielski 
29 *b1cdbd2cSJim Jagielski /* Definition of UserPaintEventHandler interface */
30 *b1cdbd2cSJim Jagielski 
31 *b1cdbd2cSJim Jagielski namespace slideshow
32 *b1cdbd2cSJim Jagielski {
33 *b1cdbd2cSJim Jagielski     namespace internal
34 *b1cdbd2cSJim Jagielski     {
35 *b1cdbd2cSJim Jagielski         class RGBColor;
36 *b1cdbd2cSJim Jagielski 
37 *b1cdbd2cSJim Jagielski         /** Interface for handling user paint state changes.
38 *b1cdbd2cSJim Jagielski 
39 *b1cdbd2cSJim Jagielski         	Classes implementing this interface can be added to an
40 *b1cdbd2cSJim Jagielski         	EventMultiplexer object, and are called from there to
41 *b1cdbd2cSJim Jagielski         	handle user paint events.
42 *b1cdbd2cSJim Jagielski          */
43 *b1cdbd2cSJim Jagielski         class UserPaintEventHandler
44 *b1cdbd2cSJim Jagielski         {
45 *b1cdbd2cSJim Jagielski         public:
~UserPaintEventHandler()46 *b1cdbd2cSJim Jagielski             virtual ~UserPaintEventHandler() {}
47 *b1cdbd2cSJim Jagielski             virtual bool colorChanged( RGBColor const& rUserColor ) = 0;
48 *b1cdbd2cSJim Jagielski 	    virtual bool widthChanged( double nUserStrokeWidth ) = 0;
49 *b1cdbd2cSJim Jagielski 	    virtual bool eraseAllInkChanged(bool const& rEraseAllInk) =0;
50 *b1cdbd2cSJim Jagielski             virtual bool eraseInkWidthChanged(sal_Int32 rEraseInkSize) =0;
51 *b1cdbd2cSJim Jagielski             virtual bool switchEraserMode() = 0;
52 *b1cdbd2cSJim Jagielski             virtual bool switchPenMode() = 0;
53 *b1cdbd2cSJim Jagielski             virtual bool disable() = 0;
54 *b1cdbd2cSJim Jagielski         };
55 *b1cdbd2cSJim Jagielski 
56 *b1cdbd2cSJim Jagielski         typedef ::boost::shared_ptr< UserPaintEventHandler > UserPaintEventHandlerSharedPtr;
57 *b1cdbd2cSJim Jagielski 
58 *b1cdbd2cSJim Jagielski     }
59 *b1cdbd2cSJim Jagielski }
60 *b1cdbd2cSJim Jagielski 
61 *b1cdbd2cSJim Jagielski #endif /* INCLUDED_SLIDESHOW_USERPAINTEVENTHANDLER_HXX */
62