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

📄 grouptree_member.cs

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

    public class grouptree_member : tree_widget.item_type
    {
        private int m_inner_space = 2;
        private PersonalGroupMember m_member;
        private static int ms_small_image_height = 0x10;
        private static int ms_small_image_width = 0x10;

        public grouptree_member(PersonalGroupMember member)
        {
            if (member == null)
            {
                throw new ArgumentNullException("member");
            }
            this.m_member = member;
        }

        internal override void dispose()
        {
            base.dispose();
            this.m_member = null;
        }

        internal override void draw(Graphics g, Rectangle rcItem, tree_widget.item_state state)
        {
            if (this.m_member != null)
            {
                int left = rcItem.Left;
                if (left == 0)
                {
                    left = 5;
                }
                if (this.m_member.GroupMemeberInfo.GroupAbilityImage != null)
                {
                    int top = rcItem.Top + ((rcItem.Height - this.m_member.GroupMemeberInfo.GroupAbilityImage.Height) / 2);
                    g.DrawImage(this.m_member.GroupMemeberInfo.GroupAbilityImage, Rectangle.FromLTRB(left, top, left + this.m_member.GroupMemeberInfo.GroupAbilityImage.Width, top + this.m_member.GroupMemeberInfo.GroupAbilityImage.Height));
                    left += this.m_member.GroupMemeberInfo.GroupAbilityImage.Width;
                    left += this.m_inner_space * 2;
                }
                int right = rcItem.Right - this.m_inner_space;
                if (this.m_member.GroupMemeberInfo.GroupIdentityImage != null)
                {
                    right -= this.m_member.GroupMemeberInfo.GroupIdentityImage.Width + (this.m_inner_space * 2);
                }
                using (StringFormat fmt = new StringFormat())
                {
                    fmt.Alignment = StringAlignment.Near;
                    fmt.LineAlignment = StringAlignment.Center;
                    fmt.FormatFlags |= StringFormatFlags.NoWrap;
                    fmt.Trimming = StringTrimming.EllipsisCharacter;
                    Rectangle rc = Rectangle.FromLTRB(left, rcItem.Top + this.m_inner_space, right, rcItem.Bottom - this.m_inner_space);
                    Font font = base.host.Font;
                    if (this.IsCurrentUser)
                    {
                        font = new Font(font.FontFamily, font.Size, FontStyle.Bold);
                    }
                    this.m_member.RichDisplayName.Draw(g, font, this.ForeColor, rc, fmt, ref left);
                    left += this.m_inner_space * 4;
                    if (left < right)
                    {
                        using (Brush brush = new SolidBrush(Color.Gray))
                        {
                            Rectangle layoutRectangle = Rectangle.FromLTRB(left, rcItem.Top + this.m_inner_space, right, rcItem.Bottom - this.m_inner_space);
                            g.DrawString(this.m_member.GroupMemeberInfo.PresenseDescription, base.host.Font, brush, layoutRectangle, fmt);
                        }
                    }
                }
                if (this.m_member.GroupMemeberInfo.GroupIdentityImage != null)
                {
                    int num4 = (rcItem.Right - this.m_inner_space) - this.m_member.GroupMemeberInfo.GroupIdentityImage.Width;
                    int num5 = rcItem.Top + ((rcItem.Height - this.m_member.GroupMemeberInfo.GroupIdentityImage.Height) / 2);
                    g.DrawImage(this.m_member.GroupMemeberInfo.GroupIdentityImage, Rectangle.FromLTRB(num4, num5, num4 + this.m_member.GroupMemeberInfo.GroupIdentityImage.Width, num5 + this.m_member.GroupMemeberInfo.GroupIdentityImage.Height));
                }
            }
        }

        internal override void on_after_edit(string strNewText, object context)
        {
            if (!(context is bool))
            {
                throw new ArgumentException("context is not bool type");
            }
            if (((bool) context) && (this.m_member.Uri.Raw == this.m_member.Owner.Uri.Raw))
            {
                this.m_member.OwnerGroup.UserInfo.GroupNickName.ProposedValue = strNewText.Trim();
                this.m_member.OwnerGroup.UserInfo.CommitChanges(new AsyncBizOperation());
            }
        }

        internal override void on_before_edit(object initParam, ref Rectangle rcEdit, ref string strInitText, ref object context, ref bool fCancel)
        {
            if (base.host != null)
            {
                base.on_before_edit(initParam, ref rcEdit, ref strInitText, ref context, ref fCancel);
                if (!this.m_member.EnableEditUserSetProfile)
                {
                    fCancel = true;
                }
                else
                {
                    strInitText = this.m_member.GroupMemeberInfo.GroupNickName.Value;
                    context = true;
                }
            }
        }

        internal override void on_mousemove(MouseEventArgs args, Rectangle rcItem)
        {
            base.on_mousemove(args, rcItem);
            base.host.Cursor = base.host.NormalCursor;
        }

        internal void update()
        {
        }

        public override Color ForeColor
        {
            get
            {
                if (this.IsCurrentUser)
                {
                    return Color.Blue;
                }
                return base.ForeColor;
            }
            internal set
            {
                base.ForeColor = value;
            }
        }

        public override int height
        {
            get
            {
                return 0x16;
            }
        }

        private bool IsCurrentUser
        {
            get
            {
                return (this.member.Owner.Uri.Raw == this.member.Uri.Raw);
            }
        }

        public PersonalGroupMember member
        {
            get
            {
                return this.m_member;
            }
        }
    }
}

⌨️ 快捷键说明

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