aboutsummaryrefslogtreecommitdiff
path: root/guilib/GUIControlFactory.h
diff options
context:
space:
mode:
authorAlTheKiller <AlTheKiller@svn>2009-09-23 01:49:50 +0000
committerAlTheKiller <AlTheKiller@svn>2009-09-23 01:49:50 +0000
commit45285e8a9300cd754a760560640b75b09f98035e (patch)
treead9f093885ad5c98e9dd4156674e7691c22ed0a2 /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.h77
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