diff options
Diffstat (limited to 'shiftos_next/Terminal.vb')
| -rw-r--r-- | shiftos_next/Terminal.vb | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/shiftos_next/Terminal.vb b/shiftos_next/Terminal.vb new file mode 100644 index 0000000..8a94704 --- /dev/null +++ b/shiftos_next/Terminal.vb @@ -0,0 +1,146 @@ +Public Class Terminal + + Dim trackpos As Integer = 0 + + Public Sub terminal_Innitiate(sender As Object, e As EventArgs) Handles MyBase.Load + Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None + Me.WindowState = FormWindowState.Maximized + AddLine("user@shiftos ~$> ") + SelectBottom() + End Sub + + Public Sub SelectBottom() + txtterm.Select(txtterm.Text.Length, 0) + End Sub + + Public Sub Interpret(command As String) + command = command.ToLower + If command Like "help" Then + ShowHelp() + ElseIf command Like "shutdown" Then + Me.Close() + ElseIf command Like "" Then + 'This is here to make it so that the Terminal doesn't say "Wrong Command" if the user doesn't input anything. + Else + AddLine("Invalid command! Type ""help"" for a list of commands.") + End If + End Sub + + Public Sub ShowHelp() + AddLine("ShiftOS Help" & vbNewLine) + AddLine("Usage tips: " & vbNewLine) + AddLine(" - The terminal runs in full-screen.") + AddLine(" - There are no window managers or desktop environments.") + AddLine(" - Applications are fully text-based.") + AddLine(" - Terminal commands are case-insensitive.") + AddLine(" - The screen can only display Black and White." & vbNewLine) + AddLine("Commands: " & vbNewLine) + AddLine(" - shutdown: Shuts the system down.") + AddLine(" - help: Shows this screen.") + + + End Sub + + Public Sub AddLine(text As String) + txtterm.Text += vbNewLine + text + SelectBottom() + End Sub + + Dim firstuseconversation As Integer = 0 + + Private Sub tmrfirstuse_Tick(sender As Object, e As EventArgs) Handles tmrfirstuse.Tick + Select Case firstuseconversation + Case 0 + txtterm.ReadOnly = True + AddLine("IP Address 170.245.12.80 is connecting as ""DevX"".") + Case 1 + AddLine("DevX: It seems my updates have completly installed.") + Case 2 + AddLine("DevX: Unfortunately, due to your hard drive being formatted, you have lost all your data.") + Case 3 + AddLine("DevX: However, Don't worry! I've added some pretty cool features to the Terminal to make up for this.") + Case 4 + AddLine("DevX: I can't tell you much, except for ""Type Help for a list of commands"".") + Case 5 + AddLine("DevX: I've got to go, but I'll contact you as I develop more updates; and you test the OS.") + Case 6 + AddLine("User ""DevX"" has disconnected.") + Case 7 + txtterm.ResetText() + AddLine("user@shiftos ~$> ") + txtterm.ReadOnly = False + tmrfirstuse.Stop() + End Select + firstuseconversation += 1 + End Sub + + Private Sub txtterm_KeyDown(sender As Object, e As KeyEventArgs) Handles txtterm.KeyDown + Select Case e.KeyCode + Case Keys.ShiftKey + trackpos = trackpos - 1 + Case Keys.Alt + trackpos = trackpos - 1 + Case Keys.CapsLock + trackpos = trackpos - 1 + Case Keys.ControlKey + trackpos = trackpos - 1 + Case Keys.LWin + trackpos = trackpos - 1 + Case Keys.RWin + trackpos = trackpos - 1 + Case Keys.Right + If txtterm.SelectionStart = txtterm.TextLength Then + trackpos = trackpos - 1 + End If + Case Keys.Left + If trackpos < 1 Then + e.SuppressKeyPress = True + trackpos = trackpos - 1 + Else + trackpos = trackpos - 2 + End If + Case Keys.Up + e.SuppressKeyPress = True + trackpos = trackpos - 1 + Case Keys.Down + e.SuppressKeyPress = True + trackpos = trackpos - 1 + End Select + + If e.KeyCode = Keys.Enter Then + e.SuppressKeyPress = True + Dim command As String = txtterm.Lines(txtterm.Lines.Length - 1).Replace("user@shiftos ~$> ", "").ToLower + Interpret(command) + + If command = "clear" Then + txtterm.Text = "user@shiftos ~$> " + txtterm.Select(txtterm.Text.Length, 0) + + Else + AddLine("user@shiftos ~$> ") + txtterm.Select(txtterm.Text.Length, 0) + End If + + trackpos = 0 + 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 txtterm.SelectedText.Length < 1 Then + trackpos = trackpos - 1 + Else + e.SuppressKeyPress = True + End If + End If + End If + + SelectBottom() + End Sub +End Class
\ No newline at end of file |
