DocumentViewer: make highlight regions readonly

This commit is contained in:
Jonathan Jenne 2023-04-14 11:55:06 +02:00
parent 4c783fbbcb
commit 091dc8f726

View File

@ -5,25 +5,26 @@ Imports GdPicture14
Public Class Search Public Class Search
Inherits BaseClass Inherits BaseClass
Public Sub New(pLogConfig As LogConfig, pGDViewer As GdViewer)
MyBase.New(pLogConfig)
_Viewer = pGDViewer
_Viewer.MouseMode = ViewerMouseMode.MouseModeDefault
AddHandler _Viewer.PageDisplayed, AddressOf Viewer_PageDisplayed
End Sub
Public Property SearchQuery As String = "" Public Property SearchQuery As String = ""
Public Property CaseSensitive As Boolean = False Public Property CaseSensitive As Boolean = False
Public Property WholeWords As Boolean = False Public Property WholeWords As Boolean = False
Private _Viewer As GdViewer = Nothing Private _Viewer As GdViewer = Nothing
Private _AnnotationManager As New AnnotationManager()
Private _CurrentPage As Integer = 0 Private _CurrentPage As Integer = 0
Private _CurrentQuery As String = "" Private _CurrentQuery As String = ""
Private _CurrentOccurrenceCount = 0 Private _CurrentOccurrenceCount = 0
Private _CurrentSelectedOccurrence = 0 Private _CurrentSelectedOccurrence = 0
Public Sub New(pLogConfig As LogConfig, pGDViewer As GdViewer)
MyBase.New(pLogConfig)
_Viewer = pGDViewer
_AnnotationManager.InitFromGdViewer(pGDViewer)
AddHandler _Viewer.PageDisplayed, AddressOf Viewer_PageDisplayed
End Sub
Public Sub SearchAll(pQuery As String) Public Sub SearchAll(pQuery As String)
' Exit, if query has not changed ' Exit, if query has not changed
If _CurrentQuery = pQuery Then If _CurrentQuery = pQuery Then
@ -111,7 +112,17 @@ Public Class Search
End Sub End Sub
Private Sub DoSearchText() Private Sub DoSearchText()
_Viewer.SearchText(_CurrentQuery, 0, CaseSensitive, WholeWords) _Viewer.SearchText(_CurrentQuery, 0, CaseSensitive, WholeWords)
Dim oRegionCount = _Viewer.RegionCount()
For index = 1 To oRegionCount
Dim oId = _Viewer.GetRegionID(index)
_Viewer.SetRegionEditable(oId, False)
Next
_CurrentOccurrenceCount = _Viewer.GetTextOccurrenceCount(_CurrentPage, _CurrentQuery, CaseSensitive, WholeWords) _CurrentOccurrenceCount = _Viewer.GetTextOccurrenceCount(_CurrentPage, _CurrentQuery, CaseSensitive, WholeWords)
_CurrentSelectedOccurrence = 0 _CurrentSelectedOccurrence = 0
End Sub End Sub