LibreOffice Module reportdesign (master) 1
RptObject.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 <RptObject.hxx>
20#include <algorithm>
21
22#include <RptDef.hxx>
23#include <svx/unoshape.hxx>
24#include <RptModel.hxx>
25#include <RptObjectListener.hxx>
26#include <RptPage.hxx>
27
28#include <strings.hxx>
29#include <svtools/embedhlp.hxx>
30#include <com/sun/star/style/XStyle.hpp>
31#include <com/sun/star/awt/TextAlign.hpp>
32#include <com/sun/star/beans/XPropertySet.hpp>
33#include <com/sun/star/embed/XComponentSupplier.hpp>
34#include <com/sun/star/embed/XEmbeddedObject.hpp>
35#include <com/sun/star/lang/XServiceInfo.hpp>
36#include <com/sun/star/report/XFixedLine.hpp>
37#include <com/sun/star/chart/ChartDataRowSource.hpp>
38#include <com/sun/star/chart2/data/XDataReceiver.hpp>
39#include <com/sun/star/chart2/data/XDatabaseDataProvider.hpp>
40#include <com/sun/star/chart2/XChartDocument.hpp>
41#include <com/sun/star/style/ParagraphAdjust.hpp>
42#include <com/sun/star/report/XFormattedField.hpp>
46#include <svx/svdundo.hxx>
48#include <PropertyForward.hxx>
49#include <UndoEnv.hxx>
50#include <utility>
51
52namespace rptui
53{
54
55using namespace ::com::sun::star;
56using namespace uno;
57using namespace beans;
58using namespace reportdesign;
59using namespace container;
60using namespace report;
61
62SdrObjKind OObjectBase::getObjectType(const uno::Reference< report::XReportComponent>& _xComponent)
63{
64 uno::Reference< lang::XServiceInfo > xServiceInfo( _xComponent , uno::UNO_QUERY );
65 OSL_ENSURE(xServiceInfo.is(),"Who deletes the XServiceInfo interface!");
66 if ( !xServiceInfo )
67 return SdrObjKind::NONE;
68
69 if ( xServiceInfo->supportsService( SERVICE_FIXEDTEXT ))
70 return SdrObjKind::ReportDesignFixedText;
71 if ( xServiceInfo->supportsService( SERVICE_FIXEDLINE ))
72 {
73 uno::Reference< report::XFixedLine> xFixedLine(_xComponent,uno::UNO_QUERY);
74 return xFixedLine->getOrientation() ? SdrObjKind::ReportDesignHorizontalFixedLine : SdrObjKind::ReportDesignVerticalFixedLine;
75 }
76 if ( xServiceInfo->supportsService( SERVICE_IMAGECONTROL))
77 return SdrObjKind::ReportDesignImageControl;
78 if ( xServiceInfo->supportsService( SERVICE_FORMATTEDFIELD ))
79 return SdrObjKind::ReportDesignFormattedField;
80 if ( xServiceInfo->supportsService("com.sun.star.drawing.OLE2Shape") )
81 return SdrObjKind::OLE2;
82 if ( xServiceInfo->supportsService( SERVICE_SHAPE ))
83 return SdrObjKind::CustomShape;
84 if ( xServiceInfo->supportsService( SERVICE_REPORTDEFINITION ) )
85 return SdrObjKind::ReportDesignSubReport;
86 return SdrObjKind::OLE2;
87}
88
90 SdrModel& rTargetModel,
91 const uno::Reference< report::XReportComponent>& _xComponent)
92{
95 switch( nType )
96 {
97 case SdrObjKind::ReportDesignFixedText:
98 {
100 rTargetModel,
101 _xComponent,
102 OUString("com.sun.star.form.component.FixedText"),
103 SdrObjKind::ReportDesignFixedText);
104 pNewObj = pUnoObj;
105
106 uno::Reference<beans::XPropertySet> xControlModel(pUnoObj->GetUnoControlModel(),uno::UNO_QUERY);
107 if ( xControlModel.is() )
108 xControlModel->setPropertyValue( PROPERTY_MULTILINE,uno::Any(true));
109 }
110 break;
111 case SdrObjKind::ReportDesignImageControl:
112 pNewObj = new OUnoObject(
113 rTargetModel,
114 _xComponent,
115 OUString("com.sun.star.form.component.DatabaseImageControl"),
116 SdrObjKind::ReportDesignImageControl);
117 break;
118 case SdrObjKind::ReportDesignFormattedField:
119 pNewObj = new OUnoObject(
120 rTargetModel,
121 _xComponent,
122 OUString("com.sun.star.form.component.FormattedField"),
123 SdrObjKind::ReportDesignFormattedField);
124 break;
125 case SdrObjKind::ReportDesignHorizontalFixedLine:
126 case SdrObjKind::ReportDesignVerticalFixedLine:
127 pNewObj = new OUnoObject(
128 rTargetModel,
129 _xComponent,
130 OUString("com.sun.star.awt.UnoControlFixedLineModel"),
131 nType);
132 break;
133 case SdrObjKind::CustomShape:
134 pNewObj = OCustomShape::Create(
135 rTargetModel,
136 _xComponent);
137 try
138 {
139 bool bOpaque = false;
140 _xComponent->getPropertyValue(PROPERTY_OPAQUE) >>= bOpaque;
141 pNewObj->NbcSetLayer(bOpaque ? RPT_LAYER_FRONT : RPT_LAYER_BACK);
142 }
143 catch(const uno::Exception&)
144 {
145 DBG_UNHANDLED_EXCEPTION("reportdesign");
146 }
147 break;
148 case SdrObjKind::ReportDesignSubReport:
149 case SdrObjKind::OLE2:
150 pNewObj = OOle2Obj::Create(
151 rTargetModel,
152 _xComponent,
153 nType);
154 break;
155 default:
156 OSL_FAIL("Unknown object id");
157 break;
158 }
159
160 if ( pNewObj )
161 pNewObj->SetDoNotInsertIntoPageAutomatically( true );
162
163 return pNewObj;
164}
165
166namespace
167{
168 class ParaAdjust : public AnyConverter
169 {
170 public:
171 virtual css::uno::Any operator() (const OUString& _sPropertyName,const css::uno::Any& lhs) const override
172 {
173 uno::Any aRet;
174 if (_sPropertyName == PROPERTY_PARAADJUST)
175 {
176 sal_Int16 nTextAlign = 0;
177 lhs >>= nTextAlign;
178 style::ParagraphAdjust eAdjust;
179 switch(nTextAlign)
180 {
181 case awt::TextAlign::LEFT:
182 eAdjust = style::ParagraphAdjust_LEFT;
183 break;
184 case awt::TextAlign::CENTER:
185 eAdjust = style::ParagraphAdjust_CENTER;
186 break;
187 case awt::TextAlign::RIGHT:
188 eAdjust = style::ParagraphAdjust_RIGHT;
189 break;
190 default:
191 OSL_FAIL("Illegal text alignment value!");
192 break;
193 }
194 aRet <<= eAdjust;
195 }
196 else
197 {
198 sal_Int16 nTextAlign = 0;
199 sal_Int16 eParagraphAdjust = 0;
200 lhs >>= eParagraphAdjust;
201 switch(static_cast<style::ParagraphAdjust>(eParagraphAdjust))
202 {
203 case style::ParagraphAdjust_LEFT:
204 case style::ParagraphAdjust_BLOCK:
205 nTextAlign = awt::TextAlign::LEFT;
206 break;
207 case style::ParagraphAdjust_CENTER:
208 nTextAlign = awt::TextAlign::CENTER;
209 break;
210 case style::ParagraphAdjust_RIGHT:
211 nTextAlign = awt::TextAlign::RIGHT;
212 break;
213 default:
214 OSL_FAIL("Illegal text alignment value!");
215 break;
216 }
217 aRet <<= nTextAlign;
218 }
219 return aRet;
220 }
221 };
222}
223
225{
226 switch(_nObjectId)
227 {
228 case SdrObjKind::ReportDesignImageControl:
229 {
230 static TPropertyNamePair s_aNameMap = []()
231 {
232 auto aNoConverter = std::make_shared<AnyConverter>();
237 return tmp;
238 }();
239 return s_aNameMap;
240 }
241
242 case SdrObjKind::ReportDesignFixedText:
243 {
244 static TPropertyNamePair s_aNameMap = []()
245 {
246 auto aNoConverter = std::make_shared<AnyConverter>();
257
258 auto aParaAdjust = std::make_shared<ParaAdjust>();
259 tmp.emplace(PROPERTY_PARAADJUST,TPropertyConverter(PROPERTY_ALIGN,aParaAdjust));
260 return tmp;
261 }();
262 return s_aNameMap;
263 }
264 case SdrObjKind::ReportDesignFormattedField:
265 {
266 static TPropertyNamePair s_aNameMap = []()
267 {
268 auto aNoConverter = std::make_shared<AnyConverter>();
279 auto aParaAdjust = std::make_shared<ParaAdjust>();
280 tmp.emplace(PROPERTY_PARAADJUST,TPropertyConverter(PROPERTY_ALIGN,aParaAdjust));
281 return tmp;
282 }();
283 return s_aNameMap;
284 }
285
286 case SdrObjKind::CustomShape:
287 {
288 static TPropertyNamePair s_aNameMap = []()
289 {
290 auto aNoConverter = std::make_shared<AnyConverter>();
292 tmp.emplace(OUString("FillColor"),TPropertyConverter(PROPERTY_CONTROLBACKGROUND,aNoConverter));
293 tmp.emplace(PROPERTY_PARAADJUST,TPropertyConverter(PROPERTY_ALIGN,aNoConverter));
294 return tmp;
295 }();
296 return s_aNameMap;
297 }
298
299 default:
300 break;
301 }
302 static TPropertyNamePair s_aEmptyNameMap;
303 return s_aEmptyNameMap;
304}
305
306
307OObjectBase::OObjectBase(const uno::Reference< report::XReportComponent>& _xComponent)
308:m_bIsListening(false)
309{
310 m_xReportComponent = _xComponent;
311}
312
313OObjectBase::OObjectBase(OUString _sComponentName)
314:m_sComponentName(std::move(_sComponentName))
315,m_bIsListening(false)
316{
317}
318
320{
321 m_xMediator.clear();
322 if ( isListening() )
323 EndListening();
324 m_xReportComponent.clear();
325}
326
327uno::Reference< report::XSection> OObjectBase::getSection() const
328{
329 uno::Reference< report::XSection> xSection;
330 OReportPage* pPage = dynamic_cast<OReportPage*>(GetImplPage());
331 if ( pPage )
332 xSection = pPage->getSection();
333 return xSection;
334}
335
336
337uno::Reference< beans::XPropertySet> OObjectBase::getAwtComponent()
338{
339 return uno::Reference< beans::XPropertySet>();
340}
341
343{
344 OSL_ENSURE(!isListening(), "OUnoObject::StartListening: already listening!");
345
346 if ( !isListening() && m_xReportComponent.is() )
347 {
348 m_bIsListening = true;
349
350 if ( !m_xPropertyChangeListener.is() )
351 {
353 // register listener to all properties
354 m_xReportComponent->addPropertyChangeListener( OUString() , m_xPropertyChangeListener );
355 }
356 }
357}
358
360{
361 OSL_ENSURE(!m_xReportComponent.is() || isListening(), "OUnoObject::EndListening: not listening currently!");
362
363 if ( isListening() && m_xReportComponent.is() )
364 {
365 // XPropertyChangeListener
366 if ( m_xPropertyChangeListener.is() )
367 {
368 // remove listener
369 try
370 {
371 m_xReportComponent->removePropertyChangeListener( OUString() , m_xPropertyChangeListener );
372 }
373 catch(const uno::Exception &)
374 {
375 TOOLS_WARN_EXCEPTION( "package", "OObjectBase::EndListening");
376 }
377 }
379 }
380 m_bIsListening = false;
381}
382
384{
385 // set properties
386 OReportPage* pPage = dynamic_cast<OReportPage*>(GetImplPage());
387 if ( pPage && !_rRect.IsEmpty() )
388 {
389 const uno::Reference<report::XSection>& xSection = pPage->getSection();
390 assert(_rRect.getOpenHeight() >= 0);
391 const sal_uInt32 newHeight( ::std::max(tools::Long(0), _rRect.getOpenHeight()+_rRect.Top()) );
392 if ( xSection.is() && ( newHeight > xSection->getHeight() ) )
393 xSection->setHeight( newHeight );
394
395 // TODO
396 //pModel->GetRefDevice()->Invalidate(InvalidateFlags::Children);
397 }
398}
399
400void OObjectBase::_propertyChange( const beans::PropertyChangeEvent& /*evt*/ )
401{
402}
403
404bool OObjectBase::supportsService( const OUString& _sServiceName ) const
405{
406 // TODO: cache xServiceInfo as member?
407 Reference< lang::XServiceInfo > xServiceInfo( m_xReportComponent , UNO_QUERY );
408
409 if ( xServiceInfo.is() )
410 return cppu::supportsService(xServiceInfo.get(), _sServiceName);
411 else
412 return false;
413}
414
415
416uno::Reference< drawing::XShape > OObjectBase::getUnoShapeOf( SdrObject& _rSdrObject )
417{
418 uno::Reference< drawing::XShape > xShape( _rSdrObject.getWeakUnoShape() );
419 if ( xShape.is() )
420 return xShape;
421
422 xShape = _rSdrObject.SdrObject::getUnoShape();
423 if ( !xShape.is() )
424 return xShape;
425
426 m_xKeepShapeAlive = xShape;
427 return xShape;
428}
429
431 SdrModel& rSdrModel,
432 const uno::Reference< report::XReportComponent>& _xComponent)
433: SdrObjCustomShape(rSdrModel)
434 ,OObjectBase(_xComponent)
435{
436 setUnoShape( uno::Reference< drawing::XShape >(_xComponent,uno::UNO_QUERY_THROW) );
437 m_bIsListening = true;
438}
439
441 SdrModel& rSdrModel,
442 const OUString& _sComponentName)
443: SdrObjCustomShape(rSdrModel)
444 ,OObjectBase(_sComponentName)
445{
446 m_bIsListening = true;
447}
448
449
451{
452}
453
455{
456 return SdrObjKind::CustomShape;
457}
458
460{
461 return SdrInventor::ReportDesign;
462}
463
465{
467}
468
469void OCustomShape::NbcMove( const Size& rSize )
470{
471 if ( m_bIsListening )
472 {
473 m_bIsListening = false;
474
475 if ( m_xReportComponent.is() )
476 {
477 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
479 m_xReportComponent->setPositionX(m_xReportComponent->getPositionX() + rSize.Width());
480 m_xReportComponent->setPositionY(m_xReportComponent->getPositionY() + rSize.Height());
481 }
482
483 // set geometry properties
485
486 m_bIsListening = true;
487 }
488 else
490}
491
492void OCustomShape::NbcResize(const Point& rRef, const Fraction& xFract, const Fraction& yFract)
493{
494 SdrObjCustomShape::NbcResize( rRef, xFract, yFract );
495
497}
498
500{
502 SetPropsFromRect(rRect);
503}
504
506{
507 bool bResult = SdrObjCustomShape::EndCreate(rStat, eCmd);
508 if ( bResult )
509 {
510 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
512
513 if ( !m_xReportComponent.is() )
514 m_xReportComponent.set(getUnoShape(),uno::UNO_QUERY);
515
517 }
518
519 return bResult;
520}
521
522
523uno::Reference< beans::XPropertySet> OCustomShape::getAwtComponent()
524{
525 return m_xReportComponent;
526}
527
528
529uno::Reference< drawing::XShape > OCustomShape::getUnoShape()
530{
531 uno::Reference<drawing::XShape> xShape = OObjectBase::getUnoShapeOf( *this );
532 if ( !m_xReportComponent.is() )
533 {
534 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
536 m_xReportComponent.set(xShape,uno::UNO_QUERY);
537 }
538 return xShape;
539}
540
541void OCustomShape::setUnoShape( const uno::Reference< drawing::XShape >& rxUnoShape )
542{
543 SdrObjCustomShape::setUnoShape( rxUnoShape );
545 m_xReportComponent.clear();
546}
547
549 SdrModel& rSdrModel,
550 const OUString& _sComponentName,
551 const OUString& rModelName,
552 SdrObjKind _nObjectType)
553: SdrUnoObj(rSdrModel, rModelName)
554 ,OObjectBase(_sComponentName)
555 ,m_nObjectType(_nObjectType)
556 // tdf#119067
557 ,m_bSetDefaultLabel(false)
558{
559 if ( !rModelName.isEmpty() )
561}
562
564 SdrModel& rSdrModel, OUnoObject const & rSource)
565: SdrUnoObj(rSdrModel, rSource)
566 ,OObjectBase(rSource.getServiceName())
567 ,m_nObjectType(rSource.m_nObjectType)
568 // tdf#119067
569 ,m_bSetDefaultLabel(rSource.m_bSetDefaultLabel)
570{
571 osl_atomic_increment(&m_refCount); // getUnoShape will ref-count this
572 {
573 if ( !rSource.getUnoControlModelTypeName().isEmpty() )
575 Reference<XPropertySet> xSource(const_cast<OUnoObject&>(rSource).getUnoShape(), uno::UNO_QUERY);
576 Reference<XPropertySet> xDest(getUnoShape(), uno::UNO_QUERY);
577 if ( xSource.is() && xDest.is() )
578 comphelper::copyProperties(xSource, xDest);
579 }
580 osl_atomic_decrement(&m_refCount);
581}
582
584 SdrModel& rSdrModel,
585 const uno::Reference< report::XReportComponent>& _xComponent,
586 const OUString& rModelName,
587 SdrObjKind _nObjectType)
588: SdrUnoObj(rSdrModel, rModelName)
589 ,OObjectBase(_xComponent)
590 ,m_nObjectType(_nObjectType)
591 // tdf#119067
592 ,m_bSetDefaultLabel(false)
593{
594 setUnoShape( uno::Reference< drawing::XShape >( _xComponent, uno::UNO_QUERY_THROW ) );
595
596 if ( !rModelName.isEmpty() )
598
599}
600
602{
603}
604
606{
607 try
608 {
609 Reference< XFormattedField > xFormatted( m_xReportComponent, UNO_QUERY );
610 if ( xFormatted.is() )
611 {
612 const Reference< XPropertySet > xModelProps( GetUnoControlModel(), UNO_QUERY_THROW );
613 xModelProps->setPropertyValue( "TreatAsNumber", Any( false ) );
614 xModelProps->setPropertyValue( PROPERTY_VERTICALALIGN,m_xReportComponent->getPropertyValue(PROPERTY_VERTICALALIGN));
615 }
616 }
617 catch( const Exception& )
618 {
619 DBG_UNHANDLED_EXCEPTION("reportdesign");
620 }
621}
622
624{
625 return m_nObjectType;
626}
627
629{
630 return SdrInventor::ReportDesign;
631}
632
634{
636}
637
638void OUnoObject::NbcMove( const Size& rSize )
639{
640
641 if ( m_bIsListening )
642 {
643 // stop listening
645
646 bool bPositionFixed = false;
647 Size aUndoSize(0,0);
648 if ( m_xReportComponent.is() )
649 {
650 bool bUndoMode = false;
651 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
652
653 if (rRptModel.GetUndoEnv().IsUndoMode())
654 {
655 // if we are locked from outside, then we must not handle wrong moves, we are in UNDO mode
656 bUndoMode = true;
657 }
659
660 // LLA: why there exists getPositionX and getPositionY and NOT getPosition() which return a Point?
661 int nNewX = m_xReportComponent->getPositionX() + rSize.Width();
662 m_xReportComponent->setPositionX(nNewX);
663 int nNewY = m_xReportComponent->getPositionY() + rSize.Height();
664 if (nNewY < 0 && !bUndoMode)
665 {
666 aUndoSize.setHeight( abs(nNewY) );
667 bPositionFixed = true;
668 nNewY = 0;
669 }
670 m_xReportComponent->setPositionY(nNewY);
671 }
672 if (bPositionFixed)
673 {
674 getSdrModelFromSdrObject().AddUndo(getSdrModelFromSdrObject().GetSdrUndoFactory().CreateUndoMoveObject(*this, aUndoSize));
675 }
676 // set geometry properties
678
679 // start listening
681 }
682 else
683 SdrUnoObj::NbcMove( rSize );
684}
685
686
687void OUnoObject::NbcResize(const Point& rRef, const Fraction& xFract, const Fraction& yFract)
688{
689 SdrUnoObj::NbcResize( rRef, xFract, yFract );
690
691 // stop listening
693
694 // set geometry properties
696
697 // start listening
699}
700
702{
704 // stop listening
706
707 // set geometry properties
708 SetPropsFromRect(rRect);
709
710 // start listening
712}
713
715{
716 const bool bResult(SdrUnoObj::EndCreate(rStat, eCmd));
717
718 if(bResult)
719 {
720 // tdf#118730 remember if this object was created interactively (due to ::EndCreate being called)
721 m_bSetDefaultLabel = true;
722
723 // set geometry properties
725 }
726
727 return bResult;
728}
729
731{
732 OUString aDefaultName = "HERE WE HAVE TO INSERT OUR NAME!";
733 if ( _pObj->supportsService( SERVICE_FIXEDTEXT ) )
734 {
735 aDefaultName = RID_STR_CLASS_FIXEDTEXT;
736 }
737 else if ( _pObj->supportsService( SERVICE_FIXEDLINE ) )
738 {
739 aDefaultName = RID_STR_CLASS_FIXEDLINE;
740 }
741 else if ( _pObj->supportsService( SERVICE_IMAGECONTROL ) )
742 {
743 aDefaultName = RID_STR_CLASS_IMAGECONTROL;
744 }
745 else if ( _pObj->supportsService( SERVICE_FORMATTEDFIELD ) )
746 {
747 aDefaultName = RID_STR_CLASS_FORMATTEDFIELD;
748 }
749
750 return aDefaultName;
751}
752
753void OUnoObject::_propertyChange( const beans::PropertyChangeEvent& evt )
754{
756 if (!isListening())
757 return;
758
759 if ( evt.PropertyName == PROPERTY_CHARCOLOR )
760 {
761 Reference<XPropertySet> xControlModel(GetUnoControlModel(),uno::UNO_QUERY);
762 if ( xControlModel.is() )
763 {
765 try
766 {
767 xControlModel->setPropertyValue(PROPERTY_TEXTCOLOR,evt.NewValue);
768 }
769 catch(uno::Exception&)
770 {
771 }
773 }
774 }
775 else if ( evt.PropertyName == PROPERTY_NAME )
776 {
777 Reference<XPropertySet> xControlModel(GetUnoControlModel(),uno::UNO_QUERY);
778 if ( xControlModel.is() && xControlModel->getPropertySetInfo()->hasPropertyByName(PROPERTY_NAME) )
779 {
780 // get old name
781 OUString aOldName;
782 evt.OldValue >>= aOldName;
783
784 // get new name
785 OUString aNewName;
786 evt.NewValue >>= aNewName;
787
788 if ( aNewName != aOldName )
789 {
790 // set old name property
792 if ( m_xMediator.is() )
793 m_xMediator->stopListening();
794 try
795 {
796 xControlModel->setPropertyValue( PROPERTY_NAME, evt.NewValue );
797 }
798 catch(uno::Exception&)
799 {
800 }
801 if ( m_xMediator.is() )
802 m_xMediator->startListening();
804 }
805 }
806 }
807}
808
809void OUnoObject::CreateMediator(bool _bReverse)
810{
811 if ( m_xMediator.is() )
812 return;
813
814 // tdf#118730 Directly do things formerly done in
815 // OUnoObject::impl_setReportComponent_nothrow here
816 if(!m_xReportComponent.is())
817 {
818 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
820 m_xReportComponent.set(getUnoShape(),uno::UNO_QUERY);
821
823 }
824
826 {
827 // tdf#118730 Directly do things formerly done in
828 // OUnoObject::EndCreate here
829 // tdf#119067 ...but *only* if result of interactive
830 // creation in Report DesignView
831 m_bSetDefaultLabel = false;
832
833 try
834 {
836 {
837 m_xReportComponent->setPropertyValue(
839 uno::Any(GetDefaultName(this)));
840 }
841 }
842 catch(const uno::Exception&)
843 {
844 DBG_UNHANDLED_EXCEPTION("reportdesign");
845 }
846 }
847
848 if(!m_xMediator.is() && m_xReportComponent.is())
849 {
850 Reference<XPropertySet> xControlModel(GetUnoControlModel(),uno::UNO_QUERY);
851
852 if(xControlModel.is())
853 {
856 xControlModel,
858 _bReverse);
859 }
860 }
861
863}
864
865uno::Reference< beans::XPropertySet> OUnoObject::getAwtComponent()
866{
867 return Reference<XPropertySet>(GetUnoControlModel(),uno::UNO_QUERY);
868}
869
870
871uno::Reference< drawing::XShape > OUnoObject::getUnoShape()
872{
873 return OObjectBase::getUnoShapeOf( *this );
874}
875
876void OUnoObject::setUnoShape( const uno::Reference< drawing::XShape >& rxUnoShape )
877{
878 SdrUnoObj::setUnoShape( rxUnoShape );
880}
881
883{
884 return new OUnoObject(rTargetModel, *this);
885}
886
887// OOle2Obj
889 SdrModel& rSdrModel,
890 const uno::Reference< report::XReportComponent>& _xComponent,
891 SdrObjKind _nType)
892: SdrOle2Obj(rSdrModel)
893 ,OObjectBase(_xComponent)
894 ,m_nType(_nType)
895 ,m_bOnlyOnce(true)
896{
897 setUnoShape( uno::Reference< drawing::XShape >( _xComponent, uno::UNO_QUERY_THROW ) );
898 m_bIsListening = true;
899}
900
902 SdrModel& rSdrModel,
903 const OUString& _sComponentName,
904 SdrObjKind _nType)
905: SdrOle2Obj(rSdrModel)
906 ,OObjectBase(_sComponentName)
907 ,m_nType(_nType)
908 ,m_bOnlyOnce(true)
909{
910 m_bIsListening = true;
911}
912
913static uno::Reference< chart2::data::XDatabaseDataProvider > lcl_getDataProvider(const uno::Reference < embed::XEmbeddedObject >& _xObj);
914
915OOle2Obj::OOle2Obj(SdrModel& rSdrModel, OOle2Obj const & rSource)
916: SdrOle2Obj(rSdrModel, rSource)
917 ,OObjectBase(rSource.getServiceName())
918 ,m_nType(rSource.m_nType)
919 ,m_bOnlyOnce(rSource.m_bOnlyOnce)
920{
921 m_bIsListening = true;
922
923 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
926
927 uno::Reference< chart2::data::XDatabaseDataProvider > xSource( lcl_getDataProvider(rSource.GetObjRef()) );
928 uno::Reference< chart2::data::XDatabaseDataProvider > xDest( lcl_getDataProvider(GetObjRef()) );
929 if ( xSource.is() && xDest.is() )
930 comphelper::copyProperties(xSource, xDest);
931
933}
934
936{
937}
938
940{
941 return m_nType;
942}
943
945{
946 return SdrInventor::ReportDesign;
947}
948
950{
952}
953
954void OOle2Obj::NbcMove( const Size& rSize )
955{
956
957 if ( m_bIsListening )
958 {
959 // stop listening
961
962 bool bPositionFixed = false;
963 Size aUndoSize(0,0);
964 if ( m_xReportComponent.is() )
965 {
966 bool bUndoMode = false;
967 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
968
969 if (rRptModel.GetUndoEnv().IsUndoMode())
970 {
971 // if we are locked from outside, then we must not handle wrong moves, we are in UNDO mode
972 bUndoMode = true;
973 }
975
976 // LLA: why there exists getPositionX and getPositionY and NOT getPosition() which return a Point?
977 int nNewX = m_xReportComponent->getPositionX() + rSize.Width();
978 // can this hinder us to set components outside the area?
979 // if (nNewX < 0)
980 // {
981 // nNewX = 0;
982 // }
983 m_xReportComponent->setPositionX(nNewX);
984 int nNewY = m_xReportComponent->getPositionY() + rSize.Height();
985 if (nNewY < 0 && !bUndoMode)
986 {
987 aUndoSize.setHeight( abs(nNewY) );
988 bPositionFixed = true;
989 nNewY = 0;
990 }
991 m_xReportComponent->setPositionY(nNewY);
992 }
993 if (bPositionFixed)
994 {
995 getSdrModelFromSdrObject().AddUndo(getSdrModelFromSdrObject().GetSdrUndoFactory().CreateUndoMoveObject(*this, aUndoSize));
996 }
997 // set geometry properties
999
1000 // start listening
1002 }
1003 else
1004 SdrOle2Obj::NbcMove( rSize );
1005}
1006
1007
1008void OOle2Obj::NbcResize(const Point& rRef, const Fraction& xFract, const Fraction& yFract)
1009{
1010 SdrOle2Obj::NbcResize( rRef, xFract, yFract );
1011
1012 // stop listening
1014
1015 // set geometry properties
1017
1018 // start listening
1020}
1021
1023{
1025 // stop listening
1027
1028 // set geometry properties
1029 SetPropsFromRect(rRect);
1030
1031 // start listening
1033}
1034
1035
1037{
1038 bool bResult = SdrOle2Obj::EndCreate(rStat, eCmd);
1039 if ( bResult )
1040 {
1041 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
1043
1044 if ( !m_xReportComponent.is() )
1045 m_xReportComponent.set(getUnoShape(),uno::UNO_QUERY);
1046
1047 // set geometry properties
1049 }
1050
1051 return bResult;
1052}
1053
1054uno::Reference< beans::XPropertySet> OOle2Obj::getAwtComponent()
1055{
1056 return m_xReportComponent;
1057}
1058
1059
1060uno::Reference< drawing::XShape > OOle2Obj::getUnoShape()
1061{
1062 uno::Reference< drawing::XShape> xShape = OObjectBase::getUnoShapeOf( *this );
1063 if ( !m_xReportComponent.is() )
1064 {
1065 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
1067 m_xReportComponent.set(xShape,uno::UNO_QUERY);
1068 }
1069 return xShape;
1070}
1071
1072void OOle2Obj::setUnoShape( const uno::Reference< drawing::XShape >& rxUnoShape )
1073{
1074 SdrOle2Obj::setUnoShape( rxUnoShape );
1076 m_xReportComponent.clear();
1077}
1078
1079
1080static uno::Reference< chart2::data::XDatabaseDataProvider > lcl_getDataProvider(const uno::Reference < embed::XEmbeddedObject >& _xObj)
1081{
1082 uno::Reference< chart2::data::XDatabaseDataProvider > xSource;
1083 uno::Reference< embed::XComponentSupplier > xCompSupp(_xObj);
1084 if( xCompSupp.is())
1085 {
1086 uno::Reference< chart2::XChartDocument> xChartDoc( xCompSupp->getComponent(), uno::UNO_QUERY );
1087 if ( xChartDoc.is() )
1088 {
1089 xSource.set(xChartDoc->getDataProvider(),uno::UNO_QUERY);
1090 }
1091 }
1092 return xSource;
1093}
1094
1095// Clone() should make a complete copy of the object.
1097{
1098 return new OOle2Obj(rTargetModel, *this);
1099}
1100
1101void OOle2Obj::impl_createDataProvider_nothrow(const uno::Reference< frame::XModel>& _xModel)
1102{
1103 try
1104 {
1105 uno::Reference < embed::XEmbeddedObject > xObj = GetObjRef();
1106 uno::Reference< chart2::data::XDataReceiver > xReceiver;
1107 uno::Reference< embed::XComponentSupplier > xCompSupp( xObj );
1108 if( xCompSupp.is())
1109 xReceiver.set( xCompSupp->getComponent(), uno::UNO_QUERY );
1110 OSL_ASSERT( xReceiver.is());
1111 if( xReceiver.is() )
1112 {
1113 uno::Reference< lang::XMultiServiceFactory> xFac(_xModel,uno::UNO_QUERY);
1114 uno::Reference< chart2::data::XDatabaseDataProvider > xDataProvider( xFac->createInstance("com.sun.star.chart2.data.DataProvider"),uno::UNO_QUERY);
1115 xReceiver->attachDataProvider( xDataProvider );
1116 }
1117 }
1118 catch(const uno::Exception &)
1119 {
1120 }
1121}
1122
1124{
1125 if ( !m_bOnlyOnce )
1126 return;
1127
1128 m_bOnlyOnce = false;
1129 uno::Reference < embed::XEmbeddedObject > xObj = GetObjRef();
1130 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
1131 rRptModel.GetUndoEnv().AddElement(lcl_getDataProvider(xObj));
1132
1133 uno::Reference< embed::XComponentSupplier > xCompSupp( xObj );
1134 if( xCompSupp.is() )
1135 {
1136 uno::Reference< beans::XPropertySet > xChartProps( xCompSupp->getComponent(), uno::UNO_QUERY );
1137 if ( xChartProps.is() )
1138 xChartProps->setPropertyValue("NullDate",
1139 uno::Any(util::DateTime(0,0,0,0,30,12,1899,false)));
1140 }
1141}
1142
1143void OOle2Obj::initializeChart( const uno::Reference< frame::XModel>& _xModel)
1144{
1145 uno::Reference < embed::XEmbeddedObject > xObj = GetObjRef();
1146 uno::Reference< chart2::data::XDataReceiver > xReceiver;
1147 uno::Reference< embed::XComponentSupplier > xCompSupp( xObj );
1148 if( xCompSupp.is())
1149 xReceiver.set( xCompSupp->getComponent(), uno::UNO_QUERY );
1150 OSL_ASSERT( xReceiver.is());
1151 if( !xReceiver.is() )
1152 return;
1153
1154 // lock the model to suppress any internal updates
1155 uno::Reference< frame::XModel > xChartModel( xReceiver, uno::UNO_QUERY );
1156 if( xChartModel.is() )
1157 xChartModel->lockControllers();
1158
1159 if ( !lcl_getDataProvider(xObj).is() )
1161
1162 OReportModel& rRptModel(static_cast< OReportModel& >(getSdrModelFromSdrObject()));
1163 rRptModel.GetUndoEnv().AddElement(lcl_getDataProvider(xObj));
1164
1166 aArgs.put( "CellRangeRepresentation", uno::Any( OUString( "all" ) ) );
1167 aArgs.put( "HasCategories", uno::Any( true ) );
1168 aArgs.put( "FirstCellAsLabel", uno::Any( true ) );
1169 aArgs.put( "DataRowSource", uno::Any( chart::ChartDataRowSource_COLUMNS ) );
1170 xReceiver->setArguments( aArgs.getPropertyValues() );
1171
1172 if( xChartModel.is() )
1173 xChartModel->unlockControllers();
1174}
1175
1176uno::Reference< style::XStyle> getUsedStyle(const uno::Reference< report::XReportDefinition>& _xReport)
1177{
1178 uno::Reference<container::XNameAccess> xStyles = _xReport->getStyleFamilies();
1179 uno::Reference<container::XNameAccess> xPageStyles(xStyles->getByName("PageStyles"),uno::UNO_QUERY);
1180
1181 uno::Reference< style::XStyle> xReturn;
1182 const uno::Sequence< OUString> aSeq = xPageStyles->getElementNames();
1183 for(const OUString& rName : aSeq)
1184 {
1185 uno::Reference< style::XStyle> xStyle(xPageStyles->getByName(rName),uno::UNO_QUERY);
1186 if ( xStyle->isInUse() )
1187 {
1188 xReturn = xStyle;
1189 break;
1190 }
1191 }
1192 return xReturn;
1193}
1194
1195
1196} // rptui
1197
1198
1199/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual const tools::Rectangle & GetSnapRect() const override
void AddUndo(std::unique_ptr< SdrUndoAction > pUndo)
virtual void NbcMove(const Size &rSiz) override
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd) override
virtual void NbcSetLogicRect(const tools::Rectangle &rRect) override
virtual void setUnoShape(const css::uno::Reference< css::drawing::XShape > &rxUnoShape) override
const css::uno::WeakReference< css::drawing::XShape > & getWeakUnoShape() const
virtual void setUnoShape(const css::uno::Reference< css::drawing::XShape > &_rxUnoShape)
SdrModel & getSdrModelFromSdrObject() const
SdrPage * getSdrPageFromSdrObject() const
css::uno::Reference< css::embed::XEmbeddedObject > const & GetObjRef() const
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
virtual void NbcMove(const Size &rSize) override
virtual void NbcSetLogicRect(const tools::Rectangle &rRect) override
virtual void NbcSetLogicRect(const tools::Rectangle &rRect) override
virtual void NbcMove(const Size &rSiz) override
virtual const tools::Rectangle & GetLogicRect() const override
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd) override
const css::uno::Reference< css::awt::XControlModel > & GetUnoControlModel() const
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
const OUString & getUnoControlModelTypeName() const
constexpr tools::Long Height() const
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
bool put(const OUString &_rValueName, const VALUE_TYPE &_rValue)
css::uno::Sequence< css::beans::PropertyValue > getPropertyValues() const
static rtl::Reference< OCustomShape > Create(SdrModel &rSdrModel, const css::uno::Reference< css::report::XReportComponent > &_xComponent)
Definition: RptObject.hxx:128
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd) override
Definition: RptObject.cxx:505
virtual css::uno::Reference< css::beans::XPropertySet > getAwtComponent() override
Definition: RptObject.cxx:523
virtual ~OCustomShape() override
Definition: RptObject.cxx:450
virtual SdrInventor GetObjInventor() const override
Definition: RptObject.cxx:459
virtual void NbcSetLogicRect(const tools::Rectangle &rRect) override
Definition: RptObject.cxx:499
virtual SdrObjKind GetObjIdentifier() const override
Definition: RptObject.cxx:454
virtual void NbcMove(const Size &rSize) override
Definition: RptObject.cxx:469
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
Definition: RptObject.cxx:492
virtual SdrPage * GetImplPage() const override
Definition: RptObject.cxx:464
virtual css::uno::Reference< css::drawing::XShape > getUnoShape() override
Definition: RptObject.cxx:529
OCustomShape(SdrModel &rSdrModel, const css::uno::Reference< css::report::XReportComponent > &_xComponent)
virtual void setUnoShape(const css::uno::Reference< css::drawing::XShape > &rxUnoShape) override
Definition: RptObject.cxx:541
css::uno::Reference< css::drawing::XShape > getUnoShapeOf(SdrObject &_rSdrObject)
called by instances of derived classes to implement their overriding of getUnoShape
Definition: RptObject.cxx:416
bool isListening() const
Definition: RptObject.hxx:78
virtual SdrPage * GetImplPage() const =0
OObjectBase(const css::uno::Reference< css::report::XReportComponent > &_xComponent)
css::uno::Reference< css::beans::XPropertyChangeListener > m_xPropertyChangeListener
Definition: RptObject.hxx:67
void releaseUnoShape()
releases the reference to our UNO shape (m_xKeepShapeAlive)
Definition: RptObject.hxx:108
bool supportsService(const OUString &_sServiceName) const
Definition: RptObject.cxx:404
static rtl::Reference< SdrObject > createObject(SdrModel &rTargetModel, const css::uno::Reference< css::report::XReportComponent > &_xComponent)
Definition: RptObject.cxx:89
css::uno::Reference< css::report::XReportComponent > m_xReportComponent
Definition: RptObject.hxx:68
void SetPropsFromRect(const tools::Rectangle &_rRect)
Definition: RptObject.cxx:383
virtual void _propertyChange(const css::beans::PropertyChangeEvent &evt)
Definition: RptObject.cxx:400
css::uno::Reference< css::uno::XInterface > m_xKeepShapeAlive
Definition: RptObject.hxx:69
rtl::Reference< OPropertyMediator > m_xMediator
Definition: RptObject.hxx:66
css::uno::Reference< css::report::XSection > getSection() const
Definition: RptObject.cxx:327
virtual css::uno::Reference< css::beans::XPropertySet > getAwtComponent()
Definition: RptObject.cxx:337
virtual ~OObjectBase()
Definition: RptObject.cxx:319
static SdrObjKind getObjectType(const css::uno::Reference< css::report::XReportComponent > &_xComponent)
Definition: RptObject.cxx:62
OOle2Obj(SdrModel &rSdrModel, const css::uno::Reference< css::report::XReportComponent > &_xComponent, SdrObjKind _nType)
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
Definition: RptObject.cxx:1008
virtual css::uno::Reference< css::drawing::XShape > getUnoShape() override
Definition: RptObject.cxx:1060
SdrObjKind m_nType
Definition: RptObject.hxx:213
virtual void NbcSetLogicRect(const tools::Rectangle &rRect) override
Definition: RptObject.cxx:1022
virtual rtl::Reference< SdrObject > CloneSdrObject(SdrModel &rTargetModel) const override
Definition: RptObject.cxx:1096
virtual SdrObjKind GetObjIdentifier() const override
Definition: RptObject.cxx:939
virtual ~OOle2Obj() override
Definition: RptObject.cxx:935
virtual void initializeOle() override
Definition: RptObject.cxx:1123
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd) override
Definition: RptObject.cxx:1036
virtual css::uno::Reference< css::beans::XPropertySet > getAwtComponent() override
Definition: RptObject.cxx:1054
virtual void NbcMove(const Size &rSize) override
Definition: RptObject.cxx:954
virtual void setUnoShape(const css::uno::Reference< css::drawing::XShape > &rxUnoShape) override
Definition: RptObject.cxx:1072
void initializeChart(const css::uno::Reference< css::frame::XModel > &_xModel)
Definition: RptObject.cxx:1143
virtual SdrPage * GetImplPage() const override
Definition: RptObject.cxx:949
void impl_createDataProvider_nothrow(const css::uno::Reference< css::frame::XModel > &_xModel)
Definition: RptObject.cxx:1101
virtual SdrInventor GetObjInventor() const override
Definition: RptObject.cxx:944
static rtl::Reference< OOle2Obj > Create(SdrModel &rSdrModel, const css::uno::Reference< css::report::XReportComponent > &_xComponent, SdrObjKind _nType)
Definition: RptObject.hxx:172
This class ensures the communication between two XPropertySet instances.
OXUndoEnvironment & GetUndoEnv()
Definition: RptModel.hxx:65
css::uno::Reference< css::report::XReportDefinition > getReportDefinition() const
returns the XReportDefinition which the OReportModel belongs to
Definition: RptModel.cxx:135
const css::uno::Reference< css::report::XSection > & getSection() const
Definition: RptPage.hxx:82
virtual void setUnoShape(const css::uno::Reference< css::drawing::XShape > &rxUnoShape) override
Definition: RptObject.cxx:876
virtual ~OUnoObject() override
Definition: RptObject.cxx:601
virtual bool EndCreate(SdrDragStat &rStat, SdrCreateCmd eCmd) override
Definition: RptObject.cxx:714
virtual css::uno::Reference< css::drawing::XShape > getUnoShape() override
Definition: RptObject.cxx:871
void impl_initializeModel_nothrow()
Definition: RptObject.cxx:605
virtual SdrInventor GetObjInventor() const override
Definition: RptObject.cxx:628
virtual void NbcMove(const Size &rSize) override
Definition: RptObject.cxx:638
virtual css::uno::Reference< css::beans::XPropertySet > getAwtComponent() override
Definition: RptObject.cxx:865
virtual SdrObjKind GetObjIdentifier() const override
Definition: RptObject.cxx:623
OUnoObject(SdrModel &rSdrModel, const OUString &_sComponentName, const OUString &rModelName, SdrObjKind _nObjectType)
Definition: RptObject.cxx:548
static OUString GetDefaultName(const OUnoObject *_pObj)
Definition: RptObject.cxx:730
virtual void _propertyChange(const css::beans::PropertyChangeEvent &evt) override
Definition: RptObject.cxx:753
virtual void NbcResize(const Point &rRef, const Fraction &xFact, const Fraction &yFact) override
Definition: RptObject.cxx:687
void CreateMediator(bool _bReverse=false)
creates the m_xMediator when it doesn't already exist.
Definition: RptObject.cxx:809
SdrObjKind m_nObjectType
Definition: RptObject.hxx:226
virtual SdrPage * GetImplPage() const override
Definition: RptObject.cxx:633
virtual void NbcSetLogicRect(const tools::Rectangle &rRect) override
Definition: RptObject.cxx:701
virtual rtl::Reference< SdrObject > CloneSdrObject(SdrModel &rTargetModel) const override
Definition: RptObject.cxx:882
Create an object ob OUndoEnvLock locks the undo possibility As long as in the OUndoEnvLock scope,...
Definition: UndoEnv.hxx:64
bool IsUndoMode() const
Definition: UndoEnv.cxx:611
void AddElement(const css::uno::Reference< css::uno::XInterface > &Element)
Definition: UndoEnv.cxx:580
static bool TryRunningState(const css::uno::Reference< css::embed::XEmbeddedObject > &)
constexpr tools::Long Top() const
tools::Long getOpenHeight() const
constexpr bool IsEmpty() const
#define TOOLS_WARN_EXCEPTION(area, stream)
#define DBG_UNHANDLED_EXCEPTION(...)
ULONG m_refCount
Mutex aLock
Sequence< sal_Int8 > aSeq
@ Exception
void copyProperties(const Reference< XPropertySet > &_rxSource, const Reference< XPropertySet > &_rxDest)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
uno::Reference< style::XStyle > getUsedStyle(const uno::Reference< report::XReportDefinition > &_xReport)
Definition: RptObject.cxx:1176
std::map< OUString, TPropertyConverter > TPropertyNamePair
Definition: RptDef.hxx:73
constexpr SdrLayerID RPT_LAYER_FRONT(0)
const TPropertyNamePair & getPropertyNameMap(SdrObjKind _nObjectId)
returns the property name map for the given property id
Definition: RptObject.cxx:224
static uno::Reference< chart2::data::XDatabaseDataProvider > lcl_getDataProvider(const uno::Reference< embed::XEmbeddedObject > &_xObj)
Definition: RptObject.cxx:1080
constexpr SdrLayerID RPT_LAYER_BACK(1)
::std::pair< OUString, std::shared_ptr< AnyConverter > > TPropertyConverter
Definition: RptDef.hxx:72
long Long
SwNodeOffset abs(const SwNodeOffset &a)
QPRO_FUNC_TYPE nType
#define PROPERTY_TEXTLINECOLOR
Definition: strings.hxx:197
#define PROPERTY_CHARCOLOR
Definition: strings.hxx:85
#define PROPERTY_CHARUNDERLINECOLOR
Definition: strings.hxx:88
#define PROPERTY_BORDERCOLOR
Definition: strings.hxx:99
constexpr OUStringLiteral RID_STR_CLASS_FIXEDTEXT
Definition: strings.hxx:15
constexpr OUStringLiteral RID_STR_CLASS_FORMATTEDFIELD
Definition: strings.hxx:18
constexpr OUStringLiteral SERVICE_FIXEDLINE
Definition: strings.hxx:29
#define PROPERTY_BORDER
Definition: strings.hxx:98
#define PROPERTY_PARAADJUST
Definition: strings.hxx:79
constexpr OUStringLiteral SERVICE_IMAGECONTROL
Definition: strings.hxx:24
#define PROPERTY_FONTHEIGHT
Definition: strings.hxx:119
#define PROPERTY_CHARFONTHEIGHT
Definition: strings.hxx:118
#define PROPERTY_FONTRELIEF
Definition: strings.hxx:198
constexpr OUStringLiteral SERVICE_FIXEDTEXT
Definition: strings.hxx:22
#define PROPERTY_MULTILINE
Definition: strings.hxx:186
#define PROPERTY_CONTROLBORDER
Definition: strings.hxx:96
#define PROPERTY_TEXTCOLOR
Definition: strings.hxx:196
#define PROPERTY_CONTROLBACKGROUND
Definition: strings.hxx:40
constexpr OUStringLiteral SERVICE_FORMATTEDFIELD
Definition: strings.hxx:23
#define PROPERTY_FONTEMPHASISMARK
Definition: strings.hxx:199
#define PROPERTY_CHARSTRIKEOUT
Definition: strings.hxx:125
constexpr OUStringLiteral SERVICE_SHAPE
Definition: strings.hxx:28
#define PROPERTY_FONTSTRIKEOUT
Definition: strings.hxx:126
constexpr OUStringLiteral SERVICE_REPORTDEFINITION
Definition: strings.hxx:27
#define PROPERTY_NAME
Definition: strings.hxx:36
#define PROPERTY_CONTROLBORDERCOLOR
Definition: strings.hxx:97
#define PROPERTY_LABEL
Definition: strings.hxx:89
#define PROPERTY_BACKGROUNDCOLOR
Definition: strings.hxx:194
#define PROPERTY_OPAQUE
Definition: strings.hxx:201
#define PROPERTY_VERTICALALIGN
Definition: strings.hxx:86
constexpr OUStringLiteral RID_STR_CLASS_IMAGECONTROL
Definition: strings.hxx:17
#define PROPERTY_CHARRELIEF
Definition: strings.hxx:84
#define PROPERTY_CONTROLTEXTEMPHASISMARK
Definition: strings.hxx:83
constexpr OUStringLiteral RID_STR_CLASS_FIXEDLINE
Definition: strings.hxx:16
#define PROPERTY_ALIGN
Definition: strings.hxx:210
SdrInventor
SdrObjKind
SdrCreateCmd