UIDlgBuilder.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef __UIDLGBUILDER_H__
  2. #define __UIDLGBUILDER_H__
  3. #pragma once
  4. namespace DuiLib {
  5. class IDialogBuilderCallback
  6. {
  7. public:
  8. virtual CControlUI* CreateControl(LPCTSTR pstrClass) = 0;
  9. };
  10. class UILIB_API CDialogBuilder
  11. {
  12. public:
  13. CDialogBuilder();
  14. CControlUI* Create(STRINGorID xml, LPCTSTR type = NULL, IDialogBuilderCallback* pCallback = NULL,
  15. CPaintManagerUI* pManager = NULL, CControlUI* pParent = NULL);
  16. CControlUI* Create(IDialogBuilderCallback* pCallback = NULL, CPaintManagerUI* pManager = NULL,
  17. CControlUI* pParent = NULL);
  18. CMarkup* GetMarkup();
  19. void GetLastErrorMessage(LPTSTR pstrMessage, SIZE_T cchMax) const;
  20. void GetLastErrorLocation(LPTSTR pstrSource, SIZE_T cchMax) const;
  21. void SetInstance(HINSTANCE instance){ m_instance = instance;};
  22. private:
  23. CControlUI* _Parse(CMarkupNode* parent, CControlUI* pParent = NULL, CPaintManagerUI* pManager = NULL);
  24. CMarkup m_xml;
  25. IDialogBuilderCallback* m_pCallback;
  26. LPCTSTR m_pstrtype;
  27. HINSTANCE m_instance;
  28. };
  29. } // namespace DuiLib
  30. #endif // __UIDLGBUILDER_H__