From f30dcf5ef41d54c588d7b42c48be8d941abba72e Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 8 Jan 2017 09:57:10 -0500 Subject: Initial upload --- ShiftOS.Wpf/Applications/SkinLoader.xaml.cs | 176 ++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 ShiftOS.Wpf/Applications/SkinLoader.xaml.cs (limited to 'ShiftOS.Wpf/Applications/SkinLoader.xaml.cs') diff --git a/ShiftOS.Wpf/Applications/SkinLoader.xaml.cs b/ShiftOS.Wpf/Applications/SkinLoader.xaml.cs new file mode 100644 index 0000000..1facc89 --- /dev/null +++ b/ShiftOS.Wpf/Applications/SkinLoader.xaml.cs @@ -0,0 +1,176 @@ +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 +{ + /// + /// Interaction logic for SkinLoader.xaml + /// + [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(JsonConvert.SerializeObject(SkinEngine.LoadedSkin)); + } + + public void OnSkinLoad() + { + Setup(); + } + + public bool OnUnload() + { + return true; + } + + public void OnUpgrade() + { + } + + public void apps_Click(object s, RoutedEventArgs a) + { + + } + } +} -- cgit v1.2.3