aboutsummaryrefslogtreecommitdiff
path: root/source/WindowsFormsApplication1/skins.cs
diff options
context:
space:
mode:
Diffstat (limited to 'source/WindowsFormsApplication1/skins.cs')
-rw-r--r--source/WindowsFormsApplication1/skins.cs840
1 files changed, 0 insertions, 840 deletions
diff --git a/source/WindowsFormsApplication1/skins.cs b/source/WindowsFormsApplication1/skins.cs
deleted file mode 100644
index 206646f..0000000
--- a/source/WindowsFormsApplication1/skins.cs
+++ /dev/null
@@ -1,840 +0,0 @@
-using System.IO;
-using System.Drawing;
-using Newtonsoft.Json;
-using System;
-using ShiftOS;
-using System.IO.Compression;
-using System.Windows.Forms;
-using System.Collections.Generic;
-using System.Drawing.Imaging;
-
-namespace Skinning
-{
- public class Skin {
- //Widget Positions
- public string ALPosition = "Top";
- public string PanelButtonPosition = "Top";
- public string ClockPosition = "Top";
-
- //WINDOW SETTINGS/IMAGES
- //images
- public int titlebarlayout = 3;
- public int borderleftlayout = 3;
- public int borderrightlayout = 3;
- public int borderbottomlayout = 3;
- public int closebtnlayout = 3;
- public int rollbtnlayout = 3;
- public int minbtnlayout = 3;
- public int rightcornerlayout = 3;
- public int leftcornerlayout = 3;
- // Late entry: need to fix window code to include this
- public int bottomleftcornerlayout = 3;
- public int bottomrightcornerlayout = 3;
- public Color bottomleftcornercolour = Color.Gray;
-
- public Color bottomrightcornercolour = Color.Gray;
-
- public bool enablebordercorners = false;
- // settings
- public Size closebtnsize = new Size(22, 22);
- public Size rollbtnsize = new Size(22, 22);
- public Size minbtnsize = new Size(22, 22);
- public int titlebarheight = 30;
- public int titlebariconsize = 16;
- public int closebtnfromtop = 5;
- public int closebtnfromside = 2;
- public int rollbtnfromtop = 5;
- public int rollbtnfromside = 26;
- public int minbtnfromtop = 5;
- public int minbtnfromside = 52;
- public int borderwidth = 2;
- public bool enablecorners = false;
- public int titlebarcornerwidth = 5;
- public int titleiconfromside = 4;
- public int titleiconfromtop = 4;
- //colours
- public Color titlebarcolour = Color.Gray;
- public Color borderleftcolour = Color.Gray;
- public Color borderrightcolour = Color.Gray;
- public Color borderbottomcolour = Color.Gray;
- public Color closebtncolour = Color.Black;
- public Color closebtnhovercolour = Color.Black;
- public Color closebtnclickcolour = Color.Black;
- public Color rollbtncolour = Color.Black;
- public Color rollbtnhovercolour = Color.Black;
- public Color rollbtnclickcolour = Color.Black;
- public Color minbtncolour = Color.Black;
- public Color minbtnhovercolour = Color.Black;
- public Color minbtnclickcolour = Color.Black;
- public Color rightcornercolour = Color.Gray;
- public Color leftcornercolour = Color.Gray;
- // Text
- public string titletextfontfamily = "Microsoft Sans Serif";
- public int titletextfontsize = 10;
- public FontStyle titletextfontstyle = FontStyle.Bold;
- public string titletextpos = "Left";
- public int titletextfromtop = 3;
- public int titletextfromside = 24;
-
- public Color titletextcolour = Color.White;
- //DESKTOP
- public Color desktoppanelcolour = Color.Gray;
- public Color desktopbackgroundcolour = Color.Black;
- public int desktoppanelheight = 24;
- public string desktoppanelposition = "Top";
- public Color clocktextcolour = Color.Black;
- public Color clockbackgroundcolor = Color.Gray;
- public int panelclocktexttop = 3;
- public int panelclocktextsize = 10;
- public string panelclocktextfont = "Byington";
- public FontStyle panelclocktextstyle = FontStyle.Bold;
- public Color applauncherbuttoncolour = Color.Gray;
- public Color applauncherbuttonclickedcolour = Color.Gray;
- public Color applauncherbackgroundcolour = Color.Gray;
- public Color applaunchermouseovercolour = Color.Gray;
- public Color applicationsbuttontextcolour = Color.Black;
- public int applicationbuttonheight = 24;
- public int applicationbuttontextsize = 10;
- public string applicationbuttontextfont = "Byington";
- public FontStyle applicationbuttontextstyle = FontStyle.Bold;
- public string applicationlaunchername = "Applications";
- public string titletextposition = "Left";
- public int applaunchermenuholderwidth = 100;
- public int panelbuttonicontop = 3;
- public int panelbuttoniconside = 4;
- public int panelbuttoniconsize = 16;
- public int panelbuttonheight = 20;
- public int panelbuttonwidth = 185;
- public Color panelbuttoncolour = Color.Black;
- public Color panelbuttontextcolour = Color.White;
- public int panelbuttontextsize = 10;
- public string panelbuttontextfont = "Byington";
- public FontStyle panelbuttontextstyle = FontStyle.Regular;
- public int panelbuttontextside = 16;
- public int panelbuttontexttop = 2;
- public int panelbuttongap = 4;
- public int panelbuttonfromtop = 2;
-
- public int panelbuttoninitialgap = 8;
- public int launcheritemsize = 10;
- public string launcheritemfont = "Byington";
- public FontStyle launcheritemstyle = FontStyle.Regular;
-
- public Color launcheritemcolour = Color.Black;
- // Images
- public int desktoppanellayout = 3;
- public int desktopbackgroundlayout = 3;
- public int panelclocklayout = 3;
- public int applauncherlayout = 3;
-
- public int panelbuttonlayout = 3;
-
- //Locations...
-
- public int userTextboxX = 171;
- public int userTextBoxY = 202;
- public int passTextBoxX = 171;
- public int passTextBoxY = 243;
- public int loginbtnX = 268;
- public int loginbtnY = 286;
- public int shutdownbtnX = 1755;
-
- public int shutdownbtnY = 979;
-
- /* IMAGE PATHS
- These tell ShiftOS where skin images are.
- */
-
- public string applauncherclickpath = null;
- public string panelbuttonpath = null;
- public string applaunchermouseoverpath = null;
- public string applauncherpath = null;
- public string panelclockpath = null;
- public string desktopbackgroundpath = null;
- public string desktoppanelpath = null;
- public string minbtnhoverpath = null;
- public string minbtnclickpath = null;
- public string rightcornerpath = null;
- public string titlebarpath = null;
- public string borderrightpath = null;
- public string borderleftpath = null;
- public string borderbottompath = null;
- public string closebtnpath = null;
- public string closebtnhoverpath = null;
- public string closebtnclickpath = null;
- public string rollbtnpath = null;
- public string rollbtnhoverpath = null;
- public string rollbtnclickpath = null;
- public string minbtnpath = null;
- public string leftcornerpath = null;
- public string bottomleftcornerpath = null;
- public string bottomrightcornerpath = null;
-
- //Menu Renderer Colors
- public Color Menu_ButtonSelectedHighlight = Color.Black;
- public Color Menu_ButtonSelectedHighlightBorder = Color.Black;
- public Color Menu_ButtonPressedHighlight = Color.Black;
- public Color Menu_ButtonPressedHighlightBorder = Color.Black;
- public Color Menu_ButtonCheckedHighlight = Color.White;
- public Color Menu_ButtonCheckedHighlightBorder = Color.White;
- public Color Menu_ButtonPressedBorder = Color.Black;
- public Color Menu_ButtonSelectedBorder = Color.Black;
- public Color Menu_ButtonCheckedGradientBegin = Color.White;
- public Color Menu_ButtonCheckedGradientMiddle = Color.White;
- public Color Menu_ButtonCheckedGradientEnd = Color.White;
- public Color Menu_ButtonSelectedGradientBegin = Color.Black;
- public Color Menu_ButtonSelectedGradientMiddle = Color.Black;
- public Color Menu_ButtonSelectedGradientEnd = Color.Black;
- public Color Menu_ButtonPressedGradientBegin = Color.Black;
- public Color Menu_ButtonPressedGradientMiddle = Color.Black;
- public Color Menu_ButtonPressedGradientEnd = Color.Black;
- public Color Menu_CheckBackground = Color.White;
- public Color Menu_CheckSelectedBackground = Color.Gray;
- public Color Menu_CheckPressedBackground = Color.White;
- public Color Menu_ImageMarginGradientBegin = Color.Gray;
- public Color Menu_ImageMarginGradientMiddle = Color.Gray;
- public Color Menu_ImageMarginGradientEnd = Color.Gray;
- public Color Menu_MenuStripGradientBegin = Color.Gray;
- public Color Menu_MenuStripGradientEnd = Color.Gray;
- public Color Menu_MenuItemSelected = Color.Black;
- public Color Menu_MenuItemBorder = Color.Gray;
- public Color Menu_MenuBorder = Color.Gray;
- public Color Menu_MenuItemSelectedGradientBegin = Color.Black;
- public Color Menu_MenuItemSelectedGradientEnd = Color.Black;
- public Color Menu_MenuItemPressedGradientBegin = Color.Black;
- public Color Menu_MenuItemPressedGradientMiddle = Color.Black;
- public Color Menu_MenuItemPressedGradientEnd = Color.Black;
- public Color Menu_RaftingContainerGradientBegin = Color.Black;
- public Color Menu_RaftingContainerGradientEnd = Color.Gray;
- public Color Menu_SeparatorDark = Color.Black;
- public Color Menu_SeparatorLight = Color.Black;
- public Color Menu_StatusStripGradientBegin = Color.Gray;
- public Color Menu_StatusStripGradientEnd = Color.Gray;
- public Color Menu_ToolStripBorder = Color.Gray;
- public Color Menu_ToolStripDropDownBackground = Color.Gray;
- public Color Menu_ToolStripGradientBegin = Color.Gray;
- public Color Menu_ToolStripGradientMiddle = Color.Gray;
- public Color Menu_ToolStripGradientEnd = Color.Gray;
- public Color Menu_ToolStripContentPanelGradientBegin = Color.Gray;
- public Color Menu_ToolStripContentPanelGradientEnd = Color.Gray;
- public Color Menu_ToolStripPanelGradientBegin = Color.Gray;
- public Color Menu_ToolStripPanelGradientEnd = Color.Gray;
- public Color Menu_TextColor = Color.White;
-
- //New
- public Color TerminalTextColor = Color.White;
- public Color TerminalBackColor = Color.Black;
- public string TerminalFontStyle = OSInfo.GetMonospaceFont();
-
- //Name Packs
- public string EmbeddedNamePackPath = "names.npk";
-
- //Desktop Icons
- public Color IconTextColor = Color.White;
-
- //Window Animation
- public int WindowFadeTime = 1; //Interval between each decrease in opacity
- public decimal WindowFadeSpeed = Convert.ToDecimal(0.1); //Speed of opacity decrease
- public WindowAnimationStyle WindowCloseAnimation = WindowAnimationStyle.Fade; //Animation style for close
- public WindowAnimationStyle WindowOpenAnimation = WindowAnimationStyle.Fade; //Animation style for open
- public WindowDragEffect DragAnimation = WindowDragEffect.Fade;
- public double DragFadeLevel = 0.5;
- public double DragFadeSpeed = 0.1;
- public int DragFadeInterval = 1;
-
- //Shake
- public int ShakeSpeed = 10;
- public int ShakeMaxOffset = 250;
- public int ShakeMinOffset = 0;
-
- //Desktop Panel
- public List<DesktopWidget> Widgets = new List<DesktopWidget>();
- public List<DesktopPanel> DesktopPanels = new List<DesktopPanel>();
- }
-
- public class DesktopWidget
- {
- public string Name { get; set; }
- public string Panel { get; set; } //either top or bottom
- public string Icon { get; set; }
- public int Width { get; set; }
- public int XLocation { get; set; }
- public WidgetType Type { get; set; }
- public string Lua { get; set; }
- }
-
- public class ShiftOSIcon
- {
- /// <summary>
- /// Creates a new icon
- /// </summary>
- /// <param name="id">New ID</param>
- public ShiftOSIcon(string id)
- {
- SmallPath = id + "_small";
- LargePath = id + "_large";
- }
-
- public string SmallPath { get; set; }
- public string LargePath { get; set; }
- }
-
- public class DesktopPanel
- {
- public string Position = "Top";
- public int Height = 24;
- public Color BackgroundColor = Color.Gray;
- public Image BackgroundImage = null;
- public string ImagePath = null;
- }
-
- public class PanelWidget
- {
- public string type = "applauncher";
- }
-
- public class NamePack
- {
- public string TerminalName = "Terminal";
- public string ArtpadName = "Artpad";
- public string TextpadName = "TextPad";
- public string ShiftoriumName = "Shiftorium";
- public string KnowledgeInputName = "Knowledge Input";
- public string PongName = "Pong";
- public string ShifterName = "Shifter";
- public string FileSkimmerName = "File Skimmer";
- public string SkinLoaderName = "Skin Loader";
- public string ShutdownName = "Shut Down";
- public string UnityName = "Unity Mode";
- public string NameChangerName = "Name Changer";
- }
-
- public class IconSet
- {
- public Image Terminal = ShiftOS.Properties.Resources.iconTerminal;
- public Image Artpad = ShiftOS.Properties.Resources.iconArtpad;
- public Image Textpad = ShiftOS.Properties.Resources.iconTextPad;
- public Image Shiftorium = ShiftOS.Properties.Resources.iconShiftorium;
- public Image KnowledgeInput = ShiftOS.Properties.Resources.iconKnowledgeInput;
- public Image Pong = ShiftOS.Properties.Resources.iconPong;
- public Image Shifter = ShiftOS.Properties.Resources.iconShifter;
- public Image FileSkimmer = ShiftOS.Properties.Resources.iconFileSkimmer;
- public Image SkinLoader = ShiftOS.Properties.Resources.iconSkinLoader;
- public Image Shutdown = ShiftOS.Properties.Resources.iconshutdown;
- public Image Unity = ShiftOS.Properties.Resources.iconunitytoggle;
- public Image NameChanger = ShiftOS.Properties.Resources.iconNameChanger;
-
- }
-
- public class IconPack
- {
- public string Terminal = "Terminal";
- public string Artpad = "Artpad";
- public string Textpad = "TextPad";
- public string Shiftorium = "Shiftorium";
- public string KnowledgeInput = "Knowledge Input";
- public string Pong = "Pong";
- public string Shifter = "Shifter";
- public string FileSkimmer = "File Skimmer";
- public string SkinLoader = "Skin Loader";
- public string Shutdown = "Shut Down";
- public string Unity = "Unity Mode";
- public string NameChanger = "Name Changer";
-
- }
-
- public class Images
- {
- public Image applauncherclick = null;
- public Image panelbutton = null;
- public Image applaunchermouseover = null;
- public Image applauncher = null;
- public Image panelclock = null;
- public Image desktopbackground = null;
- public Image desktoppanel = null;
- public Image minbtnhover = null;
- public Image minbtnclick = null;
- public Image rightcorner = null;
- public Image titlebar = null;
- public Image borderright = null;
- public Image borderleft = null;
- public Image borderbottom = null;
- public Image closebtn = null;
- public Image closebtnhover = null;
- public Image closebtnclick = null;
- public Image rollbtn = null;
- public Image rollbtnhover = null;
- public Image rollbtnclick = null;
- public Image minbtn = null;
- public Image leftcorner = null;
- public Image bottomleftcorner = null;
- public Image bottomrightcorner = null;
- }
- /// <summary>
- /// ShiftOS 'Sharp' Skin Engine - Completely reworked ShiftOS skin system written in C# by Michael VanOverbeek
- /// </summary>
- public class Utilities {
- public static Dictionary<string, Image> IconRegistry = new Dictionary<string, Image>();
- public static Color globaltransparencycolour = Color.FromArgb(1, 0, 1);
- public static NamePack LoadedNames = null;
- public static Skin loadedSkin = null;
- public static Images loadedskin_images = null;
-
- /// <summary>
- /// Load a bitmap from the skin.
- /// </summary>
- /// <param name="fileName">Bitmap name.</param>
- /// <returns>The bitmap</returns>
- public static Bitmap GetImage(string fileName)
- {
- Bitmap ret;
- if (File.Exists(Paths.LoadedSkin + fileName))
- {
- using (Image img = Image.FromFile(Paths.LoadedSkin + fileName))
- {
- ret = new Bitmap(img);
- }
- } else
- {
- ret = null;
- }
- return ret;
- }
-
- /// <summary>
- /// Load the name pack embedded in the skin.
- /// </summary>
- public static void LoadEmbeddedNamePack()
- {
- if(loadedSkin != null)
- {
- if(loadedSkin.EmbeddedNamePackPath != null)
- {
- if(File.Exists(Paths.LoadedSkin + loadedSkin.EmbeddedNamePackPath))
- {
- string json = File.ReadAllText(Paths.LoadedSkin + loadedSkin.EmbeddedNamePackPath);
- LoadedNames = JsonConvert.DeserializeObject<NamePack>(json);
- try {
- //bug-check
- if (LoadedNames.NameChangerName == null)
- {
- LoadedNames.NameChangerName = "Name Changer";
- }
- }
- catch
- {
- LoadedNames = new NamePack();
- }
- }
- else
- {
- LoadedNames = new NamePack();
- }
- }
- else
- {
- LoadedNames = new NamePack();
- }
- }
- else
- {
- LoadedNames = new NamePack();
- }
- }
-
- /// <summary>
- /// Loads background images for all desktop panels
- /// </summary>
- public static void LoadPanels()
- {
- foreach(var pnl in loadedSkin.DesktopPanels)
- {
- string dpath = Paths.LoadedSkin + "panels" + OSInfo.DirectorySeparator + pnl.ImagePath;
- if (File.Exists(dpath))
- {
- pnl.BackgroundImage = Image.FromFile(dpath);
- }
- }
- }
-
- /// <summary>
- /// Saves background images of panels
- /// </summary>
- public static void SavePanels()
- {
- string dir = Paths.LoadedSkin + "panels";
- if (!Directory.Exists(dir))
- {
- Directory.CreateDirectory(dir);
- }
- foreach (var pnl in loadedSkin.DesktopPanels)
- {
- if (pnl.BackgroundImage != null)
- {
- try
- {
- pnl.ImagePath = pnl.Position + loadedSkin.DesktopPanels.IndexOf(pnl).ToString();
- string dpath = Paths.LoadedSkin + "panels" + OSInfo.DirectorySeparator + pnl.ImagePath;
- pnl.BackgroundImage.Save(dpath);
- pnl.BackgroundImage = null;
- }
- catch
- {
- pnl.ImagePath = null;
- pnl.BackgroundImage = null;
- }
- }
- }
- }
- /// <summary>
- /// Randomize some skin variables. Used for a virus.
- /// </summary>
- public static void Randomize()
- {
- Random rnd = new Random();
- if (rnd.Next(0, 5000) == 25)
- {
- loadedSkin.desktoppanelheight = rnd.Next(2, 200);
- switch (rnd.Next(0, 10))
- {
- case 1:
- case 3:
- case 5:
- case 7:
- case 9:
- loadedSkin.desktoppanelposition = "Top";
- break;
- default:
- loadedSkin.desktoppanelposition = "Bottom";
- break;
- }
- API.CurrentSession.SetupDesktop();
- API.UpdateWindows();
- }
- }
-
- /// <summary>
- /// Save the loaded name pack to the skin.
- /// </summary>
- public static void SaveEmbeddedNamePack()
- {
- if (loadedSkin != null)
- {
- if (loadedSkin.EmbeddedNamePackPath != null)
- {
- if (File.Exists(Paths.LoadedSkin + loadedSkin.EmbeddedNamePackPath))
- {
- string json = JsonConvert.SerializeObject(LoadedNames);
- File.WriteAllText(Paths.LoadedSkin + loadedSkin.EmbeddedNamePackPath, json);
- }
- else
- {
- loadedSkin.EmbeddedNamePackPath = "names.npk";
- string json = JsonConvert.SerializeObject(LoadedNames);
- File.WriteAllText(Paths.LoadedSkin + loadedSkin.EmbeddedNamePackPath, json);
- }
- }
-
- }
- }
-
- /// <summary>
- /// Save a bitmap to the skin.
- /// </summary>
- /// <param name="img">Bitmap to save</param>
- /// <param name="Name">New filename</param>
- private static void saveimage(Image img, string Name)
- {
- string fullPath = Paths.LoadedSkin + Name;
- if(File.Exists(fullPath))
- {
- File.Delete(fullPath);
- }
- if (img != null)
- {
- img.Save(fullPath, System.Drawing.Imaging.ImageFormat.Bmp);
- }
- }
-
- /// <summary>
- /// Load the skin.
- /// </summary>
- public static void loadskin()
- {
- if(Directory.Exists(Paths.LoadedSkin))
- {
- try {
- string rawData = File.ReadAllText(Paths.LoadedSkin + "data.json");
- loadedSkin = JsonConvert.DeserializeObject<Skin>(rawData);
- if (File.Exists(Paths.LoadedSkin + "panels.json"))
- {
- string panels = File.ReadAllText(Paths.LoadedSkin + "panels.json");
- loadedSkin.DesktopPanels = JsonConvert.DeserializeObject<List<DesktopPanel>>(panels);
- LoadPanels();
- }
- loadimages();
- LoadEmbeddedNamePack();
- }
- catch
- {
- //No skin to load.
- loadedSkin = new Skin();
- loadedskin_images = new Images();
- saveskin();
-
- }
- } else
- {
- loadedSkin = new Skin();
- loadedskin_images = new Images();
- saveskin();
- }
- }
-
- /// <summary>
- /// Load skin from .skn file
- /// </summary>
- /// <param name="filepath">File to load.</param>
- public static void loadsknfile(string filepath)
- {
- try
- {
- //Extract the .SKN
- loadedSkin = new Skin();
- loadedskin_images = new Images();
- API.ExtractFile(filepath, Paths.LoadedSkin, true);
- //OK, so the skin's been extracted.
- //Now, let's load in the skin data.
- string rawData = File.ReadAllText(Paths.LoadedSkin + "data.json");
- loadedSkin = JsonConvert.DeserializeObject<Skin>(rawData);
- //Now, images.
- loadimages();
- } catch
- {
- API.CreateInfoboxSession("Error loading skin", "An error has occurred while loading the skin file. This could be because the skin file is no longer supported by this version of ShiftOS.", infobox.InfoboxMode.Info);
- }
- }
-
- /// <summary>
- /// Load images from the skin.
- /// </summary>
- public static void loadimages()
- {
- loadedskin_images = new Images();
- loadedskin_images.applauncherclick = GetImage(loadedSkin.applauncherclickpath);
- loadedskin_images.panelbutton = GetImage(loadedSkin.panelbuttonpath);
- loadedskin_images.applaunchermouseover = GetImage(loadedSkin.applaunchermouseoverpath);
- loadedskin_images.applauncher = GetImage(loadedSkin.applauncherpath);
- loadedskin_images.panelclock = GetImage(loadedSkin.panelclockpath);
- loadedskin_images.desktopbackground = GetImage(loadedSkin.desktopbackgroundpath);
- loadedskin_images.desktoppanel = GetImage(loadedSkin.desktoppanelpath);
- loadedskin_images.minbtnhover = GetImage(loadedSkin.minbtnhoverpath);
- loadedskin_images.minbtnclick = GetImage(loadedSkin.minbtnclickpath);
- loadedskin_images.rightcorner = GetImage(loadedSkin.rightcornerpath);
- loadedskin_images.titlebar = GetImage(loadedSkin.titlebarpath);
- loadedskin_images.borderright = GetImage(loadedSkin.borderrightpath);
- loadedskin_images.borderleft = GetImage(loadedSkin.borderleftpath);
- loadedskin_images.borderbottom = GetImage(loadedSkin.borderbottompath);
- loadedskin_images.closebtn = GetImage(loadedSkin.closebtnpath);
- loadedskin_images.closebtnhover = GetImage(loadedSkin.closebtnhoverpath);
- loadedskin_images.closebtnclick = GetImage(loadedSkin.closebtnclickpath);
- loadedskin_images.rollbtn = GetImage(loadedSkin.rollbtnpath);
- loadedskin_images.rollbtnhover = GetImage(loadedSkin.rollbtnhoverpath);
- loadedskin_images.rollbtnclick = GetImage(loadedSkin.rollbtnclickpath);
- loadedskin_images.minbtn = GetImage(loadedSkin.minbtnpath);
- loadedskin_images.leftcorner = GetImage(loadedSkin.leftcornerpath);
- loadedskin_images.bottomleftcorner = GetImage(loadedSkin.bottomleftcornerpath);
- loadedskin_images.bottomrightcorner = GetImage(loadedSkin.bottomrightcornerpath);
- try
- {
- IconRegistry = new Dictionary<string, Image>();
- foreach (var f in Directory.GetFiles(Paths.Icons))
- {
- var finf = new FileInfo(f);
- byte[] fBytes = File.ReadAllBytes(finf.FullName);
- MemoryStream fStream = new MemoryStream(fBytes);
- IconRegistry.Add(finf.Name, Image.FromStream(fStream));
- fStream.Close();
- }
- }
- catch
- {
- GenDefaultIconPack();
- }
- }
-
- /// <summary>
- /// Generates the default icon pack if none exists.
- /// </summary>
- public static void GenDefaultIconPack()
- {
- IconRegistry = new Dictionary<string, Image>();
- if(Directory.Exists(Paths.Icons))
- {
- Directory.Delete(Paths.Icons, true);
- }
- Directory.CreateDirectory(Paths.Icons);
- SaveIcon(ShiftOS.Properties.Resources.iconTerminal, "Terminal");
- SaveIcon(ShiftOS.Properties.Resources.iconShiftorium, "Shiftorium");
- SaveIcon(ShiftOS.Properties.Resources.iconShifter, "Shifter");
- SaveIcon(ShiftOS.Properties.Resources.iconNameChanger, "NameChanger");
- SaveIcon(ShiftOS.Properties.Resources.iconTextPad, "TextPad");
- SaveIcon(ShiftOS.Properties.Resources.iconFileSkimmer, "FileSkimmer");
- SaveIcon(ShiftOS.Properties.Resources.iconArtpad, "Artpad");
- SaveIcon(ShiftOS.Properties.Resources.iconunitytoggle, "Unity");
- SaveIcon(ShiftOS.Properties.Resources.iconshutdown, "Shutdown");
- SaveIcon(ShiftOS.Properties.Resources.iconInfoBox_fw, "Infobox");
- SaveIcon(ShiftOS.Properties.Resources.iconKnowledgeInput, "KI");
- SaveIcon(ShiftOS.Properties.Resources.iconPong, "Pong");
- SaveIcon(ShiftOS.Properties.Resources.iconSkinLoader, "SkinLoader");
- SaveIcon(ShiftOS.Properties.Resources.iconIconManager, "IconManager");
- SaveIcon(ShiftOS.Properties.Resources.fileicondirectory, "Folder");
- SaveIcon(ShiftOS.Properties.Resources.fileicondoc, "TextFile");
- SaveIcon(ShiftOS.Properties.Resources.fileiconnone, "UnrecognizedFile");
- SaveIcon(ShiftOS.Properties.Resources.fileiconsaa, "SAAFile");
- SaveIcon(ShiftOS.Properties.Resources.fileiconsetup, "SetupPackage");
- SaveIcon(ShiftOS.Properties.Resources.skinfile, "SkinFile");
- IconRegistry = new Dictionary<string, Image>();
- foreach (var f in Directory.GetFiles(Paths.Icons))
- {
- var finf = new FileInfo(f);
- byte[] fBytes = File.ReadAllBytes(finf.FullName);
- MemoryStream fStream = new MemoryStream(fBytes);
- IconRegistry.Add(finf.Name, Image.FromStream(fStream));
- fStream.Close();
- }
- }
-
- /// <summary>
- /// Saves the icon to the registry.
- /// </summary>
- /// <param name="img">Icon to save</param>
- /// <param name="title">Icon title</param>
- public static void SaveIcon(Image img, string title)
- {
- img.Save(Paths.Icons + title, ImageFormat.Png);
-
- }
-
- /// <summary>
- /// Saves all skin images
- /// </summary>
- public static void saveimages()
- {
- //Set image paths.
- loadedSkin.applauncherclickpath = "applauncherclick";
- loadedSkin.panelbuttonpath = "panelbutton";
- loadedSkin.applaunchermouseoverpath = "applaunchermouseover";
- loadedSkin.applauncherpath = "applauncher";
- loadedSkin.panelclockpath = "panelclock";
- loadedSkin.desktopbackgroundpath = "desktopbackground";
- loadedSkin.desktoppanelpath = "desktoppanel";
- loadedSkin.minbtnhoverpath = "minbtnhover";
- loadedSkin.minbtnclickpath = "minbtnclick";
- loadedSkin.rightcornerpath = "rightcorner";
- loadedSkin.titlebarpath = "titlebar";
- loadedSkin.borderrightpath = "borderright";
- loadedSkin.borderleftpath = "borderleft";
- loadedSkin.borderbottompath = "borderbottom";
- loadedSkin.closebtnpath = "closebtn";
- loadedSkin.closebtnhoverpath = "closebtnhover";
- loadedSkin.closebtnclickpath = "closebtnclick";
- loadedSkin.rollbtnpath = "rollbtn";
- loadedSkin.rollbtnhoverpath = "rollbtnhover";
- loadedSkin.rollbtnclickpath = "rollbtnclick";
- loadedSkin.minbtnpath = "minbtn";
- loadedSkin.leftcornerpath = "leftcornerpath";
- loadedSkin.bottomleftcornerpath = "bottomleftcorner";
- loadedSkin.bottomrightcornerpath = "bottomrightcorner";
- //Save to new paths.
- saveimage(loadedskin_images.applauncherclick, loadedSkin.applauncherclickpath);
- saveimage(loadedskin_images.panelbutton, loadedSkin.panelbuttonpath);
- saveimage(loadedskin_images.applaunchermouseover, loadedSkin.applaunchermouseoverpath);
- saveimage(loadedskin_images.applauncher, loadedSkin.applauncherpath);
- saveimage(loadedskin_images.panelclock, loadedSkin.panelclockpath);
- saveimage(loadedskin_images.desktopbackground, loadedSkin.desktopbackgroundpath);
- saveimage(loadedskin_images.desktoppanel, loadedSkin.desktoppanelpath);
- saveimage(loadedskin_images.minbtnhover, loadedSkin.minbtnhoverpath);
- saveimage(loadedskin_images.minbtnclick, loadedSkin.minbtnclickpath);
- saveimage(loadedskin_images.rightcorner, loadedSkin.rightcornerpath);
- saveimage(loadedskin_images.titlebar, loadedSkin.titlebarpath);
- saveimage(loadedskin_images.borderright, loadedSkin.borderrightpath);
- saveimage(loadedskin_images.borderleft, loadedSkin.borderleftpath);
- saveimage(loadedskin_images.borderbottom, loadedSkin.borderbottompath);
- saveimage(loadedskin_images.closebtn, loadedSkin.closebtnpath);
- saveimage(loadedskin_images.closebtnhover, loadedSkin.closebtnhoverpath);
- saveimage(loadedskin_images.closebtnclick, loadedSkin.closebtnclickpath);
- saveimage(loadedskin_images.rollbtn, loadedSkin.rollbtnpath);
- saveimage(loadedskin_images.rollbtnhover, loadedSkin.rollbtnhoverpath);
- saveimage(loadedskin_images.rollbtnclick, loadedSkin.rollbtnclickpath);
- saveimage(loadedskin_images.minbtn, loadedSkin.minbtnpath);
- saveimage(loadedskin_images.leftcorner, loadedSkin.leftcornerpath);
- saveimage(loadedskin_images.bottomleftcorner, loadedSkin.bottomleftcornerpath);
- saveimage(loadedskin_images.bottomrightcorner, loadedSkin.bottomrightcornerpath);
- foreach(KeyValuePair<string, Image> kv in IconRegistry)
- {
- if(kv.Value != null)
- {
- SaveIcon(kv.Value, kv.Key);
- }
- }
-
- }
-
- /// <summary>
- /// Saves the skin to a new .skn file
- /// </summary>
- /// <param name="filePath">Target .skn file</param>
- public static void saveskintofile(string filePath)
- {
- saveskin();
- ZipFile.CreateFromDirectory(Paths.LoadedSkin, filePath);
- }
-
- /// <summary>
- /// Saves the skin.
- /// </summary>
- public static void saveskin()
- {
- saveimages();
- string rawjson = JsonConvert.SerializeObject(loadedSkin);
- File.WriteAllText(Paths.LoadedSkin + "data.json", rawjson);
- SavePanels();
- string panels = JsonConvert.SerializeObject(loadedSkin.DesktopPanels);
- File.WriteAllText(Paths.LoadedSkin + "panels.json", panels);
- SaveEmbeddedNamePack();
- }
- }
-
- public class MyToolStripRenderer : ToolStripProfessionalRenderer
- {
- public MyToolStripRenderer() : base(new ShiftOSColorTable())
- {
-
- }
-
- public MyToolStripRenderer(ProfessionalColorTable table) : base(table)
- {
-
- }
-
- protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
- {
- if (e.Item.Text == API.CurrentSkin.applicationlaunchername)
- {
- e.TextColor = API.CurrentSkin.applicationsbuttontextcolour;
- }
- else {
- e.TextColor = API.CurrentSkin.Menu_TextColor;
- }
- base.OnRenderItemText(e);
- }
-
- protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
- {
- //base.OnRenderToolStripBorder(e);
- }
-
-
- }
-} \ No newline at end of file