1 /* 2 * OpenBOR - http://www.LavaLit.com 3 * ----------------------------------------------------------------------- 4 * Licensed under the BSD license, see LICENSE in OpenBOR root for details. 5 * 6 * Copyright (c) 2004 - 2011 OpenBOR Team 7 */ 8 9 // Skin.h: interface for the CSkin class. 10 // 11 ////////////////////////////////////////////////////////////////////// 12 13 #if !defined(AFX_Skin_H__05039157_ACED_4430_B306_D88792C7A755__INCLUDED_) 14 #define AFX_Skin_H__05039157_ACED_4430_B306_D88792C7A755__INCLUDED_ 15 16 #if _MSC_VER > 1000 17 #pragma once 18 #endif // _MSC_VER > 1000 19 20 #include <xtl.h> 21 #include "XmlDocument.h" 22 23 #include <map> 24 #include <string> 25 using namespace std; 26 27 #define COORDINATE_X_BASE 0 28 #define COORDINATE_Y_BASE 100 29 #define DIMENSION_W_BASE 200 30 #define DIMENSION_H_BASE 300 31 32 typedef map<int,float>COORDINATE_MAP; 33 34 class CMode 35 { 36 public: 37 38 CMode(); 39 virtual ~CMode(); 40 41 HRESULT Create(CXmlDocument* pSkin, XmlNode xnMode); 42 string ToString(); 43 44 COORDINATE_MAP m_coordinates; 45 INT m_iWidth; 46 INT m_iHeight; 47 BOOL m_bWidescreen; 48 49 private: 50 51 VOID AddControl(CXmlDocument* pSkin, XmlNode modeNode); 52 VOID SetControlPosition(INT iControlId, FLOAT x, FLOAT y); 53 VOID SetControlDimensions(INT iControlId, FLOAT width, FLOAT height); 54 55 private: 56 57 INT m_lastid; 58 string m_name; 59 }; 60 61 typedef map<string,CMode*>MODE_MAP; 62 63 class CSkin : public CXmlDocument 64 { 65 public: 66 67 CSkin(); 68 virtual ~CSkin(); 69 70 HRESULT Create(CHAR* szXmlFile); 71 CMode* GetMode(INT iWidth, INT iHeight, BOOL bWidescreen); 72 CMode* GetDefaultMode(); 73 74 private: 75 76 MODE_MAP m_modes; 77 CMode* m_pDefaultMode; 78 }; 79 80 #endif // !defined(AFX_Skin_H__05039157_ACED_4430_B306_D88792C7A755__INCLUDED_) 81