Re: libgoffice help



Le jeudi 30 avril 2009 à 15:46 +0100, jcupitt gmail com a écrit :
2009/4/30 Jean Bréfort <jean brefort normalesup org>:
You should call gog_object_request_update instead of
gog_styled_object_style_changed.

Hi Jean, thank you for the reply, but I still don't get a red line :-(

Yes, sorry, I missed the obvious, what you need is:
  style = gog_styled_object_get_style (GOG_STYLED_OBJECT (series));
  style->line.color = RGBA_RED;
  style->line.auto_color = FALSE;

There is no need in this case to call gog_object_request_update. But you
need to use RGBA_RED instead of RGB_RED and set auto_color to FALSE.


I made a tiny example program:

-------------
/* Compile with:

        gcc -g -Wall try156.c `pkg-config libgoffice-0.8 --cflags --libs`

 */

#include <gtk/gtk.h>

#include <goffice/goffice.h>

#include <goffice/app/go-plugin.h>
#include <goffice/app/go-plugin-loader-module.h>

#include <goffice/data/go-data-simple.h>

#include <goffice/graph/gog-data-set.h>
#include <goffice/graph/gog-label.h>
#include <goffice/graph/gog-object.h>
#include <goffice/graph/gog-plot.h>
#include <goffice/graph/gog-series.h>
#include <goffice/graph/gog-style.h>

#include <goffice/gtk/go-graph-widget.h>

#include <goffice/utils/go-color.h>

static double xes[] = { 1.0, 2.0, 3.0 };
static double yes[] = { 1.0, 12.0, 5.0 };

int
main (int argc, char **argv)
{
  GtkWidget *window;

  GtkWidget *graph;
  GogChart *chart;
  GogPlot *plot;
  GogSeries *series;
  GOData *data;
  GError *error;
  GogStyle *style;

  gtk_init (&argc, &argv);

  libgoffice_init ();
  go_plugins_init (NULL, NULL, NULL, NULL, TRUE,
                   GO_PLUGIN_LOADER_MODULE_TYPE);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

  graph = go_graph_widget_new (NULL);
  gtk_container_add (GTK_CONTAINER (window), graph);

  chart = go_graph_widget_get_chart (GO_GRAPH_WIDGET (graph));

  plot = gog_plot_new_by_name ("GogXYPlot");
  gog_object_add_by_name (GOG_OBJECT (chart), "Plot", GOG_OBJECT (plot));

  series = gog_plot_new_series (plot);
  data = go_data_vector_val_new (xes, 3, NULL);
  gog_series_set_dim (series, 0, data, &error);
  data = go_data_vector_val_new (yes, 3, NULL);
  gog_series_set_dim (series, 1, data, &error);

  style = gog_styled_object_get_style (GOG_STYLED_OBJECT (series));
  style->line.color = RGB_RED;
  gog_object_request_update (GOG_OBJECT (series));

  gtk_widget_show_all (window);

  gtk_main ();

  return 0;
}
---------------------

What's the best way to make the line red?

My motivation: this is for displaying image profiles, so I need to
display three series as a line graph, and they need to be red, green,
blue.

John
_______________________________________________
gnumeric-list mailing list
gnumeric-list gnome org
http://mail.gnome.org/mailman/listinfo/gnumeric-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]