xref: /aoo41x/main/svx/source/form/fmservs.cxx (revision f6e50924)
1*f6e50924SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*f6e50924SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*f6e50924SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*f6e50924SAndrew Rist  * distributed with this work for additional information
6*f6e50924SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*f6e50924SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*f6e50924SAndrew Rist  * "License"); you may not use this file except in compliance
9*f6e50924SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*f6e50924SAndrew Rist  *
11*f6e50924SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*f6e50924SAndrew Rist  *
13*f6e50924SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*f6e50924SAndrew Rist  * software distributed under the License is distributed on an
15*f6e50924SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*f6e50924SAndrew Rist  * KIND, either express or implied.  See the License for the
17*f6e50924SAndrew Rist  * specific language governing permissions and limitations
18*f6e50924SAndrew Rist  * under the License.
19*f6e50924SAndrew Rist  *
20*f6e50924SAndrew Rist  *************************************************************/
21*f6e50924SAndrew Rist 
22*f6e50924SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_svx.hxx"
26cdf0e10cSrcweir #include <com/sun/star/container/XSet.hpp>
27cdf0e10cSrcweir #include <cppuhelper/factory.hxx>
28cdf0e10cSrcweir #include <comphelper/processfactory.hxx>
29cdf0e10cSrcweir #include "fmservs.hxx"
30cdf0e10cSrcweir 
31cdf0e10cSrcweir // ------------------------------------------------------------------------
32cdf0e10cSrcweir #define DECL_SERVICE(ImplName)						\
33cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ImplName##_NewInstance_Impl(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > &) throw( ::com::sun::star::uno::Exception );
34cdf0e10cSrcweir 
35cdf0e10cSrcweir #define REGISTER_SERVICE(ImplName, ServiceName)							\
36cdf0e10cSrcweir 	sString = (ServiceName);										\
37cdf0e10cSrcweir 	xSingleFactory = ::cppu::createSingleFactory(xServiceFactory,				\
38cdf0e10cSrcweir 						::rtl::OUString(), ImplName##_NewInstance_Impl, 			\
39cdf0e10cSrcweir 						::com::sun::star::uno::Sequence< ::rtl::OUString>(&sString, 1));	\
40cdf0e10cSrcweir 	if (xSingleFactory.is())											\
41cdf0e10cSrcweir 		xSet->insert(::com::sun::star::uno::makeAny(xSingleFactory));
42cdf0e10cSrcweir 
43cdf0e10cSrcweir 
44cdf0e10cSrcweir 	DECL_SERVICE( FmXGridControl )
45cdf0e10cSrcweir 	DECL_SERVICE( FormController )
46cdf0e10cSrcweir     DECL_SERVICE( LegacyFormController )
47cdf0e10cSrcweir 
48cdf0e10cSrcweir 
49cdf0e10cSrcweir // ------------------------------------------------------------------------
50cdf0e10cSrcweir namespace svxform
51cdf0e10cSrcweir {
52cdf0e10cSrcweir 
53cdf0e10cSrcweir #define DECL_SELFAWARE_SERVICE( ClassName )						\
54cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ClassName##_Create(      \
55cdf0e10cSrcweir                 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& );  \
56cdf0e10cSrcweir     ::rtl::OUString SAL_CALL ClassName##_GetImplementationName();                                           \
57cdf0e10cSrcweir     ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL ClassName##_GetSupportedServiceNames();     \
58cdf0e10cSrcweir 
59cdf0e10cSrcweir 
60cdf0e10cSrcweir #define REGISTER_SELFAWARE_SERVICE( ClassName )                     \
61cdf0e10cSrcweir     xSingleFactory = ::cppu::createSingleFactory( xServiceFactory,  \
62cdf0e10cSrcweir                         ClassName##_GetImplementationName(),        \
63cdf0e10cSrcweir                         ClassName##_Create,                         \
64cdf0e10cSrcweir                         ClassName##_GetSupportedServiceNames()      \
65cdf0e10cSrcweir                      );                                             \
66cdf0e10cSrcweir     if ( xSingleFactory.is() )                                      \
67cdf0e10cSrcweir         xSet->insert( ::com::sun::star::uno::makeAny( xSingleFactory ) );
68cdf0e10cSrcweir 
69cdf0e10cSrcweir 
70cdf0e10cSrcweir     // ------------------------------------------------------------------------
DECL_SELFAWARE_SERVICE(OAddConditionDialog)71cdf0e10cSrcweir     DECL_SELFAWARE_SERVICE( OAddConditionDialog )
72cdf0e10cSrcweir 
73cdf0e10cSrcweir 	// ------------------------------------------------------------------------
74cdf0e10cSrcweir 	void ImplSmartRegisterUnoServices()
75cdf0e10cSrcweir 	{
76cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >  xServiceFactory(::comphelper::getProcessServiceFactory(), ::com::sun::star::uno::UNO_QUERY);
77cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::container::XSet >  xSet(xServiceFactory, ::com::sun::star::uno::UNO_QUERY);
78cdf0e10cSrcweir 		if (!xSet.is())
79cdf0e10cSrcweir 			return;
80cdf0e10cSrcweir 
81cdf0e10cSrcweir 		::com::sun::star::uno::Sequence< ::rtl::OUString> aServices;
82cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory >  xSingleFactory;
83cdf0e10cSrcweir 
84cdf0e10cSrcweir 		::rtl::OUString sString;
85cdf0e10cSrcweir 
86cdf0e10cSrcweir 		// ------------------------------------------------------------------------
87cdf0e10cSrcweir         // FormController
88cdf0e10cSrcweir 		REGISTER_SERVICE( FormController, FM_FORM_CONTROLLER );
89cdf0e10cSrcweir 		REGISTER_SERVICE( LegacyFormController, ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.form.FormController" ) ) );
90cdf0e10cSrcweir 
91cdf0e10cSrcweir 		// ------------------------------------------------------------------------
92cdf0e10cSrcweir         // FormController
93cdf0e10cSrcweir 		REGISTER_SELFAWARE_SERVICE( OAddConditionDialog );
94cdf0e10cSrcweir 
95cdf0e10cSrcweir 		// ------------------------------------------------------------------------
96cdf0e10cSrcweir 		// DBGridControl
97cdf0e10cSrcweir 		REGISTER_SERVICE(FmXGridControl, FM_CONTROL_GRID);	// compatibility
98cdf0e10cSrcweir 		REGISTER_SERVICE(FmXGridControl, FM_CONTROL_GRIDCONTROL);
99cdf0e10cSrcweir 		REGISTER_SERVICE(FmXGridControl, FM_SUN_CONTROL_GRIDCONTROL);
100cdf0e10cSrcweir 	};
101cdf0e10cSrcweir 
102cdf0e10cSrcweir }	// namespace svxform
103