#ifndef _GTCACA_SCATTER_H_
#define _GTCACA_SCATTER_H_
#include <stdint.h>
#include <gtcaca/main.h>
#include <gtcaca/widget.h>
typedef struct _gtcaca_scatter_widget_t gtcaca_scatter_widget_t;
struct _gtcaca_scatter_widget_t {
gtcaca_widget_type_t type;
unsigned int id;
int has_focus;
int is_visible;
int x;
int y;
int width;
int height;
uint8_t color_focus_fg;
uint8_t color_focus_bg;
uint8_t color_nonfocus_fg;
uint8_t color_nonfocus_bg;
gtcaca_widget_t *parent;
gtcaca_widget_t *children;
struct _gtcaca_scatter_widget_t *prev;
struct _gtcaca_scatter_widget_t *next;
double *xs;
double *ys;
uint8_t *cols;
int n;
int cap;
double xmin, xmax, ymin, ymax;
int autoscale;
uint32_t glyph;
char *title;
};
gtcaca_scatter_widget_t *gtcaca_scatter_new(gtcaca_widget_t *parent, int x, int y, int width, int height);
void gtcaca_scatter_draw(gtcaca_scatter_widget_t *s);
void gtcaca_scatter_add_point(gtcaca_scatter_widget_t *s, double x, double y, uint8_t colour);
void gtcaca_scatter_add_series(gtcaca_scatter_widget_t *s, const double *xs, const double *ys, int n, uint8_t colour);
void gtcaca_scatter_set_data(gtcaca_scatter_widget_t *s, const double *xs, const double *ys, int n, uint8_t colour);
void gtcaca_scatter_clear(gtcaca_scatter_widget_t *s);
void gtcaca_scatter_set_bounds(gtcaca_scatter_widget_t *s, double xmin, double xmax, double ymin, double ymax);
void gtcaca_scatter_set_autoscale(gtcaca_scatter_widget_t *s, int on);
void gtcaca_scatter_set_glyph(gtcaca_scatter_widget_t *s, uint32_t glyph);
void gtcaca_scatter_set_title(gtcaca_scatter_widget_t *s, const char *title);
void gtcaca_scatter_free(gtcaca_scatter_widget_t *s);
#endif