31#include <com/sun/star/awt/XControl.hpp>
32#include <com/sun/star/awt/XControlModel.hpp>
33#include <com/sun/star/awt/XControlContainer.hpp>
34#include <com/sun/star/awt/XWindow2.hpp>
35#include <com/sun/star/awt/PosSize.hpp>
36#include <com/sun/star/awt/XView.hpp>
37#include <com/sun/star/beans/XPropertySet.hpp>
38#include <com/sun/star/beans/XPropertySetInfo.hpp>
39#include <com/sun/star/lang/XComponent.hpp>
40#include <com/sun/star/awt/InvalidateStyle.hpp>
41#include <com/sun/star/util/XModeChangeListener.hpp>
42#include <com/sun/star/util/XModeChangeBroadcaster.hpp>
43#include <com/sun/star/uno/XComponentContext.hpp>
44#include <com/sun/star/container/XContainerListener.hpp>
45#include <com/sun/star/container/XContainer.hpp>
106 using namespace ::com::sun::star::awt::InvalidateStyle;
107 using ::com::sun::star::uno::Reference;
108 using ::com::sun::star::uno::XInterface;
109 using ::com::sun::star::uno::UNO_QUERY;
110 using ::com::sun::star::uno::UNO_QUERY_THROW;
111 using ::com::sun::star::uno::Exception;
112 using ::com::sun::star::awt::XControl;
113 using ::com::sun::star::awt::XControlModel;
114 using ::com::sun::star::awt::XControlContainer;
115 using ::com::sun::star::awt::XWindow2;
116 using ::com::sun::star::awt::XWindowListener;
117 using ::com::sun::star::awt::PosSize::POSSIZE;
118 using ::com::sun::star::awt::XView;
119 using ::com::sun::star::awt::WindowEvent;
121 using ::com::sun::star::beans::XPropertySetInfo;
122 using ::com::sun::star::lang::XComponent;
123 using ::com::sun::star::awt::XWindowPeer;
124 using ::com::sun::star::beans::XPropertyChangeListener;
125 using ::com::sun::star::util::XModeChangeListener;
126 using ::com::sun::star::util::XModeChangeBroadcaster;
127 using ::com::sun::star::util::ModeChangeEvent;
128 using ::com::sun::star::lang::EventObject;
129 using ::com::sun::star::beans::PropertyChangeEvent;
130 using ::com::sun::star::container::XContainerListener;
131 using ::com::sun::star::container::XContainer;
132 using ::com::sun::star::container::ContainerEvent;
133 using ::com::sun::star::uno::Any;
149 explicit ControlHolder(
const Reference< XControl >& _rxControl )
154 ControlHolder& operator=(
const Reference< XControl >& _rxControl )
165 OSL_FAIL(
"ControlHolder::operator=: invalid XControl, missing required interfaces!" );
179 bool isDesignMode()
const {
return m_xControl->isDesignMode(); }
180 void setDesignMode(
const bool _bDesign )
const {
m_xControl->setDesignMode( _bDesign ); }
182 void setVisible(
const bool _bVisible )
const {
m_xControlWindow->setVisible( _bVisible ); }
183 Reference< XControlModel >
184 getModel()
const {
return m_xControl->getModel(); }
185 void setModel(
const Reference< XControlModel >& _m )
const {
m_xControl->setModel( _m ); }
187 void addWindowListener(
const Reference< XWindowListener >& _l )
const {
m_xControlWindow->addWindowListener( _l ); }
188 void removeWindowListener(
const Reference< XWindowListener >& _l )
const {
m_xControlWindow->removeWindowListener( _l ); }
192 void setZoom( const ::basegfx::B2DVector& _rScale )
const;
196 void invalidate()
const;
199 const Reference< XControl >& getControl()
const {
return m_xControl; }
202 bool operator==(
const ControlHolder& _rControl,
const Reference< XInterface >& _rxCompare )
204 return _rControl.getControl() == _rxCompare;
207 bool operator==(
const ControlHolder& _rControl,
const Any& _rxCompare )
209 return _rControl == Reference< XInterface >( _rxCompare, UNO_QUERY );
220 if ( aCurrentRect != _rPosSize )
237 void ControlHolder::setZoom( const ::basegfx::B2DVector& _rScale )
const
240 m_xControlView->setZoom(
static_cast<float>(_rScale.getX()),
static_cast<float>(_rScale.getY()) );
244 void ControlHolder::invalidate()
const
246 Reference< XWindowPeer > xPeer(
m_xControl->getPeer() );
250 OSL_ENSURE( pWindow,
"ControlHolder::invalidate: no implementation access!" );
252 pWindow->Invalidate();
263 OSL_ENSURE( pWindow,
"ControlHolder::getZoom: no implementation access!" );
268 const Fraction& rZoom( pWindow->GetZoom() );
269 aZoom.setX(
static_cast<double>(rZoom) );
270 aZoom.setY(
static_cast<double>(rZoom) );
275 namespace UnoControlContactHelper {
280 const basegfx::B2DHomMatrix& _rViewTransformation, const ::basegfx::B2DHomMatrix& _rZoomLevelNormalization )
286 OSL_PRECOND( _rControl.is(),
"UnoControlContactHelper::adjustControlGeometry_throw: illegal control!" );
287 if ( !_rControl.is() )
290 #if OSL_DEBUG_LEVEL > 0
292 double nViewRotate(0), nViewShearX(0);
293 _rViewTransformation.
decompose( aViewScale, aViewTranslate, nViewRotate, nViewShearX );
296 double nZoomRotate(0), nZoomShearX(0);
297 _rZoomLevelNormalization.decompose( aZoomScale, aZoomTranslate, nZoomRotate, nZoomShearX );
302 aTopLeft *= _rViewTransformation;
304 aBottomRight *= _rViewTransformation;
310 _rControl.setPosSize( aPaintRectPixel );
315 double fRotate, fShearX;
316 aObtainResolutionDependentScale.
decompose( aScale, aTranslate, fRotate, fShearX );
317 _rControl.setZoom( aScale );
326 Reference< XComponent > xControlComp = _rControl.getControl();
327 if ( xControlComp.is() )
328 xControlComp->dispose();
343 class IPageViewAccess
348 virtual bool isDesignMode()
const = 0;
352 virtual Reference< XControlContainer >
353 getControlContainer(
const OutputDevice& _rDevice )
const = 0;
357 virtual bool isLayerVisible(
SdrLayerID _nLayerID )
const = 0;
360 ~IPageViewAccess() {}
365 class SdrPageViewAccess :
public IPageViewAccess
371 virtual ~SdrPageViewAccess() {}
373 virtual bool isDesignMode()
const override;
374 virtual Reference< XControlContainer >
375 getControlContainer(
const OutputDevice& _rDevice )
const override;
376 virtual bool isLayerVisible(
SdrLayerID _nLayerID )
const override;
381 bool SdrPageViewAccess::isDesignMode()
const
387 Reference< XControlContainer > SdrPageViewAccess::getControlContainer(
const OutputDevice& _rDevice )
const
391 "SdrPageViewAccess::getControlContainer: the output device is known, but there is no control container for it?" );
392 return xControlContainer;
396 bool SdrPageViewAccess::isLayerVisible(
SdrLayerID _nLayerID )
const
406 class InvisibleControlViewAccess :
public IPageViewAccess
411 explicit InvisibleControlViewAccess( Reference< XControlContainer >& _inout_ControlContainer )
416 virtual ~InvisibleControlViewAccess() {}
418 virtual bool isDesignMode()
const override;
419 virtual Reference< XControlContainer >
420 getControlContainer(
const OutputDevice& _rDevice )
const override;
421 virtual bool isLayerVisible(
SdrLayerID _nLayerID )
const override;
426 bool InvisibleControlViewAccess::isDesignMode()
const
432 Reference< XControlContainer > InvisibleControlViewAccess::getControlContainer(
const OutputDevice& _rDevice )
const
437 OSL_ENSURE( pWindow,
"InvisibleControlViewAccess::getControlContainer: expected to be called for a window only!" );
445 bool InvisibleControlViewAccess::isLayerVisible(
SdrLayerID )
const
461 class DummyPageViewAccess :
public IPageViewAccess
464 DummyPageViewAccess()
468 virtual ~DummyPageViewAccess() {}
470 virtual bool isDesignMode()
const override;
471 virtual Reference< XControlContainer >
472 getControlContainer(
const OutputDevice& _rDevice )
const override;
473 virtual bool isLayerVisible(
SdrLayerID _nLayerID )
const override;
478 bool DummyPageViewAccess::isDesignMode()
const
484 Reference< XControlContainer > DummyPageViewAccess::getControlContainer(
const OutputDevice& )
const
490 bool DummyPageViewAccess::isLayerVisible(
SdrLayerID )
const
498 typedef ::cppu::WeakImplHelper < XWindowListener
499 , XPropertyChangeListener
501 , XModeChangeListener
613 IPageViewAccess
const & _rPageView,
618 ControlHolder& _out_rControl
632 virtual void SAL_CALL
disposing(
const EventObject& Source )
override;
635 virtual void SAL_CALL
windowResized(
const WindowEvent& e )
override;
636 virtual void SAL_CALL
windowMoved(
const WindowEvent& e )
override;
637 virtual void SAL_CALL
windowShown(
const EventObject& e )
override;
638 virtual void SAL_CALL
windowHidden(
const EventObject& e )
override;
641 virtual void SAL_CALL
propertyChange(
const PropertyChangeEvent& evt )
override;
644 virtual void SAL_CALL
modeChanged(
const ModeChangeEvent& _rSource )
override;
647 virtual void SAL_CALL
elementInserted(
const css::container::ContainerEvent& Event )
override;
648 virtual void SAL_CALL
elementRemoved(
const css::container::ContainerEvent& Event )
override;
649 virtual void SAL_CALL
elementReplaced(
const css::container::ContainerEvent& Event )
override;
719 IPageViewAccess
const & _rPageView,
bool _bIsCurrentlyVisible,
bool _bForce );
776 IPageViewAccess
const & _rPageView,
795 const ::drawinglayer::geometry::ViewInformation2D& rViewInformation
798 virtual void create2DDecomposition(
800 const ::drawinglayer::geometry::ViewInformation2D& rViewInformation
803 virtual ::basegfx::B2DRange
805 const ::drawinglayer::geometry::ViewInformation2D& rViewInformation
816 virtual bool operator==(
const BasePrimitive2D& rPrimitive)
const override;
819 virtual sal_uInt32 getPrimitive2DID()
const override;
821 static void getTransformation(
const ViewContactOfUnoControl& _rVOC,
::basegfx::B2DHomMatrix& _out_Transformation );
824 void impl_positionAndZoomControl( const ::drawinglayer::geometry::ViewInformation2D& _rViewInformation )
const
826 if ( !_rViewInformation.getViewport().isEmpty() )
827 m_pVOCImpl->positionAndZoomControl( _rViewInformation.getObjectToViewTransformation() );
842 :m_pAntiImpl( _pAntiImpl )
843 ,m_bCreatingControl( false )
844 ,m_pOutputDeviceForWindow( nullptr )
845 ,m_bControlIsVisible( false )
846 ,m_bIsDesignModeListening( false )
849 DBG_ASSERT(
m_pAntiImpl,
"ViewObjectContactOfUnoControl_Impl::ViewObjectContactOfUnoControl_Impl: invalid AntiImpl!" );
854 #if OSL_DEBUG_LEVEL > 0
856 double fRotate, fShearX;
862 aScaleNormalization.
set( 0, 0,
static_cast<double>(aCurrentDeviceMapMode.
GetScaleX()) );
863 aScaleNormalization.
set( 1, 1,
static_cast<double>(aCurrentDeviceMapMode.
GetScaleY()) );
866 #if OSL_DEBUG_LEVEL > 0
895 if ( _bAlsoDisposeControl )
916 OSL_PRECOND( !
impl_isDisposed_nofail(),
"ViewObjectContactOfUnoControl_Impl::getUnoObject: already disposed()" );
921 "ViewObjectContactOfUnoControl_Impl::getUnoObject: invalid SdrObject!" );
928 OSL_PRECOND(
m_aControl.is(),
"ViewObjectContactOfUnoControl_Impl::positionAndZoomControl: no output device or no control!" );
941 OSL_FAIL(
"ViewObjectContactOfUnoControl_Impl::positionAndZoomControl: no SdrUnoObj!" );
952 OSL_PRECOND( !
impl_isDisposed_nofail(),
"ViewObjectContactOfUnoControl_Impl::ensureControl: already disposed()" );
957 if ( pPageViewContact )
964 _pInitialViewTransformationOrNULL ? *_pInitialViewTransformationOrNULL : rDevice.
GetViewTransformation()
969 DummyPageViewAccess aNoPageView;
974 _pInitialViewTransformationOrNULL ? *_pInitialViewTransformationOrNULL : rDevice.
GetViewTransformation()
985 return *oPageOutputDev;
995 void lcl_resetFlag(
bool& rbFlag )
1007 OSL_FAIL(
"ViewObjectContactOfUnoControl_Impl::impl_ensureControl_nothrow: reentrance is not really good here!" );
1044 ControlHolder aControl;
1050 m_xContainer.set(_rPageView.getControlContainer( _rDevice ), css::uno::UNO_QUERY);
1052 || ( ( !_rPageView.getControlContainer( _rDevice ).is() )
1056 "ViewObjectContactOfUnoControl_Impl::impl_ensureControl_nothrow: no XContainer at the ControlContainer!" );
1083 _out_rControl.clear();
1086 DBG_ASSERT( xControlModel.is(),
"ViewObjectContactOfUnoControl_Impl::createControlForDevice: no control model at the SdrUnoObject!?" );
1087 if ( !xControlModel.is() )
1090 bool bSuccess =
false;
1095 Reference< css::uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext();
1096 _out_rControl = Reference<XControl>( xContext->getServiceManager()->createInstanceWithContext(sControlServiceName, xContext), UNO_QUERY_THROW );
1099 Reference<XPropertySet> xModelProperties(xControlModel, UNO_QUERY);
1100 Reference<XPropertySetInfo> xInfo = xModelProperties ? xModelProperties->getPropertySetInfo() :
nullptr;
1101 if (xInfo && xInfo->hasPropertyByName(
"StandardTheme"))
1105 _out_rControl.setModel( xControlModel );
1112 _rInitialViewTransformation,
1113 _rInitialZoomNormalization
1118 _out_rControl.setDesignMode( _rPageView.isDesignMode() );
1125 Reference< XControlContainer > xControlContainer( _rPageView.getControlContainer( _rDevice ) );
1126 if ( xControlContainer.is() )
1127 xControlContainer->addControl( sControlServiceName, _out_rControl.getControl() );
1142 return _out_rControl.is();
1148 OSL_PRECOND( !
impl_isDisposed_nofail(),
"ViewObjectContactOfUnoControl_Impl::impl_getPageView_nothrow: already disposed!" );
1150 _out_rpPageView =
nullptr;
1155 if ( pPageViewContact )
1158 DBG_ASSERT( _out_rpPageView !=
nullptr,
"ViewObjectContactOfUnoControl_Impl::impl_getPageView_nothrow: this method is expected to always have success!" );
1159 return ( _out_rpPageView !=
nullptr );
1166 "ViewObjectContactOfUnoControl_Impl::impl_adjustControlVisibilityToLayerVisibility_throw: only valid if we have a control!" );
1176 SdrPageViewAccess aPVAccess( *pPageView );
1182 const SdrUnoObj& _rUnoObject, IPageViewAccess
const & _rPageView,
bool _bIsCurrentlyVisible,
bool _bForce )
1187 if ( !_rControl.isDesignMode() )
1192 bool bIsObjectVisible = _rUnoObject.
IsVisible() && _rPageView.isLayerVisible( nObjectLayer );
1194 if ( _bForce || ( bIsObjectVisible != _bIsCurrentlyVisible ) )
1196 _rControl.setVisible( bIsObjectVisible );
1204 OSL_PRECOND(
m_xContainer.is(),
"ViewObjectContactOfUnoControl_Impl::impl_switchContainerListening_nothrow: no control container!" );
1224 OSL_PRECOND(
m_aControl.is(),
"ViewObjectContactOfUnoControl_Impl::impl_switchControlListening_nothrow: invalid control!" );
1240 Reference< XModeChangeBroadcaster > xDesignModeChanges(
m_aControl.getControl(), UNO_QUERY_THROW );
1242 xDesignModeChanges->addModeChangeListener(
this );
1244 xDesignModeChanges->removeModeChangeListener(
this );
1265 OSL_PRECOND(
m_aControl.is(),
"ViewObjectContactOfUnoControl_Impl::impl_switchPropertyListening_nothrow: no control!" );
1271 Reference< XPropertySet > xModelProperties(
m_aControl.getModel(), UNO_QUERY_THROW );
1273 xModelProperties->addPropertyChangeListener( OUString(),
this );
1275 xModelProperties->removePropertyChangeListener( OUString(),
this );
1290 bool bIsPrintable =
false;
1293 Reference< XPropertySet > xModelProperties( pUnoObject->
GetUnoControlModel(), UNO_QUERY_THROW );
1294 OSL_VERIFY( xModelProperties->getPropertyValue(
"Printable" ) >>= bIsPrintable );
1300 return bIsPrintable;
1360 OSL_PRECOND( !
impl_isDisposed_nofail(),
"ViewObjectContactOfUnoControl_Impl::propertyChange: already disposed()" );
1380 DBG_ASSERT( _rSource.NewMode ==
"design" || _rSource.NewMode ==
"alive",
"ViewObjectContactOfUnoControl_Impl::modeChanged: unexpected mode!" );
1411 DBG_ASSERT( Event.Source ==
m_xContainer,
"ViewObjectContactOfUnoControl_Impl::elementRemoved: where did this come from?" );
1421 DBG_ASSERT( Event.Source ==
m_xContainer,
"ViewObjectContactOfUnoControl_Impl::elementReplaced: where did this come from?" );
1423 if ( ! (
m_aControl == Event.ReplacedElement ) )
1426 Reference< XControl > xNewControl( Event.Element, UNO_QUERY );
1427 DBG_ASSERT( xNewControl.is(),
"ViewObjectContactOfUnoControl_Impl::elementReplaced: invalid new control!" );
1428 if ( !xNewControl.is() )
1433 DBG_ASSERT( xNewControl->getModel() ==
m_aControl.getModel(),
"ViewObjectContactOfUnoControl_Impl::elementReplaced: another model at the new control?" );
1439 ControlHolder aNewControl( xNewControl );
1441 aNewControl.setPosSize(
m_aControl.getPosSize() );
1479 bool LazyControlCreationPrimitive2D::operator==(
const BasePrimitive2D& rPrimitive)
const
1481 if ( !BufferedDecompositionPrimitive2D::operator==( rPrimitive ) )
1484 const LazyControlCreationPrimitive2D* pRHS =
dynamic_cast< const LazyControlCreationPrimitive2D*
>( &rPrimitive );
1498 void LazyControlCreationPrimitive2D::getTransformation(
const ViewContactOfUnoControl& _rVOC,
::basegfx::B2DHomMatrix& _out_Transformation )
1507 _out_Transformation.
set( 0, 0, aRange.
getWidth() );
1509 _out_Transformation.
set( 0, 2, aRange.
getMinX() );
1510 _out_Transformation.
set( 1, 2, aRange.
getMinY() );
1514 ::basegfx::B2DRange LazyControlCreationPrimitive2D::getB2DRange( const ::drawinglayer::geometry::ViewInformation2D& )
const
1524 #if OSL_DEBUG_LEVEL > 0
1526 double fRotate, fShearX;
1527 _rViewInformation.getObjectToViewTransformation().decompose( aScale, aTranslate, fRotate, fShearX );
1530 impl_positionAndZoomControl( _rViewInformation );
1531 BufferedDecompositionPrimitive2D::get2DDecomposition( rVisitor, _rViewInformation );
1537 #if OSL_DEBUG_LEVEL > 0
1539 double fRotate, fShearX;
1540 _rViewInformation.getObjectToViewTransformation().decompose( aScale, aTranslate, fRotate, fShearX );
1542 const bool bHadControl =
m_pVOCImpl->getExistentControl().is();
1546 m_pVOCImpl->ensureControl( &_rViewInformation.getObjectToViewTransformation() );
1547 impl_positionAndZoomControl( _rViewInformation );
1550 const ViewContactOfUnoControl& rViewContactOfUnoControl(
m_pVOCImpl->getViewContact() );
1551 Reference< XControlModel > xControlModel( rViewContactOfUnoControl.GetSdrUnoObj().GetUnoControlModel() );
1552 const ControlHolder& rControl(
m_pVOCImpl->getExistentControl() );
1554 if ( !bHadControl && rControl.is() && rControl.isVisible() )
1555 rControl.invalidate();
1558 if ( !xControlModel.is() || !rControl.is() )
1563 rViewContactOfUnoControl.getViewIndependentPrimitive2DContainer(rContainer);
1569 rContainer.push_back( new ::drawinglayer::primitive2d::ControlPrimitive2D(
1571 m_pVOCImpl->getViewContact().GetSdrObject().GetTitle(),
1572 m_pVOCImpl->getViewContact().GetSdrObject().GetDescription()) );
1575 sal_uInt32 LazyControlCreationPrimitive2D::getPrimitive2DID()
const
1598 m_pImpl->ensureControl(
nullptr );
1599 return m_pImpl->getExistentControl().getControl();
1604 const vcl::Window& _rWindow, Reference< XControlContainer >& _inout_ControlContainer,
const SdrUnoObj& _rUnoObject )
1606 ControlHolder aControl;
1608 InvisibleControlViewAccess aSimulatePageView( _inout_ControlContainer );
1611 return aControl.getControl();
1621 const ControlHolder& rControl(
m_pImpl->getExistentControl() );
1622 if ( !rControl.is() )
1626 if ( rControl.isDesignMode() )
1630 if (
m_pImpl->isControlVisible() == _bVisible )
1634 rControl.setVisible( _bVisible );
1635 DBG_ASSERT(
m_pImpl->isControlVisible() == _bVisible,
"ViewObjectContactOfUnoControl::ensureControlVisibility: this didn't work!" );
1649 m_pImpl->setControlDesignMode( _bDesignMode );
1669 if (
GetObjectContact().getViewInformation2D().getViewTransformation().isIdentity() )
1674 const ControlHolder& rControl(
m_pImpl->getExistentControl() );
1675 if ( rControl.is() && !rControl.isDesignMode() && !rControl.isVisible() )
1678 rVisitor.
visit(
new LazyControlCreationPrimitive2D(
m_pImpl ) );
1688 const ::drawinglayer::geometry::ViewInformation2D& rViewInformation(
GetObjectContact().getViewInformation2D() );
1689 #if OSL_DEBUG_LEVEL > 0
1691 double fRotate, fShearX;
1692 rViewInformation.getObjectToViewTransformation().decompose( aScale, aTranslate, fRotate, fShearX );
1695 if ( !rViewInformation.getViewport().isEmpty() )
1709 if(0.0 != rGridOffset.
getX() || 0.0 != rGridOffset.
getY())
1718 m_pImpl->positionAndZoomControl(aViewTransformation);
1736 const ControlHolder& rControl(
m_pImpl->getExistentControl());
1738 if(!rControl.is() || rControl.isDesignMode())
1750 if(rControl.isVisible() != bIsLayerVisible)
1752 rControl.setVisible(bIsLayerVisible);
1783 if ( !
m_pImpl->isPrintableControl() )
const Fraction & GetScaleX() const
const Fraction & GetScaleY() const
basegfx::B2DHomMatrix GetViewTransformation() const
basegfx::B2DHomMatrix GetInverseViewTransformation() const
const MapMode & GetMapMode() const
virtual vcl::Window * GetOwnerWindow() const
bool IsSet(SdrLayerID a) const
bool IsDesignMode() const
SdrModel & getSdrModelFromSdrObject() const
virtual SdrLayerID GetLayer() const
const SdrLayerIDSet & GetVisibleLayers() const
css::uno::Reference< css::awt::XControlContainer > GetControlContainer(const OutputDevice &_rDevice) const
Looks up the control container belonging to given output device.
SdrPageWindow * FindPageWindow(const SdrPaintWindow &rPaintWindow) const
SdrPageView & GetPageView() const
virtual const tools::Rectangle & GetLogicRect() const override
const OUString & GetUnoControlTypeName() const
const css::uno::Reference< css::awt::XControlModel > & GetUnoControlModel() const
static css::uno::Reference< css::awt::XControlContainer > CreateControlContainer(vcl::Window *pWindow)
::tools::Rectangle ConvertToVCLRect(css::awt::Rectangle const &_rRect)
static vcl::Window * GetWindow(const css::uno::Reference< css::awt::XWindow > &rxWindow)
reference_type * get() const
bool decompose(B2DTuple &rScale, B2DTuple &rTranslate, double &rRotate, double &rShearX) const
void set(sal_uInt16 nRow, sal_uInt16 nColumn, double fValue)
BASEGFX_DLLPUBLIC void transform(const B2DHomMatrix &rMatrix)
virtual void visit(const Primitive2DReference &)=0
SdrPageWindow & GetPageWindow() const
::OutputDevice const * GetOutDev() const
#define DBG_ASSERT(sCon, aError)
#define ENSURE_OR_THROW(c, m)
#define DBG_UNHANDLED_EXCEPTION(...)
B2DHomMatrix createTranslateB2DHomMatrix(double fTranslateX, double fTranslateY)
class SAL_NO_VTABLE XPropertySet
#define PRIMITIVE2D_ID_SDRCONTROLPRIMITIVE2D
bool operator==(const XclFontData &rLeft, const XclFontData &rRight)