editeng/source/accessibility/AccessibleEditableTextPara.cxx |    5 
 editeng/source/accessibility/AccessibleImageBullet.cxx      |   31 -
 editeng/source/accessibility/AccessibleImageBullet.hxx      |  297 ++++++------
 3 files changed, 154 insertions(+), 179 deletions(-)

New commits:
commit c040f9a3905d6a6abeefc643028a2bbd201a1818
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Apr 7 11:13:00 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Tue Apr 8 17:12:27 2025 +0200

    editeng a11y: Let paragraph dispose its bullet child
    
    Instead of letting AccessibleImageBullet dispose
    itself in AccessibleImageBullet::SetEditSource when
    called with a null edit source, let the AccessibleEditableTextPara
    that created the bullet and can therefore be considered the
    owner (see AccessibleEditableTextPara::getAccessibleChild) dispose it
    again in AccessibleEditableTextPara::dispose.
    
    Also clear `maImageBullet`.
    
    This is similar to
    
        commit 138bc16c9aac04def13843bb9bf6f18075a88c0f
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Thu Apr 3 11:59:51 2025 +0200
    
            editeng a11y: Let para manager dispose its child
    
    Change-Id: I8083b0c9bf304942e9ead446bdeaefeb62ae609f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183780
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx 
b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
index 11e99480577a..a627a09c5906 100644
--- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx
+++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
@@ -255,6 +255,11 @@ void AccessibleEditableTextPara::SetParagraphIndex( 
sal_Int32 nIndex )
 
 void SAL_CALL AccessibleEditableTextPara::dispose()
 {
+    rtl::Reference<AccessibleImageBullet> xBullet = maImageBullet.get();
+    if (xBullet.is())
+        xBullet->Dispose();
+    maImageBullet.clear();
+
     mxParent = nullptr;
     mpEditSource = nullptr;
 
diff --git a/editeng/source/accessibility/AccessibleImageBullet.cxx 
b/editeng/source/accessibility/AccessibleImageBullet.cxx
index 5c8fb4244b2e..2dc9edbe76b0 100644
--- a/editeng/source/accessibility/AccessibleImageBullet.cxx
+++ b/editeng/source/accessibility/AccessibleImageBullet.cxx
@@ -373,8 +373,6 @@ void AccessibleImageBullet::SetEditSource( SvxEditSource* 
pEditSource )
         UnSetState( AccessibleStateType::VISIBLE );
         SetState( AccessibleStateType::INVALID );
         SetState( AccessibleStateType::DEFUNC );
-
-        Dispose();
     }
 }
 
commit 4e892def7bd702c65e9a125b239880b790181a29
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Apr 7 11:01:17 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Tue Apr 8 17:12:21 2025 +0200

    editeng a11y: Drop empty lines at beginning of methods
    
    Change-Id: Ib25bc28adab2e220c4fe3056413a6fac10fcbdc2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183779
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/editeng/source/accessibility/AccessibleImageBullet.cxx 
b/editeng/source/accessibility/AccessibleImageBullet.cxx
index b0a195e71c82..5c8fb4244b2e 100644
--- a/editeng/source/accessibility/AccessibleImageBullet.cxx
+++ b/editeng/source/accessibility/AccessibleImageBullet.cxx
@@ -78,7 +78,6 @@ AccessibleImageBullet::AccessibleImageBullet ( 
uno::Reference< XAccessible > xPa
 
 AccessibleImageBullet::~AccessibleImageBullet()
 {
-
     // sign off from event notifier
     if( getNotifierClientId() != -1 )
     {
@@ -92,14 +91,12 @@ AccessibleImageBullet::~AccessibleImageBullet()
 
 uno::Reference< XAccessibleContext > SAL_CALL 
AccessibleImageBullet::getAccessibleContext(  )
 {
-
     // We implement the XAccessibleContext interface in the same object
     return uno::Reference< XAccessibleContext > ( this );
 }
 
 sal_Int64 SAL_CALL  AccessibleImageBullet::getAccessibleChildCount()
 {
-
     return 0;
 }
 
@@ -111,19 +108,16 @@ uno::Reference< XAccessible > SAL_CALL  
AccessibleImageBullet::getAccessibleChil
 
 uno::Reference< XAccessible > SAL_CALL  
AccessibleImageBullet::getAccessibleParent()
 {
-
     return mxParent;
 }
 
 sal_Int64 SAL_CALL  AccessibleImageBullet::getAccessibleIndexInParent()
 {
-
     return mnIndexInParent;
 }
 
 sal_Int16 SAL_CALL  AccessibleImageBullet::getAccessibleRole()
 {
-
     return AccessibleRole::GRAPHIC;
 }
 
@@ -141,7 +135,6 @@ OUString SAL_CALL  
AccessibleImageBullet::getAccessibleName()
 
 uno::Reference< XAccessibleRelationSet > SAL_CALL 
AccessibleImageBullet::getAccessibleRelationSet()
 {
-
     // no relations, therefore empty
     return uno::Reference< XAccessibleRelationSet >();
 }
@@ -157,7 +150,6 @@ sal_Int64 SAL_CALL 
AccessibleImageBullet::getAccessibleStateSet()
 
 lang::Locale SAL_CALL AccessibleImageBullet::getLocale()
 {
-
     SolarMutexGuard aGuard;
 
     DBG_ASSERT(GetParagraphIndex() >= 0,
@@ -169,14 +161,12 @@ lang::Locale SAL_CALL AccessibleImageBullet::getLocale()
 
 void SAL_CALL AccessibleImageBullet::addAccessibleEventListener( const 
uno::Reference< XAccessibleEventListener >& xListener )
 {
-
     if( getNotifierClientId() != -1 )
         ::comphelper::AccessibleEventNotifier::addEventListener( 
getNotifierClientId(), xListener );
 }
 
 void SAL_CALL AccessibleImageBullet::removeAccessibleEventListener( const 
uno::Reference< XAccessibleEventListener >& xListener )
 {
-
     if( getNotifierClientId() == -1 )
         return;
 
@@ -195,7 +185,6 @@ void SAL_CALL 
AccessibleImageBullet::removeAccessibleEventListener( const uno::R
 
 sal_Bool SAL_CALL AccessibleImageBullet::containsPoint( const awt::Point& 
rPoint )
 {
-
     SolarMutexGuard aGuard;
 
     DBG_ASSERT(GetParagraphIndex() >= 0,
@@ -210,7 +199,6 @@ sal_Bool SAL_CALL AccessibleImageBullet::containsPoint( 
const awt::Point& rPoint
 
 uno::Reference< XAccessible > SAL_CALL 
AccessibleImageBullet::getAccessibleAtPoint( const awt::Point& /*aPoint*/ )
 {
-
     // as we have no children, empty reference
     return uno::Reference< XAccessible >();
 }
@@ -223,7 +211,6 @@ awt::Rectangle SAL_CALL AccessibleImageBullet::getBounds(  )
 }
 awt::Rectangle AccessibleImageBullet::implGetBounds(  )
 {
-
     DBG_ASSERT(GetParagraphIndex() >= 0,
                "AccessibleEditableTextPara::implGetBounds: index value 
overflow");
 
@@ -259,7 +246,6 @@ awt::Rectangle AccessibleImageBullet::implGetBounds(  )
 
 awt::Point SAL_CALL AccessibleImageBullet::getLocation(  )
 {
-
     SolarMutexGuard aGuard;
 
     awt::Rectangle aRect = implGetBounds();
@@ -269,7 +255,6 @@ awt::Point SAL_CALL AccessibleImageBullet::getLocation(  )
 
 awt::Point SAL_CALL AccessibleImageBullet::getLocationOnScreen(  )
 {
-
     SolarMutexGuard aGuard;
 
     // relate us to parent
@@ -295,7 +280,6 @@ awt::Point SAL_CALL 
AccessibleImageBullet::getLocationOnScreen(  )
 
 awt::Size SAL_CALL AccessibleImageBullet::getSize(  )
 {
-
     SolarMutexGuard aGuard;
 
     awt::Rectangle aRect = implGetBounds();
@@ -305,7 +289,6 @@ awt::Size SAL_CALL AccessibleImageBullet::getSize(  )
 
 void SAL_CALL AccessibleImageBullet::grabFocus(  )
 {
-
     throw uno::RuntimeException(u"Not focusable"_ustr,
                                 uno::Reference< uno::XInterface >
                                 ( static_cast< XAccessible* > (this) ) );   // 
disambiguate hierarchy
@@ -313,7 +296,6 @@ void SAL_CALL AccessibleImageBullet::grabFocus(  )
 
 sal_Int32 SAL_CALL AccessibleImageBullet::getForeground(  )
 {
-
     // #104444# Added to XAccessibleComponent interface
     svtools::ColorConfig aColorConfig;
     Color nColor = aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor;
@@ -322,7 +304,6 @@ sal_Int32 SAL_CALL AccessibleImageBullet::getForeground(  )
 
 sal_Int32 SAL_CALL AccessibleImageBullet::getBackground(  )
 {
-
     // #104444# Added to XAccessibleComponent interface
     Color aColor( 
Application::GetSettings().GetStyleSettings().GetWindowColor() );
 
@@ -334,7 +315,6 @@ sal_Int32 SAL_CALL AccessibleImageBullet::getBackground(  )
 
 OUString SAL_CALL AccessibleImageBullet::getImplementationName()
 {
-
     return u"AccessibleImageBullet"_ustr;
 }
 
@@ -351,19 +331,16 @@ uno::Sequence< OUString > SAL_CALL 
AccessibleImageBullet::getSupportedServiceNam
 
 void AccessibleImageBullet::SetIndexInParent( sal_Int32 nIndex )
 {
-
     mnIndexInParent = nIndex;
 }
 
 void AccessibleImageBullet::SetEEOffset( const Point& rOffset )
 {
-
     maEEOffset = rOffset;
 }
 
 void AccessibleImageBullet::Dispose()
 {
-
     int nClientId( getNotifierClientId() );
 
     // #108212# drop all references before notifying dispose
@@ -387,7 +364,6 @@ void AccessibleImageBullet::Dispose()
 
 void AccessibleImageBullet::SetEditSource( SvxEditSource* pEditSource )
 {
-
     mpEditSource = pEditSource;
 
     if( !mpEditSource )
@@ -404,7 +380,6 @@ void AccessibleImageBullet::SetEditSource( SvxEditSource* 
pEditSource )
 
 void AccessibleImageBullet::FireEvent(const sal_Int16 nEventId, const 
uno::Any& rNewValue, const uno::Any& rOldValue ) const
 {
-
     uno::Reference < XAccessibleContext > xThis( const_cast< 
AccessibleImageBullet* > (this)->getAccessibleContext() );
 
     AccessibleEventObject aEvent(xThis, nEventId, rNewValue, rOldValue, -1);
@@ -435,7 +410,6 @@ void AccessibleImageBullet::UnSetState( const sal_Int64 
nStateId )
 
 void AccessibleImageBullet::SetParagraphIndex( sal_Int32 nIndex )
 {
-
     uno::Any aOldDesc;
     uno::Any aOldName;
 
@@ -465,7 +439,6 @@ void AccessibleImageBullet::SetParagraphIndex( sal_Int32 
nIndex )
 
 SvxEditSource& AccessibleImageBullet::GetEditSource() const
 {
-
     if( !mpEditSource )
         throw uno::RuntimeException(u"No edit source, object is defunct"_ustr,
                                     cppu::getXWeak
@@ -475,7 +448,6 @@ SvxEditSource& AccessibleImageBullet::GetEditSource() const
 
 SvxTextForwarder& AccessibleImageBullet::GetTextForwarder() const
 {
-
     SvxEditSource& rEditSource = GetEditSource();
     SvxTextForwarder* pTextForwarder = rEditSource.GetTextForwarder();
 
@@ -493,7 +465,6 @@ SvxTextForwarder& AccessibleImageBullet::GetTextForwarder() 
const
 
 SvxViewForwarder& AccessibleImageBullet::GetViewForwarder() const
 {
-
     SvxEditSource& rEditSource = GetEditSource();
     SvxViewForwarder* pViewForwarder = rEditSource.GetViewForwarder();
 
commit 2efc261bf9cd0320ad8a66c77bfd253078fe67e9
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Apr 7 10:56:58 2025 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Tue Apr 8 17:12:15 2025 +0200

    editeng a11y: Drop extra indentation level
    
    Change-Id: I1d2f37499b5b1634141f9023815b0cb5ac1f4f18
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183778
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/editeng/source/accessibility/AccessibleImageBullet.hxx 
b/editeng/source/accessibility/AccessibleImageBullet.hxx
index 97fd98cae796..7715ba9af77f 100644
--- a/editeng/source/accessibility/AccessibleImageBullet.hxx
+++ b/editeng/source/accessibility/AccessibleImageBullet.hxx
@@ -36,165 +36,166 @@ class SvxViewForwarder;
 
 namespace accessibility
 {
-    typedef ::cppu::WeakImplHelper< css::accessibility::XAccessible,
-                                     css::accessibility::XAccessibleContext,
-                                     css::accessibility::XAccessibleComponent,
-                                     
css::accessibility::XAccessibleEventBroadcaster,
-                                     css::lang::XServiceInfo >  
AccessibleImageBulletInterfaceBase;
 
-    /** This class implements the image bullets for the EditEngine/Outliner UAA
+typedef ::cppu::WeakImplHelper< css::accessibility::XAccessible,
+                                 css::accessibility::XAccessibleContext,
+                                 css::accessibility::XAccessibleComponent,
+                                 
css::accessibility::XAccessibleEventBroadcaster,
+                                 css::lang::XServiceInfo >  
AccessibleImageBulletInterfaceBase;
+
+/** This class implements the image bullets for the EditEngine/Outliner UAA
+ */
+class AccessibleImageBullet final : public AccessibleImageBulletInterfaceBase
+{
+
+public:
+    /// Create accessible object for given parent
+    AccessibleImageBullet ( css::uno::Reference< 
css::accessibility::XAccessible > xParent );
+
+    virtual ~AccessibleImageBullet  () override;
+
+    // XAccessible
+    virtual css::uno::Reference< css::accessibility::XAccessibleContext > 
SAL_CALL getAccessibleContext(  ) override;
+
+    // XAccessibleContext
+    virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
+    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 
getAccessibleChild( sal_Int64 i ) override;
+    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 
getAccessibleParent() override;
+    virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
+    virtual sal_Int16 SAL_CALL getAccessibleRole() override;
+    virtual OUString SAL_CALL getAccessibleDescription() override;
+    virtual OUString SAL_CALL getAccessibleName() override;
+    virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > 
SAL_CALL getAccessibleRelationSet() override;
+    virtual sal_Int64 SAL_CALL getAccessibleStateSet() override;
+    virtual css::lang::Locale SAL_CALL getLocale() override;
+
+    // XAccessibleEventBroadcaster
+    virtual void SAL_CALL addAccessibleEventListener( const 
css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener 
) override;
+    virtual void SAL_CALL removeAccessibleEventListener( const 
css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener 
) override;
+
+    // XAccessibleComponent
+    virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) 
override;
+    virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 
getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
+    virtual css::awt::Rectangle SAL_CALL getBounds(  ) override;
+    virtual css::awt::Point SAL_CALL getLocation(  ) override;
+    virtual css::awt::Point SAL_CALL getLocationOnScreen(  ) override;
+    virtual css::awt::Size SAL_CALL getSize(  ) override;
+    virtual void SAL_CALL grabFocus(  ) override;
+    virtual sal_Int32 SAL_CALL getForeground(  ) override;
+    virtual sal_Int32 SAL_CALL getBackground(  ) override;
+
+    // XServiceInfo
+    virtual OUString SAL_CALL getImplementationName() override;
+    virtual sal_Bool SAL_CALL supportsService (const OUString& sServiceName) 
override;
+    virtual css::uno::Sequence< OUString> SAL_CALL getSupportedServiceNames() 
override;
+
+    /** Set the current index in the accessibility parent
+
+        @attention This method does not lock the SolarMutex,
+        leaving that to the calling code. This is because only
+        there potential deadlock situations can be resolved. Thus,
+        make sure SolarMutex is locked when calling this.
      */
-    class AccessibleImageBullet final : public 
AccessibleImageBulletInterfaceBase
-    {
-
-    public:
-        /// Create accessible object for given parent
-        AccessibleImageBullet ( css::uno::Reference< 
css::accessibility::XAccessible > xParent );
-
-        virtual ~AccessibleImageBullet  () override;
-
-        // XAccessible
-        virtual css::uno::Reference< css::accessibility::XAccessibleContext > 
SAL_CALL getAccessibleContext(  ) override;
-
-        // XAccessibleContext
-        virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
-        virtual css::uno::Reference< css::accessibility::XAccessible > 
SAL_CALL getAccessibleChild( sal_Int64 i ) override;
-        virtual css::uno::Reference< css::accessibility::XAccessible > 
SAL_CALL getAccessibleParent() override;
-        virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
-        virtual sal_Int16 SAL_CALL getAccessibleRole() override;
-        virtual OUString SAL_CALL getAccessibleDescription() override;
-        virtual OUString SAL_CALL getAccessibleName() override;
-        virtual css::uno::Reference< 
css::accessibility::XAccessibleRelationSet > SAL_CALL 
getAccessibleRelationSet() override;
-        virtual sal_Int64 SAL_CALL getAccessibleStateSet() override;
-        virtual css::lang::Locale SAL_CALL getLocale() override;
-
-        // XAccessibleEventBroadcaster
-        virtual void SAL_CALL addAccessibleEventListener( const 
css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener 
) override;
-        virtual void SAL_CALL removeAccessibleEventListener( const 
css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener 
) override;
-
-        // XAccessibleComponent
-        virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint 
) override;
-        virtual css::uno::Reference< css::accessibility::XAccessible > 
SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
-        virtual css::awt::Rectangle SAL_CALL getBounds(  ) override;
-        virtual css::awt::Point SAL_CALL getLocation(  ) override;
-        virtual css::awt::Point SAL_CALL getLocationOnScreen(  ) override;
-        virtual css::awt::Size SAL_CALL getSize(  ) override;
-        virtual void SAL_CALL grabFocus(  ) override;
-        virtual sal_Int32 SAL_CALL getForeground(  ) override;
-        virtual sal_Int32 SAL_CALL getBackground(  ) override;
-
-        // XServiceInfo
-        virtual OUString SAL_CALL getImplementationName() override;
-        virtual sal_Bool SAL_CALL supportsService (const OUString& 
sServiceName) override;
-        virtual css::uno::Sequence< OUString> SAL_CALL 
getSupportedServiceNames() override;
-
-        /** Set the current index in the accessibility parent
-
-            @attention This method does not lock the SolarMutex,
-            leaving that to the calling code. This is because only
-            there potential deadlock situations can be resolved. Thus,
-            make sure SolarMutex is locked when calling this.
-         */
-        void SetIndexInParent( sal_Int32 nIndex );
-
-        /** Set the edit engine offset
-
-            @attention This method does not lock the SolarMutex,
-            leaving that to the calling code. This is because only
-            there potential deadlock situations can be resolved. Thus,
-            make sure SolarMutex is locked when calling this.
-         */
-        void SetEEOffset( const Point& rOffset );
-
-        /** Set the EditEngine offset
-
-            @attention This method does not lock the SolarMutex,
-            leaving that to the calling code. This is because only
-            there potential deadlock situations can be resolved. Thus,
-            make sure SolarMutex is locked when calling this.
-         */
-        void SetEditSource( SvxEditSource* pEditSource );
-
-        /** Dispose this object
-
-            Notifies and deregisters the listeners, drops all references.
-         */
-        void Dispose();
-
-        /** Set the current paragraph number
-
-            @attention This method does not lock the SolarMutex,
-            leaving that to the calling code. This is because only
-            there potential deadlock situations can be resolved. Thus,
-            make sure SolarMutex is locked when calling this.
-         */
-        void SetParagraphIndex( sal_Int32 nIndex );
-
-        /** Query the current paragraph number (0 - nParas-1)
-
-            @attention This method does not lock the SolarMutex,
-            leaving that to the calling code. This is because only
-            there potential deadlock situations can be resolved. Thus,
-            make sure SolarMutex is locked when calling this.
-         */
-        sal_Int32 GetParagraphIndex() const { return mnParagraphIndex; }
-
-        /// Calls all Listener objects to tell them the change. Don't hold 
locks when calling this!
-        void FireEvent(const sal_Int16 nEventId, const css::uno::Any& 
rNewValue, const css::uno::Any& rOldValue = css::uno::Any() ) const;
-
-    private:
-        AccessibleImageBullet( const AccessibleImageBullet& ) = delete;
-        AccessibleImageBullet& operator= ( const AccessibleImageBullet& ) = 
delete;
-
-        // maintain state set and send STATE_CHANGE events
-        void SetState( const sal_Int64 nStateId );
-        void UnSetState( const sal_Int64 nStateId );
-
-        SvxEditSource& GetEditSource() const;
-
-        int getNotifierClientId() const { return mnNotifierClientId; }
-
-        /** Query the SvxTextForwarder for EditEngine access.
-
-            @attention This method does not lock the SolarMutex,
-            leaving that to the calling code. This is because only
-            there potential deadlock situations can be resolved. Thus,
-            make sure SolarMutex is locked when calling this.
-         */
-        SvxTextForwarder&   GetTextForwarder() const;
-
-        /** Query the SvxViewForwarder for EditEngine access.
+    void SetIndexInParent( sal_Int32 nIndex );
+
+    /** Set the edit engine offset
+
+        @attention This method does not lock the SolarMutex,
+        leaving that to the calling code. This is because only
+        there potential deadlock situations can be resolved. Thus,
+        make sure SolarMutex is locked when calling this.
+     */
+    void SetEEOffset( const Point& rOffset );
+
+    /** Set the EditEngine offset
 
-            @attention This method does not lock the SolarMutex,
-            leaving that to the calling code. This is because only
-            there potential deadlock situations can be resolved. Thus,
-            make sure SolarMutex is locked when calling this.
-         */
-        SvxViewForwarder&   GetViewForwarder() const;
+        @attention This method does not lock the SolarMutex,
+        leaving that to the calling code. This is because only
+        there potential deadlock situations can be resolved. Thus,
+        make sure SolarMutex is locked when calling this.
+     */
+    void SetEditSource( SvxEditSource* pEditSource );
+
+    /** Dispose this object
+
+        Notifies and deregisters the listeners, drops all references.
+     */
+    void Dispose();
+
+    /** Set the current paragraph number
+
+        @attention This method does not lock the SolarMutex,
+        leaving that to the calling code. This is because only
+        there potential deadlock situations can be resolved. Thus,
+        make sure SolarMutex is locked when calling this.
+     */
+    void SetParagraphIndex( sal_Int32 nIndex );
+
+    /** Query the current paragraph number (0 - nParas-1)
+
+        @attention This method does not lock the SolarMutex,
+        leaving that to the calling code. This is because only
+        there potential deadlock situations can be resolved. Thus,
+        make sure SolarMutex is locked when calling this.
+     */
+    sal_Int32 GetParagraphIndex() const { return mnParagraphIndex; }
+
+    /// Calls all Listener objects to tell them the change. Don't hold locks 
when calling this!
+    void FireEvent(const sal_Int16 nEventId, const css::uno::Any& rNewValue, 
const css::uno::Any& rOldValue = css::uno::Any() ) const;
+
+private:
+    AccessibleImageBullet( const AccessibleImageBullet& ) = delete;
+    AccessibleImageBullet& operator= ( const AccessibleImageBullet& ) = delete;
+
+    // maintain state set and send STATE_CHANGE events
+    void SetState( const sal_Int64 nStateId );
+    void UnSetState( const sal_Int64 nStateId );
+
+    SvxEditSource& GetEditSource() const;
+
+    int getNotifierClientId() const { return mnNotifierClientId; }
+
+    /** Query the SvxTextForwarder for EditEngine access.
+
+        @attention This method does not lock the SolarMutex,
+        leaving that to the calling code. This is because only
+        there potential deadlock situations can be resolved. Thus,
+        make sure SolarMutex is locked when calling this.
+     */
+    SvxTextForwarder&   GetTextForwarder() const;
+
+    /** Query the SvxViewForwarder for EditEngine access.
+
+        @attention This method does not lock the SolarMutex,
+        leaving that to the calling code. This is because only
+        there potential deadlock situations can be resolved. Thus,
+        make sure SolarMutex is locked when calling this.
+     */
+    SvxViewForwarder&   GetViewForwarder() const;
 
-        css::awt::Rectangle implGetBounds();
+    css::awt::Rectangle implGetBounds();
 
-        // the paragraph index in the edit engine (guarded by solar mutex)
-        sal_Int32   mnParagraphIndex;
+    // the paragraph index in the edit engine (guarded by solar mutex)
+    sal_Int32   mnParagraphIndex;
 
-        // our current index in the parent (guarded by solar mutex)
-        sal_Int32   mnIndexInParent;
+    // our current index in the parent (guarded by solar mutex)
+    sal_Int32   mnIndexInParent;
 
-        // the current edit source (guarded by solar mutex)
-        SvxEditSource* mpEditSource;
+    // the current edit source (guarded by solar mutex)
+    SvxEditSource* mpEditSource;
 
-        // the offset of the underlying EditEngine from the shape/cell 
(guarded by solar mutex)
-        Point maEEOffset;
+    // the offset of the underlying EditEngine from the shape/cell (guarded by 
solar mutex)
+    Point maEEOffset;
 
-        // the current state set (updated from SetState/UnSetState and guarded 
by solar mutex)
-        sal_Int64 mnStateSet = 0;
+    // the current state set (updated from SetState/UnSetState and guarded by 
solar mutex)
+    sal_Int64 mnStateSet = 0;
 
-        /// The shape we're the accessible for (unguarded)
-        css::uno::Reference< css::accessibility::XAccessible > mxParent;
+    /// The shape we're the accessible for (unguarded)
+    css::uno::Reference< css::accessibility::XAccessible > mxParent;
 
-        /// Our listeners (guarded by maMutex)
-        int mnNotifierClientId;
-    };
+    /// Our listeners (guarded by maMutex)
+    int mnNotifierClientId;
+};
 
 } // end of namespace accessibility
 

Reply via email to