mirror of
https://github.com/EverythingWindows/ShiftOS-TheRevival-Old.git
synced 2025-01-23 02:12:14 +00:00
247 lines
No EOL
12 KiB
VB.net
247 lines
No EOL
12 KiB
VB.net
Imports System.IO
|
|
|
|
Public Class Console
|
|
Public TrackPos As Integer 'Tracking the position of the caret in order to not bypass the user@hostname string
|
|
Public DefaultPrompt As String 'Default prompt to display in ShiftOS, usually it's user@hostname
|
|
Public BadCommand As Boolean 'Detect if it's a bad command or not
|
|
Public DisplayStory As Integer 'Keep record for displaying the DevX's or other's monologue
|
|
Public StoryToTell As String 'Which chapter that you're going to be in
|
|
Public ShouldChange As Boolean = False 'Indicates if the interpreter should changed to a specific program
|
|
Public ChangeInterpreter As Boolean = False 'Default interpreter is Terminal, if it's changed to True, there'll be other program used by Console
|
|
Public CurrentInterpreter As String 'Shows what program is using Console
|
|
Public CurrentDirectory As String 'Current Directory for ShiftOS Explorer
|
|
Public Pseudodir As String 'Pseudo-directory for ShiftFS
|
|
Public ToolBarUse As Boolean = False 'Either any program is using ToolBar or not
|
|
Public ReleaseCursor As Boolean = False 'Release cursor from TrackPos
|
|
Public ShOSKey As String 'DOSKEY tracking string for ShiftOS
|
|
Public Secure As Boolean 'Define either Secure Text mode is enabled or not (experimental!)
|
|
Public SecureString As String 'String for Secure Text mode (experimental)
|
|
Public DuWM_PID As Integer 'DuWM Process ID
|
|
|
|
Private Sub Console_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
With ShortcutHandler
|
|
.WorkerSupportsCancellation = True
|
|
End With
|
|
Console_Full()
|
|
InitializeTerminal()
|
|
End Sub
|
|
|
|
Private Sub txtterm_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
|
|
KeyInput = e.KeyData
|
|
InputKey = e.KeyData
|
|
ShortcutHandle()
|
|
If ReleaseCursor = True Then
|
|
|
|
Else
|
|
Select Case e.KeyData
|
|
Case Keys.Enter
|
|
e.SuppressKeyPress = True
|
|
If Secure = True Then
|
|
Secure = False
|
|
TextBox1.ReadOnly = False
|
|
Terminal_ReadCommand()
|
|
NewLine(SecureString)
|
|
Terminal_PrintPrompt()
|
|
SecureString = Nothing
|
|
TextRebind()
|
|
Else
|
|
If TextBox1.ReadOnly = True Then
|
|
|
|
Else
|
|
Terminal_ReadCommand()
|
|
If Strings.AvailableFeature(18) = 1 Then
|
|
ShOSKey_InputCommand(command)
|
|
End If
|
|
If ChangeInterpreter = True Then
|
|
DoChildCommand()
|
|
Terminal_PrintPrompt()
|
|
TextRebind()
|
|
Else
|
|
Terminal_DoCommand()
|
|
Terminal_PrintPrompt()
|
|
TextRebind()
|
|
End If
|
|
End If
|
|
End If
|
|
TrackPos = 0
|
|
Case Keys.ShiftKey, Keys.LShiftKey, Keys.RShiftKey, Keys.Alt, Keys.ControlKey, Keys.LWin, Keys.RWin
|
|
e.SuppressKeyPress = True
|
|
TrackPos = TrackPos
|
|
Case Keys.Back
|
|
If TrackPos <= 0 Then
|
|
e.SuppressKeyPress = True
|
|
Else
|
|
TrackPos = TrackPos - 1
|
|
'If TextBox1.SelectedText.Length < 1 Then
|
|
' TrackPos = TrackPos - 1
|
|
'Else
|
|
' e.SuppressKeyPress = True
|
|
'End If
|
|
End If
|
|
Case Keys.Right
|
|
If TextBox1.SelectionStart = TextBox1.TextLength Then
|
|
Else
|
|
TrackPos = TrackPos + 1
|
|
End If
|
|
'If TrackPos <= 0 Then
|
|
' Dim CommandChar As String
|
|
' CommandChar = TextBox1.Lines(TextBox1.Lines.Length - 1)
|
|
' CommandChar = CommandChar.Replace(DefaultPrompt, "")
|
|
' TrackPos = CommandChar.Length - 1
|
|
' TextBox1.Select(TextBox1.TextLength, 0)
|
|
' TextBox1.ScrollToCaret()
|
|
'End If
|
|
Case Keys.Left
|
|
If TextBox1.SelectionStart = 0 Then
|
|
e.SuppressKeyPress = True
|
|
Else
|
|
TrackPos = TrackPos - 1
|
|
End If
|
|
If TrackPos <= 0 Then
|
|
Dim CommandChar As String
|
|
CommandChar = TextBox1.Lines(TextBox1.Lines.Length - 1)
|
|
CommandChar = CommandChar.Replace(DefaultPrompt, "")
|
|
TrackPos = CommandChar.Length - 1
|
|
TextBox1.Select(TextBox1.TextLength, 0)
|
|
TextBox1.ScrollToCaret()
|
|
End If
|
|
'If TrackPos < 1 Then
|
|
' e.SuppressKeyPress = True
|
|
' TrackPos = TrackPos - 1
|
|
'Else
|
|
' TrackPos = TrackPos - 2
|
|
'End If
|
|
Case Keys.Up
|
|
e.SuppressKeyPress = True
|
|
If Strings.AvailableFeature(18) = 1 Then
|
|
ShOSKey_Display()
|
|
TextRebind()
|
|
End If
|
|
Case Keys.Down
|
|
e.SuppressKeyPress = True
|
|
If Strings.AvailableFeature(18) = 1 Then
|
|
ShOSKey_Display()
|
|
TextRebind()
|
|
End If
|
|
Case Else
|
|
If Secure = True Then
|
|
If e.Modifiers = Keys.Shift Then
|
|
SecureString = SecureString & Chr(e.KeyValue)
|
|
Else
|
|
SecureString = SecureString & Chr(e.KeyValue + 32)
|
|
End If
|
|
Else
|
|
TrackPos = TrackPos + 1
|
|
End If
|
|
End Select
|
|
End If
|
|
'If e.KeyCode = Keys.Enter Then
|
|
' 'If command = "clear" Then
|
|
' ' txtterm.Text = txtterm.Text + ShiftOSDesktop.username & "@" & ShiftOSDesktop.osname & " $> "
|
|
' ' txtterm.Select(txtterm.Text.Length, 0)
|
|
|
|
' 'Else
|
|
' ' txtterm.Text = txtterm.Text + Environment.NewLine & ShiftOSDesktop.username & "@" & ShiftOSDesktop.osname & " $> "
|
|
' ' txtterm.Select(txtterm.Text.Length, 0)
|
|
' 'End If
|
|
'Else
|
|
' If e.KeyCode = Keys.Back Then
|
|
' Else
|
|
' TrackPos = TrackPos + 1
|
|
' End If
|
|
'End If
|
|
|
|
'If e.KeyCode = Keys.Back Then
|
|
' 'If TrackPos < 1 Then
|
|
' ' e.SuppressKeyPress = True
|
|
' 'Else
|
|
' ' If TextBox1.SelectedText.Length < 1 Then
|
|
' ' TrackPos = TrackPos - 1
|
|
' ' Else
|
|
' ' e.SuppressKeyPress = True
|
|
' ' End If
|
|
' 'End If
|
|
'End If
|
|
End Sub
|
|
|
|
Private Sub TextBox1_Click(sender As Object, e As EventArgs) Handles TextBox1.Click, TextBox1.MouseDoubleClick
|
|
TextRebind()
|
|
End Sub
|
|
|
|
Private Sub StoryOnlyTimer_Tick(sender As Object, e As EventArgs) Handles StoryOnlyTimer.Tick
|
|
StoryLineIntro(DisplayStory)
|
|
DisplayStory = DisplayStory + 1
|
|
End Sub
|
|
|
|
Private Sub InfoBarTimer_Tick(sender As Object, e As EventArgs) Handles InfoBarTimer.Tick
|
|
InfoBar.Text = "|"
|
|
If Strings.AvailableFeature(5) = "1" Then
|
|
InfoBar.Text = InfoBar.Text & " " & Math.Floor(Date.Now.Subtract(Date.Today).TotalSeconds) & " |"
|
|
ElseIf Strings.AvailableFeature(5) = "3" Then
|
|
If Strings.AvailableFeature(6) = "1" Then
|
|
InfoBar.Text = InfoBar.Text & " " & Math.Floor(Date.Now.Subtract(Date.Today).TotalMinutes) & " |"
|
|
ElseIf Strings.AvailableFeature(6) = "3" Then
|
|
If Strings.AvailableFeature(7) = "1" Then
|
|
InfoBar.Text = InfoBar.Text & " " & Math.Floor(Date.Now.Subtract(Date.Today).TotalHours) & " |"
|
|
ElseIf Strings.AvailableFeature(7) = "3" Then
|
|
If Strings.AvailableFeature(12) = "1" Then
|
|
If Date.Now.Hour < 12 Then
|
|
InfoBar.Text = InfoBar.Text & Environment.NewLine & " " & TimeOfDay.Hour & " AM |"
|
|
Else
|
|
InfoBar.Text = InfoBar.Text & Environment.NewLine & " " & TimeOfDay.Hour - 12 & " PM |"
|
|
End If
|
|
ElseIf Strings.AvailableFeature(12) = "3" Then
|
|
If Strings.AvailableFeature(23) = "1" Then
|
|
InfoBar.Text = InfoBar.Text & Environment.NewLine & " " & TimeOfDay.Hour & ":" & TimeOfDay.Minute & " |"
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
If Strings.AvailableFeature(24) = 1 Then
|
|
InfoBar.Text = InfoBar.Text & " " & Date.Now.DayOfYear & " |"
|
|
ElseIf Strings.AvailableFeature(24) = 3 Then
|
|
If Strings.AvailableFeature(25) = 1 Then
|
|
Dim WeekOfYear As String = Date.Now.DayOfYear / 7
|
|
InfoBar.Text = InfoBar.Text & " " & WeekOfYear.Substring(0, 2) & " |"
|
|
ElseIf Strings.AvailableFeature(25) = 3 Then
|
|
If Strings.AvailableFeature(26) = 1 Then
|
|
InfoBar.Text = InfoBar.Text & " " & Date.Now.Month & " |"
|
|
ElseIf Strings.AvailableFeature(26) = 3 Then
|
|
If Strings.AvailableFeature(27) = 1 Then
|
|
InfoBar.Text = InfoBar.Text & " " & Date.Now.Year & " |"
|
|
ElseIf Strings.AvailableFeature(27) = 3 Then
|
|
If Strings.AvailableFeature(28) = 1 Then
|
|
InfoBar.Text = InfoBar.Text & " " & Date.Now.Day & "/" & Date.Now.Month & " |"
|
|
ElseIf Strings.AvailableFeature(28) = 3 Then
|
|
If Strings.AvailableFeature(29) = 1 Then
|
|
InfoBar.Text = InfoBar.Text & " " & Date.Now.Day & "/" & Date.Now.Month & "/" & Date.Now.Year & " |"
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
End If
|
|
If Strings.OnceInfo(0) = "Yes" Then
|
|
InfoBar.Text = InfoBar.Text & " root |"
|
|
Else
|
|
InfoBar.Text = InfoBar.Text & " " & Strings.ComputerInfo(1) & " |"
|
|
End If
|
|
InfoBar.Text = InfoBar.Text & " " & CurrentInterpreter & " |"
|
|
InfoBar.Text = InfoBar.Text & " " & Strings.ComputerInfo(2) & " CP |"
|
|
InfoBar.Text = InfoBar.Text & " " & TrackPos & " |"
|
|
End Sub
|
|
|
|
Private Sub TextBox1_Click(sender As Object, e As MouseEventArgs) Handles TextBox1.MouseDoubleClick, TextBox1.Click
|
|
|
|
End Sub
|
|
|
|
Private Sub ConsoleFontHandle_Tick(sender As Object, e As EventArgs) Handles ConsoleFontHandle.Tick
|
|
If InfoBar.Font IsNot GUISCustomizations.GUIConsoleFont Then
|
|
InfoBar.Font = GUISCustomizations.GUIConsoleFont
|
|
End If
|
|
If ToolBar.Font IsNot GUISCustomizations.GUIConsoleFont Then
|
|
ToolBar.Font = GUISCustomizations.GUIConsoleFont
|
|
End If
|
|
End Sub
|
|
End Class |