Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
CGUISliderControl Class Reference

#include <GUISliderControl.h>

Inheritance diagram for CGUISliderControl:
CGUIControl CGUISettingsSliderControl

Public Types

enum  RangeSelector { RangeSelectorLower = 0 , RangeSelectorUpper = 1 }
 
- Public Types inherited from CGUIControl
enum  GUICONTROLTYPES {
  GUICONTROL_UNKNOWN , GUICONTAINER_EPGGRID , GUICONTAINER_FIXEDLIST , GUICONTAINER_LIST ,
  GUICONTAINER_PANEL , GUICONTAINER_WRAPLIST , GUICONTROL_BORDEREDIMAGE , GUICONTROL_BUTTON ,
  GUICONTROL_COLORBUTTON , GUICONTROL_EDIT , GUICONTROL_FADELABEL , GUICONTROL_GAME ,
  GUICONTROL_GAMECONTROLLER , GUICONTROL_GAMECONTROLLERLIST , GUICONTROL_GROUP , GUICONTROL_GROUPLIST ,
  GUICONTROL_IMAGE , GUICONTROL_LABEL , GUICONTROL_LISTGROUP , GUICONTROL_LISTLABEL ,
  GUICONTROL_MOVER , GUICONTROL_MULTI_IMAGE , GUICONTROL_PROGRESS , GUICONTROL_RADIO ,
  GUICONTROL_RANGES , GUICONTROL_RENDERADDON , GUICONTROL_RESIZE , GUICONTROL_RSS ,
  GUICONTROL_SCROLLBAR , GUICONTROL_SETTINGS_SLIDER , GUICONTROL_SLIDER , GUICONTROL_SPIN ,
  GUICONTROL_SPINEX , GUICONTROL_TEXTBOX , GUICONTROL_TOGGLEBUTTON , GUICONTROL_VIDEO ,
  GUICONTROL_VISUALISATION
}
 
enum  GUIVISIBLE { HIDDEN = 0 , DELAYED , VISIBLE }
 
enum  GUISCROLLVALUE { FOCUS = 0 , NEVER , ALWAYS }
 
typedef std::map< int, CGUIActionActionMap
 Set actions to perform on navigation.
 

Public Member Functions

 CGUISliderControl (int parentID, int controlID, float posX, float posY, float width, float height, const CTextureInfo &backGroundTexture, const CTextureInfo &backGroundTextureDisabled, const CTextureInfo &mibTexture, const CTextureInfo &nibTextureFocus, const CTextureInfo &nibTextureDisabled, int iType, ORIENTATION orientationconst)
 
 ~CGUISliderControl () override=default
 
CGUISliderControlClone () const override
 
void Process (unsigned int currentTime, CDirtyRegionList &dirtyregions) override
 
void Render () override
 
bool OnAction (const CAction &action) override
 
virtual bool IsActive () const
 
void AllocResources () override
 
void FreeResources (bool immediately=false) override
 
void DynamicResourceAlloc (bool bOnOff) override
 
void SetInvalid () override
 
virtual void SetRange (int iStart, int iEnd)
 
virtual void SetFloatRange (float fStart, float fEnd)
 
bool OnMessage (CGUIMessage &message) override
 
bool ProcessSelector (CGUITexture *background, CGUITexture *nib, unsigned int currentTime, float fScale, RangeSelector selector)
 
void SetRangeSelection (bool rangeSelection)
 
bool GetRangeSelection () const
 
void SetRangeSelector (RangeSelector selector)
 
void SwitchRangeSelector ()
 
void SetInfo (int iInfo)
 
void SetPercentage (float iPercent, RangeSelector selector=RangeSelectorLower, bool updateCurrent=false)
 
float GetPercentage (RangeSelector selector=RangeSelectorLower) const
 
void SetIntValue (int iValue, RangeSelector selector=RangeSelectorLower, bool updateCurrent=false)
 
int GetIntValue (RangeSelector selector=RangeSelectorLower) const
 
void SetFloatValue (float fValue, RangeSelector selector=RangeSelectorLower, bool updateCurrent=false)
 
float GetFloatValue (RangeSelector selector=RangeSelectorLower) const
 
void SetIntInterval (int iInterval)
 
void SetFloatInterval (float fInterval)
 
void SetType (int iType)
 
int GetType () const
 
std::string GetDescription () const override
 
void SetTextValue (const std::string &textValue)
 
void SetAction (const std::string &action)
 
- Public Member Functions inherited from CGUIControl
 CGUIControl ()
 
 CGUIControl (int parentID, int controlID, float posX, float posY, float width, float height)
 
 CGUIControl (const CGUIControl &)
 
virtual ~CGUIControl (void)
 
virtual void DoProcess (unsigned int currentTime, CDirtyRegionList &dirtyregions)
 
virtual void DoRender ()
 
virtual void RenderEx ()
 
bool HasProcessed () const
 Returns whether or not we have processed.
 
virtual void OnUp ()
 
virtual void OnDown ()
 
virtual void OnLeft ()
 
virtual void OnRight ()
 
virtual bool OnBack ()
 
virtual bool OnInfo ()
 
virtual void OnNextControl ()
 
virtual void OnPrevControl ()
 
virtual void OnFocus ()
 
virtual void OnUnFocus ()
 
virtual EVENT_RESULT SendMouseEvent (const CPoint &point, const KODI::MOUSE::CMouseEvent &event)
 React to a mouse event.
 
virtual void UnfocusFromPoint (const CPoint &point)
 Unfocus the control if the given point on screen is not within it's boundary.
 
virtual int GetID (void) const
 
virtual void SetID (int id)
 
int GetParentID () const
 
virtual bool HasFocus () const
 
virtual bool IsDynamicallyAllocated ()
 
virtual bool CanFocus () const
 
virtual bool IsVisible () const
 
bool IsVisibleFromSkin () const
 
virtual bool IsDisabled () const
 
virtual void SetPosition (float posX, float posY)
 
virtual void SetHitRect (const CRect &rect, const UTILS::COLOR::Color &color)
 
virtual void SetCamera (const CPoint &camera)
 
virtual void SetStereoFactor (const float &factor)
 
bool SetColorDiffuse (const KODI::GUILIB::GUIINFO::CGUIInfoColor &color)
 
CPoint GetRenderPosition () const
 
virtual float GetXPosition () const
 
virtual float GetYPosition () const
 
virtual float GetWidth () const
 
virtual float GetHeight () const
 
virtual void AssignDepth ()
 
void MarkDirtyRegion (const unsigned int dirtyState=DIRTY_STATE_CONTROL)
 
bool IsControlDirty () const
 
const CRectGetRenderRegion () const
 return the render region in screen coordinates of this control
 
virtual CRect CalcRenderRegion () const
 calculate the render region in parentcontrol coordinates of this control Called during process to update m_renderRegion
 
void SetActions (const ActionMap &actions)
 
void SetAction (int actionID, const CGUIAction &action, bool replace=true)
 Set actions to perform on navigation Navigations are set if replace is true or if there is no previously set action.
 
CGUIAction GetAction (int actionID) const
 Get an action the control can be perform.
 
bool Navigate (int direction) const
 Start navigating in given direction.
 
virtual void SetFocus (bool focus)
 
virtual void SetWidth (float width)
 
virtual void SetHeight (float height)
 
virtual void SetVisible (bool bVisible, bool setVisState=false)
 
void SetVisibleCondition (const std::string &expression, const std::string &allowHiddenFocus="")
 
bool HasVisibleCondition () const
 
void SetEnableCondition (const std::string &expression)
 
virtual void UpdateVisibility (const CGUIListItem *item)
 
virtual void SetInitialVisibility ()
 
virtual void SetEnabled (bool bEnable)
 
virtual void SetPulseOnSelect (bool pulse)
 
virtual std::string GetDescriptionByIndex (int index) const
 
void SetAnimations (const std::vector< CAnimation > &animations)
 
const std::vector< CAnimation > & GetAnimations () const
 
virtual void QueueAnimation (ANIMATION_TYPE anim)
 
virtual bool IsAnimating (ANIMATION_TYPE anim)
 
virtual bool HasAnimation (ANIMATION_TYPE anim)
 
CAnimationGetAnimation (ANIMATION_TYPE type, bool checkConditions=true)
 
virtual void ResetAnimation (ANIMATION_TYPE type)
 
virtual void ResetAnimations ()
 
virtual void UpdateInfo (const CGUIListItem *item=NULL)
 
virtual void SetPushUpdates (bool pushUpdates)
 
virtual bool IsGroup () const
 
virtual bool IsContainer () const
 
virtual bool GetCondition (int condition, int data) const
 
void SetParentControl (CGUIControl *control)
 
CGUIControlGetParentControl (void) const
 
virtual void SaveStates (std::vector< CControlState > &states)
 
virtual CGUIControlGetControl (int id, std::vector< CGUIControl * > *idCollector=nullptr)
 
void SetControlStats (GUICONTROLSTATS *controlStats)
 
virtual void UpdateControlStats ()
 
GUICONTROLTYPES GetControlType () const
 
bool IsControlRenderable ()
 Test whether the control is "drawable" (not a group or similar)
 

Protected Member Functions

 CGUISliderControl (const CGUISliderControl &control)
 
bool HitTest (const CPoint &point) const override
 Used to test whether the point is inside a control.
 
EVENT_RESULT OnMouseEvent (const CPoint &point, const KODI::MOUSE::CMouseEvent &event) override
 Perform a mouse action.
 
bool UpdateColors (const CGUIListItem *item) override
 
virtual void Move (int iNumSteps)
 
virtual void SetFromPosition (const CPoint &point, bool guessSelector=false)
 
float GetProportion (RangeSelector selector=RangeSelectorLower) const
 Get the current position of the slider as a proportion.
 
void SendClick ()
 Send a click message (and/or action) to the app in response to a slider move.
 
- Protected Member Functions inherited from CGUIControl
virtual CPoint GetPosition () const
 Return the coordinates of the top left of the control, in the control's parent coordinates.
 
virtual bool OnMouseOver (const CPoint &point)
 Called when the mouse is over the control. Default implementation selects the control.
 
virtual bool CanFocusFromPoint (const CPoint &point) const
 Test whether we can focus a control from a point on screen.
 
virtual bool Animate (unsigned int currentTime)
 
virtual bool CheckAnimation (ANIMATION_TYPE animType)
 
void UpdateStates (ANIMATION_TYPE type, ANIMATION_PROCESS currentProcess, ANIMATION_STATE currentState)
 
bool SendWindowMessage (CGUIMessage &message) const
 

Protected Attributes

std::unique_ptr< CGUITexturem_guiBackground
 
std::unique_ptr< CGUITexturem_guiBackgroundDisabled
 
std::unique_ptr< CGUITexturem_guiSelectorLower
 
std::unique_ptr< CGUITexturem_guiSelectorUpper
 
std::unique_ptr< CGUITexturem_guiSelectorLowerFocus
 
std::unique_ptr< CGUITexturem_guiSelectorUpperFocus
 
std::unique_ptr< CGUITexturem_guiSelectorLowerDisabled
 
std::unique_ptr< CGUITexturem_guiSelectorUpperDisabled
 
int m_iType
 
bool m_rangeSelection
 
RangeSelector m_currentSelector
 
std::array< float, 2 > m_percentValues
 
std::array< int, 2 > m_intValues
 
int m_iStart
 
int m_iInterval
 
int m_iEnd
 
std::array< float, 2 > m_floatValues
 
float m_fStart
 
float m_fInterval
 
float m_fEnd
 
int m_iInfoCode
 
std::string m_textValue
 Allows overriding of the text value to be displayed (parent must update when the slider updates)
 
const SliderActionm_action
 Allows the skin to configure the action of a click on the slider.
 
bool m_dragging
 Whether we're in a (mouse/touch) drag operation or not - some actions are sent only on release.
 
ORIENTATION m_orientation
 
- Protected Attributes inherited from CGUIControl
ActionMap m_actions
 
float m_posX
 
float m_posY
 
float m_height
 
float m_width
 
CRect m_hitRect
 
UTILS::COLOR::Color m_hitColor = 0xffffffff
 
KODI::GUILIB::GUIINFO::CGUIInfoColor m_diffuseColor
 
int m_controlID
 
int m_parentID
 
bool m_bHasFocus
 
bool m_bInvalidated
 
bool m_bAllocated
 
bool m_pulseOnSelect
 
GUICONTROLTYPES ControlType
 
GUICONTROLSTATSm_controlStats
 
CGUIControlm_parentControl
 
INFO::InfoPtr m_visibleCondition
 
GUIVISIBLE m_visible
 
bool m_visibleFromSkinCondition
 
bool m_forceHidden
 
KODI::GUILIB::GUIINFO::CGUIInfoBool m_allowHiddenFocus
 
bool m_hasProcessed
 
INFO::InfoPtr m_enableCondition
 
bool m_enabled
 
bool m_pushedUpdates
 
std::vector< CAnimationm_animations
 
CPoint m_camera
 
bool m_hasCamera
 
float m_stereo
 
TransformMatrix m_transform
 
TransformMatrix m_cachedTransform
 
bool m_isCulled {true}
 
unsigned int m_controlDirtyState
 
CRect m_renderRegion
 

Additional Inherited Members

- Static Protected Attributes inherited from CGUIControl
static const unsigned int DIRTY_STATE_CONTROL = 1
 
static const unsigned int DIRTY_STATE_CHILD = 2
 

Member Enumeration Documentation

◆ RangeSelector

Enumerator
RangeSelectorLower 
RangeSelectorUpper 

Constructor & Destructor Documentation

◆ CGUISliderControl() [1/2]

CGUISliderControl::CGUISliderControl ( int parentID,
int controlID,
float posX,
float posY,
float width,
float height,
const CTextureInfo & backGroundTexture,
const CTextureInfo & backGroundTextureDisabled,
const CTextureInfo & mibTexture,
const CTextureInfo & nibTextureFocus,
const CTextureInfo & nibTextureDisabled,
int iType,
ORIENTATION orientationconst )

◆ ~CGUISliderControl()

CGUISliderControl::~CGUISliderControl ( )
overridedefault

◆ CGUISliderControl() [2/2]

CGUISliderControl::CGUISliderControl ( const CGUISliderControl & control)
protected

Member Function Documentation

◆ AllocResources()

void CGUISliderControl::AllocResources ( )
overridevirtual

Reimplemented from CGUIControl.

◆ Clone()

CGUISliderControl * CGUISliderControl::Clone ( void ) const
inlineoverridevirtual

Implements CGUIControl.

◆ DynamicResourceAlloc()

void CGUISliderControl::DynamicResourceAlloc ( bool bOnOff)
overridevirtual

Reimplemented from CGUIControl.

◆ FreeResources()

void CGUISliderControl::FreeResources ( bool immediately = false)
overridevirtual

Reimplemented from CGUIControl.

◆ GetDescription()

std::string CGUISliderControl::GetDescription ( void ) const
overridevirtual

Reimplemented from CGUIControl.

◆ GetFloatValue()

float CGUISliderControl::GetFloatValue ( RangeSelector selector = RangeSelectorLower) const

◆ GetIntValue()

int CGUISliderControl::GetIntValue ( RangeSelector selector = RangeSelectorLower) const

◆ GetPercentage()

float CGUISliderControl::GetPercentage ( RangeSelector selector = RangeSelectorLower) const

◆ GetProportion()

float CGUISliderControl::GetProportion ( RangeSelector selector = RangeSelectorLower) const
protected

Get the current position of the slider as a proportion.

Returns
slider position in the range [0,1]

◆ GetRangeSelection()

bool CGUISliderControl::GetRangeSelection ( ) const
inline

◆ GetType()

int CGUISliderControl::GetType ( ) const
inline

◆ HitTest()

bool CGUISliderControl::HitTest ( const CPoint & point) const
overrideprotectedvirtual

Used to test whether the point is inside a control.

Parameters
pointlocation to test
Returns
true if the point is inside the bounds of this control.
See also
SetHitRect

Reimplemented from CGUIControl.

◆ IsActive()

virtual bool CGUISliderControl::IsActive ( ) const
inlinevirtual

Reimplemented in CGUISettingsSliderControl.

◆ Move()

void CGUISliderControl::Move ( int iNumSteps)
protectedvirtual

◆ OnAction()

bool CGUISliderControl::OnAction ( const CAction & action)
overridevirtual

Reimplemented from CGUIControl.

◆ OnMessage()

bool CGUISliderControl::OnMessage ( CGUIMessage & message)
overridevirtual

Reimplemented from CGUIControl.

◆ OnMouseEvent()

EVENT_RESULT CGUISliderControl::OnMouseEvent ( const CPoint & point,
const KODI::MOUSE::CMouseEvent & event )
overrideprotectedvirtual

Perform a mouse action.

Mouse actions are sent from the window to all controls, and each control can react based on the event and location of the actions.

Parameters
pointthe location in transformed skin coordinates from the upper left corner of the parent control.
eventthe mouse event to perform
Returns
EVENT_RESULT corresponding to whether the control handles this event
See also
SendMouseEvent, HitTest, CanFocusFromPoint, CMouseEvent

Reimplemented from CGUIControl.

◆ Process()

void CGUISliderControl::Process ( unsigned int currentTime,
CDirtyRegionList & dirtyregions )
overridevirtual

Reimplemented from CGUIControl.

◆ ProcessSelector()

bool CGUISliderControl::ProcessSelector ( CGUITexture * background,
CGUITexture * nib,
unsigned int currentTime,
float fScale,
RangeSelector selector )

◆ Render()

void CGUISliderControl::Render ( )
overridevirtual

Reimplemented from CGUIControl.

◆ SendClick()

void CGUISliderControl::SendClick ( )
protected

Send a click message (and/or action) to the app in response to a slider move.

◆ SetAction()

void CGUISliderControl::SetAction ( const std::string & action)

◆ SetFloatInterval()

void CGUISliderControl::SetFloatInterval ( float fInterval)

◆ SetFloatRange()

void CGUISliderControl::SetFloatRange ( float fStart,
float fEnd )
virtual

◆ SetFloatValue()

void CGUISliderControl::SetFloatValue ( float fValue,
RangeSelector selector = RangeSelectorLower,
bool updateCurrent = false )

◆ SetFromPosition()

void CGUISliderControl::SetFromPosition ( const CPoint & point,
bool guessSelector = false )
protectedvirtual

◆ SetInfo()

void CGUISliderControl::SetInfo ( int iInfo)

◆ SetIntInterval()

void CGUISliderControl::SetIntInterval ( int iInterval)

◆ SetIntValue()

void CGUISliderControl::SetIntValue ( int iValue,
RangeSelector selector = RangeSelectorLower,
bool updateCurrent = false )

◆ SetInvalid()

void CGUISliderControl::SetInvalid ( )
overridevirtual

Reimplemented from CGUIControl.

◆ SetPercentage()

void CGUISliderControl::SetPercentage ( float iPercent,
RangeSelector selector = RangeSelectorLower,
bool updateCurrent = false )

◆ SetRange()

void CGUISliderControl::SetRange ( int iStart,
int iEnd )
virtual

◆ SetRangeSelection()

void CGUISliderControl::SetRangeSelection ( bool rangeSelection)

◆ SetRangeSelector()

void CGUISliderControl::SetRangeSelector ( RangeSelector selector)

◆ SetTextValue()

void CGUISliderControl::SetTextValue ( const std::string & textValue)
inline

◆ SetType()

void CGUISliderControl::SetType ( int iType)
inline

◆ SwitchRangeSelector()

void CGUISliderControl::SwitchRangeSelector ( )

◆ UpdateColors()

bool CGUISliderControl::UpdateColors ( const CGUIListItem * item)
overrideprotectedvirtual

Reimplemented from CGUIControl.

Member Data Documentation

◆ m_action

const SliderAction* CGUISliderControl::m_action
protected

Allows the skin to configure the action of a click on the slider.

See also
SendClick

◆ m_currentSelector

RangeSelector CGUISliderControl::m_currentSelector
protected

◆ m_dragging

bool CGUISliderControl::m_dragging
protected

Whether we're in a (mouse/touch) drag operation or not - some actions are sent only on release.

◆ m_fEnd

float CGUISliderControl::m_fEnd
protected

◆ m_fInterval

float CGUISliderControl::m_fInterval
protected

◆ m_floatValues

std::array<float, 2> CGUISliderControl::m_floatValues
protected

◆ m_fStart

float CGUISliderControl::m_fStart
protected

◆ m_guiBackground

std::unique_ptr<CGUITexture> CGUISliderControl::m_guiBackground
protected

◆ m_guiBackgroundDisabled

std::unique_ptr<CGUITexture> CGUISliderControl::m_guiBackgroundDisabled
protected

◆ m_guiSelectorLower

std::unique_ptr<CGUITexture> CGUISliderControl::m_guiSelectorLower
protected

◆ m_guiSelectorLowerDisabled

std::unique_ptr<CGUITexture> CGUISliderControl::m_guiSelectorLowerDisabled
protected

◆ m_guiSelectorLowerFocus

std::unique_ptr<CGUITexture> CGUISliderControl::m_guiSelectorLowerFocus
protected

◆ m_guiSelectorUpper

std::unique_ptr<CGUITexture> CGUISliderControl::m_guiSelectorUpper
protected

◆ m_guiSelectorUpperDisabled

std::unique_ptr<CGUITexture> CGUISliderControl::m_guiSelectorUpperDisabled
protected

◆ m_guiSelectorUpperFocus

std::unique_ptr<CGUITexture> CGUISliderControl::m_guiSelectorUpperFocus
protected

◆ m_iEnd

int CGUISliderControl::m_iEnd
protected

◆ m_iInfoCode

int CGUISliderControl::m_iInfoCode
protected

◆ m_iInterval

int CGUISliderControl::m_iInterval
protected

◆ m_intValues

std::array<int, 2> CGUISliderControl::m_intValues
protected

◆ m_iStart

int CGUISliderControl::m_iStart
protected

◆ m_iType

int CGUISliderControl::m_iType
protected

◆ m_orientation

ORIENTATION CGUISliderControl::m_orientation
protected

◆ m_percentValues

std::array<float, 2> CGUISliderControl::m_percentValues
protected

◆ m_rangeSelection

bool CGUISliderControl::m_rangeSelection
protected

◆ m_textValue

std::string CGUISliderControl::m_textValue
protected

Allows overriding of the text value to be displayed (parent must update when the slider updates)


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