Sparkle 0.0.1
Loading...
Searching...
No Matches
spk::Component Class Reference

Base class for engine components attached to entities. More...

#include <spk_component.hpp>

Inheritance diagram for spk::Component:
Inheritance graph
Collaboration diagram for spk::Component:
Collaboration graph

Public Member Functions

 Component (const std::wstring &p_name)
 Builds a component with a name.
 ~Component () override
 Virtual destructor.
void setName (const std::wstring &p_name)
 Sets the component name.
void setPriority (const int &p_priority)
 Sets the component priority.
const std::wstring & name () const
 Returns the component name.
int priority () const
 Returns the component priority.
Entityowner ()
 Returns the owning entity.
const Entityowner () const
 Returns the owning entity.
virtual void start ()
 Called when the component starts.
virtual void awake ()
 Called when the component becomes active.
virtual void sleep ()
 Called when the component is put to sleep.
virtual void stop ()
 Called when the component stops.
virtual void handleGeometryChange (const spk::Extend2D &p_geometry)
 Handles geometry change events.
virtual void handlePaintEvent (spk::PaintEvent &p_event)
 Handles paint events.
virtual void handleKeyPressEvent (spk::KeyPressEvent &p_event)
 Handles key press events.
virtual void handleKeyReleaseEvent (spk::KeyReleaseEvent &p_event)
 Handles key release events.
virtual void handleGlyphEvent (spk::GlyphEvent &p_event)
 Handles glyph input events.
virtual void handleMousePressEvent (spk::MousePressEvent &p_event)
 Handles mouse press events.
virtual void handleMouseReleaseEvent (spk::MouseReleaseEvent &p_event)
 Handles mouse release events.
virtual void handleMouseDoubleClickEvent (spk::MouseDoubleClickEvent &p_event)
 Handles mouse double-click events.
virtual void handleMouseMotionEvent (spk::MouseMotionEvent &p_event)
 Handles mouse motion events.
virtual void handleMouseWheelEvent (spk::MouseWheelEvent &p_event)
 Handles mouse wheel events.
virtual void handleEnterResizeModeEvent (spk::EnterResizeModeEvent &p_event)
 Handles enter resize mode events.
virtual void handleResizeEvent (spk::ResizeEvent &p_event)
 Handles resize events.
virtual void handleExitResizeModeEvent (spk::ExitResizeModeEvent &p_event)
 Handles exit resize mode events.
virtual void handleQuitEvent (spk::QuitEvent &p_event)
 Handles quit events.
virtual void handleMoveEvent (spk::MoveEvent &p_event)
 Handles move events.
virtual void handleFullScreenModeEvent (spk::FullScreenModeEvent &p_event)
 Handles fullscreen mode events.
virtual void handleMaximizedModeEvent (spk::MaximizedModeEvent &p_event)
 Handles maximized mode events.
virtual void handleFocusEvent (spk::FocusEvent &p_event)
 Handles focus events.
virtual void handleUpdateEvent (spk::UpdateEvent &p_event)
 Handles update events.
Public Member Functions inherited from spk::ActivableObject
 ActivableObject ()
 Builds a deactivated object.
 ActivableObject (ActivationStatus p_initial)
 Builds with a custom initial activation state.
void activate ()
 Sets the state to Activated.
void deactivate ()
 Sets the state to Deactivated.
void toggle ()
 Toggles between activated and deactivated states.
bool isActive () const
 Checks whether the object is currently activated.
Contract addActivationCallback (const Job &p_callback)
 Registers a callback executed when the object activates.
Contract addDeactivationCallback (const Job &p_callback)
 Registers a callback executed when the object deactivates.
Public Member Functions inherited from spk::StatefulObject< ActivationStatus >
 StatefulObject (const ActivationStatus &p_initialState)
 Builds with an initial state.
StatefulObjectoperator= (const StatefulObject &p_other)=delete
void setState (const ActivationStatus &p_newState)
 Sets a new state and triggers callbacks registered for it.
ActivationStatus state () const
 Returns the current state.
Contract addCallback (const ActivationStatus &p_state, const Job &p_callback)
 Subscribes a callback for a specific state.

Protected Member Functions

virtual void _setOwner (Entity *p_owner)
 Assigns the owning entity.
virtual void _onGeometryChange (const spk::Extend2D &p_geometry)
 Handles geometry changes before public callbacks.
virtual void _onPaintEvent (spk::PaintEvent &p_event)
 Handles paint events before public callbacks.
virtual void _onKeyPressEvent (spk::KeyPressEvent &p_event)
 Handles key press events before public callbacks.
virtual void _onKeyReleaseEvent (spk::KeyReleaseEvent &p_event)
 Handles key release events before public callbacks.
virtual void _onGlyphEvent (spk::GlyphEvent &p_event)
 Handles glyph input events before public callbacks.
virtual void _onMousePressEvent (spk::MousePressEvent &p_event)
 Handles mouse press events before public callbacks.
virtual void _onMouseReleaseEvent (spk::MouseReleaseEvent &p_event)
 Handles mouse release events before public callbacks.
virtual void _onMouseDoubleClickEvent (spk::MouseDoubleClickEvent &p_event)
 Handles mouse double-click events before public callbacks.
virtual void _onMouseMotionEvent (spk::MouseMotionEvent &p_event)
 Handles mouse motion events before public callbacks.
virtual void _onMouseWheelEvent (spk::MouseWheelEvent &p_event)
 Handles mouse wheel events before public callbacks.
virtual void _onEnterResizeModeEvent (spk::EnterResizeModeEvent &p_event)
 Handles enter resize mode events before public callbacks.
virtual void _onResizeEvent (spk::ResizeEvent &p_event)
 Handles resize events before public callbacks.
virtual void _onExitResizeModeEvent (spk::ExitResizeModeEvent &p_event)
 Handles exit resize mode events before public callbacks.
virtual void _onQuitEvent (spk::QuitEvent &p_event)
 Handles quit events before public callbacks.
virtual void _onMoveEvent (spk::MoveEvent &p_event)
 Handles move events before public callbacks.
virtual void _onFullScreenModeEvent (spk::FullScreenModeEvent &p_event)
 Handles fullscreen mode events before public callbacks.
virtual void _onMaximizedModeEvent (spk::MaximizedModeEvent &p_event)
 Handles maximized mode events before public callbacks.
virtual void _onFocusEvent (spk::FocusEvent &p_event)
 Handles focus events before public callbacks.
virtual void _onUpdateEvent (spk::UpdateEvent &p_event)
 Handles update events before public callbacks.

Friends

class Entity

Additional Inherited Members

Public Types inherited from spk::ActivableObject
using Contract = StatefulObject<ActivationStatus>::Contract
 Subscription handle controlling callback lifetime.
using Job = StatefulObject<ActivationStatus>::Job
 Callback signature executed on activation state changes.
Public Types inherited from spk::StatefulObject< ActivationStatus >
using Contract
 Handle allowing subscribers to manage callback lifetimes.
using Job
 Callable invoked when the object transitions to a state.

Detailed Description

Base class for engine components attached to entities.

Constructor & Destructor Documentation

◆ Component()

spk::Component::Component ( const std::wstring & p_name)

Builds a component with a name.

Parameters
p_nameComponent name.
Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ _onEnterResizeModeEvent()

void spk::Component::_onEnterResizeModeEvent ( spk::EnterResizeModeEvent & p_event)
protectedvirtual

Handles enter resize mode events before public callbacks.

Parameters
p_eventEnter resize mode event.
Here is the caller graph for this function:

◆ _onExitResizeModeEvent()

void spk::Component::_onExitResizeModeEvent ( spk::ExitResizeModeEvent & p_event)
protectedvirtual

Handles exit resize mode events before public callbacks.

Parameters
p_eventExit resize mode event.
Here is the caller graph for this function:

◆ _onFocusEvent()

void spk::Component::_onFocusEvent ( spk::FocusEvent & p_event)
protectedvirtual

Handles focus events before public callbacks.

Parameters
p_eventFocus event.
Here is the caller graph for this function:

◆ _onFullScreenModeEvent()

void spk::Component::_onFullScreenModeEvent ( spk::FullScreenModeEvent & p_event)
protectedvirtual

Handles fullscreen mode events before public callbacks.

Parameters
p_eventFullscreen mode event.
Here is the caller graph for this function:

◆ _onGeometryChange()

void spk::Component::_onGeometryChange ( const spk::Extend2D & p_geometry)
protectedvirtual

Handles geometry changes before public callbacks.

Parameters
p_geometryUpdated geometry.
Here is the caller graph for this function:

◆ _onGlyphEvent()

void spk::Component::_onGlyphEvent ( spk::GlyphEvent & p_event)
protectedvirtual

Handles glyph input events before public callbacks.

Parameters
p_eventGlyph event.
Here is the caller graph for this function:

◆ _onKeyPressEvent()

void spk::Component::_onKeyPressEvent ( spk::KeyPressEvent & p_event)
protectedvirtual

Handles key press events before public callbacks.

Parameters
p_eventKey press event.
Here is the caller graph for this function:

◆ _onKeyReleaseEvent()

void spk::Component::_onKeyReleaseEvent ( spk::KeyReleaseEvent & p_event)
protectedvirtual

Handles key release events before public callbacks.

Parameters
p_eventKey release event.
Here is the caller graph for this function:

◆ _onMaximizedModeEvent()

void spk::Component::_onMaximizedModeEvent ( spk::MaximizedModeEvent & p_event)
protectedvirtual

Handles maximized mode events before public callbacks.

Parameters
p_eventMaximized mode event.
Here is the caller graph for this function:

◆ _onMouseDoubleClickEvent()

void spk::Component::_onMouseDoubleClickEvent ( spk::MouseDoubleClickEvent & p_event)
protectedvirtual

Handles mouse double-click events before public callbacks.

Parameters
p_eventMouse double-click event.
Here is the caller graph for this function:

◆ _onMouseMotionEvent()

void spk::Component::_onMouseMotionEvent ( spk::MouseMotionEvent & p_event)
protectedvirtual

Handles mouse motion events before public callbacks.

Parameters
p_eventMouse motion event.
Here is the caller graph for this function:

◆ _onMousePressEvent()

void spk::Component::_onMousePressEvent ( spk::MousePressEvent & p_event)
protectedvirtual

Handles mouse press events before public callbacks.

Parameters
p_eventMouse press event.
Here is the caller graph for this function:

◆ _onMouseReleaseEvent()

void spk::Component::_onMouseReleaseEvent ( spk::MouseReleaseEvent & p_event)
protectedvirtual

Handles mouse release events before public callbacks.

Parameters
p_eventMouse release event.
Here is the caller graph for this function:

◆ _onMouseWheelEvent()

void spk::Component::_onMouseWheelEvent ( spk::MouseWheelEvent & p_event)
protectedvirtual

Handles mouse wheel events before public callbacks.

Parameters
p_eventMouse wheel event.
Here is the caller graph for this function:

◆ _onMoveEvent()

void spk::Component::_onMoveEvent ( spk::MoveEvent & p_event)
protectedvirtual

Handles move events before public callbacks.

Parameters
p_eventMove event.
Here is the caller graph for this function:

◆ _onPaintEvent()

void spk::Component::_onPaintEvent ( spk::PaintEvent & p_event)
protectedvirtual

Handles paint events before public callbacks.

Parameters
p_eventPaint event.
Here is the caller graph for this function:

◆ _onQuitEvent()

void spk::Component::_onQuitEvent ( spk::QuitEvent & p_event)
protectedvirtual

Handles quit events before public callbacks.

Parameters
p_eventQuit event.
Here is the caller graph for this function:

◆ _onResizeEvent()

void spk::Component::_onResizeEvent ( spk::ResizeEvent & p_event)
protectedvirtual

Handles resize events before public callbacks.

Parameters
p_eventResize event.
Here is the caller graph for this function:

◆ _onUpdateEvent()

void spk::Component::_onUpdateEvent ( spk::UpdateEvent & p_event)
protectedvirtual

Handles update events before public callbacks.

Parameters
p_eventUpdate event.

Reimplemented in spk::Transform2D.

Here is the caller graph for this function:

◆ _setOwner()

void spk::Component::_setOwner ( Entity * p_owner)
protectedvirtual

Assigns the owning entity.

Parameters
p_ownerOwner entity.

◆ handleEnterResizeModeEvent()

void spk::Component::handleEnterResizeModeEvent ( spk::EnterResizeModeEvent & p_event)
virtual

Handles enter resize mode events.

Parameters
p_eventEnter resize mode event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleExitResizeModeEvent()

void spk::Component::handleExitResizeModeEvent ( spk::ExitResizeModeEvent & p_event)
virtual

Handles exit resize mode events.

Parameters
p_eventExit resize mode event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleFocusEvent()

void spk::Component::handleFocusEvent ( spk::FocusEvent & p_event)
virtual

Handles focus events.

Parameters
p_eventFocus event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleFullScreenModeEvent()

void spk::Component::handleFullScreenModeEvent ( spk::FullScreenModeEvent & p_event)
virtual

Handles fullscreen mode events.

Parameters
p_eventFullscreen mode event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleGeometryChange()

void spk::Component::handleGeometryChange ( const spk::Extend2D & p_geometry)
virtual

Handles geometry change events.

Parameters
p_geometryUpdated geometry.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleGlyphEvent()

void spk::Component::handleGlyphEvent ( spk::GlyphEvent & p_event)
virtual

Handles glyph input events.

Parameters
p_eventGlyph event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleKeyPressEvent()

void spk::Component::handleKeyPressEvent ( spk::KeyPressEvent & p_event)
virtual

Handles key press events.

Parameters
p_eventKey press event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleKeyReleaseEvent()

void spk::Component::handleKeyReleaseEvent ( spk::KeyReleaseEvent & p_event)
virtual

Handles key release events.

Parameters
p_eventKey release event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleMaximizedModeEvent()

void spk::Component::handleMaximizedModeEvent ( spk::MaximizedModeEvent & p_event)
virtual

Handles maximized mode events.

Parameters
p_eventMaximized mode event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleMouseDoubleClickEvent()

void spk::Component::handleMouseDoubleClickEvent ( spk::MouseDoubleClickEvent & p_event)
virtual

Handles mouse double-click events.

Parameters
p_eventMouse double-click event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleMouseMotionEvent()

void spk::Component::handleMouseMotionEvent ( spk::MouseMotionEvent & p_event)
virtual

Handles mouse motion events.

Parameters
p_eventMouse motion event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleMousePressEvent()

void spk::Component::handleMousePressEvent ( spk::MousePressEvent & p_event)
virtual

Handles mouse press events.

Parameters
p_eventMouse press event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleMouseReleaseEvent()

void spk::Component::handleMouseReleaseEvent ( spk::MouseReleaseEvent & p_event)
virtual

Handles mouse release events.

Parameters
p_eventMouse release event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleMouseWheelEvent()

void spk::Component::handleMouseWheelEvent ( spk::MouseWheelEvent & p_event)
virtual

Handles mouse wheel events.

Parameters
p_eventMouse wheel event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleMoveEvent()

void spk::Component::handleMoveEvent ( spk::MoveEvent & p_event)
virtual

Handles move events.

Parameters
p_eventMove event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handlePaintEvent()

void spk::Component::handlePaintEvent ( spk::PaintEvent & p_event)
virtual

Handles paint events.

Parameters
p_eventPaint event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleQuitEvent()

void spk::Component::handleQuitEvent ( spk::QuitEvent & p_event)
virtual

Handles quit events.

Parameters
p_eventQuit event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleResizeEvent()

void spk::Component::handleResizeEvent ( spk::ResizeEvent & p_event)
virtual

Handles resize events.

Parameters
p_eventResize event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleUpdateEvent()

void spk::Component::handleUpdateEvent ( spk::UpdateEvent & p_event)
virtual

Handles update events.

Parameters
p_eventUpdate event.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ name()

const std::wstring & spk::Component::name ( ) const

Returns the component name.

Returns
Component name.

◆ owner() [1/2]

Entity * spk::Component::owner ( )

Returns the owning entity.

Returns
Pointer to the owner.

◆ owner() [2/2]

const Entity * spk::Component::owner ( ) const

Returns the owning entity.

Returns
Pointer to the owner.

◆ priority()

int spk::Component::priority ( ) const

Returns the component priority.

Returns
Priority value.

◆ setName()

void spk::Component::setName ( const std::wstring & p_name)

Sets the component name.

Parameters
p_nameNew name.

◆ setPriority()

void spk::Component::setPriority ( const int & p_priority)

Sets the component priority.

Parameters
p_priorityPriority value.

◆ start()

void spk::Component::start ( )
virtual

◆ stop()

void spk::Component::stop ( )
virtual

Called when the component stops.

Reimplemented in spk::RigidBody2D.


The documentation for this class was generated from the following files:
  • includes/structure/engine/spk_component.hpp
  • srcs/structure/engine/spk_component.cpp