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.
197 lines
6.5 KiB
C++
197 lines
6.5 KiB
C++
// XTPMarkupResourceDictionary.h: interface for the CXTPMarkupResourceDictionary 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(__XTPMARKUPRESOURCEDICTIONARY_H__)
|
|
#define __XTPMARKUPRESOURCEDICTIONARY_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
|
|
class _XTP_EXT_CLASS CXTPMarkupResourceDictionary : public CXTPMarkupObject
|
|
{
|
|
DECLARE_MARKUPCLASS(CXTPMarkupResourceDictionary);
|
|
public:
|
|
CXTPMarkupResourceDictionary();
|
|
~CXTPMarkupResourceDictionary();
|
|
|
|
public:
|
|
void Add(CXTPMarkupObject* pKey, CXTPMarkupObject* pValue);
|
|
CXTPMarkupObject* Lookup(const CXTPMarkupObject* pKey) const;
|
|
|
|
static CXTPMarkupObject* AFX_CDECL FindResource(const CXTPMarkupObject* pElement, const CXTPMarkupObject* pKey);
|
|
|
|
protected:
|
|
void SetContentObject(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pContent);
|
|
CXTPMarkupObject* GetObjectKey(CXTPMarkupObject* pContent) const;
|
|
|
|
protected:
|
|
CMap<CXTPMarkupObjectPtr, CXTPMarkupObjectPtr, CXTPMarkupObjectPtr, CXTPMarkupObjectPtr> m_mapDictionary;
|
|
};
|
|
|
|
class _XTP_EXT_CLASS CXTPMarkupSetter : public CXTPMarkupObject
|
|
{
|
|
DECLARE_MARKUPCLASS(CXTPMarkupSetter);
|
|
public:
|
|
CXTPMarkupSetter();
|
|
CXTPMarkupSetter(CXTPMarkupDependencyProperty* pProperty, CXTPMarkupObject* pValue);
|
|
public:
|
|
CXTPMarkupDependencyProperty* GetSetterProperty() const;
|
|
CXTPMarkupObject* GetSetterValue() const;
|
|
|
|
public:
|
|
static CXTPMarkupDependencyProperty* m_pPropertyProperty;
|
|
static CXTPMarkupDependencyProperty* m_pValueProperty;
|
|
};
|
|
|
|
|
|
class _XTP_EXT_CLASS CXTPMarkupSetterColection : public CXTPMarkupCollection
|
|
{
|
|
DECLARE_MARKUPCLASS(CXTPMarkupSetterColection);
|
|
|
|
public:
|
|
CXTPMarkupSetterColection();
|
|
|
|
public:
|
|
CXTPMarkupSetter* GetItem(int nIndex) const;
|
|
};
|
|
|
|
class _XTP_EXT_CLASS CXTPMarkupTrigger : public CXTPMarkupObject
|
|
{
|
|
DECLARE_MARKUPCLASS(CXTPMarkupTrigger);
|
|
public:
|
|
CXTPMarkupTrigger();
|
|
CXTPMarkupTrigger(CXTPMarkupDependencyProperty* pProperty, CXTPMarkupObject* pValue);
|
|
|
|
public:
|
|
CXTPMarkupSetterColection* GetSetters() const;
|
|
void SetSetters(CXTPMarkupSetterColection* pSetters);
|
|
|
|
public:
|
|
CXTPMarkupDependencyProperty* GetTriggerProperty() const;
|
|
CXTPMarkupObject* GetTriggerValue() const;
|
|
|
|
|
|
public:
|
|
static CXTPMarkupDependencyProperty* m_pSettersProperty;
|
|
static CXTPMarkupDependencyProperty* m_pPropertyProperty;
|
|
static CXTPMarkupDependencyProperty* m_pValueProperty;
|
|
};
|
|
|
|
class _XTP_EXT_CLASS CXTPMarkupTriggerCollection : public CXTPMarkupCollection
|
|
{
|
|
DECLARE_MARKUPCLASS(CXTPMarkupTriggerCollection);
|
|
public:
|
|
CXTPMarkupTriggerCollection();
|
|
|
|
public:
|
|
CXTPMarkupTrigger* GetItem(int nIndex) const;
|
|
|
|
public:
|
|
};
|
|
|
|
|
|
class _XTP_EXT_CLASS CXTPMarkupStyle : public CXTPMarkupObject
|
|
{
|
|
DECLARE_MARKUPCLASS(CXTPMarkupStyle);
|
|
|
|
public:
|
|
CXTPMarkupStyle();
|
|
~CXTPMarkupStyle();
|
|
|
|
public:
|
|
void Seal();
|
|
|
|
CXTPMarkupSetterColection* GetSetters() const;
|
|
CXTPMarkupTriggerCollection* GetTriggers() const;
|
|
void SetTriggers(CXTPMarkupTriggerCollection* pTriggers);
|
|
|
|
CXTPMarkupStyle* GetBasedStyle() const;
|
|
void SetBasedStyle(CXTPMarkupStyle* pStyle);
|
|
|
|
CXTPMarkupObject* GetStyleValue(CXTPMarkupDependencyProperty* pProperty) const;
|
|
|
|
CXTPMarkupObject* FindResource(const CXTPMarkupObject* pKey) const;
|
|
|
|
protected:
|
|
void SetContentObject(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pContent);
|
|
void ResolveSetterProperty(CXTPMarkupBuilder* pBuilder, CXTPMarkupObject* pSetter);
|
|
void ResolveTriggerProperty(CXTPMarkupBuilder* pBuilder, CXTPMarkupTrigger* pTrigger);
|
|
void SetPropertyObject(CXTPMarkupBuilder* pBuilder, CXTPMarkupDependencyProperty* pProperty, CXTPMarkupObject* pValue);
|
|
|
|
protected:
|
|
CXTPMarkupSetterColection* m_pSetters;
|
|
BOOL m_bSealed;
|
|
CXTPMarkupProperties* m_pProperties;
|
|
|
|
public:
|
|
static CXTPMarkupDependencyProperty* m_pTargetTypeProperty;
|
|
static CXTPMarkupDependencyProperty* m_pBasedOnProperty;
|
|
static CXTPMarkupDependencyProperty* m_pResourcesProperty;
|
|
static CXTPMarkupDependencyProperty* m_pTriggersProperty;
|
|
};
|
|
|
|
AFX_INLINE CXTPMarkupStyle* CXTPMarkupStyle::GetBasedStyle() const {
|
|
return MARKUP_STATICCAST(CXTPMarkupStyle, GetValue(m_pBasedOnProperty));
|
|
}
|
|
AFX_INLINE void CXTPMarkupStyle::SetBasedStyle(CXTPMarkupStyle* pStyle) {
|
|
SetValue(m_pBasedOnProperty, pStyle);
|
|
}
|
|
AFX_INLINE CXTPMarkupSetterColection* CXTPMarkupStyle::GetSetters() const {
|
|
return m_pSetters;
|
|
}
|
|
AFX_INLINE CXTPMarkupSetter* CXTPMarkupSetterColection::GetItem(int nIndex) const {
|
|
return nIndex >= 0 && nIndex < m_arrItems.GetSize() ? (CXTPMarkupSetter*)m_arrItems[nIndex] : NULL;
|
|
}
|
|
AFX_INLINE CXTPMarkupDependencyProperty* CXTPMarkupSetter::GetSetterProperty() const {
|
|
return MARKUP_STATICCAST(CXTPMarkupDependencyProperty, GetValue(m_pPropertyProperty));
|
|
}
|
|
AFX_INLINE CXTPMarkupObject* CXTPMarkupSetter::GetSetterValue() const {
|
|
return CXTPMarkupObject::GetValue(m_pValueProperty);
|
|
}
|
|
AFX_INLINE CXTPMarkupTriggerCollection* CXTPMarkupStyle::GetTriggers() const {
|
|
return MARKUP_STATICCAST(CXTPMarkupTriggerCollection, GetValue(m_pTriggersProperty));
|
|
}
|
|
AFX_INLINE void CXTPMarkupStyle::SetTriggers(CXTPMarkupTriggerCollection* pTriggers) {
|
|
SetValue(m_pTriggersProperty, pTriggers);
|
|
}
|
|
|
|
AFX_INLINE CXTPMarkupTrigger* CXTPMarkupTriggerCollection::GetItem(int nIndex) const {
|
|
return nIndex >= 0 && nIndex < GetCount() ? (CXTPMarkupTrigger*)m_arrItems[nIndex] : NULL;
|
|
}
|
|
AFX_INLINE CXTPMarkupSetterColection* CXTPMarkupTrigger::GetSetters() const {
|
|
return MARKUP_STATICCAST(CXTPMarkupSetterColection, GetValue(m_pSettersProperty));
|
|
}
|
|
AFX_INLINE void CXTPMarkupTrigger::SetSetters(CXTPMarkupSetterColection* pSetters) {
|
|
SetValue(m_pSettersProperty, pSetters);
|
|
}
|
|
|
|
AFX_INLINE CXTPMarkupDependencyProperty* CXTPMarkupTrigger::GetTriggerProperty() const {
|
|
return MARKUP_STATICCAST(CXTPMarkupDependencyProperty, GetValue(m_pPropertyProperty));
|
|
}
|
|
AFX_INLINE CXTPMarkupObject* CXTPMarkupTrigger::GetTriggerValue() const {
|
|
return CXTPMarkupObject::GetValue(m_pValueProperty);
|
|
}
|
|
|
|
#endif // !defined(__XTPMARKUPRESOURCEDICTIONARY_H__)
|