diff options
author | AlTheKiller <AlTheKiller@svn> | 2009-09-23 01:49:50 +0000 |
---|---|---|
committer | AlTheKiller <AlTheKiller@svn> | 2009-09-23 01:49:50 +0000 |
commit | 45285e8a9300cd754a760560640b75b09f98035e (patch) | |
tree | ad9f093885ad5c98e9dd4156674e7691c22ed0a2 /guilib/GUIControlFactory.h |
step 3/4: Move linuxport to trunk. How'd I get roped into this?
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@23097 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
Diffstat (limited to 'guilib/GUIControlFactory.h')
-rw-r--r-- | guilib/GUIControlFactory.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/guilib/GUIControlFactory.h b/guilib/GUIControlFactory.h new file mode 100644 index 0000000000..76db5d3f2f --- /dev/null +++ b/guilib/GUIControlFactory.h @@ -0,0 +1,77 @@ +/*! +\file GuiControlFactory.h +\brief +*/ + +#ifndef GUI_CONTROL_FACTORY_H +#define GIU_CONTROL_FACTORY_H + +#pragma once + +/* + * Copyright (C) 2005-2008 Team XBMC + * http://www.xbmc.org + * + * This Program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This Program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with XBMC; see the file COPYING. If not, write to + * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * http://www.gnu.org/copyleft/gpl.html + * + */ + +#include "GUIControl.h" + +class CTextureInfo; // forward +class CAspectRatio; +class CGUIInfoLabel; +class TiXmlNode; + +/*! + \ingroup controls + \brief + */ +class CGUIControlFactory +{ +public: + CGUIControlFactory(void); + virtual ~CGUIControlFactory(void); + static CStdString GetType(const TiXmlElement *pControlNode); + CGUIControl* Create(int parentID, const FRECT &rect, TiXmlElement* pControlNode, bool insideContainer = false); + void ScaleElement(TiXmlElement *element, RESOLUTION fileRes, RESOLUTION destRes); + static bool GetFloat(const TiXmlNode* pRootNode, const char* strTag, float& value); + static bool GetDWORD(const TiXmlNode* pRootNode, const char* strTag, DWORD& value); + static bool GetAspectRatio(const TiXmlNode* pRootNode, const char* strTag, CAspectRatio &aspectRatio); + static bool GetInfoTexture(const TiXmlNode* pRootNode, const char* strTag, CTextureInfo &image, CGUIInfoLabel &info); + static bool GetTexture(const TiXmlNode* pRootNode, const char* strTag, CTextureInfo &image); + static bool GetAlignment(const TiXmlNode* pRootNode, const char* strTag, uint32_t& dwAlignment); + static bool GetAlignmentY(const TiXmlNode* pRootNode, const char* strTag, uint32_t& dwAlignment); + static bool GetAnimations(const TiXmlNode *control, const FRECT &rect, std::vector<CAnimation> &animation); + static void GetInfoLabel(const TiXmlNode *pControlNode, const CStdString &labelTag, CGUIInfoLabel &infoLabel); + static void GetInfoLabels(const TiXmlNode *pControlNode, const CStdString &labelTag, std::vector<CGUIInfoLabel> &infoLabels); + static bool GetColor(const TiXmlNode* pRootNode, const char* strTag, color_t &value); + static bool GetInfoColor(const TiXmlNode* pRootNode, const char* strTag, CGUIInfoColor &value); + static CStdString FilterLabel(const CStdString &label); + static bool GetConditionalVisibility(const TiXmlNode* control, int &condition); + static bool GetMultipleString(const TiXmlNode* pRootNode, const char* strTag, std::vector<CGUIActionDescriptor>& vecStringValue); + static void GetRectFromString(const CStdString &string, FRECT &rect); + static bool GetAction(const TiXmlElement* pElement, CGUIActionDescriptor &action); +private: + bool GetNavigation(const TiXmlElement *node, const char *tag, int &direction, std::vector<CGUIActionDescriptor> &actions); + bool GetCondition(const TiXmlNode *control, const char *tag, int &condition); + static bool GetConditionalVisibility(const TiXmlNode* control, int &condition, CGUIInfoBool &allowHiddenFocus); + bool GetString(const TiXmlNode* pRootNode, const char* strTag, CStdString& strString); + bool GetFloatRange(const TiXmlNode* pRootNode, const char* strTag, float& iMinValue, float& iMaxValue, float& iIntervalValue); + bool GetIntRange(const TiXmlNode* pRootNode, const char* strTag, int& iMinValue, int& iMaxValue, int& iIntervalValue); + bool GetHitRect(const TiXmlNode* pRootNode, CRect &rect); +}; +#endif |