Files
Work/common/FNDTEXTX.HPP
2024-08-07 09:09:36 -04:00

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