2025-12-07 17:20:35 -08:00

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);
}
}
}