diff options
author | Luke Yelavich <themuso@ubuntu.com> | 2014-03-10 19:14:37 +1100 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2015-02-07 17:57:25 +0100 |
commit | e4589f9c760a4bea69776ca8556757245be25a13 (patch) | |
tree | ac46e35ba6f8330eedaa8f58b3c7fa008f64727c | |
parent | 663182008a4bd7d18e81d852b90ac477424da765 (diff) | |
download | network-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.c | 170 |
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)); |