diff WindowWidget.js @ 0:57bde4830927

first commit
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Tue, 24 Mar 2015 11:37:17 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WindowWidget.js	Tue Mar 24 11:37:17 2015 +0100
@@ -0,0 +1,114 @@
+var windowWidgetObjArray=[];
+var windowZ=10001;
+function initWindowWidget(){
+	var i=0;
+	$(".windowWidget").each(function(){
+		windowWidgetObjArray[i]=new WindowWidget($(this));
+	});
+}
+
+function WindowWidget(obj,x,y,width,height){
+	x = typeof x !== 'undefined' ? x:0;
+	y = typeof y !== 'undefined' ? y:0;
+	width = typeof width !== 'undefined' ? width:"auto";
+	height = typeof height !== 'undefined' ? height:"auto";
+	var that=this;
+	this.obj=obj;
+	this.setX(x);
+	this.setY(y);
+	this.setWidth(width);
+	this.setHeight(height);
+	//this.isDragging=false;
+	//this.obj.attr("draggable","true");
+	/*this.obj.mousedown(function(e){
+		var h=that.obj.outerHeight();
+		var w=that.obj.outerWidth();
+		var x=that.obj.offset().top+h-e.pageX;
+		var y=that.obj.offset().left+w-e.pageY;
+		$(window).mousemove(function(e){
+			that.isDragging=true;
+			that.setX(e.pageX+x-w);
+			that.setY(e.pageY+y-h);
+			console.log(e.pageX+" "+e.pageY);
+		}).mouseup(function(){
+			$(window).unbind("mousemove");
+
+		});
+	}).mouseup(function(){
+		var wasDragging=that.isDragging;
+		that.isDragging=false;
+		$(window).unbind("mousemove");
+		if(!wasDragging){
+			
+		}
+	});*/
+	this.obj.css("z-index",(windowZ++));
+	this.title=this.obj.attr("title");
+	this.obj.wrapInner("<div class='content'></div>");
+	this.obj.draggable({cancel:".content",stack:".windowWidget"});
+	this.obj.children(".content").hide();
+	this.initTitleBar();
+	this.obj.click(function(){
+		that.bringToFront();
+	});
+}
+WindowWidget.prototype.constructor=WindowWidget;
+
+WindowWidget.prototype.initTitleBar=function(){
+	var titleBarObj=$("<div>").addClass("windowWidgetBar");
+        this.obj.prepend(titleBarObj);
+	var visibilityButtonObj=$("<div>").addClass("visibilityButton");
+	titleBarObj.append(visibilityButtonObj);
+	visibilityButtonObj.html("+");
+	var titleObj=$("<div>").addClass("title");
+	titleBarObj.append(titleObj);
+	titleObj.html(this.title);
+	var that=this;
+	visibilityButtonObj.click(function(){
+		//if(that.obj.children(".content").is(":visible")){
+		if(visibilityButtonObj.html()=="-"){
+			visibilityButtonObj.html("+");
+			that.obj.children(".content").hide();
+		}else{
+			visibilityButtonObj.html("-");
+			that.obj.children(".content").show();
+		}
+	});
+};
+WindowWidget.prototype.bringToFront=function(){
+	var frontWindowObj;
+	var maxZ=0;
+	$(".windowWidget").each(function(){
+		var z=$(this).css("z-index");
+		if(z>maxZ){
+			maxZ=z;
+			frontWindowObj=$(this);
+		}
+	});
+	var z=this.obj.css("z-index");
+	this.obj.css("z-index",maxZ);
+	frontWindowObj.css("z-index",z);
+	/*$(".windowWidget").sort(function(a,b){
+		return $(a).css("z-index")-$(b).css("z-index");
+	});*/
+	
+};
+WindowWidget.prototype.hideWindow=function(){};
+WindowWidget.prototype.showWindow=function(){};
+WindowWidget.prototype.resizeWindow=function(){};
+WindowWidget.prototype.setX=function(val){
+	this.x=val;
+	this.obj.css("left",this.x);
+};
+WindowWidget.prototype.setY=function(val){
+	this.y=val;
+	this.obj.css("top",this.y);
+};
+WindowWidget.prototype.setWidth=function(val){
+	this.width=val;
+	this.obj.css("width",this.width);
+};
+WindowWidget.prototype.setHeight=function(val){
+	this.height=val;
+	this.obj.css("height",this.height);
+};