UIDlgBuilder.h 995 B

123456789101112131415161718192021222324252627282930313233343536373839
  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 DUILIB_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. private:
  22. CControlUI* _Parse(CMarkupNode* parent, CControlUI* pParent = NULL, CPaintManagerUI* pManager = NULL);
  23. CMarkup m_xml;
  24. IDialogBuilderCallback* m_pCallback;
  25. LPCTSTR m_pstrtype;
  26. };
  27. } // namespace DuiLib
  28. #endif // __UIDLGBUILDER_H__