Re: Guppi 0.0.1




> For example, "draw an axis with tick
> marks,"  "draw a cross/circle/dot marker," "label the axis with round
> numbers." It could be enhanced (and will be, the functionality isn't
> complete by any means).

I think something like this would suit my needs:

/* This is exported by the spreadsheet as a data source (ie, the sheet) */

struct Value {
	int type;
	union {
		string v_str;
		int    v_int;
		double v_float;
	};
}

interface Table {
	Value get_value (int int col, in int row);
	Value get_value_srt (in string cell_spec);
};

enum {
	plot_xy,
	plot_xy_lines,
	plot_pie,
	plot_pie_with_apples,
	plot_histogram,
	plot_3d,
	plot_3d_perspective,
} PlotType;

interface plot {
	void set_source  (Table table);
	void set_x_range (in string cell_range);
	void set_type (in PlotType type);
	void set_y_range (in int tag, in string cell_range);
	void set_z_range (in int tag, in string cell_range);
	
	void delete_y_range (in int tag);
	void delete_z_range (in int tag);
	void set_axis_title (in string which, in string title, in string font);
	string get_postscript (void);
}

That is of course a simplistic interface, but you get the idea:
Gnumeric, when requested for a plot, would invoke Guppi and would call
the plot_set_source routine with a table parameter that points back to
Gnumeric.  Guppi will then gather[1] the information to be plotted
with this interface, and Gnumeric might do some further changes and
adjustments as the user requires during runtime.

[1] if we see performance is a problem with the Table interface, we
might return arrays of values in a single operation.
	
best wishes,
Miguel.



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