-
Notifications
You must be signed in to change notification settings - Fork 83
/
Copy pathcinterface.h
148 lines (137 loc) · 4.3 KB
/
cinterface.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#ifndef LIB_CINTERFACE_H
#define LIB_CINTERFACE_H
#include <base/util/eventdispatcher.h>
#include <cstdint>
#include <typeinfo>
namespace Vizzu::Data
{
struct RowWrapper;
}
namespace APIHandles
{
using Any = const void *;
using Chart = const void *;
using Snapshot = const void *;
using Event = Util::EventDispatcher::Params *;
using Animation = const void *;
using Exception = const void *;
using Canvas = const void *;
}
extern "C" {
struct alignas(double) Point
{
double x;
double y;
};
struct alignas(double) Value
{
bool dimension;
union
{
double measureValue;
const char *dimensionValue;
};
};
extern APIHandles::Chart vizzu_createChart();
extern APIHandles::Canvas vizzu_createCanvas();
extern void vizzu_pointerDown(APIHandles::Chart chart,
APIHandles::Canvas canvas,
int pointerId,
double x,
double y);
extern void vizzu_pointerUp(APIHandles::Chart chart,
APIHandles::Canvas canvas,
int pointerId,
double x,
double y);
extern void vizzu_pointerMove(APIHandles::Chart chart,
APIHandles::Canvas canvas,
int pointerId,
double x,
double y);
extern void vizzu_pointerLeave(APIHandles::Chart chart,
APIHandles::Canvas canvas,
int pointerId);
extern void vizzu_wheel(APIHandles::Chart chart,
APIHandles::Canvas canvas,
double delta);
extern void vizzu_setLogging(bool enable);
extern void vizzu_update(APIHandles::Chart chart, double timeInMSecs);
extern void vizzu_render(APIHandles::Chart chart,
APIHandles::Canvas canvas,
double width,
double height);
extern void vizzu_setLineResolution(APIHandles::Canvas canvas,
double distanceMax,
double curveHeightMax);
extern const char *vizzu_errorMessage(
APIHandles::Exception exceptionPtr,
const std::type_info *typeinfo);
extern const char *vizzu_version();
extern void data_addDimension(APIHandles::Chart chart,
const char *name,
const char **categories,
std::uint32_t categoriesCount,
const std::uint32_t *categoryIndices,
std::uint32_t categoryIndicesCount,
bool isContiguous);
extern void data_addMeasure(APIHandles::Chart chart,
const char *name,
const char *unit,
const double *values,
std::uint32_t count);
extern void data_addRecord(APIHandles::Chart chart,
const char *const *cells,
std::uint32_t count);
const char *data_metaInfo(APIHandles::Chart chart);
extern const Value *record_getValue(
const Vizzu::Data::RowWrapper *record,
const char *column);
extern APIHandles::Snapshot chart_store(APIHandles::Chart chart);
extern void chart_restore(APIHandles::Chart chart,
APIHandles::Snapshot snapshot);
extern APIHandles::Animation chart_anim_store(
APIHandles::Chart chart);
extern void chart_anim_restore(APIHandles::Chart chart,
APIHandles::Animation anim);
extern void object_free(APIHandles::Any handle);
extern const char *style_getList();
extern void style_setValue(APIHandles::Chart chart,
const char *path,
const char *value);
extern const char *style_getValue(APIHandles::Chart chart,
const char *path,
bool computed);
const char *chart_getList();
const char *chart_getValue(APIHandles::Chart chart, const char *path);
extern void chart_setValue(APIHandles::Chart chart,
const char *path,
const char *value);
extern void chart_setFilter(APIHandles::Chart chart,
bool (*)(const Vizzu::Data::RowWrapper *),
void (*)(bool (*)(const Vizzu::Data::RowWrapper *)));
extern void chart_animate(APIHandles::Chart chart,
void (*callback)(bool));
extern const Point *chart_relToCanvasCoords(APIHandles::Chart chart,
double rx,
double ry);
extern const Point *
chart_canvasToRelCoords(APIHandles::Chart chart, double x, double y);
extern void chart_setKeyframe(APIHandles::Chart chart);
extern void addEventListener(APIHandles::Chart chart,
const char *name,
void (*callback)(APIHandles::Event event, const char *));
extern void removeEventListener(APIHandles::Chart chart,
const char *name,
void (*callback)(APIHandles::Event event, const char *));
extern void event_preventDefault(APIHandles::Event event);
extern void anim_control_setValue(APIHandles::Chart chart,
const char *path,
const char *value);
extern const char *anim_control_getValue(APIHandles::Chart chart,
const char *path);
extern void anim_setValue(APIHandles::Chart chart,
const char *path,
const char *value);
}
#endif