| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #include "StdAfx.h"
- #include "ControlFactory.h"
- namespace DuiLib
- {
- CControlFactory::CControlFactory()
- {
- INNER_REGISTER_DUICONTROL(CControlUI);
- INNER_REGISTER_DUICONTROL(CContainerUI);
- INNER_REGISTER_DUICONTROL(CButtonUI);
- INNER_REGISTER_DUICONTROL(CComboUI);
- INNER_REGISTER_DUICONTROL(CComboBoxUI);
- INNER_REGISTER_DUICONTROL(CDateTimeUI);
- INNER_REGISTER_DUICONTROL(CEditUI);
- INNER_REGISTER_DUICONTROL(CActiveXUI);
- INNER_REGISTER_DUICONTROL(CFlashUI);
- INNER_REGISTER_DUICONTROL(CGifAnimUI);
- #ifdef USE_XIMAGE_EFFECT
- INNER_REGISTER_DUICONTROL(CGifAnimExUI);
- #endif
- INNER_REGISTER_DUICONTROL(CGroupBoxUI);
- INNER_REGISTER_DUICONTROL(CIPAddressUI);
- INNER_REGISTER_DUICONTROL(CIPAddressExUI);
- INNER_REGISTER_DUICONTROL(CLabelUI);
- INNER_REGISTER_DUICONTROL(CListUI);
- INNER_REGISTER_DUICONTROL(CListHeaderUI);
- INNER_REGISTER_DUICONTROL(CListHeaderItemUI);
- INNER_REGISTER_DUICONTROL(CListLabelElementUI);
- INNER_REGISTER_DUICONTROL(CListTextElementUI);
- INNER_REGISTER_DUICONTROL(CListContainerElementUI);
- INNER_REGISTER_DUICONTROL(CMenuUI);
- INNER_REGISTER_DUICONTROL(CMenuElementUI);
- INNER_REGISTER_DUICONTROL(COptionUI);
- INNER_REGISTER_DUICONTROL(CCheckBoxUI);
- INNER_REGISTER_DUICONTROL(CProgressUI);
- INNER_REGISTER_DUICONTROL(CRichEditUI);
- INNER_REGISTER_DUICONTROL(CScrollBarUI);
- INNER_REGISTER_DUICONTROL(CSliderUI);
- INNER_REGISTER_DUICONTROL(CTextUI);
- INNER_REGISTER_DUICONTROL(CTreeNodeUI);
- INNER_REGISTER_DUICONTROL(CTreeViewUI);
- INNER_REGISTER_DUICONTROL(CWebBrowserUI);
- INNER_REGISTER_DUICONTROL(CAnimationTabLayoutUI);
- INNER_REGISTER_DUICONTROL(CChildLayoutUI);
- INNER_REGISTER_DUICONTROL(CHorizontalLayoutUI);
- INNER_REGISTER_DUICONTROL(CTabLayoutUI);
- INNER_REGISTER_DUICONTROL(CTileLayoutUI);
- INNER_REGISTER_DUICONTROL(CVerticalLayoutUI);
- INNER_REGISTER_DUICONTROL(CRollTextUI);
- INNER_REGISTER_DUICONTROL(CColorPaletteUI);
- INNER_REGISTER_DUICONTROL(CListExUI);
- INNER_REGISTER_DUICONTROL(CListContainerHeaderItemUI);
- INNER_REGISTER_DUICONTROL(CListTextExtElementUI);
- INNER_REGISTER_DUICONTROL(CHotKeyUI);
- INNER_REGISTER_DUICONTROL(CFadeButtonUI);
- INNER_REGISTER_DUICONTROL(CRingUI);
- INNER_REGISTER_DUICONTROL(CLoadingUI);
- INNER_REGISTER_DUICONTROL(CPageControlUI);
- INNER_REGISTER_DUICONTROL_EX(DUI_CTR_BOX, CContainerUI);
- INNER_REGISTER_DUICONTROL_EX(DUI_CTR_HBOX, CHorizontalLayoutUI);
- INNER_REGISTER_DUICONTROL_EX(DUI_CTR_VBOX, CVerticalLayoutUI);
- INNER_REGISTER_DUICONTROL_EX(DUI_CTR_TAB_BOX, CTabLayoutUI);
- INNER_REGISTER_DUICONTROL_EX(DUI_CTR_TILE_BOX, CTileLayoutUI);
- INNER_REGISTER_DUICONTROL_EX(DUI_CTR_CHILD_BOX, CChildLayoutUI);
- }
- CControlFactory::~CControlFactory()
- {
- }
- CControlUI* CControlFactory::CreateControl(CDuiString strClassName)
- {
- strClassName.MakeLower();
- MAP_DUI_CTRATECLASS::iterator iter = m_mapControl.find(strClassName);
- if ( iter == m_mapControl.end()) {
- return NULL;
- }
- else {
- return (CControlUI*) (iter->second());
- }
- }
- void CControlFactory::RegistControl(CDuiString strClassName, CreateClass pFunc)
- {
- strClassName.MakeLower();
- m_mapControl.insert(MAP_DUI_CTRATECLASS::value_type(strClassName, pFunc));
- }
- CControlFactory* CControlFactory::GetInstance()
- {
- static CControlFactory* pInstance = new CControlFactory;
- return pInstance;
- }
- void CControlFactory::Release()
- {
- delete this;
- }
- }
|