sd/source/console/PresenterController.cxx | 14 sd/source/console/PresenterController.hxx | 2 sd/source/console/PresenterToolBar.cxx | 481 +++++++++++++++--------------- 3 files changed, 249 insertions(+), 248 deletions(-)
New commits: commit 47b4621b2fef116eed4ef5c9d64d40ecfca2b70c Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Thu May 15 09:13:28 2025 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Thu May 15 22:22:54 2025 +0200 sd console: Drop extra indentation ... which is only partially used in this source file for the anonymous namespace scope. This will also avoid mixing such indentation changes with others in an upcoming commit that will move the `Element` class out of the anonymous namespace. Change-Id: Ia8507558bc82fbb70ff4ad2ee32d0346c218c6e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185356 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/sd/source/console/PresenterToolBar.cxx b/sd/source/console/PresenterToolBar.cxx index c9397ab8b5a1..10291eead413 100644 --- a/sd/source/console/PresenterToolBar.cxx +++ b/sd/source/console/PresenterToolBar.cxx @@ -52,49 +52,49 @@ const sal_Int32 gnGapSize (20); namespace { - class Text - { - public: - Text(); - Text ( - OUString sText, - PresenterTheme::SharedFontDescriptor pFont); - - void SetText (const OUString& rsText); - const OUString& GetText() const; - const PresenterTheme::SharedFontDescriptor& GetFont() const; - - void Paint ( - const Reference<rendering::XCanvas>& rxCanvas, - const rendering::ViewState& rViewState, - const awt::Rectangle& rBoundingBox); - - geometry::RealRectangle2D GetBoundingBox ( - const Reference<rendering::XCanvas>& rxCanvas); - - private: - OUString msText; - PresenterTheme::SharedFontDescriptor mpFont; - }; +class Text +{ +public: + Text(); + Text ( + OUString sText, + PresenterTheme::SharedFontDescriptor pFont); + + void SetText (const OUString& rsText); + const OUString& GetText() const; + const PresenterTheme::SharedFontDescriptor& GetFont() const; + + void Paint ( + const Reference<rendering::XCanvas>& rxCanvas, + const rendering::ViewState& rViewState, + const awt::Rectangle& rBoundingBox); + + geometry::RealRectangle2D GetBoundingBox ( + const Reference<rendering::XCanvas>& rxCanvas); + +private: + OUString msText; + PresenterTheme::SharedFontDescriptor mpFont; +}; - class ElementMode - { - public: - ElementMode(); - ElementMode(const ElementMode&) = delete; - ElementMode& operator=(const ElementMode&) = delete; - - SharedBitmapDescriptor mpIcon; - OUString msAction; - Text maText; - - void ReadElementMode ( - const Reference<beans::XPropertySet>& rxProperties, - const OUString& rsModeName, - std::shared_ptr<ElementMode> const & rpDefaultMode, - ::sdext::presenter::PresenterToolBar::Context const & rContext); - }; - typedef std::shared_ptr<ElementMode> SharedElementMode; +class ElementMode +{ +public: + ElementMode(); + ElementMode(const ElementMode&) = delete; + ElementMode& operator=(const ElementMode&) = delete; + + SharedBitmapDescriptor mpIcon; + OUString msAction; + Text maText; + + void ReadElementMode ( + const Reference<beans::XPropertySet>& rxProperties, + const OUString& rsModeName, + std::shared_ptr<ElementMode> const & rpDefaultMode, + ::sdext::presenter::PresenterToolBar::Context const & rContext); +}; +typedef std::shared_ptr<ElementMode> SharedElementMode; } // end of anonymous namespace @@ -110,76 +110,77 @@ public: //===== PresenterToolBar::Element ============================================= namespace { - typedef cppu::WeakComponentImplHelper< - css::document::XEventListener, - css::frame::XStatusListener - > ElementInterfaceBase; - - class Element - : private ::cppu::BaseMutex, - public ElementInterfaceBase - { - public: - explicit Element (::rtl::Reference<PresenterToolBar> pToolBar); - Element(const Element&) = delete; - Element& operator=(const Element&) = delete; - - virtual void SAL_CALL disposing() override; - - virtual void SetModes ( - const SharedElementMode& rpNormalMode, - const SharedElementMode& rpMouseOverMode, - const SharedElementMode& rpSelectedMode, - const SharedElementMode& rpDisabledMode, - const SharedElementMode& rpMouseOverSelectedMode); - void CurrentSlideHasChanged(); - void SetLocation (const awt::Point& rLocation); - void SetSize (const geometry::RealSize2D& rSize); - virtual void Paint ( - const Reference<rendering::XCanvas>& rxCanvas, - const rendering::ViewState& rViewState) = 0; - awt::Size const & GetBoundingSize ( - const Reference<rendering::XCanvas>& rxCanvas); - awt::Rectangle GetBoundingBox() const; - virtual bool SetState (const bool bIsOver, const bool bIsPressed); - void Invalidate (const bool bSynchronous); - bool IsOutside (const awt::Rectangle& rBox); - virtual bool IsFilling() const; - void UpdateState(); - - // lang::XEventListener - - virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent) override; - - // document::XEventListener - - virtual void SAL_CALL notifyEvent (const css::document::EventObject& rEvent) override; - - // frame::XStatusListener - - virtual void SAL_CALL statusChanged (const css::frame::FeatureStateEvent& rEvent) override; - - protected: - ::rtl::Reference<PresenterToolBar> mpToolBar; - awt::Point maLocation; - awt::Size maSize; - SharedElementMode mpNormal; - SharedElementMode mpMouseOver; - SharedElementMode mpSelected; - SharedElementMode mpDisabled; - SharedElementMode mpMouseOverSelected; - SharedElementMode mpMode; - bool mbIsOver; - bool mbIsPressed; - bool mbIsSelected; - - virtual awt::Size CreateBoundingSize ( - const Reference<rendering::XCanvas>& rxCanvas) = 0; - - bool IsEnabled() const { return mbIsEnabled;} - private: - bool mbIsEnabled; - }; + +typedef cppu::WeakComponentImplHelper< + css::document::XEventListener, + css::frame::XStatusListener + > ElementInterfaceBase; + +class Element + : private ::cppu::BaseMutex, + public ElementInterfaceBase +{ +public: + explicit Element (::rtl::Reference<PresenterToolBar> pToolBar); + Element(const Element&) = delete; + Element& operator=(const Element&) = delete; + + virtual void SAL_CALL disposing() override; + + virtual void SetModes ( + const SharedElementMode& rpNormalMode, + const SharedElementMode& rpMouseOverMode, + const SharedElementMode& rpSelectedMode, + const SharedElementMode& rpDisabledMode, + const SharedElementMode& rpMouseOverSelectedMode); + void CurrentSlideHasChanged(); + void SetLocation (const awt::Point& rLocation); + void SetSize (const geometry::RealSize2D& rSize); + virtual void Paint ( + const Reference<rendering::XCanvas>& rxCanvas, + const rendering::ViewState& rViewState) = 0; + awt::Size const & GetBoundingSize ( + const Reference<rendering::XCanvas>& rxCanvas); + awt::Rectangle GetBoundingBox() const; + virtual bool SetState (const bool bIsOver, const bool bIsPressed); + void Invalidate (const bool bSynchronous); + bool IsOutside (const awt::Rectangle& rBox); + virtual bool IsFilling() const; + void UpdateState(); + + // lang::XEventListener + + virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent) override; + + // document::XEventListener + + virtual void SAL_CALL notifyEvent (const css::document::EventObject& rEvent) override; + + // frame::XStatusListener + + virtual void SAL_CALL statusChanged (const css::frame::FeatureStateEvent& rEvent) override; + +protected: + ::rtl::Reference<PresenterToolBar> mpToolBar; + awt::Point maLocation; + awt::Size maSize; + SharedElementMode mpNormal; + SharedElementMode mpMouseOver; + SharedElementMode mpSelected; + SharedElementMode mpDisabled; + SharedElementMode mpMouseOverSelected; + SharedElementMode mpMode; + bool mbIsOver; + bool mbIsPressed; + bool mbIsSelected; + + virtual awt::Size CreateBoundingSize ( + const Reference<rendering::XCanvas>& rxCanvas) = 0; + + bool IsEnabled() const { return mbIsEnabled;} +private: + bool mbIsEnabled; +}; } // end of anonymous namespace @@ -192,157 +193,157 @@ class PresenterToolBar::ElementContainerPart namespace { - class Button : public Element - { - public: - static ::rtl::Reference<Element> Create ( - const ::rtl::Reference<PresenterToolBar>& rpToolBar); +class Button : public Element +{ +public: + static ::rtl::Reference<Element> Create ( + const ::rtl::Reference<PresenterToolBar>& rpToolBar); - virtual void SAL_CALL disposing() override; + virtual void SAL_CALL disposing() override; - virtual void Paint ( - const Reference<rendering::XCanvas>& rxCanvas, - const rendering::ViewState& rViewState) override; + virtual void Paint ( + const Reference<rendering::XCanvas>& rxCanvas, + const rendering::ViewState& rViewState) override; - // lang::XEventListener + // lang::XEventListener - virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent) override; + virtual void SAL_CALL disposing (const css::lang::EventObject& rEvent) override; - protected: - virtual awt::Size CreateBoundingSize ( - const Reference<rendering::XCanvas>& rxCanvas) override; +protected: + virtual awt::Size CreateBoundingSize ( + const Reference<rendering::XCanvas>& rxCanvas) override; - private: - bool mbIsListenerRegistered; - - Button (const ::rtl::Reference<PresenterToolBar>& rpToolBar); - void Initialize(); - void PaintIcon ( - const Reference<rendering::XCanvas>& rxCanvas, - const sal_Int32 nTextHeight, - const rendering::ViewState& rViewState); - PresenterBitmapDescriptor::Mode GetMode() const; - }; +private: + bool mbIsListenerRegistered; + + Button (const ::rtl::Reference<PresenterToolBar>& rpToolBar); + void Initialize(); + void PaintIcon ( + const Reference<rendering::XCanvas>& rxCanvas, + const sal_Int32 nTextHeight, + const rendering::ViewState& rViewState); + PresenterBitmapDescriptor::Mode GetMode() const; +}; //===== Label ================================================================= - class Label : public Element - { - public: - explicit Label (const ::rtl::Reference<PresenterToolBar>& rpToolBar); +class Label : public Element +{ +public: + explicit Label (const ::rtl::Reference<PresenterToolBar>& rpToolBar); - void SetText (const OUString& rsText); - virtual void Paint ( - const Reference<rendering::XCanvas>& rxCanvas, - const rendering::ViewState& rViewState) override; - virtual bool SetState (const bool bIsOver, const bool bIsPressed) override; + void SetText (const OUString& rsText); + virtual void Paint ( + const Reference<rendering::XCanvas>& rxCanvas, + const rendering::ViewState& rViewState) override; + virtual bool SetState (const bool bIsOver, const bool bIsPressed) override; - protected: - virtual awt::Size CreateBoundingSize ( - const Reference<rendering::XCanvas>& rxCanvas) override; - }; +protected: + virtual awt::Size CreateBoundingSize ( + const Reference<rendering::XCanvas>& rxCanvas) override; +}; // Some specialized controls. - class TimeFormatter - { - public: - static OUString FormatTime (const oslDateTime& rTime); - }; +class TimeFormatter +{ +public: + static OUString FormatTime (const oslDateTime& rTime); +}; - class TimeLabel : public Label +class TimeLabel : public Label +{ +public: + void ConnectToTimer(); + virtual void TimeHasChanged (const oslDateTime& rCurrentTime) = 0; +protected: + explicit TimeLabel(const ::rtl::Reference<PresenterToolBar>& rpToolBar); + using Element::disposing; + virtual void SAL_CALL disposing() override; +private: + class Listener : public PresenterClockTimer::Listener { public: - void ConnectToTimer(); - virtual void TimeHasChanged (const oslDateTime& rCurrentTime) = 0; - protected: - explicit TimeLabel(const ::rtl::Reference<PresenterToolBar>& rpToolBar); - using Element::disposing; - virtual void SAL_CALL disposing() override; + explicit Listener (::rtl::Reference<TimeLabel> xLabel) + : mxLabel(std::move(xLabel)) {} + virtual ~Listener() {} + virtual void TimeHasChanged (const oslDateTime& rCurrentTime) override + { if (mxLabel.is()) mxLabel->TimeHasChanged(rCurrentTime); } private: - class Listener : public PresenterClockTimer::Listener - { - public: - explicit Listener (::rtl::Reference<TimeLabel> xLabel) - : mxLabel(std::move(xLabel)) {} - virtual ~Listener() {} - virtual void TimeHasChanged (const oslDateTime& rCurrentTime) override - { if (mxLabel.is()) mxLabel->TimeHasChanged(rCurrentTime); } - private: - ::rtl::Reference<TimeLabel> mxLabel; - }; - std::shared_ptr<PresenterClockTimer::Listener> mpListener; + ::rtl::Reference<TimeLabel> mxLabel; }; + std::shared_ptr<PresenterClockTimer::Listener> mpListener; +}; - class CurrentTimeLabel : public TimeLabel - { - public: - static ::rtl::Reference<Element> Create ( - const ::rtl::Reference<PresenterToolBar>& rpToolBar); - virtual void SetModes ( - const SharedElementMode& rpNormalMode, - const SharedElementMode& rpMouseOverMode, - const SharedElementMode& rpSelectedMode, - const SharedElementMode& rpDisabledMode, - const SharedElementMode& rpMouseOverSelectedMode) override; - private: - CurrentTimeLabel (const ::rtl::Reference<PresenterToolBar>& rpToolBar); - virtual ~CurrentTimeLabel() override; - virtual void TimeHasChanged (const oslDateTime& rCurrentTime) override; - }; +class CurrentTimeLabel : public TimeLabel +{ +public: + static ::rtl::Reference<Element> Create ( + const ::rtl::Reference<PresenterToolBar>& rpToolBar); + virtual void SetModes ( + const SharedElementMode& rpNormalMode, + const SharedElementMode& rpMouseOverMode, + const SharedElementMode& rpSelectedMode, + const SharedElementMode& rpDisabledMode, + const SharedElementMode& rpMouseOverSelectedMode) override; +private: + CurrentTimeLabel (const ::rtl::Reference<PresenterToolBar>& rpToolBar); + virtual ~CurrentTimeLabel() override; + virtual void TimeHasChanged (const oslDateTime& rCurrentTime) override; +}; - class PresentationTimeLabel : public TimeLabel, public IPresentationTime - { - public: - static ::rtl::Reference<Element> Create ( - const ::rtl::Reference<PresenterToolBar>& rpToolBar); - virtual void SetModes ( - const SharedElementMode& rpNormalMode, - const SharedElementMode& rpMouseOverMode, - const SharedElementMode& rpSelectedMode, - const SharedElementMode& rpDisabledMode, - const SharedElementMode& rpMouseOverSelectedMode) override; - virtual void restart() override; - virtual bool isPaused() override; - virtual void setPauseStatus(const bool pauseStatus) override; - const TimeValue& getPauseTimeValue() const; - void setPauseTimeValue(const TimeValue pauseTime); - private: - TimeValue maStartTimeValue; - TimeValue pauseTimeValue; - PresentationTimeLabel (const ::rtl::Reference<PresenterToolBar>& rpToolBar); - bool paused; - virtual ~PresentationTimeLabel() override; - virtual void TimeHasChanged (const oslDateTime& rCurrentTime) override; - }; +class PresentationTimeLabel : public TimeLabel, public IPresentationTime +{ +public: + static ::rtl::Reference<Element> Create ( + const ::rtl::Reference<PresenterToolBar>& rpToolBar); + virtual void SetModes ( + const SharedElementMode& rpNormalMode, + const SharedElementMode& rpMouseOverMode, + const SharedElementMode& rpSelectedMode, + const SharedElementMode& rpDisabledMode, + const SharedElementMode& rpMouseOverSelectedMode) override; + virtual void restart() override; + virtual bool isPaused() override; + virtual void setPauseStatus(const bool pauseStatus) override; + const TimeValue& getPauseTimeValue() const; + void setPauseTimeValue(const TimeValue pauseTime); +private: + TimeValue maStartTimeValue; + TimeValue pauseTimeValue; + PresentationTimeLabel (const ::rtl::Reference<PresenterToolBar>& rpToolBar); + bool paused; + virtual ~PresentationTimeLabel() override; + virtual void TimeHasChanged (const oslDateTime& rCurrentTime) override; +}; - class VerticalSeparator : public Element - { - public: - explicit VerticalSeparator (const ::rtl::Reference<PresenterToolBar>& rpToolBar); - virtual void Paint ( - const Reference<rendering::XCanvas>& rxCanvas, - const rendering::ViewState& rViewState) override; - virtual bool IsFilling() const override; - - protected: - virtual awt::Size CreateBoundingSize ( - const Reference<rendering::XCanvas>& rxCanvas) override; - }; +class VerticalSeparator : public Element +{ +public: + explicit VerticalSeparator (const ::rtl::Reference<PresenterToolBar>& rpToolBar); + virtual void Paint ( + const Reference<rendering::XCanvas>& rxCanvas, + const rendering::ViewState& rViewState) override; + virtual bool IsFilling() const override; + +protected: + virtual awt::Size CreateBoundingSize ( + const Reference<rendering::XCanvas>& rxCanvas) override; +}; - class HorizontalSeparator : public Element - { - public: - explicit HorizontalSeparator (const ::rtl::Reference<PresenterToolBar>& rpToolBar); - virtual void Paint ( - const Reference<rendering::XCanvas>& rxCanvas, - const rendering::ViewState& rViewState) override; - virtual bool IsFilling() const override; - - protected: - virtual awt::Size CreateBoundingSize ( - const Reference<rendering::XCanvas>& rxCanvas) override; - }; +class HorizontalSeparator : public Element +{ +public: + explicit HorizontalSeparator (const ::rtl::Reference<PresenterToolBar>& rpToolBar); + virtual void Paint ( + const Reference<rendering::XCanvas>& rxCanvas, + const rendering::ViewState& rViewState) override; + virtual bool IsFilling() const override; + +protected: + virtual awt::Size CreateBoundingSize ( + const Reference<rendering::XCanvas>& rxCanvas) override; +}; } // end of anonymous namespace //===== PresenterToolBar ====================================================== commit eec08c57cd46d63799b28a2393392cb1f552d9bd Author: Michael Weghorn <m.wegh...@posteo.de> AuthorDate: Thu May 15 08:45:09 2025 +0200 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Thu May 15 22:22:47 2025 +0200 Revert "sd presenter a11y: Use "x" prefix for Reference" As Mike Kaganski points out in [1]: > The semantics of x is "a pointer to an interface" - meaning "we need to > do things like querying to get other interfaces implemented by the same > object". uno::Reference is that object, which naming should start with > "x" (following its template arguments starting with X). But here, with > rtl::Reference, we have much more smart-pointer-like object; we know its > most-derived type, with all its implemented interfaces being known > inherited types. We don't do dance like > > Reference<XFoo>(xBar, UNO_QUERY); Naming conventions also list only "(Smart) pointer/reference to a UNO interface", so revert the change to use the `x` prefix for an rtl::Reference. In practice, using the `x` prefix instead of `p` seems to be used much more widely for `rtl::Reference` (s. below), but don't actively introduce more of that. $ git grep -P "rtl::Reference<.*> m?_?p" | wc -l 2111 $ git grep -P "rtl::Reference<.*> m?_?x" | wc -l 3814 This reverts commit 3b92011191ca994d47e68ab50d963034586cc8ff. [1] https://gerrit.libreoffice.org/c/core/+/185327/comment/32f8fe06_1fb00cba/ [2] https://wiki.documentfoundation.org/Development/Code_Conventions Change-Id: I12cf88104569c38dd9c095344eece8bce7a2950b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185343 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/sd/source/console/PresenterController.cxx b/sd/source/console/PresenterController.cxx index ceb065987b9d..1b407a713210 100644 --- a/sd/source/console/PresenterController.cxx +++ b/sd/source/console/PresenterController.cxx @@ -219,8 +219,8 @@ void PresenterController::UpdateCurrentSlide (const sal_Int32 nOffset) UpdateViews(); // Update the accessibility object. - if (mxAccessibleObject.is()) - mxAccessibleObject->NotifyCurrentSlideChange(); + if (mpAccessibleObject.is()) + mpAccessibleObject->NotifyCurrentSlideChange(); } void PresenterController::GetSlides (const sal_Int32 nOffset) @@ -731,8 +731,8 @@ void SAL_CALL PresenterController::notifyConfigurationChange ( break; case ConfigurationUpdateEndEventType: - if (mxAccessibleObject.is()) - mxAccessibleObject->UpdateAccessibilityHierarchy(); + if (mpAccessibleObject.is()) + mpAccessibleObject->UpdateAccessibilityHierarchy(); UpdateCurrentSlide(0); break; } @@ -743,8 +743,8 @@ void SAL_CALL PresenterController::notifyConfigurationChange ( void SAL_CALL PresenterController::disposing ( const lang::EventObject& rEvent) { - if (mxAccessibleObject) - mxAccessibleObject->dispose(); + if (mpAccessibleObject) + mpAccessibleObject->dispose(); if (rEvent.Source.get() == static_cast<cppu::OWeakObject*>(mxController.get())) mxController = nullptr; @@ -1027,7 +1027,7 @@ void PresenterController::InitializeMainPane (const Reference<XPane>& rxPane) if ( ! rxPane.is()) return; - mxAccessibleObject = new PresenterAccessible(this, rxPane); + mpAccessibleObject = new PresenterAccessible(this, rxPane); LoadTheme(rxPane); diff --git a/sd/source/console/PresenterController.hxx b/sd/source/console/PresenterController.hxx index 0b01e1d4d035..76d9367f5372 100644 --- a/sd/source/console/PresenterController.hxx +++ b/sd/source/console/PresenterController.hxx @@ -194,7 +194,7 @@ private: std::shared_ptr<PresenterPaintManager> mpPaintManager; sal_Int32 mnPendingSlideNumber; css::uno::Reference<css::util::XURLTransformer> mxUrlTransformer; - ::rtl::Reference<PresenterAccessible> mxAccessibleObject; + ::rtl::Reference<PresenterAccessible> mpAccessibleObject; IPresentationTime* mpPresentationTime; void GetSlides (const sal_Int32 nOffset);