Davide Imbeni wrote:
> Hi again,
> 
> I apologize for doing this twice.
> I found no good reason not to have the same "gridline" option for
> net-barchart.scm. Please find attached the new diff file.
> 
> Best Regards
> 
> Davide

I get a compile error when I try to compile the source code with this
patch applied:

cc1: warnings being treated as errors
gnc-html-graph-gog.c: In function 'handle_barchart':
gnc-html-graph-gog.c:516: warning: ISO C90 forbids mixed declarations
and code


I moved the declaration to the top of the function and it compiles now.

Attached is Davide's diff file with my change.

Tim
Index: src/report/standard-reports/category-barchart.scm
===================================================================
--- src/report/standard-reports/category-barchart.scm	(revision 16941)
+++ src/report/standard-reports/category-barchart.scm	(working copy)
@@ -81,6 +81,7 @@
 (define optname-plot-width (N_ "Plot Width"))
 (define optname-plot-height (N_ "Plot Height"))
 (define optname-sort-method (N_ "Sort Method"))
+(define optname-y-major-grid (N_ "Background Grid"))
 
 (define (options-generator account-types reverse-balance?)
   (let* ((options (gnc:new-options)) 
@@ -146,6 +147,12 @@
       "c" (N_ "Maximum number of bars in the chart") 8
       2 24 0 1))
 
+    (add-option
+     (gnc:make-simple-boolean-option
+      gnc:pagename-display optname-y-major-grid
+      "b" 
+      (N_ "Add background grid (Y axis)") #f))
+
     (gnc:options-add-plot-size! 
      options gnc:pagename-display 
      optname-plot-width optname-plot-height "d" 400 400)
@@ -199,6 +206,7 @@
         (account-levels (get-option gnc:pagename-accounts optname-levels))
         
         (stacked? (get-option gnc:pagename-display optname-stacked))
+        (y-major-grid? (get-option gnc:pagename-display optname-y-major-grid))
         (show-fullname? (get-option gnc:pagename-display optname-fullname))
         (max-slices (inexact->exact
 		     (get-option gnc:pagename-display optname-slices)))
@@ -420,6 +428,7 @@
               chart (gnc-commodity-get-mnemonic report-currency))
              (gnc:html-barchart-set-row-labels-rotated?! chart #t)
              (gnc:html-barchart-set-stacked?! chart stacked?)
+             (gnc:html-barchart-set-y-major-grid?! chart y-major-grid?)
              ;; If this is a stacked barchart, then reverse the legend.
 	     ;; Doesn't do what you'd expect. - DRH
 	     ;; It does work, but needs Guppi 0.40.4. - cstim
Index: src/report/standard-reports/net-barchart.scm
===================================================================
--- src/report/standard-reports/net-barchart.scm	(revision 16941)
+++ src/report/standard-reports/net-barchart.scm	(working copy)
@@ -53,6 +53,7 @@
 
 (define optname-plot-width (N_ "Plot Width"))
 (define optname-plot-height (N_ "Plot Height"))
+(define optname-y-major-grid (N_ "Background Grid"))
 
 (define (options-generator inc-exp?)
   (let* ((options (gnc:new-options)) 
@@ -120,6 +121,12 @@
           (N_ "Show a Net Worth bar?")) 
       #t))
 
+    (add-option
+     (gnc:make-simple-boolean-option
+      gnc:pagename-display optname-y-major-grid
+      "b" 
+      (N_ "Add background grid (Y axis)") #f))
+
     (gnc:options-add-plot-size! 
      options gnc:pagename-display 
      optname-plot-width optname-plot-height "c" 500 400)
@@ -164,6 +171,7 @@
          (show-net? (get-option gnc:pagename-display 
 				(if inc-exp? optname-show-profit
 				    optname-net-bars)))
+         (y-major-grid? (get-option gnc:pagename-display optname-y-major-grid))
          (height (get-option gnc:pagename-display optname-plot-height))
          (width (get-option gnc:pagename-display optname-plot-width))
 
@@ -276,6 +284,7 @@
                        (_ "%s to %s")
                        (gnc-print-date from-date-tp)
                        (gnc-print-date to-date-tp)))
+       (gnc:html-barchart-set-y-major-grid?! chart y-major-grid?)
        (gnc:html-barchart-set-width! chart width)
        (gnc:html-barchart-set-height! chart height)
        (gnc:html-barchart-set-row-labels! chart date-string-list)
Index: src/report/report-system/html-barchart.scm
===================================================================
--- src/report/report-system/html-barchart.scm	(revision 16941)
+++ src/report/report-system/html-barchart.scm	(working copy)
@@ -41,7 +41,8 @@
 		      button-3-bar-urls
 		      button-1-legend-urls
                       button-2-legend-urls 
-		      button-3-legend-urls)))
+		      button-3-legend-urls
+		      y-major-grid?)))
 
 (define gnc:html-barchart? 
   (record-predicate <html-barchart>))
@@ -56,7 +57,7 @@
 
 (define (gnc:make-html-barchart)
   (gnc:make-html-barchart-internal -1 -1 #f #f #f #f '() '() '() 
-				   #f #f #f '() #f #f #f #f #f #f))
+				   #f #f #f '() #f #f #f #f #f #f #f))
 
 (define gnc:html-barchart-data
   (record-accessor <html-barchart> 'data))
@@ -136,6 +137,12 @@
 (define gnc:html-barchart-set-subtitle!
   (record-modifier <html-barchart> 'subtitle))
 
+(define gnc:html-barchart-y-major-grid?
+  (record-accessor <html-barchart> 'y-major-grid?))
+
+(define gnc:html-barchart-set-y-major-grid?!
+  (record-modifier <html-barchart> 'y-major-grid?))
+
 ;; Note: ATM you can specify one url per column, but this url will be
 ;; used for all of the rows. Otherwise we could have cols*rows urls
 ;; (quite a lot), but this first requires fixing
@@ -428,6 +435,10 @@
 	  (push (if (gnc:html-barchart-stacked? barchart)
 		    "1\">\n"
 		    "0\">\n"))
+	  (push "  <param name=\"y_major_grid\" value=\"")
+	  (push (if (gnc:html-barchart-y-major-grid? barchart)
+		    "1\">\n"
+		    "0\">\n"))
 	  (push "  <param name=\"legend_reversed\" value=\"")
 	  (push (if (gnc:html-barchart-legend-reversed? barchart)
 		    "1\">\n"
Index: src/report/report-system/report-system.scm
===================================================================
--- src/report/report-system/report-system.scm	(revision 16941)
+++ src/report/report-system/report-system.scm	(working copy)
@@ -182,6 +182,8 @@
 (export gnc:html-barchart-set-row-labels-rotated?!)
 (export gnc:html-barchart-stacked?)
 (export gnc:html-barchart-set-stacked?!)
+(export gnc:html-barchart-y-major-grid?)
+(export gnc:html-barchart-set-y-major-grid?!)
 (export gnc:html-barchart-col-labels)
 (export gnc:html-barchart-set-col-labels!)
 (export gnc:html-barchart-col-colors)
Index: src/gnome-utils/gnc-html-graph-gog.c
===================================================================
--- src/gnome-utils/gnc-html-graph-gog.c	(revision 16941)
+++ src/gnome-utils/gnc-html-graph-gog.c	(working copy)
@@ -394,6 +394,7 @@
  * col_colors:string[]
  * rotate_row_labels:boolean
  * stacked:boolean
+ * y_major_grid:boolean
  **/
 static gboolean
 handle_barchart(gnc_html * html, GtkHTMLEmbedded * eb, gpointer unused)
@@ -410,6 +411,7 @@
   gboolean stacked = FALSE;
   char *bar_type = "normal";
   int bar_overlap = 0 /*percent*/; // seperate bars; no overlap.
+  gboolean y_major_grid = FALSE;
 
   gtkhtml_pre_3_10_1_bug_workaround (eb);
 
@@ -418,7 +420,7 @@
   // series-elements => segments [gnc:rows]
   {
     char *data_rows_str, *data_cols_str, *data_str, *col_labels_str, *row_labels_str;
-    char *col_colors_str, *rotate_row_labels_str = NULL, *stacked_str = NULL;
+    char *col_colors_str, *rotate_row_labels_str = NULL, *stacked_str = NULL, *y_major_grid_str = NULL;
 
     data_rows_str         = g_hash_table_lookup (eb->params, "data_rows");
     data_cols_str         = g_hash_table_lookup (eb->params, "data_cols");
@@ -428,9 +430,11 @@
     col_colors_str        = g_hash_table_lookup (eb->params, "col_colors");
     rotate_row_labels_str = g_hash_table_lookup (eb->params, "rotate_row_labels");
     stacked_str           = g_hash_table_lookup (eb->params, "stacked");
+    y_major_grid_str      = g_hash_table_lookup (eb->params, "y_major_grid");
 
     rotate_row_labels     = (gboolean) atoi (rotate_row_labels_str);
     stacked               = (gboolean) atoi (stacked_str);
+    y_major_grid          = (gboolean) atoi (y_major_grid_str);
 
 #if 0 // too strong at the moment.
     g_return_val_if_fail (data_rows_str != NULL
@@ -462,7 +466,7 @@
   g_object_set (G_OBJECT (plot),
                 //"vary_style_by_element",	TRUE,
                 "type",                         bar_type,
-                "overlap_percentage",           bar_overlap, 
+                "overlap_percentage",           bar_overlap,
                 NULL);
   label_data = go_data_vector_str_new ((char const * const *)row_labels, data_rows, NULL);
   {
@@ -507,9 +511,17 @@
     gog_style_set_text_angle (style, 90.0);
   }
 
+  if (y_major_grid) {
+   GogObject *object;
+   gog_object_add_by_name(chart,"Grid", NULL);
+    object = gog_object_get_child_by_role (
+      chart, gog_object_find_role_by_name (chart, "Y-Axis"));
+    gog_object_add_by_name (GOG_OBJECT (object),"MajorGrid", NULL);
+  }
+
   set_chart_titles_from_hash (chart, eb);
   set_chart_axis_labels_from_hash (chart, eb);
-
+  
   // we need to do this twice for the barchart... :p
   gog_object_update (GOG_OBJECT (graph));
 
_______________________________________________
gnucash-devel mailing list
[email protected]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to