VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-form/js/dom/WindowManager.js
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();

VaKeR 2022