diff --git a/js/gui.js b/js/gui.js index 0a0a1ea88b..ebe8e7d98c 100644 --- a/js/gui.js +++ b/js/gui.js @@ -21,7 +21,7 @@ var GUI_control = function() { // interval = time interval in miliseconds // first = true/false if code should be ran initially before next timer interval hits GUI_control.prototype.interval_add = function(name, code, interval, first) { - var data = {'name': name, 'timer': undefined, 'interval': interval, 'fired' : 0}; + var data = {'name': name, 'timer': undefined, 'code': code, 'interval': interval, 'fired': 0, 'paused': false}; if (first == true) { code(); // execute code @@ -53,6 +53,37 @@ GUI_control.prototype.interval_remove = function(name) { return false; }; +// name = string +GUI_control.prototype.interval_pause = function(name) { + for (var i = 0; i < this.interval_array.length; i++) { + if (this.interval_array[i].name == name) { + clearInterval(this.interval_array[i].timer); + this.interval_array[i].paused = true; + + return true; + } + } +}; + +// name = string +GUI_control.prototype.interval_resume = function(name) { + for (var i = 0; i < this.interval_array.length; i++) { + if (this.interval_array[i].name == name && this.interval_array[i].paused) { + var obj = this.interval_array[i]; + + obj.timer = setInterval(function() { + obj.code(); // execute code + + obj.fired++; // increment counter + }, obj.interval); + + obj.paused = false; + + return true; + } + } +}; + // input = array of timers thats meant to be kept // return = returns timers killed in last call GUI_control.prototype.interval_kill_all = function(keep_array) {