Skip to content

Instantly share code, notes, and snippets.

@mhutch
Created September 18, 2013 17:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mhutch/6612515 to your computer and use it in GitHub Desktop.
Save mhutch/6612515 to your computer and use it in GitHub Desktop.
diff --git a/Xwt.Gtk/Xwt.GtkBackend/PasswordEntryBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/PasswordEntryBackend.cs
index 4809f7b..161eb3c 100644
--- a/Xwt.Gtk/Xwt.GtkBackend/PasswordEntryBackend.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend/PasswordEntryBackend.cs
@@ -33,9 +33,9 @@ namespace Xwt.GtkBackend
public override void EnableEvent (object eventId)
{
base.EnableEvent (eventId);
- if (eventId is TextEntryEvent) {
- switch ((TextEntryEvent)eventId) {
- case TextEntryEvent.Changed: Widget.Changed += HandleChanged; break;
+ if (eventId is PasswordEntryEvent) {
+ switch ((PasswordEntryEvent)eventId) {
+ case PasswordEntryEvent.Changed: Widget.Changed += HandleChanged; break;
}
}
}
@@ -43,9 +43,9 @@ namespace Xwt.GtkBackend
public override void DisableEvent (object eventId)
{
base.DisableEvent (eventId);
- if (eventId is TextEntryEvent) {
- switch ((TextEntryEvent)eventId) {
- case TextEntryEvent.Changed: Widget.Changed -= HandleChanged; break;
+ if (eventId is PasswordEntryEvent) {
+ switch ((PasswordEntryEvent)eventId) {
+ case PasswordEntryEvent.Changed: Widget.Changed -= HandleChanged; break;
}
}
}
diff --git a/Xwt.Gtk/Xwt.GtkBackend/TextEntryBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/TextEntryBackend.cs
index 238a273..25c6474 100644
--- a/Xwt.Gtk/Xwt.GtkBackend/TextEntryBackend.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend/TextEntryBackend.cs
@@ -54,7 +54,7 @@ namespace Xwt.GtkBackend
return Widget.Text;
}
set {
- Widget.Text = value;
+ Widget.Text = value ?? "";
}
}
@@ -143,6 +143,15 @@ namespace Xwt.GtkBackend
Widget.IsEditable = !value;
}
}
+
+ public bool IsPassword {
+ get {
+ return !Widget.Visibility;
+ }
+ set {
+ Widget.Visibility = !value;
+ }
+ }
public bool ShowFrame {
get {
diff --git a/Xwt.Mac/Xwt.Mac/TextEntryBackend.cs b/Xwt.Mac/Xwt.Mac/TextEntryBackend.cs
index 9743269..8b0cabb 100644
--- a/Xwt.Mac/Xwt.Mac/TextEntryBackend.cs
+++ b/Xwt.Mac/Xwt.Mac/TextEntryBackend.cs
@@ -99,6 +99,18 @@ namespace Xwt.Mac
}
}
+ public bool IsPassword {
+ get {
+ return Widget.Cell is NSSecureTextFieldCell;
+ }
+ set {
+ if (value != IsPassword)
+ Widget.Cell = value
+ ? new NSSecureTextFieldCell { EchosBullets = true }
+ : new NSTextFieldCell ();
+ }
+ }
+
public bool ShowFrame {
get {
return Widget.Bordered;
diff --git a/Xwt/Xwt.Backends/ITextEntryBackend.cs b/Xwt/Xwt.Backends/ITextEntryBackend.cs
index 9c02ea5..b870e18 100644
--- a/Xwt/Xwt.Backends/ITextEntryBackend.cs
+++ b/Xwt/Xwt.Backends/ITextEntryBackend.cs
@@ -35,6 +35,7 @@ namespace Xwt.Backends
bool ReadOnly { get; set; }
bool ShowFrame { get; set; }
bool MultiLine { get; set; }
+ bool IsPassword { get; set; }
}
public interface ITextEntryEventSink: IWidgetEventSink
diff --git a/Xwt/Xwt/TextEntry.cs b/Xwt/Xwt/TextEntry.cs
index b7c7889..3064e18 100644
--- a/Xwt/Xwt/TextEntry.cs
+++ b/Xwt/Xwt/TextEntry.cs
@@ -87,6 +87,12 @@ namespace Xwt
get { return Backend.ReadOnly; }
set { Backend.ReadOnly = value; }
}
+
+ [DefaultValue (false)]
+ public bool IsPassword {
+ get { return Backend.IsPassword; }
+ set { Backend.IsPassword = value; }
+ }
[DefaultValue (true)]
public bool ShowFrame {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment