2016-04-09 13:16:39 -04:00
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 ;
2016-07-19 21:53:26 -04:00
using ShiftUI ;
2016-04-09 13:16:39 -04:00
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 ( ) ;
}
} ;
}
}
}