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

📄 personalgroupentrylistcontrol.cs

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

    public class PersonalGroupEntryListControl : UserControl
    {
        private EmptyPersonalGroupControl _emptyControl;
        private IFrameworkWindow _framework;
        private PersonalGroupListControl _listControl;
        private IContainer components;

        public PersonalGroupEntryListControl(IFrameworkWindow framework)
        {
            this.InitializeComponent();
            this._framework = framework;
        }

        private void CreateGroupButton_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.Currentuser.Status == UserAccountStatus.Logon)
                {
                    this._framework.PersonalGroupManager.CreatePersonalGroup(base.FindForm());
                }
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
            }
        }

        private void Currentuser_StatusChanged(object sender, UserSatusChangedEventArgs e)
        {
            switch (e.NewStatus)
            {
                case UserAccountStatus.Logon:
                case UserAccountStatus.OfflineLogon:
                    this.InitControl();
                    this.EnableToolBar();
                    break;

                case UserAccountStatus.Logouting:
                case UserAccountStatus.Logoff:
                case UserAccountStatus.Disconnected:
                case UserAccountStatus.WaitReconnect:
                case UserAccountStatus.StandBy:
                    break;

                default:
                    return;
            }
        }

        private void DisplayModeTrackBar_ValueChanged(object sender, EventArgs e)
        {
            try
            {
                this.ListControl.ShowGroupdetail = this.ShowGroupDetail;
                this._framework.AccountManager.CurrentUser.Configuration.UserSetting.ConversationSetting.ShowPersonalGroupDetail = this.ShowGroupDetail;
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
            }
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (this.components != null))
            {
                this.components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void EnableToolBar()
        {
            BGroupListControlToolbar toolbar = this._framework.PersonalGroupManager.ToolbarControl as BGroupListControlToolbar;
            if (this.Currentuser.Status == UserAccountStatus.OfflineLogon)
            {
                toolbar.CreateGroupButton.Enabled = false;
                toolbar.SearchGroupButton.Enabled = false;
            }
            else if (this.Currentuser.Status == UserAccountStatus.Logon)
            {
                toolbar.CreateGroupButton.Enabled = true;
                toolbar.SearchGroupButton.Enabled = true;
            }
        }

        private void InitControl()
        {
            base.Controls.Clear();
            if (this.Currentuser.PersonalGroups.Count > 0)
            {
                base.Controls.Add(this.ListControl);
            }
            else
            {
                base.Controls.Add(this.EmptyControl);
                if (this.Currentuser.Status == UserAccountStatus.OfflineLogon)
                {
                    this.EmptyControl.Enabled = false;
                }
                else if (this.Currentuser.Status == UserAccountStatus.Logon)
                {
                    this.EmptyControl.Enabled = true;
                }
            }
        }

        private void InitGroupEvent()
        {
            this.Currentuser.PersonalGroupManager.GroupAdded += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupAdded);
            this.Currentuser.PersonalGroupManager.GroupDeleted += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupDeleted);
            this.Currentuser.PersonalGroupManager.GroupRemoved += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupDeleted);
            this.Currentuser.PersonalGroupManager.MeBeDeleted += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupDeleted);
            this.Currentuser.StatusChanged += new EventHandler<UserSatusChangedEventArgs>(this, (IntPtr) this.Currentuser_StatusChanged);
            this.Currentuser.PersonalGroups.GroupLoadStatusChanged += new EventHandler(this.PersonalGroups_GroupLoadStatusChanged);
        }

        private void InitializeComponent()
        {
            base.SuspendLayout();
            base.set_AutoScaleDimensions(new SizeF(6f, 13f));
            base.set_AutoScaleMode(1);
            base.Name = "PersonalGroupEntryListControl";
            base.Size = new Size(240, 390);
            base.ResumeLayout(false);
        }

        private void InitToolBar()
        {
            BGroupListControlToolbar toolbar = this._framework.PersonalGroupManager.ToolbarControl as BGroupListControlToolbar;
            toolbar.DisplayModeTrackBar.Value = this.Currentuser.Configuration.UserSetting.ConversationSetting.ShowPersonalGroupDetail ? 1 : 0;
            toolbar.CreateGroupButton.Click += new EventHandler(this.CreateGroupButton_Click);
            toolbar.SearchGroupButton.Click += new EventHandler(this.SearchGroupButton_Click);
            toolbar.DisplayModeTrackBar.ValueChanged += new EventHandler(this.DisplayModeTrackBar_ValueChanged);
            this.EnableToolBar();
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            this.InitToolBar();
            this.InitControl();
            this.InitGroupEvent();
        }

        private void PersonalGroupManager_GroupAdded(object sender, EventArgs e)
        {
            if (base.Controls[0].GetType() == typeof(EmptyPersonalGroupControl))
            {
                base.Controls.Clear();
                base.Controls.Add(this.ListControl);
            }
        }

        private void PersonalGroupManager_GroupDeleted(object sender, EventArgs e)
        {
            if (this.Currentuser.PersonalGroups.Count == 0)
            {
                base.Controls.Clear();
                base.Controls.Add(this.EmptyControl);
            }
        }

        private void PersonalGroups_GroupLoadStatusChanged(object sender, EventArgs e)
        {
            if ((this.Currentuser.PersonalGroups.GroupLoadStatus == PersonalGroupLoadStatus.Loaded) || (this.Currentuser.PersonalGroups.GroupLoadStatus == PersonalGroupLoadStatus.Failed))
            {
                this.InitControl();
            }
        }

        private void SearchGroupButton_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.Currentuser.Status == UserAccountStatus.Logon)
                {
                    this._framework.PersonalGroupManager.SearchGroup(base.FindForm());
                }
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
            }
        }

        private User Currentuser
        {
            get
            {
                return this._framework.AccountManager.CurrentUser;
            }
        }

        private Control EmptyControl
        {
            get
            {
                if (this._emptyControl == null)
                {
                    this._emptyControl = new EmptyPersonalGroupControl(this._framework);
                    this._emptyControl.Dock = DockStyle.Fill;
                }
                return this._emptyControl;
            }
        }

        private PersonalGroupListControl ListControl
        {
            get
            {
                if (this._listControl == null)
                {
                    this._listControl = new PersonalGroupListControl(this._framework);
                    this._listControl.ShowGroupdetail = this.ShowGroupDetail;
                    this._listControl.Dock = DockStyle.Fill;
                }
                return this._listControl;
            }
        }

        private bool ShowGroupDetail
        {
            get
            {
                return ((this._framework.PersonalGroupManager.ToolbarControl as BGroupListControlToolbar).DisplayModeTrackBar.Value == 1);
            }
        }
    }
}

⌨️ 快捷键说明

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