diff options
author | Burt P <pburt0@gmail.com> | 2017-07-26 17:11:31 -0500 |
---|---|---|
committer | Leandro Pereira <leandro@hardinfo.org> | 2017-07-30 10:16:42 -0700 |
commit | f3a0cef9d367b1bff48b70cd7524cb1d97709d68 (patch) | |
tree | 7eb3a17243464ce11ddc76b21d454ddd11f4c7af /shell/loadgraph-uber.c | |
parent | 3db1caf8c29974e5aa46312084fe1585732cf236 (diff) |
gtk3: loadgraph/uber-graph: support multiple lines on the graph
Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'shell/loadgraph-uber.c')
-rw-r--r-- | shell/loadgraph-uber.c | 52 |
1 files changed, 38 insertions, 14 deletions
diff --git a/shell/loadgraph-uber.c b/shell/loadgraph-uber.c index d05fc7ee..61964b37 100644 --- a/shell/loadgraph-uber.c +++ b/shell/loadgraph-uber.c @@ -8,9 +8,22 @@ #include "loadgraph.h" #include "uber.h" +#define LG_MAX_LINES 9 + +static const gchar *default_colors[] = { "#73d216", + "#f57900", + /*colors from simple.c sample */ "#3465a4", + "#ef2929", + "#75507b", + "#ce5c00", + "#c17d11", + "#ce5c00", + "#729fcf", + NULL }; + struct _LoadGraph { GtkWidget *uber_widget; - gdouble cur_value; + gdouble cur_value[LG_MAX_LINES]; gint height; }; @@ -20,28 +33,28 @@ _sample_func (UberLineGraph *graph, gpointer user_data) { LoadGraph *lg = (LoadGraph *)user_data; - return lg->cur_value; + return lg->cur_value[line-1]; } LoadGraph *load_graph_new(gint size) { LoadGraph *lg; GdkRGBA color; + int i = 0; lg = g_new0(LoadGraph, 1); - - lg->height = (size+1) * 2; /* idk */ - lg->cur_value = 0.0; lg->uber_widget = uber_line_graph_new(); - + lg->height = (size+1) * 2; /* idk */ + for (i = 0; i < LG_MAX_LINES; i++) { + lg->cur_value[i] = UBER_LINE_GRAPH_NO_VALUE; + //GtkWidget *label = uber_label_new(); + //uber_label_set_text(UBER_LABEL(label), "BLAH!"); + gdk_rgba_parse(&color, default_colors[i]); + uber_line_graph_add_line(UBER_LINE_GRAPH(lg->uber_widget), &color, NULL); /* UBER_LABEL(label) */ + } uber_line_graph_set_autoscale(UBER_LINE_GRAPH(lg->uber_widget), TRUE); - GtkWidget *label = uber_label_new(); - uber_label_set_text(UBER_LABEL(label), "BLAH!"); - gdk_rgba_parse(&color, "#729fcf"); - uber_line_graph_add_line(UBER_LINE_GRAPH(lg->uber_widget), &color, UBER_LABEL(label)); uber_line_graph_set_data_func(UBER_LINE_GRAPH(lg->uber_widget), (UberLineGraphFunc)_sample_func, (gpointer *)lg, NULL); - return lg; } @@ -64,7 +77,13 @@ GtkWidget *load_graph_get_framed(LoadGraph * lg) void load_graph_clear(LoadGraph * lg) { - + int i; + if (lg != NULL) { + for (i = 0; i < LG_MAX_LINES; i++) { + lg->cur_value[i] = UBER_LINE_GRAPH_NO_VALUE; + } + uber_graph_scale_changed(lg->uber_widget); + } } void load_graph_set_color(LoadGraph * lg, LoadGraphColor color) @@ -90,10 +109,15 @@ void load_graph_configure_expose(LoadGraph * lg) } +void load_graph_update_ex(LoadGraph *lg, guint line, gdouble value) +{ + if (lg != NULL && line < LG_MAX_LINES) + lg->cur_value[line] = value; +} + void load_graph_update(LoadGraph * lg, gdouble value) { - if (lg != NULL) - lg->cur_value = value; + load_graph_update_ex(lg, 0, value); } gint load_graph_get_height(LoadGraph *lg) { |