Rounded legend icons

This commit is contained in:
Waldemar Zimpel
2023-09-16 15:07:43 +00:00
committed by Gaël Bonithon
parent 250a424754
commit bd56f2ed5e
4 changed files with 50 additions and 45 deletions

View File

@@ -385,6 +385,42 @@ xtm_process_window_init (XtmProcessWindow *window)
g_signal_connect (G_OBJECT(window->filter_entry), "changed", G_CALLBACK(filter_entry_keyrelease_handler), window->treeview);
gtk_widget_set_tooltip_text (window->filter_entry, _("Filter on process name"));
gtk_widget_grab_focus (window->filter_entry);
{
const gchar *const captions[] = { _("Starting task"), _("Changing task"), _("Terminating task") };
const gchar *styles =
".a,.b,.c{border-radius:50%}"
".a{background-color:" XTM_LEGEND_COLOR_STARTING "}"
".b{background-color:" XTM_LEGEND_COLOR_CHANGING "}"
".c{background-color:" XTM_LEGEND_COLOR_TERMINATING "}";
const gchar *const classes[] = { "a", "b", "c" };
GtkWidget *hbox_legend = GTK_WIDGET (gtk_builder_get_object (window->builder, "legend"));
GtkCssProvider *provider = gtk_css_provider_new ();
gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
GTK_STYLE_PROVIDER (provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
gtk_css_provider_load_from_data (provider, styles, -1, NULL);
g_object_unref (provider);
for (guint i = 0; i < G_N_ELEMENTS (captions); ++i)
{
GtkWidget *hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);
GtkWidget *label = gtk_label_new (NULL);
gtk_widget_set_size_request (label, 16, 16);
gtk_style_context_add_class (gtk_widget_get_style_context (label), classes[i]);
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
label = gtk_label_new (captions[i]);
gtk_label_set_xalign (GTK_LABEL (label), 0.0);
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (hbox_legend), hbox, FALSE, FALSE, 0);
}
gtk_widget_show_all (hbox_legend);
}
}
static void

View File

@@ -242,45 +242,6 @@
<property name="margin_right">6</property>
<property name="margin_bottom">6</property>
<property name="spacing">18</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;span foreground='#000000' background='#aed581'&gt; &lt;/span&gt; Starting task</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;span foreground='#000000' background='#fff176'&gt; &lt;/span&gt; Changing task</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;span foreground='#000000' background='#e57373'&gt; &lt;/span&gt; Terminating task</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>

View File

@@ -220,8 +220,8 @@ model_mark_tree_iter_as_removed (GtkTreeModel *model, GtkTreeIter *iter, glong t
gtk_list_store_set (GTK_LIST_STORE (model), iter,
XTM_PTV_COLUMN_CPU, 0.0,
XTM_PTV_COLUMN_CPU_STR, "-",
XTM_PTV_COLUMN_BACKGROUND, "#e57373",
XTM_PTV_COLUMN_FOREGROUND, "#000000",
XTM_PTV_COLUMN_BACKGROUND, XTM_LEGEND_COLOR_TERMINATING,
XTM_PTV_COLUMN_FOREGROUND, XTM_LEGEND_COLOR_NONE,
XTM_PTV_COLUMN_TIMESTAMP, timestamp,
-1);
}
@@ -287,16 +287,16 @@ model_update_tree_iter (XtmTaskManager *manager, GtkTreeIter *iter, glong timest
/* Set yellow color for changing state */
g_free (background);
g_free (foreground);
background = g_strdup ("#fff176");
foreground = g_strdup ("#000000");
background = g_strdup (XTM_LEGEND_COLOR_CHANGING);
foreground = g_strdup (XTM_LEGEND_COLOR_NONE);
old_timestamp = timestamp - TIMESTAMP_DELTA + 3;
}
if (timestamp != 0 && (timestamp - old_timestamp) <= TIMESTAMP_DELTA)
{
/* Set green color for started task */
background = (background == NULL) ? g_strdup ("#aed581") : background;
foreground = (foreground == NULL) ? g_strdup ("#000000") : foreground;
background = (background == NULL) ? g_strdup (XTM_LEGEND_COLOR_STARTING) : background;
foreground = (foreground == NULL) ? g_strdup (XTM_LEGEND_COLOR_NONE) : foreground;
}
else
{

View File

@@ -17,6 +17,14 @@
#include <glib-object.h>
#include <gtk/gtk.h>
/**
* Legend colors
*/
#define XTM_LEGEND_COLOR_NONE "#000000"
#define XTM_LEGEND_COLOR_STARTING "#aed581"
#define XTM_LEGEND_COLOR_CHANGING "#fff176"
#define XTM_LEGEND_COLOR_TERMINATING "#e57373"
/**
* Task struct used as elements of a task list GArray.
*/