115 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @file AppPage.js
 | |
|  * @author frtk@tetalab
 | |
|  */
 | |
| 
 | |
| NPGClient.AppPage = function(n) { 
 | |
|     
 | |
|   Object.defineProperty(this, 'id', { value: NPGClient.pageCount++ });
 | |
|    
 | |
|   this.name = n || '';
 | |
|   // draw loop paramaters
 | |
|   this.loopIntervalId = 0;
 | |
|   this.loopDelay = 40; 
 | |
|   // canvas 
 | |
|   this.canvas_id = "";
 | |
|   this.canvas_bcol = "";
 | |
|   this.canvas = {};
 | |
|   this.ctx = {};
 | |
| 
 | |
|   // ui elements   
 | |
|   this.uiElems = [];
 | |
| 
 | |
| };
 | |
| 
 | |
| NPGClient.AppPage.prototype = {
 | |
| 
 | |
|   constructor: NPGClient.AppPage,
 | |
| 
 | |
|   //
 | |
|   setLoopDelay: function(d) {
 | |
|     this.loopDelay = d;
 | |
|   },
 | |
| 
 | |
|   //
 | |
|   startDrawLoop: function() {
 | |
|     var self = this;
 | |
|     self.loopIntervalId = setInterval(function() { 
 | |
|       self.run(); 
 | |
|     }, self.loopDelay);
 | |
|   },
 | |
| 
 | |
|   //
 | |
|   stopDrawLoop: function() {
 | |
|     var self = this;
 | |
|     clearInterval(self.loopIntervalId); 
 | |
|     self.loopIntervalId = 0;            
 | |
|   },
 | |
| 
 | |
|   //
 | |
|   run: function() {
 | |
|     var self = this;
 | |
|     self.drawUI();
 | |
|   },
 | |
| 
 | |
|   //
 | |
|   configUI: function(id, w, h, c) {
 | |
|     var self = this;
 | |
|     self.canvas_id = id;
 | |
|     self.canvas = document.getElementById(id); 
 | |
|     self.ctx = self.canvas.getContext("2d");
 | |
|     self.canvas.width = w;
 | |
|     self.canvas.height = h;
 | |
|     self.canvas_bcol = c;
 | |
|   },
 | |
| 
 | |
|   //
 | |
|   addUIObject: function(c) {
 | |
|     var self = this;
 | |
|     self.uiElems.push(c);
 | |
|   },
 | |
| 
 | |
|   //
 | |
|   getUIElemByName: function(name) {
 | |
|     var self = this;
 | |
|     if (self.uiElems.length > 0) {
 | |
|       for (var i = 0; i < self.uiElems.length; i++)
 | |
|  	if (self.uiElems[i].name == name) return self.uiElems[i];
 | |
|     }
 | |
|     return undefined;
 | |
|   },
 | |
| 
 | |
|   //
 | |
|   drawUI: function() {
 | |
|     var self = this;
 | |
|     self.clear();
 | |
|     self.drawUIBackground();
 | |
|     self.drawUIObjects();	
 | |
|   },
 | |
| 
 | |
|   //
 | |
|   drawUIBackground: function() {
 | |
|     var self = this;
 | |
|     self.ctx.fillStyle = self.canvas_bcol;
 | |
|     self.ctx.fillRect(0, 0, self.canvas.width, self.canvas.height);
 | |
|   },
 | |
|   
 | |
|   //
 | |
|   drawUIObjects: function() {
 | |
|     var self = this;
 | |
|     if (self.uiElems.length > 0) {
 | |
|       for (var i = 0; i < self.uiElems.length; i++)
 | |
| 	self.uiElems[i].draw(self.ctx);
 | |
|     }
 | |
|   },
 | |
| 
 | |
|   //
 | |
|   clear: function() {
 | |
|     var self = this;
 | |
|     self.ctx.clearRect(0, 0, self.canvas.width, self.canvas.height); 
 | |
|   },
 | |
| 
 | |
|     
 | |
| };
 | |
| 
 |