summaryrefslogtreecommitdiffstats
path: root/tdejava/koala/org/trinitydesktop/koala/KFind.java
diff options
context:
space:
mode:
Diffstat (limited to 'tdejava/koala/org/trinitydesktop/koala/KFind.java')
-rw-r--r--tdejava/koala/org/trinitydesktop/koala/KFind.java259
1 files changed, 259 insertions, 0 deletions
diff --git a/tdejava/koala/org/trinitydesktop/koala/KFind.java b/tdejava/koala/org/trinitydesktop/koala/KFind.java
new file mode 100644
index 00000000..518b7586
--- /dev/null
+++ b/tdejava/koala/org/trinitydesktop/koala/KFind.java
@@ -0,0 +1,259 @@
+//Auto-generated by kalyptus. DO NOT EDIT.
+package org.trinitydesktop.koala;
+
+import org.trinitydesktop.qt.Qt;
+import org.trinitydesktop.qt.TQMetaObject;
+import org.trinitydesktop.qt.QtSupport;
+import org.trinitydesktop.qt.TQRegExp;
+import org.trinitydesktop.qt.TQWidget;
+import org.trinitydesktop.qt.TQObject;
+
+/**
+
+ @brief A generic implementation of the "find" function.
+ <b></b>etail:
+ This class includes prompt handling etc. Also provides some
+ static functions which can be used to create custom behavior
+ instead of using the class directly.
+ <b></b>xample:
+ To use the class to implement a complete find feature:
+ In the slot connected to the find action, after using KFindDialog:
+ <pre>
+ // This creates a find-next-prompt dialog if needed.
+ m_find = new KFind(pattern, options, this);
+ // Connect highlight signal to code which handles highlighting
+ // of found text.
+ connect( m_find, SIGNAL("highlight( String, int, int )"),
+ this, SLOT("slotHighlight( String, int, int )") );
+ // Connect findNext signal - called when pressing the button in the dialog
+ connect( m_find, SIGNAL("findNext()"),
+ this, SLOT("slotFindNext()") );
+ </pre>
+ If you are using a non-modal find dialog (the recommended new way
+ in KDE-3.2), you should call right away m_find.closeFindNextDialog().
+ Then initialize the variables determining the "current position"
+ (to the cursor, if the option FromCursor is set,
+ to the beginning of the selection if the option SelectedText is set,
+ and to the beginning of the document otherwise).
+ Initialize the "end of search" variables as well (end of doc or end of selection).
+ Swap begin and end if FindBackwards.
+ Finally, call slotFindNext();
+ <pre>
+ void slotFindNext()
+ {
+ KFind.Result res = KFind.NoMatch;
+ while ( res == KFind.NoMatch && <position not at end> ) {
+ if ( m_find.needData() )
+ m_find.setData( <current text fragment> );
+ // Let KFind inspect the text fragment, and display a dialog if a match is found
+ res = m_find.find();
+ if ( res == KFind.NoMatch ) {
+ <Move to the next text fragment, honoring the FindBackwards setting for the direction>
+ }
+ }
+ if ( res == KFind.NoMatch ) // i.e. at end
+ <Call either m_find.displayFinalDialog(); delete m_find; m_find = null;
+ or if ( m_find.shouldRestart() ) { reinit (w/o FromCursor) and call slotFindNext(); }
+ else { m_find.closeFindNextDialog(); }>
+ }
+ </pre>
+ Don't forget to delete m_find in the destructor of your class,
+ unless you gave it a parent widget on construction.
+ This implementation allows to have a "Find Next" action, which resumes the
+ search, even if the user closed the "Find Next" dialog.
+ A "Find Previous" action can simply switch temporarily the value of
+ FindBackwards and call slotFindNext() - and reset the value afterwards.
+ See {@link KFindSignals} for signals emitted by KFind
+ @author S.R.Haque <srhaque@iee.org>, David Faure <faure@kde.org>,
+ Arend van Beelen jr. <arend@auton.nl>
+
+ @short @brief A generic implementation of the "find" function.
+
+*/
+public class KFind extends TQObject {
+ protected KFind(Class dummy){super((Class) null);}
+ public static final int NoMatch = 0;
+ public static final int Match = 1;
+
+ public native TQMetaObject metaObject();
+ public native String className();
+ /**
+ Only use this constructor if you don't use KFindDialog, or if
+ you use it as a modal dialog.
+ @short Only use this constructor if you don't use KFindDialog, or if you use it as a modal dialog.
+ */
+ public KFind(String pattern, long options, TQWidget parent) {
+ super((Class) null);
+ newKFind(pattern,options,parent);
+ }
+ private native void newKFind(String pattern, long options, TQWidget parent);
+ /**
+ @return true if the application must supply a new text fragment
+ It also means the last call returned "NoMatch". But by storing this here
+ the application doesn't have to store it in a member variable (between
+ calls to slotFindNext()).
+
+ @short
+ */
+ public native boolean needData();
+ /**
+ Call this when needData returns true, before calling find().
+ @param data the text fragment (line)
+ @param startPos if set, the index at which the search should start.
+ This is only necessary for the very first call to setData usually,
+ for the 'find in selection' feature. A value of -1 (the default value)
+ means "process all the data", i.e. either 0 or data.length()-1 depending
+ on FindBackwards.
+ @short Call this when needData returns true, before calling find().
+ */
+ public native void setData(String data, int startPos);
+ public native void setData(String data);
+ /**
+ Call this when needData returns true, before calling find(). The use of
+ ID's is especially useful if you're using the FindIncremental option.
+ @param id the id of the text fragment
+ @param data the text fragment (line)
+ @param startPos if set, the index at which the search should start.
+ This is only necessary for the very first call to setData usually,
+ for the 'find in selection' feature. A value of -1 (the default value)
+ means "process all the data", i.e. either 0 or data.length()-1 depending
+ on FindBackwards.
+ @short Call this when needData returns true, before calling find().
+ */
+ public native void setData(int id, String data, int startPos);
+ public native void setData(int id, String data);
+ /**
+ Walk the text fragment (e.g. text-processor line, kspread cell) looking for matches.
+ For each match, emits the highlight() signal and displays the find-again dialog
+ proceeding.
+ @short Walk the text fragment (e.
+ */
+ public native int find();
+ /**
+ Return the current options.
+ Warning: this is usually the same value as the one passed to the constructor,
+ but options might change _during_ the replace operation:
+ e.g. the "All" button resets the PromptOnReplace flag.
+ @short Return the current options.
+ */
+ public native long options();
+ /**
+ Set new options. Usually this is used for setting or clearing the
+ FindBackwards options.
+ @short Set new options.
+ */
+ public native void setOptions(long options);
+ /**
+ @return the pattern we're currently looking for
+
+ @short
+ */
+ public native String pattern();
+ /**
+ Change the pattern we're looking for
+ @short Change the pattern we're looking for
+ */
+ public native void setPattern(String pattern);
+ /**
+ Return the number of matches found (i.e. the number of times
+ the highlight signal was emitted).
+ If 0, can be used in a dialog box to tell the user "no match was found".
+ The final dialog does so already, unless you used setDisplayFinalDialog(false).
+ @short Return the number of matches found (i.
+ */
+ public native int numMatches();
+ /**
+ Call this to reset the numMatches count
+ (and the numReplacements count for a KReplace).
+ Can be useful if reusing the same KReplace for different operations,
+ or when restarting from the beginning of the document.
+ @short Call this to reset the numMatches count (and the numReplacements count for a KReplace).
+ */
+ public native void resetCounts();
+ /**
+ Virtual method, which allows applications to add extra checks for
+ validating a candidate match. It's only necessary to reimplement this
+ if the find dialog extension has been used to provide additional
+ criterias.
+ @param text The current text fragment
+ @param index The starting index where the candidate match was found
+ @param matchedlength The length of the candidate match
+ @short Virtual method, which allows applications to add extra checks for validating a candidate match.
+ */
+ public native boolean validateMatch(String text, int index, int matchedlength);
+ /**
+ Returns true if we should restart the search from scratch.
+ Can ask the user, or return false (if we already searched the whole document).
+ @param forceAsking set to true if the user modified the document during the
+ search. In that case it makes sense to restart the search again.
+ @param showNumMatches set to true if the dialog should show the number of
+ matches. Set to false if the application provides a "find previous" action,
+ in which case the match count will be erroneous when hitting the end,
+ and we could even be hitting the beginning of the document (so not all
+ matches have even been seen).
+ @short Returns true if we should restart the search from scratch.
+ */
+ public native boolean shouldRestart(boolean forceAsking, boolean showNumMatches);
+ public native boolean shouldRestart(boolean forceAsking);
+ public native boolean shouldRestart();
+ /**
+ Displays the final dialog saying "no match was found", if that was the case.
+ Call either this or shouldRestart().
+ @short Displays the final dialog saying "no match was found", if that was the case.
+ */
+ public native void displayFinalDialog();
+ /**
+ Return (or create) the dialog that shows the "find next?" prompt.
+ Usually you don't need to call this.
+ One case where it can be useful, is when the user selects the "Find"
+ menu item while a find operation is under way. In that case, the
+ program may want to call setActiveWindow() on that dialog.
+ @short Return (or create) the dialog that shows the "find next?" prompt.
+ */
+ public native KDialogBase findNextDialog(boolean create);
+ public native KDialogBase findNextDialog();
+ /**
+ Close the "find next?" dialog. The application should do this when
+ the last match was hit. If the application deletes the KFind, then
+ "find previous" won't be possible anymore.
+ IMPORTANT: you should also call this if you are using a non-modal
+ find dialog, to tell KFind not to pop up its own dialog.
+ @short Close the "find next?" dialog.
+ */
+ public native void closeFindNextDialog();
+ /**
+ @return the current matching index ( or -1 ).
+ Same as the matchingIndex parameter passed to highlight.
+ You usually don't need to use this, except maybe when updating the current data,
+ so you need to call setData( newData, index() ).
+
+ @short
+ */
+ public native int index();
+ /**
+ Search the given string, and returns whether a match was found. If one is,
+ the length of the string matched is also returned.
+ A performance optimised version of the function is provided for use
+ with regular expressions.
+ @param text The string to search.
+ @param pattern The pattern to look for.
+ @param index The starting index into the string.
+ @param options The options to use.
+ @param matchedlength The length of the string that was matched
+ @return The index at which a match was found, or -1 if no match was found.
+
+ @short Search the given string, and returns whether a match was found.
+ */
+ public static native int find(String text, String pattern, int index, long options, int[] matchedlength);
+ public static native int find(String text, TQRegExp pattern, int index, long options, int[] matchedlength);
+ protected native TQWidget parentWidget();
+ protected native TQWidget dialogsParent();
+ protected native void slotFindNext();
+ protected native void slotDialogClosed();
+ /** Deletes the wrapped C++ instance */
+ protected native void finalize() throws InternalError;
+ /** Delete the wrapped C++ instance ahead of finalize() */
+ public native void dispose();
+ /** Has the wrapped C++ instance been deleted? */
+ public native boolean isDisposed();
+}