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