rlm@1: #if !defined(AFX_MEMORYVIEWER_H__52C50474_5399_4D0B_A3E4_4C52C4E0EAA0__INCLUDED_) rlm@1: #define AFX_MEMORYVIEWER_H__52C50474_5399_4D0B_A3E4_4C52C4E0EAA0__INCLUDED_ rlm@1: rlm@1: #if _MSC_VER > 1000 rlm@1: #pragma once rlm@1: #endif // _MSC_VER > 1000 rlm@1: // -*- C++ -*- rlm@1: // MemoryViewer.h : header file rlm@1: // rlm@1: rlm@1: ///////////////////////////////////////////////////////////////////////////// rlm@1: // MemoryViewer window rlm@1: rlm@1: class IMemoryViewerDlg rlm@1: { rlm@1: public: rlm@1: virtual void setCurrentAddress(u32 address) = 0; rlm@1: }; rlm@1: rlm@1: class MemoryViewer : public CWnd rlm@1: { rlm@1: u32 address; rlm@1: int addressSize; rlm@1: int dataSize; rlm@1: bool hasCaret; rlm@1: int caretWidth; rlm@1: int caretHeight; rlm@1: HFONT font; rlm@1: CSize fontSize; rlm@1: u32 editAddress; rlm@1: int editNibble; rlm@1: int maxNibble; rlm@1: int displayedLines; rlm@1: int beginAscii; rlm@1: int beginHex; rlm@1: bool editAscii; rlm@1: bool decimalDisplay; rlm@1: IMemoryViewerDlg *dlg; rlm@1: rlm@1: static bool isRegistered; rlm@1: // Construction rlm@1: public: rlm@1: MemoryViewer(); rlm@1: rlm@1: // Attributes rlm@1: public: rlm@1: // Operations rlm@1: public: rlm@1: virtual void readData(u32, int, u8 *) = 0; rlm@1: virtual void editData(u32, int, int, u32) = 0; rlm@1: rlm@1: // Overrides rlm@1: // ClassWizard generated virtual function overrides rlm@1: //{{AFX_VIRTUAL(MemoryViewer) rlm@1: //}}AFX_VIRTUAL rlm@1: rlm@1: // Implementation rlm@1: public: rlm@1: int getSize(); rlm@1: u32 getCurrentAddress(); rlm@1: void setAddressSize(int s); rlm@1: void registerClass(); rlm@1: void beep(); rlm@1: bool OnEditInput(UINT c); rlm@1: void moveAddress(s32 offset, int nibbleOff); rlm@1: void setCaretPos(); rlm@1: void destroyEditCaret(); rlm@1: void createEditCaret(int w, int h); rlm@1: void updateScrollInfo(int lines); rlm@1: void setSize(int s); rlm@1: void setDecimal(bool decimalDisplayMode); rlm@1: void setAddress(u32 a); rlm@1: void setDialog(IMemoryViewerDlg *d); rlm@1: virtual ~MemoryViewer(); rlm@1: rlm@1: // Generated message map functions rlm@1: protected: rlm@1: //{{AFX_MSG(MemoryViewer) rlm@1: afx_msg BOOL OnEraseBkgnd(CDC*pDC); rlm@1: afx_msg void OnPaint(); rlm@1: afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar*pScrollBar); rlm@1: afx_msg UINT OnGetDlgCode(); rlm@1: afx_msg void OnLButtonDown(UINT nFlags, CPoint point); rlm@1: afx_msg void OnSetFocus(CWnd*pOldWnd); rlm@1: afx_msg void OnKillFocus(CWnd*pNewWnd); rlm@1: afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); rlm@1: //}}AFX_MSG rlm@1: DECLARE_MESSAGE_MAP() rlm@1: afx_msg LRESULT OnWMChar(WPARAM wParam, LPARAM lParam); rlm@1: }; rlm@1: rlm@1: ///////////////////////////////////////////////////////////////////////////// rlm@1: rlm@1: //{{AFX_INSERT_LOCATION}} rlm@1: // Microsoft Visual C++ will insert additional declarations immediately before the previous line. rlm@1: rlm@1: #endif // !defined(AFX_MEMORYVIEWER_H__52C50474_5399_4D0B_A3E4_4C52C4E0EAA0__INCLUDED_)