29 maEventListeners( maListenerMutex ),
30 mpDrawModel( pDrawModel )
53 const css::uno::Reference< css::drawing::XShape >& xShape,
54 const uno::Reference< document::XShapeEventListener >& xListener )
56 assert(xShape.is() &&
"no shape?");
59 assert(rv.second &&
"duplicate listener?");
64 const css::uno::Reference< css::drawing::XShape >& xShape,
65 const uno::Reference< document::XShapeEventListener >& xListener )
71 assert(it->second == xListener &&
"removing wrong listener?");
80 if (rHint.
GetId() != SfxHintId::ThisIsAnSdrHint)
84 document::EventObject
aEvent;
91 const uno::Reference < document::XEventListener >& xListener = aIter.
next();
94 xListener->notifyEvent( aEvent );
96 catch(
const uno::RuntimeException& )
103 if (pSdrHint->
GetKind() == SdrHintKind::ObjectChange)
106 uno::Reference<drawing::XShape> xShape(pSdrObject->getUnoShape(), uno::UNO_QUERY);
110 it->second->notifyShapeEvent(aEvent);
virtual void SAL_CALL removeShapeEventListener(const css::uno::Reference< css::drawing::XShape > &xShape, const css::uno::Reference< css::document::XShapeEventListener > &xListener) override
static bool createEvent(const SdrModel *pDoc, const SdrHint *pSdrHint, css::document::EventObject &aEvent)
SdrHintKind GetKind() const
bool hasMoreElements() const
sal_Int32 addInterface(const css::uno::Reference< ListenerT > &rxIFace)
ScDrawModelBroadcaster(SdrModel *pDrawModel)
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
#define TOOLS_WARN_EXCEPTION(area, stream)
sal_Int32 removeInterface(const css::uno::Reference< ListenerT > &rxIFace)
css::uno::Reference< ListenerT > const & next()
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
void StartListening(SfxBroadcaster &rBroadcaster, DuplicateHandling eDuplicateHanding=DuplicateHandling::Unexpected)
mutable::osl::Mutex maListenerMutex
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::document::XEventListener > &xListener) override
void EndListening(SfxBroadcaster &rBroadcaster, bool bRemoveAllDuplicates=false)
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::document::XEventListener > &xListener) override
virtual ~ScDrawModelBroadcaster() override
virtual void SAL_CALL addShapeEventListener(const css::uno::Reference< css::drawing::XShape > &xShape, const css::uno::Reference< css::document::XShapeEventListener > &xListener) override
::comphelper::OInterfaceContainerHelper3< css::document::XEventListener > maEventListeners
std::unordered_map< css::uno::Reference< css::drawing::XShape >, css::uno::Reference< css::document::XShapeEventListener > > maShapeListeners
const SdrObject * GetObject() const