From eb30788e0245ad583e0a91462a513dc34e72ad1e Mon Sep 17 00:00:00 2001 From: Dave Peticolas Date: Tue, 27 Mar 2001 10:02:47 +0000 Subject: [PATCH] Christian Stimming's report patch. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3841 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/gnome/gnc-html-guppi.c | 16 ++++++++++++++++ src/scm/html-barchart.scm | 11 ++++++++++- src/scm/report/income-expense-graph.scm | 8 ++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/gnome/gnc-html-guppi.c b/src/gnome/gnc-html-guppi.c index c33230bdcf..037f6ce2eb 100644 --- a/src/gnome/gnc-html-guppi.c +++ b/src/gnome/gnc-html-guppi.c @@ -507,6 +507,8 @@ gnc_html_embedded_barchart(gnc_html * parent, int datarows=0; int datacols=0; int rotate=0; + int stacked=0; + int normalize_stacks=0; double * data=NULL; char ** col_labels=NULL; char ** row_labels=NULL; @@ -579,6 +581,20 @@ gnc_html_embedded_barchart(gnc_html * parent, GTK_VALUE_BOOL(arglist[argind]) = rotate; argind++; } + if((param = g_hash_table_lookup(params, "stacked")) != NULL) { + sscanf(param, "%d", &stacked); + arglist[argind].name = "stacked"; + arglist[argind].type = GTK_TYPE_BOOL; + GTK_VALUE_BOOL(arglist[argind]) = stacked; + argind++; + } + if((param = g_hash_table_lookup(params, "normalize_stacks")) != NULL) { + sscanf(param, "%d", &normalize_stacks); + arglist[argind].name = "normalize_stacks"; + arglist[argind].type = GTK_TYPE_BOOL; + GTK_VALUE_BOOL(arglist[argind]) = normalize_stacks; + argind++; + } if((param = g_hash_table_lookup(params, "bar_urls_1")) != NULL) { arglist[argind].name = "bar_callback1"; arglist[argind].type = GTK_TYPE_POINTER; diff --git a/src/scm/html-barchart.scm b/src/scm/html-barchart.scm index d8d7fc5737..a33f830d5f 100644 --- a/src/scm/html-barchart.scm +++ b/src/scm/html-barchart.scm @@ -35,6 +35,7 @@ row-labels col-colors row-labels-rotated? + stacked? data))) (define gnc:html-barchart? @@ -49,7 +50,7 @@ (record-constructor )) (define (gnc:make-html-barchart) - (gnc:make-html-barchart-internal -1 -1 #f #f #f #f '() '() '() #f '())) + (gnc:make-html-barchart-internal -1 -1 #f #f #f #f '() '() '() #f #f '())) (define gnc:html-barchart-data (record-accessor 'data)) @@ -93,6 +94,12 @@ (define gnc:html-barchart-set-row-labels-rotated?! (record-modifier 'row-labels-rotated?)) +(define gnc:html-barchart-stacked? + (record-accessor 'stacked?)) + +(define gnc:html-barchart-set-stacked?! + (record-modifier 'stacked?)) + (define gnc:html-barchart-col-labels (record-accessor 'col-labels)) @@ -306,6 +313,8 @@ (if rot? (push "1\">\n") (push "0\">\n"))) + (if (gnc:html-barchart-stacked? barchart) + (push " \n")) (push "Unable to push bar chart\n") (push "")) " ") diff --git a/src/scm/report/income-expense-graph.scm b/src/scm/report/income-expense-graph.scm index e0b5d5c5e1..e0c2f2e6f1 100644 --- a/src/scm/report/income-expense-graph.scm +++ b/src/scm/report/income-expense-graph.scm @@ -18,6 +18,7 @@ (pagename-display (N_ "Display")) (optname-inc-exp (N_ "Show Income/Expense")) (optname-show-profit (N_ "Show Net Profit")) + (optname-stacked (N_ "Stacked")) (optname-plot-width (N_ "Plot Width")) (optname-plot-height (N_ "Plot Height"))) @@ -77,6 +78,11 @@ pagename-display optname-show-profit "b" (_ "Show the net profit?") #f)) + (add-option + (gnc:make-simple-boolean-option + pagename-display optname-stacked + "ba" (_ "Show barchart as stacked?") #t)) + (add-option (gnc:make-number-range-option pagename-display optname-plot-width @@ -143,6 +149,7 @@ (show-net? (op-value pagename-display optname-show-profit)) (show-incexp? (op-value pagename-display optname-inc-exp)) + (stacked? (op-value pagename-display optname-stacked)) (height (op-value pagename-display optname-plot-height)) (width (op-value pagename-display optname-plot-width)) @@ -187,6 +194,7 @@ (gnc:html-barchart-set-y-axis-label! chart (gnc:commodity-get-mnemonic report-currency)) (gnc:html-barchart-set-row-labels-rotated?! chart #t) + (gnc:html-barchart-set-stacked?! chart stacked?) (if show-incexp? (begin