Re: [PATCH] add graph window



I have one objection against the goffice patch: the changes in
go-graph-widget.c are much too large. This widget was devised to be used
in other apps, and do part of the job on initialization (create a graph
with a chart and the renderer). It looks like a complete rewrite. I
would prefer a new widget, or add a go_graph_widget_set_graph function
if we want to change the default graph.

Le mercredi 02 novembre 2005 à 15:42 +0100, Christian Neumair a écrit :
The attached patch adds caps for opening a new window that just contains
a graph to Gnumeric.

caveats

1 we sometimes display scrollbars although it isn't aesthetically
pleasing (fit to height/width). This is due to GtkScrolledWindow
allocation issues. Without proper height-by-width management in GTK+, I
don't think it's fixable.

2 if the graph window persists longer than all the other toplevels, the
gnumeric shutdown functions spit warnings about non-freed ressources.
I see two ways of resolving this:
- set destroy_with_parent for the graph window. This requires an API for
getting the window a sheet object is associated with
- add a global list of graph windows, which are all destroyed before the
ressource check runs

I feel the best way is to add a destroy_cb callback for the
GnmGraphWindow.

3

the % sizes of the graph are relative to the window size, not absolute
to the passed-in graph size. This makes sense if you consider that for
fullscreen presentation, one often wants to zoom in.

4

+                    w->zoom_factor > 1.0 ?
+                    w->height < w->width * w->aspect_ratio :
+                    w->height > w->width * w->aspect_ratio))

is a bit fishy. However, I supposed that if one has an aspect ratio of
1.0, he expects the widget to scale like in the pie-demo. If the aspect
ratio is bigger, and no explicit reference direction is set, I use the
(relative) longer dimension, since using the shorter causes issues where
scrolling takes place with a hoffset/voffset != 0, which looks ugly.

5

the graph size in the window is wrong compared to the sheet object graph
size, it seems like by a constant factor

6

gog_object_get_child_by_name was added just for API completeness. It is
not needed by the rest of the patch.

Cheers,
Jean




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]