diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 18:07:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 18:07:22 +0000 |
commit | c04dcc2e7d834218ef2d4194331e383402495ae1 (patch) | |
tree | 7333e38d10d75386e60f336b80c2443c1166031d /xbmc/guilib/GUIListItemLayout.h | |
parent | Initial commit. (diff) | |
download | kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip |
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'xbmc/guilib/GUIListItemLayout.h')
-rw-r--r-- | xbmc/guilib/GUIListItemLayout.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/xbmc/guilib/GUIListItemLayout.h b/xbmc/guilib/GUIListItemLayout.h new file mode 100644 index 0000000..69d4c4f --- /dev/null +++ b/xbmc/guilib/GUIListItemLayout.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2005-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#pragma once + +#include "GUIListGroup.h" +#include "GUITexture.h" +#include "guilib/guiinfo/GUIInfoLabel.h" +#include "threads/SystemClock.h" + +class CGUIListItem; +class CFileItem; +class CLabelInfo; + +class CGUIListItemLayout final +{ +public: + CGUIListItemLayout(); + explicit CGUIListItemLayout(const CGUIListItemLayout& from); + explicit CGUIListItemLayout(const CGUIListItemLayout& from, CGUIControl* control); + void LoadLayout(TiXmlElement *layout, int context, bool focused, float maxWidth, float maxHeight); + void Process(CGUIListItem *item, int parentID, unsigned int currentTime, CDirtyRegionList &dirtyregions); + void Render(CGUIListItem *item, int parentID); + float Size(ORIENTATION orientation) const; + unsigned int GetFocusedItem() const; + void SetFocusedItem(unsigned int focus); + bool IsAnimating(ANIMATION_TYPE animType); + void ResetAnimation(ANIMATION_TYPE animType); + void SetInvalid() { m_invalidated = true; } + void FreeResources(bool immediately = false); + void SetParentControl(CGUIControl* control) { m_group.SetParentControl(control); } + + //#ifdef GUILIB_PYTHON_COMPATIBILITY + void CreateListControlLayouts(float width, float height, bool focused, const CLabelInfo &labelInfo, const CLabelInfo &labelInfo2, const CTextureInfo &texture, const CTextureInfo &textureFocus, float texHeight, float iconWidth, float iconHeight, const std::string &nofocusCondition, const std::string &focusCondition); +//#endif + + void SetWidth(float width); + void SetHeight(float height); + void SelectItemFromPoint(const CPoint &point); + bool MoveLeft(); + bool MoveRight(); + +#ifdef _DEBUG + void DumpTextureUse(); +#endif + bool CheckCondition(); +protected: + void LoadControl(TiXmlElement *child, CGUIControlGroup *group); + + CGUIListGroup m_group; + + float m_width{0}; + float m_height{0}; + bool m_focused{false}; + bool m_invalidated{true}; + + INFO::InfoPtr m_condition; + KODI::GUILIB::GUIINFO::CGUIInfoBool m_isPlaying; + std::chrono::milliseconds m_infoUpdateMillis = + XbmcThreads::EndTime<decltype(m_infoUpdateMillis)>::Max(); + XbmcThreads::EndTime<> m_infoUpdateTimeout; +}; + |