Fixes #134: float128type{vapi,h} file installation.
This commit is contained in:
parent
8832d6e6c8
commit
734f49eb29
|
@ -7,5 +7,12 @@ SET (LibExtraSources ${CMAKE_CURRENT_BINARY_DIR}/library_constructor.c)
|
||||||
SET (LC_RELATIVE_PREFIX "..")
|
SET (LC_RELATIVE_PREFIX "..")
|
||||||
CONFIGURE_FILE ( "${CMAKE_SOURCE_DIR}/cmake/backbone/templates/library_constructor.c.in" "${LibExtraSources}")
|
CONFIGURE_FILE ( "${CMAKE_SOURCE_DIR}/cmake/backbone/templates/library_constructor.c.in" "${LibExtraSources}")
|
||||||
INCLUDE_DIRECTORIES ("${CMAKE_SOURCE_DIR}/src")
|
INCLUDE_DIRECTORIES ("${CMAKE_SOURCE_DIR}/src")
|
||||||
SET (LibCustomVapis ${CMAKE_SOURCE_DIR}/src/float128type.vapi)
|
SET (LibCustomVapis ${CMAKE_SOURCE_DIR}/src/cairo-chart-float128type.vapi)
|
||||||
INCLUDE (ValaLibCommonRules)
|
INCLUDE (ValaLibCommonRules)
|
||||||
|
INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/cairo-chart-float128type.h DESTINATION include
|
||||||
|
RENAME cairo-chart-float128type-${MAJOR}.h)
|
||||||
|
INSTALL (FILES ${CMAKE_CURRENT_SOURCE_DIR}/cairo-chart-float128type.vapi DESTINATION share/vala/vapi
|
||||||
|
RENAME cairo-chart-float128type-${MAJOR}.vapi)
|
||||||
|
CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/cairo-chart.deps.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/cairo-chart-${MAJOR}.deps)
|
||||||
|
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/cairo-chart-${MAJOR}.deps DESTINATION share/vala/vapi)
|
||||||
|
|
|
@ -43,8 +43,8 @@ namespace Gtk.CairoChart {
|
||||||
bg_color = Color (1, 1, 1);
|
bg_color = Color (1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Double128 cur_x_min = 0.0;
|
protected Float128 cur_x_min = 0.0;
|
||||||
protected Double128 cur_x_max = 0.0;
|
protected Float128 cur_x_max = 0.0;
|
||||||
protected double cur_y_min = 0.0;
|
protected double cur_y_min = 0.0;
|
||||||
protected double cur_y_max = 0.0;
|
protected double cur_y_max = 0.0;
|
||||||
|
|
||||||
|
@ -402,10 +402,10 @@ namespace Gtk.CairoChart {
|
||||||
protected virtual void calc_axis_rec_sizes (Series.Axis axis, out double max_rec_width, out double max_rec_height, bool is_horizontal = true) {
|
protected virtual void calc_axis_rec_sizes (Series.Axis axis, out double max_rec_width, out double max_rec_height, bool is_horizontal = true) {
|
||||||
max_rec_width = max_rec_height = 0;
|
max_rec_width = max_rec_height = 0;
|
||||||
for (var i = 0; i < axis_rec_npoints; ++i) {
|
for (var i = 0; i < axis_rec_npoints; ++i) {
|
||||||
Double128 x = axis.min + (axis.max - axis.min) / axis_rec_npoints * i;
|
Float128 x = axis.min + (axis.max - axis.min) / axis_rec_npoints * i;
|
||||||
switch (axis.type) {
|
switch (axis.type) {
|
||||||
case Series.Axis.Type.NUMBERS:
|
case Series.Axis.Type.NUMBERS:
|
||||||
var text = new Text (axis.format.printf(x) + (is_horizontal ? "_" : ""));
|
var text = new Text (axis.format.printf((LongDouble)x) + (is_horizontal ? "_" : ""));
|
||||||
text.style = axis.font_style;
|
text.style = axis.font_style;
|
||||||
max_rec_width = double.max (max_rec_width, text.get_width(context));
|
max_rec_width = double.max (max_rec_width, text.get_width(context));
|
||||||
max_rec_height = double.max (max_rec_height, text.get_height(context));
|
max_rec_height = double.max (max_rec_height, text.get_height(context));
|
||||||
|
@ -435,8 +435,8 @@ namespace Gtk.CairoChart {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual Double128 calc_round_step (Double128 aver_step, bool date_time = false) {
|
protected virtual Float128 calc_round_step (Float128 aver_step, bool date_time = false) {
|
||||||
Double128 step = 1.0;
|
Float128 step = 1.0;
|
||||||
|
|
||||||
if (aver_step > 1.0) {
|
if (aver_step > 1.0) {
|
||||||
if (date_time) while (step < aver_step) step *= 60;
|
if (date_time) while (step < aver_step) step *= 60;
|
||||||
|
@ -463,7 +463,7 @@ namespace Gtk.CairoChart {
|
||||||
bool common_x_axes = false;
|
bool common_x_axes = false;
|
||||||
bool common_y_axes = false;
|
bool common_y_axes = false;
|
||||||
|
|
||||||
bool are_intersect (Double128 a_min, Double128 a_max, Double128 b_min, Double128 b_max) {
|
bool are_intersect (Float128 a_min, Float128 a_max, Float128 b_min, Float128 b_max) {
|
||||||
if ( a_min < a_max <= b_min < b_max
|
if ( a_min < a_max <= b_min < b_max
|
||||||
|| b_min < b_max <= a_min < a_max)
|
|| b_min < b_max <= a_min < a_max)
|
||||||
return false;
|
return false;
|
||||||
|
@ -594,8 +594,8 @@ namespace Gtk.CairoChart {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool point_belong (Double128 p, Double128 a, Double128 b) {
|
bool point_belong (Float128 p, Float128 a, Float128 b) {
|
||||||
if (a > b) { Double128 tmp = a; a = b; b = tmp; }
|
if (a > b) { Float128 tmp = a; a = b; b = tmp; }
|
||||||
if (a <= p <= b) return true;
|
if (a <= p <= b) return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -612,12 +612,12 @@ namespace Gtk.CairoChart {
|
||||||
long max_nrecs = (long) ((plot_area_x_max - plot_area_x_min) * (s.place.x_high - s.place.x_low) / max_rec_width);
|
long max_nrecs = (long) ((plot_area_x_max - plot_area_x_min) * (s.place.x_high - s.place.x_low) / max_rec_width);
|
||||||
|
|
||||||
// 3. Calculate grid step.
|
// 3. Calculate grid step.
|
||||||
Double128 step = calc_round_step ((s.axis_x.max - s.axis_x.min) / max_nrecs, s.axis_x.type == Series.Axis.Type.DATE_TIME);
|
Float128 step = calc_round_step ((s.axis_x.max - s.axis_x.min) / max_nrecs, s.axis_x.type == Series.Axis.Type.DATE_TIME);
|
||||||
if (step > s.axis_x.max - s.axis_x.min)
|
if (step > s.axis_x.max - s.axis_x.min)
|
||||||
step = s.axis_x.max - s.axis_x.min;
|
step = s.axis_x.max - s.axis_x.min;
|
||||||
|
|
||||||
// 4. Calculate x_min (s.axis_x.min / step, round, multiply on step, add step if < s.axis_x.min).
|
// 4. Calculate x_min (s.axis_x.min / step, round, multiply on step, add step if < s.axis_x.min).
|
||||||
Double128 x_min = 0.0;
|
Float128 x_min = 0.0;
|
||||||
if (step >= 1) {
|
if (step >= 1) {
|
||||||
int64 x_min_nsteps = (int64) (s.axis_x.min / step);
|
int64 x_min_nsteps = (int64) (s.axis_x.min / step);
|
||||||
x_min = x_min_nsteps * step;
|
x_min = x_min_nsteps * step;
|
||||||
|
@ -652,18 +652,19 @@ namespace Gtk.CairoChart {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. Draw records, update cur_{x,y}_{min,max}.
|
// 5. Draw records, update cur_{x,y}_{min,max}.
|
||||||
for (Double128 x = x_min, x_max = s.axis_x.max; point_belong (x, x_min, x_max); x += step) {
|
for (Float128 x = x_min, x_max = s.axis_x.max; point_belong (x, x_min, x_max); x += step) {
|
||||||
if (common_x_axes) set_source_rgba(Color(0,0,0,1));
|
if (common_x_axes) set_source_rgba(Color(0,0,0,1));
|
||||||
else set_source_rgba(s.axis_x.color);
|
else set_source_rgba(s.axis_x.color);
|
||||||
string text = "", time_text = "";
|
string text = "", time_text = "";
|
||||||
switch (s.axis_x.type) {
|
switch (s.axis_x.type) {
|
||||||
case Series.Axis.Type.NUMBERS:
|
case Series.Axis.Type.NUMBERS:
|
||||||
text = s.axis_x.format.printf(x);
|
text = s.axis_x.format.printf((LongDouble)x);
|
||||||
break;
|
break;
|
||||||
case Series.Axis.Type.DATE_TIME:
|
case Series.Axis.Type.DATE_TIME:
|
||||||
var dt = new DateTime.from_unix_utc((int64)x);
|
var dt = new DateTime.from_unix_utc((int64)x);
|
||||||
text = dt.format(s.axis_x.date_format);
|
text = dt.format(s.axis_x.date_format);
|
||||||
var dsec_str = ("%."+(s.axis_x.dsec_signs.to_string())+"Lf").printf((x - (int64)x)).offset(1);
|
var dsec_str =
|
||||||
|
("%."+(s.axis_x.dsec_signs.to_string())+"Lf").printf((LongDouble)(x - (int64)x)).offset(1);
|
||||||
time_text = dt.format(s.axis_x.time_format) + dsec_str;
|
time_text = dt.format(s.axis_x.time_format) + dsec_str;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -799,12 +800,12 @@ namespace Gtk.CairoChart {
|
||||||
long max_nrecs = (long) ((plot_area_y_max - plot_area_y_min) * (s.place.y_high - s.place.y_low) / max_rec_height);
|
long max_nrecs = (long) ((plot_area_y_max - plot_area_y_min) * (s.place.y_high - s.place.y_low) / max_rec_height);
|
||||||
|
|
||||||
// 3. Calculate grid step.
|
// 3. Calculate grid step.
|
||||||
Double128 step = calc_round_step ((s.axis_y.max - s.axis_y.min) / max_nrecs);
|
Float128 step = calc_round_step ((s.axis_y.max - s.axis_y.min) / max_nrecs);
|
||||||
if (step > s.axis_y.max - s.axis_y.min)
|
if (step > s.axis_y.max - s.axis_y.min)
|
||||||
step = s.axis_y.max - s.axis_y.min;
|
step = s.axis_y.max - s.axis_y.min;
|
||||||
|
|
||||||
// 4. Calculate y_min (s.axis_y.min / step, round, multiply on step, add step if < s.axis_y.min).
|
// 4. Calculate y_min (s.axis_y.min / step, round, multiply on step, add step if < s.axis_y.min).
|
||||||
Double128 y_min = 0.0;
|
Float128 y_min = 0.0;
|
||||||
if (step >= 1) {
|
if (step >= 1) {
|
||||||
int64 y_min_nsteps = (int64) (s.axis_y.min / step);
|
int64 y_min_nsteps = (int64) (s.axis_y.min / step);
|
||||||
y_min = y_min_nsteps * step;
|
y_min = y_min_nsteps * step;
|
||||||
|
@ -839,10 +840,10 @@ namespace Gtk.CairoChart {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. Draw records, update cur_{x,y}_{min,max}.
|
// 5. Draw records, update cur_{x,y}_{min,max}.
|
||||||
for (Double128 y = y_min, y_max = s.axis_y.max; point_belong (y, y_min, y_max); y += step) {
|
for (Float128 y = y_min, y_max = s.axis_y.max; point_belong (y, y_min, y_max); y += step) {
|
||||||
if (common_y_axes) set_source_rgba(Color(0,0,0,1));
|
if (common_y_axes) set_source_rgba(Color(0,0,0,1));
|
||||||
else set_source_rgba(s.axis_y.color);
|
else set_source_rgba(s.axis_y.color);
|
||||||
var text = s.axis_y.format.printf(y);
|
var text = s.axis_y.format.printf((LongDouble)y);
|
||||||
var scr_y = plot_area_y_max - (plot_area_y_max - plot_area_y_min)
|
var scr_y = plot_area_y_max - (plot_area_y_max - plot_area_y_min)
|
||||||
* (s.place.y_low + (s.place.y_high - s.place.y_low) / (s.axis_y.max - s.axis_y.min) * (y - s.axis_y.min));
|
* (s.place.y_low + (s.place.y_high - s.place.y_low) / (s.axis_y.max - s.axis_y.min) * (y - s.axis_y.min));
|
||||||
var text_t = new Text(text, s.axis_y.font_style, s.axis_y.color);
|
var text_t = new Text(text, s.axis_y.font_style, s.axis_y.color);
|
||||||
|
@ -936,12 +937,12 @@ namespace Gtk.CairoChart {
|
||||||
context.stroke ();
|
context.stroke ();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual double get_scr_x (Series s, Double128 x) {
|
protected virtual double get_scr_x (Series s, Float128 x) {
|
||||||
return plot_area_x_min + (plot_area_x_max - plot_area_x_min) * (s.place.x_low + (x - s.axis_x.min)
|
return plot_area_x_min + (plot_area_x_max - plot_area_x_min) * (s.place.x_low + (x - s.axis_x.min)
|
||||||
/ (s.axis_x.max - s.axis_x.min) * (s.place.x_high - s.place.x_low));
|
/ (s.axis_x.max - s.axis_x.min) * (s.place.x_high - s.place.x_low));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual double get_scr_y (Series s, Double128 y) {
|
protected virtual double get_scr_y (Series s, Float128 y) {
|
||||||
return plot_area_y_max - (plot_area_y_max - plot_area_y_min) * (s.place.y_low + (y - s.axis_y.min)
|
return plot_area_y_max - (plot_area_y_max - plot_area_y_min) * (s.place.y_low + (y - s.axis_y.min)
|
||||||
/ (s.axis_y.max - s.axis_y.min) * (s.place.y_high - s.place.y_low));
|
/ (s.axis_y.max - s.axis_y.min) * (s.place.y_high - s.place.y_low));
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,10 +5,10 @@ namespace Gtk.CairoChart {
|
||||||
public class Series {
|
public class Series {
|
||||||
|
|
||||||
public struct Point {
|
public struct Point {
|
||||||
Double128 x;
|
Float128 x;
|
||||||
Double128 y;
|
Float128 y;
|
||||||
|
|
||||||
public Point (Double128 x, Double128 y) {
|
public Point (Float128 x, Float128 y) {
|
||||||
this.x = x; this.y = y;
|
this.x = x; this.y = y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,8 @@ namespace Gtk.CairoChart {
|
||||||
// then draw separate axis for each/all series
|
// then draw separate axis for each/all series
|
||||||
// or specify series name near the axis
|
// or specify series name near the axis
|
||||||
public class Axis {
|
public class Axis {
|
||||||
public Double128 min = 0;
|
public Float128 min = 0;
|
||||||
public Double128 max = 1;
|
public Float128 max = 1;
|
||||||
public Text title = new Text ("");
|
public Text title = new Text ("");
|
||||||
public enum Type {
|
public enum Type {
|
||||||
NUMBERS = 0,
|
NUMBERS = 0,
|
||||||
|
@ -137,7 +137,7 @@ namespace Gtk.CairoChart {
|
||||||
|
|
||||||
public Grid grid = new Grid ();
|
public Grid grid = new Grid ();
|
||||||
|
|
||||||
public GLib.List<Double128?> cursors = new List<Double128?> ();
|
public GLib.List<Float128?> cursors = new List<Float128?> ();
|
||||||
public LineStyle line_style = new LineStyle ();
|
public LineStyle line_style = new LineStyle ();
|
||||||
|
|
||||||
protected Color _color = Color (0.0, 0.0, 0.0, 1.0);
|
protected Color _color = Color (0.0, 0.0, 0.0, 1.0);
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
typedef __float128 cairo_chart_float128;
|
||||||
|
typedef long double cairo_chart_long_double;
|
|
@ -0,0 +1,6 @@
|
||||||
|
namespace Gtk.CairoChart {
|
||||||
|
[CCode (cname = "cairo_chart_float128", has_type_id = false, cheader_filename = "cairo-chart-float128type.h")]
|
||||||
|
public struct Float128 : double {}
|
||||||
|
[CCode (cname = "cairo_chart_long_double", has_type_id = false, cheader_filename = "cairo-chart-float128type.h")]
|
||||||
|
public struct LongDouble : double {}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
cairo-chart-float128type-@MAJOR@
|
|
@ -1 +0,0 @@
|
||||||
typedef long double double128;
|
|
|
@ -1,2 +0,0 @@
|
||||||
[CCode (cname = "double128", has_type_id = false, cheader_filename = "float128type.h")]
|
|
||||||
public struct Double128 : double {}
|
|
|
@ -1,7 +1,7 @@
|
||||||
SET (BinName chart_test)
|
SET (BinName chart_test)
|
||||||
FILE (GLOB_RECURSE BinSources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ChartTest.vala)
|
FILE (GLOB_RECURSE BinSources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ChartTest.vala)
|
||||||
SET (BinPackages gtk+-3.0)
|
SET (BinPackages gtk+-3.0)
|
||||||
SET (BinCustomVapis ${CMAKE_BINARY_DIR}/src/${PROJECT_LOWERCASE_NAME}-${MAJOR}.vapi ${CMAKE_SOURCE_DIR}/src/float128type.vapi)
|
SET (BinCustomVapis ${CMAKE_BINARY_DIR}/src/${PROJECT_LOWERCASE_NAME}-${MAJOR}.vapi ${CMAKE_SOURCE_DIR}/src/cairo-chart-float128type.vapi)
|
||||||
SET (BinLinkLibs ${PROJECT_LOWERCASE_NAME})
|
SET (BinLinkLibs ${PROJECT_LOWERCASE_NAME})
|
||||||
INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}/src;${CMAKE_SOURCE_DIR}/src")
|
INCLUDE_DIRECTORIES ("${CMAKE_BINARY_DIR}/src;${CMAKE_SOURCE_DIR}/src")
|
||||||
INCLUDE (ValaBinCommonRules)
|
INCLUDE (ValaBinCommonRules)
|
||||||
|
|
|
@ -379,7 +379,6 @@ int main (string[] args) {
|
||||||
|
|
||||||
window.show_all();
|
window.show_all();
|
||||||
|
|
||||||
Double128 d = 5.5;
|
|
||||||
Gtk.main();
|
Gtk.main();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue