diff options
author | iain holmes <iain@xamarin.com> | 2017-07-12 13:06:57 +0300 |
---|---|---|
committer | Marius Ungureanu <teromario@yahoo.com> | 2017-07-18 11:53:53 +0300 |
commit | 6d31926c0e93da7bca1daca88c9962fc182a2014 (patch) | |
tree | 16d8f083e2b6a8c684d9801bcf252de734fc7a81 /main/src/core | |
parent | bba532b7d920aff7cfb3e1b5e59c04e13fb3b938 (diff) |
[A11y] Make the statusbar accessible
Diffstat (limited to 'main/src/core')
3 files changed, 35 insertions, 4 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs index e5f7080576..a6a7b0038b 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs @@ -126,6 +126,7 @@ namespace MonoDevelop.Components.AtkCocoaHelper AXCell, AXColumn, AXGroup, + AXGrowArea, AXImage, AXLink, AXList, diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/MiniButton.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/MiniButton.cs index 29a8b3ca9c..91df3fbd5e 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/MiniButton.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components/MiniButton.cs @@ -27,6 +27,7 @@ using System; using Gtk; +using MonoDevelop.Components.AtkCocoaHelper; namespace MonoDevelop.Components { class MiniButton: Gtk.EventBox @@ -41,6 +42,10 @@ namespace MonoDevelop.Components { Events |= Gdk.EventMask.EnterNotifyMask | Gdk.EventMask.LeaveNotifyMask; Clickable = true; + + Accessible.Role = Atk.Role.PushButton; + var actionHandler = new ActionDelegate (this); + actionHandler.PerformPress += PerformPress; } public MiniButton (Gtk.Widget label): this () @@ -102,7 +107,12 @@ namespace MonoDevelop.Components if (Clicked != null) Clicked (this, EventArgs.Empty); } - + + void PerformPress (object sender, EventArgs args) + { + OnClicked (); + } + protected override bool OnButtonPressEvent (Gdk.EventButton evnt) { if (!ClickOnRelease && Clickable && evnt.Button == 1 && !evnt.TriggersContextMenu ()) { diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/MonoDevelopStatusBar.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/MonoDevelopStatusBar.cs index 669aa6dcdb..4f211b52ec 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/MonoDevelopStatusBar.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/MonoDevelopStatusBar.cs @@ -35,6 +35,7 @@ using System.Collections.Generic; using MonoDevelop.Components.Docking; using MonoDevelop.Ide.Gui.Dialogs; using MonoDevelop.Components; +using MonoDevelop.Components.AtkCocoaHelper; using MonoDevelop.Components.MainToolbar; namespace MonoDevelop.Ide @@ -52,13 +53,19 @@ namespace MonoDevelop.Ide Spacing = 0; HasResizeGrip = true; + Accessible.Role = Atk.Role.Filler; + HeaderBox hb = new HeaderBox (1, 0, 0, 0); + hb.Accessible.Role = Atk.Role.Filler; hb.StyleSet += (o, args) => { hb.BorderColor = Styles.DockSeparatorColor.ToGdkColor (); hb.BackgroundColor = Styles.DockBarBackground.ToGdkColor (); }; var mainBox = new HBox (); - mainBox.PackStart (new Label (""), true, true, 0); + mainBox.Accessible.Role = Atk.Role.Filler; + var alignment = new Alignment (0f, 0f, 0f, 0f); + alignment.Accessible.Role = Atk.Role.Filler; + mainBox.PackStart (alignment, true, true, 0); hb.Add (mainBox); hb.ShowAll (); PackStart (hb, true, true, 0); @@ -67,15 +74,26 @@ namespace MonoDevelop.Ide if (FeedbackService.Enabled) { CustomFrame fr = new CustomFrame (0, 0, 1, 0); + fr.Accessible.Role = Atk.Role.Filler; var px = Xwt.Drawing.Image.FromResource ("feedback-16.png"); HBox b = new HBox (false, 3); - b.PackStart (new Xwt.ImageView (px).ToGtkWidget ()); - b.PackStart (new Gtk.Label ("Feedback")); + b.Accessible.Role = Atk.Role.Filler; + + var im = new Xwt.ImageView (px).ToGtkWidget (); + im.Accessible.Role = Atk.Role.Filler; + b.PackStart (im); + var label = new Gtk.Label (GettextCatalog.GetString ("Feedback")); + label.Accessible.Role = Atk.Role.Filler; + b.PackStart (label); Gtk.Alignment al = new Gtk.Alignment (0f, 0f, 1f, 1f); + al.Accessible.Role = Atk.Role.Filler; al.RightPadding = 5; al.LeftPadding = 3; al.Add (b); feedbackButton = new MiniButton (al); + feedbackButton.Accessible.SetLabel (GettextCatalog.GetString ("Feedback")); + feedbackButton.Accessible.Description = GettextCatalog.GetString ("Click to send feedback to the development team"); + //feedbackButton.BackroundColor = new Gdk.Color (200, 200, 255); fr.Add (feedbackButton); mainBox.PackStart (fr, false, false, 0); @@ -99,6 +117,7 @@ namespace MonoDevelop.Ide // Dock area CustomFrame dfr = new CustomFrame (0, 0, 1, 0); + dfr.Accessible.Role = Atk.Role.Filler; dfr.StyleSet += (o, args) => { dfr.BorderColor = Styles.DockSeparatorColor.ToGdkColor (); }; @@ -113,6 +132,7 @@ namespace MonoDevelop.Ide // Resize grip + resizeGrip.Accessible.SetRole (AtkCocoa.Roles.AXGrowArea); resizeGrip.WidthRequest = ResizeGripWidth; resizeGrip.HeightRequest = 0; resizeGrip.VisibleWindow = false; |