Tabbed chats with BBCode rendering and clickable identities
Replace the chat target dropdown with a tab strip along the bottom of the chat panel: a Server and a Channel tab plus one closable tab per private chat, each with its own log and an unread marker. Render logs and channel/client descriptions as HTML through a new BBCode renderer in core, supporting b/i/u/s, color, size, url, center and lists, with auto-linked bare URLs. Input is escaped and tag values validated, so server-supplied text cannot inject markup or unsafe schemes. Sender names and TeamSpeak's own client:// links open the same context menu as the server tree (menus extracted into ClientMenu/ChannelMenu); channel:// links open the channel menu. Links are styled by CSS class: identities bold in the author colour, other TS protocols plain, and links leaving the client underlined so they cannot be mistaken for an identity. Dragging a client or channel out of the tree yields the TS3 link BBCode. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -26,6 +26,8 @@ public final class Theme {
|
||||
public static final Color CHAT_SYSTEM = new Color(0x8A8A8A);
|
||||
public static final Color CHAT_NAME = new Color(0x2C7BE5);
|
||||
public static final Color CHAT_TEXT = new Color(0x202020);
|
||||
/** Links that leave the client, distinct from the colour used for identities. */
|
||||
public static final Color LINK = new Color(0x1A5FB4);
|
||||
|
||||
public static final Font UI_FONT = new Font("SansSerif", Font.PLAIN, 12);
|
||||
public static final Font UI_BOLD = new Font("SansSerif", Font.BOLD, 12);
|
||||
|
||||
Reference in New Issue
Block a user