You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
5.5 KiB
C
144 lines
5.5 KiB
C
2 years ago
|
// 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<CXTPMarkupObject*, CXTPMarkupObject*> 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__)
|