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

📄 tree_widget.cs

📁 破解的飞信源代码
💻 CS
📖 第 1 页 / 共 5 页
字号:
                        }
                    }
                }
                catch
                {
                }
            }
            return end;
        }

        protected virtual void on_focus_edit(Rectangle rcEdit, string strInitText, object context)
        {
            if (((rcEdit.Left < rcEdit.Right) && (rcEdit.Top < rcEdit.Bottom)) && (((rcEdit.Left < base.ClientRectangle.Right) && (rcEdit.Top < base.ClientRectangle.Bottom)) && ((rcEdit.Right > base.ClientRectangle.Left) && (rcEdit.Bottom > base.ClientRectangle.Top))))
            {
                int x = rcEdit.Left;
                int right = rcEdit.Right;
                int y = rcEdit.Top;
                int bottom = rcEdit.Bottom;
                if (x <= base.ClientRectangle.Left)
                {
                    x = base.ClientRectangle.Left + base.get_Margin().get_Left();
                }
                if (right >= base.ClientRectangle.Right)
                {
                    right = base.ClientRectangle.Right - base.get_Margin().get_Right();
                }
                if (y <= base.ClientRectangle.Top)
                {
                    y = base.ClientRectangle.Top + base.get_Margin().get_Top();
                }
                if (bottom >= base.ClientRectangle.Bottom)
                {
                    bottom = base.ClientRectangle.Bottom - base.get_Margin().get_Bottom();
                }
                if ((x < right) && (y < bottom))
                {
                    if (this.m_item_edit == null)
                    {
                        this.m_item_edit = new item_edit_control();
                    }
                    if (this.m_item_edit.Visible)
                    {
                        this.m_item_edit.cancel();
                    }
                    this.m_item_edit.m_init_text = strInitText;
                    this.m_item_edit.m_context = context;
                    this.m_item_edit.Location = new System.Drawing.Point(x, y);
                    this.m_item_edit.Text = strInitText;
                    this.m_item_edit.Size = new Size(right - x, bottom - y);
                    if (this.m_item_edit.Height < rcEdit.Height)
                    {
                        this.m_item_edit.Top += (int) (((float) (rcEdit.Height - this.m_item_edit.Height)) / 2f);
                    }
                    this.m_item_edit.Visible = true;
                    this.m_item_edit.Focus();
                    this.m_item_edit.SelectAll();
                    this.m_item_edit_backGround.Location = new System.Drawing.Point(x, y);
                    this.m_item_edit_backGround.Size = new Size(right - x, bottom - y);
                    this.m_item_edit_backGround.Visible = true;
                }
            }
        }

        private void on_focus_edited()
        {
            if ((this.m_focus_item != null) || (this.m_focus_item.data != null))
            {
                this.m_focus_item.data.on_after_edit(this.m_item_edit.Text, this.m_item_edit.m_context);
            }
        }

        private void on_update_dragging_img(int yOffset)
        {
            new System.Drawing.Point(base.ClientRectangle.Left, yOffset);
        }

        protected override void OnDragDrop(DragEventArgs drgevent)
        {
            base.OnDragDrop(drgevent);
            this.m_fDragging = false;
            this.m_fToggling = false;
            if (!drgevent.Data.GetDataPresent("{66FFF7D8-C9A4-4a5d-9707-82D22DF3633F}"))
            {
                this.OnDragDropSomething(drgevent);
            }
            else
            {
                try
                {
                    dragging_data data = drgevent.Data.GetData("{66FFF7D8-C9A4-4a5d-9707-82D22DF3633F}") as dragging_data;
                    if (this == data.host_widget)
                    {
                        this.OnDragDropItem(data);
                    }
                    else
                    {
                        this.OnDragDropItemInto(data);
                    }
                }
                catch (Exception exception)
                {
                    ClientLogger.WriteException(exception);
                }
            }
        }

        protected virtual void OnDragDropItem(dragging_data data)
        {
            if (this != data.host_widget)
            {
                throw new ArgumentException("data.host_widget must be the current tree_widget object", "data");
            }
        }

        protected virtual void OnDragDropItemInto(dragging_data data)
        {
            if (this == data.host_widget)
            {
                throw new ArgumentException("data.host_widget can not be the current tree_widget object", "data");
            }
        }

        protected virtual void OnDragDropSomething(DragEventArgs drgevent)
        {
        }

        protected virtual void OnDragItemIntoOver(DragEventArgs drgevent, dragging_data data)
        {
        }

        protected virtual void OnDragItemOver(DragEventArgs drgevent, dragging_data data)
        {
        }

        protected override void OnDragLeave(EventArgs e)
        {
            base.OnDragLeave(e);
            this.OnMouseLeave(e);
        }

        protected override void OnDragOver(DragEventArgs drgevent)
        {
            base.OnDragOver(drgevent);
            System.Drawing.Point point = base.PointToClient(Cursor.Position);
            MouseEventArgs e = new MouseEventArgs(MouseButtons.None, 0, point.X, point.Y, 0);
            this.OnMouseMove(e);
            if (e.Y < (base.ClientRectangle.Top + 10))
            {
                this.LineScroll(false, true);
            }
            else if (e.Y > (base.ClientRectangle.Bottom - 10))
            {
                this.LineScroll(true, true);
            }
            if (!drgevent.Data.GetDataPresent("{66FFF7D8-C9A4-4a5d-9707-82D22DF3633F}"))
            {
                this.OnDragSomethingOver(drgevent);
            }
            else
            {
                try
                {
                    dragging_data data = drgevent.Data.GetData("{66FFF7D8-C9A4-4a5d-9707-82D22DF3633F}") as dragging_data;
                    if (this == data.host_widget)
                    {
                        this.OnDragItemOver(drgevent, data);
                    }
                    else
                    {
                        this.OnDragItemIntoOver(drgevent, data);
                    }
                }
                catch (Exception exception)
                {
                    ClientLogger.WriteException(exception);
                }
            }
        }

        protected virtual void OnDragSomethingOver(DragEventArgs drgevent)
        {
        }

        protected override void OnHandleDestroyed(EventArgs e)
        {
            base.OnHandleDestroyed(e);
            this.clear(false);
        }

        private void OnHScroll(ScrollEventArgs se)
        {
            win32api_wrapper.SCROLLINFO si = new win32api_wrapper.SCROLLINFO();
            si.cbSize = 0x1c;
            si.fMask = 0x17;
            win32api_wrapper.GetScrollInfo(base.Handle, 0, ref si);
            si.fMask = 4;
            switch (se.Type)
            {
                case ScrollEventType.SmallDecrement:
                    si.nPos -= 6;
                    if (si.nPos < si.nMin)
                    {
                        si.nPos = si.nMin;
                    }
                    break;

                case ScrollEventType.SmallIncrement:
                    si.nPos += 6;
                    if (si.nPos > si.nMax)
                    {
                        si.nPos = si.nMax;
                    }
                    break;

                case ScrollEventType.LargeDecrement:
                    si.nPos -= (int) si.nPage;
                    if (si.nPage > 6)
                    {
                        si.nPos += 6;
                    }
                    if (si.nPos < si.nMin)
                    {
                        si.nPos = si.nMin;
                    }
                    break;

                case ScrollEventType.LargeIncrement:
                    si.nPos += (int) si.nPage;
                    if (si.nPage > 6)
                    {
                        si.nPos -= 6;
                    }
                    if (si.nPos > si.nMax)
                    {
                        si.nPos = si.nMax;
                    }
                    break;

                case ScrollEventType.ThumbPosition:
                case ScrollEventType.ThumbTrack:
                    si.nPos = se.NewValue;
                    break;

                case ScrollEventType.First:
                    si.nPos = si.nMin;
                    break;

                case ScrollEventType.Last:
                    si.nPos = si.nMax;
                    break;
            }
            win32api_wrapper.SetScrollInfo(base.Handle, 0, ref si, true);
            win32api_wrapper.PostMessage(base.Handle, 0x40a, (IntPtr) 2, IntPtr.Zero);
        }

        protected void OnItemDoubleClick(object sender, item_type item)
        {
            tree_widget_item_handler itemDoubleClick = this.ItemDoubleClick;
            if (itemDoubleClick != null)
            {
                itemDoubleClick(this, item);
            }
        }

        protected override void OnLostFocus(EventArgs e)
        {
            base.OnLostFocus(e);
            if (this.m_item_edit.Visible && !this.m_item_edit.Focused)
            {
                this.m_item_edit.ok();
            }
        }

        protected override void OnMouseDoubleClick(MouseEventArgs e)
        {
            base.OnMouseDoubleClick(e);
            if (!this._handledMouseClick && base.ClientRectangle.Contains(e.X, e.Y))
            {
                tree<item_type>.iterator iterator = this.browse_items(new browse_item_handler(this.mousedoubleclick_handler), e);
                if (!iterator.is_end)
                {
                    this.OnItemDoubleClick(this, iterator.data);
                }
            }
        }

        protected override void OnMouseDown(MouseEventArgs e)
        {
            base.OnMouseDown(e);
            base.Focus();
            if (base.ClientRectangle.Contains(e.X, e.Y) && ((MouseButtons.Left == e.Button) || (MouseButtons.Right == e.Button)))
            {
                this.m_lastButtonDown = new MouseEventArgs(e.Button, e.Clicks, e.X, e.Y, e.Delta);
                if ((MouseButtons.Left == e.Button) && this.m_item_edit.Visible)
                {
                    this.m_item_edit.ok();
                }
                tree<item_type>.iterator item = this.browse_items(new browse_item_handler(this.mousedown_handler), e);
                if ((e.Button == MouseButtons.Left) || (e.Button == MouseButtons.Right))
                {
                    if (this.multi_select)
                    {
                        if (MouseButtons.Left == e.Button)
                        {
                            if (8 == (this.m_lastLButtonDownMsg.WParam.ToInt32() & 8))
                            {
                                if (this.m_selected_items.Contains(item))
                                {
                                    this.remove_selected_item(item, true);
                                }
                                else
                                {
                                    this.add_selected_item(item, true);
                                }
                            }
                            else if (4 == (this.m_lastLButtonDownMsg.WParam.ToInt32() & 4))
                            {
                                this.select_items(item, true);
                            }
                            else
                            {
                                this.select_singleitem(item, true);
                            }
                            this.change_focus_item(item, true);

⌨️ 快捷键说明

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