80 lines
3.3 KiB
C++
80 lines
3.3 KiB
C++
#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_
|