61 lines
1.6 KiB
C
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 */
|