In progress...

This commit is contained in:
Kolan Sh 2018-01-16 19:51:31 +03:00
parent 374b07e049
commit 8fd012dce5
1 changed files with 21 additions and 32 deletions

View File

@ -95,7 +95,11 @@ namespace CairoChart {
} }
public virtual void clear () { public virtual void clear () {
draw_background (); if (context != null) {
set_source_rgba (bg_color);
context.paint();
set_source_rgba (Color (0, 0, 0, 1));
}
} }
public virtual bool draw () { public virtual bool draw () {
@ -139,14 +143,6 @@ namespace CairoChart {
context.set_source_rgba (color.red, color.green, color.blue, color.alpha); context.set_source_rgba (color.red, color.green, color.blue, color.alpha);
} }
protected virtual void draw_background () {
if (context != null) {
set_source_rgba (bg_color);
context.paint();
set_source_rgba (Color (0, 0, 0, 1));
}
}
public virtual void zoom_in (Cairo.Rectangle rect) { public virtual void zoom_in (Cairo.Rectangle rect) {
var x1 = rect.x + rect.width; var x1 = rect.x + rect.width;
var y1 = rect.y + rect.height; var y1 = rect.y + rect.height;
@ -364,24 +360,6 @@ namespace CairoChart {
context.stroke (); context.stroke ();
} }
protected virtual bool x_in_plot_area (double x) {
if (math.x_in_range(x, plot_x_min, plot_x_max))
return true;
return false;
}
protected virtual bool y_in_plot_area (double y) {
if (math.y_in_range(y, plot_y_min, plot_y_max))
return true;
return false;
}
public virtual bool point_in_plot_area (Point p) {
if (math.point_in_rect (p, plot_x_min, plot_x_max, plot_y_min, plot_y_max))
return true;
return false;
}
protected virtual void draw_series () { protected virtual void draw_series () {
for (var si = 0; si < series.length; ++si) { for (var si = 0; si < series.length; ++si) {
var s = series[si]; var s = series[si];
@ -394,12 +372,10 @@ namespace CairoChart {
cursors.active_cursor = scr2rel_point(p); cursors.active_cursor = scr2rel_point(p);
cursors.is_cursor_active = ! remove; cursors.is_cursor_active = ! remove;
} }
public virtual void add_active_cursor () { public virtual void add_active_cursor () {
cursors.list.append (cursors.active_cursor); cursors.list.append (cursors.active_cursor);
cursors.is_cursor_active = false; cursors.is_cursor_active = false;
} }
public virtual void remove_active_cursor () { public virtual void remove_active_cursor () {
if (cursors.list.length() == 0) return; if (cursors.list.length() == 0) return;
var distance = width * width; var distance = width * width;
@ -426,6 +402,22 @@ namespace CairoChart {
cursors.is_cursor_active = false; cursors.is_cursor_active = false;
} }
protected virtual bool x_in_plot_area (double x) {
if (math.x_in_range(x, plot_x_min, plot_x_max))
return true;
return false;
}
protected virtual bool y_in_plot_area (double y) {
if (math.y_in_range(y, plot_y_min, plot_y_max))
return true;
return false;
}
public virtual bool point_in_plot_area (Point p) {
if (math.point_in_rect (p, plot_x_min, plot_x_max, plot_y_min, plot_y_max))
return true;
return false;
}
protected virtual Float128 scr2rel_x (Float128 x) { protected virtual Float128 scr2rel_x (Float128 x) {
return rz_x_min + (x - plot_x_min) / (plot_x_max - plot_x_min) * (rz_x_max - rz_x_min); return rz_x_min + (x - plot_x_min) / (plot_x_max - plot_x_min) * (rz_x_max - rz_x_min);
} }
@ -435,15 +427,12 @@ namespace CairoChart {
protected virtual Point scr2rel_point (Point p) { protected virtual Point scr2rel_point (Point p) {
return Point (scr2rel_x(p.x), scr2rel_y(p.y)); return Point (scr2rel_x(p.x), scr2rel_y(p.y));
} }
public virtual Float128 rel2scr_x(Float128 x) { public virtual Float128 rel2scr_x(Float128 x) {
return plot_x_min + (plot_x_max - plot_x_min) * (x - rz_x_min) / (rz_x_max - rz_x_min); return plot_x_min + (plot_x_max - plot_x_min) * (x - rz_x_min) / (rz_x_max - rz_x_min);
} }
public virtual Float128 rel2scr_y(Float128 y) { public virtual Float128 rel2scr_y(Float128 y) {
return plot_y_min + (plot_y_max - plot_y_min) * (y - rz_y_min) / (rz_y_max - rz_y_min); return plot_y_min + (plot_y_max - plot_y_min) * (y - rz_y_min) / (rz_y_max - rz_y_min);
} }
public virtual Point128 rel2scr_point (Point128 p) { public virtual Point128 rel2scr_point (Point128 p) {
return Point128 (rel2scr_x(p.x), rel2scr_y(p.y)); return Point128 (rel2scr_x(p.x), rel2scr_y(p.y));
} }