From 3f4edf1b79ee4ee5a73251930af641bcd0db225e Mon Sep 17 00:00:00 2001 From: EverythingWindows Date: Sun, 20 Nov 2022 21:53:17 +0700 Subject: [PATCH] trial on Dual Window Manager --- ShiftOS-TheRevival/API/TerminalAPI.vb | 5 + .../Functions/InGame/ROMs/Strings.vb | 1 + .../Functions/OutGame/SaveLoadSystem.vb | 2 +- .../MainForms/Applications/Console.vb | 3 +- .../Applications/Shifter.Designer.vb | 55 ++++++++ .../MainForms/Applications/Shifter.resx | 120 +++++++++++++++++ .../MainForms/Applications/Shifter.vb | 13 ++ .../master/DesktopManager.vb | 2 + .../DualWindowManager/DuWM_Main.vb | 57 ++++++++ .../DuWM_WindowContainer.Designer.vb | 57 ++++++++ .../DuWM_WindowContainer.resx | 123 ++++++++++++++++++ .../DualWindowManager/DuWM_WindowContainer.vb | 14 ++ ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj | 20 ++- .../External/MathQuiz/App_MathQuiz.vb | 5 +- .../Internal/Com_Unzip.vb | 2 +- 15 files changed, 474 insertions(+), 5 deletions(-) create mode 100644 ShiftOS-TheRevival/MainForms/Applications/Shifter.Designer.vb create mode 100644 ShiftOS-TheRevival/MainForms/Applications/Shifter.resx create mode 100644 ShiftOS-TheRevival/MainForms/Applications/Shifter.vb create mode 100644 ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_Main.vb create mode 100644 ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.Designer.vb create mode 100644 ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.resx create mode 100644 ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.vb diff --git a/ShiftOS-TheRevival/API/TerminalAPI.vb b/ShiftOS-TheRevival/API/TerminalAPI.vb index 700e0cc..1af775e 100644 --- a/ShiftOS-TheRevival/API/TerminalAPI.vb +++ b/ShiftOS-TheRevival/API/TerminalAPI.vb @@ -263,10 +263,15 @@ Module TerminalAPI Case "shutdown", "shut down" TerminateShiftOS() Case "startx" + Undeveloped() StartX() Console_Windowed() + DuWM_FirstWindowSet(Console) + Case "shiftertest" + DuWM_SecondWindowSet(Shifter) Case "stopx" StopX() + Undeveloped() Case "textpad" If Strings.AvailableFeature(17) = "1" Then TextPad_WarnFile() diff --git a/ShiftOS-TheRevival/Functions/InGame/ROMs/Strings.vb b/ShiftOS-TheRevival/Functions/InGame/ROMs/Strings.vb index 678ae87..9385c03 100644 --- a/ShiftOS-TheRevival/Functions/InGame/ROMs/Strings.vb +++ b/ShiftOS-TheRevival/Functions/InGame/ROMs/Strings.vb @@ -7,6 +7,7 @@ Public Shared CLIInterpreter As String Public Shared SaveFile As String Public Shared Achievement As String + Public Shared ProcessID(2) As String 'STRING CATEGORIZATION WRITING RULES! 'THIS IS IN ORDER TO REMAIN COMPATIBLE WITH OLDER VERSIONS! diff --git a/ShiftOS-TheRevival/Functions/OutGame/SaveLoadSystem.vb b/ShiftOS-TheRevival/Functions/OutGame/SaveLoadSystem.vb index 69adc94..e535695 100644 --- a/ShiftOS-TheRevival/Functions/OutGame/SaveLoadSystem.vb +++ b/ShiftOS-TheRevival/Functions/OutGame/SaveLoadSystem.vb @@ -60,7 +60,7 @@ Module SaveLoadSystem Strings.ComputerInfo(0) = "shiftos" Strings.ComputerInfo(1) = "user" Strings.ComputerInfo(2) = "0" - Strings.ComputerInfo(4) = "31" + Strings.ComputerInfo(4) = "34" Strings.AvailableFeature(0) = "1" Strings.AvailableFeature(1) = "1" Strings.AvailableFeature(2) = "1" diff --git a/ShiftOS-TheRevival/MainForms/Applications/Console.vb b/ShiftOS-TheRevival/MainForms/Applications/Console.vb index 3ae1603..61f6920 100644 --- a/ShiftOS-TheRevival/MainForms/Applications/Console.vb +++ b/ShiftOS-TheRevival/MainForms/Applications/Console.vb @@ -17,6 +17,7 @@ Public Class Console 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 @@ -223,7 +224,7 @@ Public Class Console End If End If End If - If Strings.OnceInfo(0) = "Yes" Then + If Strings.OnceInfo(0) = "Yes" Then InfoBar.Text = InfoBar.Text & " root |" Else InfoBar.Text = InfoBar.Text & " user |" diff --git a/ShiftOS-TheRevival/MainForms/Applications/Shifter.Designer.vb b/ShiftOS-TheRevival/MainForms/Applications/Shifter.Designer.vb new file mode 100644 index 0000000..38ead47 --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/Applications/Shifter.Designer.vb @@ -0,0 +1,55 @@ + +Partial Class Shifter + 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.Label1 = New System.Windows.Forms.Label() + Me.SuspendLayout() + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 9) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(40, 13) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Shifter!" + ' + 'Shifter + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Controls.Add(Me.Label1) + Me.ForeColor = System.Drawing.Color.Black + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None + Me.Name = "Shifter" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "Shifter" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents Label1 As Label +End Class diff --git a/ShiftOS-TheRevival/MainForms/Applications/Shifter.resx b/ShiftOS-TheRevival/MainForms/Applications/Shifter.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/Applications/Shifter.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/ShiftOS-TheRevival/MainForms/Applications/Shifter.vb b/ShiftOS-TheRevival/MainForms/Applications/Shifter.vb new file mode 100644 index 0000000..cea6fe3 --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/Applications/Shifter.vb @@ -0,0 +1,13 @@ +Public Class Shifter + Public DuWM_PID As Integer 'DuWM Process ID + + Private Sub Shifter_Load(sender As Object, e As EventArgs) Handles MyBase.Load + + End Sub + + Private Sub DuWM_Tick(sender As Object, e As EventArgs) + If Strings.ProcessID(DuWM_PID) = 0 Then + Close() + End If + End Sub +End Class \ No newline at end of file diff --git a/ShiftOS-TheRevival/MainForms/DesktopEnvironment/master/DesktopManager.vb b/ShiftOS-TheRevival/MainForms/DesktopEnvironment/master/DesktopManager.vb index 576c568..cbf8cbb 100644 --- a/ShiftOS-TheRevival/MainForms/DesktopEnvironment/master/DesktopManager.vb +++ b/ShiftOS-TheRevival/MainForms/DesktopEnvironment/master/DesktopManager.vb @@ -4,10 +4,12 @@ Desktop.TopMost = False Desktop.FormBorderStyle = FormBorderStyle.None Desktop.WindowState = FormWindowState.Maximized + Cursor.Show() End Sub Public Sub StopX() Desktop.Close() + Cursor.Hide() Console_Full() End Sub End Module diff --git a/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_Main.vb b/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_Main.vb new file mode 100644 index 0000000..f3985a9 --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_Main.vb @@ -0,0 +1,57 @@ +Module DuWM_Main + Public IsDual As Boolean + + Public Sub DuWM_FirstWindowSet(WindowName As Form) + WindowName.Height = Desktop.Height - 20 + WindowName.Width = (Desktop.Width / 2) - 20 + WindowName.Location = New Point(10, 10) + End Sub + + Public Sub DuWM_SecondWindowSet(WindowName As Form) + WindowName.Show() + WindowName.Height = Desktop.Height - 20 + WindowName.Width = (Desktop.Width / 2) - 20 + WindowName.Location = New Point((Desktop.Width / 2) + 10, 10) + End Sub + + 'Public Sub DuWM_GenerateWindowSet(WindowName As Form, PID As Integer) + ' Dim NewWContainer As New DuWM_WindowContainer + ' NewWContainer.Width = (Desktop.Width / 2) - 10 + ' NewWContainer.Height = Desktop.Height - 20 + ' NewWContainer.ChildForm = WindowName + ' NewWContainer.ChildForm.TopLevel = False + ' NewWContainer.ChildForm.FormBorderStyle = FormBorderStyle.None + ' NewWContainer.ChildForm.Size = New Size((Desktop.Width / 2) - 10, Desktop.Height - 20) + ' Select Case PID + ' Case 0 + ' NewWContainer.Location = New Point(10, 10) + ' Case 1 + ' NewWContainer.Location = New Point((Desktop.Width / 2) + 10, 10) + ' End Select + ' NewWContainer.ChildForm.WindowState = FormWindowState.Normal + ' NewWContainer.ChildForm.Visible = False + ' NewWContainer.DuWM_ContainerPanel.Controls.Add(NewWContainer.ChildForm) + ' Select Case NewWContainer.ChildForm.Visible + ' Case False + ' NewWContainer.ChildForm.Visible = True + ' Case Else + ' NewWContainer.ChildForm.Visible = False + ' End Select + ' Dim WindowNameStr As String = Convert.ToString(WindowName) + ' Select Case WindowNameStr + ' Case "Console" + ' NewWContainer.DuWM_PID = 0 + ' Strings.ProcessID(0) = 1 + ' Case "Shifter" + ' NewWContainer.DuWM_PID = 1 + ' Strings.ProcessID(1) = 1 + ' End Select + ' NewWContainer.Show() + ' NewWContainer.DuWM_WMCheck.Start() + 'End Sub + + 'Public Sub DuWM_KillAllWindow() + ' Strings.ProcessID(0) = 0 + ' Strings.ProcessID(1) = 0 + 'End Sub +End Module diff --git a/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.Designer.vb b/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.Designer.vb new file mode 100644 index 0000000..b9d6a4e --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.Designer.vb @@ -0,0 +1,57 @@ + _ +Partial Class DuWM_WindowContainer + 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.DuWM_ContainerPanel = New System.Windows.Forms.Panel() + Me.DuWM_WMCheck = New System.Windows.Forms.Timer(Me.components) + Me.SuspendLayout() + ' + 'DuWM_ContainerPanel + ' + Me.DuWM_ContainerPanel.Dock = System.Windows.Forms.DockStyle.Fill + Me.DuWM_ContainerPanel.Location = New System.Drawing.Point(0, 0) + Me.DuWM_ContainerPanel.Name = "DuWM_ContainerPanel" + Me.DuWM_ContainerPanel.Size = New System.Drawing.Size(800, 450) + Me.DuWM_ContainerPanel.TabIndex = 0 + ' + 'DuWM_WMCheck + ' + ' + 'DuWM_WindowContainer + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Controls.Add(Me.DuWM_ContainerPanel) + Me.ForeColor = System.Drawing.Color.Black + Me.Name = "DuWM_WindowContainer" + Me.Text = "DuWM_WindowContainer" + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents DuWM_ContainerPanel As Panel + Friend WithEvents DuWM_WMCheck As Timer +End Class diff --git a/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.resx b/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.resx new file mode 100644 index 0000000..d87325b --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.vb b/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.vb new file mode 100644 index 0000000..b845522 --- /dev/null +++ b/ShiftOS-TheRevival/MainForms/WindowManager/DualWindowManager/DuWM_WindowContainer.vb @@ -0,0 +1,14 @@ +Public Class DuWM_WindowContainer + Public ChildForm As Form + Public DuWM_PID As Integer + + Private Sub DuWM_WindowContainer_Load(sender As Object, e As EventArgs) Handles MyBase.Load + + End Sub + + Private Sub DuWM_WMCheck_Tick(sender As Object, e As EventArgs) Handles DuWM_WMCheck.Tick + If Strings.ProcessID(DuWM_PID) = 0 Then + Close() + End If + End Sub +End Class \ No newline at end of file diff --git a/ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj b/ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj index 679c04c..2b512d7 100644 --- a/ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj +++ b/ShiftOS-TheRevival/ShiftOS-TheRevival.vbproj @@ -98,6 +98,12 @@ + + Shifter.vb + + + Form + BugSlap.vb @@ -168,6 +174,13 @@ + + + DuWM_WindowContainer.vb + + + Form + @@ -220,6 +233,9 @@ + + Shifter.vb + BugSlap.vb @@ -247,6 +263,9 @@ Console.vb + + DuWM_WindowContainer.vb + VbMyResourcesResXFileCodeGenerator Resources.Designer.vb @@ -272,7 +291,6 @@ - diff --git a/ShiftOS-TheRevival/TerminalApplications/External/MathQuiz/App_MathQuiz.vb b/ShiftOS-TheRevival/TerminalApplications/External/MathQuiz/App_MathQuiz.vb index 235664f..40ce30b 100644 --- a/ShiftOS-TheRevival/TerminalApplications/External/MathQuiz/App_MathQuiz.vb +++ b/ShiftOS-TheRevival/TerminalApplications/External/MathQuiz/App_MathQuiz.vb @@ -26,7 +26,7 @@ MQ_Operation = " + " MQ_ShouldResult = MQ_1stNum + MQ_2ndNum Case 2 - While MQ_2ndNum > MQ_1stNum + While MQ_2ndNum >= MQ_1stNum MQ_2ndNum = RandomNum.Next(1, 10) End While MQ_Operation = " - " @@ -35,6 +35,9 @@ MQ_Operation = " * " MQ_ShouldResult = MQ_1stNum * MQ_2ndNum Case 4 + While MQ_2ndNum > MQ_1stNum + MQ_2ndNum = RandomNum.Next(1, 10) + End While MQ_Operation = " / " MQ_ShouldResult = MQ_1stNum / MQ_2ndNum Case Else diff --git a/ShiftOS-TheRevival/TerminalApplications/Internal/Com_Unzip.vb b/ShiftOS-TheRevival/TerminalApplications/Internal/Com_Unzip.vb index 37231fb..09be14b 100644 --- a/ShiftOS-TheRevival/TerminalApplications/Internal/Com_Unzip.vb +++ b/ShiftOS-TheRevival/TerminalApplications/Internal/Com_Unzip.vb @@ -84,7 +84,7 @@ Module Com_Unzip ' copy all the sub-directories by recursively calling this same routine Dim SubDir As DirectoryInfo For Each SubDir In SourceDir.GetDirectories() - NewLine("Copying " & SubDir.Name & "...") + NewLine("Copying '" & SubDir.Name & "' directory ...") CopyDirectory(SubDir.FullName, Path.Combine(DestDir.FullName, SubDir.Name), Overwrite) AddLine(" OK")