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

📄 optionsform.cs

📁 破解的飞信源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
                        {
                            item3.OptionsControl.UpdateData(update);
                        }
                    }
                }
                finally
                {
                    enumerator4.Dispose();
                }
            }
            return true;
        }

        private void lbOptionItems_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (sender is listbox_widget_t<headicon>)
            {
                try
                {
                    OptionsItem item = null;
                    if (this.m_default_options.Equals(sender))
                    {
                        if (-1 == this.m_default_options.get_selected_index())
                        {
                            return;
                        }
                        item = this._optionItems.get_Item(this.m_default_options.get_selected_index());
                    }
                    else if (this.m_system_options.Equals(sender))
                    {
                        if (-1 == this.m_system_options.get_selected_index())
                        {
                            return;
                        }
                        item = this._optionItems.get_Item(this.m_system_options.get_selected_index() + this.m_personal_options.Items.Count);
                    }
                    else if (this.m_personal_options.Equals(sender))
                    {
                        if (-1 == this.m_personal_options.get_selected_index())
                        {
                            return;
                        }
                        item = this._optionItems.get_Item(this.m_personal_options.get_selected_index());
                    }
                    item.OptionsControl.ModifiedChanged += new EventHandler(this.oc_ModifiedStateChanged);
                    this.pnlOptions.SuspendLayout();
                    this.pnlOptions.Controls.Clear();
                    this.pnlOptions.Controls.Add(item.OptionsControl.Control);
                    item.OptionsControl.Control.Visible = true;
                    this.pnlOptions.ResumeLayout();
                }
                catch (Exception exception)
                {
                    UiErrorHelper.HandExceptionSafely(this._frameworkWnd, exception);
                }
            }
        }

        private void m_slider_pane_selected_index_changing(object sender, slider_pane.cancel_select_event_args e)
        {
            try
            {
                if ((1 == this.pnlOptions.Controls.get_Count()) && (this.pnlOptions.Controls[0] is IOptionsControl))
                {
                    IOptionsControl control = (IOptionsControl) this.pnlOptions.Controls[0];
                    if (control.Modified && !control.CheckUserInput())
                    {
                        e.Cancel = true;
                    }
                }
            }
            catch (Exception exception)
            {
                UiErrorHelper.HandExceptionSafely(this._frameworkWnd, exception);
            }
        }

        private void oc_ModifiedStateChanged(object sender, EventArgs e)
        {
            try
            {
                Dictionary<int, OptionsItem>.ValueCollection.Enumerator enumerator = this._optionItems.get_Values().GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        OptionsItem item = enumerator.get_Current();
                        if (item.ControlAvailable && item.OptionsControl.Modified)
                        {
                            this.btnApply.Enabled = true;
                            return;
                        }
                    }
                }
                finally
                {
                    enumerator.Dispose();
                }
                this.btnApply.Enabled = false;
            }
            catch (Exception exception)
            {
                this._frameworkWnd.UnifiedMessageBox.ShowException(this, exception);
            }
        }

        protected override void OnCreateControl()
        {
            base.OnCreateControl();
            this.m_slider_pane.Location = new System.Drawing.Point(0, 0);
        }

        protected override void OnFormClosed(FormClosedEventArgs e)
        {
            this._frameworkWnd.AccountManager.CurrentUser.StatusChanged -= new EventHandler<UserSatusChangedEventArgs>(this, (IntPtr) this.CurrentUser_StatusChanged);
            this.pnlOptions.Controls.Clear();
            Dictionary<int, OptionsItem>.ValueCollection.Enumerator enumerator = this._optionItems.get_Values().GetEnumerator();
            try
            {
                while (enumerator.MoveNext())
                {
                    OptionsItem item = enumerator.get_Current();
                    if (item.ControlAvailable)
                    {
                        item.OptionsControl.ModifiedChanged -= new EventHandler(this.oc_ModifiedStateChanged);
                        item.OptionsControl.ControlUnload();
                    }
                }
            }
            finally
            {
                enumerator.Dispose();
            }
            base.OnFormClosed(e);
            Form owner = base.Owner;
            if (owner != null)
            {
                owner.Activate();
            }
        }

        private void OnSelectingOptionItem(object sender, listbox_widget.cancel_select_event_args args)
        {
            try
            {
                if ((1 == this.pnlOptions.Controls.get_Count()) && (this.pnlOptions.Controls[0] is IOptionsControl))
                {
                    IOptionsControl control = (IOptionsControl) this.pnlOptions.Controls[0];
                    if (control.Modified && !control.CheckUserInput())
                    {
                        args.Cancel = true;
                    }
                }
            }
            catch (Exception exception)
            {
                UiErrorHelper.HandExceptionSafely(this._frameworkWnd, exception);
            }
        }

        protected override void OnShown(EventArgs e)
        {
            base.OnShown(e);
            this.m_slider_pane.selected_index = (this.m_slider_pane.item_count - this.m_slider_pane.selected_index) - 1;
            this.m_slider_pane.selected_index = (this.m_slider_pane.item_count - this.m_slider_pane.selected_index) - 1;
        }

        private void OnSliderPaneSelectedIndexChanged(object sender, EventArgs args)
        {
            if (sender.Equals(this.m_slider_pane) && (2 == this.m_slider_pane.item_count))
            {
                if (this.m_slider_pane.selected_index == 0)
                {
                    this.lbOptionItems_SelectedIndexChanged(this.m_personal_options, args);
                }
                else if (1 == this.m_slider_pane.selected_index)
                {
                    this.lbOptionItems_SelectedIndexChanged(this.m_system_options, args);
                }
            }
        }

        private void OptionsForm_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.Options.OptionFormTitle;
        }

        private void opUpdate_ImpsError(object sender, ImpsErrorEventArgs e)
        {
            try
            {
                if (base.IsHandleCreated)
                {
                    AsyncBizOperation operation = (AsyncBizOperation) sender;
                    List<IOptionsControl>.Enumerator enumerator = ((List<IOptionsControl>) operation.ContextForUi).GetEnumerator();
                    try
                    {
                        while (enumerator.MoveNext())
                        {
                            enumerator.get_Current().UpdateData(false);
                        }
                    }
                    finally
                    {
                        enumerator.Dispose();
                    }
                    this._frameworkWnd.UnifiedMessageBox.ShowError(this, StringTable.MsgOperationError);
                }
                this._frameworkWnd.UnifiedMessageBox.ShowError(StringTable.MsgOperationError);
            }
            catch
            {
            }
        }

        private void Reset()
        {
            this._optionItems = new Dictionary<int, OptionsItem>();
            this.m_system_options.Items.Clear();
            this.m_personal_options.Items.Clear();
            this.m_default_options.Items.Clear();
            this.btnApply.Enabled = false;
            OptionsCategory[] categories = ((MainForm) this._frameworkWnd).InnerOptionsManager.Categories;
            if (categories.Length == 1)
            {
                this.m_slider_pane.add_slider("系统设置", "", null, this.m_default_options);
                foreach (OptionsItem item in categories[0].Items)
                {
                    if (item != null)
                    {
                        int num = this.m_default_options.add(new headicon(null, item.Text));
                        this._optionItems.Add(num, item);
                        if (item.ControlAvailable)
                        {
                            item.OptionsControl.Control.Visible = false;
                            this.pnlOptions.Controls.Add(item.OptionsControl.Control);
                        }
                    }
                }
                this.m_slider_pane.select_slider(0);
                this.m_default_options.SelectedIndex = 0;
            }
            else
            {
                int num2 = 0;
                foreach (OptionsCategory category in categories)
                {
                    foreach (OptionsItem item2 in category.Items)
                    {
                        if (item2 != null)
                        {
                            int num3 = 0;
                            if (num2 == 0)
                            {
                                num3 = this.m_personal_options.add(new headicon(null, item2.Text));
                            }
                            else
                            {
                                num3 = this.m_system_options.add(new headicon(null, item2.Text)) + this.m_personal_options.Items.Count;
                            }
                            this._optionItems.Add(num3, item2);
                            if (item2.ControlAvailable)
                            {
                                item2.OptionsControl.Control.Visible = false;
                                this.pnlOptions.Controls.Add(item2.OptionsControl.Control);
                            }
                        }
                    }
                    if (num2 == 0)
                    {
                        this.m_slider_pane.insert_slider(0, category.Name, "", null, this.m_personal_options, this.m_personal_options.Items.Count * this.m_headicon_list_drawer.item_height);
                    }
                    else
                    {
                        this.m_slider_pane.add_slider(category.Name, "", null, this.m_system_options, this.m_system_options.Items.Count * this.m_headicon_list_drawer.item_height);
                    }
                    num2++;
                }
                this.m_personal_options.SelectedIndex = 0;
                this.m_system_options.SelectedIndex = 0;
                this.m_slider_pane.select_slider(0);
            }
        }

        public void ShowOptions(IWin32Window owner, string name)
        {
            if (!base.Visible)
            {
                this.Reset();
            }
            int num = this.InnerFindOcpByName(name);
            if (1 == this.m_slider_pane.item_count)
            {
                if ((0 <= num) && (num < this.m_default_options.Items.Count))
                {
                    this.m_default_options.SelectedIndex = num;
                }
                else
                {
                    this.m_default_options.SelectedIndex = 0;
                }
            }
            else
            {
                if (2 != this.m_slider_pane.item_count)
                {
                    throw new OverflowException();
                }
                if ((0 <= num) && (num < this.m_personal_options.Items.Count))
                {
                    this.m_personal_options.SelectedIndex = num;
                    this.m_slider_pane.select_slider(0);
                }
                else if ((this.m_system_options.Items.Count <= num) && (num < (this.m_system_options.Items.Count + this.m_personal_options.Items.Count)))
                {
                    this.m_system_options.SelectedIndex = num - this.m_personal_options.Items.Count;
                    this.m_slider_pane.select_slider(1);
                }
            }
            if (base.Visible)
            {
                base.BringToFront();
                base.Activate();
            }
            else
            {
                if (owner == null)
                {
                    owner = (Form) this._frameworkWnd;
                }
                ControlHelper.ShowFormCenterOnParent(this, owner);
            }
        }
    }
}

⌨️ 快捷键说明

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