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