/** * uber_line_graph_set_antialias: * @graph: A #UberLineGraph. * * XXX * * Returns: None. * Side effects: None. */ void uber_line_graph_set_antialias (UberLineGraph *graph, /* IN */ cairo_antialias_t antialias) /* IN */ { UberLineGraphPrivate *priv; g_return_if_fail(UBER_IS_LINE_GRAPH(graph)); priv = graph->priv; priv->antialias = antialias; uber_graph_redraw(UBER_GRAPH(graph)); }
/** * uber_line_graph_add_line: * @graph: A #UberLineGraph. * @color: A #GdkColor for the line or %NULL. * * Adds a new line to the graph. If color is %NULL, the next value * in the default color list will be used. * * See uber_line_graph_remove_line(). * * Returns: The line identifier. * Side effects: None. */ gint uber_line_graph_add_line (UberLineGraph *graph, /* IN */ const GdkColor *color, /* IN */ UberLabel *label) /* IN */ { UberLineGraphPrivate *priv; LineInfo info = { 0 }; g_return_val_if_fail(UBER_IS_LINE_GRAPH(graph), 0); priv = graph->priv; info.alpha = 1.0; info.width = 1.0; /* * Retrieve the lines color. */ if (color) { info.color = *color; } else { gdk_color_parse("#729fcf", &info.color); } /* * Allocate buffers for data points. */ info.raw_data = g_ring_sized_new(sizeof(gdouble), priv->stride, NULL); uber_line_graph_init_ring(info.raw_data); /* * Store the newly crated line. */ g_array_append_val(priv->lines, info); /* * Mark the graph for full redraw. */ uber_graph_redraw(UBER_GRAPH(graph)); /* * Attach label. */ if (label) { uber_line_graph_bind_label(graph, priv->lines->len, label); uber_graph_add_label(UBER_GRAPH(graph), label); uber_label_set_color(label, &info.color); } /* * Line indexes start from 1. */ return priv->lines->len; }
/** * uber_line_graph_set_line_width: * @graph: A #UberLineGraph. * * XXX * * Returns: None. * Side effects: None. */ void uber_line_graph_set_line_width (UberLineGraph *graph, /* IN */ gint line, /* IN */ gdouble width) /* IN */ { UberLineGraphPrivate *priv; LineInfo *info; g_return_if_fail(UBER_IS_LINE_GRAPH(graph)); g_return_if_fail(line > 0); g_return_if_fail(line <= graph->priv->lines->len); priv = graph->priv; info = &g_array_index(graph->priv->lines, LineInfo, line - 1); info->width = width; uber_graph_redraw(UBER_GRAPH(graph)); }
/** * uber_line_graph_color: * @graph: A #UberLineGraph. * * XXX * * Returns: None. * Side effects: None. */ static void uber_line_graph_color_changed (UberLabel *label, /* IN */ GdkColor *color, /* IN */ UberLineGraph *graph) /* IN */ { UberLineGraphPrivate *priv; LineInfo *info; gint i; g_return_if_fail(UBER_IS_LINE_GRAPH(graph)); g_return_if_fail(color != NULL); priv = graph->priv; for (i = 0; i < priv->lines->len; i++) { info = &g_array_index(priv->lines, LineInfo, i); if (info->label == label) { info->color = *color; } } uber_graph_redraw(UBER_GRAPH(graph)); }