GtkDatabox
A set of GTK+ widgets to display large amounts of numerical data quickly and easily.
|
#include <gtkdatabox_typedefs.h>
#include <gtkdatabox_graph.h>
#include <gtkdatabox_ruler.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkadjustment.h>
Go to the source code of this file.
#define GTK_DATABOX | ( | obj | ) |
(G_TYPE_CHECK_INSTANCE_CAST ((obj), \ GTK_TYPE_DATABOX, \ GtkDatabox))
#define GTK_DATABOX_CLASS | ( | klass | ) |
(G_TYPE_CHECK_CLASS_CAST ((klass), \ GTK_TYPE_DATABOX, \ GtkDataboxClass))
#define GTK_DATABOX_GET_CLASS | ( | obj | ) |
(G_TYPE_INSTANCE_GET_CLASS ((obj), \ GTK_TYPE_DATABOX, \ GtkDataboxClass))
#define GTK_IS_DATABOX | ( | obj | ) |
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ GTK_TYPE_DATABOX))
#define GTK_IS_DATABOX_CLASS | ( | klass | ) |
(G_TYPE_CHECK_CLASS_TYPE ((klass), \ GTK_TYPE_DATABOX))
#define GTK_TYPE_DATABOX (gtk_databox_get_type ()) |
SECTION:gtkdatabox : A GTK+ widget to display large amounts of numerical data quickly and easily. gtkdatabox.h : GtkDataboxGraph, GtkDataboxPoints, GtkDataboxLines, GtkDataboxMarkers, GtkDataboxGrid
GtkDatabox is a widget for the GTK+ library designed to display large amounts of numerical data quickly and easily. It allows for one or more data sets of thousands of data points (X and Y coordinates) to be displayed and updated in split seconds.
It offers the ability to zoom into and out of the data, and to navigate through your data by scrolling.
In addition to rulers and a simple coordinate cross, it allows you to add one (or even more) configurable grids like on an oscilloscope.
Data may be presented as dots, lines connecting the data, or vertical bars. The widget allows you to easily transform pixel coordinates into data coordinates, thus allowing you to easily create powerful applications for data analysis.
typedef struct _GtkDataboxClass GtkDataboxClass |
typedef struct _GtkDataboxPrivate GtkDataboxPrivate |
GtkDataboxPrivate
A private data structure used by the GtkDatabox. It shields all internal things from developers who are just using the widget.
GtkShadowType gtk_databox__get_box_shadow | ( | GtkDatabox * | box | ) |
gint gtk_databox_auto_rescale | ( | GtkDatabox * | box, |
gfloat | border | ||
) |
gtk_databox_auto_rescale: : A GtkDatabox widget : Relative border width (e.g. 0.1 means that the border on each side is 10% of the data area).
This function is similar to gtk_databox_set_total_limits(). It sets the total limits to match the data extrema (see gtk_databox_calculate_extrema()). If you do not like data pixels exactly at the widget's border, you can add modify the limits using the border parameter: The limits are extended by *(max-min) if max!=min. If max==min, they are extended by *max (otherwise the data could not be scaled to the pixel realm).
After calling this function, x values grow from left to right, y values grow from bottom to top.
Return value: 0 on success, -1 if is no GtkDatabox widget, -2 if no datasets are available
gint gtk_databox_calculate_extrema | ( | GtkDatabox * | box, |
gfloat * | min_x, | ||
gfloat * | max_x, | ||
gfloat * | min_y, | ||
gfloat * | max_y | ||
) |
gtk_databox_calculate_extrema: : A GtkDatabox widget : Will be filled with the lowest x value of all datasets : Will be filled with the highest x value of all datasets : Will be filled with the lowest y value of all datasets : Will be filled with the highest y value of all datasets
Determines the minimum and maximum x and y values of all GtkDataboxGraph objects which have been added to the GtkDatabox widget via gtk_databox_graph_add().
Return value: 0 on success, -1 if is no GtkDatabox widget, -2 if no datasets are available
void gtk_databox_create_box_with_scrollbars_and_rulers | ( | GtkWidget ** | p_box, |
GtkWidget ** | p_table, | ||
gboolean | scrollbar_x, | ||
gboolean | scrollbar_y, | ||
gboolean | ruler_x, | ||
gboolean | ruler_y | ||
) |
gtk_databox_create_box_with_scrollbars_and_rulers: : Will contain a pointer to a GtkDatabox widget : Will contain a pointer to a #GtkTable widget : Whether to attach a horizontal scrollbar : Whether to attach a vertical scrollbar : Whether to attach a horizontal ruler : Whether to attach a vertical ruler
This is a convenience function which creates a GtkDatabox widget in a GtkTable widget optionally accompanied by scrollbars and rulers. You only have to fill in the data (gtk_databox_graph_add()) and adjust the limits (gtk_databox_set_total_limits() or gtk_databox_auto_rescale()).
This function produces the default databox with rulers at the top left and scroll bars at the bottom right.
: gtk_databox_new(), gtk_databox_set_adjustment_x(), gtk_databox_set_adjustment_y(), gtk_databox_set_ruler_x(), gtk_databox_set_ruler_y()
void gtk_databox_create_box_with_scrollbars_and_rulers_positioned | ( | GtkWidget ** | p_box, |
GtkWidget ** | p_table, | ||
gboolean | scrollbar_x, | ||
gboolean | scrollbar_y, | ||
gboolean | ruler_x, | ||
gboolean | ruler_y, | ||
gboolean | ruler_x_top, | ||
gboolean | ruler_y_left | ||
) |
gtk_databox_create_box_with_scrollbars_and_rulers_positioned: : Will contain a pointer to a GtkDatabox widget : Will contain a pointer to a #GtkTable widget : Whether to attach a horizontal scrollbar : Whether to attach a vertical scrollbar : Whether to attach a horizontal ruler : Whether to attach a vertical ruler : Whether to put the ruler_x up the top : Whether to put the ruler_y on the left
This is a convenience function which creates a GtkDatabox widget in a GtkTable widget optionally accompanied by scrollbars and rulers. You only have to fill in the data (gtk_databox_graph_add()) and adjust the limits (gtk_databox_set_total_limits() or gtk_databox_auto_rescale()).
This function produces the default databox with rulers at the top left and scroll bars at the bottom right.
: gtk_databox_new(), gtk_databox_set_adjustment_x(), gtk_databox_set_adjustment_y(), gtk_databox_set_ruler_x(), gtk_databox_set_ruler_y(), gtk_databox_create_box_with_scrollbars_and_rulers()
GtkAdjustment* gtk_databox_get_adjustment_x | ( | GtkDatabox * | box | ) |
gtk_databox_get_adjustment_x : A GtkDatabox widget.
Getter function for the GtkDatabox:adjustment-x property.
Return value: The GtkDatabox:adjustment-x property value.
GtkAdjustment* gtk_databox_get_adjustment_y | ( | GtkDatabox * | box | ) |
gtk_databox_get_adjustment_y : A GtkDatabox widget.
Getter function for the GtkDatabox:adjustment-y property.
Return value: The GtkDatabox:adjustment-y property value.
GdkPixmap* gtk_databox_get_backing_pixmap | ( | GtkDatabox * | box | ) |
gtk_databox_get_backing_pixmap: : A GtkDatabox widget
This function returns the pixmap which is used by and its GtkDataboxGraph objects for drawing operations before copying the result to the screen.
The function is typically called by the GtkDataboxGraph objects.
Return value: Backing pixmap
gboolean gtk_databox_get_enable_selection | ( | GtkDatabox * | box | ) |
gtk_databox_get_enable_selection : A GtkDatabox widget.
Getter function for the GtkDatabox:enable-selection property.
Return value: The GtkDatabox:enable-selection property value.
gboolean gtk_databox_get_enable_zoom | ( | GtkDatabox * | box | ) |
gtk_databox_get_enable_zoom : A GtkDatabox widget.
Getter function for the GtkDatabox:enable-zoom property.
Return value: The GtkDatabox:enable-zoom property value.
GtkDataboxRuler* gtk_databox_get_ruler_x | ( | GtkDatabox * | box | ) |
gtk_databox_get_ruler_x : A GtkDatabox widget.
Getter function for the GtkDatabox:ruler-x property.
Return value: The GtkDatabox:ruler-x property value.
GtkDataboxRuler* gtk_databox_get_ruler_y | ( | GtkDatabox * | box | ) |
gtk_databox_get_ruler_y : A GtkDatabox widget.
Getter function for the GtkDatabox:ruler-y property.
Return value: The GtkDatabox:ruler-y property value.
gtk_databox_get_scale_type_x : A GtkDatabox widget.
Getter function for the GtkDatabox:scale-type-x property.
Return value: The GtkDatabox:scale-type-x property value.
gtk_databox_get_scale_type_y : A GtkDatabox widget.
Getter function for the GtkDatabox:scale-type-y property.
Return value: The GtkDatabox:scale-type-y property value.
void gtk_databox_get_total_limits | ( | GtkDatabox * | box, |
gfloat * | left, | ||
gfloat * | right, | ||
gfloat * | top, | ||
gfloat * | bottom | ||
) |
gtk_databox_get_total_limits: : A GtkDatabox widget : Space for total left value or #NULL : Space for total right value or #NULL : Space for total top value or #NULL : Space for total bottom value or #NULL
Gives the total limits (as set by gtk_databox_auto_rescale() or gtk_databox_set_total_limits()).
GType gtk_databox_get_type | ( | void | ) |
void gtk_databox_get_visible_limits | ( | GtkDatabox * | box, |
gfloat * | left, | ||
gfloat * | right, | ||
gfloat * | top, | ||
gfloat * | bottom | ||
) |
gtk_databox_get_visible_limits: : A GtkDatabox widget : Space for visible left value or #NULL : Space for visible right value or #NULL : Space for visible top value or #NULL : Space for visible bottom value or #NULL
Gives the current visible limits. These differ from those given by gtk_databox_get_total_limits() if you zoomed into the data for instance by gtk_databox_zoom_to_selection() or gtk_databox_set_visible_limits() (these values can be changed by scrolling, of course).
gint gtk_databox_graph_add | ( | GtkDatabox * | box, |
GtkDataboxGraph * | graph | ||
) |
gtk_databox_graph_add: : A GtkDatabox widget : A graph, e.g. a GtkDataboxPoints or a GtkDataboxGrid object
Adds the to the . The next time the is re-drawn, the graph will be shown.
It might be becessary to modify the total_limits in order for the graph to be displayed properly (see gtk_databox_set_total_limits()).
Return value: 0 on success, -1 otherwise
gint gtk_databox_graph_add_front | ( | GtkDatabox * | box, |
GtkDataboxGraph * | graph | ||
) |
gtk_databox_graph_add_front: : A GtkDatabox widget : A graph, e.g. a GtkDataboxPoints or a GtkDataboxGrid object
Adds the to the and will be plotted on top. The next time the is re-drawn, the graph will be shown.
It might be becessary to modify the total_limits in order for the graph to be displayed properly (see gtk_databox_set_total_limits()).
Return value: 0 on success, -1 otherwise
gint gtk_databox_graph_remove | ( | GtkDatabox * | box, |
GtkDataboxGraph * | graph | ||
) |
gtk_databox_graph_remove: : A GtkDatabox widget : A graph, e.g. a GtkDataboxPoints or a GtkDataboxGrid object
Removes the from the once. The next time the is re-drawn, the graph will not be shown (unless it was added more than once).
Return value: 0 on success, -1 otherwise
gint gtk_databox_graph_remove_all | ( | GtkDatabox * | box | ) |
gtk_databox_graph_remove_all: : A GtkDatabox widget
Removes all graphs from the . The next time the is re-drawn, no graphs will be shown.
Return value: 0 on success, -1 otherwise
GtkWidget* gtk_databox_new | ( | void | ) |
gtk_databox_new
Creates a new GtkDatabox widget.
Return value: The new GtkDatabox widget.
gfloat gtk_databox_pixel_to_value_x | ( | GtkDatabox * | box, |
gint16 | pixel | ||
) |
gtk_databox_pixel_to_value_x: : A GtkDatabox widget : A horizontal pixel coordinate
Calculates the x value which is represented by the horizontal coordinate. Pixel coordinates are relative to the top-left corner of the which is equivalent to (0,0).
Return value: x value
gfloat gtk_databox_pixel_to_value_y | ( | GtkDatabox * | box, |
gint16 | pixel | ||
) |
gtk_databox_pixel_to_value_y: : A GtkDatabox widget : A vertical pixel coordinate
Calculates the y value which is represented by the vertical coordinate. Pixel coordinates are relative to the top-left corner of the which is equivalent to (0,0).
Return value: y value
void gtk_databox_set_adjustment_x | ( | GtkDatabox * | box, |
GtkAdjustment * | adj | ||
) |
gtk_databox_set_adjustment_x : A GtkDatabox widget : A #GtkAdjustment object
Setter function for the GtkDatabox:adjustment-x property. Normally, it should not be required to use this function, see property documentation.
void gtk_databox_set_adjustment_y | ( | GtkDatabox * | box, |
GtkAdjustment * | adj | ||
) |
gtk_databox_set_adjustment_y : A GtkDatabox widget : A #GtkAdjustment object
Setter function for the GtkDatabox:adjustment-y property. Normally, it should not be required to use this function, see property documentation.
void gtk_databox_set_box_shadow | ( | GtkDatabox * | box, |
GtkShadowType | which_shadow | ||
) |
gtk_databox_set_box_shadow: : a GtkDatabox widget. : How to render the box shadow on the GtkDatabox edges.
Sets the shadow type when using gtk_paint_box. This will draw the desired edge shadow.
void gtk_databox_set_enable_selection | ( | GtkDatabox * | box, |
gboolean | enable | ||
) |
gtk_databox_set_enable_selection : A GtkDatabox widget : Whether selection via mouse is enabled or not.
Setter function for the GtkDatabox:enable-selection property.
void gtk_databox_set_enable_zoom | ( | GtkDatabox * | box, |
gboolean | enable | ||
) |
gtk_databox_set_enable_zoom : A GtkDatabox widget : Whether zoom via mouse is enabled or not.
Setter function for the GtkDatabox:enable-zoom property.
void gtk_databox_set_ruler_x | ( | GtkDatabox * | box, |
GtkDataboxRuler * | ruler | ||
) |
gtk_databox_set_ruler_x : A GtkDatabox widget : A GtkDataboxRuler object
Setter function for the GtkDatabox:ruler-x property.
void gtk_databox_set_ruler_y | ( | GtkDatabox * | box, |
GtkDataboxRuler * | ruler | ||
) |
gtk_databox_set_ruler_y : A GtkDatabox widget : An GtkDataboxRuler object
Setter function for the GtkDatabox:ruler-y property.
void gtk_databox_set_scale_type_x | ( | GtkDatabox * | box, |
GtkDataboxScaleType | scale_type | ||
) |
gtk_databox_set_scale_type_x : A GtkDatabox widget : An GtkDataboxScaleType (linear or logarithmic)
Setter function for the GtkDatabox:scale-type-x property.
void gtk_databox_set_scale_type_y | ( | GtkDatabox * | box, |
GtkDataboxScaleType | scale_type | ||
) |
gtk_databox_set_scale_type_y : A GtkDatabox widget : An GtkDataboxScaleType (linear or logarithmic)
Setter function for the GtkDatabox:scale-type-y property.
void gtk_databox_set_total_limits | ( | GtkDatabox * | box, |
gfloat | left, | ||
gfloat | right, | ||
gfloat | top, | ||
gfloat | bottom | ||
) |
gtk_databox_set_total_limits: : A GtkDatabox widget : Left total limit : Right total limit : Top total limit : Bottom total limit
This function is used to set the limits of the total display area of . This function can be used to invert the orientation of the displayed graphs, e.g. =-1000 and =0.
Side effect: The also internally calls gtk_databox_set_visible_limits() with the same values.
void gtk_databox_set_visible_limits | ( | GtkDatabox * | box, |
gfloat | left, | ||
gfloat | right, | ||
gfloat | top, | ||
gfloat | bottom | ||
) |
gtk_databox_set_visible_limits: : A GtkDatabox widget : Left visible limit : Right visible limit : Top visible limit : Bottom visible limit
This function is used to set the limits of the visible display area of . The visible display area can be section of the total area, i.e. the zooms in, showing only a part of the complete picture.
The orientation of the values have to be the same as in gtk_databox_set_total_limits() and the visible limits have to be within the total limits. The values will not be used otherwise.
Side effect: The emits #GtkDatabox::zoomed.
gint16 gtk_databox_value_to_pixel_x | ( | GtkDatabox * | box, |
gfloat | value | ||
) |
gtk_databox_value_to_pixel_x: : A GtkDatabox widget : An x value
Calculates the horizontal pixel coordinate which represents the x . Pixel coordinates are relative to the top-left corner of the which is equivalent to (0,0).
Return value: Pixel coordinate
gint16 gtk_databox_value_to_pixel_y | ( | GtkDatabox * | box, |
gfloat | value | ||
) |
gtk_databox_value_to_pixel_y: : A GtkDatabox widget : A y value
Calculates the vertical pixel coordinate which represents the y . Pixel coordinates are relative to the top-left corner of the which is equivalent to (0,0).
Return value: Pixel coordinate
void gtk_databox_values_to_pixels | ( | GtkDatabox * | box, |
guint | len, | ||
const gfloat * | values_x, | ||
const gfloat * | values_y, | ||
GdkPoint * | pixels | ||
) |
gtk_databox_values_to_pixels: : A GtkDatabox widget : Number of values/pixels : Array of X values (length >= len) : Array of Y values (length >= len) : Array of pixel coordinates (length >= len)
Calculates the pixel equivalents of the given X/Y values and stores them in the array.
void gtk_databox_zoom_home | ( | GtkDatabox * | box | ) |
gtk_databox_zoom_home: : A GtkDatabox widget
This is equivalent to shift right-clicking into the .
This function works, if the attribute #enable-zoom is set to #TRUE. It is equivalent to calling the gtk_databox_set_visible_limits() with the total limits.
void gtk_databox_zoom_out | ( | GtkDatabox * | box | ) |
gtk_databox_zoom_out: : A GtkDatabox widget
This is equivalent to right-clicking into the .
This function works, if the attribute #enable-zoom is set to #TRUE. Calling the function then zooms out by a factor of 2 in both dimensions (the maximum is defined by the total limits, see gtk_databox_set_total_limits()).
Side effect: The emits #GtkDatabox::zoomed.
void gtk_databox_zoom_to_selection | ( | GtkDatabox * | box | ) |
gtk_databox_zoom_to_selection: : A GtkDatabox widget
This is equivalent to left-clicking into the selected area.
This function works, if the attribute #enable-zoom is set to #TRUE. Calling the function then zooms to the area selected with the mouse.
Side effect: The emits #GtkDatabox::zoomed.