]> git.proxmox.com Git - extjs.git/blame - extjs/packages/ux/classic/src/colorpick/SliderController.js
add extjs 6.0.1 sources
[extjs.git] / extjs / packages / ux / classic / src / colorpick / SliderController.js
CommitLineData
6527f429
DM
1/**\r
2 * @private\r
3 */\r
4Ext.define('Ext.ux.colorpick.SliderController', {\r
5 extend: 'Ext.app.ViewController',\r
6 alias: 'controller.colorpick-slidercontroller',\r
7\r
8 // After the component is rendered\r
9 boxReady: function (view) {\r
10 var me = this,\r
11 container = me.getDragContainer(),\r
12 dragHandle = me.getDragHandle(),\r
13 dd = dragHandle.dd;\r
14\r
15 // configure draggable constraints \r
16 dd.constrain = true;\r
17 dd.constrainTo = container.getEl();\r
18 dd.initialConstrainTo = dd.constrainTo; // needed otheriwse error EXTJS-13187\r
19 \r
20 // event handlers\r
21 dd.on('drag', me.onHandleDrag, me);\r
22 },\r
23\r
24 getDragHandle: function () {\r
25 return this.view.lookupReference('dragHandle');\r
26 },\r
27\r
28 getDragContainer: function () {\r
29 return this.view.lookupReference('dragHandleContainer');\r
30 },\r
31\r
32 // Fires when handle is dragged; fires "handledrag" event on the slider\r
33 // with parameter "percentY" 0-1, representing the handle position on the slider\r
34 // relative to the height\r
35 onHandleDrag: function(e) {\r
36 var me = this,\r
37 view = me.getView(),\r
38 container = me.getDragContainer(),\r
39 dragHandle = me.getDragHandle(),\r
40 y = dragHandle.getY() - container.getY(),\r
41 containerEl = container.getEl(),\r
42 containerHeight = containerEl.getHeight(),\r
43 yRatio = y/containerHeight;\r
44\r
45 // Adjust y ratio for dragger always being 1 pixel from the edge on the bottom\r
46 if (yRatio > 0.99) {\r
47 yRatio = 1;\r
48 }\r
49\r
50 view.fireEvent('handledrag', yRatio);\r
51 },\r
52\r
53 // Whenever we mousedown over the slider area\r
54 onMouseDown: function(e) {\r
55 var me = this,\r
56 dragHandle = me.getDragHandle(),\r
57 y = e.getY();\r
58\r
59 // position drag handle accordingly\r
60 dragHandle.setY(y);\r
61 me.onHandleDrag();\r
62\r
63 dragHandle.el.repaint();\r
64 // tie into the default dd mechanism\r
65 dragHandle.dd.onMouseDown(e, dragHandle.dd.el);\r
66 },\r
67\r
68 // Whenever we start a drag over the colormap area\r
69 onDragStart: function(e) {\r
70 var me = this,\r
71 dragHandle = me.getDragHandle();\r
72\r
73 // tie into the default dd mechanism\r
74 dragHandle.dd.onDragStart(e, dragHandle.dd.el);\r
75 },\r
76\r
77 onMouseUp: function () {\r
78 var dragHandle = this.getDragHandle();\r
79\r
80 dragHandle.dd.dragEnded = true; // work around DragTracker bug\r
81 }\r
82});\r