mirror of
https://github.com/supanadit/todo.git
synced 2024-11-26 20:36:21 +00:00
56 lines
2.0 KiB
JavaScript
56 lines
2.0 KiB
JavaScript
|
// Provide a cross-browser interface to a few simple drawing primitives
|
||
|
$.fn.simpledraw = function (width, height, useExisting, interact) {
|
||
|
var target, mhandler;
|
||
|
if (useExisting && (target = this.data('_jqs_vcanvas'))) {
|
||
|
return target;
|
||
|
}
|
||
|
|
||
|
if ($.fn.sparkline.canvas === false) {
|
||
|
// We've already determined that neither Canvas nor VML are available
|
||
|
return false;
|
||
|
|
||
|
} else if ($.fn.sparkline.canvas === undefined) {
|
||
|
// No function defined yet -- need to see if we support Canvas or VML
|
||
|
var el = document.createElement('canvas');
|
||
|
if (!!(el.getContext && el.getContext('2d'))) {
|
||
|
// Canvas is available
|
||
|
$.fn.sparkline.canvas = function(width, height, target, interact) {
|
||
|
return new VCanvas_canvas(width, height, target, interact);
|
||
|
};
|
||
|
} else if (document.namespaces && !document.namespaces.v) {
|
||
|
// VML is available
|
||
|
document.namespaces.add('v', 'urn:schemas-microsoft-com:vml', '#default#VML');
|
||
|
$.fn.sparkline.canvas = function(width, height, target, interact) {
|
||
|
return new VCanvas_vml(width, height, target);
|
||
|
};
|
||
|
} else {
|
||
|
// Neither Canvas nor VML are available
|
||
|
$.fn.sparkline.canvas = false;
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (width === undefined) {
|
||
|
width = $(this).innerWidth();
|
||
|
}
|
||
|
if (height === undefined) {
|
||
|
height = $(this).innerHeight();
|
||
|
}
|
||
|
|
||
|
target = $.fn.sparkline.canvas(width, height, this, interact);
|
||
|
|
||
|
mhandler = $(this).data('_jqs_mhandler');
|
||
|
if (mhandler) {
|
||
|
mhandler.registerCanvas(target);
|
||
|
}
|
||
|
return target;
|
||
|
};
|
||
|
|
||
|
$.fn.cleardraw = function () {
|
||
|
var target = this.data('_jqs_vcanvas');
|
||
|
if (target) {
|
||
|
target.reset();
|
||
|
}
|
||
|
};
|
||
|
|