]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfind.h
1.) some white spaces removed
[lyx.git] / src / lyxfind.h
index 6301ab5b7418340f59eec33e7072b22aa85a412f..9dc17df86b93742399993dda77d9310fb84e0667 100644 (file)
@@ -4,10 +4,11 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
  * \author John Levon
- * \author Jürgen Vigna
+ * \author Jürgen Vigna
  * \author Alfredo Braunstein
+ * \author Tommaso Cucinotta
  *
  * Full author contact details are available in file CREDITS.
  */
 
 #include "support/strfwd.h"
 
+// FIXME
+#include "support/docstring.h"
+
 namespace lyx {
 
+
+
+class Buffer;
 class BufferView;
+class DocIterator;
 class FuncRequest;
 class Text;
 
@@ -58,6 +66,63 @@ void replace(BufferView * bv, FuncRequest const &, bool has_deleted = false);
 /// find the next change in the buffer
 bool findNextChange(BufferView * bv);
 
+/// find the previous change in the buffer
+bool findPreviousChange(BufferView * bv);
+
+/// find the change in the buffer
+/// \param next true to find the next change, otherwise the previous
+bool findChange(BufferView * bv, bool next);
+
+// Hopefully, nobody will ever replace with something like this
+#define LYX_FR_NULL_STRING "__LYX__F&R__NULL__STRING__"
+
+class FindAndReplaceOptions {
+public:
+       FindAndReplaceOptions(
+               docstring const & search,
+               bool casesensitive,
+               bool matchword,
+               bool forward,
+               bool expandmacros,
+               bool ignoreformat,
+               bool regexp,
+               docstring const & replace
+       );
+       FindAndReplaceOptions() {  }
+       docstring search;
+       bool casesensitive;
+       bool matchword;
+       bool forward;
+       bool expandmacros;
+       bool ignoreformat;
+       bool regexp;
+       docstring replace;
+};
+
+/// Write a FindAdvOptions instance to a stringstream
+std::ostringstream & operator<<(std::ostringstream & os, lyx::FindAndReplaceOptions const & opt);
+
+/// Read a FindAdvOptions instance from a stringstream
+std::istringstream & operator>>(std::istringstream & is, lyx::FindAndReplaceOptions & opt);
+
+/// Dispatch a LFUN_WORD_FINDADV command request
+void findAdv(BufferView * bv, FuncRequest const & ev);
+
+/// Perform a FindAdv operation.
+bool findAdv(BufferView * bv, FindAndReplaceOptions const & opt);
+       
+/** Computes the simple-text or LaTeX export (depending on opt) of buf starting
+ ** from cur and ending len positions after cur, if len is positive, or at the
+ ** paragraph or innermost inset end if len is -1.
+ **
+ ** This is useful for computing opt.search from the SearchAdvDialog controller (ControlSearchAdv).
+ ** Ideally, this should not be needed, and the opt.search field should become a Text const &.
+ **/
+docstring stringifyFromForSearch(
+       FindAndReplaceOptions const & opt,
+       DocIterator const & cur,
+       int len = -1);
+
 } // namespace lyx
 
 #endif // LYXFIND_H