📄 optionsform.cs
字号:
{
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 + -