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