aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.Modding.VB.LegacySkinConverter/Module1.vb
diff options
context:
space:
mode:
Diffstat (limited to 'ShiftOS.Modding.VB.LegacySkinConverter/Module1.vb')
-rw-r--r--ShiftOS.Modding.VB.LegacySkinConverter/Module1.vb107
1 files changed, 107 insertions, 0 deletions
diff --git a/ShiftOS.Modding.VB.LegacySkinConverter/Module1.vb b/ShiftOS.Modding.VB.LegacySkinConverter/Module1.vb
new file mode 100644
index 0000000..957658e
--- /dev/null
+++ b/ShiftOS.Modding.VB.LegacySkinConverter/Module1.vb
@@ -0,0 +1,107 @@
+Imports ShiftOS.Engine
+Imports ShiftOS.Objects
+Imports ShiftOS.Objects.ShiftFS
+Imports System.IO
+Imports System.IO.Compression
+Imports System.Collections.Generic
+Imports System.Drawing
+
+Module Module1
+
+ Sub Main()
+ ShiftOS.WinForms.Program.Main()
+ End Sub
+
+End Module
+
+<ShiftOS.Engine.Namespace("skinning")>
+Public Class SkinConverterCommands
+
+
+ <Command("convert", description:="Converts a specified legacy Skin File to a modern one usable in Skin Loader.")>
+ <RequiresArgument("in")>
+ <RequiresArgument("out")>
+ <RequiresUpgrade("skinning")>
+ Public Shared Function Convert(args As Dictionary(Of String, Object))
+ Dim input = args("in").ToString()
+ Dim output = args("out").ToString()
+
+ Dim bytes As Byte() = Utils.ReadAllBytes(input)
+ System.IO.File.WriteAllBytes("temp.skn", bytes)
+
+ If System.IO.Directory.Exists("temp_skn") Then
+ System.IO.Directory.Delete("temp_skn", True)
+ End If
+ Console.WriteLine("Cleaning environment...")
+ System.IO.Directory.CreateDirectory("temp_skn")
+
+ ZipFile.ExtractToDirectory("temp.skn", "temp_skn")
+ Console.WriteLine("Extracted skin... loading it now.")
+ loadimages()
+ Dim skn = New Skin()
+
+ 'Get images.
+
+ Console.Write("Processing images...")
+ skn.DesktopBackgroundImage = SaveImageToBinary(desktopbackground)
+ skn.DesktopPanelBackground = SaveImageToBinary(desktoppanel)
+ skn.CloseButtonImage = SaveImageToBinary(closebtn)
+ skn.MaximizeButtonImage = SaveImageToBinary(rollbtn)
+ skn.MinimizeButtonImage = SaveImageToBinary(minbtn)
+ skn.PanelButtonBG = SaveImageToBinary(panelbutton)
+ skn.AppLauncherImage = SaveImageToBinary(applauncher)
+ skn.TitleBarBackground = SaveImageToBinary(titlebar)
+ skn.TitleLeftCornerWidth = titlebarcornerwidth
+ skn.TitleRightCornerWidth = titlebarcornerwidth
+ skn.ShowTitleCorners = True 'I don't know what the legacy version of this is.
+ skn.TitleLeftBG = SaveImageToBinary(leftcorner)
+ skn.TitleRightBG = SaveImageToBinary(rightcorner)
+ skn.LeftBorderBG = SaveImageToBinary(borderleft)
+ skn.RightBorderBG = SaveImageToBinary(borderright)
+ skn.BottomBorderBG = SaveImageToBinary(borderbottom)
+ skn.BottomLBorderBG = SaveImageToBinary(bottomleftcorner)
+ skn.BottomRBorderBG = SaveImageToBinary(bottomrightcorner)
+
+ Console.WriteLine(" ...done.")
+
+ Console.Write("Converting desktop settings...")
+
+ skn.AppLauncherText = Skins.applicationlaunchername
+ skn.AppLauncherHolderSize = New Size(applaunchermenuholderwidth, desktoppanelheight)
+ skn.AppLauncherFromLeft = New Point(0, 0)
+ skn.DesktopPanelHeight = desktoppanelheight
+ Select Case desktoppanelposition
+ Case "Top"
+ skn.DesktopPanelPosition = 0
+ Case "Bottom"
+ skn.DesktopPanelPosition = 1
+ End Select
+ skn.DesktopPanelColor = desktoppanelcolour
+ skn.DesktopPanelClockBackgroundColor = clockbackgroundcolor
+ skn.DesktopPanelClockColor = clocktextcolour
+ skn.DesktopPanelClockFont = New Font(panelclocktextfont, panelclocktextsize, panelclocktextstyle)
+ skn.PanelButtonColor = panelbuttoncolour
+ skn.PanelButtonTextColor = panelbuttontextcolour
+ skn.PanelButtonFont = New Font(panelbuttontextfont, panelbuttontextsize, panelbuttontextstyle)
+ skn.PanelButtonHolderFromLeft = panelbuttoninitialgap
+ skn.PanelButtonSize = New Size(panelbuttonwidth, panelbuttonheight)
+ skn.PanelButtonFromLeft = New Point(panelbuttongap, panelbuttonfromtop)
+ skn.DesktopPanelClockFromRight = New Point(0, 0)
+
+ Console.WriteLine(" ...done")
+
+ Utils.WriteAllText(output, skn.ToString())
+ Infobox.Show("Skin converted!", "We have successfully converted your skin and saved it to " + output + ". Go ahead and load it!")
+ Return True
+ End Function
+
+
+ Private Shared Function SaveImageToBinary(img As Image) As Byte()
+ If img Is Nothing Then Return Nothing
+
+ Using mStream As New MemoryStream
+ img.Save(mStream, Imaging.ImageFormat.Png)
+ Return mStream.ToArray()
+ End Using
+ End Function
+End Class