📄 personalgrouplistcontrol.cs
字号:
{
ClientLogger.WriteException(exception);
}
}
private void PersonalGroupManager_MemberInfoChanged(object sender, GroupMembersInfoChangedEventArgs e)
{
try
{
if (e.Members.get_Count() == 1)
{
this.UpdateMemberInfo(e.Members.get_Item(0), true, true);
}
else
{
List<PersonalGroupMember>.Enumerator enumerator = e.Members.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
PersonalGroupMember member = enumerator.get_Current();
this.UpdateMemberInfo(member, false, false);
}
}
finally
{
enumerator.Dispose();
}
this.treeGroups.sort_allitems(true);
}
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void PersonalGroupManager_MemberJoined(object sender, PersonalGroupMemberEventArgs e)
{
try
{
if (this._group == null)
{
this.treeGroups.add_member_sorted(e.Member.OwnerGroup, e.Member, true);
}
else if (e.Member.OwnerGroup == this._group)
{
this.treeGroups.add_member_sorted(null, e.Member, true);
}
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void PersonalGroupManager_ReplyResult(object sender, PersonalGroupReplyResultEventArgs e)
{
try
{
this.treeGroups.update_group(e.Group, false, true);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void PersonalGroups_GroupLoadStatusChanged(object sender, EventArgs e)
{
if ((this.Currentuser.PersonalGroups.GroupLoadStatus == PersonalGroupLoadStatus.Loaded) || (this.Currentuser.PersonalGroups.GroupLoadStatus == PersonalGroupLoadStatus.Failed))
{
this.treeGroups.clear(false);
this.AddGroups();
}
}
private void RemovePersonalGroup(PersonalGroup group, bool fpaint)
{
try
{
this.treeGroups.remove_group(group, fpaint);
group.MemberLoadStatusChanged -= new EventHandler<GroupLoadStatusChangedEventArgs>(this, (IntPtr) this.group_MemberLoadStatusChanged);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
internal void SearchCurrentGroup(string key)
{
this.treeGroups.remove_allitems(false);
this.treeGroups.Visible = true;
if (string.IsNullOrEmpty(key))
{
this.AddGroupMembers(this._group);
}
else
{
ContactCollection matchContacts = this.MatchHelper.GetMatchContacts(this.GroupContacts, key);
int num = 0;
matchContacts.ListContacts.Sort();
using (IEnumerator<Imps.Client.Core.Contact> enumerator = matchContacts.GetEnumerator())
{
while (enumerator.MoveNext())
{
Imps.Client.Core.Contact contact = enumerator.get_Current();
this.treeGroups.add_member(null, contact as PersonalGroupMember, false);
num++;
}
}
if (num == 0)
{
this.treeGroups.Visible = false;
}
else
{
this.treeGroups.sort_allitems(true);
}
}
}
private void treeGroups_DoubleClick(object sender, tree_widget.item_type item)
{
try
{
if (item is grouptree_member)
{
PersonalGroupMember member = (item as grouptree_member).member;
this._framework.PersonalGroupManager.StartMemeberConversation(this._framework.MainWindow, member, ConversationOperation.ImChat);
}
else if (item is grouptree_group)
{
PersonalGroup group = (item as grouptree_group).group;
if (this.Currentuser.Status == UserAccountStatus.Logon)
{
this._framework.PersonalGroupManager.StartGroupConversation(this._framework.MainWindow, group, ConversationOperation.ImChat);
}
else if (this.Currentuser.Status == UserAccountStatus.OfflineLogon)
{
this._framework.PersonalGroupManager.ShowGroupSetting(this._framework.MainWindow, group, GroupOption.Normal);
}
}
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void treeGroups_on_group_click_portrait(object sender, grouptree_group groupNode)
{
try
{
this._framework.PersonalGroupManager.ShowGroupSetting(this._framework.MainWindow, groupNode.group, GroupOption.Normal);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void treeGroups_on_group_expand_changed(object sender, grouptree_group groupNode, bool fExpanded)
{
try
{
PersonalGroup group = groupNode.group;
if (fExpanded && group.UserInfo.EnableViewMembers)
{
if (group.MemberLoadStatus != PersonalGroupLoadStatus.None)
{
if (!groupNode.MembersLoaded)
{
groupNode.MembersLoaded = true;
this.treeGroups.clear_members(group, false);
this.AddGroupMembers(group);
}
}
else
{
AsyncBizOperation op = new AsyncBizOperation(group);
this.Currentuser.PersonalGroupManager.GetGroupMemberList(group, op);
groupNode.MembersLoaded = true;
}
}
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void treeGroups_on_group_expand_changing(object sender, grouptree_group groupNode, bool fExpanding, CancelEventArgs args)
{
if (!groupNode.group.UserInfo.EnableViewMembers || (this.Currentuser.Status != UserAccountStatus.Logon))
{
args.Cancel = true;
}
}
private void treeGroups_OnFocusedItemChanged(object sender)
{
if ((this.treeGroups.focus_item == null) || tree<tree_widget.item_type>.iterator.is_equal(this.treeGroups.end, this.treeGroups.focus_item))
{
this.treeGroups.set_ContextMenuStrip(this.menuBlank);
}
else if (this.treeGroups.focus_item.data is grouptree_group)
{
this.treeGroups.set_ContextMenuStrip(this.menuGroup);
}
else if (this.treeGroups.focus_item.data is grouptree_member)
{
this.treeGroups.set_ContextMenuStrip(this.menuMember);
}
}
private void tsAddFriend_Click(object sender, EventArgs e)
{
try
{
PersonalGroupMember member = (this.treeGroups.focus_item.data as grouptree_member).member;
this._framework.PersonalGroupManager.AddGroupMemberToFriend(this._framework.MainWindow, member);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void tsBlockMember_Click(object sender, EventArgs e)
{
try
{
PersonalGroupMember member = (this.treeGroups.focus_item.data as grouptree_member).member;
this.Currentuser.PersonalGroupManager.AsyncBlockMember(member);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void tsCancelManager_Click(object sender, EventArgs e)
{
try
{
PersonalGroupMember member = (this.treeGroups.focus_item.data as grouptree_member).member;
this._framework.PersonalGroupManager.CancelGroupManager(this._framework.MainWindow, member);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void tsCreateGroup_Click(object sender, EventArgs e)
{
try
{
this._framework.PersonalGroupManager.CreatePersonalGroup(this._framework.MainWindow);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
private void tsDeleteGroup_Click(object sender, EventArgs e)
{
try
{
PersonalGroup group = (this.treeGroups.focus_item.data as grouptree_group).group;
this._framework.PersonalGroupManager.DeleteGroup(group);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -