File: rectwin.js

package info (click to toggle)
virtuoso-opensource 6.1.4%2Bdfsg1-7
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 245,116 kB
  • sloc: ansic: 639,631; sql: 439,225; xml: 287,085; java: 61,048; sh: 38,723; cpp: 36,889; cs: 25,240; php: 12,562; yacc: 9,036; lex: 7,149; makefile: 6,093; jsp: 4,447; awk: 1,643; perl: 1,017; ruby: 1,003; python: 329
file content (116 lines) | stat: -rw-r--r-- 3,511 bytes parent folder | download
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/*
 *  $Id: rectwin.js,v 1.10.2.4 2010/09/07 21:56:37 source Exp $
 *
 *  This file is part of the OpenLink Software Ajax Toolkit (OAT) project.
 *
 *  Copyright (C) 2005-2010 OpenLink Software
 *
 *  See LICENSE file for details.
 */

/*
	new OAT.RectWin(params)
	not to be directly called, rather accessed by Window library

*/

OAT.RectWin = function(optObj) {
	var self = this;

	OAT.WindowParent(this,optObj);
	this.options.statusHeight = 30;
	this.options.moveHeight = 16;

	OAT.Style.set(this.div,{border:"1px solid rgb(164,163,163)",font:"menu",backgroundColor:"#fff"});
	OAT.Style.set(this.content,{overflow:"auto",top:"16px",position:"relative"});
	OAT.Style.set(this.move,{position:"absolute",left:"0px",top:"0px",height:this.options.moveHeight+"px"});

	if (self.options.move) {
		this.move._Drag_movers[0][1].restrictionFunction = function(l,t) {
			return l < 0 || t < 0;
		}
	}
	if (self.closeBtn) {
		OAT.Style.set(this.closeBtn,{cssFloat:"right",styleFloat:"right",fontSize:"1px",marginTop:"2px",marginRight:"2px",cursor:"pointer",width:"14px",height:"13px",backgroundImage:"url("+self.options.imagePath+"RectWin_close.gif)"});
	}

	if (self.resize) {
		OAT.Style.set(this.resize,{width:"10px",height:"10px",fontSize:"1px",position:"absolute",right:"2px",bottom:"2px",cursor:"nw-resize",backgroundImage:"url("+self.options.imagePath+"RectWin_resize.gif)"});
	}

	OAT.Style.set(this.caption,{textAlign:"center",fontWeight:"bold"});

	this.resizeTo = function(w,h) {
		if (w) {
			self.move.style.width = w + "px";
			self.div.style.width = w + "px";
			self.content.style.width = w + "px";
		}
		if (h) {
			self.div.style.height = h + "px";
			self.content.style.height = (h - self.options.statusHeight) + "px";
		}
	}

	this.moveTo = function(x,y) {
		if (x >= 0) { self.div.style.left = x + "px"; }
		if (x < 0) { self.div.style.right = (-x) + "px"; }
		if (y >= 0) { self.div.style.top = y + "px"; }
		if (y < 0) { self.div.style.bottom = (-y) + "px"; }
	}

	this.link = OAT.Dom.create("img");
	this.link.style.position = "absolute";
	this.div.appendChild(this.link);
	OAT.Dom.hide(self.link);

	this.moveLink = function(left,top) {
		OAT.Dom.show(self.link);
		if (left) { self.link.style.left = "10px"; self.link.style.right = "";}
		if (!left) { self.link.style.right = "40px"; self.link.style.left = "";}
		if (top) { self.link.style.top = "-35px"; self.link.style.bottom = "";}
		if (!top) {
			self.link.style.bottom = "-35px"; self.link.style.top = "";
			if (OAT.Browser.isIE) { self.link.style.bottom = "-35px"; }
		}
		if (left && top) {
			var path = self.options.imagePath + "RectWin_lt.png";
		}
		if (!left && !top) {
			var path = self.options.imagePath + "RectWin_rb.png";
		}
		if (left && !top) {
			var path = self.options.imagePath + "RectWin_lb.png";
		}
		if (!left && top) {
			var path = self.options.imagePath + "RectWin_rt.png";
		}
		self.link.style.width = "30px";
		self.link.style.height = "35px";
		OAT.Dom.imageSrc(self.link,path,self.options.imagePath + "Blank.gif");
	}

	this.anchorTo = function(x_,y_) { /* where should we put the window? */
		var fs = OAT.Dom.getFreeSpace(x_,y_); /* [left,top] */
		var dims = OAT.Dom.getWH(self.div);
		self.moveLink(!fs[0],!fs[1]);

		if (fs[1]) { /* top */
			var y = y_ - 50 - dims[1];
		} else { /* bottom */
			var y = y_ + 50;
		}

		if (fs[0]) { /* left */
			var x = x_ + 10 - dims[0];
		} else { /* right */
			var x = x_ - 10;
		}

		if (x < 0) { x = 10; }
		if (y < 0) { y = 10; }

		self.moveTo(x,y);
	}

}