Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// XMLDialog.h: interface for the CXMLDialog class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_XMLDIALOG_H__ADBD45EB_57FA_11D2_A37A_00C04FA31BFB__INCLUDED_)
#define AFX_XMLDIALOG_H__ADBD45EB_57FA_11D2_A37A_00C04FA31BFB__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "XMLBase.h"
#include <winuser.h>
#include "XMLDlgItem.h"
/////////////////////////////////////////////////////////////////////////////
// Defines
const DWORD TYPEID_BUTTON = 0x80; const DWORD TYPEID_EDIT = 0x81; const DWORD TYPEID_STATIC = 0x82; const DWORD TYPEID_LISTBOX = 0x83; const DWORD TYPEID_SCROLLBAR = 0x84; const DWORD TYPEID_COMBOBOX = 0x85;
/////////////////////////////////////////////////////////////////////////////
// Forward Declarations
/////////////////////////////////////////////////////////////////////////////
// Typedefs
typedef DLGTEMPLATEEX* LPDLGTEMPLATEEX;
class LTAPIENTRY CXMLDialog : public CXMLBase { public: CXMLDialog(); ~CXMLDialog();
enum { DWORD_SIZE = 4, DWORD_ALIGN = DWORD_SIZE - 1 };
BOOL Init(IXMLDOMNodePtr pDialogNode); BOOL Init(BYTE *pbyDlg, CLocItemPtrArray * prgLocItem); BOOL Init(CMemFile *pmfDlg, CLocItemPtrArray * prgLocItem); void Reset(); void SetFocus();
BOOL Update(IXMLDOMNodePtr pDialogNode);
BOOL HighlightItems(IXMLDOMNodePtr &pDialogItem); BOOL AddHighlightRect(IXMLDOMNodePtr &pDialogItem); void AddHighlightRect(RECT& rectToHighlight); void DisplayDialog(HWND hWndParent = NULL, BOOL fHandleCancel = TRUE); void CloseDialog(); BOOL IsDialogDisplayed() { return ::IsWindow(m_hWndDlg); } LPDLGTEMPLATEEX GetDialogTemplate() { return m_pDlgTemplate; }
DWORD GetSizeOfStruct() { return m_nSizeOfStruct; } WORD GetDialogVersion() { return m_DlgVer; } WORD GetSignature() { return m_Signature; } DWORD GetSubDialogMask() { return m_SubDlgMask; } DWORD GetHelpID() { return m_HelpID; } DWORD GetExStyle() { return m_ExStyle; } void SetExStyle(DWORD dwExStyle) { m_ExStyle = dwExStyle; } DWORD GetStyle() { return m_Style; } void SetStyle(DWORD dwStyle) { m_Style = dwStyle; } WORD GetItemCount() { return m_CountDlgItems; } short GetXPos() { return m_xPos; } void SetXPos(short xPos) { m_xPos = xPos; } short GetYPos() { return m_yPos; } void SetYPos(short yPos) { m_yPos = yPos; } short GetXSize() { return m_xSize; } void SetXSize(short xSize) { m_xSize = xSize; } short GetYSize() { return m_ySize; } void SetYSize(short ySize) { m_ySize = ySize; } const CLocId & GetMenu() { return m_Menu; } const CLocId & GetWindowClass() { return m_WindowClass; } CLString GetTitle() { return m_Title; } void SetTitle(const CLString strNewTitle) { m_Title = strNewTitle; } short GetFontPointSize() { return m_FontPointSize; } void SetFontPointSize(short nSize) { m_FontPointSize = nSize; } short GetFontWeight() { return m_FontWeight; } void SetFontWeight(short nWeight) { m_FontWeight = nWeight; } short GetIsFontItalic() { return m_bItalic; } void SetIsFontItalic(short bItalic) { m_bItalic = bItalic; } CLString GetFontName() { return m_FontName; } void SetFontName(const CLString &strName) { m_FontName = strName; } CXMLDlgItemList& GetItemList() { return m_ItemList; }
// JDG - Made this function public
BOOL CreateDlgTemplate(BOOL fUseOrigItemIDs);
protected: BOOL ReadRes32(CDlgResFile *pDlgResFile, CLocItemPtrArray * prgLocItem); BOOL ReadRes32(BYTE *pbBuffer, CLocItemPtrArray * prgLocItem); VOID GetResIDName(CLocItemPtrArray *prgLocItem, int nLocIndex, CXMLDlgItem* pItem);
DWORD GetSize(); BOOL GetRect(IXMLDOMNodePtr &pDialogNode); BOOL SetRect(IXMLDOMNodePtr &pDialogNode); DWORD GetAttribute(IXMLDOMNodePtr &pDomNode); void SetAttribute(DWORD dwAttr, IXMLDOMNodePtr &pDomNode); BOOL GetControls(IXMLDOMNodePtr &pDialogNode); BOOL SetControls(IXMLDOMNodePtr &pDialogNode); void AddControl(IXMLDOMNodePtr &pControlNode); BOOL OnInitDialog(HWND hWndDlg); void CleanRectArray();
static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
LPDLGTEMPLATEEX m_pDlgTemplate; HWND m_hWndDlg;
BOOL m_fHandleCancel; // Members
DWORD m_nSizeOfStruct;
DWORD m_SubDlgMask; WORD m_DlgVer; WORD m_Signature; DWORD m_HelpID; DWORD m_ExStyle; DWORD m_Style; WORD m_CountDlgItems; short m_xPos; short m_yPos; short m_xSize; short m_ySize; CLocId m_Menu; // name or ordinal of a menu resource
CLocId m_WindowClass; // name or ordinal of a window class
CLString m_Title; // title string of the dialog box
short m_FontPointSize;// only if DS_SETFONT flag is set
short m_FontWeight; // only if DS_SETFONT flag is set
short m_bItalic; // only if DS_SETFONT flag is set
CLString m_FontName; // typeface name, if DS_SETFONT is set
CXMLDlgItemList m_ItemList; // List of Dialog Items.
DWORD m_dwBaseUnitX; DWORD m_dwBaseUnitY; BOOL m_fHighlightItem;
CPtrArray m_hltRectArray;
static CMap<HWND, HWND&, CXMLDialog*, CXMLDialog*&> sm_XMLDialogMap;
private: };
#endif // !defined(AFX_XMLDIALOG_H__ADBD45EB_57FA_11D2_A37A_00C04FA31BFB__INCLUDED_)
|