first commit
[wnstats.git] / public / javascripts / jqplot / plugins / jqplot.canvasAxisTickRenderer.min.js
blob54d028d174ca6dae27cd1a5ff1292a042e0b69f5
1 /**
2  * jqPlot
3  * Pure JavaScript plotting plugin using jQuery
4  *
5  * Version: 1.0.4r1121
6  *
7  * Copyright (c) 2009-2011 Chris Leonello
8  * jqPlot is currently available for use in all personal or commercial projects 
9  * under both the MIT (http://www.opensource.org/licenses/mit-license.php) and GPL 
10  * version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html) licenses. This means that you can 
11  * choose the license that best suits your project and use it accordingly. 
12  *
13  * Although not required, the author would appreciate an email letting him 
14  * know of any substantial use of jqPlot.  You can reach the author at: 
15  * chris at jqplot dot com or see http://www.jqplot.com/info.php .
16  *
17  * If you are feeling kind and generous, consider supporting the project by
18  * making a donation at: http://www.jqplot.com/donate.php .
19  *
20  * sprintf functions contained in jqplot.sprintf.js by Ash Searle:
21  *
22  *     version 2007.04.27
23  *     author Ash Searle
24  *     http://hexmen.com/blog/2007/03/printf-sprintf/
25  *     http://hexmen.com/js/sprintf.js
26  *     The author (Ash Searle) has placed this code in the public domain:
27  *     "This code is unrestricted: you are free to use it however you like."
28  *
29  * included jsDate library by Chris Leonello:
30  *
31  * Copyright (c) 2010-2011 Chris Leonello
32  *
33  * jsDate is currently available for use in all personal or commercial projects 
34  * under both the MIT and GPL version 2.0 licenses. This means that you can 
35  * choose the license that best suits your project and use it accordingly.
36  *
37  * jsDate borrows many concepts and ideas from the Date Instance 
38  * Methods by Ken Snyder along with some parts of Ken's actual code.
39  * 
40  * Ken's origianl Date Instance Methods and copyright notice:
41  * 
42  * Ken Snyder (ken d snyder at gmail dot com)
43  * 2008-09-10
44  * version 2.0.2 (http://kendsnyder.com/sandbox/date/)     
45  * Creative Commons Attribution License 3.0 (http://creativecommons.org/licenses/by/3.0/)
46  *
47  * jqplotToImage function based on Larry Siden's export-jqplot-to-png.js.
48  * Larry has generously given permission to adapt his code for inclusion
49  * into jqPlot.
50  *
51  * Larry's original code can be found here:
52  *
53  * https://github.com/lsiden/export-jqplot-to-png
54  * 
55  * 
56  */
57 (function(a){a.jqplot.CanvasAxisTickRenderer=function(b){this.mark="outside";this.showMark=true;this.showGridline=true;this.isMinorTick=false;this.angle=0;this.markSize=4;this.show=true;this.showLabel=true;this.labelPosition="auto";this.label="";this.value=null;this._styles={};this.formatter=a.jqplot.DefaultTickFormatter;this.formatString="";this.prefix="";this.fontFamily='"Trebuchet MS", Arial, Helvetica, sans-serif';this.fontSize="10pt";this.fontWeight="normal";this.fontStretch=1;this.textColor="#666666";this.enableFontSupport=true;this.pt2px=null;this._elem;this._ctx;this._plotWidth;this._plotHeight;this._plotDimensions={height:null,width:null};a.extend(true,this,b);var c={fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily};if(this.pt2px){c.pt2px=this.pt2px}if(this.enableFontSupport){if(a.jqplot.support_canvas_text()){this._textRenderer=new a.jqplot.CanvasFontRenderer(c)}else{this._textRenderer=new a.jqplot.CanvasTextRenderer(c)}}else{this._textRenderer=new a.jqplot.CanvasTextRenderer(c)}};a.jqplot.CanvasAxisTickRenderer.prototype.init=function(b){a.extend(true,this,b);this._textRenderer.init({fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily})};a.jqplot.CanvasAxisTickRenderer.prototype.getWidth=function(d){if(this._elem){return this._elem.outerWidth(true)}else{var f=this._textRenderer;var c=f.getWidth(d);var e=f.getHeight(d);var b=Math.abs(Math.sin(f.angle)*e)+Math.abs(Math.cos(f.angle)*c);return b}};a.jqplot.CanvasAxisTickRenderer.prototype.getHeight=function(d){if(this._elem){return this._elem.outerHeight(true)}else{var f=this._textRenderer;var c=f.getWidth(d);var e=f.getHeight(d);var b=Math.abs(Math.cos(f.angle)*e)+Math.abs(Math.sin(f.angle)*c);return b}};a.jqplot.CanvasAxisTickRenderer.prototype.getAngleRad=function(){var b=this.angle*Math.PI/180;return b};a.jqplot.CanvasAxisTickRenderer.prototype.setTick=function(b,d,c){this.value=b;if(c){this.isMinorTick=true}return this};a.jqplot.CanvasAxisTickRenderer.prototype.draw=function(c,f){if(!this.label){this.label=this.prefix+this.formatter(this.formatString,this.value)}if(this._elem){if(a.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==undefined){window.G_vmlCanvasManager.uninitElement(this._elem.get(0))}this._elem.emptyForce();this._elem=null}var e=f.canvasManager.getCanvas();this._textRenderer.setText(this.label,c);var b=this.getWidth(c);var d=this.getHeight(c);e.width=b;e.height=d;e.style.width=b;e.style.height=d;e.style.textAlign="left";e.style.position="absolute";e=f.canvasManager.initCanvas(e);this._elem=a(e);this._elem.css(this._styles);this._elem.addClass("jqplot-"+this.axis+"-tick");e=null;return this._elem};a.jqplot.CanvasAxisTickRenderer.prototype.pack=function(){this._textRenderer.draw(this._elem.get(0).getContext("2d"),this.label)}})(jQuery);