summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Yelavich <themuso@ubuntu.com>2014-03-10 19:14:37 +1100
committerLubomir Rintel <lkundrak@v3.sk>2015-02-07 17:57:25 +0100
commite4589f9c760a4bea69776ca8556757245be25a13 (patch)
treeac46e35ba6f8330eedaa8f58b3c7fa008f64727c
parent663182008a4bd7d18e81d852b90ac477424da765 (diff)
downloadnetwork-manager-applet-e4589f9c760a4bea69776ca8556757245be25a13.tar.gz
applet: Improve accessibility of info dialog by adding atk label relationships
https://bugzilla.gnome.org/show_bug.cgi?id=726018
-rw-r--r--src/applet-dialogs.c170
1 files changed, 135 insertions, 35 deletions
diff --git a/src/applet-dialogs.c b/src/applet-dialogs.c
index e671a0ff..22d9bb98 100644
--- a/src/applet-dialogs.c
+++ b/src/applet-dialogs.c
@@ -377,14 +377,22 @@ wimax_bsid_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data)
static void
display_ip4_info (NMIP4Address *def_addr, GtkGrid *grid, int *row)
{
+ GtkWidget *desc_widget, *data_widget = NULL;
+ AtkObject *desc_object, *data_object = NULL;
guint32 hostmask, network, bcast, netmask;
char *str;
/* Address */
- gtk_grid_attach (grid, create_info_label (_("IP Address:"), FALSE),
- 0, *row, 1, 1);
str = def_addr ? ip4_address_as_string (nm_ip4_address_get_address (def_addr)) : g_strdup (C_("Address", "Unknown"));
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ desc_widget = create_info_label (_("IP Address:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
+ 0, *row, 1, 1);
+ gtk_grid_attach (grid, data_widget,
1, *row, 1, 1);
g_free (str);
(*row)++;
@@ -397,29 +405,47 @@ display_ip4_info (NMIP4Address *def_addr, GtkGrid *grid, int *row)
bcast = htonl (network | hostmask);
}
- gtk_grid_attach (grid, create_info_label (_("Broadcast Address:"), FALSE),
- 0, *row, 1, 1);
str = def_addr ? ip4_address_as_string (bcast) : g_strdup (C_("Address", "Unknown"));
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ desc_widget = create_info_label (_("Broadcast Address:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
+ 0, *row, 1, 1);
+ gtk_grid_attach (grid, data_widget,
1, *row, 1, 1);
g_free (str);
(*row)++;
/* Prefix */
- gtk_grid_attach (grid, create_info_label (_("Subnet Mask:"), FALSE),
- 0, *row, 1, 1);
str = def_addr ? ip4_address_as_string (netmask) : g_strdup (C_("Subnet Mask", "Unknown"));
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ desc_widget = create_info_label (_("Subnet Mask:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
+ 0, *row, 1, 1);
+ gtk_grid_attach (grid, data_widget,
1, *row, 1, 1);
g_free (str);
(*row)++;
/* Gateway */
if (def_addr && nm_ip4_address_get_gateway (def_addr)) {
- gtk_grid_attach (grid, create_info_label (_("Default Route:"), FALSE),
- 0, *row, 1, 1);
str = ip4_address_as_string (nm_ip4_address_get_gateway (def_addr));
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ desc_widget = create_info_label (_("Default Route:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
+ 0, *row, 1, 1);
+ gtk_grid_attach (grid, data_widget,
1, *row, 1, 1);
g_free (str);
(*row)++;
@@ -429,6 +455,8 @@ display_ip4_info (NMIP4Address *def_addr, GtkGrid *grid, int *row)
static void
display_ip6_info (NMIP6Address *def6_addr, const char *method, GtkGrid *grid, int *row)
{
+ GtkWidget *desc_widget, *data_widget = NULL;
+ AtkObject *desc_object, *data_object = NULL;
char *tmp_addr;
guint32 prefix;
char *str;
@@ -437,24 +465,36 @@ display_ip6_info (NMIP6Address *def6_addr, const char *method, GtkGrid *grid, in
return;
/* Address */
- gtk_grid_attach (grid, create_info_label (_("IP Address:"), FALSE),
- 0, *row, 1, 1);
tmp_addr = ip6_address_as_string (nm_ip6_address_get_address (def6_addr));
prefix = nm_ip6_address_get_prefix (def6_addr);
str = g_strdup_printf ("%s/%d", tmp_addr, prefix);
g_free (tmp_addr);
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ desc_widget = create_info_label (_("IP Address:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
+ 0, *row, 1, 1);
+ gtk_grid_attach (grid, data_widget,
1, *row, 1, 1);
g_free (str);
(*row)++;
/* Gateway */
if (nm_ip6_address_get_gateway (def6_addr)) {
- gtk_grid_attach (grid, create_info_label (_("Default Route:"), FALSE),
- 0, *row, 1, 1);
str = ip6_address_as_string (nm_ip6_address_get_gateway (def6_addr));
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ desc_widget = create_info_label (_("Default Route:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
+ 0, *row, 1, 1);
+ gtk_grid_attach (grid, data_widget,
1, *row, 1, 1);
g_free (str);
(*row)++;
@@ -464,15 +504,23 @@ display_ip6_info (NMIP6Address *def6_addr, const char *method, GtkGrid *grid, in
static void
display_dns4_info (const GArray *dns, GtkGrid *grid, int *row)
{
+ GtkWidget *desc_widget, *data_widget = NULL;
+ AtkObject *desc_object, *data_object = NULL;
char *label[] = { "Primary DNS:", "Secondary DNS:", "Ternary DNS:" };
char *str;
int i;
for (i = 0; dns && i < dns->len && i < 3; i++) {
- gtk_grid_attach (grid, create_info_label (_(label[i]), FALSE),
- 0, *row, 1, 1);
str = ip4_address_as_string (g_array_index (dns, guint32, i));
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ desc_widget = create_info_label (_(label[i]), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
+ 0, *row, 1, 1);
+ gtk_grid_attach (grid, data_widget,
1, *row, 1, 1);
g_free (str);
(*row)++;
@@ -482,15 +530,23 @@ display_dns4_info (const GArray *dns, GtkGrid *grid, int *row)
static void
display_dns6_info (const GSList *dns6, GtkGrid *grid, int *row)
{
+ GtkWidget *desc_widget, *data_widget = NULL;
+ AtkObject *desc_object, *data_object = NULL;
char *label[] = { "Primary DNS:", "Secondary DNS:", "Ternary DNS:" };
char *str;
int i;
for (i = 0; dns6 && i < 3 ; dns6 = g_slist_next (dns6), i++) {
- gtk_grid_attach (grid, create_info_label (_(label[i]), FALSE),
- 0, *row, 1, 1);
str = ip6_address_as_string (dns6->data);
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ desc_widget = create_info_label (_(label[i]), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
+ 0, *row, 1, 1);
+ gtk_grid_attach (grid, data_widget,
1, *row, 1, 1);
g_free (str);
(*row)++;
@@ -515,9 +571,10 @@ info_dialog_add_page (GtkNotebook *notebook,
NMIP6Address *def6_addr = NULL;
NMSettingIP6Config *s_ip6;
int row = 0;
- GtkWidget* speed_label, *sec_label = NULL;
+ GtkWidget* speed_label, *sec_label, *desc_widget, *data_widget = NULL;
const GSList *addresses;
gboolean show_security = FALSE;
+ AtkObject *desc_object, *data_object = NULL;
grid = GTK_GRID (gtk_grid_new ());
gtk_grid_set_column_spacing (grid, 12);
@@ -553,9 +610,15 @@ info_dialog_add_page (GtkNotebook *notebook,
0, row, 1, 1);
row++;
- gtk_grid_attach (grid, create_info_label (_("Interface:"), FALSE),
+ desc_widget = create_info_label (_("Interface:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
0, row, 1, 1);
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ gtk_grid_attach (grid, data_widget,
1, row, 1, 1);
g_free (str);
row++;
@@ -569,17 +632,29 @@ info_dialog_add_page (GtkNotebook *notebook,
else if (NM_IS_DEVICE_WIMAX (device))
str = g_strdup (nm_device_wimax_get_hw_address (NM_DEVICE_WIMAX (device)));
- gtk_grid_attach (grid, create_info_label (_("Hardware Address:"), FALSE),
+ desc_widget = create_info_label (_("Hardware Address:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (str, TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
0, row, 1, 1);
- gtk_grid_attach (grid, create_info_label (str, TRUE),
+ gtk_grid_attach (grid, data_widget,
1, row, 1, 1);
g_free (str);
row++;
/* Driver */
- gtk_grid_attach (grid, create_info_label (_("Driver:"), FALSE),
+ desc_widget = create_info_label (_("Driver:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_widget = create_info_label (nm_device_get_driver (device), TRUE);
+ data_object = gtk_widget_get_accessible (data_widget);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
0, row, 1, 1);
- gtk_grid_attach (grid, create_info_label (nm_device_get_driver (device), TRUE),
+ gtk_grid_attach (grid, data_widget,
1, row, 1, 1);
row++;
@@ -606,7 +681,12 @@ info_dialog_add_page (GtkNotebook *notebook,
gtk_label_set_text (GTK_LABEL(speed_label), str ? str : C_("Speed", "Unknown"));
g_free (str);
- gtk_grid_attach (grid, create_info_label (_("Speed:"), FALSE),
+ desc_widget = create_info_label (_("Speed:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_object = gtk_widget_get_accessible (speed_label);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
0, row, 1, 1);
gtk_grid_attach (grid, speed_label,
1, row, 1, 1);
@@ -616,7 +696,12 @@ info_dialog_add_page (GtkNotebook *notebook,
if (show_security) {
sec_label = create_info_label_security (connection);
if (sec_label) {
- gtk_grid_attach (grid, create_info_label (_("Security:"), FALSE),
+ desc_widget = create_info_label (_("Security:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_object = gtk_widget_get_accessible (sec_label);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
0, row, 1, 1);
gtk_grid_attach (grid, sec_label,
1, row, 1, 1);
@@ -629,7 +714,12 @@ info_dialog_add_page (GtkNotebook *notebook,
/* CINR */
cinr_label = create_info_label ("", TRUE);
- gtk_grid_attach (grid, create_info_label (_("CINR:"), FALSE),
+ desc_widget = create_info_label (_("CINR:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_object = gtk_widget_get_accessible (cinr_label);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
0, row, 1, 1);
gtk_grid_attach (grid, cinr_label,
1, row, 1, 1);
@@ -642,7 +732,12 @@ info_dialog_add_page (GtkNotebook *notebook,
/* Base Station ID */
bsid_label = create_info_label ("", TRUE);
- gtk_grid_attach (grid, create_info_label (_("BSID:"), FALSE),
+ desc_widget = create_info_label (_("BSID:"), FALSE);
+ desc_object = gtk_widget_get_accessible (desc_widget);
+ data_object = gtk_widget_get_accessible (bsid_label);
+ atk_object_add_relationship (desc_object, ATK_RELATION_LABEL_FOR, data_object);
+
+ gtk_grid_attach (grid, desc_widget,
0, row, 1, 1);
gtk_grid_attach (grid, bsid_label,
1, row, 1, 1);
@@ -705,6 +800,11 @@ info_dialog_add_page (GtkNotebook *notebook,
dns6 = def6_addr ? nm_ip6_config_get_nameservers (ip6_config) : NULL;
display_dns6_info (dns6, grid, &row);
+ desc_widget = NULL;
+ desc_object = NULL;
+ data_widget = NULL;
+ data_object = NULL;
+
gtk_notebook_append_page (notebook, GTK_WIDGET (grid),
create_info_notebook_label (connection, is_default));