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