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