Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/xwt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikayla Hutchinson <m.j.hutchinson@gmail.com>2018-07-11 01:19:49 +0300
committerMikayla Hutchinson <m.j.hutchinson@gmail.com>2018-07-11 01:19:49 +0300
commit7cb0bbd24c7b0ee624d2a98b46fd538d94cdf749 (patch)
tree7f3866aae639654c148c1058ea93ea2913346681
parentaf2540cb0b6a1c1e82c4f7ec8949565f6677e631 (diff)
Add mnemonic option to checkboxes
Mirrors that available for buttons
-rw-r--r--Xwt.Gtk/Xwt.GtkBackend/CheckBoxBackend.cs3
-rw-r--r--Xwt.WPF/Xwt.WPFBackend/CheckBoxBackend.cs8
-rw-r--r--Xwt.XamMac/Xwt.Mac/CheckBoxBackend.cs8
-rw-r--r--Xwt/Xwt.Backends/ICheckBoxBackend.cs2
-rw-r--r--Xwt/Xwt/CheckBox.cs24
5 files changed, 35 insertions, 10 deletions
diff --git a/Xwt.Gtk/Xwt.GtkBackend/CheckBoxBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/CheckBoxBackend.cs
index 15a37d2e..3a83ecdb 100644
--- a/Xwt.Gtk/Xwt.GtkBackend/CheckBoxBackend.cs
+++ b/Xwt.Gtk/Xwt.GtkBackend/CheckBoxBackend.cs
@@ -84,8 +84,9 @@ namespace Xwt.GtkBackend
EventsRootWidget.SetBackgroundColor (color);
}
- public void SetContent (string label)
+ public void SetContent (string label, bool useMnemonic)
{
+ Widget.UseUnderline = useMnemonic;
Widget.Label = label;
}
diff --git a/Xwt.WPF/Xwt.WPFBackend/CheckBoxBackend.cs b/Xwt.WPF/Xwt.WPFBackend/CheckBoxBackend.cs
index 8b3dfc8e..14c83ff5 100644
--- a/Xwt.WPF/Xwt.WPFBackend/CheckBoxBackend.cs
+++ b/Xwt.WPF/Xwt.WPFBackend/CheckBoxBackend.cs
@@ -49,9 +49,13 @@ namespace Xwt.WPFBackend
CheckBox.Content = widget.NativeWidget;
}
- public void SetContent (string label)
+ public void SetContent (string label, bool useMnemonic)
{
- CheckBox.Content = new TextBlock { Text = label };
+ if (useMnemonic) {
+ CheckBox.Content = new TextBlock { Text = label };
+ } else {
+ CheckBox.Content = new AccessText { Text = label };
+ }
}
public CheckBoxState State
diff --git a/Xwt.XamMac/Xwt.Mac/CheckBoxBackend.cs b/Xwt.XamMac/Xwt.Mac/CheckBoxBackend.cs
index 6f136132..b58f9ad1 100644
--- a/Xwt.XamMac/Xwt.Mac/CheckBoxBackend.cs
+++ b/Xwt.XamMac/Xwt.Mac/CheckBoxBackend.cs
@@ -28,7 +28,7 @@ using Xwt.Backends;
namespace Xwt.Mac
{
- public class CheckBoxBackend: ViewBackend<NSButton,ICheckBoxEventSink>, ICheckBoxBackend
+ public class CheckBoxBackend : ViewBackend<NSButton, ICheckBoxEventSink>, ICheckBoxBackend
{
bool realAllowMixed;
NSCellStateValue currentState = NSCellStateValue.Off;
@@ -45,15 +45,15 @@ namespace Xwt.Mac
button.Title = "";
button.ActivatedInternal += OnActivated;
}
-
+
#region ICheckBoxBackend implementation
public void SetContent (IWidgetBackend widget)
{
}
- public void SetContent (string label)
+ public void SetContent (string label, bool useMnemonic)
{
- Widget.Title = label;
+ Widget.Title = useMnemonic ? label.RemoveMnemonic () : label;
ResetFittingSize ();
}
diff --git a/Xwt/Xwt.Backends/ICheckBoxBackend.cs b/Xwt/Xwt.Backends/ICheckBoxBackend.cs
index 687d67c6..563bfdf8 100644
--- a/Xwt/Xwt.Backends/ICheckBoxBackend.cs
+++ b/Xwt/Xwt.Backends/ICheckBoxBackend.cs
@@ -30,7 +30,7 @@ namespace Xwt.Backends
public interface ICheckBoxBackend: IWidgetBackend
{
void SetContent (IWidgetBackend widget);
- void SetContent (string label);
+ void SetContent (string label, bool useMnemonic);
/// <summary>
/// Gets or sets the state of the checkbox.
diff --git a/Xwt/Xwt/CheckBox.cs b/Xwt/Xwt/CheckBox.cs
index a1b7724e..c720fab7 100644
--- a/Xwt/Xwt/CheckBox.cs
+++ b/Xwt/Xwt/CheckBox.cs
@@ -38,6 +38,7 @@ namespace Xwt
EventHandler clicked;
EventHandler toggled;
string label = "";
+ bool useMnemonic = true;
protected new class WidgetBackendHost: Widget.WidgetBackendHost, ICheckBoxEventSink
{
@@ -81,11 +82,30 @@ namespace Xwt
get { return label; }
set {
label = value;
- Backend.SetContent (label);
+ Backend.SetContent (label, useMnemonic);
OnPreferredSizeChanged ();
}
}
+ /// <summary>
+ /// Gets or sets a value indicating whether this <see cref="Xwt.Button"/> uses a mnemonic.
+ /// </summary>
+ /// <value><c>true</c> if it uses a mnemonic; otherwise, <c>false</c>.</value>
+ /// <remarks>
+ /// When set to true, the character after the first underscore character in the Label property value is
+ /// interpreted as the mnemonic for that Label.
+ /// </remarks>
+ [DefaultValue (true)]
+ public bool UseMnemonic {
+ get { return useMnemonic; }
+ set {
+ if (useMnemonic == value)
+ return;
+ Backend.SetContent (label, value);
+ useMnemonic = value;
+ }
+ }
+
[DefaultValue (null)]
public new Widget Content {
get { return content; }
@@ -111,7 +131,7 @@ namespace Xwt
get { return Backend.State; }
set {
if (!value.IsValid ())
- throw new ArgumentOutOfRangeException ("Invalid check box state value");
+ throw new ArgumentOutOfRangeException (nameof(value), "Invalid check box state value");
Backend.State = value;
}
}