1b9e67834SAndre Fischer /**************************************************************
2b9e67834SAndre Fischer  *
3b9e67834SAndre Fischer  * Licensed to the Apache Software Foundation (ASF) under one
4b9e67834SAndre Fischer  * or more contributor license agreements.  See the NOTICE file
5b9e67834SAndre Fischer  * distributed with this work for additional information
6b9e67834SAndre Fischer  * regarding copyright ownership.  The ASF licenses this file
7b9e67834SAndre Fischer  * to you under the Apache License, Version 2.0 (the
8b9e67834SAndre Fischer  * "License"); you may not use this file except in compliance
9b9e67834SAndre Fischer  * with the License.  You may obtain a copy of the License at
10b9e67834SAndre Fischer  *
11b9e67834SAndre Fischer  *   http://www.apache.org/licenses/LICENSE-2.0
12b9e67834SAndre Fischer  *
13b9e67834SAndre Fischer  * Unless required by applicable law or agreed to in writing,
14b9e67834SAndre Fischer  * software distributed under the License is distributed on an
15b9e67834SAndre Fischer  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16b9e67834SAndre Fischer  * KIND, either express or implied.  See the License for the
17b9e67834SAndre Fischer  * specific language governing permissions and limitations
18b9e67834SAndre Fischer  * under the License.
19b9e67834SAndre Fischer  *
20b9e67834SAndre Fischer  *************************************************************/
21b9e67834SAndre Fischer 
22b9e67834SAndre Fischer #ifndef SFX_SIDEBAR_SIDEBAR_PANEL_HXX
23b9e67834SAndre Fischer #define SFX_SIDEBAR_SIDEBAR_PANEL_HXX
24b9e67834SAndre Fischer 
25*95a18594SAndre Fischer #include <tools/link.hxx>
26b9e67834SAndre Fischer #include <com/sun/star/ui/XSidebarPanel.hpp>
27b9e67834SAndre Fischer 
28b9e67834SAndre Fischer #include <boost/noncopyable.hpp>
29b9e67834SAndre Fischer #include <cppuhelper/compbase1.hxx>
30b9e67834SAndre Fischer #include <cppuhelper/basemutex.hxx>
31b9e67834SAndre Fischer 
32b9e67834SAndre Fischer namespace css = ::com::sun::star;
33b9e67834SAndre Fischer namespace cssu = ::com::sun::star::uno;
34b9e67834SAndre Fischer 
35b9e67834SAndre Fischer namespace
36b9e67834SAndre Fischer {
37b9e67834SAndre Fischer     typedef ::cppu::WeakComponentImplHelper1 <
38b9e67834SAndre Fischer         css::ui::XSidebarPanel
39b9e67834SAndre Fischer         > SidebarPanelInterfaceBase;
40b9e67834SAndre Fischer }
41b9e67834SAndre Fischer 
42b9e67834SAndre Fischer 
43b9e67834SAndre Fischer class DockingWindow;
44*95a18594SAndre Fischer class VclWindowEvent;
45b9e67834SAndre Fischer 
46b9e67834SAndre Fischer namespace sfx2 { namespace sidebar {
47b9e67834SAndre Fischer 
48b9e67834SAndre Fischer class Panel;
49b9e67834SAndre Fischer 
50b9e67834SAndre Fischer class SidebarPanel
51b9e67834SAndre Fischer     : private ::boost::noncopyable,
52b9e67834SAndre Fischer       private ::cppu::BaseMutex,
53b9e67834SAndre Fischer       public SidebarPanelInterfaceBase
54b9e67834SAndre Fischer {
55b9e67834SAndre Fischer public:
56b9e67834SAndre Fischer     static cssu::Reference<css::ui::XSidebarPanel> Create (Panel* pPanel);
57b9e67834SAndre Fischer 
58b9e67834SAndre Fischer protected:
59b9e67834SAndre Fischer     SidebarPanel(
60b9e67834SAndre Fischer         Panel* pPanel);
61b9e67834SAndre Fischer     virtual ~SidebarPanel (void);
62b9e67834SAndre Fischer 
63b9e67834SAndre Fischer     virtual void SAL_CALL disposing (const css::lang::EventObject& rEventObject)
64b9e67834SAndre Fischer         throw(cssu::RuntimeException);
65b9e67834SAndre Fischer 
66b9e67834SAndre Fischer     virtual void SAL_CALL disposing (void);
67b9e67834SAndre Fischer 
68b9e67834SAndre Fischer private:
69b9e67834SAndre Fischer     Panel* mpPanel;
70b9e67834SAndre Fischer     cssu::Reference<css::rendering::XCanvas> mxCanvas;
71b9e67834SAndre Fischer 
72b9e67834SAndre Fischer     DECL_LINK(HandleWindowEvent, VclWindowEvent*);
73b9e67834SAndre Fischer };
74b9e67834SAndre Fischer 
75b9e67834SAndre Fischer 
76b9e67834SAndre Fischer } } // end of namespace sfx2::sidebar
77b9e67834SAndre Fischer 
78b9e67834SAndre Fischer #endif
79