From 2fa56446be7a049994786931e9145043362e8adb Mon Sep 17 00:00:00 2001 From: EverythingWindows Date: Sun, 20 Nov 2022 16:43:01 +0700 Subject: Guide command, MathQuiz App, ShiftOS About, and more --- .../MainForms/Applications/Console.Designer.vb | 107 +++++++++ .../MainForms/Applications/Console.resx | 129 +++++++++++ .../MainForms/Applications/Console.vb | 239 +++++++++++++++++++++ 3 files changed, 475 insertions(+) create mode 100644 ShiftOS-TheRevival/MainForms/Applications/Console.Designer.vb create mode 100644 ShiftOS-TheRevival/MainForms/Applications/Console.resx create mode 100644 ShiftOS-TheRevival/MainForms/Applications/Console.vb (limited to 'ShiftOS-TheRevival/MainForms/Applications') diff --git a/ShiftOS-TheRevival/MainForms/Applications/Console.Designer.vb b/ShiftOS-TheRevival/MainForms/Applications/Console.Designer.vb new file mode 100644 index 0000000..78dbfbf --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/Applications/Console.Designer.vb @@ -0,0 +1,107 @@ + +Partial Class Console + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Me.TextBox1 = New System.Windows.Forms.TextBox() + Me.StoryOnlyTimer = New System.Windows.Forms.Timer(Me.components) + Me.InfoBar = New System.Windows.Forms.TextBox() + Me.InfoBarTimer = New System.Windows.Forms.Timer(Me.components) + Me.ToolBar = New System.Windows.Forms.TextBox() + Me.ShortcutHandler = New System.ComponentModel.BackgroundWorker() + Me.SuspendLayout() + ' + 'TextBox1 + ' + Me.TextBox1.BackColor = System.Drawing.Color.Black + Me.TextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.TextBox1.Dock = System.Windows.Forms.DockStyle.Fill + Me.TextBox1.Font = New System.Drawing.Font("Consolas", 11.0!) + Me.TextBox1.ForeColor = System.Drawing.Color.White + Me.TextBox1.Location = New System.Drawing.Point(0, 36) + Me.TextBox1.Multiline = True + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.ShortcutsEnabled = False + Me.TextBox1.Size = New System.Drawing.Size(800, 396) + Me.TextBox1.TabIndex = 0 + ' + 'StoryOnlyTimer + ' + ' + 'InfoBar + ' + Me.InfoBar.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.InfoBar.Dock = System.Windows.Forms.DockStyle.Bottom + Me.InfoBar.Font = New System.Drawing.Font("Consolas", 11.0!) + Me.InfoBar.ForeColor = System.Drawing.Color.Black + Me.InfoBar.Location = New System.Drawing.Point(0, 432) + Me.InfoBar.Name = "InfoBar" + Me.InfoBar.ReadOnly = True + Me.InfoBar.ShortcutsEnabled = False + Me.InfoBar.Size = New System.Drawing.Size(800, 18) + Me.InfoBar.TabIndex = 0 + Me.InfoBar.TabStop = False + Me.InfoBar.Text = "Infobar" + Me.InfoBar.TextAlign = System.Windows.Forms.HorizontalAlignment.Right + Me.InfoBar.Visible = False + ' + 'InfoBarTimer + ' + ' + 'ToolBar + ' + Me.ToolBar.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.ToolBar.Dock = System.Windows.Forms.DockStyle.Top + Me.ToolBar.Font = New System.Drawing.Font("Consolas", 11.0!) + Me.ToolBar.Location = New System.Drawing.Point(0, 0) + Me.ToolBar.Multiline = True + Me.ToolBar.Name = "ToolBar" + Me.ToolBar.Size = New System.Drawing.Size(800, 36) + Me.ToolBar.TabIndex = 1 + Me.ToolBar.Visible = False + ' + 'Console + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.Red + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Controls.Add(Me.TextBox1) + Me.Controls.Add(Me.InfoBar) + Me.Controls.Add(Me.ToolBar) + Me.ForeColor = System.Drawing.Color.White + Me.Name = "Console" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "Terminal" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents TextBox1 As TextBox + Friend WithEvents StoryOnlyTimer As Timer + Friend WithEvents InfoBar As TextBox + Friend WithEvents InfoBarTimer As Timer + Friend WithEvents ToolBar As TextBox + Public WithEvents ShortcutHandler As System.ComponentModel.BackgroundWorker +End Class diff --git a/ShiftOS-TheRevival/MainForms/Applications/Console.resx b/ShiftOS-TheRevival/MainForms/Applications/Console.resx new file mode 100644 index 0000000..38ebc49 --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/Applications/Console.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 153, 17 + + + 274, 17 + + \ No newline at end of file diff --git a/ShiftOS-TheRevival/MainForms/Applications/Console.vb b/ShiftOS-TheRevival/MainForms/Applications/Console.vb new file mode 100644 index 0000000..3ae1603 --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/Applications/Console.vb @@ -0,0 +1,239 @@ +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 StayAtChapter As Boolean = False 'If this set to true, then intro for chapters are mostly going to be in + 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) + + Private Sub Console_Load(sender As Object, e As EventArgs) Handles MyBase.Load + With ShortcutHandler + .WorkerSupportsCancellation = True + End With + Console_Full() + Cursor.Hide() + 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 & " user |" + 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 +End Class \ No newline at end of file -- cgit v1.2.3