xref: /aoo42x/main/sw/inc/SwPanelFactory.hxx (revision ff0525f2)
1*ff0525f2SOliver-Rainer Wittmann /**************************************************************
2*ff0525f2SOliver-Rainer Wittmann  *
3*ff0525f2SOliver-Rainer Wittmann  * Licensed to the Apache Software Foundation (ASF) under one
4*ff0525f2SOliver-Rainer Wittmann  * or more contributor license agreements.  See the NOTICE file
5*ff0525f2SOliver-Rainer Wittmann  * distributed with this work for additional information
6*ff0525f2SOliver-Rainer Wittmann  * regarding copyright ownership.  The ASF licenses this file
7*ff0525f2SOliver-Rainer Wittmann  * to you under the Apache License, Version 2.0 (the
8*ff0525f2SOliver-Rainer Wittmann  * "License"); you may not use this file except in compliance
9*ff0525f2SOliver-Rainer Wittmann  * with the License.  You may obtain a copy of the License at
10*ff0525f2SOliver-Rainer Wittmann  *
11*ff0525f2SOliver-Rainer Wittmann  *   http://www.apache.org/licenses/LICENSE-2.0
12*ff0525f2SOliver-Rainer Wittmann  *
13*ff0525f2SOliver-Rainer Wittmann  * Unless required by applicable law or agreed to in writing,
14*ff0525f2SOliver-Rainer Wittmann  * software distributed under the License is distributed on an
15*ff0525f2SOliver-Rainer Wittmann  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ff0525f2SOliver-Rainer Wittmann  * KIND, either express or implied.  See the License for the
17*ff0525f2SOliver-Rainer Wittmann  * specific language governing permissions and limitations
18*ff0525f2SOliver-Rainer Wittmann  * under the License.
19*ff0525f2SOliver-Rainer Wittmann  *
20*ff0525f2SOliver-Rainer Wittmann  *************************************************************/
21*ff0525f2SOliver-Rainer Wittmann 
22*ff0525f2SOliver-Rainer Wittmann #ifndef SW_SIDEBAR_PANEL_FACTORY_HXX
23*ff0525f2SOliver-Rainer Wittmann #define SW_SIDEBAR_PANEL_FACTORY_HXX
24*ff0525f2SOliver-Rainer Wittmann 
25*ff0525f2SOliver-Rainer Wittmann #include <cppuhelper/compbase1.hxx>
26*ff0525f2SOliver-Rainer Wittmann #include <cppuhelper/basemutex.hxx>
27*ff0525f2SOliver-Rainer Wittmann 
28*ff0525f2SOliver-Rainer Wittmann #include <com/sun/star/ui/XUIElementFactory.hpp>
29*ff0525f2SOliver-Rainer Wittmann 
30*ff0525f2SOliver-Rainer Wittmann #include <boost/noncopyable.hpp>
31*ff0525f2SOliver-Rainer Wittmann 
32*ff0525f2SOliver-Rainer Wittmann 
33*ff0525f2SOliver-Rainer Wittmann namespace css = ::com::sun::star;
34*ff0525f2SOliver-Rainer Wittmann namespace cssu = ::com::sun::star::uno;
35*ff0525f2SOliver-Rainer Wittmann 
36*ff0525f2SOliver-Rainer Wittmann 
37*ff0525f2SOliver-Rainer Wittmann namespace sw { namespace sidebar {
38*ff0525f2SOliver-Rainer Wittmann 
39*ff0525f2SOliver-Rainer Wittmann namespace
40*ff0525f2SOliver-Rainer Wittmann {
41*ff0525f2SOliver-Rainer Wittmann     typedef ::cppu::WeakComponentImplHelper1 <
42*ff0525f2SOliver-Rainer Wittmann         css::ui::XUIElementFactory
43*ff0525f2SOliver-Rainer Wittmann         > PanelFactoryInterfaceBase;
44*ff0525f2SOliver-Rainer Wittmann }
45*ff0525f2SOliver-Rainer Wittmann 
46*ff0525f2SOliver-Rainer Wittmann 
47*ff0525f2SOliver-Rainer Wittmann class SwPanelFactory
48*ff0525f2SOliver-Rainer Wittmann     : private ::boost::noncopyable,
49*ff0525f2SOliver-Rainer Wittmann       private ::cppu::BaseMutex,
50*ff0525f2SOliver-Rainer Wittmann       public PanelFactoryInterfaceBase
51*ff0525f2SOliver-Rainer Wittmann {
52*ff0525f2SOliver-Rainer Wittmann public:
53*ff0525f2SOliver-Rainer Wittmann     static ::rtl::OUString SAL_CALL getImplementationName(void);
54*ff0525f2SOliver-Rainer Wittmann     static cssu::Reference<cssu::XInterface> SAL_CALL createInstance(
55*ff0525f2SOliver-Rainer Wittmann         const cssu::Reference<css::lang::XMultiServiceFactory>& rxFactory);
56*ff0525f2SOliver-Rainer Wittmann     static cssu::Sequence<rtl::OUString> SAL_CALL getSupportedServiceNames(void);
57*ff0525f2SOliver-Rainer Wittmann 
58*ff0525f2SOliver-Rainer Wittmann     SwPanelFactory(void);
59*ff0525f2SOliver-Rainer Wittmann     virtual ~SwPanelFactory(void);
60*ff0525f2SOliver-Rainer Wittmann 
61*ff0525f2SOliver-Rainer Wittmann     // XUIElementFactory
62*ff0525f2SOliver-Rainer Wittmann     cssu::Reference<css::ui::XUIElement> SAL_CALL createUIElement(
63*ff0525f2SOliver-Rainer Wittmann         const ::rtl::OUString& rsResourceURL,
64*ff0525f2SOliver-Rainer Wittmann         const ::cssu::Sequence<css::beans::PropertyValue>& rArguments)
65*ff0525f2SOliver-Rainer Wittmann         throw(
66*ff0525f2SOliver-Rainer Wittmann             css::container::NoSuchElementException,
67*ff0525f2SOliver-Rainer Wittmann             css::lang::IllegalArgumentException,
68*ff0525f2SOliver-Rainer Wittmann             cssu::RuntimeException );
69*ff0525f2SOliver-Rainer Wittmann };
70*ff0525f2SOliver-Rainer Wittmann 
71*ff0525f2SOliver-Rainer Wittmann 
72*ff0525f2SOliver-Rainer Wittmann } } // end of namespace sw::sidebar
73*ff0525f2SOliver-Rainer Wittmann 
74*ff0525f2SOliver-Rainer Wittmann #endif
75