LibreOffice Module slideshow (master) 1
Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
slideshow::internal::PointerSymbol Class Reference

On-screen 'laser pointer' from the Impress remote control. More...

#include <pointersymbol.hxx>

Inheritance diagram for slideshow::internal::PointerSymbol:
[legend]
Collaboration diagram for slideshow::internal::PointerSymbol:
[legend]

Public Member Functions

void setVisible (const bool bVisible)
 Use this method to update the pointer's position. More...
 
void viewsChanged (const css::geometry::RealPoint2D pos)
 
virtual void viewAdded (const UnoViewSharedPtr &rView)=0
 Notify new view. More...
 
virtual void viewRemoved (const UnoViewSharedPtr &rView)=0
 Notify removed view. More...
 
virtual void viewChanged (const UnoViewSharedPtr &rView)=0
 Notify changed view. More...
 
virtual void viewsChanged ()=0
 Notify that all views changed. More...
 
- Public Member Functions inherited from slideshow::internal::SharedPtrAble
virtual ~SharedPtrAble ()
 

Static Public Member Functions

static PointerSymbolSharedPtr create (const css::uno::Reference< css::rendering::XBitmap > &xBitmap, ScreenUpdater &rScreenUpdater, EventMultiplexer &rEventMultiplexer, const UnoViewContainer &rViewContainer)
 

Private Types

typedef ::std::vector< ::std::pair< UnoViewSharedPtr, cppcanvas::CustomSpriteSharedPtr > > ViewsVecT
 

Private Member Functions

 PointerSymbol (css::uno::Reference< css::rendering::XBitmap > xBitmap, ScreenUpdater &rScreenUpdater, const UnoViewContainer &rViewContainer)
 
virtual void viewAdded (const UnoViewSharedPtr &rView) override
 Notify new view. More...
 
virtual void viewRemoved (const UnoViewSharedPtr &rView) override
 Notify removed view. More...
 
virtual void viewChanged (const UnoViewSharedPtr &rView) override
 Notify changed view. More...
 
virtual void viewsChanged () override
 Notify that all views changed. More...
 
::basegfx::B2DPoint calcSpritePos (UnoViewSharedPtr const &rView) const
 

Private Attributes

css::uno::Reference< css::rendering::XBitmap > mxBitmap
 
ViewsVecT maViews
 
ScreenUpdatermrScreenUpdater
 
css::geometry::RealPoint2D maPos
 
bool mbVisible
 

Detailed Description

On-screen 'laser pointer' from the Impress remote control.

Definition at line 35 of file pointersymbol.hxx.

Member Typedef Documentation

◆ ViewsVecT

Definition at line 63 of file pointersymbol.hxx.

Constructor & Destructor Documentation

◆ PointerSymbol()

slideshow::internal::PointerSymbol::PointerSymbol ( css::uno::Reference< css::rendering::XBitmap >  xBitmap,
ScreenUpdater rScreenUpdater,
const UnoViewContainer rViewContainer 
)
private

Definition at line 58 of file pointersymbol.cxx.

References mbVisible, mxBitmap, and viewAdded().

Referenced by create().

Member Function Documentation

◆ calcSpritePos()

basegfx::B2DPoint slideshow::internal::PointerSymbol::calcSpritePos ( UnoViewSharedPtr const &  rView) const
private

Definition at line 93 of file pointersymbol.cxx.

References maPos.

Referenced by viewAdded(), viewChanged(), and viewsChanged().

◆ create()

PointerSymbolSharedPtr slideshow::internal::PointerSymbol::create ( const css::uno::Reference< css::rendering::XBitmap > &  xBitmap,
ScreenUpdater rScreenUpdater,
EventMultiplexer rEventMultiplexer,
const UnoViewContainer rViewContainer 
)
static

◆ setVisible()

void slideshow::internal::PointerSymbol::setVisible ( const bool  bVisible)

Use this method to update the pointer's position.

Definition at line 71 of file pointersymbol.cxx.

References bVisible, maViews, mbVisible, mrScreenUpdater, and slideshow::internal::ScreenUpdater::requestImmediateUpdate().

◆ viewAdded()

void slideshow::internal::PointerSymbol::viewAdded ( const UnoViewSharedPtr rView)
overrideprivatevirtual

Notify new view.

Parameters
rViewThe newly added view

Implements slideshow::internal::ViewEventHandler.

Definition at line 103 of file pointersymbol.cxx.

References calcSpritePos(), canvas::tools::initRenderState(), canvas::tools::initViewState(), maViews, mbVisible, mxBitmap, and TOOLS_WARN_EXCEPTION.

Referenced by PointerSymbol().

◆ viewChanged()

void slideshow::internal::PointerSymbol::viewChanged ( const UnoViewSharedPtr rView)
overrideprivatevirtual

Notify changed view.

Reasons for a viewChanged notification can be different view size, transformation, or other device properties (color resolution or profile, etc.)

Parameters
rViewThe changed view

Implements slideshow::internal::ViewEventHandler.

Definition at line 145 of file pointersymbol.cxx.

References calcSpritePos(), and maViews.

◆ viewRemoved()

void slideshow::internal::PointerSymbol::viewRemoved ( const UnoViewSharedPtr rView)
overrideprivatevirtual

Notify removed view.

Parameters
rViewThe removed view

Implements slideshow::internal::ViewEventHandler.

Definition at line 134 of file pointersymbol.cxx.

References maViews.

◆ viewsChanged() [1/2]

void slideshow::internal::PointerSymbol::viewsChanged ( )
overrideprivatevirtual

Notify that all views changed.

Reasons for a viewChanged notification can be different view size, transformation, or other device properties (color resolution or profile, etc.)

Note that this method avoids hidden inefficiencies (O(n^2) behaviour when viewChanged() needs to perform linear searches)

Implements slideshow::internal::ViewEventHandler.

Definition at line 165 of file pointersymbol.cxx.

References calcSpritePos(), and maViews.

◆ viewsChanged() [2/2]

void slideshow::internal::PointerSymbol::viewsChanged ( const css::geometry::RealPoint2D  pos)

Member Data Documentation

◆ maPos

css::geometry::RealPoint2D slideshow::internal::PointerSymbol::maPos
private

Definition at line 69 of file pointersymbol.hxx.

Referenced by calcSpritePos().

◆ maViews

ViewsVecT slideshow::internal::PointerSymbol::maViews
private

Definition at line 67 of file pointersymbol.hxx.

Referenced by setVisible(), viewAdded(), viewChanged(), viewRemoved(), and viewsChanged().

◆ mbVisible

bool slideshow::internal::PointerSymbol::mbVisible
private

Definition at line 70 of file pointersymbol.hxx.

Referenced by setVisible(), and viewAdded().

◆ mrScreenUpdater

ScreenUpdater& slideshow::internal::PointerSymbol::mrScreenUpdater
private

Definition at line 68 of file pointersymbol.hxx.

Referenced by setVisible().

◆ mxBitmap

css::uno::Reference<css::rendering::XBitmap> slideshow::internal::PointerSymbol::mxBitmap
private

Definition at line 65 of file pointersymbol.hxx.

Referenced by viewAdded().


The documentation for this class was generated from the following files: