[Gnucash-changes] Cleanup barchart adaption; get basically working.

Joshua Sled jsled at cvs.gnucash.org
Sat Feb 12 16:27:54 EST 2005


Log Message:
-----------
Cleanup barchart adaption; get basically working.

Tags:
----
g2-gog-integ

Modified Files:
--------------
    gnucash/src/gnome-utils:
        gnc-html-graph-gog.c

Revision Data
-------------
Index: gnc-html-graph-gog.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome-utils/Attic/gnc-html-graph-gog.c,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -Lsrc/gnome-utils/gnc-html-graph-gog.c -Lsrc/gnome-utils/gnc-html-graph-gog.c -u -r1.1.2.1 -r1.1.2.2
--- src/gnome-utils/gnc-html-graph-gog.c
+++ src/gnome-utils/gnc-html-graph-gog.c
@@ -139,7 +139,6 @@
   GogRenderer *pixbufRend;
   GdkPixbuf *buf;
   gboolean updateStatus;
-  gint w, h;
   int datasize;
   double *data = NULL;
   char **labels = NULL, **colors = NULL;
@@ -175,7 +174,6 @@
     return FALSE;
   }
   g_object_set (G_OBJECT (plot),
-		//"horizontal",			TRUE,
 		"vary_style_by_element",	TRUE,
 		NULL);
   gog_object_add_by_name( chart, "Plot", GOG_OBJECT(plot) );
@@ -200,15 +198,18 @@
     gog_object_set_pos (tmp, GOG_POSITION_N | GOG_POSITION_ALIGN_START);
     title = go_data_scalar_str_new (titleParam, FALSE);
     gog_dataset_set_dim (GOG_DATASET (tmp), 0, title, NULL);
-    /*
     gog_style_set_font (GOG_STYLED_OBJECT (tmp)->style,
                         pango_font_description_from_string ("Sans Bold 10"));
-    */
   }
 
   legend = gog_object_add_by_name( chart, "Legend", NULL );
+  gog_style_set_font( GOG_STYLED_OBJECT(legend)->style,
+                      pango_font_description_from_string( "Sans Regular 8" ) );
 
   // Note that this shouldn't be necessary as per discussion with Jody...
+  // ... but it is because we don't embed in a control which passes the
+  // update requests back to the graph widget, a-la the foo-canvas that
+  // gnumeric uses.  We probably _should_ do something like that, though.
   gog_object_update( GOG_OBJECT(graph) );
 
 #if 0
@@ -218,7 +219,7 @@
     gboolean output;
 
     mem = gsf_output_memory_new();
-    output = gog_graph_export_to_svg( graph, mem, 320., 240., 1. );
+    output = gog_graph_export_to_svg( graph, mem, eb->width, eb->height, 1. );
     printf( "svg: [%s]\n", (guchar*)gsf_output_memory_get_bytes( GSF_OUTPUT_MEMORY(mem) ) );
   }
 #endif // 0
@@ -226,10 +227,10 @@
   pixbufRend = g_object_new( GOG_RENDERER_PIXBUF_TYPE,
                              "model", graph,
                              NULL );
-  updateStatus = gog_renderer_pixbuf_update( GOG_RENDERER_PIXBUF(pixbufRend), 320, 240, 1. );
+  updateStatus = gog_renderer_pixbuf_update( GOG_RENDERER_PIXBUF(pixbufRend), eb->width, eb->height, 1. );
   buf = gog_renderer_pixbuf_get(GOG_RENDERER_PIXBUF(pixbufRend));
   widget = gtk_image_new_from_pixbuf( buf );
-  gtk_widget_set_size_request( widget, 320, 240 );
+  gtk_widget_set_size_request( widget, eb->width, eb->height );
   gtk_widget_show_all( widget );
   gtk_container_add( GTK_CONTAINER(eb), widget );
   // blindly copied from gnc-html-guppi.c
@@ -262,31 +263,34 @@
   GogRenderer *pixbufRend;
   GdkPixbuf *buf;
   gboolean updateStatus;
-  gint w, h;
   int datarows, datacols;
   double *data = NULL;
   char **col_labels = NULL, **row_labels = NULL, **col_colors = NULL;
-  char *x_axis_label, *y_axis_label;
-  gboolean rotate_row_labels, stacked;
+  //char *x_axis_label, *y_axis_label;
+  //gboolean rotate_row_labels, stacked;
 
   // First, parse data from the text-ized params.
   {
     char *datarowsStr, *datacolsStr, *dataStr, *colLabelsStr, *rowLabelsStr, *colColorsStr;
 
-    datarowsStr = g_hash_table_lookup(eb->params, "data_rows");
-    datacolsStr = g_hash_table_lookup(eb->params, "data_cols");
-    dataStr = g_hash_table_lookup(eb->params, "data" );
+    datarowsStr  = g_hash_table_lookup(eb->params, "data_rows");
+    datacolsStr  = g_hash_table_lookup(eb->params, "data_cols");
+    dataStr      = g_hash_table_lookup(eb->params, "data" );
     colLabelsStr = g_hash_table_lookup(eb->params, "col_labels");
     rowLabelsStr = g_hash_table_lookup(eb->params, "row_labels");
     colColorsStr = g_hash_table_lookup(eb->params, "col_colors");
+#if 0 // too strong at the moment.
     g_return_val_if_fail( datarowsStr != NULL
                           && datacolsStr != NULL
                           && dataStr != NULL
                           && colLabelsStr != NULL
                           && rowLabelsStr != NULL
                           && colColorsStr != NULL, FALSE );
+#endif // 0
     sscanf( datarowsStr, "%d", &datarows );
+    PINFO( "datarows=%d", datarows );
     sscanf( datacolsStr, "%d", &datacols );
+    PINFO( "datacols=%d", datacols );
     data = read_doubles( dataStr, datarows*datacols );
     row_labels = read_strings( rowLabelsStr, datarows );
     col_labels = read_strings( colLabelsStr, datacols );
@@ -295,8 +299,8 @@
 
   graph = g_object_new( GOG_GRAPH_TYPE, NULL );
   chart = gog_object_add_by_name( graph, "Chart", NULL );
-  // series => bars [cols]
-  // elements => segments [rows]
+  // series => bars [gnc:cols]
+  // elements => segments [gnc:rows]
   plot = gog_plot_new_by_name( "GogBarColPlot" );
   if ( !plot )
   {
@@ -305,21 +309,27 @@
     return FALSE;
   }
   g_object_set (G_OBJECT (plot),
-		"horizontal",			TRUE,
 		"vary_style_by_element",	TRUE,
+                "type",                         "normal",
 		NULL);
   gog_object_add_by_name( chart, "Plot", GOG_OBJECT(plot) );
-  series = gog_plot_new_series( plot );
-  labelData = go_data_vector_str_new( row_labels, datarows );
-  gog_series_set_dim( series, 0, labelData, NULL );
-  go_data_emit_changed (GO_DATA (labelData));
 
+  labelData = go_data_vector_str_new(  (char const * const *)col_labels, datacols );
   {
     int i;
+    // foreach row:
+    //   series = row
+
     for ( i = 0; i < datacols; i++ )
     {
+      series = gog_plot_new_series( plot );
+
+      g_object_ref( labelData );
+      gog_series_set_dim( series, 0, labelData, NULL );
+      go_data_emit_changed (GO_DATA (labelData));
+
       sliceData = go_data_vector_val_new( data + (i*datarows), datarows );
-      gog_series_set_dim( series, i+1, sliceData, NULL );
+      gog_series_set_dim( series, 1, sliceData, NULL );
       go_data_emit_changed (GO_DATA (sliceData));
     }
   }
@@ -352,7 +362,7 @@
     gboolean output;
 
     mem = gsf_output_memory_new();
-    output = gog_graph_export_to_svg( graph, mem, 320., 240., 1. );
+    output = gog_graph_export_to_svg( graph, mem, eb->width, eb->height, 1. );
     printf( "svg: [%s]\n", (guchar*)gsf_output_memory_get_bytes( GSF_OUTPUT_MEMORY(mem) ) );
   }
 #endif // 0
@@ -360,15 +370,16 @@
   pixbufRend = g_object_new( GOG_RENDERER_PIXBUF_TYPE,
                              "model", graph,
                              NULL );
-  updateStatus = gog_renderer_pixbuf_update( GOG_RENDERER_PIXBUF(pixbufRend), 320, 240, 1. );
+  gog_object_update( GOG_OBJECT(graph) );
+  updateStatus = gog_renderer_pixbuf_update( GOG_RENDERER_PIXBUF(pixbufRend), eb->width, eb->height, 1. );
   buf = gog_renderer_pixbuf_get(GOG_RENDERER_PIXBUF(pixbufRend));
   widget = gtk_image_new_from_pixbuf( buf );
-  gtk_widget_set_size_request( widget, 320, 240 );
+  gtk_widget_set_size_request( widget, eb->width, eb->height );
   gtk_widget_show_all( widget );
   gtk_container_add( GTK_CONTAINER(eb), widget );
   // blindly copied from gnc-html-guppi.c
   gtk_widget_set_usize(GTK_WIDGET(eb), eb->width, eb->height);
 
-  PINFO( "piechart rendering." );
+  PINFO( "barchart rendered." );
   return TRUE;
 }


More information about the gnucash-changes mailing list