diff options
| author | MichaelTheShifter <[email protected]> | 2016-05-24 20:27:25 -0400 |
|---|---|---|
| committer | MichaelTheShifter <[email protected]> | 2016-05-24 20:27:35 -0400 |
| commit | b6bc4fd3de7324dd4b086c215768bc50b54c49bb (patch) | |
| tree | eba44505bcd8d824a093a0b18d471ffa0477384a /source/WindowsFormsApplication1/skins.cs | |
| parent | 95a1f2e4ae8fdb6862dc238106b1cda4948262a9 (diff) | |
| download | shiftos-c--b6bc4fd3de7324dd4b086c215768bc50b54c49bb.tar.gz shiftos-c--b6bc4fd3de7324dd4b086c215768bc50b54c49bb.tar.bz2 shiftos-c--b6bc4fd3de7324dd4b086c215768bc50b54c49bb.zip | |
0.1.1 Release Candidate 1
Committing all code for 0.1.1 Release Candidate 1.
Diffstat (limited to 'source/WindowsFormsApplication1/skins.cs')
| -rw-r--r-- | source/WindowsFormsApplication1/skins.cs | 49 |
1 files changed, 44 insertions, 5 deletions
diff --git a/source/WindowsFormsApplication1/skins.cs b/source/WindowsFormsApplication1/skins.cs index ddac7fb..bfef221 100644 --- a/source/WindowsFormsApplication1/skins.cs +++ b/source/WindowsFormsApplication1/skins.cs @@ -284,6 +284,8 @@ namespace Skinning public string Position = "Top"; public int Height = 24; public Color BackgroundColor = Color.Gray; + public Image BackgroundImage = null; + public string ImagePath = null; } public class PanelWidget @@ -441,6 +443,42 @@ namespace Skinning } /// <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.Position + loadedSkin.DesktopPanels.IndexOf(pnl).ToString(); + 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.Delete(dir, true); + } + Directory.CreateDirectory(dir); + foreach(var pnl in loadedSkin.DesktopPanels) + { + string dpath = Paths.LoadedSkin + "panels" + OSInfo.DirectorySeparator + pnl.Position + loadedSkin.DesktopPanels.IndexOf(pnl).ToString(); + if(pnl.BackgroundImage != null) + { + pnl.BackgroundImage.Save(dpath); + pnl.BackgroundImage = null; + } + } + } + /// <summary> /// Randomize some skin variables. Used for a virus. /// </summary> public static void Randomize() @@ -517,26 +555,26 @@ namespace Skinning { if(Directory.Exists(Paths.LoadedSkin)) { - try - { + //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 (Exception ex) + /*} + catch { //No skin to load. loadedSkin = new Skin(); loadedskin_images = new Images(); saveskin(); - } + }*/ } else { loadedSkin = new Skin(); @@ -751,6 +789,7 @@ namespace Skinning 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(); |
