hexagram/include/hexagram/dial.h

73 lines
2.1 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);
double hexagram_dial_angle(hexagram_dial *dial, double value);
int hexagram_dial_draw_legend(hexagram_dial *dial,
cairo_t *cr,
double radius,
double value,
char *text);
int hexagram_dial_draw_legend_offset(hexagram_dial *dial,
cairo_t *cr,
double radius,
double value,
char *text,
double x_offset,
double y_offset);
int hexagram_dial_draw_mark(hexagram_dial *dial,
cairo_t *cr,
double min_radius,
double max_radius,
double value);
int hexagram_dial_draw_needle(hexagram_dial *dial,
cairo_t *cr,
double min_radius,
double max_radius,
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 */