⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 application.js

📁 Bindows 1.01 完全版 Bindows 框架提供给你: 基于类的面向对象 API; 一个完整的窗口系统
💻 JS
📖 第 1 页 / 共 5 页
字号:
_p = BiEventTarget.prototype = new BiObject;_p._className = "BiEventTarget";_p.addEventListener = function(sType, fHandler, oObject)    {    if (typeof fHandler != "function")        throw new Error(this + " addEventListener: " + fHandler + " is not a function");    if (this._listeners[sType] == undefined)        this._listeners[sType] = { };    var key = BiObject.toHashCode(fHandler) + (oObject ? BiObject.toHashCode(oObject) : "");    this._listeners[sType][key] = { handler: fHandler, object: oObject };    };_p.removeEventListener = function(sType, fHandler, oObject)    {    if (this._disposed || this._listeners[sType] == undefined)        return;    var key = BiObject.toHashCode(fHandler) + (oObject ? BiObject.toHashCode(oObject) : "");    delete this._listeners[sType][key];    };_p.dispatchEvent = function(oEvent)    {    if (this._disposed)        return;    oEvent._target = this;    oEvent.initDispatch();    this._dispatchEvent(oEvent);    return !oEvent._defaultPrevented;    };_p._dispatchEvent = function(oEvent)    {    if (this._disposed)        return;    oEvent._currentTarget = this;    if (!(oEvent instanceof BiMouseEvent) && !(oEvent instanceof BiKeyboardEvent) || this.getIsEnabled())        {        var fs = this._listeners[oEvent.getType()];        if (fs)            {            var f, o;            for (var hc in fs)                {                f = fs[hc].handler;                o = fs[hc].object;                if (typeof f == "function")                    {                    if (typeof o == "object")                        {                        f.call(o, oEvent);                        }                    else                        f.call(this, oEvent);                    }                }            }        }    if (oEvent._bubbles && !oEvent._propagationStopped && this._parent)        {        this._parent._dispatchEvent(oEvent);        }    };_p.setAttribute = function(sName, sValue, oXmlResourceParser)    {    if (sName.substring(0, 2) == "on")        {        var type = sName.substring(2);        this.addEventListener(type, new Function("event", sValue), oXmlResourceParser);        }    else        BiObject.prototype.setAttribute.call(this, sName, sValue, oXmlResourceParser);    };_p.dispose = function()    {    if (this._disposed)        return;    BiObject.prototype.dispose.call(this);    for (var sType in this._listeners)        this._listeners[sType] = null;    this._listeners = null;    };function BiEventManager()    {    BiObject.call(this);    var oThis = this;    this.__onmouseevent = function(e)        {        return oThis._onmouseevent(e);        } ;    this.__onkeyevent = function(e)        {        return oThis._onkeyevent(e);        } ;    this.__onselectevent = function(e)        {        return oThis._onselectevent(e);        } ;    this.__onwindowblur = function(e)        {        return oThis._onwindowblur(e);        } ;    this.__ondragevent = function(e)        {        return oThis._ondragevent(e);        } ;    this.__onactivateevent = function(e)        {        return oThis._onactivateevent(e);        } ;    this.__onresizeevent = function(e)        {        return oThis._onresizeevent(e);        } ;    this._mozActiveElement = null;    }var _p = BiEventManager.prototype = new BiObject;_p._className = "BiEventManager";_p._lastFocused = null;_p._lastMouseEventType = null;_p._lastMouseEventDate = 0;_p.attachToWindow = function(oWindow)    {    this._window = oWindow;    this.attachMouseEvents();    this.attachKeyboardEvents();    var doc = oWindow.document;    doc.body.onselect = doc.onselectstart = doc.onselectionchange = this.__onselectevent;    doc.ondragstart = this.__ondragevent;    doc.body.onactivate = this.__onactivateevent;    oWindow.onblur = this.__onwindowblur;    if (BiBrowserCheck.moz)        {        oWindow.addEventListener("resize", this.__onresizeevent, false);        }    };BiEventManager._mouseEventTypes = ["mouseover", "mousemove", "mouseout", "mousedown", "mouseup", "click", "dblclick",                                   "contextmenu"];if (BiBrowserCheck.ie)    BiEventManager._mouseEventTypes.push("mousewheel");else    BiEventManager._mouseEventTypes.push("DOMMouseScroll");_p.attachMouseEvents = function()    {    var doc = this._window.document;    var types = BiEventManager._mouseEventTypes;    if (BiBrowserCheck.ie)        {        for (var i = 0; i < types.length; i++)            doc.attachEvent("on" + types[i], this.__onmouseevent);        }    else        {        for (var i = 0; i < types.length; i++)            doc.addEventListener(types[i], this.__onmouseevent, false);        }    };_p.detachMouseEvents = function()    {    var doc = this._window.document;    var types = BiEventManager._mouseEventTypes    if (BiBrowserCheck.ie)        {        for (var i = 0; i < types.length; i++)            doc.detachEvent("on" + types[i], this.__onmouseevent);        }    else        {        if (doc)            for (var i = 0; i < types.length; i++)                doc.removeEventListener(types[i], this.__onmouseevent, false);        }    };BiEventManager._keyboardEventTypes = ["keydown", "keypress", "keyup"];_p.attachKeyboardEvents = function()    {    var doc = this._window.document;    var types = BiEventManager._keyboardEventTypes;    if (BiBrowserCheck.ie)        {        for (var i = 0; i < types.length; i++)            doc.body.attachEvent("on" + types[i], this.__onkeyevent);        }    else        {        for (var i = 0; i < types.length; i++)            doc.addEventListener(types[i], this.__onkeyevent, false);        }    };_p.detachKeyboardEvents = function()    {    var doc = this._window.document;    var types = BiEventManager._keyboardEventTypes;    if (BiBrowserCheck.ie)        {        for (var i = 0; i < types.length; i++)            doc.body.detachEvent("on" + types[i], this.__onkeyevent);        }    else        {        for (var i = 0; i < types.length; i++)            doc.removeEventListener(types[i], this.__onkeyevent, false);        }    };_p._onmouseevent = function(e)    {    if (!e)        e = this._window.event;    var type = e.type;    if (BiBrowserCheck.ie)        {        if (type == "mouseup"            && (this._lastMouseEventType == "click" || this._lastMouseEventType == "contextmenu"                   || this._lastMouseEventType == "mouseup") && new Date - this._lastMouseEventDate < 250)            {            this._onmouseevent2(e, "mousedown");            }        else if (type == "dblclick" && this._lastMouseEventType == "mouseup"            && new Date - this._lastMouseEventDate < 250)            {            this._onmouseevent2(e, "click");            }        switch (type)            {            case "mousedown":            case "mouseup":            case "click":            case "dblclick":            case "contextmenu":                this._lastMouseEventType = type;                this._lastMouseEventDate = ( new Date).valueOf();            }        }    else        {        switch (type)            {            case "DOMMouseScroll":                type = "mousewheel";                break;            case "click":            case "dblclick":                if (e.button != BiMouseEvent.LEFT)                    return;            }        }    this._onmouseevent2(e, type);    };_p._onmouseevent2 = function(e, type)    {    if (type == "contextmenu")        {        if (BiBrowserCheck.moz)            e.preventDefault();        e.returnValue = false;        }    else if (type == "mousedown" && BiBrowserCheck.moz)        this._onactivateevent(e);    var target;    if (this._captureComponent)        {        target = this._captureComponent;        }    else        {        var el = e.target || e.srcElement;        while (el != null && el._biComponent == null)            el = el.parentNode;        if (el == null)            return;        target = el._biComponent;        }    if (target == null)        return;    var enabledAncestor = null;    var c = target;    while (c)        {        if (!c.getEnabled())            enabledAncestor = null;        else if (enabledAncestor == null)            enabledAncestor = c;        c = c._parent;        }    target = enabledAncestor;    if (target == null)        return;    var biEvent = new BiMouseEvent(type, e);    BiMouseEvent._storeEventState(biEvent);    switch (type)        {        case "mousedown":            ( new BiPopupManager).hideAutoHiding(target);            var tmp = target;            while (tmp != null && !tmp.getCanFocus())                tmp = tmp._parent;            if (tmp != null && tmp.getCanFocus())                {                if (BiBrowserCheck.ie)                    {                    try                        {                        tmp._element.setActive();                        }                    catch (ex)                        {                        }                    }                else                    {                    }                }            break;        case "mouseover":            try                {                var tmp = e.relatedTarget || e.fromElement;                while (tmp != null && tmp._biComponent == null)                    tmp = tmp.parentNode;                if (tmp && tmp._biComponent == target)                    {                    biEvent.dispose();                    return;                    }                }            catch (ex)                {                }            break;        case "mouseout":            try                {                var tmp = e.relatedTarget || e.toElement;                while (tmp != null && tmp._biComponent == null)                    tmp = tmp.parentNode;                if (tmp && tmp._biComponent == target)                    {                    biEvent.dispose();                    return;                    }                }            catch (ex)                {                }            break;        }    var rv = target.dispatchEvent(biEvent);    switch (type)        {        case "mouseover":            ( new BiToolTipManager).handleMouseOver(biEvent);            break;        case "mouseout":            ( new BiToolTipManager).handleMouseOut(biEvent);            break;        case "contextmenu":            if (!rv)                break;            var cm;            while (target && !(cm = target.getContextMenu()))                target = target._parent;            if (cm)                {                cm._component = target;                cm.setLocation(biEvent.getScreenX(), biEvent.getScreenY());                cm._component = target;                cm.setVisible(true);                }            break;        }    biEvent.dispose();    return rv;    };_p._onkeyevent = function(e)    {    if (!e)        e = this._window.event;    var el = this._mozActiveElement || e.target || e.srcElement;    while (el != null && el._biComponent == null)        el = el.parentNode;    if (el == null)        return;    var target = el._biComponent;    while (target && !target.getEnabled())        target = target._parent;    if (target == null)        return;    return target.dispatchEvent(new BiKeyboardEvent(e.type, e));    };_p._onactivateevent = function(e)    {    if (!e)        e = this._window.event    var el = e.target || e.srcElement;    while (el != null && el._biComponent == null)        el = el.parentNode;    if (el == null)        return;    var target = el._biComponent;    while (target != null && !target.getCanFocus())        target = target._parent;    if (target == null)        return;    this._setFocusedComponent(target);    };_p._setFocusedComponent = function(oComponent)    {    if (this._lastFocused == oComponent)        return;    var blurComp = this._lastFocused;    var focusComp = oComponent;    if (oComponent)        {        var fr = oComponent.getFocusRoot();        fr._activeComponent = oComponent;        }    else if (this._lastFocused)        {        var fr = this._lastFocused.getFocusRoot();        fr._activeComponent = null;        }    this._lastFocused = oComponent;    ( new BiPopupManager).hideAutoHiding(focusComp);    if (blurComp)        {        blurComp._focused = false;        var e = new BiFocusEvent("focusout");        e._relatedTarget = focusComp;        blurComp.dispatchEvent(e);        }    if (focusComp)        {        focusComp._focused = true;        var e = new BiFocusEvent("focusin");        e._relatedTarget = blurComp;        focusComp.dispatchEvent(e);        }    if (blurComp)        {        var e = new BiFocusEvent("blur");        e._relatedTarget = focusComp;        blurComp.dispatchEvent(e);        ( new BiToolTipManager).handleBlur(e);        }    if (focusComp)        {        var e = new BiFocusEvent("focus");        e._relatedTarget = blurComp;        focusComp.dispatchEvent(e);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -