LibreOffice Module reportdesign (master)  1
Section.cxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 #include <Section.hxx>
23 #include <com/sun/star/report/XReportComponent.hpp>
24 #include <com/sun/star/report/ForceNewPage.hpp>
25 #include <com/sun/star/lang/NoSupportException.hpp>
26 #include <strings.hxx>
27 #include <Tools.hxx>
28 #include <RptModel.hxx>
29 #include <RptPage.hxx>
30 #include <ReportControlModel.hxx>
31 #include <ReportDefinition.hxx>
32 #include <vcl/svapp.hxx>
33 
34 namespace reportdesign
35 {
36 
37  using namespace com::sun::star;
38  using namespace comphelper;
39 
40 
41 static uno::Sequence< OUString> lcl_getGroupAbsent()
42 {
43  const OUString pProps[] = {
44  OUString(PROPERTY_CANGROW)
45  ,OUString(PROPERTY_CANSHRINK)
46  };
47 
48  return uno::Sequence< OUString >(pProps,SAL_N_ELEMENTS(pProps));
49 }
50 
51 
52 static uno::Sequence< OUString> lcl_getAbsent(bool _bPageSection)
53 {
54  if ( _bPageSection )
55  {
56  const OUString pProps[] = {
57  OUString(PROPERTY_FORCENEWPAGE)
58  ,OUString(PROPERTY_NEWROWORCOL)
59  ,OUString(PROPERTY_KEEPTOGETHER)
60  ,OUString(PROPERTY_CANGROW)
61  ,OUString(PROPERTY_CANSHRINK)
62  ,OUString(PROPERTY_REPEATSECTION)
63  };
64  return uno::Sequence< OUString >(pProps,SAL_N_ELEMENTS(pProps));
65  }
66 
67  const OUString pProps[] = {
68  OUString(PROPERTY_CANGROW)
69  ,OUString(PROPERTY_CANSHRINK)
70  ,OUString(PROPERTY_REPEATSECTION)
71  };
72 
73  return uno::Sequence< OUString >(pProps,SAL_N_ELEMENTS(pProps));
74 }
75 
76 uno::Reference<report::XSection> OSection::createOSection(
77  const uno::Reference< report::XReportDefinition >& xParentDef,
78  const uno::Reference< uno::XComponentContext >& context,
79  bool const bPageSection)
80 {
82  new OSection(xParentDef, nullptr, context, lcl_getAbsent(bPageSection));
83  pNew->init();
84  return pNew;
85 }
86 
87 uno::Reference<report::XSection> OSection::createOSection(
88  const uno::Reference< report::XGroup >& xParentGroup,
89  const uno::Reference< uno::XComponentContext >& context)
90 {
92  new OSection(nullptr, xParentGroup, context, lcl_getGroupAbsent());
93  pNew->init();
94  return pNew;
95 }
96 
97 
98 OSection::OSection(const uno::Reference< report::XReportDefinition >& xParentDef
99  ,const uno::Reference< report::XGroup >& xParentGroup
100  ,const uno::Reference< uno::XComponentContext >& context
101  ,uno::Sequence< OUString> const& rStrings)
103 ,SectionPropertySet(context,SectionPropertySet::IMPLEMENTS_PROPERTY_SET,rStrings)
104 ,m_aContainerListeners(m_aMutex)
105 ,m_xGroup(xParentGroup)
106 ,m_xReportDefinition(xParentDef)
107 ,m_nHeight(3000)
108 ,m_nBackgroundColor(COL_TRANSPARENT)
109 ,m_nForceNewPage(report::ForceNewPage::NONE)
110 ,m_nNewRowOrCol(report::ForceNewPage::NONE)
111 ,m_bKeepTogether(false)
112 ,m_bRepeatSection(false)
113 ,m_bVisible(true)
114 ,m_bBacktransparent(true)
115 ,m_bInRemoveNotify(false)
116 ,m_bInInsertNotify(false)
117 {
118 }
119 
120 // TODO: VirtualFunctionFinder: This is virtual function!
121 
122 OSection::~OSection()
123 {
124 }
125 
126 //IMPLEMENT_FORWARD_XINTERFACE2(OSection,SectionBase,SectionPropertySet)
128 
129 uno::Any SAL_CALL OSection::queryInterface( const uno::Type& _rType )
130 {
131  uno::Any aReturn = SectionBase::queryInterface(_rType);
132  if ( !aReturn.hasValue() )
133  aReturn = SectionPropertySet::queryInterface(_rType);
134 
135  if ( !aReturn.hasValue() && OReportControlModel::isInterfaceForbidden(_rType) )
136  return aReturn;
137 
138  return aReturn;
139 }
140 
141 
142 void SAL_CALL OSection::dispose()
143 {
144  OSL_ENSURE(!rBHelper.bDisposed,"Already disposed!");
145  SectionPropertySet::dispose();
146  uno::Reference<lang::XComponent> const xPageComponent(m_xDrawPage,
147  uno::UNO_QUERY);
148  if (xPageComponent.is())
149  {
150  xPageComponent->dispose();
151  }
152  cppu::WeakComponentImplHelperBase::dispose();
153 
154 }
155 
156 // TODO: VirtualFunctionFinder: This is virtual function!
157 
158 void SAL_CALL OSection::disposing()
159 {
160  lang::EventObject aDisposeEvent( static_cast< ::cppu::OWeakObject* >( this ) );
161  m_aContainerListeners.disposeAndClear( aDisposeEvent );
162 }
163 
164 OUString SAL_CALL OSection::getImplementationName( )
165 {
166  return "com.sun.star.comp.report.Section";
167 }
168 
169 uno::Sequence< OUString> OSection::getSupportedServiceNames_Static()
170 {
171  uno::Sequence<OUString> aSupported { SERVICE_SECTION };
172  return aSupported;
173 }
174 
175 uno::Sequence< OUString> SAL_CALL OSection::getSupportedServiceNames()
176 {
177  return getSupportedServiceNames_Static();
178 }
179 
180 sal_Bool SAL_CALL OSection::supportsService( const OUString& _rServiceName )
181 {
182  return cppu::supportsService(this, _rServiceName);
183 }
184 
185 void OSection::init()
186 {
187  SolarMutexGuard g; // lock while manipulating SdrModel
188  uno::Reference< report::XReportDefinition> xReport = getReportDefinition();
189  std::shared_ptr<rptui::OReportModel> pModel = OReportDefinition::getSdrModel(xReport);
190  assert(pModel && "No model set at the report definition!");
191  if ( !pModel )
192  return;
193 
194  uno::Reference<report::XSection> const xSection(this);
195  SdrPage & rSdrPage(*pModel->createNewPage(xSection));
196  m_xDrawPage.set(rSdrPage.getUnoPage(), uno::UNO_QUERY_THROW);
197  m_xDrawPage_ShapeGrouper.set(m_xDrawPage, uno::UNO_QUERY_THROW);
198  // apparently we may also get OReportDrawPage which doesn't support this
199  m_xDrawPage_FormSupplier.set(m_xDrawPage, uno::UNO_QUERY);
200  m_xDrawPage_Tunnel.set(m_xDrawPage, uno::UNO_QUERY_THROW);
201  // fdo#53872: now also exchange the XDrawPage in the SdrPage so that
202  // rSdrPage.getUnoPage returns this
203  rSdrPage.SetUnoPage(this);
204  // createNewPage _should_ have stored away 2 uno::References to this,
205  // so our ref count cannot be 1 here, so this isn't destroyed here
206  assert(m_refCount > 1);
207 }
208 
209 // XSection
210 
211 sal_Bool SAL_CALL OSection::getVisible()
212 {
213  ::osl::MutexGuard aGuard(m_aMutex);
214  return m_bVisible;
215 }
216 
217 void SAL_CALL OSection::setVisible( sal_Bool _visible )
218 {
219  set(PROPERTY_VISIBLE,_visible,m_bVisible);
220 }
221 
222 OUString SAL_CALL OSection::getName()
223 {
224  ::osl::MutexGuard aGuard(m_aMutex);
225  return m_sName;
226 }
227 
228 void SAL_CALL OSection::setName( const OUString& _name )
229 {
230  set(PROPERTY_NAME,_name,m_sName);
231 }
232 
233 ::sal_uInt32 SAL_CALL OSection::getHeight()
234 {
235  ::osl::MutexGuard aGuard(m_aMutex);
236  return m_nHeight;
237 }
238 
239 void SAL_CALL OSection::setHeight( ::sal_uInt32 _height )
240 {
241  set(PROPERTY_HEIGHT,_height,m_nHeight);
242 }
243 
244 ::sal_Int32 SAL_CALL OSection::getBackColor()
245 {
246  ::osl::MutexGuard aGuard(m_aMutex);
247  return m_bBacktransparent ? static_cast<sal_Int32>(COL_TRANSPARENT) : m_nBackgroundColor;
248 }
249 
250 void SAL_CALL OSection::setBackColor( ::sal_Int32 _backgroundcolor )
251 {
252  bool bTransparent = _backgroundcolor == static_cast<sal_Int32>(COL_TRANSPARENT);
253  setBackTransparent(bTransparent);
254  if ( !bTransparent )
255  set(PROPERTY_BACKCOLOR,_backgroundcolor,m_nBackgroundColor);
256 }
257 
258 sal_Bool SAL_CALL OSection::getBackTransparent()
259 {
260  ::osl::MutexGuard aGuard(m_aMutex);
261  return m_bBacktransparent;
262 }
263 
264 void SAL_CALL OSection::setBackTransparent( sal_Bool _backtransparent )
265 {
266  set(PROPERTY_BACKTRANSPARENT,_backtransparent,m_bBacktransparent);
267  if ( _backtransparent )
268  set(PROPERTY_BACKCOLOR,static_cast<sal_Int32>(COL_TRANSPARENT),m_nBackgroundColor);
269 }
270 
271 OUString SAL_CALL OSection::getConditionalPrintExpression()
272 {
273  ::osl::MutexGuard aGuard(m_aMutex);
274  return m_sConditionalPrintExpression;
275 }
276 
277 void SAL_CALL OSection::setConditionalPrintExpression( const OUString& _conditionalprintexpression )
278 {
279  set(PROPERTY_CONDITIONALPRINTEXPRESSION,_conditionalprintexpression,m_sConditionalPrintExpression);
280 }
281 
282 void OSection::checkNotPageHeaderFooter()
283 {
284  ::osl::MutexGuard aGuard(m_aMutex);
285  uno::Reference< report::XReportDefinition > xRet = m_xReportDefinition;
286  if ( xRet.is() )
287  {
288  if ( xRet->getPageHeaderOn() && xRet->getPageHeader() == *this )
289  throw beans::UnknownPropertyException();
290  if ( xRet->getPageFooterOn() && xRet->getPageFooter() == *this )
291  throw beans::UnknownPropertyException();
292  }
293 }
294 
295 ::sal_Int16 SAL_CALL OSection::getForceNewPage()
296 {
297  ::osl::MutexGuard aGuard(m_aMutex);
298 
299  checkNotPageHeaderFooter();
300  return m_nForceNewPage;
301 }
302 
303 void SAL_CALL OSection::setForceNewPage( ::sal_Int16 _forcenewpage )
304 {
305  if ( _forcenewpage < report::ForceNewPage::NONE || _forcenewpage > report::ForceNewPage::BEFORE_AFTER_SECTION )
306  throwIllegallArgumentException("css::report::ForceNewPage"
307  ,*this
308  ,1);
309  checkNotPageHeaderFooter();
310  set(PROPERTY_FORCENEWPAGE,_forcenewpage,m_nForceNewPage);
311 }
312 
313 ::sal_Int16 SAL_CALL OSection::getNewRowOrCol()
314 {
315  ::osl::MutexGuard aGuard(m_aMutex);
316  checkNotPageHeaderFooter();
317  return m_nNewRowOrCol;
318 }
319 
320 void SAL_CALL OSection::setNewRowOrCol( ::sal_Int16 _newroworcol )
321 {
322  if ( _newroworcol < report::ForceNewPage::NONE || _newroworcol > report::ForceNewPage::BEFORE_AFTER_SECTION )
323  throwIllegallArgumentException("css::report::ForceNewPage"
324  ,*this
325  ,1);
326  checkNotPageHeaderFooter();
327 
328  set(PROPERTY_NEWROWORCOL,_newroworcol,m_nNewRowOrCol);
329 }
330 
331 sal_Bool SAL_CALL OSection::getKeepTogether()
332 {
333  ::osl::MutexGuard aGuard(m_aMutex);
334  checkNotPageHeaderFooter();
335  return m_bKeepTogether;
336 }
337 
338 void SAL_CALL OSection::setKeepTogether( sal_Bool _keeptogether )
339 {
340  {
341  ::osl::MutexGuard aGuard(m_aMutex);
342  checkNotPageHeaderFooter();
343  }
344 
345  set(PROPERTY_KEEPTOGETHER,_keeptogether,m_bKeepTogether);
346 }
347 
348 sal_Bool SAL_CALL OSection::getCanGrow()
349 {
350  throw beans::UnknownPropertyException();
351 }
352 
353 void SAL_CALL OSection::setCanGrow( sal_Bool /*_cangrow*/ )
354 {
355  throw beans::UnknownPropertyException();
356 }
357 
358 sal_Bool SAL_CALL OSection::getCanShrink()
359 {
360  throw beans::UnknownPropertyException();
361 }
362 
363 void SAL_CALL OSection::setCanShrink( sal_Bool /*_canshrink*/ )
364 {
365  throw beans::UnknownPropertyException();
366 }
367 
368 sal_Bool SAL_CALL OSection::getRepeatSection()
369 {
370  ::osl::MutexGuard aGuard(m_aMutex);
371  uno::Reference< report::XGroup > xGroup = m_xGroup;
372  if ( !xGroup.is() )
373  throw beans::UnknownPropertyException();
374  return m_bRepeatSection;
375 }
376 
377 void SAL_CALL OSection::setRepeatSection( sal_Bool _repeatsection )
378 {
379  {
380  ::osl::MutexGuard aGuard(m_aMutex);
381  uno::Reference< report::XGroup > xGroup = m_xGroup;
382  if ( !xGroup.is() )
383  throw beans::UnknownPropertyException();
384  }
385  set(PROPERTY_REPEATSECTION,_repeatsection,m_bRepeatSection);
386 }
387 
388 uno::Reference< report::XGroup > SAL_CALL OSection::getGroup()
389 {
390  ::osl::MutexGuard aGuard(m_aMutex);
391  return m_xGroup;
392 }
393 
394 uno::Reference< report::XReportDefinition > SAL_CALL OSection::getReportDefinition()
395 {
396  ::osl::MutexGuard aGuard(m_aMutex);
397  uno::Reference< report::XReportDefinition > xRet = m_xReportDefinition;
398  uno::Reference< report::XGroup > xGroup = m_xGroup;
399  if ( !xRet.is() && xGroup.is() )
400  {
401  uno::Reference< report::XGroups> xGroups(xGroup->getGroups());
402  if ( xGroups.is() )
403  xRet = xGroups->getReportDefinition();
404  }
405 
406  return xRet;
407 }
408 
409 // XChild
410 uno::Reference< uno::XInterface > SAL_CALL OSection::getParent( )
411 {
412  uno::Reference< uno::XInterface > xRet;
413  {
414  ::osl::MutexGuard aGuard(m_aMutex);
415  xRet = m_xReportDefinition;
416  if ( !xRet.is() )
417  xRet = m_xGroup;
418  }
419  return xRet;
420 }
421 
422 void SAL_CALL OSection::setParent( const uno::Reference< uno::XInterface >& /*Parent*/ )
423 {
424  throw lang::NoSupportException();
425 }
426 
427 // XContainer
428 void SAL_CALL OSection::addContainerListener( const uno::Reference< container::XContainerListener >& xListener )
429 {
430  m_aContainerListeners.addInterface(xListener);
431 }
432 
433 void SAL_CALL OSection::removeContainerListener( const uno::Reference< container::XContainerListener >& xListener )
434 {
435  m_aContainerListeners.removeInterface(xListener);
436 }
437 
438 // XElementAccess
439 uno::Type SAL_CALL OSection::getElementType( )
440 {
442 }
443 
444 sal_Bool SAL_CALL OSection::hasElements( )
445 {
446  ::osl::MutexGuard aGuard(m_aMutex);
447  return m_xDrawPage.is() && m_xDrawPage->hasElements();
448 }
449 
450 // XIndexAccess
451 ::sal_Int32 SAL_CALL OSection::getCount( )
452 {
453  ::osl::MutexGuard aGuard(m_aMutex);
454  return m_xDrawPage.is() ? m_xDrawPage->getCount() : 0;
455 }
456 
457 uno::Any SAL_CALL OSection::getByIndex( ::sal_Int32 Index )
458 {
459  ::osl::MutexGuard aGuard(m_aMutex);
460  return m_xDrawPage.is() ? m_xDrawPage->getByIndex(Index) : uno::Any();
461 }
462 
463 // XEnumerationAccess
464 uno::Reference< container::XEnumeration > SAL_CALL OSection::createEnumeration( )
465 {
466  ::osl::MutexGuard aGuard(m_aMutex);
467  return new ::comphelper::OEnumerationByIndex(static_cast<XSection*>(this));
468 }
469 
470 uno::Reference< beans::XPropertySetInfo > SAL_CALL OSection::getPropertySetInfo( )
471 {
472  return SectionPropertySet::getPropertySetInfo();
473 }
474 
475 void SAL_CALL OSection::setPropertyValue( const OUString& aPropertyName, const uno::Any& aValue )
476 {
477  SectionPropertySet::setPropertyValue( aPropertyName, aValue );
478 }
479 
480 uno::Any SAL_CALL OSection::getPropertyValue( const OUString& PropertyName )
481 {
482  return SectionPropertySet::getPropertyValue( PropertyName);
483 }
484 
485 void SAL_CALL OSection::addPropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& xListener )
486 {
487  SectionPropertySet::addPropertyChangeListener( aPropertyName, xListener );
488 }
489 
490 void SAL_CALL OSection::removePropertyChangeListener( const OUString& aPropertyName, const uno::Reference< beans::XPropertyChangeListener >& aListener )
491 {
492  SectionPropertySet::removePropertyChangeListener( aPropertyName, aListener );
493 }
494 
495 void SAL_CALL OSection::addVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener )
496 {
497  SectionPropertySet::addVetoableChangeListener( PropertyName, aListener );
498 }
499 
500 void SAL_CALL OSection::removeVetoableChangeListener( const OUString& PropertyName, const uno::Reference< beans::XVetoableChangeListener >& aListener )
501 {
502  SectionPropertySet::removeVetoableChangeListener( PropertyName, aListener );
503 }
504 
505 void SAL_CALL OSection::add( const uno::Reference< drawing::XShape >& xShape )
506 {
507  {
508  ::osl::MutexGuard aGuard(m_aMutex);
509  m_bInInsertNotify = true;
510  OSL_ENSURE(m_xDrawPage.is(),"No DrawPage!");
511  m_xDrawPage->add(xShape);
512  m_bInInsertNotify = false;
513  }
514  notifyElementAdded(xShape);
515 }
516 
517 void SAL_CALL OSection::remove( const uno::Reference< drawing::XShape >& xShape )
518 {
519  {
520  ::osl::MutexGuard aGuard(m_aMutex);
521  m_bInRemoveNotify = true;
522  OSL_ENSURE(m_xDrawPage.is(),"No DrawPage!");
523  m_xDrawPage->remove(xShape);
524  m_bInRemoveNotify = false;
525  }
526  notifyElementRemoved(xShape);
527 }
528 
529 // XShapeGrouper
530 uno::Reference< drawing::XShapeGroup > SAL_CALL
531 OSection::group(uno::Reference< drawing::XShapes > const& xShapes)
532 {
533  // no lock because m_xDrawPage_ShapeGrouper is const
534  return (m_xDrawPage_ShapeGrouper.is())
535  ? m_xDrawPage_ShapeGrouper->group(xShapes)
536  : nullptr;
537 }
538 void SAL_CALL
539 OSection::ungroup(uno::Reference<drawing::XShapeGroup> const& xGroup)
540 {
541  // no lock because m_xDrawPage_ShapeGrouper is const
542  if (m_xDrawPage_ShapeGrouper.is()) {
543  m_xDrawPage_ShapeGrouper->ungroup(xGroup);
544  }
545 }
546 
547 // XFormsSupplier
548 uno::Reference<container::XNameContainer> SAL_CALL OSection::getForms()
549 {
550  // no lock because m_xDrawPage_FormSupplier is const
551  return (m_xDrawPage_FormSupplier.is())
552  ? m_xDrawPage_FormSupplier->getForms()
553  : nullptr;
554 }
555 // XFormsSupplier2
556 sal_Bool SAL_CALL OSection::hasForms()
557 {
558  // no lock because m_xDrawPage_FormSupplier is const
559  return (m_xDrawPage_FormSupplier.is())
560  && m_xDrawPage_FormSupplier->hasForms();
561 }
562 
563 
564 // css::lang::XUnoTunnel
565 
566 sal_Int64 OSection::getSomething( const uno::Sequence< sal_Int8 > & rId )
567 {
568  if (comphelper::isUnoTunnelId<OSection>(rId) )
569  return comphelper::getSomething_cast(this);
570  return (m_xDrawPage_Tunnel.is()) ? m_xDrawPage_Tunnel->getSomething(rId) : 0;
571 }
572 
573 uno::Sequence< sal_Int8 > OSection::getUnoTunnelId()
574 {
575  static const comphelper::UnoIdInit implId;
576  return implId.getSeq();
577 }
578 
579 void OSection::notifyElementAdded(const uno::Reference< drawing::XShape >& xShape )
580 {
581  if ( !m_bInInsertNotify )
582  {
583  container::ContainerEvent aEvent(static_cast<container::XContainer*>(this), uno::Any(), uno::makeAny(xShape), uno::Any());
584  m_aContainerListeners.notifyEach(&container::XContainerListener::elementInserted,aEvent);
585  }
586 }
587 
588 void OSection::notifyElementRemoved(const uno::Reference< drawing::XShape >& xShape)
589 {
590  if ( !m_bInRemoveNotify )
591  {
592  // notify our container listeners
593  container::ContainerEvent aEvent(static_cast<container::XContainer*>(this), uno::Any(), uno::makeAny(xShape), uno::Any());
594  m_aContainerListeners.notifyEach(&container::XContainerListener::elementRemoved,aEvent);
595  }
596 }
597 
598 } // namespace reportdesign
599 
600 
601 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void SetUnoPage(css::uno::Reference< css::drawing::XDrawPage > const &)
bool hasValue()
ULONG m_refCount
#define PROPERTY_VISIBLE
Definition: strings.hxx:35
constexpr::Color COL_TRANSPARENT(ColorTransparency, 0xFF, 0xFF, 0xFF, 0xFF)
#define PROPERTY_CANSHRINK
Definition: strings.hxx:46
void throwIllegallArgumentException(const OUString &_sTypeName, const uno::Reference< uno::XInterface > &ExceptionContext_, sal_Int16 ArgumentPosition_)
Definition: Tools.cxx:43
NONE
#define PROPERTY_REPEATSECTION
Definition: strings.hxx:47
#define PROPERTY_NEWROWORCOL
Definition: strings.hxx:43
OUString m_sName
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
std::mutex m_aMutex
sal_Int64 getSomething_cast(void *p)
#define SAL_N_ELEMENTS(arr)
const css::uno::Sequence< sal_Int8 > & getSeq() const
#define PROPERTY_NAME
Definition: strings.hxx:36
static css::uno::Reference< css::report::XSection > createOSection(const css::uno::Reference< css::report::XReportDefinition > &_xParent, const css::uno::Reference< css::uno::XComponentContext > &context, bool _bPageSection=false)
#define SERVICE_SECTION
Definition: strings.hxx:30
#define PROPERTY_CANGROW
Definition: strings.hxx:45
::cppu::WeakComponentImplHelper< css::report::XSection, css::lang::XServiceInfo, css::lang::XUnoTunnel, css::drawing::XDrawPage, css::drawing::XShapeGrouper, css::form::XFormsSupplier2 > SectionBase
Definition: Section.hxx:47
#define PROPERTY_BACKTRANSPARENT
Definition: strings.hxx:39
unsigned char sal_Bool
::cppu::PropertySetMixin< css::report::XSection > SectionPropertySet
Definition: Section.hxx:48
css::uno::Type const & get()
OSection(const OSection &)=delete
#define IMPLEMENT_FORWARD_REFCOUNT(classname, refcountbase)
static uno::Sequence< OUString > lcl_getGroupAbsent()
Definition: Section.cxx:41
#define PROPERTY_FORCENEWPAGE
Definition: strings.hxx:42
#define PROPERTY_HEIGHT
Definition: strings.hxx:37
#define PROPERTY_BACKCOLOR
Definition: strings.hxx:38
#define PROPERTY_CONDITIONALPRINTEXPRESSION
Definition: strings.hxx:110
#define PROPERTY_KEEPTOGETHER
Definition: strings.hxx:44
struct _ADOIndex Index
AnyEventRef aEvent
void set(css::uno::UnoInterfaceReference const &value)
static uno::Sequence< OUString > lcl_getAbsent(bool _bPageSection)
Definition: Section.cxx:52