#ifndef _APISPY_FIND_HPP_ #define _APISPY_FIND_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _DIALOG_DYNAMICDIALOG_HPP_ #include #endif #ifndef _COMMON_HOOKPROC_HPP_ #include #endif class Find : private DynamicDialog { public: Find(void); virtual ~Find(); void perform(GUIWindow &parentWindow); int lastFindIndex(void)const; const String &lastSearchText(void)const; protected: virtual void init(void); virtual void find(void); virtual void findNext(void); virtual void leaveEdit(const String &strText); void getText(String &strEditText); void lastFindIndex(int lastFindIndex); void lastSearchText(const String &lastSearchText); BOOL matchWholeWordOnly(void)const; private: enum{FindText=101,CancelFind=IDCANCEL,FindNext=103,FindWhole=104}; Find(const Find &find); Find &operator=(const Find &find); CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData); CallbackData::ReturnType dlgCodeHandler(CallbackData &someCallbackData); void handleFind(void); void handleFindNext(void); void create(GUIWindow &parentWindow); WORD dlgCommand(DWORD commandID,CallbackData &someCallbackData); WORD dlgCode(CallbackData &someCallbackData); BOOL dlgInitDialog(CallbackData &someCallbackData); void dlgDestroyDialog(CallbackData &someCallbackData); Callback mKeyDownHandler; Callback mDlgCodeHandler; String mLastSearchText; int mLastFindIndex; WinHookProc mEditHook; }; inline const String &Find::lastSearchText(void)const { return mLastSearchText; } inline void Find::lastSearchText(const String &lastSearchText) { mLastSearchText=lastSearchText; } inline void Find::lastFindIndex(int lastFindIndex) { mLastFindIndex=lastFindIndex; } inline int Find::lastFindIndex(void)const { return mLastFindIndex; } #endif