hexagram/include/hexagram/dial.h
2024-01-18 13:55:11 -05:00

61 lines
1.6 KiB
C

#ifndef _HEXAGRAM_DIAL_H
#define _HEXAGRAM_DIAL_H
#include <hexagram/gauge.h>
typedef enum {
HEXAGRAM_DIAL_MAIN,
HEXAGRAM_DIAL_BOTTOM
} hexagram_dial_type;
typedef struct _hexagram_dial {
hexagram_gauge gauge;
hexagram_dial_type type;
double radius,
min_angle,
max_angle,
min_value,
max_value;
double needle_min_radius,
needle_max_radius;
double mark_min_radius,
mark_max_radius;
double value;
cairo_pattern_t *gradient;
} hexagram_dial;
int hexagram_dial_init(hexagram_dial *dial,
hexagram_dial_type type,
double x,
double y,
double radius,
double min_angle,
double max_angle,
double min_value,
double max_value);
void hexagram_dial_resize(hexagram_dial *dial, double radius);
double hexagram_dial_angle(hexagram_dial *dial, double value);
int hexagram_dial_draw_legend(hexagram_dial *dial,
cairo_t *cr,
double value,
char *text);
int hexagram_dial_draw_mark(hexagram_dial *dial,
cairo_t *cr,
double value,
int large);
int hexagram_dial_draw_needle(hexagram_dial *dial, cairo_t *cr, double value);
int hexagram_dial_draw_bg(hexagram_dial *dial, cairo_t *cr);
int hexagram_dial_draw_fg(hexagram_dial *dial, cairo_t *cr);
#endif /* _HEXAGRAM_DIAL_H */