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