From 738eabcd49a3a66ad750833da5c0348137447c13 Mon Sep 17 00:00:00 2001
From: Philippe Masset
Date: Tue, 9 Apr 2013 16:05:55 +0200
Subject: [PATCH 01/59] Prevent errors in browsers that don't support canvases.
Added feature detection to prevent the plugin from executing if the
browser doesn't support canvases.
Added the `error` hook, triggered if the browser doesn't support
canvases.
---
js/jquery.knob.js | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/js/jquery.knob.js b/js/jquery.knob.js
index 32caa3d..ef3ab5f 100644
--- a/js/jquery.knob.js
+++ b/js/jquery.knob.js
@@ -106,7 +106,8 @@
draw : null, // function () {}
change : null, // function (value) {}
cancel : null, // function () {}
- release : null // function (value) {}
+ release : null, // function (value) {}
+ error : null // function () {}
}, this.o
);
@@ -151,7 +152,13 @@
this.$c = $(' ');
- this.c = this.$c[0].getContext("2d");
+
+ this.c = this.$c[0].getContext? this.$c[0].getContext('2d') : null;
+
+ if (!this.c) {
+ this.o.error && this.o.error();
+ return;
+ }
this.$
.wrap($('
Date: Thu, 27 Jun 2013 23:16:02 +0200
Subject: [PATCH 04/59] Support for HiDPI screens #99 #93 #61
---
js/jquery.knob.js | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/js/jquery.knob.js b/js/jquery.knob.js
index ef3ab5f..ae36b6b 100644
--- a/js/jquery.knob.js
+++ b/js/jquery.knob.js
@@ -63,6 +63,7 @@
this.cH = null; // change hook
this.eH = null; // cancel hook
this.rH = null; // release hook
+ this.scale = 1; // scale factor
this.run = function () {
var cf = function (e, conf) {
@@ -166,6 +167,21 @@
this.o.height + 'px;"> '))
.before(this.$c);
+ this.scale = (window.devicePixelRatio || 1) /
+ (
+ this.c.webkitBackingStorePixelRatio ||
+ this.c.mozBackingStorePixelRatio ||
+ this.c.msBackingStorePixelRatio ||
+ this.c.oBackingStorePixelRatio ||
+ this.c.backingStorePixelRatio || 1
+ );
+ if (this.scale !== 1) {
+ this.$c[0].width = this.$c[0].width * this.scale;
+ this.$c[0].height = this.$c[0].height * this.scale;
+ this.$c.width(this.o.width);
+ this.$c.height(this.o.height);
+ }
+
if (this.v instanceof Object) {
this.cv = {};
this.copy(this.v, this.cv);
@@ -196,8 +212,9 @@
var d = true,
c = document.createElement('canvas');
- c.width = s.o.width;
- c.height = s.o.height;
+ c.width = s.o.width * s.scale;
+ c.height = s.o.height * s.scale;
+
s.g = c.getContext('2d');
s.clear();
@@ -551,7 +568,7 @@
this.$.val(this.v);
this.w2 = this.o.width / 2;
this.cursorExt = this.o.cursor / 100;
- this.xy = this.w2;
+ this.xy = this.w2 * this.scale;
this.lineWidth = this.xy * this.o.thickness;
this.lineCap = this.o.lineCap;
this.radius = this.xy - this.lineWidth / 2;
From bc468f9540e507e6ba557bc754e1355d9d7f4f9d Mon Sep 17 00:00:00 2001
From: fadomire
Date: Tue, 27 Aug 2013 09:54:13 +0200
Subject: [PATCH 05/59] excanvas support for IE7/8 compatibility
added excanvas support code from @buradleix https://github.com/buradleix/jQuery-Knob/
---
js/jquery.knob.js | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/js/jquery.knob.js b/js/jquery.knob.js
index ae36b6b..a0b4729 100644
--- a/js/jquery.knob.js
+++ b/js/jquery.knob.js
@@ -150,10 +150,15 @@
(!this.o.displayInput) && this.$.hide();
- this.$c = $(' ');
+ this.$c = $(document.createElement('canvas')).attr({
+ width: this.o.width,
+ height: this.o.height
+ });
+ if (typeof G_vmlCanvasManager !== 'undefined') {
+ G_vmlCanvasManager.initElement(this.$c[0]);
+ }
+
this.c = this.$c[0].getContext? this.$c[0].getContext('2d') : null;
if (!this.c) {
@@ -209,13 +214,9 @@
this._draw = function () {
// canvas pre-rendering
- var d = true,
- c = document.createElement('canvas');
-
- c.width = s.o.width * s.scale;
- c.height = s.o.height * s.scale;
+ var d = true;
- s.g = c.getContext('2d');
+ s.g = s.c;
s.clear();
@@ -224,8 +225,6 @@
(d !== false) && s.draw();
- s.c.drawImage(c, 0, 0);
- c = null;
};
this._touch = function (e) {
@@ -682,4 +681,4 @@
).parent();
};
-})(jQuery);
\ No newline at end of file
+})(jQuery);
From 6dca8a7a79ade47c70835b06b2509ce688ecd3b9 Mon Sep 17 00:00:00 2001
From: root
Date: Mon, 2 Sep 2013 22:13:19 +0200
Subject: [PATCH 06/59] font and fontWeight support #100 @kylestetz @asnyder
---
README.md | 0
index.html | 0
js/jquery.knob.js | 10 ++++++----
knob.jquery.json | 0
4 files changed, 6 insertions(+), 4 deletions(-)
mode change 100644 => 100755 README.md
mode change 100644 => 100755 index.html
mode change 100644 => 100755 js/jquery.knob.js
mode change 100644 => 100755 knob.jquery.json
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/index.html b/index.html
old mode 100644
new mode 100755
diff --git a/js/jquery.knob.js b/js/jquery.knob.js
old mode 100644
new mode 100755
index a0b4729..79b4f0e
--- a/js/jquery.knob.js
+++ b/js/jquery.knob.js
@@ -48,7 +48,7 @@
this.o = null; // array of options
this.$ = null; // jQuery wrapped element
this.i = null; // mixed HTMLInputElement or array of HTMLInputElement
- this.g = null; // 2D graphics context for 'pre-rendering'
+ this.g = null; // deprecated 2D graphics context for 'pre-rendering'
this.v = null; // value ; mixed array or integer
this.cv = null; // change value ; not commited value
this.x = 0; // canvas x position
@@ -100,6 +100,8 @@
displayPrevious : this.$.data('displayprevious'),
fgColor : this.$.data('fgcolor') || '#87CEEB',
inputColor: this.$.data('inputcolor') || this.$.data('fgcolor') || '#87CEEB',
+ font: this.$.data('font') || 'Arial',
+ fontWeight: this.$.data('font-weight') || 'bold',
inline : false,
step : this.$.data('step') || 1,
@@ -154,13 +156,13 @@
width: this.o.width,
height: this.o.height
});
-
+
if (typeof G_vmlCanvasManager !== 'undefined') {
G_vmlCanvasManager.initElement(this.$c[0]);
}
this.c = this.$c[0].getContext? this.$c[0].getContext('2d') : null;
-
+
if (!this.c) {
this.o.error && this.o.error();
return;
@@ -602,7 +604,7 @@
,'margin-left' : '-' + ((this.o.width * 3 / 4 + 2) >> 0) + 'px'
,'border' : 0
,'background' : 'none'
- ,'font' : 'bold ' + ((this.o.width / s) >> 0) + 'px Arial'
+ ,'font' : this.o.fontWeight + ' ' + ((this.o.width / s) >> 0) + 'px ' + this.o.font
,'text-align' : 'center'
,'color' : this.o.inputColor || this.o.fgColor
,'padding' : '0px'
diff --git a/knob.jquery.json b/knob.jquery.json
old mode 100644
new mode 100755
From ac5e0b8d478b2b17ed22e40849c4801b49db7e15 Mon Sep 17 00:00:00 2001
From: root
Date: Mon, 2 Sep 2013 22:18:03 +0200
Subject: [PATCH 07/59] font and fontWeight support #100 @kylestetz @asnyder
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index 2b33108..8c6dd33 100755
--- a/README.md
+++ b/README.md
@@ -50,6 +50,8 @@ UI :
* displayPrevious : default=false | true=displays the previous value with transparency.
* fgColor : foreground color.
* inputColor : input value (number) color.
+* font : font family.
+* fontWeight : font weight.
* bgColor : background color.
Hooks
From e83f4fb9f92837caa6402eac72ccf5480fe0970a Mon Sep 17 00:00:00 2001
From: root
Date: Fri, 13 Sep 2013 01:01:18 +0200
Subject: [PATCH 08/59] First implem of responsive support #98
---
index.html | 18 ++++++++
js/jquery.knob.js | 106 ++++++++++++++++++++++++++++++++++------------
2 files changed, 98 insertions(+), 26 deletions(-)
diff --git a/index.html b/index.html
index 67b1530..d003bb0 100755
--- a/index.html
+++ b/index.html
@@ -205,6 +205,24 @@ jQuery Knob
+
+
× Responsive
+
+data-width="80%"
+
+
+
+ Current div width is 30% of window width.
+ Knob width is 80% of current div.
+ Knob width is 80% of 30% of window width.
+ Test resizing window.
+
+
+
+
+
+
+
+
+
+
-
+
+
+```
Options
-------
Options are provided as attributes 'data-option':
-
+```html
+
+```
... or in the "knob()" call :
- $(".dial").knob({
- 'min':-50
- ,'max':50
- });
+```javascript
+$(".dial").knob({
+ 'min':-50,
+ 'max':50
+});
+```
The following options are supported :
@@ -58,11 +64,13 @@ UI :
Hooks
-------
-
+ 'release' : function (v) { /*make something*/ }
+ });
+
+```
* 'release' : executed on release
@@ -92,40 +100,44 @@ The scope (this) of each hook function is the current Knob instance (refer to th
Example
-------
-
+```html
+
-
-
+ 'change' : function (v) { console.log(v); }
+ });
+
+```
Dynamically configure
-------
-
+ }
+ );
+
+```
Set the value
-------
-
+
+```
Supported browser
-------
From 4fb9bab8d87c4e705cdb1ea47d00b5190191b29e Mon Sep 17 00:00:00 2001
From: Felix Milea-Ciobanu
Date: Tue, 14 Jul 2015 10:54:38 -0600
Subject: [PATCH 54/59] added basic package.json for npm package
---
package.json | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 package.json
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..28b7fb1
--- /dev/null
+++ b/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "jquery-knob",
+ "version": "1.2.11",
+ "description": "Nice, downward compatible, touchable, jQuery dial",
+ "main": "dist/jquery.knob.min.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/aterrien/jQuery-Knob.git"
+ },
+ "keywords": [
+ "jquery",
+ "knob",
+ "dial"
+ ],
+ "author": "Anthony Terrien",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/aterrien/jQuery-Knob/issues"
+ },
+ "homepage": "https://github.com/aterrien/jQuery-Knob#readme"
+}
From cf505336e7c50e3b6eae1210d321d27832d5ff90 Mon Sep 17 00:00:00 2001
From: legitalk
Date: Wed, 14 Oct 2015 10:04:42 +0200
Subject: [PATCH 55/59] Update jquery.knob.js
Missing ";"
---
js/jquery.knob.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/jquery.knob.js b/js/jquery.knob.js
index 5294ffa..44220f2 100644
--- a/js/jquery.knob.js
+++ b/js/jquery.knob.js
@@ -472,7 +472,7 @@
// Utils
this.h2rgba = function (h, a) {
var rgb;
- h = h.substring(1,7)
+ h = h.substring(1,7);
rgb = [
parseInt(h.substring(0,2), 16),
parseInt(h.substring(2,4), 16),
From 28bb63e72a2de1571fd6d1e25d9f1855d820fa4a Mon Sep 17 00:00:00 2001
From: legitalk
Date: Wed, 14 Oct 2015 10:11:21 +0200
Subject: [PATCH 56/59] Update
Missing 3x ";"
---
js/jquery.knob.js | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/js/jquery.knob.js b/js/jquery.knob.js
index 5294ffa..8bae662 100644
--- a/js/jquery.knob.js
+++ b/js/jquery.knob.js
@@ -297,7 +297,7 @@
}
return this;
- }
+ };
this._draw = function () {
@@ -472,7 +472,7 @@
// Utils
this.h2rgba = function (h, a) {
var rgb;
- h = h.substring(1,7)
+ h = h.substring(1,7);
rgb = [
parseInt(h.substring(0,2), 16),
parseInt(h.substring(2,4), 16),
@@ -669,7 +669,7 @@
);
this.$c.bind("mousewheel DOMMouseScroll", mw);
- this.$.bind("mousewheel DOMMouseScroll", mw)
+ this.$.bind("mousewheel DOMMouseScroll", mw);
};
this.init = function () {
From 148307aa5475980dbc85133f16e7cf88cf03fde8 Mon Sep 17 00:00:00 2001
From: Jason Williams
Date: Fri, 23 Oct 2015 16:58:23 +0100
Subject: [PATCH 57/59] adding height to dial documentation
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index d20c58a..2257ff4 100755
--- a/README.md
+++ b/README.md
@@ -53,6 +53,7 @@ UI :
* thickness : gauge thickness.
* lineCap : gauge stroke endings. | default=butt, round=rounded line endings
* width : dial width.
+* height : dial height.
* displayInput : default=true | false=hide input.
* displayPrevious : default=false | true=displays the previous value with transparency.
* fgColor : foreground color.
From fa1c321fd1a9a471130a1a56746462c8330bcf7b Mon Sep 17 00:00:00 2001
From: aterrien
Date: Tue, 3 Nov 2015 21:13:28 +0000
Subject: [PATCH 58/59] Release 1.2.12, fix bower version and add npm package
---
bower.json | 2 +-
js/jquery.knob.js | 2 +-
knob.jquery.json | 2 +-
package.json | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/bower.json b/bower.json
index 7969769..ef03e4e 100755
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "aterrien/jQuery-Knob",
- "version": "1.2.11",
+ "version": "1.2.12",
"main": "js/jquery.knob.js",
"description": "Nice, downward compatible, touchable, jQuery dial.",
"license": "MIT",
diff --git a/js/jquery.knob.js b/js/jquery.knob.js
index 8bae662..792313c 100644
--- a/js/jquery.knob.js
+++ b/js/jquery.knob.js
@@ -2,7 +2,7 @@
/**
* Downward compatible, touchable dial
*
- * Version: 1.2.11
+ * Version: 1.2.12
* Requires: jQuery v1.7+
*
* Copyright (c) 2012 Anthony Terrien
diff --git a/knob.jquery.json b/knob.jquery.json
index 26564ad..c442552 100755
--- a/knob.jquery.json
+++ b/knob.jquery.json
@@ -9,7 +9,7 @@
"ui",
"input"
],
- "version": "1.2.11",
+ "version": "1.2.12",
"author": {
"name": "Anthony Terrien",
"url": "https://github.com/aterrien"
diff --git a/package.json b/package.json
index 28b7fb1..de9f0ce 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jquery-knob",
- "version": "1.2.11",
+ "version": "1.2.12",
"description": "Nice, downward compatible, touchable, jQuery dial",
"main": "dist/jquery.knob.min.js",
"scripts": {
From 755309e933d326ffaa5a2d758dc377147b766515 Mon Sep 17 00:00:00 2001
From: Anthony Terrien
Date: Wed, 16 Dec 2015 21:12:42 +0100
Subject: [PATCH 59/59] Changed bower package name to jquery-knob
---
bower.json | 4 ++--
knob.jquery.json | 2 +-
package.json | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/bower.json b/bower.json
index ef03e4e..1eeb316 100755
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
- "name": "aterrien/jQuery-Knob",
- "version": "1.2.12",
+ "name": "jquery-knob",
+ "version": "1.2.13",
"main": "js/jquery.knob.js",
"description": "Nice, downward compatible, touchable, jQuery dial.",
"license": "MIT",
diff --git a/knob.jquery.json b/knob.jquery.json
index c442552..01a9063 100755
--- a/knob.jquery.json
+++ b/knob.jquery.json
@@ -9,7 +9,7 @@
"ui",
"input"
],
- "version": "1.2.12",
+ "version": "1.2.13",
"author": {
"name": "Anthony Terrien",
"url": "https://github.com/aterrien"
diff --git a/package.json b/package.json
index de9f0ce..fbb4245 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "jquery-knob",
- "version": "1.2.12",
+ "version": "1.2.13",
"description": "Nice, downward compatible, touchable, jQuery dial",
"main": "dist/jquery.knob.min.js",
"scripts": {