jj
This commit is contained in:
@@ -35,15 +35,23 @@ Public Class Search
|
||||
|
||||
' Reset previous highlights, then search for the new query
|
||||
_Viewer.RemoveAllRegions()
|
||||
_Viewer.SearchText(_CurrentQuery, 0, CaseSensitive, WholeWords)
|
||||
DoSearchText()
|
||||
|
||||
' Select the next occurrence
|
||||
NextHighlight()
|
||||
End Sub
|
||||
|
||||
Public Sub NextHighlight()
|
||||
' This also applies when the page has *NO* occurrences, so 0 = 0
|
||||
If _CurrentOccurrenceCount = _CurrentSelectedOccurrence Then
|
||||
' If there are no occurrences on the current page, got to the *next page*
|
||||
While _CurrentOccurrenceCount = _CurrentSelectedOccurrence And _CurrentPage < _Viewer.PageCount
|
||||
_Viewer.DisplayNextPage()
|
||||
While _CurrentOccurrenceCount = _CurrentSelectedOccurrence And _CurrentPage <= _Viewer.PageCount
|
||||
If _CurrentPage = _Viewer.PageCount Then
|
||||
_Viewer.DisplayFirstPage()
|
||||
Else
|
||||
_Viewer.DisplayNextPage()
|
||||
End If
|
||||
|
||||
End While
|
||||
|
||||
' Safeguard against selecting a non-existing occurrence on the last page
|
||||
@@ -61,8 +69,13 @@ Public Class Search
|
||||
Public Sub PrevHighlight()
|
||||
If _CurrentOccurrenceCount = 0 Or _CurrentSelectedOccurrence = 1 Then
|
||||
|
||||
While (_CurrentOccurrenceCount = 0 Or _CurrentSelectedOccurrence = 1) And _CurrentPage > 1
|
||||
_Viewer.DisplayPreviousPage()
|
||||
While (_CurrentOccurrenceCount = 0 Or _CurrentSelectedOccurrence = 1) And _CurrentPage >= 1
|
||||
If _CurrentPage = 1 Then
|
||||
_Viewer.DisplayLastPage()
|
||||
Else
|
||||
_Viewer.DisplayPreviousPage()
|
||||
End If
|
||||
|
||||
End While
|
||||
|
||||
If _CurrentOccurrenceCount > 0 Then
|
||||
@@ -73,26 +86,6 @@ Public Class Search
|
||||
' Otherwise just select the previous occurrence
|
||||
SelectHighlight(_CurrentSelectedOccurrence - 1)
|
||||
End If
|
||||
|
||||
'' If no occurrence found on the current page,
|
||||
'' skip to the *previous* page to look there
|
||||
'If _CurrentOccurrenceCount = 0 Then
|
||||
' While _CurrentOccurrenceCount = 0 And _CurrentPage > 1
|
||||
' _Viewer.DisplayPreviousPage()
|
||||
' End While
|
||||
|
||||
'ElseIf _CurrentSelectedOccurrence = 1 Then
|
||||
' ' Need to switch to the previous *page*
|
||||
' ' and highlight the last occurrence there
|
||||
' If _CurrentPage > 1 Then
|
||||
' _Viewer.DisplayPreviousPage()
|
||||
|
||||
' SelectHighlight(_CurrentOccurrenceCount)
|
||||
' End If
|
||||
'Else
|
||||
' ' Otherwise just select the previous occurrence
|
||||
' SelectHighlight(_CurrentSelectedOccurrence - 1)
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub SelectHighlight(pOccurrence As Integer)
|
||||
@@ -112,11 +105,15 @@ Public Class Search
|
||||
_CurrentPage = _Viewer.CurrentPage
|
||||
|
||||
If _CurrentQuery.Length > 0 Then
|
||||
_Viewer.SearchText(_CurrentQuery, 0, CaseSensitive, WholeWords)
|
||||
_CurrentOccurrenceCount = _Viewer.GetTextOccurrenceCount(_CurrentPage, _CurrentQuery, CaseSensitive, WholeWords)
|
||||
_CurrentSelectedOccurrence = 0
|
||||
DoSearchText()
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub DoSearchText()
|
||||
_Viewer.SearchText(_CurrentQuery, 0, CaseSensitive, WholeWords)
|
||||
_CurrentOccurrenceCount = _Viewer.GetTextOccurrenceCount(_CurrentPage, _CurrentQuery, CaseSensitive, WholeWords)
|
||||
_CurrentSelectedOccurrence = 0
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user