* src/gnome/gnc-html-guppi.c: check for new guppi args before

passing them


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4026 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2001-04-24 00:38:19 +00:00
parent 27fa212a17
commit f733068f7d
2 changed files with 61 additions and 26 deletions

View File

@ -1,3 +1,8 @@
2001-04-23 Dave Peticolas <dave@krondo.com>
* src/gnome/gnc-html-guppi.c: check for new guppi args before
passing them
2001-04-23 Christian Stimming <stimming@tuhh.de> 2001-04-23 Christian Stimming <stimming@tuhh.de>
* src/scm/report/transaction-report.scm: Make more sanity * src/scm/report/transaction-report.scm: Make more sanity

View File

@ -32,6 +32,7 @@
#include <libguppitank/guppi-tank.h> #include <libguppitank/guppi-tank.h>
#include "gnc-engine-util.h"
#include "gnc-html.h" #include "gnc-html.h"
#include "gnc-html-guppi.h" #include "gnc-html-guppi.h"
#include "gnc-ui-util.h" #include "gnc-ui-util.h"
@ -330,6 +331,21 @@ convert_string_array(char ** strings, int nstrings) {
return retval; return retval;
} }
static gboolean
gnc_arg_list_has_arg (GtkArg *args, guint n_args, const char *arg_name)
{
guint i;
if (!args)
return FALSE;
for (i = 0; i < n_args; i++)
if (safe_strcmp (args[i].name, arg_name) == 0)
return TRUE;
return FALSE;
}
/******************************************************************** /********************************************************************
* gnc_html_embedded_piechart * gnc_html_embedded_piechart
* create a Guppi piechart from an HTML <object> block * create a Guppi piechart from an HTML <object> block
@ -350,7 +366,7 @@ gnc_html_embedded_piechart(gnc_html * parent, int w, int h,
char ** colors=NULL; char ** colors=NULL;
char ** callbacks=NULL; char ** callbacks=NULL;
char * gtitle; char * gtitle;
chart->parent = parent; chart->parent = parent;
if((param = g_hash_table_lookup(params, "datasize")) != NULL) { if((param = g_hash_table_lookup(params, "datasize")) != NULL) {
@ -466,8 +482,7 @@ gnc_html_embedded_piechart(gnc_html * parent, int w, int h,
g_free(callbacks); g_free(callbacks);
} }
piechart = guppi_object_newv("pie", w, h, piechart = guppi_object_newv ("pie", w, h, argind, arglist);
argind, arglist);
if(piechart) { if(piechart) {
if((gtitle = g_hash_table_lookup(params, "title")) != NULL) { if((gtitle = g_hash_table_lookup(params, "title")) != NULL) {
@ -513,6 +528,7 @@ gnc_html_embedded_barchart(gnc_html * parent,
GuppiObject * barchart = NULL; GuppiObject * barchart = NULL;
GuppiObject * title = NULL; GuppiObject * title = NULL;
GtkArg arglist[21]; GtkArg arglist[21];
GtkArg *guppi_args;
int argind=0; int argind=0;
char * param; char * param;
int datarows=0; int datarows=0;
@ -527,6 +543,7 @@ gnc_html_embedded_barchart(gnc_html * parent,
char ** col_colors=NULL; char ** col_colors=NULL;
char ** callbacks=NULL; char ** callbacks=NULL;
char * gtitle = NULL; char * gtitle = NULL;
guint n_args;
chart->parent = parent; chart->parent = parent;
@ -595,27 +612,6 @@ gnc_html_embedded_barchart(gnc_html * parent,
GTK_VALUE_BOOL(arglist[argind]) = rotate; GTK_VALUE_BOOL(arglist[argind]) = rotate;
argind++; argind++;
} }
if((param = g_hash_table_lookup(params, "legend_reversed")) != NULL) {
sscanf(param, "%d", &rotate);
arglist[argind].name = "legend_reversed";
arglist[argind].type = GTK_TYPE_BOOL;
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) { if((param = g_hash_table_lookup(params, "bar_urls_1")) != NULL) {
arglist[argind].name = "bar_callback1"; arglist[argind].name = "bar_callback1";
arglist[argind].type = GTK_TYPE_POINTER; arglist[argind].type = GTK_TYPE_POINTER;
@ -707,10 +703,44 @@ gnc_html_embedded_barchart(gnc_html * parent,
g_free(callbacks); g_free(callbacks);
} }
barchart = guppi_object_newv("barchart", w, h, barchart = guppi_object_newv("barchart", w, h,
argind, arglist); argind, arglist);
guppi_args = gtk_object_query_args (GTK_OBJECT_TYPE (barchart),
NULL, &n_args);
argind = 0;
if(gnc_arg_list_has_arg (guppi_args, n_args, "legend_reversed") &&
(param = g_hash_table_lookup(params, "legend_reversed")) != NULL) {
sscanf(param, "%d", &rotate);
arglist[argind].name = "legend_reversed";
arglist[argind].type = GTK_TYPE_BOOL;
GTK_VALUE_BOOL(arglist[argind]) = rotate;
argind++;
}
if(gnc_arg_list_has_arg (guppi_args, n_args, "stacked") &&
(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(gnc_arg_list_has_arg (guppi_args, n_args, "normalize_stacks") &&
(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++;
}
g_free (guppi_args);
if (barchart && argind > 0)
gtk_object_setv (GTK_OBJECT (barchart), argind, arglist);
if(barchart) { if(barchart) {
if((gtitle = g_hash_table_lookup(params, "title")) != NULL) { if((gtitle = g_hash_table_lookup(params, "title")) != NULL) {
title = guppi_object_new("title", w, h, title = guppi_object_new("title", w, h,