📄 buserinfocontrol.cs
字号:
namespace Imps.Client.Pc
{
using Imps.Client;
using Imps.Client.Core;
using Imps.Client.Pc.BizControls;
using Imps.Client.Resource;
using Imps.Client.Utils;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
public class BUserInfoControl : UserControl
{
private UserAccountManager _manager;
private menu_widget cmMoodPhrases;
private menu_widget cmStatus;
private IContainer components;
private BDisplayPersonalMessage ctlMoodPhrase;
private BDisplayNameAndOnlineStatus ctlNickname;
private DisplayPortrait ctlPortrait;
private BPanel pnlTop;
private ToolStripButton toolColorRing;
private ToolStripButton toolIM;
private ToolStripButton toolIVR;
private ToolStripButton toolMatch;
private ToolStripButton toolShareContent;
private ToolStripButton toolSms;
private IMToolstrip tsMain;
public BUserInfoControl(UserAccountManager manager)
{
this._manager = manager;
this._manager.CurrentUser.StatusChanged += new EventHandler<UserSatusChangedEventArgs>(this.CurrentUser_StatusChanged);
this._manager.CurrentUser.PersonalInfo.PropertiesChanged += new EventHandler<PropertiesChangedEventArgs>(this.ActiveUser_PersonalInfoChanged);
this._manager.CurrentUser.Presence.PropertiesChanged += new EventHandler<PropertiesChangedEventArgs>(this.ActiveUser_PresenceChanged);
this.InitializeComponent();
this.DoLocalize();
}
private void ActiveUser_PersonalInfoChanged(object sender, PropertiesChangedEventArgs e)
{
UiErrorHelper.HandEventSafely(this._manager.FrameworkWnd, delegate {
if (e.ContainsProperty("nickname"))
{
this.ctlNickname.DisplayName = this._manager.CurrentUser.Nickname;
}
if (e.ContainsProperty("impresa"))
{
this.SetMoodPhrase(this._manager.CurrentUser.Presence.MoodPhrase.Value);
}
if (e.ContainsProperty("Portrait"))
{
ControlHelper.FadeinImage(this.ctlPortrait, this._manager.CurrentUser.PersonalInfo.PortraitMedium);
}
});
}
private void ActiveUser_PresenceChanged(object sender, PropertiesChangedEventArgs e)
{
UiErrorHelper.HandEventSafely(this._manager.FrameworkWnd, delegate {
if (e.ContainsAnyOfProperties(new string[] { "value", "desc" }))
{
this.ctlNickname.OnlineStatusText = "(" + this._manager.CurrentUser.Presence.Text + ")";
}
});
}
private void ChangeMoodPhrase_ImpsError(object sender, ImpsErrorEventArgs e)
{
UiErrorHelper.HandEventSafely(this._manager.FrameworkWnd, delegate {
this.SetMoodPhrase((string) this._manager.CurrentUser.Presence.MoodPhrase);
});
}
private void cmMoodPhrases_Opening(object sender, CancelEventArgs e)
{
UiErrorHelper.HandEventSafely(this._manager.FrameworkWnd, delegate {
this.cmMoodPhrases.Items.Clear();
MoodPhraseCollection moodPhrases = this._manager.CurrentUser.Configuration.UserSetting.MoodPhrases;
for (int j = 0; i < moodPhrases.Count; i++)
{
string text = moodPhrases[i];
if (text.Length > 0x10)
{
text = text.Substring(0, 14) + "...";
}
menu_radioitem _radioitem = new menu_radioitem(text);
this.cmMoodPhrases.Items.Add(_radioitem);
_radioitem.ToolTipText = moodPhrases[i];
if (string.Equals(moodPhrases[i], this.ctlMoodPhrase.Text))
{
_radioitem.Radioed = true;
}
else
{
_radioitem.Click += new EventHandler(this.tiMoodPhrase_Click);
}
}
if (moodPhrases.Count > 0)
{
ToolStripSeparator separator = new ToolStripSeparator {
Enabled = false
};
this.cmMoodPhrases.Items.Add(separator);
}
ToolStripItem item = this.cmMoodPhrases.Items.Add(StringTable.User.UI_EraseMoodPhrase);
item.ToolTipText = string.Empty;
item.Enabled = this.ctlMoodPhrase.Text.Length > 0;
item.Click += new EventHandler(this.tiMoodPhrase_Click);
});
}
private void cmStatus_Opening(object sender, CancelEventArgs e)
{
UiErrorHelper.HandEventSafely(this._manager.FrameworkWnd, delegate {
this._manager.DoPresenceMenuItemsOpening(this.cmStatus.Items);
});
}
private void CurrentUser_StatusChanged(object sender, UserSatusChangedEventArgs e)
{
UiErrorHelper.HandEventSafely(this._manager.FrameworkWnd, delegate {
if (this._manager.CurrentUser.Status == UserAccountStatus.Logon)
{
this.ctlNickname.DisplayName = this._manager.CurrentUser.Nickname;
this.SetMoodPhrase((string) this._manager.CurrentUser.Presence.MoodPhrase);
this.ctlPortrait.Image = this._manager.CurrentUser.PersonalInfo.PortraitMedium;
this.toolMatch.Visible = this._manager.CurrentUser.Configuration.SystemSetting.ServerUriSetting.MatchingEnabled;
}
});
}
private void displayPersonalMessage_TextBoxAccepted(object sender, EventArgs e)
{
this.TryChangeMoodPhrase(this.ctlMoodPhrase.Text);
}
private void DoLocalize()
{
this.ctlPortrait.Image = ImpsPortrait.GetDefaultPortrait(0x40, 0x40);
this.ctlMoodPhrase.MaxLength = 0x100;
this.toolColorRing.ToolTipText = StringTable.Framework.TipColorRbt;
this.toolMatch.ToolTipText = AppDictionary.MatchServiceLocalName;
this.toolIM.ToolTipText = StringTable.User.TipToolIm;
this.toolIVR.ToolTipText = StringTable.User.TipToolIvr;
this.toolShareContent.ToolTipText = StringTable.User.TipToolFile;
this.toolSms.ToolTipText = StringTable.User.TipToolSms;
this.ctlNickname.ToolTipText = StringTable.User.TipNickname;
this.ctlMoodPhrase.ToolTipText = StringTable.User.TipMoodPhrase;
this.ctlMoodPhrase.EmptyPersonalMessageText = StringTable.User.UI_MoodPhraseHint;
this.BackColor = Color.Transparent;
base.Padding = new Padding(2, 0, 1, 0);
base.Height = 0x52;
new ToolTip(this.components).SetToolTip(this.ctlPortrait, StringTable.User.TipPortrait);
this.cmStatus.Items.AddRange(this._manager.GetPresenceMenuItems(true));
}
private void dpContact_Click(object sender, EventArgs e)
{
UiErrorHelper.HandEventSafely(this._manager.FrameworkWnd, delegate {
this._manager.FrameworkWnd.ShowOptions("PsGeneral");
});
}
private void InitializeComponent()
{
this.components = new Container();
ComponentResourceManager manager = new ComponentResourceManager(typeof(BUserInfoControl));
this.pnlTop = new BPanel();
this.ctlMoodPhrase = new BDisplayPersonalMessage();
this.cmMoodPhrases = new menu_widget(this.components);
this.ctlNickname = new BDisplayNameAndOnlineStatus();
this.cmStatus = new menu_widget(this.components);
this.tsMain = new IMToolstrip();
this.toolIM = new ToolStripButton();
this.toolSms = new ToolStripButton();
this.toolIVR = new ToolStripButton();
this.toolShareContent = new ToolStripButton();
this.toolColorRing = new ToolStripButton();
this.toolMatch = new ToolStripButton();
this.ctlPortrait = new DisplayPortrait();
this.pnlTop.SuspendLayout();
this.tsMain.SuspendLayout();
base.SuspendLayout();
this.pnlTop.BackgroundImage = (Image) manager.GetObject("pnlTop.BackgroundImage");
this.pnlTop.BorderColor = Color.FromArgb(0xa4, 170, 220);
this.pnlTop.BorderInsideColor = Color.White;
this.pnlTop.BorderInsideWidth = 1;
this.pnlTop.BorderWidth = 1;
this.pnlTop.Controls.Add(this.ctlMoodPhrase);
this.pnlTop.Controls.Add(this.ctlNickname);
this.pnlTop.Controls.Add(this.tsMain);
this.pnlTop.Controls.Add(this.ctlPortrait);
this.pnlTop.Dock = DockStyle.Fill;
this.pnlTop.Location = new Point(0, 0);
this.pnlTop.Name = "pnlTop";
this.pnlTop.Padding = new Padding(2);
this.pnlTop.Size = new Size(0x162, 0x52);
this.pnlTop.TabIndex = 2;
this.ctlMoodPhrase.Anchor = AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top;
this.ctlMoodPhrase.BackColor = Color.White;
this.ctlMoodPhrase.DropDownButtonImage = (Image) manager.GetObject("ctlMoodPhrase.DropDownButtonImage");
this.ctlMoodPhrase.DropdownButtonTootipText = "选择此选项显示您的历史心情短语";
this.ctlMoodPhrase.DropDownMenu = this.cmMoodPhrases;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -