1c45d927aSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3c45d927aSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4c45d927aSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5c45d927aSAndrew Rist  * distributed with this work for additional information
6c45d927aSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7c45d927aSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8c45d927aSAndrew Rist  * "License"); you may not use this file except in compliance
9c45d927aSAndrew Rist  * with the License.  You may obtain a copy of the License at
10c45d927aSAndrew Rist  *
11c45d927aSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12c45d927aSAndrew Rist  *
13c45d927aSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14c45d927aSAndrew Rist  * software distributed under the License is distributed on an
15c45d927aSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16c45d927aSAndrew Rist  * KIND, either express or implied.  See the License for the
17c45d927aSAndrew Rist  * specific language governing permissions and limitations
18c45d927aSAndrew Rist  * under the License.
19c45d927aSAndrew Rist  *
20c45d927aSAndrew Rist  *************************************************************/
21c45d927aSAndrew Rist 
22c45d927aSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SD_PRESENTER_PRESENTER_HELPER_HXX
25cdf0e10cSrcweir #define SD_PRESENTER_PRESENTER_HELPER_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <com/sun/star/drawing/XPresenterHelper.hpp>
28cdf0e10cSrcweir #include <com/sun/star/lang/XInitialization.hpp>
29cdf0e10cSrcweir #include <com/sun/star/uno/XComponentContext.hpp>
30cdf0e10cSrcweir #include <cppuhelper/basemutex.hxx>
31cdf0e10cSrcweir #include <cppuhelper/compbase2.hxx>
32cdf0e10cSrcweir #include <svtools/filter.hxx>
33cdf0e10cSrcweir #include <boost/noncopyable.hpp>
34cdf0e10cSrcweir #include <boost/scoped_ptr.hpp>
35cdf0e10cSrcweir 
36cdf0e10cSrcweir namespace css = ::com::sun::star;
37cdf0e10cSrcweir 
38cdf0e10cSrcweir namespace sd { namespace presenter {
39cdf0e10cSrcweir 
40cdf0e10cSrcweir namespace {
41cdf0e10cSrcweir     typedef ::cppu::WeakComponentImplHelper2<
42cdf0e10cSrcweir         css::lang::XInitialization,
43cdf0e10cSrcweir         css::drawing::XPresenterHelper
44cdf0e10cSrcweir     > PresenterHelperInterfaceBase;
45cdf0e10cSrcweir }
46cdf0e10cSrcweir 
47cdf0e10cSrcweir /** Implementation of the XPresenterHelper interface: functionality that can
48cdf0e10cSrcweir     not be implemented in an extension.
49cdf0e10cSrcweir */
50*b9e67834SAndre Fischer class PresenterHelper
51cdf0e10cSrcweir     : private ::boost::noncopyable,
52cdf0e10cSrcweir       private ::cppu::BaseMutex,
53cdf0e10cSrcweir       public PresenterHelperInterfaceBase
54cdf0e10cSrcweir {
55cdf0e10cSrcweir public:
56cdf0e10cSrcweir     PresenterHelper (const css::uno::Reference<css::uno::XComponentContext>& rxContext);
57cdf0e10cSrcweir     virtual ~PresenterHelper (void);
58cdf0e10cSrcweir 
59cdf0e10cSrcweir     // XInitialize
60cdf0e10cSrcweir 
61cdf0e10cSrcweir     virtual void SAL_CALL initialize (const css::uno::Sequence<css::uno::Any>& rArguments)
62cdf0e10cSrcweir         throw(css::uno::Exception,css::uno::RuntimeException);
63cdf0e10cSrcweir 
64cdf0e10cSrcweir 
65cdf0e10cSrcweir     // XPresenterHelper
66cdf0e10cSrcweir 
67cdf0e10cSrcweir     virtual css::uno::Reference<css::awt::XWindow> SAL_CALL createWindow (
68cdf0e10cSrcweir         const css::uno::Reference<css::awt::XWindow>& rxParentWindow,
69cdf0e10cSrcweir         sal_Bool bCreateSystemChildWindow,
70cdf0e10cSrcweir         sal_Bool bInitiallyVisible,
71cdf0e10cSrcweir         sal_Bool bEnableChildTransparentMode,
72cdf0e10cSrcweir         sal_Bool bEnableParentClip)
73cdf0e10cSrcweir         throw (css::uno::RuntimeException);
74cdf0e10cSrcweir 
75cdf0e10cSrcweir     virtual css::uno::Reference<css::rendering::XCanvas> SAL_CALL createSharedCanvas (
76cdf0e10cSrcweir         const css::uno::Reference<css::rendering::XSpriteCanvas>& rxUpdateCanvas,
77cdf0e10cSrcweir         const css::uno::Reference<css::awt::XWindow>& rxUpdateWindow,
78cdf0e10cSrcweir         const css::uno::Reference<css::rendering::XCanvas>& rxSharedCanvas,
79cdf0e10cSrcweir         const css::uno::Reference<css::awt::XWindow>& rxSharedWindow,
80cdf0e10cSrcweir         const css::uno::Reference<css::awt::XWindow>& rxWindow)
81cdf0e10cSrcweir         throw (css::uno::RuntimeException);
82cdf0e10cSrcweir 
83cdf0e10cSrcweir     virtual css::uno::Reference<css::rendering::XCanvas> SAL_CALL createCanvas (
84cdf0e10cSrcweir         const css::uno::Reference<css::awt::XWindow>& rxWindow,
85cdf0e10cSrcweir         sal_Int16 nRequestedCanvasFeatures,
86cdf0e10cSrcweir         const ::rtl::OUString& rsOptionalCanvasServiceName)
87cdf0e10cSrcweir         throw (css::uno::RuntimeException);
88cdf0e10cSrcweir 
89cdf0e10cSrcweir     virtual void SAL_CALL toTop (
90cdf0e10cSrcweir         const css::uno::Reference<css::awt::XWindow>& rxWindow)
91cdf0e10cSrcweir         throw (css::uno::RuntimeException);
92cdf0e10cSrcweir 
93cdf0e10cSrcweir     virtual css::uno::Reference<css::rendering::XBitmap> SAL_CALL loadBitmap (
94cdf0e10cSrcweir         const ::rtl::OUString& rsURL,
95cdf0e10cSrcweir         const css::uno::Reference<css::rendering::XCanvas>& rxCanvas)
96cdf0e10cSrcweir         throw (css::uno::RuntimeException);
97cdf0e10cSrcweir 
98cdf0e10cSrcweir     virtual void SAL_CALL captureMouse (const css::uno::Reference<css::awt::XWindow>& rxWindow)
99cdf0e10cSrcweir         throw (css::uno::RuntimeException);
100cdf0e10cSrcweir 
101cdf0e10cSrcweir     virtual void SAL_CALL releaseMouse (const css::uno::Reference<css::awt::XWindow>& rxWindow)
102cdf0e10cSrcweir         throw (css::uno::RuntimeException);
103cdf0e10cSrcweir 
104cdf0e10cSrcweir     virtual css::awt::Rectangle SAL_CALL getWindowExtentsRelative (
105cdf0e10cSrcweir         const css::uno::Reference<css::awt::XWindow>& rxChildWindow,
106cdf0e10cSrcweir         const css::uno::Reference<css::awt::XWindow>& rxParentWindow)
107cdf0e10cSrcweir         throw (css::uno::RuntimeException);
108cdf0e10cSrcweir 
109cdf0e10cSrcweir private:
110cdf0e10cSrcweir     css::uno::Reference<css::uno::XComponentContext> mxComponentContext;
111cdf0e10cSrcweir     ::boost::scoped_ptr<GraphicFilter> mpGraphicFilter;
112cdf0e10cSrcweir };
113cdf0e10cSrcweir 
114cdf0e10cSrcweir } } // end of namespace ::sd::presenter
115cdf0e10cSrcweir 
116cdf0e10cSrcweir #endif
117