Monorepo/Controls.DocumentViewer/frmViewerPrint.vb
2019-10-08 16:05:03 +02:00

137 lines
4.8 KiB
VB.net

Option Explicit On
Option Infer On
Option Strict On
Imports System.Windows.Forms
Imports GdPicture14
Public Class frmViewerPrint
Enum PrintOrientation
AutoDetection
Portrait
Paysage
End Enum
Enum PagesToPrint
All
Selection
Current
Range
End Enum
Public Structure PrintSettings
Public Printer As String
Public Copies As Short
Public Collate As Boolean
Public PrintSize As PrintSizeOption
Public PrintAlignment As PrintAlignment
Public Orientation As PrintOrientation
Public PagesToPrint As PagesToPrint
Public PageRange As String
End Structure
Private m_printSettings As PrintSettings
Private ReadOnly m_owner As GdViewer
Public ReadOnly Property printConfiguration() As PrintSettings
Get
Return m_printSettings
End Get
End Property
Private ReadOnly m_isSelectionPartial As Boolean
Private ReadOnly m_isEmptySelection As Boolean
Public Sub New(ByVal owner As GdViewer)
InitializeComponent()
m_owner = owner
End Sub
Private Sub frmPrint_Load(ByVal sender As Object, ByVal e As EventArgs)
cmbPrinterList.Items.Clear()
For i As Integer = 1 To m_owner.PrintGetPrintersCount()
Dim printerName As String = m_owner.PrintGetPrinterName(i)
cmbPrinterList.Items.Add(printerName)
If printerName = m_owner.PrintGetActivePrinter() Then
cmbPrinterList.SelectedIndex = cmbPrinterList.Items.IndexOf(printerName)
End If
Next i
cmbPrintSize.Items.Add("Actual size") '0 = PrintSizeOptionActual
cmbPrintSize.Items.Add("Fit to page") '1 = PrintSizeOptionFit, default
cmbPrintSize.Items.Add("Shrink oversized pages") '2 = PrintSizeOptionShrinkOversized
cmbPrintSize.SelectedIndex = 2
cmbPrintAlignment.Items.Add("Middle left") '0 = PrintAlignmentMiddleLeft
cmbPrintAlignment.Items.Add("Middle right") '1 = PrintAlignmentMiddleRight
cmbPrintAlignment.Items.Add("Middle center") '2 = PrintAlignmentMiddleCenter
cmbPrintAlignment.Items.Add("Default") '3 = PrintAlignmentDefault
cmbPrintAlignment.Items.Add("Top left") '4 = PrintAlignmentTopLeft
cmbPrintAlignment.Items.Add("Top right") '5 = PrintAlignmentTopRight
cmbPrintAlignment.Items.Add("Top center") '6 = PrintAlignmentTopCenter
cmbPrintAlignment.Items.Add("Bottom left") '7 = PrintAlignmentBottomLeft
cmbPrintAlignment.Items.Add("Bottom right") '8 = PrintAlignmentBottomRight
cmbPrintAlignment.Items.Add("Bottom center") '9 = PrintAlignmentBottomCenter
cmbPrintAlignment.SelectedIndex = 2
If m_isEmptySelection Then
rbPageRangeSelection.Enabled = False
Else
If m_isSelectionPartial Then
rbPageRangeSelection.Checked = True
End If
End If
txtPageRangeStart.Enabled = False
txtPageRangeEnd.Enabled = False
txtPageRangeStart.Text = "1"
txtPageRangeEnd.Text = m_owner.PageCount.ToString()
btnPrint.DialogResult = DialogResult.OK
btnCancel.DialogResult = DialogResult.Cancel
End Sub
Private Sub btnPrinterProperties_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnPrinterProperties.Click
End Sub
Private Sub cmbPrinterList_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cmbPrinterList.SelectedIndexChanged
End Sub
Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnCancel.Click
Me.Close()
End Sub
Private Sub rbPageRangeAll_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles rbPageRangeAll.CheckedChanged
rbPageRangeGeneric_CheckedChanged()
End Sub
Private Sub rbPageRangeSelection_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles rbPageRangeSelection.CheckedChanged
rbPageRangeGeneric_CheckedChanged()
End Sub
Private Sub rbPageRangeCurrent_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles rbPageRangeCurrent.CheckedChanged
rbPageRangeGeneric_CheckedChanged()
End Sub
Private Sub rbPageRangePages_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles rbPageRangePages.CheckedChanged
rbPageRangeGeneric_CheckedChanged()
End Sub
Private Sub rbPageRangeGeneric_CheckedChanged()
If rbPageRangePages.Checked Then
txtPageRangeStart.Enabled = True
txtPageRangeEnd.Enabled = True
Else
txtPageRangeStart.Enabled = False
txtPageRangeEnd.Enabled = False
End If
End Sub
Private Sub btnPrint_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnPrint.Click
End Sub
End Class