ResizeHandle_wev8.js
2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
Copyright (c) 2004-2005, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.widget.ResizeHandle");
dojo.provide("dojo.widget.html.ResizeHandle");
dojo.require("dojo.widget.*");
dojo.require("dojo.html");
dojo.require("dojo.style");
dojo.require("dojo.dom");
dojo.require("dojo.event");
dojo.widget.html.ResizeHandle = function(){
dojo.widget.HtmlWidget.call(this);
}
dojo.inherits(dojo.widget.html.ResizeHandle, dojo.widget.HtmlWidget);
dojo.lang.extend(dojo.widget.html.ResizeHandle, {
widgetType: "ResizeHandle",
isSizing: false,
startPoint: null,
startSize: null,
grabImg: null,
targetElmId: '',
imgSrc: dojo.uri.dojoUri("src/widget/templates/grabCorner_wev8.gif"),
templateCssPath: dojo.uri.dojoUri("src/widget/templates/HtmlResizeHandle_wev8.css"),
templateString: '<div dojoAttachPoint="domNode"><img dojoAttachPoint="grabImg" /></div>',
fillInTemplate: function(){
dojo.style.insertCssFile(this.templateCssPath);
dojo.html.addClass(this.domNode, 'dojoHtmlResizeHandle');
dojo.html.addClass(this.grabImg, 'dojoHtmlResizeHandleImage');
this.grabImg.src = this.imgSrc;
},
postCreate: function(){
dojo.event.connect(this.domNode, "onmousedown", this, "beginSizing");
},
beginSizing: function(e){
if (this.isSizing){ return false; }
this.targetElm = dojo.widget.getWidgetById(this.targetElmId);
if (!this.targetElm){ return; }
var screenX = window.event ? window.event.clientX : e.pageX;
var screenY = window.event ? window.event.clientY : e.pageY;
this.isSizing = true;
this.startPoint = {'x':e.clientX, 'y':e.clientY};
this.startSize = {'w':dojo.style.getOuterWidth(this.targetElm.domNode), 'h':dojo.style.getOuterHeight(this.targetElm.domNode)};
dojo.event.connect(document.documentElement, "onmousemove", this, "changeSizing");
dojo.event.connect(document.documentElement, "onmouseup", this, "endSizing");
e.preventDefault();
},
changeSizing: function(e){
var dx = this.startPoint.x - e.clientX;
var dy = this.startPoint.y - e.clientY;
this.targetElm.resizeTo(this.startSize.w - dx, this.startSize.h - dy);
e.preventDefault();
},
endSizing: function(e){
dojo.event.disconnect(document.documentElement, "onmousemove", this, "changeSizing");
dojo.event.disconnect(document.documentElement, "onmouseup", this, "endSizing");
this.isSizing = false;
}
});
dojo.widget.tags.addParseTreeHandler("dojo:ResizeHandle");