From 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 10:38:18 -0300 Subject: chore: location --- Codemerx/Gestor.Application/Componentes/PassBox.cs | 213 +++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 Codemerx/Gestor.Application/Componentes/PassBox.cs (limited to 'Codemerx/Gestor.Application/Componentes/PassBox.cs') diff --git a/Codemerx/Gestor.Application/Componentes/PassBox.cs b/Codemerx/Gestor.Application/Componentes/PassBox.cs new file mode 100644 index 0000000..9ca18aa --- /dev/null +++ b/Codemerx/Gestor.Application/Componentes/PassBox.cs @@ -0,0 +1,213 @@ +using Gestor.Common.Validation; +using System; +using System.CodeDom.Compiler; +using System.ComponentModel; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.Windows.Markup; + +namespace Gestor.Application.Componentes +{ + public class PassBox : UserControl, IComponentConnector + { + public readonly static DependencyProperty ValueProperty; + + public readonly static DependencyProperty HintProperty; + + public readonly static DependencyProperty PasswordWidthProperty; + + private bool _hidePasswordView; + + internal Grid LayoutRoot; + + internal Button ShowHidePassword; + + internal PasswordBox TextPassword; + + internal TextBox TextPasswordVisible; + + private bool _contentLoaded; + + public bool HidePasswordView + { + get + { + return this._hidePasswordView; + } + set + { + if (value) + { + this.HidePassword(); + } + } + } + + public string Hint + { + get + { + return (string)base.GetValue(PassBox.HintProperty); + } + set + { + base.SetValue(PassBox.HintProperty, value); + } + } + + public string PasswordWidth + { + get + { + return (string)base.GetValue(PassBox.PasswordWidthProperty); + } + set + { + base.SetValue(PassBox.PasswordWidthProperty, value); + } + } + + public string Value + { + get + { + return (string)base.GetValue(PassBox.ValueProperty); + } + set + { + base.SetValue(PassBox.ValueProperty, value); + } + } + + public bool Visible + { + get; + set; + } + + [DebuggerNonUserCode] + [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] + internal Delegate _CreateDelegate(Type delegateType, string handler) + { + return Delegate.CreateDelegate(delegateType, this, handler); + } + + static PassBox() + { + PassBox.ValueProperty = DependencyProperty.Register("Value", typeof(string), typeof(PassBox), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)); + PassBox.HintProperty = DependencyProperty.Register("Hint", typeof(string), typeof(PassBox), new FrameworkPropertyMetadata("SENHA", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)); + PassBox.PasswordWidthProperty = DependencyProperty.Register("PasswordWidth", typeof(string), typeof(PassBox), new PropertyMetadata(null, new PropertyChangedCallback(PassBox.OnBoundWidthChanged))); + } + + public PassBox() + { + this.InitializeComponent(); + this.LayoutRoot.DataContext = this; + } + + public void HidePassword() + { + this.TextPasswordVisible.Visibility = System.Windows.Visibility.Hidden; + this.TextPassword.Visibility = System.Windows.Visibility.Visible; + this.TextPassword.Focus(); + this.Visible = false; + } + + [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/componentes/passbox.xaml", UriKind.Relative)); + } + + private static void OnBoundWidthChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + PassBox passBox = d as PassBox; + if (d == null || passBox == null) + { + return; + } + string newValue = (string)e.NewValue; + if (!ValidationHelper.ValidateDouble(newValue)) + { + return; + } + passBox.TextPassword.MinWidth = double.Parse(newValue); + passBox.TextPasswordVisible.MinWidth = double.Parse(newValue); + } + + private void ShowHidePassword_OnClick(object sender, RoutedEventArgs e) + { + if (this.Visible) + { + this.HidePassword(); + return; + } + this.ShowPassword(); + } + + private void ShowHidePassword_OnMouseDown(object sender, MouseButtonEventArgs e) + { + this.ShowPassword(); + } + + private void ShowHidePassword_OnMouseUp(object sender, MouseButtonEventArgs e) + { + this.HidePassword(); + } + + public void ShowPassword() + { + this.TextPasswordVisible.Visibility = System.Windows.Visibility.Visible; + this.TextPassword.Visibility = System.Windows.Visibility.Hidden; + this.TextPasswordVisible.Focus(); + this.Visible = true; + } + + [DebuggerNonUserCode] + [EditorBrowsable(EditorBrowsableState.Never)] + [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) + { + switch (connectionId) + { + case 1: + { + this.LayoutRoot = (Grid)target; + return; + } + case 2: + { + this.ShowHidePassword = (Button)target; + this.ShowHidePassword.PreviewMouseDown += new MouseButtonEventHandler(this.ShowHidePassword_OnMouseDown); + this.ShowHidePassword.PreviewMouseUp += new MouseButtonEventHandler(this.ShowHidePassword_OnMouseUp); + return; + } + case 3: + { + this.TextPassword = (PasswordBox)target; + this.TextPassword.PasswordChanged += new RoutedEventHandler(this.TextPassword_PasswordChanged); + return; + } + case 4: + { + this.TextPasswordVisible = (TextBox)target; + return; + } + } + this._contentLoaded = true; + } + + private void TextPassword_PasswordChanged(object sender, RoutedEventArgs e) + { + } + } +} \ No newline at end of file -- cgit v1.2.3