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

📄 elementsmanager.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace Imps.Client.Pc
{
    using System;
    using System.Drawing;
    using System.Windows.Forms;

    public class ElementsManager
    {
        private ElementControls _controls = new ElementControls();
        private Element _last_mouseon_element;
        private EForm _owner;
        public Element _rearrange_element;
        private bool _visible = true;

        public ElementsManager(EForm form)
        {
            this._owner = form;
        }

        public void Dispose()
        {
            foreach (Element element in this._controls)
            {
                element._style.Dispose();
                element.Dispose();
            }
        }

        public bool MouseOnElement(System.Drawing.Point pt)
        {
            foreach (Element element in this._controls)
            {
                if ((element.Visible && element.HandleMouse) && PointInRect(pt, element.Rectangle))
                {
                    return true;
                }
            }
            return false;
        }

        public void OnMouseClick(MouseEventArgs e)
        {
            foreach (Element element in this._controls)
            {
                if (element.Visible && element.HandleMouse)
                {
                    PointInRect(new System.Drawing.Point(e.X, e.Y), element.Rectangle);
                }
            }
        }

        public void OnMouseDown(MouseEventArgs e)
        {
            Element element = null;
            foreach (Element element2 in this._controls)
            {
                if ((element2.Visible && element2.HandleMouse) && PointInRect(new System.Drawing.Point(e.X, e.Y), element2.Rectangle))
                {
                    element = element2;
                }
            }
            if (element != null)
            {
                element.OnMouseDown(e);
            }
            if (this._rearrange_element != null)
            {
                this.Controls.Remove(this._rearrange_element);
                this.Controls.Add(this._rearrange_element);
                this._rearrange_element = null;
            }
        }

        public void OnMouseLeave(MouseEventArgs e)
        {
            foreach (Element element in this._controls)
            {
                if ((element.HandleMouse && element.Visible) && (this._last_mouseon_element == element))
                {
                    element.OnMouseLeave(e);
                }
            }
        }

        public void OnMouseMove(MouseEventArgs e)
        {
            Element element = null;
            Element element2 = null;
            foreach (Element element3 in this.Controls)
            {
                if (!element3.Visible || !element3.HandleMouse)
                {
                    continue;
                }
                if (PointInRect(new System.Drawing.Point(e.X, e.Y), element3.Rectangle))
                {
                    element = element3;
                    continue;
                }
                if (this._last_mouseon_element == element3)
                {
                    element2 = element3;
                }
            }
            if (((element != null) && (this._last_mouseon_element != element)) && (element2 == null))
            {
                element2 = this._last_mouseon_element;
            }
            if (element2 != null)
            {
                element2.OnMouseLeave(e);
                this._owner.Cursor = Cursors.Default;
                this._owner.toolTip.Active = false;
            }
            if ((element != null) && (this._last_mouseon_element != element))
            {
                element.OnMouseHover(e);
                ElementButton button = element as ElementButton;
                if (((button != null) && (button.Style.Cursor != null)) && (button.State != ElementButton.ButtonState.STATE_DISABLE))
                {
                    this._owner.Cursor = button.Style.Cursor;
                }
                if (button != null)
                {
                    this._owner.toolTip.Active = true;
                    this._owner.toolTip.SetToolTip(this._owner, button._tooltip);
                }
            }
            this._last_mouseon_element = element;
        }

        public void OnMouseUp(MouseEventArgs e)
        {
            Element element = null;
            foreach (Element element2 in this._controls)
            {
                if (!element2.HandleMouse || !element2.Visible)
                {
                    continue;
                }
                if (PointInRect(new System.Drawing.Point(e.X, e.Y), element2.Rectangle))
                {
                    element = element2;
                    continue;
                }
                element2.OnMouseUp(e);
            }
            if (element != null)
            {
                element.OnMouseUp(e);
            }
        }

        public void OnPaint(PaintEventArgs e)
        {
            foreach (Element element in this._controls)
            {
                if (element.Visible)
                {
                    element.OnPaint(e);
                }
            }
        }

        public void OnSizeChanged(int w, int h)
        {
            foreach (Element element in this._controls)
            {
                element.OnSizeChanged(w, h);
            }
        }

        public static bool PointInRect(System.Drawing.Point pt, Rectangle rect)
        {
            return (((pt.X >= rect.Left) && (pt.X <= rect.Right)) && ((pt.Y >= rect.Top) && (pt.Y <= rect.Bottom)));
        }

        public void RearrangeElement(Element e)
        {
            if (e != null)
            {
                this.Controls.Remove(e);
                this.Controls.Add(e);
            }
        }

        public void StyleDispose()
        {
            foreach (Element element in this._controls)
            {
                element._style.Dispose();
            }
        }

        public ElementControls Controls
        {
            get
            {
                return this._controls;
            }
        }

        public bool Visible
        {
            get
            {
                return this._visible;
            }
            set
            {
                if (this._visible != value)
                {
                    this._owner.Invalidate();
                }
                this._visible = value;
            }
        }
    }
}

⌨️ 快捷键说明

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