mirror of
https://git.alee14.me/shiftos-archive/ShiftOS_TheReturn.git
synced 2025-01-23 18:22:17 +00:00
177 lines
5.6 KiB
C#
177 lines
5.6 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using System.Windows;
|
|||
|
using System.Windows.Controls;
|
|||
|
using System.Windows.Data;
|
|||
|
using System.Windows.Documents;
|
|||
|
using System.Windows.Input;
|
|||
|
using System.Windows.Media;
|
|||
|
using System.Windows.Media.Imaging;
|
|||
|
using System.Windows.Navigation;
|
|||
|
using System.Windows.Shapes;
|
|||
|
using Newtonsoft.Json;
|
|||
|
using ShiftOS.Objects.ShiftFS;
|
|||
|
using ShiftOS.Engine;
|
|||
|
|
|||
|
namespace ShiftOS.Wpf.Applications
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Interaction logic for SkinLoader.xaml
|
|||
|
/// </summary>
|
|||
|
[Launcher("Skin Loader", true, "al_skin_loader")]
|
|||
|
[RequiresUpgrade("skinning")]
|
|||
|
public partial class SkinLoader : UserControl, IShiftOSWindow
|
|||
|
{
|
|||
|
public SkinLoader()
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
}
|
|||
|
|
|||
|
private Skin _mySkin = new Skin();
|
|||
|
|
|||
|
private void close_Click(object sender, RoutedEventArgs e)
|
|||
|
{
|
|||
|
AppearanceManager.Close(this);
|
|||
|
}
|
|||
|
|
|||
|
private void loaddefault_Click(object sender, RoutedEventArgs e)
|
|||
|
{
|
|||
|
_mySkin = new Skin();
|
|||
|
Setup();
|
|||
|
}
|
|||
|
|
|||
|
private void import_Click(object sender, RoutedEventArgs e)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void export_Click(object sender, RoutedEventArgs e)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public void Setup()
|
|||
|
{
|
|||
|
SetupWindowUpgradeables();
|
|||
|
SetupWindowSkin();
|
|||
|
}
|
|||
|
|
|||
|
public void SetupWindowSkin()
|
|||
|
{
|
|||
|
if (_mySkin.ShowTitleCorners)
|
|||
|
{
|
|||
|
titleleft.Visibility = Visibility.Visible;
|
|||
|
titleright.Visibility = Visibility.Visible;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
titleleft.Visibility = Visibility.Hidden;
|
|||
|
titleright.Visibility = Visibility.Hidden;
|
|||
|
}
|
|||
|
|
|||
|
pgcontents.Background = _mySkin.ControlColor.CreateBrush();
|
|||
|
pgcontents.Foreground = _mySkin.ControlTextColor.CreateBrush();
|
|||
|
|
|||
|
|
|||
|
titlemaster.Height = _mySkin.TitlebarHeight;
|
|||
|
if (_mySkin.TitleTextCentered == true)
|
|||
|
{
|
|||
|
titletext.SetValue(Canvas.LeftProperty, (double)(titlemaster.ActualWidth - titletext.ActualWidth) / 2);
|
|||
|
titletext.SetValue(Canvas.TopProperty, (double)_mySkin.TitleTextLeft.Y);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
titletext.SetValue(Canvas.LeftProperty, (double)_mySkin.TitleTextLeft.X);
|
|||
|
titletext.SetValue(Canvas.TopProperty, (double)_mySkin.TitleTextLeft.Y);
|
|||
|
}
|
|||
|
|
|||
|
titletext.SetFont(_mySkin.TitleFont);
|
|||
|
|
|||
|
titletext.Foreground = _mySkin.TitleTextColor.CreateBrush();
|
|||
|
|
|||
|
titlebar.Background = _mySkin.TitleBackgroundColor.CreateBrush();
|
|||
|
|
|||
|
close.SetValue(Canvas.LeftProperty, this.ActualWidth - _mySkin.CloseButtonSize.Width - _mySkin.CloseButtonFromSide.X);
|
|||
|
close.SetValue(Canvas.TopProperty, (double)_mySkin.CloseButtonFromSide.Y);
|
|||
|
|
|||
|
min.SetValue(Canvas.LeftProperty, this.ActualWidth - _mySkin.MinimizeButtonSize.Width - _mySkin.MinimizeButtonFromSide.X);
|
|||
|
min.SetValue(Canvas.TopProperty, (double)_mySkin.MinimizeButtonFromSide.Y);
|
|||
|
|
|||
|
max.SetValue(Canvas.LeftProperty, this.ActualWidth - _mySkin.MaximizeButtonSize.Width - _mySkin.MaximizeButtonFromSide.X);
|
|||
|
max.SetValue(Canvas.TopProperty, (double)_mySkin.MaximizeButtonFromSide.Y);
|
|||
|
|
|||
|
close.Background = _mySkin.CloseButtonColor.CreateBrush();
|
|||
|
min.Background = _mySkin.MinimizeButtonColor.CreateBrush();
|
|||
|
max.Background = _mySkin.MaximizeButtonColor.CreateBrush();
|
|||
|
|
|||
|
close.BorderThickness = new Thickness(0.0);
|
|||
|
min.BorderThickness = new Thickness(0.0);
|
|||
|
max.BorderThickness = new Thickness(0.0);
|
|||
|
|
|||
|
borderleft.Background = _mySkin.BorderLeftBackground.CreateBrush();
|
|||
|
borderright.Background = _mySkin.BorderRightBackground.CreateBrush();
|
|||
|
borderbottom.Background = _mySkin.BorderBottomBackground.CreateBrush();
|
|||
|
borderbottoml.Background = _mySkin.BorderBottomLeftBackground.CreateBrush();
|
|||
|
borderbottomr.Background = _mySkin.BorderBottomRightBackground.CreateBrush();
|
|||
|
|
|||
|
borderleft.Width = _mySkin.LeftBorderWidth;
|
|||
|
borderright.Width = _mySkin.RightBorderWidth;
|
|||
|
bottommaster.Height = _mySkin.BottomBorderWidth;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public void SetupWindowUpgradeables()
|
|||
|
{
|
|||
|
close.Upgrade("close_button");
|
|||
|
max.Upgrade("maximize_button");
|
|||
|
min.Upgrade("minimize_button");
|
|||
|
|
|||
|
titlemaster.Upgrade("wm_titlebar");
|
|||
|
|
|||
|
borderleft.Upgrade("wm_free_placement");
|
|||
|
borderright.Upgrade("wm_free_placement");
|
|||
|
borderbottom.Upgrade("wm_free_placement");
|
|||
|
borderbottoml.Upgrade("wm_free_placement");
|
|||
|
borderbottomr.Upgrade("wm_free_placement");
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
private void apply_Click(object sender, RoutedEventArgs e)
|
|||
|
{
|
|||
|
Utils.WriteAllText(Paths.GetPath("skin.json"), JsonConvert.SerializeObject(_mySkin));
|
|||
|
SkinEngine.LoadSkin();
|
|||
|
}
|
|||
|
|
|||
|
public void OnLoad()
|
|||
|
{
|
|||
|
this.SetTitle("Skin Loader");
|
|||
|
_mySkin = JsonConvert.DeserializeObject<Skin>(JsonConvert.SerializeObject(SkinEngine.LoadedSkin));
|
|||
|
}
|
|||
|
|
|||
|
public void OnSkinLoad()
|
|||
|
{
|
|||
|
Setup();
|
|||
|
}
|
|||
|
|
|||
|
public bool OnUnload()
|
|||
|
{
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
public void OnUpgrade()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
public void apps_Click(object s, RoutedEventArgs a)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|