diff options
| author | MichaelTheShifter <[email protected]> | 2016-06-25 08:10:03 -0400 |
|---|---|---|
| committer | MichaelTheShifter <[email protected]> | 2016-06-25 08:10:03 -0400 |
| commit | 84f689b91a73e512b035df40bbcf556b008a3b81 (patch) | |
| tree | da1020b2b5866c7ce300ac7b9c97112fe80fa1b3 /source/WindowsFormsApplication1/Apps/SkinLoader.cs | |
| parent | 6707e2076a63dafab686fd533c95fb8ceb6c23fa (diff) | |
| download | shiftos-c--84f689b91a73e512b035df40bbcf556b008a3b81.tar.gz shiftos-c--84f689b91a73e512b035df40bbcf556b008a3b81.tar.bz2 shiftos-c--84f689b91a73e512b035df40bbcf556b008a3b81.zip | |
Sort source code into folders.
It feels better to know what's responsible for what... Plus I removed
some un-needed C# stuff.
Diffstat (limited to 'source/WindowsFormsApplication1/Apps/SkinLoader.cs')
| -rw-r--r-- | source/WindowsFormsApplication1/Apps/SkinLoader.cs | 652 |
1 files changed, 652 insertions, 0 deletions
diff --git a/source/WindowsFormsApplication1/Apps/SkinLoader.cs b/source/WindowsFormsApplication1/Apps/SkinLoader.cs new file mode 100644 index 0000000..e6d5328 --- /dev/null +++ b/source/WindowsFormsApplication1/Apps/SkinLoader.cs @@ -0,0 +1,652 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ShiftOS +{ + public partial class SkinLoader : Form + { + public SkinLoader() + { + InitializeComponent(); + } + + public Skinning.Skin PreviewSkin = null; + public Skinning.Images PreviewImages = null; + + private void btnclose_Click(object sender, EventArgs e) + { + this.Close(); + } + + public string LoadedSkinFile = "fail"; + + public void LoadSkin(string res) + { + LoadedSkinFile = res; + ExtractSkin(res); + SetupDesktop(); + setupborders(); + setuptitlebar(); + setskin(); + } + + private void ExtractSkin(string file) + { + if(Directory.Exists(Paths.ToBeLoaded)) + { + Directory.Delete(Paths.ToBeLoaded, true); + } + API.ExtractFile(file, Paths.ToBeLoaded, false); + PreviewSkin = JsonConvert.DeserializeObject<Skinning.Skin>(File.ReadAllText(Paths.ToBeLoaded + "data.json")); + LoadImages(); + } + + private void LoadImages() + { + PreviewImages = new Skinning.Images(); + PreviewImages.applauncherclick = GetImage(PreviewSkin.applauncherclickpath); + PreviewImages.panelbutton = GetImage(PreviewSkin.panelbuttonpath); + PreviewImages.applaunchermouseover = GetImage(PreviewSkin.applaunchermouseoverpath); + PreviewImages.applauncher = GetImage(PreviewSkin.applauncherpath); + PreviewImages.panelclock = GetImage(PreviewSkin.panelclockpath); + PreviewImages.desktopbackground = GetImage(PreviewSkin.desktopbackgroundpath); + PreviewImages.desktoppanel = GetImage(PreviewSkin.desktoppanelpath); + PreviewImages.minbtnhover = GetImage(PreviewSkin.minbtnhoverpath); + PreviewImages.minbtnclick = GetImage(PreviewSkin.minbtnclickpath); + PreviewImages.rightcorner = GetImage(PreviewSkin.rightcornerpath); + PreviewImages.titlebar = GetImage(PreviewSkin.titlebarpath); + PreviewImages.borderright = GetImage(PreviewSkin.borderrightpath); + PreviewImages.borderleft = GetImage(PreviewSkin.borderleftpath); + PreviewImages.borderbottom = GetImage(PreviewSkin.borderbottompath); + PreviewImages.closebtn = GetImage(PreviewSkin.closebtnpath); + PreviewImages.closebtnhover = GetImage(PreviewSkin.closebtnhoverpath); + PreviewImages.closebtnclick = GetImage(PreviewSkin.closebtnclickpath); + PreviewImages.rollbtn = GetImage(PreviewSkin.rollbtnpath); + PreviewImages.rollbtnhover = GetImage(PreviewSkin.rollbtnhoverpath); + PreviewImages.rollbtnclick = GetImage(PreviewSkin.rollbtnclickpath); + PreviewImages.minbtn = GetImage(PreviewSkin.minbtnpath); + PreviewImages.leftcorner = GetImage(PreviewSkin.leftcornerpath); + PreviewImages.bottomleftcorner = GetImage(PreviewSkin.bottomleftcornerpath); + PreviewImages.bottomrightcorner = GetImage(PreviewSkin.bottomrightcornerpath); + } + + private Bitmap GetImage(string fileName) + { + Bitmap ret; + if (File.Exists(Paths.ToBeLoaded + fileName)) + { + using (Image img = Image.FromFile(Paths.ToBeLoaded + fileName)) + { + ret = new Bitmap(img); + } + } + else + { + ret = null; + } + return ret; + } + + private void btnloadskin_Click(object sender, EventArgs e) + { + API.CreateFileSkimmerSession(".skn;.spk", File_Skimmer.FileSkimmerMode.Open); + API.FileSkimmerSession.FormClosing += (object s, FormClosingEventArgs a) => + { + string res = API.GetFSResult(); + if(res != "fail") + { + if(res.EndsWith(".skn")) + { + LoadedSkinFile = res; + ExtractSkin(res); + SetupDesktop(); + setupborders(); + setuptitlebar(); + setskin(); + } + else if(res.EndsWith(".spk")) + { + LoadedPack = res; + SetupPackUI(); + } + } + }; + } + + public string LoadedPack = ""; + + public void SetupPackUI() + { + pgcontents.Hide(); + pnlskinpacks.Show(); + + txtpackpath.Text = LoadedPack; + + if(Directory.Exists(Paths.SkinDir + "_packdata")) + { + Directory.Delete(Paths.SkinDir + "_packdata", true); + } + API.ExtractFile(LoadedPack, Paths.SkinDir + "_packdata", false); + cbpackfiles.Items.Clear(); + foreach (string file in Directory.GetFiles(Paths.SkinDir + "_packdata")) + { + var finf = new FileInfo(file); + cbpackfiles.Items.Add(finf.Name); + + } + } + + private void ScanForSkinFiles(string dir, ref List<string> files) + { + foreach(string file in Directory.GetFiles(dir)) + { + var finf = new FileInfo(file); + if(finf.Extension == ".skn") + { + files.Add(finf.FullName); + } + } + foreach(string dirname in Directory.GetDirectories(dir)) + { + ScanForSkinFiles(dirname, ref files); + } + } + + private void btnapplyskin_Click(object sender, EventArgs e) + { + if(LoadedSkinFile != "fail") + { + try + { + if (Viruses.InfectedWith("skininceptor")) + { + var rnd = new Random(); + switch(rnd.Next(0, 10)) + { + case 1: + case 3: + case 5: + case 7: + case 9: + //Load another random skin. + List<string> skinfiles = new List<string>(); + ScanForSkinFiles(Paths.SaveRoot, ref skinfiles); + string fname = skinfiles[rnd.Next(0, skinfiles.Count - 1)]; + Skinning.Utilities.loadsknfile(fname); + Skinning.Utilities.loadskin(); + API.CurrentSession.SetupDesktop(); + API.UpdateWindows(); + break; + default: + File.Delete(LoadedSkinFile); + //Corrupting binary is fun. + API.CreateInfoboxSession("Skin Loader - Error", "It appears that the provided skin file is either corrupted or not supported by this version of ShiftOS.", infobox.InfoboxMode.Info); + Skinning.Utilities.loadedSkin = new Skinning.Skin(); + Skinning.Utilities.loadedskin_images = new Skinning.Images(); + API.UpdateWindows(); + break; + } + } + else { + Skinning.Utilities.loadsknfile(LoadedSkinFile); + Skinning.Utilities.loadskin(); + API.CurrentSession.SetupDesktop(); + API.UpdateWindows(); + PreviewSkin = API.CurrentSkin; + PreviewImages = API.CurrentSkinImages; + SetupDesktop(); + setupborders(); + setuptitlebar(); + setskin(); + } + } + catch (Exception ex) + { + if (API.DeveloperMode == false) + { + API.CreateInfoboxSession("Skin Loader - Error", "It appears that the provided skin file is either corrupted or not supported by this version of ShiftOS.", infobox.InfoboxMode.Info); + } + else + { + API.CreateInfoboxSession("Skin Loader - Error", ex.Message, infobox.InfoboxMode.Info); + } + } + } + else + { + API.CreateInfoboxSession("Skin Loader - Error", "You have not selected a skin file to load! Try pressing \"Load Skin\" and selecting a .skn file.", infobox.InfoboxMode.Info); + } + } + + private void SkinLoader_Load(object sender, EventArgs e) + { + + PreviewSkin = API.CurrentSkin; + PreviewImages = API.CurrentSkinImages; + LoadPreview(); + pnlskinpacks.Hide(); + pgcontents.Show(); + } + + private void LoadPreview() + { + SetupDesktop(); + setupborders(); + setuptitlebar(); + setskin(); + + } + + #region Preview Skinning + + public void SetupDesktop() + { + + if (API.Upgrades["desktoppanel"] == true) + { + if (PreviewImages.desktoppanel == null) + { + predesktoppanel.BackColor = PreviewSkin.desktoppanelcolour; + predesktoppanel.BackgroundImage = null; + } + else { + predesktoppanel.BackgroundImage = PreviewImages.desktoppanel; + predesktoppanel.BackgroundImageLayout = (ImageLayout)PreviewSkin.desktoppanellayout; + predesktoppanel.BackColor = Color.Transparent; + } + + predesktoppanel.Size = new Size(predesktoppanel.Size.Width, PreviewSkin.desktoppanelheight); + switch (PreviewSkin.desktoppanelposition) + { + case "Top": + predesktoppanel.Dock = DockStyle.Top; + predesktopappmenu.Dock = DockStyle.Top; + break; + case "Bottom": + predesktoppanel.Dock = DockStyle.Bottom; + predesktopappmenu.Dock = DockStyle.Bottom; + break; + } + predesktoppanel.Show(); + } + else { + predesktoppanel.Hide(); + } + + + if (API.Upgrades["applaunchermenu"] == true) + { + ApplicationsToolStripMenuItem.Font = new Font(PreviewSkin.applicationbuttontextfont, PreviewSkin.applicationbuttontextsize, PreviewSkin.applicationbuttontextstyle); + ApplicationsToolStripMenuItem.Text = PreviewSkin.applicationlaunchername; + + + + ApplicationsToolStripMenuItem.Height = PreviewSkin.applicationbuttonheight; + if (PreviewImages.applauncher != null) + { + ApplicationsToolStripMenuItem.Text = ""; + ApplicationsToolStripMenuItem.BackColor = Color.Transparent; + } + else { + ApplicationsToolStripMenuItem.Text = PreviewSkin.applicationlaunchername; + ApplicationsToolStripMenuItem.BackColor = PreviewSkin.applauncherbackgroundcolour; + ApplicationsToolStripMenuItem.BackgroundImage = null; + } + + preapplaunchermenuholder.Width = PreviewSkin.applaunchermenuholderwidth; + predesktopappmenu.Width = PreviewSkin.applaunchermenuholderwidth; + ApplicationsToolStripMenuItem.Width = PreviewSkin.applaunchermenuholderwidth; + preapplaunchermenuholder.Height = PreviewSkin.applicationbuttonheight; + predesktopappmenu.Height = PreviewSkin.applicationbuttonheight; + ApplicationsToolStripMenuItem.Height = PreviewSkin.applicationbuttonheight; + + if (PreviewImages.applauncher != null) + { + ApplicationsToolStripMenuItem.BackgroundImage = PreviewImages.applauncher; + } + else { + ApplicationsToolStripMenuItem.BackColor = PreviewSkin.applauncherbackgroundcolour; + ApplicationsToolStripMenuItem.BackgroundImageLayout = (ImageLayout)PreviewSkin.applauncherlayout; + } + } + else { + ApplicationsToolStripMenuItem.Visible = false; + } + + if (API.Upgrades["desktoppanelclock"] == true) + { + + prepaneltimetext.ForeColor = PreviewSkin.clocktextcolour; + + if (PreviewImages.panelclock == null) + { + pretimepanel.BackColor = PreviewSkin.clockbackgroundcolor; + pretimepanel.BackgroundImage = null; + } + else { + pretimepanel.BackColor = Color.Transparent; + pretimepanel.BackgroundImage = PreviewImages.panelclock; + pretimepanel.BackgroundImageLayout = (ImageLayout)PreviewSkin.panelclocklayout; + } + prepaneltimetext.Font = new Font(PreviewSkin.panelclocktextfont, PreviewSkin.panelclocktextsize, PreviewSkin.panelclocktextstyle); + pretimepanel.Size = new Size(prepaneltimetext.Width + 3, pretimepanel.Height); + prepaneltimetext.Location = new Point(0, PreviewSkin.panelclocktexttop); + pretimepanel.Show(); + } + else { + pretimepanel.Hide(); + } + + + ApplicationsToolStripMenuItem.BackColor = PreviewSkin.applauncherbuttoncolour; + + pnldesktoppreview.BackColor = PreviewSkin.desktopbackgroundcolour; + pnldesktoppreview.BackgroundImage = PreviewImages.desktopbackground; + pnldesktoppreview.BackgroundImageLayout = (ImageLayout)PreviewSkin.desktopbackgroundlayout; + + if (API.Upgrades["panelbuttons"] == true) + { + prepnlpanelbutton.Visible = API.Upgrades["panelbuttons"]; + + pretbicon.Image = Properties.Resources.iconTerminal; + pretbctext.Text = "Terminal"; + + prepnlpanelbutton.Margin = new Padding(0, PreviewSkin.panelbuttonfromtop, PreviewSkin.panelbuttongap, 0); + + if (API.Upgrades["appicons"] == true) + { + pretbicon.Show(); + } + else + { + pretbicon.Hide(); + } + pretbicon.Location = new Point(PreviewSkin.panelbuttoniconside, PreviewSkin.panelbuttonicontop); + pretbicon.Size = new Size(PreviewSkin.panelbuttoniconsize, PreviewSkin.panelbuttoniconsize); + prepnlpanelbutton.Size = new Size(PreviewSkin.panelbuttonwidth, PreviewSkin.panelbuttonheight); + prepnlpanelbutton.BackColor = PreviewSkin.panelbuttoncolour; + prepnlpanelbutton.BackgroundImage = PreviewImages.panelbutton; + prepnlpanelbutton.BackgroundImageLayout = (ImageLayout)PreviewSkin.panelbuttonlayout; + pretbctext.ForeColor = PreviewSkin.panelbuttontextcolour; + pretbctext.Font = new Font(PreviewSkin.panelbuttontextfont, PreviewSkin.panelbuttontextsize, PreviewSkin.panelbuttontextstyle); + pretbctext.Location = new Point(PreviewSkin.panelbuttontextside, PreviewSkin.panelbuttontexttop); + + + pretbicon.Size = new Size(PreviewSkin.panelbuttoniconsize, PreviewSkin.panelbuttoniconsize); + + } + prepnlpanelbuttonholder.Padding = new Padding(PreviewSkin.panelbuttoninitialgap, 0, 0, 0); + + + } + + + + public void setskin() + { + + //disposals + preclosebutton.BackgroundImage = null; + pretitlebar.BackgroundImage = null; + prerollupbutton.BackgroundImage = null; + prepgtoplcorner.BackgroundImage = null; + prepgtoprcorner.BackgroundImage = null; + preminimizebutton.BackgroundImage = null; + //apply new skin + if (PreviewImages.closebtn == null) + preclosebutton.BackColor = PreviewSkin.closebtncolour; + else + preclosebutton.BackgroundImage = PreviewImages.closebtn; + preclosebutton.BackgroundImageLayout = (ImageLayout)PreviewSkin.closebtnlayout; + if (PreviewImages.titlebar == null) + pretitlebar.BackColor = PreviewSkin.titlebarcolour; + else + pretitlebar.BackgroundImage = PreviewImages.titlebar; + pretitlebar.BackgroundImageLayout = (ImageLayout)PreviewSkin.titlebarlayout; + if (PreviewImages.rollbtn == null) + prerollupbutton.BackColor = PreviewSkin.rollbtncolour; + else + prerollupbutton.BackgroundImage = PreviewImages.rollbtn; + prerollupbutton.BackgroundImageLayout = (ImageLayout)PreviewSkin.rollbtnlayout; + if (PreviewImages.leftcorner == null) + prepgtoplcorner.BackColor = PreviewSkin.leftcornercolour; + else + prepgtoplcorner.BackgroundImage = PreviewImages.leftcorner; + prepgtoplcorner.BackgroundImageLayout = (ImageLayout)PreviewSkin.leftcornerlayout; + if (PreviewImages.rightcorner == null) + prepgtoprcorner.BackColor = PreviewSkin.rightcornercolour; + else + prepgtoprcorner.BackgroundImage = PreviewImages.rightcorner; + prepgtoprcorner.BackgroundImageLayout = (ImageLayout)PreviewSkin.rightcornerlayout; + if (PreviewImages.minbtn == null) + preminimizebutton.BackColor = PreviewSkin.minbtncolour; + else + preminimizebutton.BackgroundImage = PreviewImages.minbtn; + preminimizebutton.BackgroundImageLayout = (ImageLayout)PreviewSkin.minbtnlayout; + if (PreviewImages.borderleft == null) + prepgleft.BackColor = PreviewSkin.borderleftcolour; + else + prepgleft.BackgroundImage = PreviewImages.borderleft; + prepgleft.BackgroundImageLayout = (ImageLayout)PreviewSkin.borderleftlayout; + if (PreviewImages.borderright == null) + prepgright.BackColor = PreviewSkin.borderrightcolour; + else + prepgright.BackgroundImage = PreviewImages.borderright; + prepgleft.BackgroundImageLayout = (ImageLayout)PreviewSkin.borderrightlayout; + if (PreviewImages.borderbottom == null) + prepgbottom.BackColor = PreviewSkin.borderbottomcolour; + else + prepgbottom.BackgroundImage = PreviewImages.borderbottom; + prepgbottom.BackgroundImageLayout = (ImageLayout)PreviewSkin.borderbottomlayout; + if (PreviewSkin.enablebordercorners == true) + { + if (PreviewImages.bottomleftcorner == null) + prepgbottomlcorner.BackColor = PreviewSkin.bottomleftcornercolour; + else + prepgbottomlcorner.BackgroundImage = PreviewImages.bottomleftcorner; + prepgbottomlcorner.BackgroundImageLayout = (ImageLayout)PreviewSkin.bottomleftcornerlayout; + if (PreviewImages.bottomrightcorner == null) + prepgbottomrcorner.BackColor = PreviewSkin.bottomrightcornercolour; + else + prepgbottomrcorner.BackgroundImage = PreviewImages.bottomrightcorner; + prepgbottomrcorner.BackgroundImageLayout = (ImageLayout)PreviewSkin.bottomrightcornerlayout; + } + else { + prepgbottomlcorner.BackColor = PreviewSkin.borderrightcolour; + prepgbottomrcorner.BackColor = PreviewSkin.borderrightcolour; + prepgbottomlcorner.BackgroundImage = null; + prepgbottomrcorner.BackgroundImage = null; + } + + //set bottom border corner size + prepgbottomlcorner.Size = new Size(PreviewSkin.borderwidth, PreviewSkin.borderwidth); + prepgbottomrcorner.Size = new Size(PreviewSkin.borderwidth, PreviewSkin.borderwidth); + prepgbottomlcorner.Location = new Point(0, pnlwindowpreview.Height - PreviewSkin.borderwidth); + prepgbottomrcorner.Location = new Point(pnlwindowpreview.Width, pnlwindowpreview.Height - PreviewSkin.borderwidth); + } + + private void setupborders() + { + if (API.Upgrades["windowborders"] == false) + { + prepgleft.Hide(); + prepgbottom.Hide(); + prepgright.Hide(); + } + } + + private void setuptitlebar() + { + setupborders(); + + prepgleft.Width = PreviewSkin.borderwidth; + prepgright.Width = PreviewSkin.borderwidth; + prepgbottom.Height = PreviewSkin.borderwidth; + pretitlebar.Height = PreviewSkin.titlebarheight; + + if (PreviewSkin.enablecorners == true) + { + prepgtoplcorner.Show(); + prepgtoprcorner.Show(); + prepgtoprcorner.Width = PreviewSkin.titlebarcornerwidth; + prepgtoplcorner.Width = PreviewSkin.titlebarcornerwidth; + } + else { + prepgtoplcorner.Hide(); + prepgtoprcorner.Hide(); + } + + if (API.Upgrades["titlebar"] == false) + { + pretitlebar.Hide(); + } + + if (API.Upgrades["titletext"] == false) + { + pretitletext.Hide(); + } + else { + pretitletext.Font = new Font(PreviewSkin.titletextfontfamily, PreviewSkin.titletextfontsize, PreviewSkin.titletextfontstyle, GraphicsUnit.Point); + pretitletext.Text = "Your app name here"; + pretitletext.Show(); + } + + if (API.Upgrades["closebutton"] == false) + { + preclosebutton.Hide(); + } + else { + preclosebutton.BackColor = PreviewSkin.closebtncolour; + preclosebutton.Size = PreviewSkin.closebtnsize; + preclosebutton.Show(); + } + + if (API.Upgrades["rollupbutton"] == false) + { + prerollupbutton.Hide(); + } + else { + prerollupbutton.BackColor = PreviewSkin.rollbtncolour; + prerollupbutton.Size = PreviewSkin.rollbtnsize; + prerollupbutton.Show(); + } + + if (API.Upgrades["minimizebutton"] == false) + { + preminimizebutton.Hide(); + } + else { + preminimizebutton.BackColor = PreviewSkin.minbtncolour; + preminimizebutton.Size = PreviewSkin.minbtnsize; + preminimizebutton.Show(); + } + + if (API.Upgrades["windowborders"] == true) + { + preclosebutton.Location = new Point(pretitlebar.Size.Width - PreviewSkin.closebtnfromside - preclosebutton.Size.Width, PreviewSkin.closebtnfromtop); + prerollupbutton.Location = new Point(pretitlebar.Size.Width - PreviewSkin.rollbtnfromside - prerollupbutton.Size.Width, PreviewSkin.rollbtnfromtop); + preminimizebutton.Location = new Point(pretitlebar.Size.Width - PreviewSkin.minbtnfromside - preminimizebutton.Size.Width, PreviewSkin.minbtnfromtop); + switch (PreviewSkin.titletextpos) + { + case "Left": + pretitletext.Location = new Point(PreviewSkin.titletextfromside, PreviewSkin.titletextfromtop); + break; + case "Centre": + pretitletext.Location = new Point((pretitlebar.Width / 2) - pretitletext.Width / 2, PreviewSkin.titletextfromtop); + break; + } + pretitletext.ForeColor = PreviewSkin.titletextcolour; + } + else { + preclosebutton.Location = new Point(pretitlebar.Size.Width - PreviewSkin.closebtnfromside - prepgtoplcorner.Width - prepgtoprcorner.Width - preclosebutton.Size.Width, PreviewSkin.closebtnfromtop); + prerollupbutton.Location = new Point(pretitlebar.Size.Width - PreviewSkin.rollbtnfromside - prepgtoplcorner.Width - prepgtoprcorner.Width - prerollupbutton.Size.Width, PreviewSkin.rollbtnfromtop); + preminimizebutton.Location = new Point(pretitlebar.Size.Width - PreviewSkin.minbtnfromside - prepgtoplcorner.Width - prepgtoprcorner.Width - preminimizebutton.Size.Width, PreviewSkin.minbtnfromtop); + switch (PreviewSkin.titletextpos) + { + case "Left": + pretitletext.Location = new Point(PreviewSkin.titletextfromside + prepgtoplcorner.Width, PreviewSkin.titletextfromtop); + break; + case "Centre": + pretitletext.Location = new Point((pretitlebar.Width / 2) - pretitletext.Width / 2, PreviewSkin.titletextfromtop); + break; + } + pretitletext.ForeColor = PreviewSkin.titletextcolour; + } + + //Change when Icon skinning complete + // Change to program's icon + if (API.Upgrades["appicons"] == true) + { + prepnlicon.Visible = true; + prepnlicon.Location = new Point(PreviewSkin.titleiconfromside, PreviewSkin.titleiconfromtop); + prepnlicon.Size = new Size(PreviewSkin.titlebariconsize, PreviewSkin.titlebariconsize); + prepnlicon.Image = Properties.Resources.iconShifter; + + } + + } + + #endregion + + private void btnsaveskin_Click(object sender, EventArgs e) + { + API.CreateFileSkimmerSession(".skn", File_Skimmer.FileSkimmerMode.Save); + API.FileSkimmerSession.FormClosing += (object s, FormClosingEventArgs a) => + { + string res = API.GetFSResult(); + if (res != "fail") + { + Skinning.Utilities.saveskintofile(res); + API.CreateInfoboxSession("Skin Loader", "The skin has been saved successfully.", infobox.InfoboxMode.Info); + } + }; + } + + private void btnbacktoskinloader_Click(object sender, EventArgs e) + { + pnlskinpacks.Hide(); + pgcontents.Show(); + } + + private void cbpackfiles_SelectedIndexChanged(object sender, EventArgs e) + { + if(cbpackfiles.Text.EndsWith(".skn")) + { + string dirsepchar = "\\"; + switch(OSInfo.GetPlatformID()) + { + case "microsoft": + dirsepchar = "\\"; + break; + default: + dirsepchar = "/"; + break; + } + LoadedSkinFile = Paths.SkinDir + "_packdata" + dirsepchar + cbpackfiles.Text; + } + } + + private void btnbrowse_Click(object sender, EventArgs e) + { + API.CreateFileSkimmerSession(".spk", File_Skimmer.FileSkimmerMode.Open); + API.FileSkimmerSession.FormClosing += (object s, FormClosingEventArgs a) => + { + string res = API.GetFSResult(); + if(res != "fail") + { + LoadedPack = res; + SetupPackUI(); + } + }; + } + } +} |
