===============================
VDKDataBox class <vdkdatabox.h>
inherits from VDKObject
===============================

DESCRIPTION
-----------
 This is a simple (almost 1:1) wrapper of GtkDatabox 0.1.11.0
 developed by Roland Bock.

- Styles
 The data box has the following styles:
 GTK_DATABOX_NOT_DISPLAYED
 GTK_DATABOX_POINTS
 GTK_DATABOX_LINES
 GTK_DATABOX_BARS

- Zooming operations
With zoom enabled, drag the area that needs to be zoomed
and click on center click on the mouse.
To unzoom, right click on the mouse (repeated clicks unzoom
to original scale).


PUBLIC MEMBERS
--------------
None

PROPERTIES
----------
bool  Rulers
bool  Cross
bool  Scrollbars
bool  Zoom
GtkDataboxValue Mark (read-only)
GtkDataboxValue Select (read-only)
GtkDataboxCoord TopLeft (read-only)
GtkDataboxCoord BottomRight (read-only)

Static Table Signals
--------------------
- databox_zoomed_signal 
  Emitted when databox is zoomed.
- databox_marked_signal 
  Emitted when mouse is clicked in databox.
- databox_selection_started_signal 
  Emitted when a selection is started in databox.
- databox_selection_changed_signal 
  Emitted when the selection is changed. 
- databox_selection_stopped_signal 
  Emitted when the selection is finished. 
- databox_selection_canceled_signal 
  Emitted when the selection is canceled 
  (by clicking outside the selection). 
  
Dynamic Table Signals
---------------------
"databox_zoomed"
"databox_marked"
"databox_selection_started"
"databox_selection_changed"
"databox_selection_stopped"
"databox_selection_canceled"

Note:  
Dynamic table signals are different from the equivalent databox signals in 
that that they do not send values of the marked point or selection, for 
instance. These values can be read using the \e read-only properties.  


METHODS
-------
VDKDataBox(VDKForm *owner)
	Constructor.

~VDKDataBox();
	Destructor.

  
void SetRulers(bool);
     Shows or hides the rulers.

void SetCross(bool val);
     Shows or hides the axis cross.
     If you use the \e Cross property, setting it will call a Redraw().
     If you don't want a Redraw(), use SetCross(bool, bool) function.

void SetCross(bool val, bool redraw);  
     It is similar with SetCross(bool), but you can controll the 
     call of Redraw() function.
     Args:
     val controls the show or hide state of the cross.
     redraw controls if we call or not a subsequent Redraw().
     Set to false if you don't want a redraw.
	
void SetScrollbars(bool);
     Show or hides the scrollbars.

void SetZoom(bool);
     Enable or disable the zoom.

VDKColor* GetColor(int index);
     Get the color of a dataset. Dataset index pointer to a VDKColor 
     identical with the one of the dataset. 
     The returned value is a pointer to a new allocated VDKColor. 
     Therefore, it will not reflect furthure changes in the 
     color of the index dataset.
     You can free memory associated with it using Destroy() method.

void SetColor(int index, VDKColor *color, bool redraw = true);
     Set the color of a dataset.
     Args:
     dataset index
     color new color for the dataset
     redraw constrols if we call or not a subsequent Redraw().
     Set to false if you don't want a redraw.

GtkDataboxValue GetValue(GtkDataboxCoord coord);
	Get data value.
	Args:
	coord screen coordinates of a point.
	data value associated with the coord.

void GetExtrema(GtkDataboxValue& min, GtkDataboxValue& max, 
				  bool visible = true);
        Get the extreme values.
	Args:
	min returns the minimum x and y values of the databox.
	max returns the maximum x and y values of the databox.
	visible if true, then \e min and \e max are computed 
	for the visible window; otherwise, they are
        computed for the whole databox.

void Rescale(GtkDataboxValue min, GtkDataboxValue max);
     Rescale the databox using given minimum and maximum values.
     Args:
     min the minimum x and y values.
     max the maximum x and y values.

void Rescale();
     Rescale the databox using the minimum and maximum 
     values from the datasets associated with the databox.


void Redraw();
     Redraw the databox. Use it after you change your datas.

gint RemoveData(gint index);
     Remove a single dataset.
     Args:
     index index of dataset to be removed.
     return 0 on success.

gint RemoveData();
      Remove all datasets. Return 0 on success.

gint DestroyData(gint index);
     Remove a single dataset and destroy data associated with it.
     Args:
     index index of dataset to be destroyed.
     return 0 on success.
     Note: this function destroys data associated using g_free().
     Do not use it, unless you have used g_new() to allocate 
     the memory for your data. 

gint DestroyData();
     Remove all datasets and destroy data associated with them.
     return 0 on success.

gint AddXY(guint length, gfloat *X, 
			 gfloat *Y, 
			 VDKColor *color, 
			 GtkDataboxDataType type = GTK_DATABOX_POINTS, 
			 guint dotSize = 0);
     Add a dataset.
     Both X and Y must be supplied. Also the number of points and a color
     to be used for ploting the dataset.
     Return index of the dataset added, on success, or -1, on error.
     Args:
     length number of points from the dataset.
     X pointer to x vector of data.
     Y pointer to y vector of data.
     color color for the ploting the dataset
     type type of points. 
     dotsize size of the dots used.


gint AddX (guint length, gfloat *X, 
			 guint indexSharedY, 
			 VDKColor *color, 
			 GtkDataboxDataType type = GTK_DATABOX_POINTS, 
			 guint dotSize = 0);
      Add a dataset.
      You must supply a X vector of data and an index to an existent Y vector.
      Also the number of points and a color to be used for ploting the dataset.
      If the number of points of X and shared Y vector are different, an error
      is generated.
      Returns index of the dataset added, on success, or -1, on error.
      Args:
      length number of points from the dataset.
      X pointer to x vector of data.
      indexSharedY index to a shared y vector of data.
      color color for the ploting the dataset
      type type of points.
      dotsize size of the dots used.

gint AddY (guint length, gfloat *Y, 
			 guint indexSharedX, 
			 VDKColor *color, 
			 GtkDataboxDataType type = GTK_DATABOX_POINTS, 
			 guint dotSize = 0);

      Add a dataset.
      You must supply a Y vector of data and an index to an existent X vector.
      Also the number of points and a color to be used for ploting the dataset.
      If the number of points of X and shared Y vector are different, an error
      is generated.
      return index of the dataset added, on success, or -1, on error.
      Args:
      length number of points from the dataset.
      Y pointer to y vector of data.
      indexSharedX index to a shared x vector of data.
      color color for the ploting the dataset
      type type of points. 
      dotsize size of the dots used.

PROPERTIES


BottomRight
Read the value of the bottom right corner of the window after a zoom.

Mark
Read the value of the marked (where you clicked down the mouse) point.


Select
Read the value of the selection.

TopLeft
Read the value of the top left corner of the window after a zoom.



