UIDlgBuilder.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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 SetOwnerBuilder (IDialogBuilderCallback* pCallback);
  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. };
  28. } // namespace DuiLib
  29. #endif // __UIDLGBUILDER_H__