diff --git a/Controls.DocumentViewer/Annotations.vb b/Controls.DocumentViewer/Classes/Annotations.vb similarity index 100% rename from Controls.DocumentViewer/Annotations.vb rename to Controls.DocumentViewer/Classes/Annotations.vb diff --git a/Controls.DocumentViewer/Classes/Search.vb b/Controls.DocumentViewer/Classes/Search.vb new file mode 100644 index 00000000..882c48c1 --- /dev/null +++ b/Controls.DocumentViewer/Classes/Search.vb @@ -0,0 +1,122 @@ +Imports DigitalData.Modules.Base +Imports DigitalData.Modules.Logging +Imports GdPicture14 + +Public Class Search + 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 CaseSensitive As Boolean = False + Public Property WholeWords As Boolean = False + + Private _Viewer As GdViewer = Nothing + + Private _CurrentPage As Integer = 0 + Private _CurrentQuery As String = "" + Private _CurrentOccurrenceCount = 0 + Private _CurrentSelectedOccurrence = 0 + + Public Sub SearchAll(pQuery As String) + ' Exit, if query has not changed + If _CurrentQuery = pQuery Then + Exit Sub + End If + + ' Save query + _CurrentQuery = pQuery + + ' Reset previous highlights, then search for the new query + _Viewer.RemoveAllRegions() + _Viewer.SearchText(_CurrentQuery, 0, CaseSensitive, WholeWords) + 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() + End While + + ' Safeguard against selecting a non-existing occurrence on the last page + If _CurrentOccurrenceCount > 0 Then + SelectHighlight(1) + Else + ' Disable next button + End If + Else + ' Otherwise just select the next occurrence + SelectHighlight(_CurrentSelectedOccurrence + 1) + End If + End Sub + + Public Sub PrevHighlight() + If _CurrentOccurrenceCount = 0 Or _CurrentSelectedOccurrence = 1 Then + + While (_CurrentOccurrenceCount = 0 Or _CurrentSelectedOccurrence = 1) And _CurrentPage > 1 + _Viewer.DisplayPreviousPage() + End While + + If _CurrentOccurrenceCount > 0 Then + SelectHighlight(_CurrentOccurrenceCount) + End If + + Else + ' 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) + Dim oFound = _Viewer.SearchText(_CurrentQuery, pOccurrence, CaseSensitive, WholeWords) + If _Viewer.GetStat() = GdPictureStatus.OK And _Viewer.IsRect() Then + _Viewer.RectIsEditable = False + _Viewer.CenterOnRect() + + _CurrentSelectedOccurrence = pOccurrence + Else + _CurrentSelectedOccurrence = 0 + End If + End Sub + + Private Sub Viewer_PageDisplayed() + If _CurrentPage <> _Viewer.CurrentPage Then + _CurrentPage = _Viewer.CurrentPage + + If _CurrentQuery.Length > 0 Then + _Viewer.SearchText(_CurrentQuery, 0, CaseSensitive, WholeWords) + _CurrentOccurrenceCount = _Viewer.GetTextOccurrenceCount(_CurrentPage, _CurrentQuery, CaseSensitive, WholeWords) + _CurrentSelectedOccurrence = 0 + End If + End If + End Sub + +End Class diff --git a/Controls.DocumentViewer/DocumentViewer.Designer.vb b/Controls.DocumentViewer/DocumentViewer.Designer.vb index b7cd68a9..00a390f8 100644 --- a/Controls.DocumentViewer/DocumentViewer.Designer.vb +++ b/Controls.DocumentViewer/DocumentViewer.Designer.vb @@ -46,21 +46,31 @@ Partial Class DocumentViewer Me.buttonNextPage = New DevExpress.XtraBars.BarButtonItem() Me.buttonLastPage = New DevExpress.XtraBars.BarButtonItem() Me.buttonSettings = New DevExpress.XtraBars.BarButtonItem() + Me.txtSearch = New DevExpress.XtraBars.BarEditItem() + Me.RepositoryItemTextEdit3 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit() + Me.btnSearch2 = New DevExpress.XtraBars.BarButtonItem() + Me.btnPrevHighlight = New DevExpress.XtraBars.BarButtonItem() + Me.btnNextHighlight = New DevExpress.XtraBars.BarButtonItem() Me.barDockControlTop = New DevExpress.XtraBars.BarDockControl() Me.barDockControlBottom = New DevExpress.XtraBars.BarDockControl() Me.barDockControlLeft = New DevExpress.XtraBars.BarDockControl() Me.barDockControlRight = New DevExpress.XtraBars.BarDockControl() Me.BarStaticItem1 = New DevExpress.XtraBars.BarStaticItem() + Me.btnSearch = New DevExpress.XtraBars.BarButtonItem() Me.RepositoryItemTextEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit() Me.RepositoryItemColorEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemColorEdit() Me.RepositoryItemComboBox1 = New DevExpress.XtraEditors.Repository.RepositoryItemComboBox() + Me.RepositoryItemSearchControl1 = New DevExpress.XtraEditors.Repository.RepositoryItemSearchControl() Me.SpreadsheetControl1 = New DevExpress.XtraSpreadsheet.SpreadsheetControl() Me.PrintDocument1 = New System.Drawing.Printing.PrintDocument() + Me.LabelControl1 = New DevExpress.XtraEditors.LabelControl() CType(Me.BarManager1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemTextEdit3, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemColorEdit1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.RepositoryItemSearchControl1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'GdViewer @@ -161,10 +171,10 @@ Partial Class DocumentViewer Me.BarManager1.DockControls.Add(Me.barDockControlLeft) Me.BarManager1.DockControls.Add(Me.barDockControlRight) Me.BarManager1.Form = Me - Me.BarManager1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.buttonPrint, Me.buttonFitPage, Me.buttonFitWidth, Me.buttonZoomIn, Me.buttonZoomOut, Me.buttonRotateRight, Me.buttonRotateLeft, Me.buttonFlipX, Me.buttonFlipY, Me.buttonSettings, Me.buttonPrevPage, Me.buttonNextPage, Me.buttonFirstPage, Me.buttonLastPage, Me.txtCurrentPage, Me.BarStaticItem1, Me.labelPageCount}) + Me.BarManager1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.buttonPrint, Me.buttonFitPage, Me.buttonFitWidth, Me.buttonZoomIn, Me.buttonZoomOut, Me.buttonRotateRight, Me.buttonRotateLeft, Me.buttonFlipX, Me.buttonFlipY, Me.buttonSettings, Me.buttonPrevPage, Me.buttonNextPage, Me.buttonFirstPage, Me.buttonLastPage, Me.txtCurrentPage, Me.BarStaticItem1, Me.labelPageCount, Me.txtSearch, Me.btnPrevHighlight, Me.btnNextHighlight, Me.btnSearch, Me.btnSearch2}) Me.BarManager1.MainMenu = Me.ToolbarDocumentViewer - Me.BarManager1.MaxItemId = 26 - Me.BarManager1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemTextEdit1, Me.RepositoryItemTextEdit2, Me.RepositoryItemColorEdit1, Me.RepositoryItemComboBox1}) + Me.BarManager1.MaxItemId = 33 + Me.BarManager1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemTextEdit1, Me.RepositoryItemTextEdit2, Me.RepositoryItemColorEdit1, Me.RepositoryItemComboBox1, Me.RepositoryItemSearchControl1, Me.RepositoryItemTextEdit3}) ' 'ToolbarDocumentViewer ' @@ -172,7 +182,7 @@ Partial Class DocumentViewer Me.ToolbarDocumentViewer.DockCol = 0 Me.ToolbarDocumentViewer.DockRow = 0 Me.ToolbarDocumentViewer.DockStyle = DevExpress.XtraBars.BarDockStyle.Top - Me.ToolbarDocumentViewer.LinksPersistInfo.AddRange(New DevExpress.XtraBars.LinkPersistInfo() {New DevExpress.XtraBars.LinkPersistInfo(Me.buttonPrint), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFitWidth), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFitPage), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonZoomIn), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonZoomOut), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonRotateLeft), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonRotateRight), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFlipX), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFlipY), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFirstPage), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonPrevPage), New DevExpress.XtraBars.LinkPersistInfo(Me.txtCurrentPage), New DevExpress.XtraBars.LinkPersistInfo(Me.labelPageCount), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonNextPage), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonLastPage), New DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, Me.buttonSettings, DevExpress.XtraBars.BarItemPaintStyle.Standard)}) + Me.ToolbarDocumentViewer.LinksPersistInfo.AddRange(New DevExpress.XtraBars.LinkPersistInfo() {New DevExpress.XtraBars.LinkPersistInfo(Me.buttonPrint), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFitWidth), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFitPage), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonZoomIn), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonZoomOut), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonRotateLeft), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonRotateRight), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFlipX), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFlipY), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonFirstPage), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonPrevPage), New DevExpress.XtraBars.LinkPersistInfo(Me.txtCurrentPage), New DevExpress.XtraBars.LinkPersistInfo(Me.labelPageCount), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonNextPage), New DevExpress.XtraBars.LinkPersistInfo(Me.buttonLastPage), New DevExpress.XtraBars.LinkPersistInfo(DevExpress.XtraBars.BarLinkUserDefines.PaintStyle, Me.buttonSettings, DevExpress.XtraBars.BarItemPaintStyle.Standard), New DevExpress.XtraBars.LinkPersistInfo(Me.txtSearch), New DevExpress.XtraBars.LinkPersistInfo(Me.btnSearch2), New DevExpress.XtraBars.LinkPersistInfo(Me.btnPrevHighlight), New DevExpress.XtraBars.LinkPersistInfo(Me.btnNextHighlight)}) Me.ToolbarDocumentViewer.OptionsBar.AllowCollapse = True Me.ToolbarDocumentViewer.OptionsBar.AllowQuickCustomization = False Me.ToolbarDocumentViewer.OptionsBar.DrawDragBorder = False @@ -313,6 +323,41 @@ Partial Class DocumentViewer Me.buttonSettings.Name = "buttonSettings" Me.buttonSettings.Visibility = DevExpress.XtraBars.BarItemVisibility.Never ' + 'txtSearch + ' + Me.txtSearch.Caption = "BarEditItem1" + Me.txtSearch.Edit = Me.RepositoryItemTextEdit3 + Me.txtSearch.Id = 27 + Me.txtSearch.Name = "txtSearch" + ' + 'RepositoryItemTextEdit3 + ' + Me.RepositoryItemTextEdit3.AutoHeight = False + Me.RepositoryItemTextEdit3.Name = "RepositoryItemTextEdit3" + ' + 'btnSearch2 + ' + Me.btnSearch2.Caption = "BarButtonItem3" + Me.btnSearch2.Id = 32 + Me.btnSearch2.ImageOptions.SvgImage = CType(resources.GetObject("btnSearch2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.btnSearch2.Name = "btnSearch2" + ' + 'btnPrevHighlight + ' + Me.btnPrevHighlight.Caption = "BarButtonItem1" + Me.btnPrevHighlight.Enabled = False + Me.btnPrevHighlight.Id = 28 + Me.btnPrevHighlight.ImageOptions.SvgImage = CType(resources.GetObject("btnPrevHighlight.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.btnPrevHighlight.Name = "btnPrevHighlight" + ' + 'btnNextHighlight + ' + Me.btnNextHighlight.Caption = "BarButtonItem2" + Me.btnNextHighlight.Enabled = False + Me.btnNextHighlight.Id = 29 + Me.btnNextHighlight.ImageOptions.SvgImage = CType(resources.GetObject("btnNextHighlight.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.btnNextHighlight.Name = "btnNextHighlight" + ' 'barDockControlTop ' Me.barDockControlTop.CausesValidation = False @@ -351,6 +396,13 @@ Partial Class DocumentViewer Me.BarStaticItem1.Id = 17 Me.BarStaticItem1.Name = "BarStaticItem1" ' + 'btnSearch + ' + Me.btnSearch.Caption = "Search" + Me.btnSearch.Id = 31 + Me.btnSearch.ImageOptions.SvgImage = CType(resources.GetObject("btnSearch.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) + Me.btnSearch.Name = "btnSearch" + ' 'RepositoryItemTextEdit1 ' Me.RepositoryItemTextEdit1.AutoHeight = False @@ -372,6 +424,12 @@ Partial Class DocumentViewer Me.RepositoryItemComboBox1.Items.AddRange(New Object() {"Arrow", "Text"}) Me.RepositoryItemComboBox1.Name = "RepositoryItemComboBox1" ' + 'RepositoryItemSearchControl1 + ' + Me.RepositoryItemSearchControl1.AutoHeight = False + Me.RepositoryItemSearchControl1.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Repository.ClearButton(), New DevExpress.XtraEditors.Repository.SearchButton()}) + Me.RepositoryItemSearchControl1.Name = "RepositoryItemSearchControl1" + ' 'SpreadsheetControl1 ' Me.SpreadsheetControl1.Location = New System.Drawing.Point(461, 377) @@ -383,10 +441,25 @@ Partial Class DocumentViewer Me.SpreadsheetControl1.Text = "SpreadsheetControl1" Me.SpreadsheetControl1.Visible = False ' + 'LabelControl1 + ' + Me.LabelControl1.Appearance.Options.UseTextOptions = True + Me.LabelControl1.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center + Me.LabelControl1.Appearance.TextOptions.VAlignment = DevExpress.Utils.VertAlignment.Center + Me.LabelControl1.AutoSizeMode = DevExpress.XtraEditors.LabelAutoSizeMode.None + Me.LabelControl1.Location = New System.Drawing.Point(340, 222) + Me.LabelControl1.Name = "LabelControl1" + Me.LabelControl1.Size = New System.Drawing.Size(409, 72) + Me.LabelControl1.TabIndex = 14 + Me.LabelControl1.Tag = "Die Datei konnte nicht gefunden werden: {0}" + Me.LabelControl1.Text = "Die Datei konnte nicht gefunden werden: {0}" + Me.LabelControl1.Visible = False + ' 'DocumentViewer ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.Controls.Add(Me.LabelControl1) Me.Controls.Add(Me.RichEditControl1) Me.Controls.Add(Me.SpreadsheetControl1) Me.Controls.Add(Me.GdViewer) @@ -398,9 +471,11 @@ Partial Class DocumentViewer Me.Size = New System.Drawing.Size(1079, 590) CType(Me.BarManager1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemTextEdit3, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemColorEdit1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemComboBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.RepositoryItemSearchControl1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) Me.PerformLayout() @@ -438,4 +513,12 @@ Partial Class DocumentViewer Friend WithEvents RepositoryItemColorEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemColorEdit Friend WithEvents RepositoryItemComboBox1 As DevExpress.XtraEditors.Repository.RepositoryItemComboBox Friend WithEvents labelPageCount As DevExpress.XtraBars.BarStaticItem + Friend WithEvents txtSearch As DevExpress.XtraBars.BarEditItem + Friend WithEvents RepositoryItemTextEdit3 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit + Friend WithEvents btnPrevHighlight As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnNextHighlight As DevExpress.XtraBars.BarButtonItem + Friend WithEvents RepositoryItemSearchControl1 As DevExpress.XtraEditors.Repository.RepositoryItemSearchControl + Friend WithEvents LabelControl1 As DevExpress.XtraEditors.LabelControl + Friend WithEvents btnSearch As DevExpress.XtraBars.BarButtonItem + Friend WithEvents btnSearch2 As DevExpress.XtraBars.BarButtonItem End Class diff --git a/Controls.DocumentViewer/DocumentViewer.resx b/Controls.DocumentViewer/DocumentViewer.resx index 13375f41..52330804 100644 --- a/Controls.DocumentViewer/DocumentViewer.resx +++ b/Controls.DocumentViewer/DocumentViewer.resx @@ -161,6 +161,88 @@ NC42LTAuOCw2LjUtMi4xbDcuOSw3LjljMC4zLDAuMywwLjksMC4zLDEuMiwwbDEuMi0xLjJDMzAuMSwy OC4yLDMwLjEsMjcuNiwyOS43LDI3LjN6IE00LDEzYzAtNSw0LTksOS05YzUsMCw5LDQsOSw5ICAgcy00 LDktOSw5QzgsMjIsNCwxOCw0LDEzeiIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAANoCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp + dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9Ilpvb20iPg0KICAgIDxwYXRoIGQ9Ik0yNy43LDI1LjNM + MjAuNSwxOGMxLTEuNCwxLjUtMy4yLDEuNS01YzAtNS00LTktOS05cy05LDQtOSw5YzAsNSw0LDksOSw5 + YzEuOSwwLDMuNi0wLjYsNS0xLjVsNy4zLDcuMyAgIGMwLjMsMC4zLDAuOSwwLjMsMS4yLDBsMS4yLTEu + MkMyOC4xLDI2LjIsMjguMSwyNS42LDI3LjcsMjUuM3ogTTYsMTNjMC0zLjksMy4xLTcsNy03czcsMy4x + LDcsN2MwLDMuOS0zLjEsNy03LDdTNiwxNi45LDYsMTN6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4N + Cjwvc3ZnPgs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIQCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs + YWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMy + Mzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl + Pg0KICA8ZyBpZD0iQmFja3dhcmQiPg0KICAgIDxwYXRoIGQ9Ik0xNiwyQzguMywyLDIsOC4zLDIsMTZz + Ni4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMyMy43LDIsMTYsMnogTTI0LDE4aC04djZsLTgtOGw4LTh2 + Nmg4VjE4eiIgY2xhc3M9IkdyZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIcCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs + YWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMy + Mzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl + Pg0KICA8ZyBpZD0iRm9yd2FyZF8xXyI+DQogICAgPHBhdGggZD0iTTE2LDJDOC4zLDIsMiw4LjMsMiwx + NnM2LjMsMTQsMTQsMTRzMTQtNi4zLDE0LTE0UzIzLjcsMiwxNiwyeiBNMTYsMjR2LTZIOHYtNGg4Vjhs + OCw4TDE2LDI0eiIgY2xhc3M9IkdyZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAFQEAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkdyZWVue2ZpbGw6IzAzOUMyMzt9Cgku + QmxhY2t7ZmlsbDojNzI3MjcyO30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5ZZWxsb3d7ZmlsbDojRkZC + MTE1O30KCS5CbHVle2ZpbGw6IzExNzdENzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRW5hYmxlU2Vh + cmNoIj4NCiAgICA8cGF0aCBkPSJNMTQuNSwxNy44QzEwLjgsMTcuMSw4LDEzLjksOCwxMGMwLTQuNCwz + LjYtOCw4LThzOCwzLjYsOCw4YzAsMS41LTAuNCwyLjgtMS4xLDRjMCwwLDAuMSwwLDAuMSwwICAgYzAu + NywwLDEuNCwwLjEsMi4xLDAuMmMwLjYtMS4zLDAuOS0yLjcsMC45LTQuMmMwLTUuNS00LjUtMTAtMTAt + MTBDMTAuNSwwLDYsNC41LDYsMTBjMCwyLjEsMC43LDQuMSwxLjgsNS43bC03LjUsNy42ICAgYy0wLjQs + MC4zLTAuNCwwLjksMCwxLjNsMS4yLDEuMmMwLjMsMC4zLDAuOSwwLjMsMS4yLDBsNy42LTcuNmMwLjks + MC42LDEuOSwxLjEsMi45LDEuNEMxMy42LDE5LDE0LDE4LjQsMTQuNSwxNy44eiIgY2xhc3M9IkJsdWUi + IC8+DQogICAgPHBhdGggZD0iTTIzLDE2Yy00LjQsMC04LjEsMy05LDdjMC45LDQsNC42LDcsOSw3YzQu + NCwwLDguMS0zLDktN0MzMS4xLDE5LDI3LjQsMTYsMjMsMTZ6IE0yMywyOGMtMy4zLDAtNi4xLTItNy01 + ICAgYzAuOS0zLDMuNy01LDctNXM2LjEsMiw3LDVDMjkuMSwyNiwyNi4zLDI4LDIzLDI4eiBNMjMsMjZj + LTEuNywwLTMtMS4zLTMtM3MxLjMtMywzLTNzMywxLjMsMywzUzI0LjcsMjYsMjMsMjZ6IiBjbGFzcz0i + QmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs= diff --git a/Controls.DocumentViewer/DocumentViewer.vb b/Controls.DocumentViewer/DocumentViewer.vb index a8bb89b6..8312e861 100644 --- a/Controls.DocumentViewer/DocumentViewer.vb +++ b/Controls.DocumentViewer/DocumentViewer.vb @@ -31,15 +31,17 @@ Public Class DocumentViewer Stream End Enum - Private _ViewerMode As ViewerMode - Private _currentSearchOccurence As Integer = 0 - Private _toggleGamma As Boolean = True - Private _licenseKey As String = String.Empty - Private _licenseManager As New GdPicture14.LicenseManager() Private _logConfig As LogConfig Private _logger As Logger - Private _email As Email2 Private _Config As ConfigManager(Of Config) + Private _email As Email2 + + Private _ViewerMode As ViewerMode + + Private _licenseKey As String = String.Empty + Private _licenseManager As New GdPicture14.LicenseManager() + + Private _Search As Search Private _Annotations As Annotations Private _AnnotationsPending As Boolean = False @@ -77,6 +79,7 @@ Public Class DocumentViewer _licenseKey = pLicenseKey _licenseManager.RegisterKEY(_licenseKey) _Annotations = New Annotations(pLogConfig) + _Search = New Search(pLogConfig, GdViewer) Dim oConfigPath = ConfigPath() _Config = New ConfigManager(Of Config)(pLogConfig, oConfigPath) @@ -132,6 +135,10 @@ Public Class DocumentViewer UpdateMainUi() End Sub + Private Sub SearchFile(pSearchQuery As String) + + End Sub + ''' ''' Terminate Viewer, freeing up resources and deleting temp files ''' @@ -676,7 +683,29 @@ Public Class DocumentViewer txtCurrentPage.Enabled = False End Select + End Sub + Private Sub btnSearch2_ItemClick(sender As Object, e As XtraBars.ItemClickEventArgs) Handles btnSearch2.ItemClick + _Search.SearchAll(txtSearch.EditValue.ToString) + End Sub + + Private Sub btnPrevHighlight_ItemClick(sender As Object, e As XtraBars.ItemClickEventArgs) Handles btnPrevHighlight.ItemClick + _Search.PrevHighlight() + End Sub + + Private Sub btnNextHighlight_ItemClick(sender As Object, e As XtraBars.ItemClickEventArgs) Handles btnNextHighlight.ItemClick + _Search.NextHighlight() + End Sub + + Private Sub txtSearch_EditValueChanged(sender As Object, e As EventArgs) Handles txtSearch.EditValueChanged + If String.IsNullOrEmpty(txtSearch.EditValue) Then + btnPrevHighlight.Enabled = False + btnNextHighlight.Enabled = False + + Else + btnPrevHighlight.Enabled = True + btnNextHighlight.Enabled = True + End If End Sub #End Region diff --git a/Controls.DocumentViewer/DocumentViewer.vbproj b/Controls.DocumentViewer/DocumentViewer.vbproj index f7fa0295..8ced72a4 100644 --- a/Controls.DocumentViewer/DocumentViewer.vbproj +++ b/Controls.DocumentViewer/DocumentViewer.vbproj @@ -131,7 +131,7 @@ - + DocumentViewer.vb @@ -161,6 +161,7 @@ Settings.settings True +