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)
83 , mxWeakPage(pDrawPage)
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!");
196 OSL_FAIL(
"could not add XShape to group shape!");
201 if( pSdrShape ==
nullptr )
202 pSdrShape = xPage->CreateSdrObject_( &rShape );
204 if( pSdrShape->IsInserted() )
205 pSdrShape->getParentSdrObjListFromSdrObject()->RemoveObject( pSdrShape->GetOrdNum() );
223 rShape.
Create( pSdrShape.get(), xPage.get() );
245 throw uno::RuntimeException();
251 while( nObjNum < nObjCount )
253 if(rList.
GetObj( nObjNum ) == pSdrShape )
258 if( nObjNum < nObjCount )
268 pView->MarkObj(pSdrShape, pView->GetSdrPageView(), true);
276 SAL_WARN(
"svx",
"Fatality! SdrObject is not belonging to its SdrObjList! [CL]" );
306 throw uno::RuntimeException();
318 throw uno::RuntimeException();
321 throw lang::IndexOutOfBoundsException();
325 if(pDestObj ==
nullptr)
326 throw lang::IndexOutOfBoundsException();
328 Reference< drawing::XShape > xShape( pDestObj->
getUnoShape(), uno::UNO_QUERY );
368 QUERYINT( drawing::XConnectorShape );
384 return css::uno::Sequence<sal_Int8>();
425 Reference< drawing::XShape > xRef( xShape, UNO_QUERY );
439 Reference< drawing::XShape > xRef( xShape, UNO_QUERY );
507 return css::uno::Sequence<sal_Int8>();
548 Reference< awt::XControlModel >
xModel;
587 {
"CharKerning",
"FontKerning" },
588 {
"CharWordMode",
"FontWordLineMode" },
590 {
"CharBackColor",
"CharBackColor" },
591 {
"CharBackTransparent",
"CharBackTransparent" },
593 {
"CharRelief",
"FontRelief" },
594 {
"CharUnderlineColor",
"TextLineColor" },
596 {
"TextVerticalAdjust",
"VerticalAlign" },
597 {
"ControlBackground",
"BackgroundColor" },
598 {
"ControlSymbolColor",
"SymbolColor" },
599 {
"ControlBorder",
"Border" },
600 {
"ControlBorderColor",
"BorderColor" },
601 {
"ControlTextEmphasis",
"FontEmphasisMark" },
602 {
"ImageScaleMode",
"ScaleMode" },
603 {
"ControlWritingMode",
"WritingMode" },
605 {
"ControlTypeinMSO",
"ControlTypeinMSO" },
606 {
"ObjIDinMSO",
"ObjIDinMSO" },
607 {
"CharCaseMap",
"CharCaseMap" },
608 {
"CharColorTheme",
"CharColorTheme" },
609 {
"CharColorTintOrShade",
"CharColorTintOrShade" },
615 bool lcl_convertPropertyName( std::u16string_view rApiName, OUString& rInternalName )
619 if( rApiName == rEntry.msAPIName )
621 rInternalName = rEntry.msFormName;
624 return !rInternalName.isEmpty();
627 struct EnumConversionMap
629 style::ParagraphAdjust nAPIValue;
630 sal_Int16 nFormValue;
633 EnumConversionMap
const aMapAdjustToAlign[] =
638 {style::ParagraphAdjust_LEFT, sal_Int16(awt::TextAlign::LEFT)},
639 {style::ParagraphAdjust_CENTER, sal_Int16(awt::TextAlign::CENTER)},
640 {style::ParagraphAdjust_RIGHT, sal_Int16(awt::TextAlign::RIGHT)},
641 {style::ParagraphAdjust_BLOCK, sal_Int16(awt::TextAlign::RIGHT)},
642 {style::ParagraphAdjust_STRETCH, sal_Int16(awt::TextAlign::LEFT)},
643 {style::ParagraphAdjust(-1),-1}
646 void lcl_convertTextAlignmentToParaAdjustment( Any& _rValue )
648 sal_Int16
nValue = sal_Int16();
649 OSL_VERIFY( _rValue >>=
nValue );
651 for (
auto const & rEntry : aMapAdjustToAlign )
652 if (
nValue == rEntry.nFormValue )
654 _rValue <<= static_cast<sal_uInt16>(rEntry.nAPIValue);
659 void lcl_convertParaAdjustmentToTextAlignment( Any& _rValue )
662 OSL_VERIFY( _rValue >>=
nValue );
664 for (
auto const & rEntry : aMapAdjustToAlign )
665 if (
static_cast<style::ParagraphAdjust
>(
nValue) == rEntry.nAPIValue )
667 _rValue <<= rEntry.nFormValue;
672 void convertVerticalAdjustToVerticalAlign( Any& _rValue )
674 if ( !_rValue.hasValue() )
677 drawing::TextVerticalAdjust eAdjust = drawing::TextVerticalAdjust_TOP;
678 style::VerticalAlignment eAlign = style::VerticalAlignment_TOP;
679 if ( !( _rValue >>= eAdjust ) )
680 throw lang::IllegalArgumentException();
683 case drawing::TextVerticalAdjust_TOP: eAlign = style::VerticalAlignment_TOP;
break;
684 case drawing::TextVerticalAdjust_BOTTOM: eAlign = style::VerticalAlignment_BOTTOM;
break;
685 default: eAlign = style::VerticalAlignment_MIDDLE;
break;
690 void convertVerticalAlignToVerticalAdjust( Any& _rValue )
692 if ( !_rValue.hasValue() )
694 style::VerticalAlignment eAlign = style::VerticalAlignment_TOP;
695 drawing::TextVerticalAdjust eAdjust = drawing::TextVerticalAdjust_TOP;
696 OSL_VERIFY( _rValue >>= eAlign );
699 case style::VerticalAlignment_TOP: eAdjust = drawing::TextVerticalAdjust_TOP;
break;
700 case style::VerticalAlignment_BOTTOM: eAdjust = drawing::TextVerticalAdjust_BOTTOM;
break;
701 default: eAdjust = drawing::TextVerticalAdjust_CENTER;
break;
710 if ( lcl_convertPropertyName( aPropertyName, aFormsName ) )
712 uno::Reference< beans::XPropertySet > xControl(
getControl(), uno::UNO_QUERY );
715 uno::Reference< beans::XPropertySetInfo > xInfo( xControl->getPropertySetInfo() );
716 if( xInfo.is() && xInfo->hasPropertyByName( aFormsName ) )
719 if ( aFormsName ==
"FontSlant" )
721 awt::FontSlant nSlant;
722 if( !(aValue >>= nSlant ) )
723 throw lang::IllegalArgumentException();
724 aConvertedValue <<= static_cast<sal_Int16>(nSlant);
726 else if ( aFormsName ==
"Align" )
728 lcl_convertParaAdjustmentToTextAlignment( aConvertedValue );
730 else if ( aFormsName ==
"VerticalAlign" )
732 convertVerticalAdjustToVerticalAlign( aConvertedValue );
735 xControl->setPropertyValue( aFormsName, aConvertedValue );
748 if ( lcl_convertPropertyName( aPropertyName, aFormsName ) )
750 uno::Reference< beans::XPropertySet > xControl(
getControl(), uno::UNO_QUERY );
755 uno::Reference< beans::XPropertySetInfo > xInfo( xControl->getPropertySetInfo() );
756 if( xInfo.is() && xInfo->hasPropertyByName( aFormsName ) )
758 aValue = xControl->getPropertyValue( aFormsName );
759 if ( aFormsName ==
"FontSlant" )
761 awt::FontSlant eSlant = awt::FontSlant_NONE;
762 sal_Int16 nSlant = sal_Int16();
763 if ( aValue >>= nSlant )
765 eSlant =
static_cast<awt::FontSlant
>(nSlant);
769 OSL_VERIFY( aValue >>= eSlant );
773 else if ( aFormsName ==
"Align" )
775 lcl_convertTextAlignmentToParaAdjustment( aValue );
777 else if ( aFormsName ==
"VerticalAlign" )
779 convertVerticalAlignToVerticalAdjust( aValue );
797 if ( lcl_convertPropertyName( PropertyName, aFormsName ) )
799 uno::Reference< beans::XPropertyState > xControl(
getControl(), uno::UNO_QUERY );
800 uno::Reference< beans::XPropertySet > xPropSet(
getControl(), uno::UNO_QUERY );
802 if( xControl.is() && xPropSet.is() )
804 uno::Reference< beans::XPropertySetInfo > xInfo( xPropSet->getPropertySetInfo() );
805 if( xInfo.is() && xInfo->hasPropertyByName( aFormsName ) )
807 return xControl->getPropertyState( aFormsName );
811 return beans::PropertyState_DEFAULT_VALUE;
822 if ( lcl_convertPropertyName( PropertyName, aFormsName ) )
824 uno::Reference< beans::XPropertyState > xControl(
getControl(), uno::UNO_QUERY );
825 uno::Reference< beans::XPropertySet > xPropSet(
getControl(), uno::UNO_QUERY );
827 if( xControl.is() && xPropSet.is() )
829 uno::Reference< beans::XPropertySetInfo > xInfo( xPropSet->getPropertySetInfo() );
830 if( xInfo.is() && xInfo->hasPropertyByName( aFormsName ) )
832 xControl->setPropertyToDefault( aFormsName );
845 if ( lcl_convertPropertyName( aPropertyName, aFormsName ) )
847 uno::Reference< beans::XPropertyState > xControl(
getControl(), uno::UNO_QUERY );
851 Any aDefault( xControl->getPropertyDefault( aFormsName ) );
852 if ( aFormsName ==
"FontSlant" )
854 sal_Int16 nSlant( 0 );
856 aDefault <<= static_cast<awt::FontSlant>(nSlant);
858 else if ( aFormsName ==
"Align" )
860 lcl_convertTextAlignmentToParaAdjustment( aDefault );
862 else if ( aFormsName ==
"VerticalAlign" )
864 convertVerticalAlignToVerticalAdjust( aDefault );
869 throw beans::UnknownPropertyException( aPropertyName, getXWeak());
912 switch( pProperty->
nWID )
916 if(
auto s = o3tl::tryAccess<drawing::PolyPolygonBezierCoords>(rValue) )
931 if(
auto s = o3tl::tryAccess<drawing::PointSequenceSequence>(rValue) )
946 drawing::PointSequenceSequence aPointSequenceSequence;
947 drawing::PolyPolygonBezierCoords aPolyPolygonBezierCoords;
949 if( rValue >>= aPointSequenceSequence)
967 else if( rValue >>= aPolyPolygonBezierCoords)
988 if(
auto pSequence = o3tl::tryAccess<drawing::PointSequence>(rValue) )
994 const awt::Point* pArray = pSequence->getConstArray();
995 const awt::Point* pArrayEnd = pArray + pSequence->getLength();
997 for(;pArray != pArrayEnd;++pArray)
1019 throw lang::IllegalArgumentException();
1023 css::uno::Any& rValue )
1025 switch( pProperty->
nWID )
1035 drawing::PolyPolygonBezierCoords aRetval;
1049 drawing::PointSequenceSequence aRetval( aPolyPoly.
count() );
1071 drawing::PolyPolygonBezierCoords aRetval;
1077 drawing::PointSequenceSequence aRetval(aPolyPoly.
count());
1092 drawing::PointSequence aRetval(
nCount );
1100 awt::Point* pSequence = aRetval.getArray();
1102 for(sal_Int32 b=0;b<
nCount;b++)
1127 drawing::PolygonKind aRetval(drawing::PolygonKind_LINE);
1183 switch( pProperty->
nWID )
1192 aMemStm.
SetBuffer(
const_cast<css::uno::Sequence<sal_Int8> *
>(pSeq)->getArray(), pSeq->getLength(), pSeq->getLength() );
1202 auto xGraphic = rValue.get<uno::Reference<graphic::XGraphic>>();
1211 auto xBitmap = rValue.get<uno::Reference<awt::XBitmap>>();
1214 uno::Reference<graphic::XGraphic> xGraphic(xBitmap, uno::UNO_QUERY);
1225 OUString aStreamURL;
1227 if( rValue >>= aStreamURL )
1244 uno::Reference<awt::XBitmap> xBitmap;
1245 if (rValue >>=
aURL)
1254 else if (rValue >>= xBitmap)
1256 uno::Reference<graphic::XGraphic> xGraphic(xBitmap, uno::UNO_QUERY);
1272 Reference< graphic::XGraphic > xGraphic( rValue, uno::UNO_QUERY );
1283 bool bIsSignatureLine;
1284 if (rValue >>= bIsSignatureLine)
1294 OUString aSignatureLineId;
1295 if (rValue >>= aSignatureLineId)
1305 OUString aSuggestedSignerName;
1306 if (rValue >>= aSuggestedSignerName)
1316 OUString aSuggestedSignerTitle;
1317 if (rValue >>= aSuggestedSignerTitle)
1327 OUString aSuggestedSignerEmail;
1328 if (rValue >>= aSuggestedSignerEmail)
1338 OUString aSigningInstructions;
1339 if (rValue >>= aSigningInstructions)
1350 if (rValue >>= bShowSignDate)
1360 bool bCanAddComment;
1361 if (rValue >>= bCanAddComment)
1371 Reference<graphic::XGraphic> xGraphic(rValue, uno::UNO_QUERY);
1383 if (rValue >>= bIsSigned)
1393 css::drawing::BarCode aBarCode;
1394 if (rValue >>= aBarCode)
1407 throw lang::IllegalArgumentException();
1416 switch( pProperty->
nWID )
1422 if (rGraphic.
GetType() != GraphicType::GdiMetafile)
1424 uno::Reference<awt::XBitmap> xBitmap(rGraphic.
GetXGraphic(), uno::UNO_QUERY);
1432 const uno::Sequence<sal_Int8>
aSeq(
1455 if( !aStreamURL.isEmpty() )
1456 rValue <<= aStreamURL;
1465 SAL_WARN(
"svx",
"Getting Graphic by URL is not supported, getting it by value");
1468 Reference<graphic::XGraphic> xGraphic;
1470 if (pSdrGraphicObject
1471 && pSdrGraphicObject->GetGraphicObject().GetType() != GraphicType::NONE)
1473 rValue <<= xGraphic;
1479 rValue <<= static_cast< SdrGrafObj* >(
GetSdrObject() )->getInputStream();
1485 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->isSignatureLine();
1491 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineId();
1497 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineSuggestedSignerName();
1503 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineSuggestedSignerTitle();
1509 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineSuggestedSignerEmail();
1515 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->getSignatureLineSigningInstructions();
1521 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->isSignatureLineShowSignDate();
1527 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->isSignatureLineCanAddComment();
1533 Reference<graphic::XGraphic> xGraphic(
1535 rValue <<= xGraphic;
1541 rValue <<= static_cast<SdrGrafObj*>(
GetSdrObject())->isSignatureLineSigned();
1589 if ( !aReturn.hasValue() )
1590 aReturn = ::cppu::queryInterface(rType,
static_cast<drawing::XEnhancedCustomShapeDefaulter*
>(
this) );
1596 return css::uno::Sequence<sal_Int8>();
1610 bool bMirroredX =
false;
1611 bool bMirroredY =
false;
1622 if ( bMirroredX || bMirroredY )
1631 Point aRef1( ( aBoundRect.
Left() + aBoundRect.
Right() ) >> 1, aBoundRect.
Top() );
1632 Point aRef2( aRef1.
X(), aRef1.
Y() + 1000 );
1634 sal_uInt16 nPointCount=aPol.
GetSize();
1635 for (
i=0;
i<nPointCount;
i++)
1654 Point aRef2( aRef1.
X() + 1000, aRef1.
Y() );
1656 sal_uInt16 nPointCount=aPol.
GetSize();
1657 for (
i=0;
i<nPointCount;
i++)
1673 if(
GetSdrObject()->getSdrModelFromSdrObject().IsWriter() )
1677 return css::awt::Point( aPt.
X(), aPt.
Y() );
1693 if(
"FlushCustomShapeUnoApiObjects" == aPropertyName)
1709 bool bCustomShapeGeometry =
pObject && aPropertyName ==
"CustomShapeGeometry";
1711 bool bMirroredX =
false;
1712 bool bMirroredY =
false;
1714 if ( bCustomShapeGeometry )
1722 if ( !bCustomShapeGeometry )
1732 std::unique_ptr< SdrGluePointList > pListCopy;
1733 if( bNeedsMirrorX || bNeedsMirrorY )
1740 if ( bNeedsMirrorX )
1743 Point aBottom( aTop.
X(), aTop.
Y() + 1000 );
1744 pObject->NbcMirror( aTop, aBottom );
1749 if ( bNeedsMirrorY )
1752 Point aRight( aLeft.
X() + 1000, aLeft.
Y() );
1753 pObject->NbcMirror( aLeft, aRight );
1763 *pNewList = *pListCopy;
1769 switch( pProperty->
nWID )
1775 rValue <<= static_cast<sal_Int32>(fAngle);
1787 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
constexpr tools::Long Y() const
constexpr tools::Long X() const
This class represents an embedded or linked bitmap graphic object.
const Graphic & GetGraphic() const
size_t TryToFindMarkedObject(const SdrObject *pObj) const
virtual void SetChanged(bool bFlg=true)
css::uno::Reference< css::drawing::XCustomShapeEngine > mxCustomShapeEngine
virtual void InsertObject(SdrObject *pObj, size_t nPos=SAL_MAX_SIZE)
SdrObject * GetObj(size_t nNum) const
size_t GetObjCount() const
virtual rtl::Reference< SdrObject > NbcRemoveObject(size_t nObjNum)
remove from list without delete
static SdrObject * getSdrObjectFromXShape(const css::uno::Reference< css::uno::XInterface > &xInt)
const Point & GetAnchorPos() const
virtual css::uno::Reference< css::drawing::XShape > getUnoShape()
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.
virtual ~SvxShapeGroupAnyD() noexcept override
SvxShapeGroupAnyD(SdrObject *pObject, o3tl::span< const SfxItemPropertyMapEntry > pEntries, const SvxItemPropertySet *pPropertySet)
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
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
unotools::WeakReference< SvxDrawPage > mxWeakPage
using a weak reference to prevent leaks via ref-counting cycles
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 ForAllViews(const SdrPage *pPage, std::function< void(SdrView *)> f)
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)
tools::Rectangle polygonToRectangle(const tools::Polygon &rPolygon, GeoStat &rGeo)
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)
@ PolyLine
polygon, PolyPolygon
@ FreehandFill
open free-hand line
tools::Polygon Rect2Poly(const tools::Rectangle &rRect, const 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_COMPLEX_COLOR
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)