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

📄 grouptree_widget.cs

📁 破解的飞信源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
        private void on_expand_group(object sender, bool fExpand)
        {
            if (this.on_group_expand_changed != null)
            {
                this.on_group_expand_changed(this, sender as grouptree_group, fExpand);
            }
        }

        private void on_expanding_group(object sender, bool fExpand, CancelEventArgs args)
        {
            if (this.on_group_expand_changing != null)
            {
                this.on_group_expand_changing(this, sender as grouptree_group, fExpand, args);
            }
        }

        private void PostInitializeComponent()
        {
            if (base.expand_image == null)
            {
                base.expand_image = ImpsResources.GetImage("Images.tree_expand.png");
            }
            if (base.collapse_image == null)
            {
                base.collapse_image = ImpsResources.GetImage("Images.tree_collapse.png");
            }
        }

        private void PreInitializeComponent()
        {
        }

        protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys keyData)
        {
            if (((base.m_item_edit == null) || !base.m_item_edit.Visible) && ((keyData == Keys.F6) && !base.focus_item.is_end))
            {
                base.OnItemDoubleClick(this, base.focus_item.data);
                return true;
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }

        public void remove_allitems(bool fRepaint)
        {
            Dictionary<PersonalGroup, tree<tree_widget.item_type>.iterator>.ValueCollection.Enumerator enumerator = this.m_group_iterator_map.get_Values().GetEnumerator();
            try
            {
                while (enumerator.MoveNext())
                {
                    tree<tree_widget.item_type>.iterator right = enumerator.get_Current();
                    if (((right != null) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right)) && (right.data is grouptree_group))
                    {
                        (right.data as grouptree_group).OnExpandChanged -= new tree_widget.item_type.OnExpandChangedHandler(this.on_expand_group);
                        (right.data as grouptree_group).OnExpandChanging -= new tree_widget.item_type.OnExpandChangingHandler(this.on_expanding_group);
                        (right.data as grouptree_group).on_group_click_portrait -= new grouptree_group.group_click_portrait_handler(this.on_click_group_portrait);
                    }
                }
            }
            finally
            {
                enumerator.Dispose();
            }
            this.m_group_iterator_map.Clear();
            this.m_member_iterator_map.Clear();
            base.clear(fRepaint);
        }

        public tree<tree_widget.item_type>.iterator remove_group(PersonalGroup group, bool fRepaint)
        {
            tree<tree_widget.item_type>.iterator right;
            if ((this.m_group_iterator_map.TryGetValue(group, ref right) && (right != null)) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right))
            {
                (right.data as grouptree_group).OnExpandChanged -= new tree_widget.item_type.OnExpandChangedHandler(this.on_expand_group);
                (right.data as grouptree_group).OnExpandChanging -= new tree_widget.item_type.OnExpandChangingHandler(this.on_expanding_group);
                (right.data as grouptree_group).on_group_click_portrait -= new grouptree_group.group_click_portrait_handler(this.on_click_group_portrait);
                this.m_group_iterator_map.Remove(group);
                return base.erase(right, fRepaint);
            }
            return base.end;
        }

        public tree<tree_widget.item_type>.iterator remove_member(PersonalGroup group, PersonalGroupMember member, bool fRepaint)
        {
            tree<tree_widget.item_type>.iterator right;
            if ((this.m_member_iterator_map.TryGetValue(new pair<PersonalGroupMember, PersonalGroup>(member, group), ref right) && (right != null)) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right))
            {
                this.m_member_iterator_map.Remove(new pair<PersonalGroupMember, PersonalGroup>(member, group));
                return base.erase(right, fRepaint);
            }
            return base.end;
        }

        public tree<tree_widget.item_type>.iterator remove_waiting_item(PersonalGroup group, bool fRepaint)
        {
            tree<tree_widget.item_type>.iterator right;
            if ((this.m_member_iterator_map.TryGetValue(new pair<PersonalGroupMember, PersonalGroup>(null, group), ref right) && (right != null)) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right))
            {
                this.m_member_iterator_map.Remove(new pair<PersonalGroupMember, PersonalGroup>(null, group));
                return base.erase(right, fRepaint);
            }
            return base.end;
        }

        public void sort_allitems(bool fRepaint)
        {
            if (this.m_cmp != null)
            {
                for (tree<tree_widget.item_type>.iterator right = base.first_item; !tree<tree_widget.item_type>.iterator.is_equal(base.end, right); right = base.next_sibling(right))
                {
                    base.sort_children(right, this.m_cmp, false);
                }
                if (!tree<tree_widget.item_type>.iterator.is_equal(base.end, base.m_items.root))
                {
                    base.sort_children(base.m_items.root, this.m_cmp, fRepaint);
                }
                else
                {
                    win32api_wrapper.PostMessage(base.Handle, 0x40a, (IntPtr) 2, IntPtr.Zero);
                }
            }
        }

        public void sort_members(PersonalGroup group, bool fRepaint)
        {
            tree<tree_widget.item_type>.iterator right;
            if (((this.m_cmp != null) && this.m_group_iterator_map.TryGetValue(group, ref right)) && ((right != null) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right)))
            {
                base.sort_children(right, this.m_cmp, fRepaint);
            }
        }

        public void update_group(PersonalGroup group, bool fSort, bool fRepaint)
        {
            tree<tree_widget.item_type>.iterator right;
            if (this.m_group_iterator_map.TryGetValue(group, ref right) && ((right != null) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right)))
            {
                if (fSort)
                {
                    if (this.m_cmp != null)
                    {
                        base.sort_children(base.m_items.root, this.m_cmp, fRepaint);
                    }
                }
                else if (fRepaint)
                {
                    base.draw_item(right);
                }
            }
        }

        public void update_member(PersonalGroup group, PersonalGroupMember member, bool fSort, bool fRepaint)
        {
            tree<tree_widget.item_type>.iterator right;
            if (this.m_member_iterator_map.TryGetValue(new pair<PersonalGroupMember, PersonalGroup>(member, group), ref right) && ((right != null) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right)))
            {
                (right.data as grouptree_member).update();
                if (fSort)
                {
                    if (group != null)
                    {
                        this.sort_members(group, fRepaint);
                    }
                    else
                    {
                        this.sort_allitems(fRepaint);
                    }
                }
                else if (fRepaint)
                {
                    base.draw_item(right);
                }
            }
        }

        public IComparer<tree_widget.item_type> comparer
        {
            get
            {
                return this.m_cmp;
            }
            set
            {
                this.m_cmp = value;
                if ((base.IsHandleCreated && !base.IsDisposed) && (this.m_cmp != null))
                {
                    this.sort_allitems(true);
                }
            }
        }

        public bool show_detail
        {
            get
            {
                return this.m_show_detail;
            }
            set
            {
                if (value != this.m_show_detail)
                {
                    this.m_show_detail = value;
                    if (base.IsHandleCreated && !base.IsDisposed)
                    {
                        win32api_wrapper.PostMessage(base.Handle, 0x40a, (IntPtr) 2, IntPtr.Zero);
                    }
                }
            }
        }

        public delegate void group_click_portrait_handler(object sender, grouptree_group group);

        public delegate void group_doubleclick_handler(object sender, grouptree_group group);

        public delegate void group_expand_changed_handler(object sender, grouptree_group groupNode, bool fExpanded);

        public delegate void group_expand_changing_handler(object sender, grouptree_group group, bool fExpanding, CancelEventArgs args);
    }
}

⌨️ 快捷键说明

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