This commit is contained in:
stax76
2017-09-02 04:35:24 +02:00
parent d84127f178
commit c4cf7ed11b
44 changed files with 7143 additions and 97 deletions

133
vbnet/MainModule.vb Normal file
View File

@@ -0,0 +1,133 @@
Namespace UI
Public Module MainModule
Public ReadOnly BR As String = Environment.NewLine
Public ReadOnly BR2 As String = Environment.NewLine + Environment.NewLine
Sub MsgInfo(text As String, Optional content As String = Nothing)
Msg(text, content, MsgIcon.Info, TaskDialogButtons.Ok)
End Sub
Sub MsgError(text As String, Optional content As String = Nothing)
If text = "" Then text = content
If text = "" Then Exit Sub
Using td As New TaskDialog(Of String)
td.AllowCancel = False
If content = "" Then
If text.Length < 80 Then
td.MainInstruction = text
Else
td.Content = text
End If
Else
td.MainInstruction = text
td.Content = content
End If
td.MainIcon = TaskDialogIcon.Error
td.Footer = "[copymsg: Copy Message]"
td.Show()
End Using
End Sub
Sub MsgWarn(text As String, Optional content As String = Nothing)
Msg(text, content, MsgIcon.Warning, TaskDialogButtons.Ok)
End Sub
Function MsgOK(text As String) As Boolean
Return Msg(text, Nothing, MsgIcon.Question, TaskDialogButtons.OkCancel) = DialogResult.OK
End Function
Function MsgQuestion(text As String,
Optional buttons As TaskDialogButtons = TaskDialogButtons.OkCancel) As DialogResult
Return Msg(text, Nothing, MsgIcon.Question, buttons)
End Function
Function MsgQuestion(heading As String,
content As String,
Optional buttons As TaskDialogButtons = TaskDialogButtons.OkCancel) As DialogResult
Return Msg(heading, content, MsgIcon.Question, buttons)
End Function
Function Msg(mainInstruction As String,
content As String,
icon As MsgIcon,
buttons As TaskDialogButtons,
Optional defaultButton As DialogResult = DialogResult.None) As DialogResult
Try
If mainInstruction Is Nothing Then mainInstruction = ""
Using td As New TaskDialog(Of DialogResult)
td.AllowCancel = False
td.DefaultButton = defaultButton
If content Is Nothing Then
If mainInstruction.Length < 80 Then
td.MainInstruction = mainInstruction
Else
td.Content = mainInstruction
End If
Else
td.MainInstruction = mainInstruction
td.Content = content
End If
Select Case icon
Case MsgIcon.Error
td.MainIcon = TaskDialogIcon.Error
Case MsgIcon.Warning
td.MainIcon = TaskDialogIcon.Warning
Case MsgIcon.Info
td.MainIcon = TaskDialogIcon.Info
End Select
If buttons = TaskDialogButtons.OkCancel Then
td.AddButton("OK", DialogResult.OK)
td.AddButton("Cancel", DialogResult.Cancel) 'don't use system language
Else
td.CommonButtons = buttons
End If
Return td.Show()
End Using
Catch ex As Exception
MsgBox(mainInstruction + content, MessageBoxIcon.Error)
End Try
End Function
Sub MsgException(e As Exception, Optional msg As String = Nothing, Optional timeout As Integer = 0)
Try
Using td As New TaskDialog(Of String)
If msg = "" Then
td.MainInstruction = e.GetType.Name + $" ({Application.ProductVersion})"
Else
td.MainInstruction = msg
End If
td.Timeout = timeout
td.Content = e.Message
td.MainIcon = TaskDialogIcon.Error
td.ExpandedInformation = e.ToString
td.Footer = "[copymsg: Copy Message]"
td.Show()
End Using
Catch
MsgBox(e.GetType.Name + BR2 + e.Message + BR2 + e.ToString, MessageBoxIcon.Error)
End Try
End Sub
Sub MsgBox(text As String, icon As MessageBoxIcon)
MessageBox.Show(text, Application.ProductName, MessageBoxButtons.OK, icon)
End Sub
End Module
Public Enum MsgIcon
None = MessageBoxIcon.None
Info = MessageBoxIcon.Information
[Error] = MessageBoxIcon.Error
Warning = MessageBoxIcon.Warning
Question = MessageBoxIcon.Question
End Enum
End Namespace