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

list of controls that is scrollable More...

#include <GUIControlGroupList.h>

Inheritance diagram for CGUIControlGroupList:
CGUIControlGroup CGUIControlLookup CGUIControl

Public Member Functions

 CGUIControlGroupList (int parentID, int controlID, float posX, float posY, float width, float height, float itemGap, int pageControl, ORIENTATION orientation, bool useControlPositions, uint32_t alignment, const CScroller &scroller)
 
 ~CGUIControlGroupList (void) override
 
CGUIControlGroupListClone () const override
 
float GetWidth () const override
 
float GetHeight () const override
 
virtual float Size () const
 
void SetInvalid () override
 
void Process (unsigned int currentTime, CDirtyRegionList &dirtyregions) override
 
void Render () override
 
bool OnAction (const CAction &action) override
 
bool OnMessage (CGUIMessage &message) override
 
EVENT_RESULT SendMouseEvent (const CPoint &point, const KODI::MOUSE::CMouseEvent &event) override
 React to a mouse event.
 
void UnfocusFromPoint (const CPoint &point) override
 Unfocus the control if the given point on screen is not within it's boundary.
 
void AddControl (CGUIControl *control, int position=-1) override
 
void ClearAll () override
 
virtual std::string GetLabel (int info) const
 
bool GetCondition (int condition, int data) const override
 
float GetTotalSize () const
 
ORIENTATION GetOrientation () const
 
void SetMinSize (float minWidth, float minHeight)
 
virtual CGUIControlGetFirstFocusableControl (int id)
 
- Public Member Functions inherited from CGUIControlGroup
 CGUIControlGroup ()
 
 CGUIControlGroup (int parentID, int controlID, float posX, float posY, float width, float height)
 
 CGUIControlGroup (const CGUIControlGroup &from)
 
 ~CGUIControlGroup (void) override
 
void RenderEx () override
 
virtual bool SendControlMessage (CGUIMessage &message)
 
bool HasFocus () const override
 
void AllocResources () override
 
void FreeResources (bool immediately=false) override
 
void DynamicResourceAlloc (bool bOnOff) override
 
bool CanFocus () const override
 
void AssignDepth () override
 
void SetInitialVisibility () override
 
bool IsAnimating (ANIMATION_TYPE anim) override
 
bool HasAnimation (ANIMATION_TYPE anim) override
 
void QueueAnimation (ANIMATION_TYPE anim) override
 
void ResetAnimation (ANIMATION_TYPE anim) override
 
void ResetAnimations () override
 
int GetFocusedControlID () const
 
CGUIControlGetFocusedControl () const
 
bool InsertControl (CGUIControl *control, const CGUIControl *insertPoint)
 
virtual bool RemoveControl (const CGUIControl *control)
 
void SetDefaultControl (int id, bool always)
 
void SetRenderFocusedLast (bool renderLast)
 
void SaveStates (std::vector< CControlState > &states) override
 
bool IsGroup () const override
 
- Public Member Functions inherited from CGUIControlLookup
 CGUIControlLookup ()=default
 
 CGUIControlLookup (int parentID, int controlID, float posX, float posY, float width, float height)
 
 CGUIControlLookup (const CGUIControlLookup &from)
 
 ~CGUIControlLookup (void) override=default
 
CGUIControlGetControl (int id, std::vector< CGUIControl * > *idCollector=nullptr) override
 
- 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 ()
 
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 bool HitTest (const CPoint &point) const
 Used to test whether the point is inside a control.
 
virtual int GetID (void) const
 
virtual void SetID (int id)
 
int GetParentID () const
 
virtual bool IsDynamicallyAllocated ()
 
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 KODI::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
 
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 SetEnabled (bool bEnable)
 
virtual void SetPulseOnSelect (bool pulse)
 
virtual std::string GetDescription () const
 
virtual std::string GetDescriptionByIndex (int index) const
 
void SetAnimations (const std::vector< CAnimation > &animations)
 
const std::vector< CAnimation > & GetAnimations () const
 
CAnimationGetAnimation (ANIMATION_TYPE type, bool checkConditions=true)
 
virtual void UpdateInfo (const CGUIListItem *item=NULL)
 
virtual void SetPushUpdates (bool pushUpdates)
 
virtual bool IsContainer () const
 
void SetParentControl (CGUIControl *control)
 
CGUIControlGetParentControl (void) const
 
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

EVENT_RESULT OnMouseEvent (const CPoint &point, const KODI::MOUSE::CMouseEvent &event) override
 Perform a mouse action.
 
bool IsControlOnScreen (float pos, const CGUIControl *control) const
 
void ValidateOffset ()
 
void CalculateItemGap ()
 
float Size (const CGUIControl *control) const
 
void ScrollTo (float offset)
 
float GetAlignOffset () const
 
int GetNumItems () const
 
int GetSelectedItem () const
 
float GetControlOffset (const CGUIControl *control) const
 Returns the position of the specified child control.
 
SGUIControlAndOffset GetFocusableControlAt (float target, int direction) const
 Locate a visible and focusable child control at/close to the specified position.
 
void ScrollPages (float pages)
 Scroll the list of controls, update the selected control and the pager.
 
void MoveTo (CGUIControl *control, float offset)
 Change the selected control and scroll to the specified position.
 
CGUIControlGetFirstFocusableControl () const
 
CGUIControlGetLastFocusableControl () const
 
- Protected Member Functions inherited from CGUIControlLookup
bool IsValidControl (const CGUIControl *control) const
 Check whether a given control is valid Runs through controls and returns whether this control is valid. Only functional for controls with non-zero id.
 
std::pair< LookupMap::const_iterator, LookupMap::const_iterator > GetLookupControls (int controlId) const
 
void AddLookup (CGUIControl *control)
 
void RemoveLookup (CGUIControl *control)
 
void RemoveLookup ()
 
const LookupMapGetLookup () const
 
void ClearLookup ()
 
- 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 UpdateColors (const CGUIListItem *item)
 
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

float m_itemGap
 
int m_pageControl
 
int m_focusedPosition
 
float m_totalSize
 
CScroller m_scroller
 
int m_lastScrollerValue
 
bool m_useControlPositions
 
ORIENTATION m_orientation
 
uint32_t m_alignment
 
float m_minSize
 
- Protected Attributes inherited from CGUIControlGroup
std::vector< CGUIControl * > m_children
 
int m_defaultControl
 
bool m_defaultAlways
 
int m_focusedControl
 
bool m_renderFocusedLast
 
- Protected Attributes inherited from CGUIControl
ActionMap m_actions
 
float m_posX
 
float m_posY
 
float m_height
 
float m_width
 
CRect m_hitRect
 
KODI::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

- 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.
 
- Protected Types inherited from CGUIControlGroup
typedef std::vector< CGUIControl * >::iterator iControls
 
typedef std::vector< CGUIControl * >::const_iterator ciControls
 
typedef std::vector< CGUIControl * >::reverse_iterator rControls
 
typedef std::vector< CGUIControl * >::const_reverse_iterator crControls
 
- Protected Types inherited from CGUIControlLookup
typedef std::multimap< int, CGUIControl * > LookupMap
 
- Static Protected Attributes inherited from CGUIControl
static const unsigned int DIRTY_STATE_CONTROL = 1
 
static const unsigned int DIRTY_STATE_CHILD = 2
 

Detailed Description

list of controls that is scrollable

Constructor & Destructor Documentation

◆ CGUIControlGroupList()

CGUIControlGroupList::CGUIControlGroupList ( int parentID,
int controlID,
float posX,
float posY,
float width,
float height,
float itemGap,
int pageControl,
ORIENTATION orientation,
bool useControlPositions,
uint32_t alignment,
const CScroller & scroller )

◆ ~CGUIControlGroupList()

CGUIControlGroupList::~CGUIControlGroupList ( void )
overridedefault

Member Function Documentation

◆ AddControl()

void CGUIControlGroupList::AddControl ( CGUIControl * control,
int position = -1 )
overridevirtual

Reimplemented from CGUIControlGroup.

◆ CalculateItemGap()

void CGUIControlGroupList::CalculateItemGap ( )
protected

◆ ClearAll()

void CGUIControlGroupList::ClearAll ( )
overridevirtual

Reimplemented from CGUIControlGroup.

◆ Clone()

CGUIControlGroupList * CGUIControlGroupList::Clone ( void ) const
inlineoverridevirtual

Reimplemented from CGUIControlGroup.

◆ GetAlignOffset()

float CGUIControlGroupList::GetAlignOffset ( ) const
protected

◆ GetCondition()

bool CGUIControlGroupList::GetCondition ( int condition,
int data ) const
overridevirtual

Reimplemented from CGUIControl.

◆ GetControlOffset()

float CGUIControlGroupList::GetControlOffset ( const CGUIControl * control) const
protected

Returns the position of the specified child control.

Parameters
controlThe control to be located.
Returns
Position of the control. -1 for a control that is not visible or cannot be found.

◆ GetFirstFocusableControl() [1/2]

CGUIControl * CGUIControlGroupList::GetFirstFocusableControl ( ) const
protected

Return the first visible and focusable child control.

◆ GetFirstFocusableControl() [2/2]

CGUIControl * CGUIControlGroup::GetFirstFocusableControl ( int id)
virtual

Reimplemented from CGUIControlGroup.

◆ GetFocusableControlAt()

SGUIControlAndOffset CGUIControlGroupList::GetFocusableControlAt ( float target,
int direction ) const
protected

Locate a visible and focusable child control at/close to the specified position.

Parameters
targetIdeal position of the control
direction>0: Favor the control at or after the target for direction, otherwise the control before or at target.
Returns
Best match control & position. The control may be null and the offset 0 if there aren't any visible focusable controls in the list.

◆ GetHeight()

float CGUIControlGroupList::GetHeight ( ) const
overridevirtual

Reimplemented from CGUIControl.

◆ GetLabel()

std::string CGUIControlGroupList::GetLabel ( int info) const
virtual

◆ GetLastFocusableControl()

CGUIControl * CGUIControlGroupList::GetLastFocusableControl ( ) const
protected

Return the last visible and focusable child control.

◆ GetNumItems()

int CGUIControlGroupList::GetNumItems ( ) const
protected

◆ GetOrientation()

ORIENTATION CGUIControlGroupList::GetOrientation ( ) const
inline

◆ GetSelectedItem()

int CGUIControlGroupList::GetSelectedItem ( ) const
protected

◆ GetTotalSize()

float CGUIControlGroupList::GetTotalSize ( ) const

Calculate total size of child controls area (including gaps between controls)

◆ GetWidth()

float CGUIControlGroupList::GetWidth ( ) const
overridevirtual

Reimplemented from CGUIControl.

◆ IsControlOnScreen()

bool CGUIControlGroupList::IsControlOnScreen ( float pos,
const CGUIControl * control ) const
protected

◆ MoveTo()

void CGUIControlGroupList::MoveTo ( CGUIControl * control,
float offset )
protected

Change the selected control and scroll to the specified position.

Parameters
controlNew selected control
offsetOffset of the top of the visible view

◆ OnAction()

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

Reimplemented from CGUIControlGroup.

◆ OnMessage()

bool CGUIControlGroupList::OnMessage ( CGUIMessage & message)
overridevirtual

Reimplemented from CGUIControlGroup.

◆ OnMouseEvent()

EVENT_RESULT CGUIControlGroupList::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 CGUIControlGroupList::Process ( unsigned int currentTime,
CDirtyRegionList & dirtyregions )
overridevirtual

Reimplemented from CGUIControlGroup.

◆ Render()

void CGUIControlGroupList::Render ( )
overridevirtual

Reimplemented from CGUIControlGroup.

◆ ScrollPages()

void CGUIControlGroupList::ScrollPages ( float pages)
protected

Scroll the list of controls, update the selected control and the pager.

Parameters
pagesdirection and amount of scrolling. For example 1 to scroll down/right one page, -0.5 to scroll up/left half a page

◆ ScrollTo()

void CGUIControlGroupList::ScrollTo ( float offset)
protected

◆ SendMouseEvent()

EVENT_RESULT CGUIControlGroupList::SendMouseEvent ( const CPoint & point,
const KODI::MOUSE::CMouseEvent & event )
overridevirtual

React to a mouse event.

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

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
HitTest, CanFocusFromPoint, CMouseEvent, EVENT_RESULT

Reimplemented from CGUIControlGroup.

◆ SetInvalid()

void CGUIControlGroupList::SetInvalid ( )
overridevirtual

Reimplemented from CGUIControl.

◆ SetMinSize()

void CGUIControlGroupList::SetMinSize ( float minWidth,
float minHeight )

◆ Size() [1/2]

float CGUIControlGroupList::Size ( ) const
inlinevirtual

◆ Size() [2/2]

float CGUIControlGroupList::Size ( const CGUIControl * control) const
inlineprotected

◆ UnfocusFromPoint()

void CGUIControlGroupList::UnfocusFromPoint ( const CPoint & point)
overridevirtual

Unfocus the control if the given point on screen is not within it's boundary.

Parameters
pointthe location in transformed skin coordinates from the upper left corner of the parent control.
See also
CanFocusFromPoint

Reimplemented from CGUIControlGroup.

◆ ValidateOffset()

void CGUIControlGroupList::ValidateOffset ( )
protected

Member Data Documentation

◆ m_alignment

uint32_t CGUIControlGroupList::m_alignment
protected

◆ m_focusedPosition

int CGUIControlGroupList::m_focusedPosition
protected

◆ m_itemGap

float CGUIControlGroupList::m_itemGap
protected

◆ m_lastScrollerValue

int CGUIControlGroupList::m_lastScrollerValue
protected

◆ m_minSize

float CGUIControlGroupList::m_minSize
protected

◆ m_orientation

ORIENTATION CGUIControlGroupList::m_orientation
protected

◆ m_pageControl

int CGUIControlGroupList::m_pageControl
protected

◆ m_scroller

CScroller CGUIControlGroupList::m_scroller
protected

◆ m_totalSize

float CGUIControlGroupList::m_totalSize
protected

◆ m_useControlPositions

bool CGUIControlGroupList::m_useControlPositions
protected

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