Commit dd478d76 authored by twanvl's avatar twanvl

Forgot to add find_replace.hpp

parent 59b414df
......@@ -702,8 +702,7 @@ bool TextValueEditor::search(FindInfo& find, bool from_start) {
size_t selection_max = index_to_untagged(value().value(), max(selection_start_i, selection_end_i));
if (find.forward()) {
size_t start = min(v.size(), find.searchSelection() ? selection_min : selection_max);
size_t end = max(0, (int)v.size() - (int)find.findString().size());
for (size_t i = start ; i <= end ; ++i) {
for (size_t i = start ; i + find.findString().size()) <= v.size() ; ++i) {
if (matchSubstr(v, i, find)) return true;
}
} else {
......
//+----------------------------------------------------------------------------+
//| Description: Magic Set Editor - Program to make Magic (tm) cards |
//| Copyright: (C) 2001 - 2007 Twan van Laarhoven |
//| License: GNU General Public License 2 or later (see file COPYING) |
//+----------------------------------------------------------------------------+
#ifndef HEADER_UTIL_FIND_REPLACE
#define HEADER_UTIL_FIND_REPLACE
// ----------------------------------------------------------------------------- : Includes
#include <util/prec.hpp>
#include <wx/fdrepdlg.h>
DECLARE_POINTER_TYPE(Card);
DECLARE_POINTER_TYPE(TextValue);
// ----------------------------------------------------------------------------- : Search/replace
/// Information for search/replace
class FindInfo {
public:
FindInfo(wxFindReplaceData& what) : what(what) {}
virtual ~FindInfo() {}
/// Handle that a match was found.
/** Returns true if we are done and searching should be ended. */
virtual bool handle(const CardP& card, const TextValueP& value, size_t pos, bool was_selection) = 0;
/// Should the found text be selected?
virtual bool select() const { return true; }
/// Should the current selection also be searched?
virtual bool searchSelection() const { return false; }
/// Searching forward?
inline bool forward() const { return what.GetFlags() & wxFR_DOWN; }
/// Match whole words?
inline bool wholeWord() const { return what.GetFlags() & wxFR_WHOLEWORD; }
/// Case sensitive?
inline bool caseSensitive() const { return what.GetFlags() & wxFR_MATCHCASE; }
/// String to look for
inline const String& findString() const { return what.GetFindString(); }
protected:
wxFindReplaceData& what; ///< What to search for, the direction to search in
};
// ----------------------------------------------------------------------------- : EOF
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment