#ifndef _M68HC11_CODEVIEW_HPP_ #define _M68HC11_CODEVIEW_HPP_ #ifndef _COMMON_MDIWIN_HPP_ #include #endif #ifndef _COMMON_RICHEDIT_HPP_ #include #endif #ifndef _COMMON_HOOKPROC_HPP_ #include #endif #ifndef _COMMON_CLIPBOARD_HPP_ #include #endif #ifndef _M68HC11_EDITFIND_HPP_ #include #endif class CodeView : public MDIWindow, private WinHookProc { public: CodeView(void); virtual ~CodeView(); BOOL save(void); BOOL save(const String &strPathFileName); void open(const String &pathFileName); void find(void); void cut(void); void copy(void); void paste(void); void print(void); BOOL isDirty(void)const; void setLineHandler(PureCallback *pPureCallback); const String &getTitle(void)const; void setTitle(const String &strTitle); protected: virtual void preRegister(WNDCLASS &wndClass); virtual void preCreate(MDICREATESTRUCT &createStruct); private: enum {FontMagic=175,EditControlID=100,StatusBarID=101,BorderWidth=1}; // 165 CallbackData::ReturnType createHandler(CallbackData &someCallbackData); CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData); CallbackData::ReturnType closeHandler(CallbackData &someCallbackData); CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData); CallbackData::ReturnType commandHandler(CallbackData &someCallbackData); CallbackData::ReturnType keyUpHandler(CallbackData &someCallbackData); CallbackData::ReturnType leftButtonDownHandler(CallbackData &someCallbackData); CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData); CallbackData::ReturnType setFocusHandler(CallbackData &someCallbackData); BOOL saveCode(Block &headerLines,const String &strPathFileName); void getControlRect(Rect &controlRect); void notifyCurrentLine(void); Callback mCreateHandler; Callback mSizeHandler; Callback mCloseHandler; Callback mDestroyHandler; Callback mCommandHandler; Callback mKeyUpHandler; Callback mLeftButtonDownHandler; Callback mKeyDownHandler; Callback mSetFocusHandler; CallbackPointer mLineHandler; RichEditControl mRichEditControl; SmartPointer mClipboard; EditFind mEditFind; String mTitle; }; inline BOOL CodeView::isDirty(void)const { return mRichEditControl.isDirty(); } inline void CodeView::setLineHandler(PureCallback *pPureCallback) { mLineHandler=CallbackPointer(pPureCallback); } inline const String &CodeView::getTitle(void)const { return mTitle; } #endif