xref: /trunk/main/sc/source/ui/vba/vbapagebreak.cxx (revision b3f79822)
1*b3f79822SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*b3f79822SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*b3f79822SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*b3f79822SAndrew Rist  * distributed with this work for additional information
6*b3f79822SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*b3f79822SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*b3f79822SAndrew Rist  * "License"); you may not use this file except in compliance
9*b3f79822SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*b3f79822SAndrew Rist  *
11*b3f79822SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*b3f79822SAndrew Rist  *
13*b3f79822SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*b3f79822SAndrew Rist  * software distributed under the License is distributed on an
15*b3f79822SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b3f79822SAndrew Rist  * KIND, either express or implied.  See the License for the
17*b3f79822SAndrew Rist  * specific language governing permissions and limitations
18*b3f79822SAndrew Rist  * under the License.
19*b3f79822SAndrew Rist  *
20*b3f79822SAndrew Rist  *************************************************************/
21*b3f79822SAndrew Rist 
22*b3f79822SAndrew Rist 
23cdf0e10cSrcweir #include "vbapagebreak.hxx"
24cdf0e10cSrcweir #include "vbarange.hxx"
25cdf0e10cSrcweir #include <ooo/vba/excel/XlPageBreak.hpp>
26cdf0e10cSrcweir using namespace ::com::sun::star;
27cdf0e10cSrcweir using namespace ::ooo::vba;
28cdf0e10cSrcweir 
29cdf0e10cSrcweir template< typename Ifc1 >
ScVbaPageBreak(const uno::Reference<XHelperInterface> & xParent,const uno::Reference<uno::XComponentContext> & xContext,uno::Reference<beans::XPropertySet> & xProps,sheet::TablePageBreakData aTablePageBreakData)30cdf0e10cSrcweir ScVbaPageBreak<Ifc1>::ScVbaPageBreak( const uno::Reference< XHelperInterface >& xParent,
31cdf0e10cSrcweir                     const uno::Reference< uno::XComponentContext >& xContext,
32cdf0e10cSrcweir             		uno::Reference< beans::XPropertySet >& xProps,
33cdf0e10cSrcweir                     sheet::TablePageBreakData aTablePageBreakData) throw (uno::RuntimeException):
34cdf0e10cSrcweir             ScVbaPageBreak_BASE( xParent, xContext ),
35cdf0e10cSrcweir             mxRowColPropertySet( xProps ),
36cdf0e10cSrcweir             maTablePageBreakData( aTablePageBreakData )
37cdf0e10cSrcweir {
38cdf0e10cSrcweir }
39cdf0e10cSrcweir 
40cdf0e10cSrcweir template< typename Ifc1 >
getType()41cdf0e10cSrcweir sal_Int32 ScVbaPageBreak<Ifc1>::getType() throw (uno::RuntimeException)
42cdf0e10cSrcweir {
43cdf0e10cSrcweir     uno::Any aValue = mxRowColPropertySet->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsStartOfNewPage" )));
44cdf0e10cSrcweir     sal_Bool hasPageBreak = sal_False;
45cdf0e10cSrcweir     aValue >>= hasPageBreak;
46cdf0e10cSrcweir 
47cdf0e10cSrcweir     if( !hasPageBreak )
48cdf0e10cSrcweir         return excel::XlPageBreak::xlPageBreakNone;
49cdf0e10cSrcweir 
50cdf0e10cSrcweir     if( maTablePageBreakData.ManualBreak )
51cdf0e10cSrcweir         return excel::XlPageBreak::xlPageBreakManual;
52cdf0e10cSrcweir 
53cdf0e10cSrcweir     return excel::XlPageBreak::xlPageBreakAutomatic;
54cdf0e10cSrcweir }
55cdf0e10cSrcweir 
56cdf0e10cSrcweir template< typename Ifc1 >
setType(sal_Int32 type)57cdf0e10cSrcweir void ScVbaPageBreak<Ifc1>::setType(sal_Int32 type) throw (uno::RuntimeException)
58cdf0e10cSrcweir {
59cdf0e10cSrcweir     if( (type != excel::XlPageBreak::xlPageBreakNone) &&
60cdf0e10cSrcweir         (type != excel::XlPageBreak::xlPageBreakManual) &&
61cdf0e10cSrcweir         (type != excel::XlPageBreak::xlPageBreakAutomatic) )
62cdf0e10cSrcweir     {
63cdf0e10cSrcweir         DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() );
64cdf0e10cSrcweir     }
65cdf0e10cSrcweir 
66cdf0e10cSrcweir     if( type == excel::XlPageBreak::xlPageBreakNone )
67cdf0e10cSrcweir     {
68cdf0e10cSrcweir         mxRowColPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsStartOfNewPage" )), uno::makeAny(sal_False));
69cdf0e10cSrcweir         return;
70cdf0e10cSrcweir     }
71cdf0e10cSrcweir 
72cdf0e10cSrcweir     mxRowColPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsStartOfNewPage" )), uno::makeAny(sal_True));
73cdf0e10cSrcweir     if( type == excel::XlPageBreak::xlPageBreakManual )
74cdf0e10cSrcweir         maTablePageBreakData.ManualBreak = sal_True;
75cdf0e10cSrcweir     else
76cdf0e10cSrcweir         maTablePageBreakData.ManualBreak = sal_False;
77cdf0e10cSrcweir }
78cdf0e10cSrcweir 
79cdf0e10cSrcweir template< typename Ifc1 >
Delete()80cdf0e10cSrcweir void ScVbaPageBreak<Ifc1>::Delete() throw ( script::BasicErrorException, uno::RuntimeException)
81cdf0e10cSrcweir {
82cdf0e10cSrcweir     mxRowColPropertySet->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IsStartOfNewPage" )), uno::makeAny(sal_False));
83cdf0e10cSrcweir }
84cdf0e10cSrcweir 
85cdf0e10cSrcweir template< typename Ifc1 >
Location()86cdf0e10cSrcweir uno::Reference< excel::XRange> ScVbaPageBreak<Ifc1>::Location() throw ( script::BasicErrorException, uno::RuntimeException)
87cdf0e10cSrcweir {
88cdf0e10cSrcweir     uno::Reference< table::XCellRange > xRange( mxRowColPropertySet, uno::UNO_QUERY_THROW );
89cdf0e10cSrcweir     return new ScVbaRange( ScVbaPageBreak_BASE::getParent(), ScVbaPageBreak_BASE::mxContext, xRange);
90cdf0e10cSrcweir }
91cdf0e10cSrcweir 
92cdf0e10cSrcweir template< typename Ifc1 >
93cdf0e10cSrcweir rtl::OUString&
getServiceImplName()94cdf0e10cSrcweir ScVbaPageBreak<Ifc1>::getServiceImplName()
95cdf0e10cSrcweir {
96cdf0e10cSrcweir 	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaPageBreak") );
97cdf0e10cSrcweir 	return sImplName;
98cdf0e10cSrcweir }
99cdf0e10cSrcweir 
100cdf0e10cSrcweir template< typename Ifc1 >
101cdf0e10cSrcweir uno::Sequence< rtl::OUString >
getServiceNames()102cdf0e10cSrcweir ScVbaPageBreak<Ifc1>::getServiceNames()
103cdf0e10cSrcweir {
104cdf0e10cSrcweir 	static uno::Sequence< rtl::OUString > aServiceNames;
105cdf0e10cSrcweir 	if ( aServiceNames.getLength() == 0 )
106cdf0e10cSrcweir 	{
107cdf0e10cSrcweir 		aServiceNames.realloc( 1 );
108cdf0e10cSrcweir 		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.excel.PageBreak" ) );
109cdf0e10cSrcweir 	}
110cdf0e10cSrcweir 	return aServiceNames;
111cdf0e10cSrcweir }
112cdf0e10cSrcweir 
113cdf0e10cSrcweir template class ScVbaPageBreak< excel::XHPageBreak >;
114cdf0e10cSrcweir 
115cdf0e10cSrcweir /* class ScVbaHPageBreak */
116cdf0e10cSrcweir rtl::OUString&
getServiceImplName()117cdf0e10cSrcweir ScVbaHPageBreak::getServiceImplName()
118cdf0e10cSrcweir {
119cdf0e10cSrcweir 	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaHPageBreak") );
120cdf0e10cSrcweir 	return sImplName;
121cdf0e10cSrcweir }
122cdf0e10cSrcweir 
123cdf0e10cSrcweir uno::Sequence< rtl::OUString >
getServiceNames()124cdf0e10cSrcweir ScVbaHPageBreak::getServiceNames()
125cdf0e10cSrcweir {
126cdf0e10cSrcweir 	static uno::Sequence< rtl::OUString > aServiceNames;
127cdf0e10cSrcweir 	if ( aServiceNames.getLength() == 0 )
128cdf0e10cSrcweir 	{
129cdf0e10cSrcweir 		aServiceNames.realloc( 1 );
130cdf0e10cSrcweir 		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.excel.HPageBreak" ) );
131cdf0e10cSrcweir 	}
132cdf0e10cSrcweir 	return aServiceNames;
133cdf0e10cSrcweir }
134cdf0e10cSrcweir 
135cdf0e10cSrcweir template class ScVbaPageBreak< excel::XVPageBreak >;
136cdf0e10cSrcweir 
137cdf0e10cSrcweir /* class ScVbaVPageBreak */
ScVbaVPageBreak(const css::uno::Reference<ov::XHelperInterface> & xParent,const css::uno::Reference<css::uno::XComponentContext> & xContext,css::uno::Reference<css::beans::XPropertySet> & xProps,css::sheet::TablePageBreakData aTablePageBreakData)138cdf0e10cSrcweir ScVbaVPageBreak::ScVbaVPageBreak( const css::uno::Reference< ov::XHelperInterface >& xParent,
139cdf0e10cSrcweir 								  const css::uno::Reference< css::uno::XComponentContext >& xContext,
140cdf0e10cSrcweir 								  css::uno::Reference< css::beans::XPropertySet >& xProps,
141cdf0e10cSrcweir 								  css::sheet::TablePageBreakData aTablePageBreakData ) throw ( css::uno::RuntimeException )
142cdf0e10cSrcweir :   ScVbaVPageBreak_BASE( xParent, xContext, xProps, aTablePageBreakData )
143cdf0e10cSrcweir {
144cdf0e10cSrcweir }
145cdf0e10cSrcweir 
~ScVbaVPageBreak()146cdf0e10cSrcweir ScVbaVPageBreak::~ScVbaVPageBreak()
147cdf0e10cSrcweir {
148cdf0e10cSrcweir }
149cdf0e10cSrcweir 
150cdf0e10cSrcweir rtl::OUString&
getServiceImplName()151cdf0e10cSrcweir ScVbaVPageBreak::getServiceImplName()
152cdf0e10cSrcweir {
153cdf0e10cSrcweir 	static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaVPageBreak") );
154cdf0e10cSrcweir 	return sImplName;
155cdf0e10cSrcweir }
156cdf0e10cSrcweir 
157cdf0e10cSrcweir uno::Sequence< rtl::OUString >
getServiceNames()158cdf0e10cSrcweir ScVbaVPageBreak::getServiceNames()
159cdf0e10cSrcweir {
160cdf0e10cSrcweir 	static uno::Sequence< rtl::OUString > aServiceNames;
161cdf0e10cSrcweir 	if ( aServiceNames.getLength() == 0 )
162cdf0e10cSrcweir 	{
163cdf0e10cSrcweir 		aServiceNames.realloc( 1 );
164cdf0e10cSrcweir 		aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "ooo.vba.excel.VPageBreak" ) );
165cdf0e10cSrcweir 	}
166cdf0e10cSrcweir 	return aServiceNames;
167cdf0e10cSrcweir }
168cdf0e10cSrcweir 
169