The look-and-feel is FlatLaf now, chosen light or dark on the new Design tab and remembered in the settings. Theme keeps only the colours TeamSpeak gives meaning to (talking, away, muted, channel and server names) and takes its surfaces and fonts from the look-and-feel, so a switch recolours the whole window, chat logs included: the HTML panes share one themed stylesheet and re-parse their content when the theme changes. Also fixes the channel tree not scrolling: the tree listened for the mouse wheel to re-check its hover row, and AWT only forwards a wheel event to the enclosing scroll pane when the component under the pointer has no wheel listener of its own. The hover row now follows the viewport instead, which also covers scrollbar drags and keyboard scrolling. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
144 lines
6.6 KiB
XML
144 lines
6.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
<groupId>com.ts3client</groupId>
|
|
<artifactId>ts3-client-parent</artifactId>
|
|
<version>0.1.0</version>
|
|
</parent>
|
|
|
|
<artifactId>ts3-client-swing</artifactId>
|
|
<name>TS3J Client Swing Frontend</name>
|
|
<description>Swing desktop UI</description>
|
|
|
|
<properties>
|
|
<exec.mainClass>com.ts3client.Main</exec.mainClass>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.ts3client</groupId>
|
|
<artifactId>ts3-client-core</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.ts3client</groupId>
|
|
<artifactId>ts3-client-desktop</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.manevolent</groupId>
|
|
<artifactId>ts3j</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.weisj</groupId>
|
|
<artifactId>jsvg</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.formdev</groupId>
|
|
<artifactId>flatlaf</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter</artifactId>
|
|
<version>5.13.4</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<finalName>ts3-client</finalName>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<version>3.6.2</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>shade</goal>
|
|
</goals>
|
|
<configuration>
|
|
<!--
|
|
Tree-shake the dependencies: only a fraction of Bouncy Castle
|
|
(the lightweight EC/AES-EAX API) is actually reachable.
|
|
-->
|
|
<minimizeJar>true</minimizeJar>
|
|
<filters>
|
|
<!-- Our own modules are entry points; keep them whole. -->
|
|
<filter>
|
|
<artifact>com.ts3client:*</artifact>
|
|
<includes>
|
|
<include>**</include>
|
|
</includes>
|
|
</filter>
|
|
<filter>
|
|
<artifact>com.github.manevolent:ts3j</artifact>
|
|
<includes>
|
|
<include>**</include>
|
|
</includes>
|
|
</filter>
|
|
<!-- JSVG resolves its node types by service loader/reflection,
|
|
which minimizeJar cannot follow. -->
|
|
<filter>
|
|
<artifact>com.github.weisj:jsvg</artifact>
|
|
<includes>
|
|
<include>**</include>
|
|
</includes>
|
|
</filter>
|
|
<!-- FlatLaf instantiates its UI delegates by name and reads its
|
|
themes from .properties resources; neither is reachable
|
|
statically, so minimizeJar must not touch it. -->
|
|
<filter>
|
|
<artifact>com.formdev:flatlaf</artifact>
|
|
<includes>
|
|
<include>**</include>
|
|
</includes>
|
|
</filter>
|
|
<filter>
|
|
<artifact>*:*</artifact>
|
|
<excludes>
|
|
<!--
|
|
The shaded jar is not a multi-release jar, so the
|
|
versioned copies (all Bouncy Castle's) are never loaded,
|
|
and minimizeJar does not tree-shake them either.
|
|
-->
|
|
<exclude>META-INF/versions/**</exclude>
|
|
<exclude>META-INF/*.SF</exclude>
|
|
<exclude>META-INF/*.DSA</exclude>
|
|
<exclude>META-INF/*.RSA</exclude>
|
|
<exclude>module-info.class</exclude>
|
|
</excludes>
|
|
</filter>
|
|
</filters>
|
|
<transformers>
|
|
<transformer
|
|
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
|
<mainClass>com.ts3client.Main</mainClass>
|
|
<manifestEntries>
|
|
<Enable-Native-Access>ALL-UNNAMED</Enable-Native-Access>
|
|
</manifestEntries>
|
|
</transformer>
|
|
<!-- Merge overlapping META-INF/services entries (e.g. java.security.Provider)
|
|
instead of letting one dependency's file overwrite another's. -->
|
|
<transformer
|
|
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
|
|
</transformers>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<version>3.1.0</version>
|
|
<configuration>
|
|
<mainClass>com.ts3client.Main</mainClass>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|