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

📄 groupoptionfrom.cs

📁 破解的飞信源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
namespace Imps.Client.Pc
{
    using Imps.Client;
    using Imps.Client.Core;
    using Imps.Client.Pc.BizControls;
    using Imps.Client.Pc.Controls;
    using Imps.Client.Resource;
    using Imps.Client.Utils;
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Windows.Forms;

    public class GroupOptionFrom : XIMDialog
    {
        private List<ICommittable> _commitableItems;
        private IFrameworkWindow _framework;
        private GroupOption _option;
        private Dictionary<int, OptionsItem> _optionItems;
        private PersonalGroup _personalGroup;
        private XButton btnApply;
        private XButton btnCancel;
        private XButton btnOK;
        private IContainer components;
        private listbox_widget_t<headicon> m_group_options;
        private headiconlist_drawer m_headicon_list_drawer;
        private Panel pnlBackground;
        private Panel pnlContent;
        private UPanel pnlOptionTabs;
        private XBorderControl xBorderControl1;

        public GroupOptionFrom(IFrameworkWindow wnd, PersonalGroup pg)
        {
            this.m_group_options = new listbox_widget_t<headicon>();
            this.m_headicon_list_drawer = new headiconlist_drawer();
            this._framework = wnd;
            this._personalGroup = pg;
            if (pg == null)
            {
                base.Close();
            }
            else
            {
                if (this.CurrentUser.Status == UserAccountStatus.Logon)
                {
                    this.CurrentUser.PersonalGroupManager.AsyncGetPersonalInfo(pg, new AsyncBizOperation());
                }
                this.m_headicon_list_drawer.show_focus = false;
                this.m_headicon_list_drawer.stretch_textarea = true;
                this.m_group_options.Anchor = AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Top;
                this.m_group_options.Location = new System.Drawing.Point(5, 8);
                this.m_group_options.Name = "m_group_options";
                this.m_group_options.Size = new Size(0x70, 0x114);
                this.m_group_options.TabIndex = 4;
                this.m_group_options.drawer = this.m_headicon_list_drawer;
                this.m_group_options.BorderStyle = BorderStyle.None;
                this.m_group_options.SelectedIndexChanged += new EventHandler(this.lbOptionItems_SelectedIndexChanged);
                this.m_group_options.SelectedIndexChanging += new listbox_widget.cancel_select_event_handler(this.OnSelectingOptionItem);
                this.InitializeComponent();
                base.Controls.SetChildIndex(this.pnlBackground, 0);
                this.pnlOptionTabs.Controls.Add(this.m_group_options);
                this.pnlOptionTabs.Controls.SetChildIndex(this.m_group_options, 0);
                this.xBorderControl1.Location = new System.Drawing.Point(4, 7);
                this.xBorderControl1.Size = new Size(0x72, 0x116);
                this._commitableItems = new List<ICommittable>();
                this._commitableItems.Add(this._framework.AccountManager.CurrentUser.PersonalGroups[this._personalGroup.Uri].GroupInfo);
                this._commitableItems.Add(this._framework.AccountManager.CurrentUser.PersonalGroups[this._personalGroup.Uri].UserInfo);
            }
        }

        public GroupOptionFrom(IFrameworkWindow wnd, PersonalGroup pg, GroupOption option) : this(wnd, pg)
        {
            this.Option = option;
        }

        private void btnApply_Click(object sender, EventArgs e)
        {
            try
            {
                this.InnerUpdateOptionsControl(true);
            }
            catch (Exception exception)
            {
                this._framework.UnifiedMessageBox.ShowError(this, exception.Message);
            }
            this.btnApply.Enabled = false;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            base.Close();
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.InnerUpdateOptionsControl(true))
                {
                    base.Close();
                }
            }
            catch (Exception exception)
            {
                this._framework.UnifiedMessageBox.ShowError(this, exception.Message);
            }
        }

        private void CurrentUser_StatusChanged(object sender, UserSatusChangedEventArgs e)
        {
            UiErrorHelper.HandEventSafely(this._framework, delegate {
                if (this.Visible)
                {
                    switch (e.NewStatus)
                    {
                        case UserAccountStatus.Logon:
                        case UserAccountStatus.Logoff:
                            this.Close();
                            return;

                        case UserAccountStatus.Logouting:
                            return;
                    }
                }
            });
        }

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

        private void GroupOptionFrom_Load(object sender, EventArgs e)
        {
            this.btnApply.Text = StringTable.Common.btnApply;
            this.btnOK.Text = StringTable.Common.TitleConfirm;
            this.btnCancel.Text = StringTable.Common.btnCancel;
            base.Text = StringTable.GroupOptions.OptionFormTitle;
            this.CurrentUser.StatusChanged += new EventHandler<UserSatusChangedEventArgs>(this, (IntPtr) this.CurrentUser_StatusChanged);
            this.CurrentUser.PersonalGroupManager.GroupDeleted += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupDeleted);
            this.CurrentUser.PersonalGroupManager.GroupRemoved += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_GroupRemoved);
            this.CurrentUser.PersonalGroupManager.MeBeDeleted += new EventHandler<PersonalGroupEventArgs>(this, (IntPtr) this.PersonalGroupManager_MeBeDeleted);
        }

        private void HandleException(Exception ex)
        {
            ClientLogger.WriteException(ex);
        }

        private void InitializeComponent()
        {
            ComponentResourceManager manager = new ComponentResourceManager(typeof(GroupOptionFrom));
            this.pnlBackground = new Panel();
            this.pnlContent = new Panel();
            this.pnlOptionTabs = new UPanel();
            this.xBorderControl1 = new XBorderControl();
            this.btnApply = new XButton();
            this.btnCancel = new XButton();
            this.btnOK = new XButton();
            this.pnlBackground.SuspendLayout();
            this.pnlOptionTabs.SuspendLayout();
            base.SuspendLayout();
            this.pnlBackground.BackColor = Color.Transparent;
            this.pnlBackground.Controls.Add(this.pnlContent);
            this.pnlBackground.Controls.Add(this.pnlOptionTabs);
            this.pnlBackground.Location = new System.Drawing.Point(5, 0x12);
            this.pnlBackground.Name = "pnlBackground";
            this.pnlBackground.set_Padding(new Padding(3));
            this.pnlBackground.Size = new Size(0x1bf, 0x12e);
            this.pnlBackground.TabIndex = 0;
            this.pnlContent.BackColor = Color.Transparent;
            this.pnlContent.Dock = DockStyle.Right;
            this.pnlContent.Location = new System.Drawing.Point(0x7c, 3);
            this.pnlContent.Name = "pnlContent";
            this.pnlContent.set_Padding(new Padding(3));
            this.pnlContent.Size = new Size(320, 0x128);
            this.pnlContent.TabIndex = 5;
            this.pnlOptionTabs.BackColor = Color.Transparent;
            this.pnlOptionTabs.BorderColor = Color.Transparent;
            this.pnlOptionTabs.BorderInsideColor = Color.Transparent;
            this.pnlOptionTabs.BorderInsideWidth = 1;
            this.pnlOptionTabs.BorderWidth = 0;
            this.pnlOptionTabs.Controls.Add(this.xBorderControl1);
            this.pnlOptionTabs.Dock = DockStyle.Left;
            this.pnlOptionTabs.Location = new System.Drawing.Point(3, 3);
            this.pnlOptionTabs.Name = "pnlOptionTabs";
            this.pnlOptionTabs.Size = new Size(120, 0x128);
            this.pnlOptionTabs.TabIndex = 4;
            this.xBorderControl1.BorderColor = Color.Silver;
            this.xBorderControl1.Location = new System.Drawing.Point(0x1b, 0x3d);
            this.xBorderControl1.Name = "xBorderControl1";
            this.xBorderControl1.Size = new Size(0x56, 0x62);
            this.xBorderControl1.TabIndex = 0;
            this.btnApply.AutoArrangementX = true;
            this.btnApply.AutoSizeToImage = false;
            this.btnApply.BackColor = Color.Transparent;
            this.btnApply.BackgroundImageDisable = null;
            this.btnApply.BackgroundImageDown = null;
            this.btnApply.BackgroundImageHover = null;
            this.btnApply.ChangeSkin = true;
            this.btnApply.DialogResult = DialogResult.Cancel;
            this.btnApply.Location = new System.Drawing.Point(0x14f, 0x143);
            this.btnApply.Name = "btnApply";
            this.btnApply.Size = new Size(0x4b, 0x19);
            this.btnApply.TabIndex = 5;
            this.btnApply.Text = "应用";
            this.btnApply.set_UseVisualStyleBackColor(false);
            this.btnApply.Click += new EventHandler(this.btnApply_Click);
            this.btnCancel.AutoArrangementX = true;
            this.btnCancel.AutoSizeToImage = false;
            this.btnCancel.BackColor = Color.Transparent;
            this.btnCancel.BackgroundImageDisable = null;
            this.btnCancel.BackgroundImageDown = null;
            this.btnCancel.BackgroundImageHover = null;
            this.btnCancel.ChangeSkin = true;
            this.btnCancel.DialogResult = DialogResult.Cancel;
            this.btnCancel.Location = new System.Drawing.Point(0xfe, 0x143);
            this.btnCancel.Name = "btnCancel";
            this.btnCancel.Size = new Size(0x4b, 0x19);
            this.btnCancel.TabIndex = 4;
            this.btnCancel.Text = "取消";
            this.btnCancel.set_UseVisualStyleBackColor(false);
            this.btnCancel.Click += new EventHandler(this.btnCancel_Click);
            this.btnOK.AutoArrangementX = true;
            this.btnOK.AutoSizeToImage = false;
            this.btnOK.BackColor = Color.Transparent;
            this.btnOK.BackgroundImageDisable = null;
            this.btnOK.BackgroundImageDown = null;
            this.btnOK.BackgroundImageHover = null;
            this.btnOK.ChangeSkin = true;
            this.btnOK.Location = new System.Drawing.Point(0xad, 0x143);
            this.btnOK.Name = "btnOK";
            this.btnOK.Size = new Size(0x4b, 0x19);
            this.btnOK.TabIndex = 3;
            this.btnOK.Text = "确定";
            this.btnOK.set_UseVisualStyleBackColor(false);
            this.btnOK.Click += new EventHandler(this.btnOK_Click);
            base.set_AutoScaleDimensions(new SizeF(6f, 13f));
            base.set_AutoScaleMode(1);
            base.BaseHeight = 380;
            base.BaseWidth = 0x1da;
            base.CancelButton = this.btnCancel;
            base.ClientSize = new Size(0x1d4, 0x162);
            base.Controls.Add(this.pnlBackground);
            base.Controls.Add(this.btnApply);
            base.Controls.Add(this.btnCancel);
            base.Controls.Add(this.btnOK);
            base.DisplayLocation = new System.Drawing.Point(0x12, 0x2c);
            base.Icon = (Icon) manager.GetObject("$this.Icon");
            base.Name = "GroupOptionFrom";
            base.set_Padding(new Padding(6, 0x22, 0x13, 9));
            base.Text = "群设置";
            base.Load += new EventHandler(this.GroupOptionFrom_Load);
            this.pnlBackground.ResumeLayout(false);
            this.pnlOptionTabs.ResumeLayout(false);
            base.ResumeLayout(false);
        }

        private bool InnerUpdateOptionsControl(bool update)
        {
            if (update)
            {
                bool flag = false;
                bool flag2 = false;
                Dictionary<int, OptionsItem>.Enumerator enumerator = this._optionItems.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        OptionsItem item = enumerator.get_Current().get_Value();
                        if ((item.ControlAvailable && item.OptionsControl.Modified) && !item.OptionsControl.CheckUserInput())
                        {
                            return false;
                        }
                    }
                }
                finally
                {
                    enumerator.Dispose();
                }
                List<IOptionsControl> contextForUi = new List<IOptionsControl>();
                AsyncBizOperation op = new AsyncBizOperation(contextForUi);
                op.ImpsError += new EventHandler<ImpsErrorEventArgs>(this, (IntPtr) this.opUpdate_ImpsError);
                Dictionary<int, OptionsItem>.Enumerator enumerator2 = this._optionItems.GetEnumerator();
                try
                {
                    while (enumerator2.MoveNext())
                    {
                        OptionsItem item2 = enumerator2.get_Current().get_Value();
                        if (item2.ControlAvailable && item2.OptionsControl.Modified)
                        {
                            if ((item2.OptionsControl as GroupOptionsControlBase).GroupInfoModified)
                            {
                                flag = true;
                            }
                            if ((item2.OptionsControl as GroupOptionsControlBase).UserInfoModified)
                            {
                                flag2 = true;
                            }
                            if (!item2.OptionsControl.UpdateData(update))
                            {
                                return false;
                            }
                            contextForUi.Add(item2.OptionsControl);
                        }
                    }

⌨️ 快捷键说明

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