#ifndef _GTCACA_SPARKLINE_H_
#define _GTCACA_SPARKLINE_H_
#include <stdint.h>
#include <gtcaca/main.h>
#include <gtcaca/widget.h>
typedef enum {
GTCACA_SPARKLINE_BLOCKS = 0,
GTCACA_SPARKLINE_AREA
} gtcaca_sparkline_style_t;
typedef struct _gtcaca_sparkline_widget_t gtcaca_sparkline_widget_t;
struct _gtcaca_sparkline_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_sparkline_widget_t *prev;
struct _gtcaca_sparkline_widget_t *next;
float *data;
int n;
int cap;
float maxval;
uint8_t colour;
char *title;
int style;
};
gtcaca_sparkline_widget_t *gtcaca_sparkline_new(gtcaca_widget_t *parent, int x, int y, int width, int height);
void gtcaca_sparkline_draw(gtcaca_sparkline_widget_t *s);
void gtcaca_sparkline_set_data(gtcaca_sparkline_widget_t *s, const float *values, int n);
void gtcaca_sparkline_push(gtcaca_sparkline_widget_t *s, float value);
void gtcaca_sparkline_set_max(gtcaca_sparkline_widget_t *s, float maxval);
void gtcaca_sparkline_set_color(gtcaca_sparkline_widget_t *s, uint8_t colour);
void gtcaca_sparkline_set_style(gtcaca_sparkline_widget_t *s, int style);
void gtcaca_sparkline_set_style_auto(gtcaca_sparkline_widget_t *s);
void gtcaca_sparkline_set_title(gtcaca_sparkline_widget_t *s, const char *title);
void gtcaca_sparkline_free(gtcaca_sparkline_widget_t *s);
#endif