From 8b93c013c37ec16bfe6ee74d9c763796e34852fe Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 25 Feb 2016 20:49:09 -0500 Subject: inspector: Simplify general tab setup Factor out the code to create a listbox row with two labels, and use it throughout. --- gtk/inspector/general.c | 216 +++++++++++++++--------------------------------- 1 file changed, 66 insertions(+), 150 deletions(-) (limited to 'gtk/inspector') diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c index 05fc28b6e1..4c420a952a 100644 --- a/gtk/inspector/general.c +++ b/gtk/inspector/general.c @@ -273,6 +273,43 @@ init_env (GtkInspectorGeneral *gen) set_path_label (gen->priv->gsettings_schema_dir, "GSETTINGS_SCHEMA_DIR"); } +static void +add_label_row (GtkListBox *list, + const char *name, + const char *value, + gint indent) +{ + GtkWidget *box; + GtkWidget *label; + GtkWidget *row; + + box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 40); + g_object_set (box, + "margin", 10, + "margin-start", 10 + indent, + NULL); + + label = gtk_label_new (name); + gtk_widget_set_halign (label, GTK_ALIGN_START); + gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); + + label = gtk_label_new (value); + gtk_label_set_selectable (GTK_LABEL (label), TRUE); + gtk_widget_set_halign (label, GTK_ALIGN_END); + gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); + gtk_label_set_xalign (GTK_LABEL (label), 1.0); + gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); + + row = gtk_list_box_row_new (); + gtk_container_add (GTK_CONTAINER (row), box); + gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE); + gtk_widget_show_all (row); + + gtk_list_box_insert (GTK_LIST_BOX (list), row, -1); +} + static void populate_display (GdkScreen *screen, GtkInspectorGeneral *gen) { @@ -306,28 +343,17 @@ populate_display (GdkScreen *screen, GtkInspectorGeneral *gen) for (i = 0; i < gdk_screen_get_n_monitors (screen); i++) { - GtkWidget *row; - GtkWidget *box; - GtkWidget *label; - gchar *text; + gchar *name; + gchar *value; gchar *plug_name; GdkRectangle rect; gint w, h, wmm, hmm, scale; - box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 40); - g_object_set (box, "margin", 10, NULL); - plug_name = gdk_screen_get_monitor_plug_name (screen, i); if (plug_name) - text = g_strdup_printf ("Monitor %s", plug_name); + name = g_strdup_printf ("Monitor %s", plug_name); else - text = g_strdup_printf ("Monitor %d", i); - label = gtk_label_new (text); - gtk_widget_set_halign (label, GTK_ALIGN_START); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); - g_free (text); + name = g_strdup_printf ("Monitor %d", i); g_free (plug_name); gdk_screen_get_monitor_geometry (screen, i, &rect); @@ -336,23 +362,14 @@ populate_display (GdkScreen *screen, GtkInspectorGeneral *gen) wmm = gdk_screen_get_monitor_width_mm (screen, i); hmm = gdk_screen_get_monitor_height_mm (screen, i); scale = gdk_screen_get_monitor_scale_factor (screen, i); - text = g_strdup_printf ("%d × %d%s, %d × %d mm²", - w, h, scale == 2 ? " @ 2" : "", - wmm, hmm); - label = gtk_label_new (text); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_widget_set_halign (label, GTK_ALIGN_END); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 1.0); - gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); - g_free (text); + value = g_strdup_printf ("%d × %d%s, %d × %d mm²", + w, h, scale == 2 ? " @ 2" : "", + wmm, hmm); - row = gtk_list_box_row_new (); - gtk_container_add (GTK_CONTAINER (row), box); - gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE); - gtk_widget_show_all (row); + add_label_row (GTK_LIST_BOX (gen->priv->x_box), name, value, 0); - gtk_list_box_insert (GTK_LIST_BOX (gen->priv->x_box), row, -1); + g_free (name); + g_free (value); } } @@ -376,71 +393,43 @@ static void add_device (GtkInspectorGeneral *gen, GdkDevice *device) { - GtkWidget *box; - GtkWidget *label; - GtkWidget *row; - char *text; + const gchar *name, *value; GString *str; int i; guint n_touches; + gchar *text; - box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 40); - g_object_set (box, - "margin", 10, - "margin-start", 20, - NULL); + name = gdk_device_get_name (device); - text = g_strdup_printf ("%s", gdk_device_get_name (device)); - label = gtk_label_new (text); - gtk_widget_set_halign (label, GTK_ALIGN_START); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); - g_free (text); - - str = g_string_new (""); switch (gdk_device_get_source (device)) { case GDK_SOURCE_MOUSE: - g_string_append (str, "Mouse"); + value = "Mouse"; break; case GDK_SOURCE_PEN: - g_string_append (str, "Pen"); + value = "Pen"; break; case GDK_SOURCE_ERASER: - g_string_append (str, "Eraser"); + value = "Eraser"; break; case GDK_SOURCE_CURSOR: - g_string_append (str, "Cursor"); + value = "Cursor"; break; case GDK_SOURCE_KEYBOARD: - g_string_append (str, "Keyboard"); + value = "Keyboard"; break; case GDK_SOURCE_TOUCHSCREEN: - g_string_append (str, "Touchscreen"); + value = "Touchscreen"; break; case GDK_SOURCE_TOUCHPAD: - g_string_append (str, "Touchpad"); + value = "Touchpad"; break; default: - g_string_append (str, "Unknown"); + value = "Unknown"; break; } - label = gtk_label_new (str->str); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_widget_set_halign (label, GTK_ALIGN_END); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); - g_string_free (str, TRUE); - - row = gtk_list_box_row_new (); - gtk_container_add (GTK_CONTAINER (row), box); - gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE); - gtk_widget_show_all (row); - - gtk_list_box_insert (GTK_LIST_BOX (gen->priv->device_box), row, -1); + add_label_row (GTK_LIST_BOX (gen->priv->device_box), name, value, 10); str = g_string_new (""); @@ -488,67 +477,17 @@ add_device (GtkInspectorGeneral *gen, } if (str->len > 0) - { - box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 40); - g_object_set (box, - "margin", 10, - "margin-start", 30, - NULL); - - label = gtk_label_new ("Axes"); - gtk_widget_set_halign (label, GTK_ALIGN_START); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); - - label = gtk_label_new (str->str); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_widget_set_halign (label, GTK_ALIGN_END); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); - - row = gtk_list_box_row_new (); - gtk_container_add (GTK_CONTAINER (row), box); - gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE); - gtk_widget_show_all (row); - - gtk_list_box_insert (GTK_LIST_BOX (gen->priv->device_box), row, -1); - } + add_label_row (GTK_LIST_BOX (gen->priv->device_box), "Axes", str->str, 20); + + g_string_free (str, TRUE); g_object_get (device, "num-touches", &n_touches, NULL); if (n_touches > 0) { - box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 40); - g_object_set (box, - "margin", 10, - "margin-start", 30, - NULL); - - label = gtk_label_new ("Touches"); - gtk_widget_set_halign (label, GTK_ALIGN_START); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); - text = g_strdup_printf ("%d", n_touches); - label = gtk_label_new (text); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_widget_set_halign (label, GTK_ALIGN_END); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); + add_label_row (GTK_LIST_BOX (gen->priv->device_box), "Touches", text, 20); g_free (text); - - row = gtk_list_box_row_new (); - gtk_container_add (GTK_CONTAINER (row), box); - gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE); - gtk_widget_show_all (row); - - gtk_list_box_insert (GTK_LIST_BOX (gen->priv->device_box), row, -1); } - - g_string_free (str, TRUE); } static void @@ -556,9 +495,6 @@ add_seat (GtkInspectorGeneral *gen, GdkSeat *seat, int num) { - GtkWidget *box; - GtkWidget *label; - GtkWidget *row; GdkSeatCapabilities capabilities; struct { GdkSeatCapabilities cap; @@ -582,16 +518,7 @@ add_seat (GtkInspectorGeneral *gen, g_signal_connect_swapped (seat, "device-removed", G_CALLBACK (populate_seats), gen); } - box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 40); - g_object_set (box, "margin", 10, NULL); - text = g_strdup_printf ("Seat %d", num); - label = gtk_label_new (text); - gtk_widget_set_halign (label, GTK_ALIGN_START); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); - g_free (text); str = g_string_new (""); capabilities = gdk_seat_get_capabilities (seat); @@ -605,20 +532,9 @@ add_seat (GtkInspectorGeneral *gen, } } - label = gtk_label_new (str->str); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_widget_set_halign (label, GTK_ALIGN_END); - gtk_widget_set_valign (label, GTK_ALIGN_BASELINE); - gtk_label_set_xalign (GTK_LABEL (label), 0.0); - gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); - g_string_free (str, TRUE); - - row = gtk_list_box_row_new (); - gtk_container_add (GTK_CONTAINER (row), box); - gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE); - gtk_widget_show_all (row); - - gtk_list_box_insert (GTK_LIST_BOX (gen->priv->device_box), row, -1); + add_label_row (GTK_LIST_BOX (gen->priv->device_box), text, str->str, 0); + g_free (text); + g_string_free (str, FALSE); list = gdk_seat_get_slaves (seat, GDK_SEAT_CAPABILITY_ALL); -- cgit v1.2.1