![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/libs/absol-form/js/dom/ |
Upload File : |
function WindowManager() { this.windowHolders = []; this.zIndex = 100; } WindowManager.prototype.ev_mouseDownWindow = function (holder, event) { holder.delta = 1000; this.reIndex(); }; WindowManager.prototype.remove = function (elt) { var holder = this.getHolder(elt); if (!holder) return; elt.off('mousedown', holder.onmousedown); elt.remove(); holder.delta -= 100000000; this.reIndex(); }; WindowManager.prototype.getHolder = function (elt) { for (var i = 0; i < this.windowHolders.length; ++i) { if (this.windowHolders[i].elt == elt) return this.windowHolders[i]; } }; WindowManager.prototype.add = function (elt) { var holder = this.getHolder(elt); if (holder) return holder; var holder = { elt: elt, zIndex: 100, delta: 1000 } holder.onmousedown = this.ev_mouseDownWindow.bind(this, holder); this.windowHolders.push(holder); elt.on('mousedown', holder.onmousedown); elt.addTo(document.body); this.reIndex(); return holder; }; WindowManager.prototype.reIndex = function () { this.windowHolders.sort(function (a, b) { return a.zIndex + a.delta - b.zIndex - b.delta; }); while (this.windowHolders.length > 0 && this.windowHolders[0].delta < 0) this.windowHolders.shift(); var holder; for (var i = 0; i < this.windowHolders.length; ++i) { holder = this.windowHolders[i]; holder.delta = 0; if (holder.zIndex != this.zIndex + i) { holder.zIndex = this.zIndex + i; holder.elt.addStyle('zIndex', holder.zIndex + ''); } } }; export default new WindowManager();