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

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriain holmes <iain@xamarin.com>2017-07-12 13:06:57 +0300
committerMarius Ungureanu <teromario@yahoo.com>2017-07-18 11:53:53 +0300
commit6d31926c0e93da7bca1daca88c9962fc182a2014 (patch)
tree16d8f083e2b6a8c684d9801bcf252de734fc7a81 /main/src/core
parentbba532b7d920aff7cfb3e1b5e59c04e13fb3b938 (diff)
[A11y] Make the statusbar accessible
Diffstat (limited to 'main/src/core')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelper.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components/MiniButton.cs12
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/MonoDevelopStatusBar.cs26
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;