mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-11 21:27:01 -04:00
Forgot to add find_replace.hpp
git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@301 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -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));
|
size_t selection_max = index_to_untagged(value().value(), max(selection_start_i, selection_end_i));
|
||||||
if (find.forward()) {
|
if (find.forward()) {
|
||||||
size_t start = min(v.size(), find.searchSelection() ? selection_min : selection_max);
|
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 + find.findString().size()) <= v.size() ; ++i) {
|
||||||
for (size_t i = start ; i <= end ; ++i) {
|
|
||||||
if (matchSubstr(v, i, find)) return true;
|
if (matchSubstr(v, i, find)) return true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
//+----------------------------------------------------------------------------+
|
||||||
|
//| 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
|
||||||
Reference in New Issue
Block a user