126 lines
2.6 KiB
C++
126 lines
2.6 KiB
C++
#ifndef _COMMON_FINDTEXTEX_HPP_
|
|
#define _COMMON_FINDTEXTEX_HPP_
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_CHARRANGE_HPP_
|
|
#include <common/range.hpp>
|
|
#endif
|
|
|
|
class FindTextEx : private FINDTEXTEX
|
|
{
|
|
public:
|
|
FindTextEx(void);
|
|
FindTextEx(const FindTextEx &findTextEx);
|
|
FindTextEx(const CharRange &charRange,const String &strFind);
|
|
virtual ~FindTextEx();
|
|
FindTextEx &operator=(const FindTextEx &findTextEx);
|
|
BOOL operator==(const FindTextEx &findTextEx)const;
|
|
CharRange searchRange(void)const;
|
|
void searchRange(const CharRange &searchRange);
|
|
const String &strFind(void)const;
|
|
void strFind(const String &strFind);
|
|
CharRange foundRange(void)const;
|
|
void foundRange(const CharRange &foundRange);
|
|
FINDTEXTEX &findTextEx(void);
|
|
private:
|
|
String mStrInternal;
|
|
};
|
|
|
|
inline
|
|
FindTextEx::FindTextEx(void)
|
|
{
|
|
FINDTEXTEX::chrg.cpMin=0;
|
|
FINDTEXTEX::chrg.cpMax=0;
|
|
FINDTEXTEX::lpstrText=0;
|
|
FINDTEXTEX::chrgText.cpMin=0;
|
|
FINDTEXTEX::chrgText.cpMax=0;
|
|
}
|
|
|
|
inline
|
|
FindTextEx::FindTextEx(const FindTextEx &findTextEx)
|
|
{
|
|
*this=findTextEx;
|
|
}
|
|
|
|
inline
|
|
FindTextEx::FindTextEx(const CharRange &charRange,const String &strFind)
|
|
{
|
|
mStrInternal=strFind;
|
|
FINDTEXTEX::chrg.cpMin=charRange.posMin();
|
|
FINDTEXTEX::chrg.cpMax=charRange.posMax();
|
|
FINDTEXTEX::lpstrText=(char*)mStrInternal;
|
|
}
|
|
|
|
inline
|
|
FindTextEx::~FindTextEx()
|
|
{
|
|
}
|
|
|
|
inline
|
|
FindTextEx &FindTextEx::operator=(const FindTextEx &findTextEx)
|
|
{
|
|
searchRange(findTextEx.searchRange());
|
|
strFind(findTextEx.strFind());
|
|
foundRange(findTextEx.foundRange());
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
BOOL FindTextEx::operator==(const FindTextEx &findTextEx)const
|
|
{
|
|
return (searchRange()==findTextEx.searchRange()&&
|
|
foundRange()==findTextEx.foundRange()&&
|
|
strFind()==findTextEx.strFind());
|
|
}
|
|
|
|
inline
|
|
CharRange FindTextEx::searchRange(void)const
|
|
{
|
|
return CharRange(FINDTEXTEX::chrg.cpMin,FINDTEXTEX::chrg.cpMax);
|
|
}
|
|
|
|
inline
|
|
void FindTextEx::searchRange(const CharRange &searchRange)
|
|
{
|
|
FINDTEXTEX::chrg.cpMin=searchRange.posMin();
|
|
FINDTEXTEX::chrg.cpMax=searchRange.posMax();
|
|
}
|
|
|
|
inline
|
|
const String &FindTextEx::strFind(void)const
|
|
{
|
|
return mStrInternal;
|
|
}
|
|
|
|
inline
|
|
void FindTextEx::strFind(const String &strFind)
|
|
{
|
|
mStrInternal=strFind;
|
|
FINDTEXTEX::lpstrText=(char*)mStrInternal;
|
|
}
|
|
|
|
inline
|
|
CharRange FindTextEx::foundRange(void)const
|
|
{
|
|
return CharRange(FINDTEXTEX::chrgText.cpMin,FINDTEXTEX::chrgText.cpMax);
|
|
}
|
|
|
|
inline
|
|
void FindTextEx::foundRange(const CharRange &foundRange)
|
|
{
|
|
FINDTEXTEX::chrgText.cpMin=foundRange.posMin();
|
|
FINDTEXTEX::chrgText.cpMax=foundRange.posMax();
|
|
}
|
|
|
|
inline
|
|
FINDTEXTEX &FindTextEx::findTextEx(void)
|
|
{
|
|
return *this;
|
|
}
|
|
#endif
|
|
|