code style improvements
This commit is contained in:
parent
8e61ed0285
commit
c854c8a4e8
|
|
@ -195,10 +195,10 @@ Namespace Terminal.ProgressBar
|
|||
Me.y = Y
|
||||
|
||||
If Not disabled Then
|
||||
AddHandler TerminalEvents.Resize, AddressOf __resize
|
||||
AddHandler TerminalEvents.Resize, AddressOf consoleWindowResize
|
||||
|
||||
Try
|
||||
Call __resize(Nothing, Nothing)
|
||||
Call consoleWindowResize(Nothing, Nothing)
|
||||
Catch ex As Exception
|
||||
|
||||
End Try
|
||||
|
|
@ -214,7 +214,7 @@ Namespace Terminal.ProgressBar
|
|||
Call Me.New(title, Y:=Console.CursorTop, CLS:=False)
|
||||
End Sub
|
||||
|
||||
Private Sub __resize(size As Size, old As Size)
|
||||
Private Sub consoleWindowResize(size As Size, old As Size)
|
||||
Console.ResetColor()
|
||||
Console.SetCursorPosition(0, y)
|
||||
Console.BackgroundColor = ConsoleColor.DarkCyan
|
||||
|
|
@ -270,7 +270,7 @@ Namespace Terminal.ProgressBar
|
|||
''' </summary>
|
||||
''' <param name="p%"></param>
|
||||
''' <param name="details$"></param>
|
||||
Private Sub __tick(p%, details$)
|
||||
Private Sub tick(p%, details$)
|
||||
Console.BackgroundColor = ConsoleColor.Yellow
|
||||
' /运算返回完整的商,包括余数,SetCursorPosition会自动四舍五入
|
||||
Dim cx As Integer = p * (Console.WindowWidth - 2) / 100
|
||||
|
|
@ -278,7 +278,7 @@ Namespace Terminal.ProgressBar
|
|||
Console.SetCursorPosition(0, y)
|
||||
|
||||
If p < current Then
|
||||
Call __resize(Nothing, Nothing)
|
||||
Call consoleWindowResize(Nothing, Nothing)
|
||||
End If
|
||||
|
||||
For i As Integer = 0 To cx
|
||||
|
|
@ -306,7 +306,7 @@ Namespace Terminal.ProgressBar
|
|||
current = percent
|
||||
|
||||
If Not disabled Then
|
||||
Call __tick(current, details)
|
||||
Call tick(current, details)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
|
@ -319,7 +319,7 @@ Namespace Terminal.ProgressBar
|
|||
If disposing Then
|
||||
If Not disabled Then
|
||||
' TODO: dispose managed state (managed objects).
|
||||
RemoveHandler TerminalEvents.Resize, AddressOf __resize
|
||||
RemoveHandler TerminalEvents.Resize, AddressOf consoleWindowResize
|
||||
End If
|
||||
|
||||
Call timer.Stop()
|
||||
|
|
|
|||
|
|
@ -59,33 +59,38 @@ Namespace Terminal.ProgressBar
|
|||
|
||||
Public Class SwayBar : Inherits AbstractBar
|
||||
|
||||
Private bar As String
|
||||
Private pointer As String
|
||||
Private _blankPointer As String
|
||||
Private counter As Integer
|
||||
Private currdir As direction
|
||||
Dim bar As String
|
||||
Dim pointer As String
|
||||
Dim blankPointer As String
|
||||
Dim counter As Integer
|
||||
Dim currdir As direction
|
||||
|
||||
Private Enum direction
|
||||
right
|
||||
left
|
||||
End Enum
|
||||
|
||||
Public Sub New()
|
||||
MyBase.New()
|
||||
Me.bar = "| |"
|
||||
Me.pointer = "***"
|
||||
Me._blankPointer = Me.BlankPointer()
|
||||
Me.currdir = direction.right
|
||||
Me.counter = 1
|
||||
|
||||
bar = "| |"
|
||||
pointer = "***"
|
||||
blankPointer = buildBlankPointer()
|
||||
currdir = direction.right
|
||||
counter = 1
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' sets the atribute blankPointer with a empty string the same length that the pointer
|
||||
''' </summary>
|
||||
''' <returns>A string filled with space characters</returns>
|
||||
Private Function BlankPointer() As String
|
||||
Private Function buildBlankPointer() As String
|
||||
Dim blank As New StringBuilder()
|
||||
For cont As Integer = 0 To Me.pointer.Length - 1
|
||||
|
||||
For cont As Integer = 0 To pointer.Length - 1
|
||||
blank.Append(" ")
|
||||
Next
|
||||
|
||||
Return blank.ToString()
|
||||
End Function
|
||||
|
||||
|
|
@ -93,7 +98,7 @@ Namespace Terminal.ProgressBar
|
|||
''' reset the bar to its original state
|
||||
''' </summary>
|
||||
Private Sub ClearBar()
|
||||
Me.bar = Me.bar.Replace(Me.pointer, Me._blankPointer)
|
||||
bar = bar.Replace(pointer, blankPointer)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
|
|
@ -102,29 +107,33 @@ Namespace Terminal.ProgressBar
|
|||
''' <param name="start">start index</param>
|
||||
''' <param name="end">end index</param>
|
||||
Private Sub PlacePointer(start As Integer, [end] As Integer)
|
||||
Me.ClearBar()
|
||||
Me.bar = Me.bar.Remove(start, [end])
|
||||
Me.bar = Me.bar.Insert(start, Me.pointer)
|
||||
Call ClearBar()
|
||||
|
||||
bar = bar.Remove(start, [end])
|
||||
bar = bar.Insert(start, pointer)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' prints the progress bar acorrding to pointers and current direction
|
||||
''' </summary>
|
||||
Public Overrides Sub [Step]()
|
||||
If Me.currdir = direction.right Then
|
||||
Me.PlacePointer(counter, Me.pointer.Length)
|
||||
Me.counter += 1
|
||||
If Me.counter + Me.pointer.Length = Me.bar.Length Then
|
||||
Me.currdir = direction.left
|
||||
If currdir = direction.right Then
|
||||
PlacePointer(counter, pointer.Length)
|
||||
counter += 1
|
||||
|
||||
If counter + pointer.Length = bar.Length Then
|
||||
currdir = direction.left
|
||||
End If
|
||||
Else
|
||||
Me.PlacePointer(counter - Me.pointer.Length, Me.pointer.Length)
|
||||
Me.counter -= 1
|
||||
If Me.counter = Me.pointer.Length Then
|
||||
Me.currdir = direction.right
|
||||
PlacePointer(counter - pointer.Length, pointer.Length)
|
||||
counter -= 1
|
||||
|
||||
If counter = pointer.Length Then
|
||||
currdir = direction.right
|
||||
End If
|
||||
End If
|
||||
Console.Write(Me.bar & vbCr)
|
||||
|
||||
Call Console.Write(bar & vbCr)
|
||||
End Sub
|
||||
End Class
|
||||
End Namespace
|
||||
|
|
|
|||
|
|
@ -1,54 +1,110 @@
|
|||
#Region "Microsoft.VisualBasic::b0d6b9f9fff39c2db1dd7121d7223ca9, Microsoft.VisualBasic.Core\ApplicationServices\Tools\WinForm\Extensions.vb"
|
||||
|
||||
' Author:
|
||||
'
|
||||
' asuka (amethyst.asuka@gcmodeller.org)
|
||||
' xie (genetics@smrucc.org)
|
||||
' xieguigang (xie.guigang@live.com)
|
||||
'
|
||||
' Copyright (c) 2018 GPL3 Licensed
|
||||
'
|
||||
'
|
||||
' GNU GENERAL PUBLIC LICENSE (GPL3)
|
||||
'
|
||||
'
|
||||
' This program is free software: you can redistribute it and/or modify
|
||||
' it under the terms of the GNU General Public License as published by
|
||||
' the Free Software Foundation, either version 3 of the License, or
|
||||
' (at your option) any later version.
|
||||
'
|
||||
' This program is distributed in the hope that it will be useful,
|
||||
' but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
' GNU General Public License for more details.
|
||||
'
|
||||
' You should have received a copy of the GNU General Public License
|
||||
' along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
' Author:
|
||||
'
|
||||
' asuka (amethyst.asuka@gcmodeller.org)
|
||||
' xie (genetics@smrucc.org)
|
||||
' xieguigang (xie.guigang@live.com)
|
||||
'
|
||||
' Copyright (c) 2018 GPL3 Licensed
|
||||
'
|
||||
'
|
||||
' GNU GENERAL PUBLIC LICENSE (GPL3)
|
||||
'
|
||||
'
|
||||
' This program is free software: you can redistribute it and/or modify
|
||||
' it under the terms of the GNU General Public License as published by
|
||||
' the Free Software Foundation, either version 3 of the License, or
|
||||
' (at your option) any later version.
|
||||
'
|
||||
' This program is distributed in the hope that it will be useful,
|
||||
' but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
' GNU General Public License for more details.
|
||||
'
|
||||
' You should have received a copy of the GNU General Public License
|
||||
' along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
|
||||
' /********************************************************************************/
|
||||
' /********************************************************************************/
|
||||
|
||||
' Summaries:
|
||||
' Summaries:
|
||||
|
||||
' Module Extensions
|
||||
'
|
||||
' Function: AddFilesHistory
|
||||
'
|
||||
' Sub: AddFileHistory, AddRowData, Clear, WriteLine
|
||||
'
|
||||
'
|
||||
' /********************************************************************************/
|
||||
' Module Extensions
|
||||
'
|
||||
' Function: AddFilesHistory
|
||||
'
|
||||
' Sub: AddFileHistory, AddRowData, Clear, WriteLine
|
||||
'
|
||||
'
|
||||
' /********************************************************************************/
|
||||
|
||||
#End Region
|
||||
|
||||
Imports System.Runtime.CompilerServices
|
||||
Imports Microsoft.VisualBasic.Linq
|
||||
Imports Keyboard = System.Windows.Forms.Keys
|
||||
|
||||
Namespace Windows.Forms
|
||||
|
||||
Public Module Extensions
|
||||
|
||||
ReadOnly chars As New Dictionary(Of Keys, Char)
|
||||
|
||||
<Extension>
|
||||
Public Function IsPrintableCharacter(key As Keys) As Boolean
|
||||
Return chars.ContainsKey(key)
|
||||
End Function
|
||||
|
||||
<Extension>
|
||||
Public Function ToChar(key As Keys) As Char
|
||||
If Not key.IsPrintableCharacter Then
|
||||
Return Nothing
|
||||
Else
|
||||
Return chars(key)
|
||||
End If
|
||||
End Function
|
||||
|
||||
Sub New()
|
||||
chars(Keyboard.A) = "a"
|
||||
chars(Keyboard.B) = "b"
|
||||
chars(Keyboard.C) = "c"
|
||||
chars(Keyboard.D) = "d"
|
||||
chars(Keyboard.E) = "e"
|
||||
chars(Keyboard.F) = "f"
|
||||
chars(Keyboard.G) = "g"
|
||||
chars(Keyboard.H) = "h"
|
||||
chars(Keyboard.I) = "i"
|
||||
chars(Keyboard.J) = "j"
|
||||
chars(Keyboard.K) = "k"
|
||||
chars(Keyboard.L) = "l"
|
||||
chars(Keyboard.M) = "m"
|
||||
chars(Keyboard.N) = "n"
|
||||
chars(Keyboard.O) = "o"
|
||||
chars(Keyboard.P) = "p"
|
||||
chars(Keyboard.Q) = "q"
|
||||
chars(Keyboard.R) = "r"
|
||||
chars(Keyboard.S) = "s"
|
||||
chars(Keyboard.T) = "t"
|
||||
chars(Keyboard.U) = "u"
|
||||
chars(Keyboard.V) = "v"
|
||||
chars(Keyboard.W) = "w"
|
||||
chars(Keyboard.X) = "x"
|
||||
chars(Keyboard.Y) = "y"
|
||||
chars(Keyboard.Z) = "z"
|
||||
chars(Keyboard.D0) = "0" : chars(Keyboard.NumPad0) = "0"
|
||||
chars(Keyboard.D0) = "1" : chars(Keyboard.NumPad0) = "1"
|
||||
chars(Keyboard.D0) = "2" : chars(Keyboard.NumPad0) = "2"
|
||||
chars(Keyboard.D0) = "3" : chars(Keyboard.NumPad0) = "3"
|
||||
chars(Keyboard.D0) = "4" : chars(Keyboard.NumPad0) = "4"
|
||||
chars(Keyboard.D0) = "5" : chars(Keyboard.NumPad0) = "5"
|
||||
chars(Keyboard.D0) = "6" : chars(Keyboard.NumPad0) = "6"
|
||||
chars(Keyboard.D0) = "7" : chars(Keyboard.NumPad0) = "7"
|
||||
chars(Keyboard.D0) = "8" : chars(Keyboard.NumPad0) = "8"
|
||||
chars(Keyboard.D0) = "9" : chars(Keyboard.NumPad0) = "9"
|
||||
End Sub
|
||||
|
||||
<Extension>
|
||||
Public Sub AddRowData(view As DataGridView, name$, ParamArray values As Object())
|
||||
Call view.Rows.Add(values)
|
||||
|
|
|
|||
|
|
@ -128,25 +128,29 @@ Namespace Windows.Forms
|
|||
Dim parent As Control
|
||||
|
||||
Sub New(parent As Control)
|
||||
Call MyBase.New(__cmd)
|
||||
Me.parent = parent
|
||||
__init()
|
||||
Call MyBase.New(getCmd)
|
||||
Call init(parent)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Init by win32 API
|
||||
''' </summary>
|
||||
Private Sub __init()
|
||||
SetParent(hwnd, parent.Handle) ' 直接嵌套到TabPage1内
|
||||
SetWindowLong(hwnd, (-16), GetWindowLong(hwnd, (-16)) And (Not WS_CAPTION) And (Not WS_VSCROLL) And (Not WS_HSCROLL)) ' 设置窗体样式
|
||||
SetWindowPos(parent.Handle, -1, 100, 100, 100, 100, SWP_SHOWWINDOW) ' 改变子窗体位置
|
||||
Private Sub init(parent As Control)
|
||||
' 直接嵌套到TabPage1内
|
||||
SetParent(hwnd, parent.Handle)
|
||||
' 设置窗体样式
|
||||
SetWindowLong(hwnd, (-16), GetWindowLong(hwnd, (-16)) And (Not WS_CAPTION) And (Not WS_VSCROLL) And (Not WS_HSCROLL))
|
||||
' 改变子窗体位置
|
||||
SetWindowPos(parent.Handle, -1, 100, 100, 100, 100, SWP_SHOWWINDOW)
|
||||
|
||||
Me.parent = parent
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Start a new cmd.exe instance for the terminal mock
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
Private Shared Function __cmd() As String
|
||||
Private Shared Function getCmd() As String
|
||||
Call Process.Start("cmd.exe")
|
||||
Call Thread.Sleep(18) ' 过快下面的FindWindow有可能找不到窗体
|
||||
Return "c:\windows\system32\cmd.exe"
|
||||
|
|
|
|||
Loading…
Reference in New Issue