Files
Work/test/FIND.HPP
2024-08-07 09:16:27 -04:00

75 lines
1.8 KiB
C++

#ifndef _APISPY_FIND_HPP_
#define _APISPY_FIND_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _DIALOG_DYNAMICDIALOG_HPP_
#include <dialog/dyndlg.hpp>
#endif
#ifndef _COMMON_HOOKPROC_HPP_
#include <common/hookproc.hpp>
#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<Find> mKeyDownHandler;
Callback<Find> 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