From 290d35be1a1dfe8c0840dab762a73ad6896b217a Mon Sep 17 00:00:00 2001 From: Gabisonfire Date: Thu, 6 Oct 2016 22:33:55 -0400 Subject: [PATCH] AutoScan, AutoRebuild config, Random button, bug fixes --- LauncherWindow.xaml | 11 ++- LauncherWindow.xaml.cs | 58 ++++++++++++++++ MainWindow.xaml | 24 ++++--- MainWindow.xaml.cs | 116 +++++++++++++++++++++++++++---- Steam Game Launcher.csproj | 4 ++ bin/Debug/userconfig.ini | 9 +-- bin/Debug/userconfig.ini.default | 7 +- io.cs | 51 ++++++++++++-- packages.config | 1 + readme.md | 3 + 10 files changed, 245 insertions(+), 39 deletions(-) diff --git a/LauncherWindow.xaml b/LauncherWindow.xaml index 8888747..0b19f96 100644 --- a/LauncherWindow.xaml +++ b/LauncherWindow.xaml @@ -22,9 +22,14 @@ - - - + + + + + + + + diff --git a/LauncherWindow.xaml.cs b/LauncherWindow.xaml.cs index fa4d933..7aaed82 100644 --- a/LauncherWindow.xaml.cs +++ b/LauncherWindow.xaml.cs @@ -68,11 +68,13 @@ private void Toggle(object sender, NHotkey.HotkeyEventArgs e) if (WindowState == WindowState.Minimized) { WindowState = WindowState.Maximized; + this.Show(); return; } if (WindowState == WindowState.Maximized) { WindowState = WindowState.Minimized; + this.Hide(); return; } e.Handled = true; @@ -99,6 +101,8 @@ private void fmLauncher_Initialized(object sender, EventArgs e) Loading.Show(); // Set main panel margins and stack panel's size. Double.NaN sets it to auto. + MainDockPanel.Height = resolution.Height; + MainDockPanel.Width = resolution.Width; spMain.Width = Double.NaN; spMain.Height = Double.NaN; spMain.Margin = new Thickness(MainWindow.panelMargin[0], MainWindow.panelMargin[1], MainWindow.panelMargin[2], MainWindow.panelMargin[3]); @@ -124,6 +128,7 @@ private void fmLauncher_Initialized(object sender, EventArgs e) private void IconTray_TrayMouseDoubleClick(object sender, RoutedEventArgs e) { this.WindowState = WindowState.Maximized; + this.Show(); this.Focus(); } @@ -223,6 +228,58 @@ private void GenerateIcons() sp.Children.Add(lbl); spMain.Children.Add(sp); } + if (!MainWindow.hideRandomIcon) + { + MakeRandomIcon(); + } + } + + // Create "Random" button outside of WrapPanel + private void MakeRandomIcon() + { + double iconSize = Double.Parse(io.GetSetting("Main", "icon_size")); + HolderImage randomIcon = new HolderImage(); + BitmapImage randomIconSource = new BitmapImage(); + randomIconSource.BeginInit(); + randomIconSource.UriSource = new Uri("dice.png", UriKind.Relative); + randomIconSource.CacheOption = BitmapCacheOption.OnLoad; + randomIconSource.EndInit(); + randomIcon.Source = randomIconSource; + + // Create the events handlers + randomIcon.MouseEnter += (sender, eventArgs) => { Glow(randomIcon, true); }; + randomIcon.MouseLeave += (sender, eventArgs) => { Glow(randomIcon, false); }; + randomIcon.MouseLeftButtonDown += (sender, eventArgs) => { ButtonEffectDown(randomIcon); }; + Random random = new Random(); + randomIcon.MouseLeftButtonUp += (sender, eventArgs) => { LaunchGame(io.gamesList[random.Next(0,io.gamesList.Count -1)]); }; + randomIcon.VerticalAlignment = VerticalAlignment.Center; + randomIcon.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; + randomIcon.Height = iconSize / 2; + randomIcon.Width = iconSize / 2; + bottomPanel.Height = iconSize; + + // Create a label and stack panel + TextBlock lbl = new TextBlock(); + lbl.Text = "Random"; + lbl.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; + lbl.TextAlignment = TextAlignment.Center; + lbl.TextTrimming = TextTrimming.CharacterEllipsis; + lbl.Height = Double.NaN; // auto + lbl.Width = Double.NaN; // auto + lbl.FontFamily = MainWindow.lblTemplate.FontFamily; + lbl.FontSize = MainWindow.lblTemplate.FontSize; + lbl.FontStyle = MainWindow.lblTemplate.FontStyle; + lbl.FontWeight = MainWindow.lblTemplate.FontWeight; + lbl.Padding = new Thickness(0, MainWindow.labelPaddingTop, 0, 0); + lbl.Foreground = MainWindow.lblTemplate.Foreground; + lbl.Effect = new System.Windows.Media.Effects.DropShadowEffect(); + StackPanel sp = new StackPanel(); + sp.Width = Double.NaN; + sp.Height = Double.NaN; + sp.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; + sp.Children.Add(randomIcon); + sp.Children.Add(lbl); + bottomPanel.Children.Add(sp); } // Remove icon visually, add to hiddenlist @@ -310,6 +367,7 @@ private void LaunchGame(Game game) { Process.Start(game.url); WindowState = WindowState.Minimized; + Hide(); } private void Quit() diff --git a/MainWindow.xaml b/MainWindow.xaml index 730dcab..666bda2 100644 --- a/MainWindow.xaml +++ b/MainWindow.xaml @@ -8,7 +8,7 @@ mc:Ignorable="d" Title="Settings" Height="475.682" Width="718.808" ResizeMode="NoResize" Initialized="fmSettings_Initialized" ShowInTaskbar="False" Background="#FFDADADA" WindowStartupLocation="CenterScreen" Closing="fmSettings_Closing" Icon="/Resources/icon.ico"> -