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

#include <rehearsetimingsactivity.hxx>

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

Classes

class  MouseHandler
 
class  WakeupEvent
 

Public Member Functions

virtual ~RehearseTimingsActivity () override
 
 RehearseTimingsActivity (const RehearseTimingsActivity &)=delete
 
RehearseTimingsActivityoperator= (const RehearseTimingsActivity &)=delete
 
void start ()
 Starts and shows the timer; adds to activity queue. More...
 
double stop ()
 Stops and hides the timer. More...
 
bool hasBeenClicked () const
 Determines whether the timer button has been clicked. More...
 
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...
 
virtual void dispose () override
 Dispose all object references. More...
 
virtual double calcTimeLag () const override
 Calculates whether the activity lags time. More...
 
virtual bool perform () override
 Perform the activity associated with this interface's implementation. More...
 
virtual bool isActive () const override
 Query whether this activity is still continuing. More...
 
virtual void dequeued () override
 Notifies the Activity that it has now left the ActivitiesQueue. More...
 
virtual void end () override
 Forces this activity deactivate and get to its end state (if possible), but does not dispose. More...
 
virtual bool perform ()=0
 Perform the activity associated with this interface's implementation. More...
 
virtual double calcTimeLag () const =0
 Calculates whether the activity lags time. More...
 
virtual bool isActive () const =0
 Query whether this activity is still continuing. More...
 
virtual void dequeued ()=0
 Notifies the Activity that it has now left the ActivitiesQueue. More...
 
virtual void end ()=0
 Forces this activity deactivate and get to its end state (if possible), but does not dispose. More...
 
- Public Member Functions inherited from slideshow::internal::Disposable
virtual ~Disposable ()
 
virtual void dispose ()=0
 Dispose all object references. More...
 
- Public Member Functions inherited from slideshow::internal::SharedPtrAble
virtual ~SharedPtrAble ()
 
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...
 

Static Public Member Functions

static std::shared_ptr< RehearseTimingsActivitycreate (const SlideShowContext &rContext)
 Creates the activity. More...
 

Private Types

typedef std::vector< std::pair< UnoViewSharedPtr, std::shared_ptr< cppcanvas::CustomSprite > > > ViewsVecT
 

Private Member Functions

 RehearseTimingsActivity (const SlideShowContext &rContext)
 
void paint (::cppcanvas::CanvasSharedPtr const &canvas) const
 
void paintAllSprites () const
 
template<typename func_type >
void for_each_sprite (func_type const &func) const
 
::basegfx::B2DRange calcSpriteRectangle (UnoViewSharedPtr const &rView) const
 

Private Attributes

EventQueuemrEventQueue
 
ScreenUpdatermrScreenUpdater
 
EventMultiplexermrEventMultiplexer
 
ActivitiesQueuemrActivitiesQueue
 
canvas::tools::ElapsedTime maElapsedTime
 
ViewsVecT maViews
 
::basegfx::B2DRange maSpriteRectangle
 screen rect of sprite (in view coordinates!) More...
 
vcl::Font maFont
 
std::shared_ptr< WakeupEventmpWakeUpEvent
 
std::shared_ptr< MouseHandlermpMouseHandler
 
::basegfx::B2IVector maSpriteSizePixel
 
sal_Int32 mnYOffset
 
bool mbActive
 
bool mbDrawPressed
 

Friends

class MouseHandler
 

Detailed Description

Definition at line 49 of file rehearsetimingsactivity.hxx.

Member Typedef Documentation

◆ ViewsVecT

typedef std::vector< std::pair<UnoViewSharedPtr, std::shared_ptr<cppcanvas::CustomSprite> > > slideshow::internal::RehearseTimingsActivity::ViewsVecT
private

Definition at line 103 of file rehearsetimingsactivity.hxx.

Constructor & Destructor Documentation

◆ ~RehearseTimingsActivity()

slideshow::internal::RehearseTimingsActivity::~RehearseTimingsActivity ( )
overridevirtual

Definition at line 174 of file rehearsetimingsactivity.cxx.

References stop(), and TOOLS_WARN_EXCEPTION.

◆ RehearseTimingsActivity() [1/2]

slideshow::internal::RehearseTimingsActivity::RehearseTimingsActivity ( const RehearseTimingsActivity )
delete

Referenced by create().

◆ RehearseTimingsActivity() [2/2]

slideshow::internal::RehearseTimingsActivity::RehearseTimingsActivity ( const SlideShowContext rContext)
explicitprivate

Member Function Documentation

◆ calcSpriteRectangle()

basegfx::B2DRange slideshow::internal::RehearseTimingsActivity::calcSpriteRectangle ( UnoViewSharedPtr const &  rView) const
private

◆ calcTimeLag()

double slideshow::internal::RehearseTimingsActivity::calcTimeLag ( ) const
overridevirtual

Calculates whether the activity lags time.

If this method returns a time lag greater than 0.0, the ActivitiesQueue will adjust the global slideshow time, by subtracting the given amount of lag.

Returns
time lag or 0.0. Value must be greater or equal than zero.

Implements slideshow::internal::Activity.

Definition at line 256 of file rehearsetimingsactivity.cxx.

◆ create()

std::shared_ptr< RehearseTimingsActivity > slideshow::internal::RehearseTimingsActivity::create ( const SlideShowContext rContext)
static

◆ dequeued()

void slideshow::internal::RehearseTimingsActivity::dequeued ( )
overridevirtual

Notifies the Activity that it has now left the ActivitiesQueue.

Use this method to react on the queue removal event. For animated shapes, this is e.g. used to switch back to the non-sprite presentation mode of the shape.

Implements slideshow::internal::Activity.

Definition at line 287 of file rehearsetimingsactivity.cxx.

◆ dispose()

void slideshow::internal::RehearseTimingsActivity::dispose ( )
overridevirtual

Dispose all object references.

An implementor of this method must first call dispose() on any of its external references, and release them after that.

Implements slideshow::internal::Disposable.

Definition at line 245 of file rehearsetimingsactivity.cxx.

References maViews, mpMouseHandler, mpWakeUpEvent, and stop().

◆ end()

void slideshow::internal::RehearseTimingsActivity::end ( )
overridevirtual

Forces this activity deactivate and get to its end state (if possible), but does not dispose.

Implements slideshow::internal::Activity.

Definition at line 292 of file rehearsetimingsactivity.cxx.

References isActive(), mbActive, and stop().

◆ for_each_sprite()

template<typename func_type >
void slideshow::internal::RehearseTimingsActivity::for_each_sprite ( func_type const &  func) const
inlineprivate

Definition at line 106 of file rehearsetimingsactivity.hxx.

References maViews.

Referenced by paintAllSprites(), start(), stop(), and viewsChanged().

◆ hasBeenClicked()

bool slideshow::internal::RehearseTimingsActivity::hasBeenClicked ( ) const

Determines whether the timer button has been clicked.

Definition at line 237 of file rehearsetimingsactivity.cxx.

References mpMouseHandler.

◆ isActive()

bool slideshow::internal::RehearseTimingsActivity::isActive ( ) const
overridevirtual

Query whether this activity is still continuing.

Returns
true, if this activity still continues. Returns false, if activity has ended. It is required that operator() returns false, when isActive() returns false. Furthermore, it is required that the inactive state is persistent; an activity that has become inactive (i.e. isActive() once returned false) must stay in that state eternally.

Implements slideshow::internal::Activity.

Definition at line 282 of file rehearsetimingsactivity.cxx.

References mbActive.

Referenced by end(), perform(), and viewAdded().

◆ operator=()

RehearseTimingsActivity & slideshow::internal::RehearseTimingsActivity::operator= ( const RehearseTimingsActivity )
delete

◆ paint()

void slideshow::internal::RehearseTimingsActivity::paint ( ::cppcanvas::CanvasSharedPtr const &  canvas) const
private

◆ paintAllSprites()

void slideshow::internal::RehearseTimingsActivity::paintAllSprites ( ) const
private

Definition at line 403 of file rehearsetimingsactivity.cxx.

References for_each_sprite(), and paint().

Referenced by perform(), and start().

◆ perform()

bool slideshow::internal::RehearseTimingsActivity::perform ( )
overridevirtual

Perform the activity associated with this interface's implementation.

Returns
true, if activity continues, or false, if activity has ended.

Implements slideshow::internal::Activity.

Definition at line 261 of file rehearsetimingsactivity.cxx.

References slideshow::internal::EventQueue::addEvent(), isActive(), mpWakeUpEvent, mrEventQueue, mrScreenUpdater, slideshow::internal::ScreenUpdater::notifyUpdate(), and paintAllSprites().

◆ start()

void slideshow::internal::RehearseTimingsActivity::start ( )

◆ stop()

double slideshow::internal::RehearseTimingsActivity::stop ( )

◆ viewAdded()

void slideshow::internal::RehearseTimingsActivity::viewAdded ( const UnoViewSharedPtr rView)
overridevirtual

◆ viewChanged()

void slideshow::internal::RehearseTimingsActivity::viewChanged ( const UnoViewSharedPtr rView)
overridevirtual

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 360 of file rehearsetimingsactivity.cxx.

References calcSpriteRectangle(), basegfx::B2DRange::getMinimum(), maSpriteRectangle, maViews, mrScreenUpdater, and slideshow::internal::ScreenUpdater::notifyUpdate().

◆ viewRemoved()

void slideshow::internal::RehearseTimingsActivity::viewRemoved ( const UnoViewSharedPtr rView)
overridevirtual

Notify removed view.

Parameters
rViewThe removed view

Implements slideshow::internal::ViewEventHandler.

Definition at line 350 of file rehearsetimingsactivity.cxx.

References maViews.

◆ viewsChanged()

void slideshow::internal::RehearseTimingsActivity::viewsChanged ( )
overridevirtual

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 386 of file rehearsetimingsactivity.cxx.

References calcSpriteRectangle(), for_each_sprite(), basegfx::B2DRange::getMinimum(), maSpriteRectangle, maViews, mrScreenUpdater, and slideshow::internal::ScreenUpdater::notifyUpdate().

Friends And Related Function Documentation

◆ MouseHandler

friend class MouseHandler
friend

Definition at line 99 of file rehearsetimingsactivity.hxx.

Member Data Documentation

◆ maElapsedTime

canvas::tools::ElapsedTime slideshow::internal::RehearseTimingsActivity::maElapsedTime
private

Definition at line 121 of file rehearsetimingsactivity.hxx.

Referenced by paint(), start(), and stop().

◆ maFont

vcl::Font slideshow::internal::RehearseTimingsActivity::maFont
private

Definition at line 128 of file rehearsetimingsactivity.hxx.

Referenced by paint(), and RehearseTimingsActivity().

◆ maSpriteRectangle

::basegfx::B2DRange slideshow::internal::RehearseTimingsActivity::maSpriteRectangle
private

screen rect of sprite (in view coordinates!)

Definition at line 126 of file rehearsetimingsactivity.hxx.

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

◆ maSpriteSizePixel

::basegfx::B2IVector slideshow::internal::RehearseTimingsActivity::maSpriteSizePixel
private

◆ maViews

ViewsVecT slideshow::internal::RehearseTimingsActivity::maViews
private

◆ mbActive

bool slideshow::internal::RehearseTimingsActivity::mbActive
private

Definition at line 133 of file rehearsetimingsactivity.hxx.

Referenced by end(), isActive(), start(), and stop().

◆ mbDrawPressed

bool slideshow::internal::RehearseTimingsActivity::mbDrawPressed
private

Definition at line 134 of file rehearsetimingsactivity.hxx.

Referenced by paint(), and start().

◆ mnYOffset

sal_Int32 slideshow::internal::RehearseTimingsActivity::mnYOffset
private

Definition at line 132 of file rehearsetimingsactivity.hxx.

Referenced by paint(), and RehearseTimingsActivity().

◆ mpMouseHandler

std::shared_ptr<MouseHandler> slideshow::internal::RehearseTimingsActivity::mpMouseHandler
private

Definition at line 130 of file rehearsetimingsactivity.hxx.

Referenced by dispose(), hasBeenClicked(), start(), and stop().

◆ mpWakeUpEvent

std::shared_ptr<WakeupEvent> slideshow::internal::RehearseTimingsActivity::mpWakeUpEvent
private

Definition at line 129 of file rehearsetimingsactivity.hxx.

Referenced by dispose(), and perform().

◆ mrActivitiesQueue

ActivitiesQueue& slideshow::internal::RehearseTimingsActivity::mrActivitiesQueue
private

Definition at line 120 of file rehearsetimingsactivity.hxx.

Referenced by start().

◆ mrEventMultiplexer

EventMultiplexer& slideshow::internal::RehearseTimingsActivity::mrEventMultiplexer
private

Definition at line 119 of file rehearsetimingsactivity.hxx.

Referenced by start(), and stop().

◆ mrEventQueue

EventQueue& slideshow::internal::RehearseTimingsActivity::mrEventQueue
private

Definition at line 117 of file rehearsetimingsactivity.hxx.

Referenced by perform().

◆ mrScreenUpdater

ScreenUpdater& slideshow::internal::RehearseTimingsActivity::mrScreenUpdater
private

Definition at line 118 of file rehearsetimingsactivity.hxx.

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


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