#ifndef _CXMLOADER_HPP_ #define _CXMLOADER_HPP_ /*** TinyXML Header File ***/ #include "tinyxml2.h" /*** DLL Header File ***/ #include "dllExport.h" /*** Custom Header Files ***/ #include "GUIUtility.hpp" #include "../cWindow.hpp" #include "../cPanel.hpp" #include "../cLayout.hpp" #include "../cLabel.hpp" #include "../cSizer.hpp" #include "../cButton.hpp" #include "../../UtilityEngine/cString.hpp" using UtilityEngine::cString; namespace GUIHelpers { class EXPORT_FROM_MYDLL cXMLoader { public: cXMLoader(); ~cXMLoader(); const bool Load( const cString& filename, const cString& dir = "", GUIEngine::cWindow* parent = nullptr ); private: void GetElement( tinyxml2::XMLElement& element, GUIEngine::cWindow* parent = nullptr ) const; const cString GetAttribute( const tinyxml2::XMLElement& element, const cString& attribute ) const; void Include( const tinyxml2::XMLElement& element, GUIEngine::cWindow* parent ) const; void GUISetup( const tinyxml2::XMLElement& element ) const; void Default( const tinyxml2::XMLElement& element ); void Debug( const tinyxml2::XMLElement& element ); GUIEngine::cPanel* PanelBuild( const tinyxml2::XMLElement& element, GUIEngine::cWindow* parent ) const; GUIEngine::cLayout* LayoutBuild( const tinyxml2::XMLElement& element, GUIEngine::cWindow* parent ) const; GUIEngine::cLabel* LabelBuild( const tinyxml2::XMLElement& element, GUIEngine::cWindow* parent ) const; GUIEngine::cSizer* SizerBuild( const tinyxml2::XMLElement& element, GUIEngine::cWindow* parent ) const; GUIEngine::cButton* ButtonBuild( const tinyxml2::XMLElement& element, GUIEngine::cWindow* parent ) const; const cString getDir( const tinyxml2::XMLElement& element ) const; const cString getFileName( const tinyxml2::XMLElement& element ) const; const unsigned long int getDebug( const tinyxml2::XMLElement& element ) const; const bool cXMLoader::getDebugXML(const tinyxml2::XMLElement& element) const; const signed long int getID( const tinyxml2::XMLElement& element ) const; const GUIHelpers::eOrientation getOrientation( const tinyxml2::XMLElement& element ) const; const GUIHelpers::eAlign getAlign( const tinyxml2::XMLElement& element ) const; const GUIHelpers::eLayout getLayout( const tinyxml2::XMLElement& element ) const; const GUIHelpers::Position getPosition( const tinyxml2::XMLElement& element ) const; const GUIHelpers::Size getSize( const tinyxml2::XMLElement& element ) const; const GUIHelpers::Padding getPadding( const tinyxml2::XMLElement& element ) const; const cString getText( const tinyxml2::XMLElement& element ) const; const GUIHelpers::RGBA getColour( const tinyxml2::XMLElement& element ) const; const signed long int getFontSize( const tinyxml2::XMLElement& element ) const; void LoadDefault() const; private: /// Variables bool m_loadDef;/// = false; bool m_debugXML;/// = false; GUIHelpers::eOrientation m_orientation;/// = GUIHelpers::eOrientation::DEFAULT_ORIENTATION; GUIHelpers::eAlign m_align;/// = GUIHelpers::eAlign::DEFAULT_ALIGN; GUIHelpers::eLayout m_layout;/// = GUIHelpers::eLayout::DEFAULT_LAYOUT; GUIHelpers::Position m_pos;/// = { -1, -1 }; GUIHelpers::Size m_size;/// = { -1, -1 }; GUIHelpers::Padding m_pad;/// = { -1, -1, -1, -1 }; };/// END CLASS DEFINITION cXMLoader }/// END NAMESPACE DEFINITION GUIHelpers #endif/// END IFNDEF _CXMLOADER_HPP_