using Gestor.Application.ViewModels.Ferramentas; using Gestor.Application.ViewModels.Generic; using Gestor.Model.API; using System; using System.CodeDom.Compiler; using System.ComponentModel; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using System.Windows.Markup; using System.Windows.Media; using System.Windows.Shapes; using System.Windows.Shell; using System.Windows.Threading; namespace Gestor.Application.Views.Ferramentas { public class DownloadWindow : Window, IComponentConnector { internal DownloadViewModel ViewModel; private bool _buttonClickable; internal System.Windows.Shell.WindowChrome WindowChrome; internal Grid MinimizeButton; internal Grid MaximizeButton; internal Grid CloseButton; private bool _contentLoaded; public DownloadWindow(Parameters parameters) { this.ViewModel = new DownloadViewModel(parameters); base.DataContext = this.ViewModel; this.InitializeComponent(); System.Windows.Threading.Dispatcher dispatcher = base.Dispatcher; if (dispatcher == null) { return; } dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(this.ContentLoad)); } public void CloseButton_Click() { base.Close(); } private void ContentLoad() { this.MinimizeButton.MouseEnter += new MouseEventHandler(DownloadWindow.TopControls_OnMouseEnter); this.MinimizeButton.MouseLeave += new MouseEventHandler(this.TopControls_OnMouseLeave); this.MaximizeButton.MouseEnter += new MouseEventHandler(DownloadWindow.TopControls_OnMouseEnter); this.MaximizeButton.MouseLeave += new MouseEventHandler(this.TopControls_OnMouseLeave); this.CloseButton.MouseEnter += new MouseEventHandler(DownloadWindow.TopControls_OnMouseEnter); this.CloseButton.MouseLeave += new MouseEventHandler(this.TopControls_OnMouseLeave); } private async void DownloadWindow_OnLoaded(object sender, RoutedEventArgs e) { this.ViewModel.IsEnabled = false; await this.ViewModel.Atualizar(); } [DebuggerNonUserCode] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] public void InitializeComponent() { if (this._contentLoaded) { return; } this._contentLoaded = true; System.Windows.Application.LoadComponent(this, new Uri("/Gestor.Application;component/views/ferramentas/downloadwindow.xaml", UriKind.Relative)); } public void MinimizeButton_Click() { base.WindowState = System.Windows.WindowState.Minimized; } [DebuggerNonUserCode] [EditorBrowsable(EditorBrowsableState.Never)] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: { ((DownloadWindow)target).Loaded += new RoutedEventHandler(this.DownloadWindow_OnLoaded); return; } case 2: { this.WindowChrome = (System.Windows.Shell.WindowChrome)target; return; } case 3: { this.MinimizeButton = (Grid)target; this.MinimizeButton.MouseLeftButtonDown += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonDown); this.MinimizeButton.MouseLeftButtonUp += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonUp); return; } case 4: { this.MaximizeButton = (Grid)target; this.MaximizeButton.MouseLeftButtonDown += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonDown); this.MaximizeButton.MouseLeftButtonUp += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonUp); return; } case 5: { this.CloseButton = (Grid)target; this.CloseButton.MouseLeftButtonDown += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonDown); this.CloseButton.MouseLeftButtonUp += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonUp); return; } } this._contentLoaded = true; } private static void TopControls_OnMouseEnter(object sender, MouseEventArgs e) { ((Grid)sender).Background = (((Grid)sender).Name == "CloseButton" ? new SolidColorBrush(Colors.IndianRed) : new SolidColorBrush(Colors.Gray)); Path child = VisualTreeHelper.GetChild((Grid)sender, 0) as Path; if (child != null) { child.Stroke = new SolidColorBrush(Colors.White); } } private void TopControls_OnMouseLeave(object sender, MouseEventArgs e) { this._buttonClickable = false; ((Grid)sender).Background = new SolidColorBrush(Colors.Transparent); Path child = VisualTreeHelper.GetChild((Grid)sender, 0) as Path; if (child != null) { child.Stroke = new SolidColorBrush(Colors.White); } } private void TopControls_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { this._buttonClickable = true; ((Grid)sender).Background = (((Grid)sender).Name == "CloseButton" ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.DimGray)); } private void TopControls_OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (this._buttonClickable) { MethodInfo method = base.GetType().GetMethod(string.Concat(((Grid)sender).Name, "_Click")); if (method == null) { return; } method.Invoke(this, null); } } } }