20#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
21#include <com/sun/star/lang/DisposedException.hpp>
22#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
23#include <com/sun/star/awt/FontSlant.hpp>
24#include <com/sun/star/style/VerticalAlignment.hpp>
25#include <com/sun/star/drawing/TextVerticalAdjust.hpp>
26#include <com/sun/star/drawing/XEnhancedCustomShapeDefaulter.hpp>
27#include <com/sun/star/awt/TextAlign.hpp>
28#include <com/sun/star/style/ParagraphAdjust.hpp>
29#include <com/sun/star/drawing/PointSequenceSequence.hpp>
30#include <com/sun/star/drawing/PointSequence.hpp>
31#include <com/sun/star/drawing/PolygonKind.hpp>
32#include <com/sun/star/graphic/XGraphic.hpp>
33#include <com/sun/star/drawing/BarCode.hpp>
61#include <com/sun/star/awt/XBitmap.hpp>
71using namespace ::
cppu;
77#define QUERYINT( xint ) \
78 if( rType == cppu::UnoType<xint>::get() ) \
79 aAny <<= Reference< xint >(this)
110 else QUERYINT( container::XIndexAccess );
111 else QUERYINT( container::XElementAccess );
120 return css::uno::Sequence<sal_Int8>();
172 SvxShape* pShape = comphelper::getFromUnoTunnel<SvxShape>( xShape );
175 OSL_FAIL(
"could not add XShape to group shape!");
190 OSL_FAIL(
"could not add XShape to group shape!");
195 if( pSdrShape ==
nullptr )
196 pSdrShape =
mxPage->CreateSdrObject_( &rShape );
239 throw uno::RuntimeException();
245 while( nObjNum < nObjCount )
247 if(rList.
GetObj( nObjNum ) == pSdrShape )
252 if( nObjNum < nObjCount )
261 if(SAL_MAX_SIZE != pView->TryToFindMarkedObject(pSdrShape))
263 pView->MarkObj(pSdrShape, pView->GetSdrPageView(),
true);
272 SAL_WARN(
"svx",
"Fatality! SdrObject is not belonging to its SdrObjList! [CL]" );
302 throw uno::RuntimeException();
314 throw uno::RuntimeException();
317 throw lang::IndexOutOfBoundsException();
321 if(pDestObj ==
nullptr)
322 throw lang::IndexOutOfBoundsException();
324 Reference< drawing::XShape > xShape( pDestObj->
getUnoShape(), uno::UNO_QUERY );
364 QUERYINT( drawing::XConnectorShape );
380 return css::uno::Sequence<sal_Int8>();
421 Reference< drawing::XShape > xRef( xShape, UNO_QUERY );
435 Reference< drawing::XShape > xRef( xShape, UNO_QUERY );
503 return css::uno::Sequence<sal_Int8>();
544 Reference< awt::XControlModel >
xModel;
583 {
"CharKerning",
"FontKerning" },
584 {
"CharWordMode",
"FontWordLineMode" },
586 {
"CharBackColor",
"CharBackColor" },
587 {
"CharBackTransparent",
"CharBackTransparent" },
589 {
"CharRelief",
"FontRelief" },
590 {
"CharUnderlineColor",
"TextLineColor" },
592 {
"TextVerticalAdjust",
"VerticalAlign" },
593 {
"ControlBackground",
"BackgroundColor" },
594 {
"ControlSymbolColor",
"SymbolColor" },
595 {
"ControlBorder",
"Border" },
596 {
"ControlBorderColor",
"BorderColor" },
597 {
"ControlTextEmphasis",
"FontEmphasisMark" },
598 {
"ImageScaleMode",
"ScaleMode" },
599 {
"ControlWritingMode",
"WritingMode" },
601 {
"ControlTypeinMSO",
"ControlTypeinMSO" },
602 {
"ObjIDinMSO",
"ObjIDinMSO" },
603 {
"CharCaseMap",
"CharCaseMap" },
604 {
"CharColorTheme",
"CharColorTheme" },
605 {
"CharColorTintOrShade",
"CharColorTintOrShade" },
610 bool lcl_convertPropertyName(
const OUString& rApiName, OUString& rInternalName )
614 if( rApiName.reverseCompareTo( rEntry.msAPIName ) == 0 )
616 rInternalName = rEntry.msFormName;
619 return !rInternalName.isEmpty();
622 struct EnumConversionMap
624 style::ParagraphAdjust nAPIValue;
625 sal_Int16 nFormValue;
628 EnumConversionMap
const aMapAdjustToAlign[] =
633 {style::ParagraphAdjust_LEFT, sal_Int16(awt::TextAlign::LEFT)},
634 {style::ParagraphAdjust_CENTER, sal_Int16(awt::TextAlign::CENTER)},
635 {style::ParagraphAdjust_RIGHT, sal_Int16(awt::TextAlign::RIGHT)},
636 {style::ParagraphAdjust_BLOCK, sal_Int16(awt::TextAlign::RIGHT)},
637 {style::ParagraphAdjust_STRETCH, sal_Int16(awt::TextAlign::LEFT)},
638 {style::ParagraphAdjust(-1),-1}
641 void lcl_convertTextAlignmentToParaAdjustment( Any& _rValue )
643 sal_Int16
nValue = sal_Int16();
644 OSL_VERIFY( _rValue >>=
nValue );
646 for (
auto const & rEntry : aMapAdjustToAlign )
647 if (
nValue == rEntry.nFormValue )
649 _rValue <<= static_cast<sal_uInt16>(rEntry.nAPIValue);
654 void lcl_convertParaAdjustmentToTextAlignment( Any& _rValue )
657 OSL_VERIFY( _rValue >>=
nValue );
659 for (
auto const & rEntry : aMapAdjustToAlign )
660 if (
static_cast<style::ParagraphAdjust
>(
nValue) == rEntry.nAPIValue )
662 _rValue <<= rEntry.nFormValue;
667 void convertVerticalAdjustToVerticalAlign( Any& _rValue )
669 if ( !_rValue.hasValue() )
672 drawing::TextVerticalAdjust eAdjust = drawing::TextVerticalAdjust_TOP;
673 style::VerticalAlignment eAlign = style::VerticalAlignment_TOP;
674 if ( !( _rValue >>= eAdjust ) )
675 throw lang::IllegalArgumentException();
678 case drawing::TextVerticalAdjust_TOP: eAlign = style::VerticalAlignment_TOP;
break;
679 case drawing::TextVerticalAdjust_BOTTOM: eAlign = style::VerticalAlignment_BOTTOM;
break;
680 default: eAlign = style::VerticalAlignment_MIDDLE;
break;
685 void convertVerticalAlignToVerticalAdjust( Any& _rValue )
687 if ( !_rValue.hasValue() )
689 style::VerticalAlignment eAlign = style::VerticalAlignment_TOP;
690 drawing::TextVerticalAdjust eAdjust = drawing::TextVerticalAdjust_TOP;
691 OSL_VERIFY( _rValue >>= eAlign );
694 case style::VerticalAlignment_TOP: eAdjust = drawing::TextVerticalAdjust_TOP;
break;
695 case style::VerticalAlignment_BOTTOM: eAdjust = drawing::TextVerticalAdjust_BOTTOM;
break;
696 default: eAdjust = drawing::TextVerticalAdjust_CENTER;
break;
705 if ( lcl_convertPropertyName( aPropertyName, aFormsName ) )
707 uno::Reference< beans::XPropertySet > xControl(
getControl(), uno::UNO_QUERY );
710 uno::Reference< beans::XPropertySetInfo > xInfo( xControl->getPropertySetInfo() );
711 if( xInfo.is() && xInfo->hasPropertyByName( aFormsName ) )
714 if ( aFormsName ==
"FontSlant" )
716 awt::FontSlant nSlant;
717 if( !(aValue >>= nSlant ) )
718 throw lang::IllegalArgumentException();
719 aConvertedValue <<= static_cast<sal_Int16>(nSlant);
721 else if ( aFormsName ==
"Align" )
723 lcl_convertParaAdjustmentToTextAlignment( aConvertedValue );
725 else if ( aFormsName ==
"VerticalAlign" )
727 convertVerticalAdjustToVerticalAlign( aConvertedValue );
730 xControl->setPropertyValue( aFormsName, aConvertedValue );
743 if ( lcl_convertPropertyName( aPropertyName, aFormsName ) )
745 uno::Reference< beans::XPropertySet > xControl(
getControl(), uno::UNO_QUERY );
750 uno::Reference< beans::XPropertySetInfo > xInfo( xControl->getPropertySetInfo() );
751 if( xInfo.is() && xInfo->hasPropertyByName( aFormsName ) )
753 aValue = xControl->getPropertyValue( aFormsName );
754 if ( aFormsName ==
"FontSlant" )
756 awt::FontSlant eSlant = awt::FontSlant_NONE;
757 sal_Int16 nSlant = sal_Int16();
758 if ( aValue >>= nSlant )
760 eSlant =
static_cast<awt::FontSlant
>(nSlant);
764 OSL_VERIFY( aValue >>= eSlant );
768 else if ( aFormsName ==
"Align" )
770 lcl_convertTextAlignmentToParaAdjustment( aValue );
772 else if ( aFormsName ==
"VerticalAlign" )
774 convertVerticalAlignToVerticalAdjust( aValue );
792 if ( lcl_convertPropertyName( PropertyName, aFormsName ) )
794 uno::Reference< beans::XPropertyState > xControl(
getControl(), uno::UNO_QUERY );
795 uno::Reference< beans::XPropertySet > xPropSet(
getControl(), uno::UNO_QUERY );
797 if( xControl.is() && xPropSet.is() )
799 uno::Reference< beans::XPropertySetInfo > xInfo( xPropSet->getPropertySetInfo() );
800 if( xInfo.is() && xInfo->hasPropertyByName( aFormsName ) )
802 return xControl->getPropertyState( aFormsName );
806 return beans::PropertyState_DEFAULT_VALUE;
817 if ( lcl_convertPropertyName( PropertyName, aFormsName ) )
819 uno::Reference< beans::XPropertyState > xControl(
getControl(), uno::UNO_QUERY );
820 uno::Reference< beans::XPropertySet > xPropSet(
getControl(), uno::UNO_QUERY );
822 if( xControl.is() && xPropSet.is() )
824 uno::Reference< beans::XPropertySetInfo > xInfo( xPropSet->getPropertySetInfo() );
825 if( xInfo.is() && xInfo->hasPropertyByName( aFormsName ) )
827 xControl->setPropertyToDefault( aFormsName );
840 if ( lcl_convertPropertyName( aPropertyName, aFormsName ) )
842 uno::Reference< beans::XPropertyState > xControl(
getControl(), uno::UNO_QUERY );
846 Any aDefault( xControl->getPropertyDefault( aFormsName ) );
847 if ( aFormsName ==
"FontSlant" )
849 sal_Int16 nSlant( 0 );
851 aDefault <<= static_cast<awt::FontSlant>(nSlant);
853 else if ( aFormsName ==
"Align" )
855 lcl_convertTextAlignmentToParaAdjustment( aDefault );
857 else if ( aFormsName ==
"VerticalAlign" )
859 convertVerticalAlignToVerticalAdjust( aDefault );
864 throw beans::UnknownPropertyException( aPropertyName,
static_cast<cppu::OWeakObject*
>(
this));
907 switch( pProperty->
nWID )
911 if(
auto s = o3tl::tryAccess<drawing::PolyPolygonBezierCoords>(rValue) )
926 if(
auto s = o3tl::tryAccess<drawing::PointSequenceSequence>(rValue) )
941 drawing::PointSequenceSequence aPointSequenceSequence;
942 drawing::PolyPolygonBezierCoords aPolyPolygonBezierCoords;
944 if( rValue >>= aPointSequenceSequence)
962 else if( rValue >>= aPolyPolygonBezierCoords)
983 if(
auto pSequence = o3tl::tryAccess<drawing::PointSequence>(rValue) )
989 const awt::Point* pArray = pSequence->getConstArray();
990 const awt::Point* pArrayEnd = pArray + pSequence->getLength();
992 for(;pArray != pArrayEnd;++pArray)
1014 throw lang::IllegalArgumentException();
1018 css::uno::Any& rValue )
1020 switch( pProperty->
nWID )
1030 drawing::PolyPolygonBezierCoords aRetval;
1044 drawing::PointSequenceSequence aRetval( aPolyPoly.
count() );
1066 drawing::PolyPolygonBezierCoords aRetval;
1072 drawing::PointSequenceSequence aRetval(aPolyPoly.
count());
1087 drawing::PointSequence aRetval(
nCount );
1095 awt::Point* pSequence = aRetval.getArray();
1097 for(sal_Int32 b=0;b<
nCount;b++)
1122 drawing::PolygonKind aRetval(drawing::PolygonKind_LINE);
1180 switch( pProperty->
nWID )
1189 aMemStm.
SetBuffer(
const_cast<css::uno::Sequence<sal_Int8> *
>(pSeq)->getArray(), pSeq->getLength(), pSeq->getLength() );
1199 auto xGraphic = rValue.get<uno::Reference<graphic::XGraphic>>();
1208 auto xBitmap = rValue.get<uno::Reference<awt::XBitmap>>();
1211 uno::Reference<graphic::XGraphic> xGraphic(xBitmap, uno::UNO_QUERY);
1222 OUString aStreamURL;
1224 if( rValue >>= aStreamURL )
1241 uno::Reference<awt::XBitmap> xBitmap;
1242 if (rValue >>=
aURL)
1251 else if (rValue >>= xBitmap)
1253 uno::Reference<graphic::XGraphic> xGraphic(xBitmap, uno::UNO_QUERY);
1269 Reference< graphic::XGraphic > xGraphic( rValue, uno::UNO_QUERY );
1280 bool bIsSignatureLine;
1281 if (rValue >>= bIsSignatureLine)
1291 OUString aSignatureLineId;
1292 if (rValue >>= aSignatureLineId)
1302 OUString aSuggestedSignerName;
1303 if (rValue >>= aSuggestedSignerName)
1313 OUString aSuggestedSignerTitle;
1314 if (rValue >>= aSuggestedSignerTitle)
1324 OUString aSuggestedSignerEmail;
1325 if (rValue >>= aSuggestedSignerEmail)
1335 OUString aSigningInstructions;
1336 if (rValue >>= aSigningInstructions)
1347 if (rValue >>= bShowSignDate)
1357 bool bCanAddComment;
1358 if (rValue >>= bCanAddComment)
1368 Reference<graphic::XGraphic> xGraphic(rValue, uno::UNO_QUERY);
1380 if (rValue >>= bIsSigned)
1390 css::drawing::BarCode aBarCode;
1391 if (rValue >>= aBarCode)
1404 throw lang::IllegalArgumentException();
1413 switch( pProperty->
nWID )
1419 if (rGraphic.
GetType() != GraphicType::GdiMetafile)
1421 uno::Reference<awt::XBitmap> xBitmap(rGraphic.
GetXGraphic(), uno::UNO_QUERY);
1429 const uno::Sequence<sal_Int8>
aSeq(
1452 if( !aStreamURL.isEmpty() )
1453 rValue <<= aStreamURL;
1462 SAL_WARN(
"svx",
"Getting Graphic by URL is not supported, getting it by value");
1465 Reference<graphic::XGraphic> xGraphic;
1467 if (pSdrGraphicObject
1468 && pSdrGraphicObject->GetGraphicObject().GetType() != GraphicType::NONE)
1470 rValue <<= xGraphic;
1476 rValue <<= static_cast< SdrGrafObj* >(
GetSdrObject() )->getInputStream();
1482 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->isSignatureLine();
1488 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineId();
1494 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineSuggestedSignerName();
1500 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineSuggestedSignerTitle();
1506 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineSuggestedSignerEmail();
1512 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineSigningInstructions();
1518 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->isSignatureLineShowSignDate();
1524 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->isSignatureLineCanAddComment();
1530 Reference<graphic::XGraphic> xGraphic(
1532 rValue <<= xGraphic;
1538 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->isSignatureLineSigned();
1586 if ( !aReturn.hasValue() )
1587 aReturn = ::cppu::queryInterface(rType,
static_cast<drawing::XEnhancedCustomShapeDefaulter*
>(
this) );
1593 return css::uno::Sequence<sal_Int8>();
1607 bool bMirroredX =
false;
1608 bool bMirroredY =
false;
1619 if ( bMirroredX || bMirroredY )
1628 Point aRef1( ( aBoundRect.
Left() + aBoundRect.
Right() ) >> 1, aBoundRect.
Top() );
1629 Point aRef2( aRef1.X(), aRef1.Y() + 1000 );
1631 sal_uInt16 nPointCount=aPol.
GetSize();
1632 for (
i=0;
i<nPointCount;
i++)
1651 Point aRef2( aRef1.X() + 1000, aRef1.Y() );
1653 sal_uInt16 nPointCount=aPol.
GetSize();
1654 for (
i=0;
i<nPointCount;
i++)
1670 if(
GetSdrObject()->getSdrModelFromSdrObject().IsWriter() )
1674 return css::awt::Point( aPt.X(), aPt.Y() );
1690 if(
"FlushCustomShapeUnoApiObjects" == aPropertyName)
1706 bool bCustomShapeGeometry =
pObject && aPropertyName ==
"CustomShapeGeometry";
1708 bool bMirroredX =
false;
1709 bool bMirroredY =
false;
1711 if ( bCustomShapeGeometry )
1719 if ( !bCustomShapeGeometry )
1729 std::unique_ptr< SdrGluePointList > pListCopy;
1730 if( bNeedsMirrorX || bNeedsMirrorY )
1737 if ( bNeedsMirrorX )
1740 Point aBottom( aTop.X(), aTop.Y() + 1000 );
1741 pObject->NbcMirror( aTop, aBottom );
1746 if ( bNeedsMirrorY )
1749 Point aRight( aLeft.X() + 1000, aLeft.Y() );
1750 pObject->NbcMirror( aLeft, aRight );
1760 *pNewList = *pListCopy;
1766 switch( pProperty->
nWID )
1772 rValue <<= static_cast<sal_Int32>(fAngle);
1784 OSL_FAIL(
"could not create Custom Shape Defaults!");
The transformation of a rectangle into a polygon, by using angle parameters from GeoStat.
static ErrCode Import(SvStream &rIStm, Graphic &rGraphic, ConvertDataFormat nFormat=ConvertDataFormat::Unknown)
const Graphic & GetGraphic() const
css::uno::Reference< css::graphic::XGraphic > GetXGraphic() const
const GDIMetaFile & GetGDIMetaFile() const
GraphicType GetType() const
This class represents an embedded or linked bitmap graphic object.
const Graphic & GetGraphic() const
virtual void SetChanged(bool bFlg=true)
css::uno::Reference< css::drawing::XCustomShapeEngine > mxCustomShapeEngine
virtual SdrObject * NbcRemoveObject(size_t nObjNum)
remove from list without delete
virtual void InsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE)
SdrObject * GetObj(size_t nNum) const
size_t GetObjCount() const
virtual SdrObject * RemoveObject(size_t nObjNum)
static SdrObject * getSdrObjectFromXShape(const css::uno::Reference< css::uno::XInterface > &xInt)
const Point & GetAnchorPos() const
static void Free(SdrObject *&_rpObject)
virtual css::uno::Reference< css::drawing::XShape > getUnoShape()
sal_uInt32 GetOrdNum() const
The order number (aka ZOrder, aka z-index) determines whether a SdrObject is located above or below a...
virtual SdrObjList * GetSubList() const
SdrObjList * getParentSdrObjListFromSdrObject() const
SdrModel & getSdrModelFromSdrObject() const
virtual void TRSetBaseGeometry(const basegfx::B2DHomMatrix &rMatrix, const basegfx::B2DPolyPolygon &rPolyPolygon)
virtual void ConnectToNode(bool bTail1, SdrObject *pObj)
virtual void DisconnectFromNode(bool bTail1)
SdrObject * getParentSdrObjectFromSdrObject() const
virtual bool TRGetBaseGeometry(basegfx::B2DHomMatrix &rMatrix, basegfx::B2DPolyPolygon &rPolyPolygon) const
const css::uno::Reference< css::awt::XControlModel > & GetUnoControlModel() const
virtual void SetUnoControlModel(const css::uno::Reference< css::awt::XControlModel > &xModel)
void SetBuffer(void *pBuf, std::size_t nSize, std::size_t nEOF)
std::size_t GetEndOfData() const
virtual ~SvxCustomShape() noexcept override
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &rType) override
virtual void SAL_CALL createCustomShapeDefaults(const OUString &rShapeType) override
virtual css::awt::Point SAL_CALL getPosition() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual bool getPropertyValueImpl(const OUString &rName, const SfxItemPropertyMapEntry *pProperty, css::uno::Any &rValue) override
void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
SvxCustomShape(SdrObject *pObj)
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual ~SvxGraphicObject() noexcept override
SVXCORE_DLLPUBLIC SvxGraphicObject(SdrObject *pObj)
virtual bool getPropertyValueImpl(const OUString &rName, const SfxItemPropertyMapEntry *pProperty, css::uno::Any &rValue) override
virtual bool setPropertyValueImpl(const OUString &rName, const SfxItemPropertyMapEntry *pProperty, const css::uno::Any &rValue) override
virtual ~SvxShapeCaption() noexcept override
SvxShapeCaption(SdrObject *pObj)
virtual ~SvxShapeCircle() noexcept override
SVXCORE_DLLPUBLIC SvxShapeCircle(SdrObject *pObj)
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual ~SvxShapeConnector() noexcept override
virtual css::awt::Point SAL_CALL getPosition() override
virtual void SAL_CALL setPosition(const css::awt::Point &aPosition) override
virtual void SAL_CALL disconnectEnd(const css::uno::Reference< css::drawing::XConnectableShape > &xShape) override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual OUString SAL_CALL getShapeType() override
virtual css::awt::Size SAL_CALL getSize() override
virtual void SAL_CALL disconnectBegin(const css::uno::Reference< css::drawing::XConnectableShape > &xShape) override
virtual void SAL_CALL connectStart(const css::uno::Reference< css::drawing::XConnectableShape > &xShape, css::drawing::ConnectionType nPos) override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual void SAL_CALL connectEnd(const css::uno::Reference< css::drawing::XConnectableShape > &xShape, css::drawing::ConnectionType nPos) override
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &rType) override
virtual void SAL_CALL setSize(const css::awt::Size &aSize) override
virtual css::uno::Any SAL_CALL getPropertyDefault(const OUString &aPropertyName) override
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &rType) override
virtual ~SvxShapeControl() noexcept override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
SvxShapeControl(SdrObject *pObj)
virtual void SAL_CALL setControl(const css::uno::Reference< css::awt::XControlModel > &xControl) override
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
virtual void SAL_CALL setSize(const css::awt::Size &aSize) override
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
virtual css::awt::Size SAL_CALL getSize() override
virtual css::awt::Point SAL_CALL getPosition() override
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual css::uno::Reference< css::awt::XControlModel > SAL_CALL getControl() override
virtual OUString SAL_CALL getShapeType() override
virtual void SAL_CALL setPropertyToDefault(const OUString &PropertyName) override
virtual void SAL_CALL setPosition(const css::awt::Point &aPosition) override
virtual css::beans::PropertyState SAL_CALL getPropertyState(const OUString &PropertyName) override
SvxShapeDimensioning(SdrObject *pObj)
virtual ~SvxShapeDimensioning() noexcept override
This only exists so I have a common base class for SvxShapeGroup and Svx3DSceneObject.
SvxShapeGroupAnyD(SdrObject *pObject, const SfxItemPropertyMapEntry *pEntries, const SvxItemPropertySet *pPropertySet)
virtual ~SvxShapeGroupAnyD() noexcept override
virtual void SAL_CALL setSize(const css::awt::Size &aSize) override
virtual ~SvxShapeGroup() noexcept override
virtual void SAL_CALL add(const css::uno::Reference< css::drawing::XShape > &xShape) override
virtual void SAL_CALL addTop(const css::uno::Reference< css::drawing::XShape > &xShape) override
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 Index) override
rtl::Reference< SvxDrawPage > mxPage
virtual sal_Int32 SAL_CALL getCount() override
virtual void SAL_CALL leaveGroup() override
virtual void SAL_CALL addBottom(const css::uno::Reference< css::drawing::XShape > &xShape) override
virtual void SAL_CALL setPosition(const css::awt::Point &aPosition) override
SvxShapeGroup(SdrObject *pObj, SvxDrawPage *pDrawPage)
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual void Create(SdrObject *pNewOpj, SvxDrawPage *pNewPage) override
virtual sal_Bool SAL_CALL hasElements() override
void addUnoShape(const css::uno::Reference< css::drawing::XShape > &xShape, size_t nPos)
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &rType) override
virtual OUString SAL_CALL getShapeType() override
virtual css::awt::Size SAL_CALL getSize() override
virtual void SAL_CALL enterGroup() override
virtual css::awt::Point SAL_CALL getPosition() override
virtual void SAL_CALL remove(const css::uno::Reference< css::drawing::XShape > &xShape) override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
void addShape(SvxShape &rShape, size_t nPos)
void SetPolygon(const basegfx::B2DPolyPolygon &rNew)
virtual bool getPropertyValueImpl(const OUString &rName, const SfxItemPropertyMapEntry *pProperty, css::uno::Any &rValue) override
virtual bool setPropertyValueImpl(const OUString &rName, const SfxItemPropertyMapEntry *pProperty, const css::uno::Any &rValue) override
virtual ~SvxShapePolyPolygon() noexcept override
css::drawing::PolygonKind GetPolygonKind() const
basegfx::B2DPolyPolygon GetPolygon() const noexcept
SVXCORE_DLLPUBLIC SvxShapePolyPolygon(SdrObject *pObj)
virtual bool getPropertyValueImpl(const OUString &rName, const SfxItemPropertyMapEntry *pProperty, css::uno::Any &rValue) override
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &rType) override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual bool setPropertyValueImpl(const OUString &rName, const SfxItemPropertyMapEntry *pProperty, const css::uno::Any &rValue) override
void ForceMetricTo100th_mm(Pair &rPoint) const noexcept
virtual css::uno::Any SAL_CALL getPropertyDefault(const OUString &aPropertyName) override
virtual css::awt::Point SAL_CALL getPosition() override
virtual bool getPropertyValueImpl(const OUString &rName, const SfxItemPropertyMapEntry *pProperty, css::uno::Any &rValue)
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual void Create(SdrObject *pNewOpj, SvxDrawPage *pNewPage)
bool HasSdrObject() const
virtual css::awt::Size SAL_CALL getSize() override
virtual void SAL_CALL setSize(const css::awt::Size &aSize) override
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
friend class SvxShapeConnector
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
virtual OUString SAL_CALL getShapeType() override
virtual void SAL_CALL setPropertyToDefault(const OUString &PropertyName) override
virtual void SAL_CALL setPosition(const css::awt::Point &aPosition) override
void setShapeKind(SdrObjKind nKind)
virtual css::beans::PropertyState SAL_CALL getPropertyState(const OUString &PropertyName) override
SdrObject * GetSdrObject() const
void ForceMetricToItemPoolMetric(Pair &rPoint) const noexcept
virtual css::uno::Any SAL_CALL queryAggregation(const css::uno::Type &aType) override
B2DPolygon const & getB2DPolygon(sal_uInt32 nIndex) const
bool areControlPointsUsed() const
basegfx::B2DPoint const & getB2DPoint(sal_uInt32 nIndex) const
void append(const basegfx::B2DPoint &rPoint, sal_uInt32 nCount)
css::uno::Type const & get()
virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
EmbeddedObjectRef * pObject
Sequence< sal_Int8 > aSeq
#define SAL_WARN(area, stream)
void B2DPolyPolygonToUnoPointSequenceSequence(const B2DPolyPolygon &rPolyPolygon, css::drawing::PointSequenceSequence &rPointSequenceSequenceRetval)
B2DPolyPolygon UnoPointSequenceSequenceToB2DPolyPolygon(const css::drawing::PointSequenceSequence &rPointSequenceSequenceSource)
void B2DPolyPolygonToUnoPolyPolygonBezierCoords(const B2DPolyPolygon &rPolyPolygon, css::drawing::PolyPolygonBezierCoords &rPolyPolygonBezierCoordsRetval)
void checkClosed(B2DPolygon &rCandidate)
B2DPolyPolygon UnoPolyPolygonBezierCoordsToB2DPolyPolygon(const css::drawing::PolyPolygonBezierCoords &rPolyPolygonBezierCoordsSource)
B2IRange fround(const B2DRange &rRange)
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
std::enable_if<!(detail::IsDerivedReference< T >::value||detail::IsUnoSequenceType< T >::value||std::is_base_of< css::uno::XInterface, T >::value), typenamedetail::Optional< T >::type >::type tryAccess(css::uno::Any const &any)
Graphic loadFromURL(OUString const &rURL, weld::Window *pParentWin)
SvxUnoPropertyMapProvider & getSvxMapProvider()
Reference< XModel > xModel
constexpr TypedWhichId< SdrAngleItem > SDRATTR_ROTATEANGLE(SDRATTR_NOTPERSIST_FIRST+16)
@ PathFill
open Bezier-curve
@ FreehandLine
closed Bezier-curve
@ UNO
continuously activated OLE (PlugIn-Frame or similar)
@ SplineLine
closed free-hand line
@ SplineFill
natural cubic Spline (ni)
@ PolyLine
polygon, PolyPolygon
@ FreehandFill
open free-hand line
tools::Polygon Rect2Poly(const tools::Rectangle &rRect, const GeoStat &rGeo)
void Poly2Rect(const tools::Polygon &rPol, tools::Rectangle &rRect, GeoStat &rGeo)
void MirrorPoint(Point &rPnt, const Point &rRef1, const Point &rRef2)
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_UNDERLINE
#define UNO_NAME_GRAPHOBJ_URLPKGPREFIX
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_FONTSTYLENAME
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_HEIGHT
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_COLOR
constexpr OUStringLiteral UNO_NAME_TEXT_CHAINNEXTNAME
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_POSTURE
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_FONTPITCH
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_FONTFAMILY
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_WEIGHT
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_STRIKEOUT
constexpr OUStringLiteral UNO_NAME_EDIT_PARA_ADJUST
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_FONTCHARSET
constexpr OUStringLiteral UNO_NAME_EDIT_CHAR_FONTNAME
#define SVXMAP_CUSTOMSHAPE
#define SVXMAP_DIMENSIONING
#define SVXMAP_GRAPHICOBJECT
#define SVXMAP_POLYPOLYGON
struct @1 SvxShapeControlPropertyMapping[]
#define OWN_ATTR_VALUE_GRAPHIC
#define OWN_ATTR_SIGNATURELINE_SUGGESTED_SIGNER_TITLE
#define OWN_ATTR_VALUE_POLYGON
#define OWN_ATTR_SIGNATURELINE_UNSIGNED_IMAGE
#define OWN_ATTR_GRAFSTREAMURL
#define OWN_ATTR_GRAPHIC_URL
#define OWN_ATTR_SIGNATURELINE_ID
#define OWN_ATTR_GRAPHIC_STREAM
#define OWN_ATTR_VALUE_FILLBITMAP
#define OWN_ATTR_IS_SIGNATURELINE
#define OWN_ATTR_BASE_GEOMETRY
#define OWN_ATTR_REPLACEMENT_GRAPHIC
reuse attr slots for GraphicObject which will never be used together with graphic object
#define OWN_ATTR_SIGNATURELINE_SIGNING_INSTRUCTIONS
#define OWN_ATTR_SIGNATURELINE_SUGGESTED_SIGNER_EMAIL
#define OWN_ATTR_VALUE_POLYPOLYGON
#define OWN_ATTR_SIGNATURELINE_SHOW_SIGN_DATE
#define OWN_ATTR_SIGNATURELINE_SUGGESTED_SIGNER_NAME
#define OWN_ATTR_SIGNATURELINE_CAN_ADD_COMMENT
#define OWN_ATTR_VALUE_POLYGONKIND
#define OWN_ATTR_SIGNATURELINE_IS_SIGNED
#define OWN_ATTR_VALUE_POLYPOLYGONBEZIER
VCL_DLLPUBLIC bool ConvertGDIMetaFileToWMF(const GDIMetaFile &rMTF, SvStream &rTargetStream, FilterConfigItem const *pConfigItem, bool bPlaceable=true)