// XTPMarkupBuilder.h: interface for the CXTPMarkupBuilder class. // // This file is a part of the XTREME TOOLKIT PRO MFC class library. // (c)1998-2012 Codejock Software, All Rights Reserved. // // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN // CONSENT OF CODEJOCK SOFTWARE. // // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A // SINGLE COMPUTER. // // CONTACT INFORMATION: // support@codejock.com // http://www.codejock.com // ///////////////////////////////////////////////////////////////////////////// //{{AFX_CODEJOCK_PRIVATE #if !defined(__XTPMARKUPBUILDER_H__) #define __XTPMARKUPBUILDER_H__ //}}AFX_CODEJOCK_PRIVATE #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 //{{AFX_CODEJOCK_PRIVATE // Internal Class class CXTPMarkupUIElement; class CXTPMarkupObject; class CXTPMarkupDependencyProperty; class CXTPMarkupContext; class CXTPMarkupParser; class CXTPMarkupClassList; class CXTPMarkupType; class CXTPMarkupBuilderException : public CSimpleException { DECLARE_DYNAMIC(CXTPMarkupBuilderException) public: CXTPMarkupBuilderException(LPCTSTR lpszError); public: virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError, PUINT pnHelpContext = NULL); protected: TCHAR m_szMessage[256]; }; class _XTP_EXT_CLASS CXTPMarkupBuilder { class CStaticExtension; class CStringBuilder; class CStaticResourceExtension; public: CXTPMarkupBuilder(CXTPMarkupContext* pContext); virtual ~CXTPMarkupBuilder(); public: CXTPMarkupObject* CreateObject(LPCWSTR lpszTag); CXTPMarkupDependencyProperty* FindProperty(LPCWSTR lpszTag, LPCWSTR lpszAttribute); CXTPMarkupDependencyProperty* FindProperty(CXTPMarkupType* pRuntimeClass, LPCWSTR lpszAttribute); CString GetLastError() const; public: CXTPMarkupUIElement* Parse(CXTPMarkupParser* pParser); void ThrowBuilderException(LPCTSTR lpszError); CXTPMarkupContext* GetMarkupContext() const; public: static BOOL AFX_CDECL ColorStringToKnownColor(LPCWSTR lpszValue, COLORREF& clr); static CXTPMarkupObject* AFX_CDECL ConvertTextDecorations(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertFontWeight(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertFontStyle(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertLength(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertVerticalAlignment(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertHorizontalAlignment(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertTextWrapping(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertTextTrimming(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertTextAlignment(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertOrientation(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertBaselineAlignment(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertCursor(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertVisibility(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertFontQuality(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertContent(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertScrollBarVisibility(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); static CXTPMarkupObject* AFX_CDECL ConvertStretch(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pObject); public: static CString AFX_CDECL FormatString(LPCTSTR lpszFormat, LPCTSTR lpszParameter); static CString AFX_CDECL FormatString(LPCTSTR lpszFormat, LPCTSTR lpszParameter1, LPCTSTR lpszParameter2); static CString AFX_CDECL FormatString(LPCTSTR lpszFormat, LPCTSTR lpszParameter1, LPCTSTR lpszParameter2, LPCTSTR lpszParameter3); CXTPMarkupObject* ConvertValue(CXTPMarkupDependencyProperty* pProperty, CXTPMarkupObject* pValue); static BOOL ConvertDouble(LPCWSTR& lpszValue, double& dValue, TCHAR cStop = 0, BOOL bCheckTail = TRUE); private: CXTPMarkupObject* ResolveMarkupExtension(LPCWSTR lpszValue); CStaticExtension* GetStaticExtension(); CStaticResourceExtension* GetStaticResourceExtension(); CXTPMarkupObject* CreateTypeKey(LPCWSTR lpszType); protected: CString m_strLastError; CXTPMarkupContext* m_pMarkupContext; CStaticExtension* m_pStaticExtension; CStaticResourceExtension* m_pStaticResourceExtension; CList m_arrObjects; friend class CStaticResourceExtension; }; AFX_INLINE void CXTPMarkupBuilder::ThrowBuilderException(LPCTSTR lpszError) { THROW(new CXTPMarkupBuilderException(lpszError)); } AFX_INLINE CString CXTPMarkupBuilder::GetLastError() const { return m_strLastError; } AFX_INLINE CXTPMarkupContext* CXTPMarkupBuilder::GetMarkupContext() const { return m_pMarkupContext; } //}}AFX_CODEJOCK_PRIVATE #endif // !defined(__XTPMARKUPBUILDER_H__)