69 lines
2.2 KiB
C#
69 lines
2.2 KiB
C#
using Krypton.Toolkit;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
namespace qtcnet_client.Controls
|
|
{
|
|
public partial class MainTabControl : UserControl
|
|
{
|
|
public event EventHandler? OnContactControlDoubleClicked;
|
|
public event EventHandler? OnRoomControlDoubleClicked;
|
|
|
|
public MainTabControl()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void AddContacts(List<ContactControl> contactControls)
|
|
{
|
|
tlpContactsList.SuspendLayout();
|
|
|
|
foreach (ContactControl contactControl in contactControls)
|
|
{
|
|
contactControl.Width = tlpContactsList.ClientSize.Width;
|
|
contactControl.OnContactDoubleClicked += ContactControl_OnContactDoubleClicked;
|
|
}
|
|
|
|
tlpContactsList.Controls.Clear();
|
|
tlpContactsList.Controls.AddRange([.. contactControls.DistinctBy(ctrl => ctrl.UserId)]);
|
|
|
|
tlpContactsList.ResumeLayout(true);
|
|
}
|
|
|
|
private void ContactControl_OnContactDoubleClicked(object? sender, EventArgs e) => OnContactControlDoubleClicked?.Invoke(sender, e);
|
|
|
|
public void AddRooms(List<RoomControl> roomControls)
|
|
{
|
|
tlpRoomsList.SuspendLayout();
|
|
|
|
foreach (RoomControl roomControl in roomControls)
|
|
{
|
|
roomControl.Width = tlpRoomsList.ClientSize.Width;
|
|
roomControl.OnRoomDoubleClicked += RoomControl_OnRoomDoubleClicked;
|
|
}
|
|
|
|
tlpRoomsList.Controls.Clear();
|
|
tlpRoomsList.Controls.AddRange([.. roomControls.DistinctBy(ctrl => ctrl.RoomId)]);
|
|
|
|
tlpRoomsList.ResumeLayout(true);
|
|
}
|
|
|
|
private void RoomControl_OnRoomDoubleClicked(object? sender, EventArgs e) => OnRoomControlDoubleClicked?.Invoke(sender, e);
|
|
|
|
public void AddUsers(List<ListViewItem> users)
|
|
{
|
|
lvUserList.SuspendLayout();
|
|
|
|
lvUserList.Items.Clear();
|
|
lvUserList.Items.AddRange([.. users.DistinctBy(lvi => lvi.Tag)]); // Tag = UserId here
|
|
|
|
lvUserList.ResumeLayout(true);
|
|
}
|
|
}
|
|
}
|