cpu-visualizer-row: choose color for row

For each CPU counter we come across, choose a new color from
the cycle.
This commit is contained in:
Christian Hergert
2016-09-27 19:18:40 -07:00
parent f3cec0f8c1
commit 4953731dd7

View File

@ -20,11 +20,13 @@
#include "sp-capture-condition.h" #include "sp-capture-condition.h"
#include "sp-capture-cursor.h" #include "sp-capture-cursor.h"
#include "sp-color-cycle.h"
#include "sp-cpu-visualizer-row.h" #include "sp-cpu-visualizer-row.h"
struct _SpCpuVisualizerRow struct _SpCpuVisualizerRow
{ {
SpLineVisualizerRow parent_instance; SpLineVisualizerRow parent_instance;
SpColorCycle *colors;
}; };
G_DEFINE_TYPE (SpCpuVisualizerRow, sp_cpu_visualizer_row, SP_TYPE_LINE_VISUALIZER_ROW) G_DEFINE_TYPE (SpCpuVisualizerRow, sp_cpu_visualizer_row, SP_TYPE_LINE_VISUALIZER_ROW)
@ -98,8 +100,10 @@ complete_counters (GObject *object,
for (guint i = 0; i < counters->len; i++) for (guint i = 0; i < counters->len; i++)
{ {
guint counter_id = g_array_index (counters, guint, i); guint counter_id = g_array_index (counters, guint, i);
GdkRGBA color;
sp_line_visualizer_row_add_counter (SP_LINE_VISUALIZER_ROW (self), counter_id); sp_color_cycle_next (self->colors, &color);
sp_line_visualizer_row_add_counter (SP_LINE_VISUALIZER_ROW (self), counter_id, &color);
} }
} }
@ -130,17 +134,31 @@ sp_cpu_visualizer_row_set_reader (SpVisualizerRow *row,
} }
} }
static void
sp_cpu_visualizer_row_finalize (GObject *object)
{
SpCpuVisualizerRow *self = (SpCpuVisualizerRow *)object;
g_clear_pointer (&self->colors, sp_color_cycle_unref);
G_OBJECT_CLASS (sp_cpu_visualizer_row_parent_class)->finalize (object);
}
static void static void
sp_cpu_visualizer_row_class_init (SpCpuVisualizerRowClass *klass) sp_cpu_visualizer_row_class_init (SpCpuVisualizerRowClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass);
SpVisualizerRowClass *row_class = SP_VISUALIZER_ROW_CLASS (klass); SpVisualizerRowClass *row_class = SP_VISUALIZER_ROW_CLASS (klass);
object_class->finalize = sp_cpu_visualizer_row_finalize;
row_class->set_reader = sp_cpu_visualizer_row_set_reader; row_class->set_reader = sp_cpu_visualizer_row_set_reader;
} }
static void static void
sp_cpu_visualizer_row_init (SpCpuVisualizerRow *self) sp_cpu_visualizer_row_init (SpCpuVisualizerRow *self)
{ {
self->colors = sp_color_cycle_new ();
} }
GtkWidget * GtkWidget *