0
|
1 var windowWidgetObjArray=[];
|
|
2 var windowZ=10001;
|
|
3 function initWindowWidget(){
|
|
4 var i=0;
|
|
5 $(".windowWidget").each(function(){
|
|
6 windowWidgetObjArray[i]=new WindowWidget($(this));
|
|
7 });
|
|
8 }
|
|
9
|
|
10 function WindowWidget(obj,x,y,width,height){
|
|
11 x = typeof x !== 'undefined' ? x:0;
|
|
12 y = typeof y !== 'undefined' ? y:0;
|
|
13 width = typeof width !== 'undefined' ? width:"auto";
|
|
14 height = typeof height !== 'undefined' ? height:"auto";
|
|
15 var that=this;
|
|
16 this.obj=obj;
|
|
17 this.setX(x);
|
|
18 this.setY(y);
|
|
19 this.setWidth(width);
|
|
20 this.setHeight(height);
|
|
21 //this.isDragging=false;
|
|
22 //this.obj.attr("draggable","true");
|
|
23 /*this.obj.mousedown(function(e){
|
|
24 var h=that.obj.outerHeight();
|
|
25 var w=that.obj.outerWidth();
|
|
26 var x=that.obj.offset().top+h-e.pageX;
|
|
27 var y=that.obj.offset().left+w-e.pageY;
|
|
28 $(window).mousemove(function(e){
|
|
29 that.isDragging=true;
|
|
30 that.setX(e.pageX+x-w);
|
|
31 that.setY(e.pageY+y-h);
|
|
32 console.log(e.pageX+" "+e.pageY);
|
|
33 }).mouseup(function(){
|
|
34 $(window).unbind("mousemove");
|
|
35
|
|
36 });
|
|
37 }).mouseup(function(){
|
|
38 var wasDragging=that.isDragging;
|
|
39 that.isDragging=false;
|
|
40 $(window).unbind("mousemove");
|
|
41 if(!wasDragging){
|
|
42
|
|
43 }
|
|
44 });*/
|
|
45 this.obj.css("z-index",(windowZ++));
|
|
46 this.title=this.obj.attr("title");
|
|
47 this.obj.wrapInner("<div class='content'></div>");
|
|
48 this.obj.draggable({cancel:".content",stack:".windowWidget"});
|
|
49 this.obj.children(".content").hide();
|
|
50 this.initTitleBar();
|
|
51 this.obj.click(function(){
|
|
52 that.bringToFront();
|
|
53 });
|
|
54 }
|
|
55 WindowWidget.prototype.constructor=WindowWidget;
|
|
56
|
|
57 WindowWidget.prototype.initTitleBar=function(){
|
|
58 var titleBarObj=$("<div>").addClass("windowWidgetBar");
|
|
59 this.obj.prepend(titleBarObj);
|
|
60 var visibilityButtonObj=$("<div>").addClass("visibilityButton");
|
|
61 titleBarObj.append(visibilityButtonObj);
|
|
62 visibilityButtonObj.html("+");
|
|
63 var titleObj=$("<div>").addClass("title");
|
|
64 titleBarObj.append(titleObj);
|
|
65 titleObj.html(this.title);
|
|
66 var that=this;
|
|
67 visibilityButtonObj.click(function(){
|
|
68 //if(that.obj.children(".content").is(":visible")){
|
|
69 if(visibilityButtonObj.html()=="-"){
|
|
70 visibilityButtonObj.html("+");
|
|
71 that.obj.children(".content").hide();
|
|
72 }else{
|
|
73 visibilityButtonObj.html("-");
|
|
74 that.obj.children(".content").show();
|
|
75 }
|
|
76 });
|
|
77 };
|
|
78 WindowWidget.prototype.bringToFront=function(){
|
|
79 var frontWindowObj;
|
|
80 var maxZ=0;
|
|
81 $(".windowWidget").each(function(){
|
|
82 var z=$(this).css("z-index");
|
|
83 if(z>maxZ){
|
|
84 maxZ=z;
|
|
85 frontWindowObj=$(this);
|
|
86 }
|
|
87 });
|
|
88 var z=this.obj.css("z-index");
|
|
89 this.obj.css("z-index",maxZ);
|
|
90 frontWindowObj.css("z-index",z);
|
|
91 /*$(".windowWidget").sort(function(a,b){
|
|
92 return $(a).css("z-index")-$(b).css("z-index");
|
|
93 });*/
|
|
94
|
|
95 };
|
|
96 WindowWidget.prototype.hideWindow=function(){};
|
|
97 WindowWidget.prototype.showWindow=function(){};
|
|
98 WindowWidget.prototype.resizeWindow=function(){};
|
|
99 WindowWidget.prototype.setX=function(val){
|
|
100 this.x=val;
|
|
101 this.obj.css("left",this.x);
|
|
102 };
|
|
103 WindowWidget.prototype.setY=function(val){
|
|
104 this.y=val;
|
|
105 this.obj.css("top",this.y);
|
|
106 };
|
|
107 WindowWidget.prototype.setWidth=function(val){
|
|
108 this.width=val;
|
|
109 this.obj.css("width",this.width);
|
|
110 };
|
|
111 WindowWidget.prototype.setHeight=function(val){
|
|
112 this.height=val;
|
|
113 this.obj.css("height",this.height);
|
|
114 };
|