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

#include <GUIPanelContainer.h>

Inheritance diagram for CGUIPanelContainer:
CGUIBaseContainer IGUIContainer CGUIControl

Public Member Functions

 CGUIPanelContainer (int parentID, int controlID, float posX, float posY, float width, float height, ORIENTATION orientation, const CScroller &scroller, int preloadItems)
 
 ~CGUIPanelContainer (void) override
 
CGUIPanelContainerClone () const override
 
void Process (unsigned int currentTime, CDirtyRegionList &dirtyregions) override
 
void Render () override
 
bool OnAction (const CAction &action) override
 
bool OnMessage (CGUIMessage &message) override
 
void OnLeft () override
 
void OnRight () override
 
void OnUp () override
 
void OnDown () override
 
bool GetCondition (int condition, int data) const override
 
std::string GetLabel (int info) const override
 
- Public Member Functions inherited from CGUIBaseContainer
 CGUIBaseContainer (int parentID, int controlID, float posX, float posY, float width, float height, ORIENTATION orientation, const CScroller &scroller, int preloadItems)
 
 CGUIBaseContainer (const CGUIBaseContainer &other)
 
 ~CGUIBaseContainer (void) override
 
bool OnMouseOver (const CPoint &point) override
 Called when the mouse is over the control. Default implementation selects the control.
 
bool CanFocus () const override
 
void SetFocus (bool bOnOff) override
 
void AllocResources () override
 
void FreeResources (bool immediately=false) override
 
void UpdateVisibility (const CGUIListItem *item=NULL) override
 
void AssignDepth () override
 
void SetPageControl (int id)
 
std::string GetDescription () const override
 
void SaveStates (std::vector< CControlState > &states) override
 
virtual int GetSelectedItem () const
 
void DoProcess (unsigned int currentTime, CDirtyRegionList &dirtyregions) override
 
void LoadLayout (TiXmlElement *layout)
 
void LoadListProvider (TiXmlElement *content, int defaultItem, bool defaultAlways)
 
std::shared_ptr< CGUIListItemGetListItem (int offset, unsigned int flag=0) const override
 
void SetListProvider (std::unique_ptr< IListProvider > provider)
 Set the list provider for this container (for python).
 
void SetRenderOffset (const CPoint &offset)
 Set the offset of the first item in the container from the container's position Useful for lists/panels where the focused item may be larger than the non-focused items and thus normally cut off from the clipping window defined by the container's position + size.
 
void SetClickActions (const CGUIAction &clickActions)
 
void SetFocusActions (const CGUIAction &focusActions)
 
void SetUnFocusActions (const CGUIAction &unfocusActions)
 
void SetAutoScrolling (const TiXmlNode *node)
 
void ResetAutoScrolling ()
 
void UpdateAutoScrolling (unsigned int currentTime)
 
- Public Member Functions inherited from IGUIContainer
 IGUIContainer (int parentID, int controlID, float posX, float posY, float width, float height)
 
bool IsContainer () const override
 
VIEW_TYPE GetType () const
 
const std::string & GetLabel () const
 
void SetType (VIEW_TYPE type, const std::string &label)
 
- 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 DoRender ()
 
virtual void RenderEx ()
 
bool HasProcessed () const
 Returns whether or not we have processed.
 
virtual bool OnBack ()
 
virtual bool OnInfo ()
 
virtual void OnNextControl ()
 
virtual void OnPrevControl ()
 
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 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 HasFocus () const
 
virtual void DynamicResourceAlloc (bool bOnOff)
 
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
 
virtual float GetWidth () const
 
virtual float GetHeight () 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 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 SetInitialVisibility ()
 
virtual void SetEnabled (bool bEnable)
 
virtual void SetInvalid ()
 
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
 
void SetParentControl (CGUIControl *control)
 
CGUIControlGetParentControl (void) const
 
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

bool MoveUp (bool wrapAround) override
 
bool MoveDown (bool wrapAround) override
 
virtual bool MoveLeft (bool wrapAround)
 
virtual bool MoveRight (bool wrapAround)
 
void Scroll (int amount) override
 
float AnalogScrollSpeed () const
 
void ValidateOffset () override
 
void CalculateLayout () override
 
unsigned int GetRows () const override
 
int CorrectOffset (int offset, int cursor) const override
 
bool SelectItemFromPoint (const CPoint &point) override
 
int GetCursorFromPoint (const CPoint &point, CPoint *itemPoint=NULL) const override
 
void SetCursor (int cursor) override
 Set the cursor position Should be used by all base classes rather than directly setting it, as this also marks the control as dirty (if needed)
 
void SelectItem (int item) override
 
bool HasPreviousPage () const override
 
bool HasNextPage () const override
 
void ScrollToOffset (int offset) override
 
int GetCurrentRow () const
 
int GetCurrentColumn () const
 
- Protected Member Functions inherited from CGUIBaseContainer
EVENT_RESULT OnMouseEvent (const CPoint &point, const KODI::MOUSE::CMouseEvent &event) override
 Perform a mouse action.
 
bool OnClick (int actionID)
 
virtual void ProcessItem (float posX, float posY, std::shared_ptr< CGUIListItem > &item, bool focused, unsigned int currentTime, CDirtyRegionList &dirtyregions)
 
virtual void RenderItem (float posX, float posY, CGUIListItem *item, bool focused)
 
virtual bool GetOffsetRange (int &minOffset, int &maxOffset) const
 
virtual void UpdateLayout (bool refreshAllItems=false)
 
virtual void SetPageControlRange ()
 
virtual void UpdatePageControl (int offset)
 
virtual void Reset ()
 
virtual size_t GetNumItems () const
 
virtual int GetCurrentPage () const
 
bool InsideLayout (const CGUIListItemLayout *layout, const CPoint &point) const
 
void OnFocus () override
 
void OnUnFocus () override
 
void UpdateListProvider (bool forceRefresh=false)
 
int ScrollCorrectionRange () const
 
float Size () const
 
void FreeMemory (int keepStart, int keepEnd)
 
void GetCurrentLayouts ()
 
CGUIListItemLayoutGetFocusedLayout () const
 
void SetContainerMoving (int direction)
 
void UpdateScrollOffset (unsigned int currentTime)
 
void UpdateScrollByLetter ()
 
void GetCacheOffsets (int &cacheBefore, int &cacheAfter) const
 
int GetCacheCount () const
 
bool ScrollingDown () const
 
bool ScrollingUp () const
 
void OnNextLetter ()
 
void OnPrevLetter ()
 
void OnJumpLetter (const std::string &letter, bool skip=false)
 
void OnJumpSMS (int letter)
 
int GetCursor () const
 
void SetOffset (int offset)
 Set the container offset Should be used by all base classes rather than directly setting it, as this also marks the control as dirty (if needed)
 
int GetOffset () const
 Returns the index of the first visible row returns the first row. This may be outside of the range of available items. Use GetItemOffset() to retrieve the first visible item in the list.
 
int GetItemOffset () const
 Returns the index of the first visible item returns the first visible item. This will always be in the range of available items. Use GetOffset() to retrieve the first visible row in the list.
 
- 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 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

int m_itemsPerRow
 
- Protected Attributes inherited from CGUIBaseContainer
CPoint m_renderOffset
 render offset of the first item in the list
 
float m_analogScrollCount
 
unsigned int m_lastHoldTime
 
ORIENTATION m_orientation
 
int m_itemsPerPage
 
std::vector< std::shared_ptr< CGUIListItem > > m_items
 
std::shared_ptr< CGUIListItemm_lastItem
 
int m_pageControl
 
std::list< CGUIListItemLayoutm_layouts
 
std::list< CGUIListItemLayoutm_focusedLayouts
 
CGUIListItemLayoutm_layout {nullptr}
 
CGUIListItemLayoutm_focusedLayout {nullptr}
 
bool m_layoutCondition = false
 
bool m_focusedLayoutCondition = false
 
CScroller m_scroller
 
std::unique_ptr< IListProviderm_listProvider
 
bool m_wasReset
 
std::vector< std::pair< int, std::string > > m_letterOffsets
 
INFO::InfoPtr m_autoScrollCondition
 
int m_autoScrollMoveTime
 
unsigned int m_autoScrollDelayTime
 
bool m_autoScrollIsReversed
 
unsigned int m_lastRenderTime
 
- Protected Attributes inherited from IGUIContainer
VIEW_TYPE m_type = VIEW_TYPE_NONE
 
std::string m_label
 
- 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 CGUIBaseContainer
typedef std::vector< std::shared_ptr< CGUIListItem > >::iterator iItems
 
- Static Protected Attributes inherited from CGUIControl
static const unsigned int DIRTY_STATE_CONTROL = 1
 
static const unsigned int DIRTY_STATE_CHILD = 2
 

Constructor & Destructor Documentation

◆ CGUIPanelContainer()

CGUIPanelContainer::CGUIPanelContainer ( int parentID,
int controlID,
float posX,
float posY,
float width,
float height,
ORIENTATION orientation,
const CScroller & scroller,
int preloadItems )

◆ ~CGUIPanelContainer()

CGUIPanelContainer::~CGUIPanelContainer ( void )
overridedefault

Member Function Documentation

◆ AnalogScrollSpeed()

float CGUIPanelContainer::AnalogScrollSpeed ( ) const
protected

◆ CalculateLayout()

void CGUIPanelContainer::CalculateLayout ( )
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ Clone()

CGUIPanelContainer * CGUIPanelContainer::Clone ( void ) const
inlineoverridevirtual

Implements CGUIControl.

◆ CorrectOffset()

int CGUIPanelContainer::CorrectOffset ( int offset,
int cursor ) const
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ GetCondition()

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

Reimplemented from CGUIBaseContainer.

◆ GetCurrentColumn()

int CGUIPanelContainer::GetCurrentColumn ( ) const
protected

◆ GetCurrentRow()

int CGUIPanelContainer::GetCurrentRow ( ) const
protected

◆ GetCursorFromPoint()

int CGUIPanelContainer::GetCursorFromPoint ( const CPoint & point,
CPoint * itemPoint = NULL ) const
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ GetLabel()

std::string CGUIPanelContainer::GetLabel ( int info) const
overridevirtual

Reimplemented from CGUIBaseContainer.

◆ GetRows()

unsigned int CGUIPanelContainer::GetRows ( ) const
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ HasNextPage()

bool CGUIPanelContainer::HasNextPage ( ) const
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ HasPreviousPage()

bool CGUIPanelContainer::HasPreviousPage ( ) const
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ MoveDown()

bool CGUIPanelContainer::MoveDown ( bool wrapAround)
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ MoveLeft()

bool CGUIPanelContainer::MoveLeft ( bool wrapAround)
protectedvirtual

◆ MoveRight()

bool CGUIPanelContainer::MoveRight ( bool wrapAround)
protectedvirtual

◆ MoveUp()

bool CGUIPanelContainer::MoveUp ( bool wrapAround)
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ OnAction()

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

Reimplemented from CGUIBaseContainer.

◆ OnDown()

void CGUIPanelContainer::OnDown ( )
overridevirtual

Reimplemented from CGUIBaseContainer.

◆ OnLeft()

void CGUIPanelContainer::OnLeft ( )
overridevirtual

Reimplemented from CGUIBaseContainer.

◆ OnMessage()

bool CGUIPanelContainer::OnMessage ( CGUIMessage & message)
overridevirtual

Reimplemented from CGUIBaseContainer.

◆ OnRight()

void CGUIPanelContainer::OnRight ( )
overridevirtual

Reimplemented from CGUIBaseContainer.

◆ OnUp()

void CGUIPanelContainer::OnUp ( )
overridevirtual

Reimplemented from CGUIBaseContainer.

◆ Process()

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

Reimplemented from CGUIBaseContainer.

◆ Render()

void CGUIPanelContainer::Render ( )
overridevirtual

Reimplemented from CGUIBaseContainer.

◆ Scroll()

void CGUIPanelContainer::Scroll ( int amount)
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ ScrollToOffset()

void CGUIPanelContainer::ScrollToOffset ( int offset)
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ SelectItem()

void CGUIPanelContainer::SelectItem ( int item)
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ SelectItemFromPoint()

bool CGUIPanelContainer::SelectItemFromPoint ( const CPoint & point)
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

◆ SetCursor()

void CGUIPanelContainer::SetCursor ( int cursor)
overrideprotectedvirtual

Set the cursor position Should be used by all base classes rather than directly setting it, as this also marks the control as dirty (if needed)

Reimplemented from CGUIBaseContainer.

◆ ValidateOffset()

void CGUIPanelContainer::ValidateOffset ( )
overrideprotectedvirtual

Reimplemented from CGUIBaseContainer.

Member Data Documentation

◆ m_itemsPerRow

int CGUIPanelContainer::m_itemsPerRow
protected

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