feat(browser): 实现Java字体和主题动态同步到HTML界面
- 添加javaFontsLoaded和javaThemeChanged事件监听机制 - 在BrowserWindow和BrowserWindowJDialog中实现字体信息获取和注入 - 前端HTML文件增加对应的字体应用逻辑和样式更新 - 创建WindowRegistry统一管理窗口主题更新 - 更新README文档说明HTML事件使用方法- 支持Monaco和CodeMirror编辑器的字体动态调整 -优化CEF浏览器与Java UI的字体和主题同步流程
This commit is contained in:
@@ -624,6 +624,59 @@
|
||||
);
|
||||
}
|
||||
|
||||
// 监听Java字体加载事件
|
||||
document.addEventListener('javaFontsLoaded', function(event) {
|
||||
const fontInfo = event.detail;
|
||||
console.log('接收到Java字体信息:', fontInfo);
|
||||
|
||||
// 应用Java字体到界面
|
||||
applyJavaFonts(fontInfo);
|
||||
});
|
||||
|
||||
// 应用Java字体的函数
|
||||
function applyJavaFonts(fontInfo) {
|
||||
const uiFonts = fontInfo.uiFonts || {};
|
||||
const defaultFont = fontInfo.defaultFont || uiFonts['Label.font'] || {};
|
||||
|
||||
if (defaultFont && defaultFont.family) {
|
||||
const fontFamily = defaultFont.family;
|
||||
const fontSize = defaultFont.size || 14;
|
||||
const fontWeight = defaultFont.bold ? 'bold' : 'normal';
|
||||
const fontStyle = defaultFont.italic ? 'italic' : 'normal';
|
||||
|
||||
// 创建字体样式
|
||||
const style = document.createElement('style');
|
||||
style.textContent = `
|
||||
body, html {
|
||||
font-family: '${fontFamily}', 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Microsoft YaHei', sans-serif !important;
|
||||
}
|
||||
.message.user .bubble {
|
||||
font-family: '${fontFamily}', 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Microsoft YaHei', sans-serif !important;
|
||||
}
|
||||
.message.ai .bubble {
|
||||
font-family: '${fontFamily}', 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Microsoft YaHei', sans-serif !important;
|
||||
font-size: ${fontSize}px !important;
|
||||
}
|
||||
input, button {
|
||||
font-family: '${fontFamily}', 'Helvetica Neue', Helvetica, Arial, 'PingFang SC', 'Microsoft YaHei', sans-serif !important;
|
||||
}
|
||||
code, pre {
|
||||
font-family: 'JetBrains Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
|
||||
}
|
||||
`;
|
||||
|
||||
// 添加到文档头
|
||||
document.head.appendChild(style);
|
||||
|
||||
console.log('Java字体已应用到DeepSeek界面:', fontFamily, fontSize + 'px');
|
||||
}
|
||||
}
|
||||
|
||||
// 如果字体信息已经存在,立即应用
|
||||
if (typeof window.javaFontInfo !== 'undefined') {
|
||||
applyJavaFonts(window.javaFontInfo);
|
||||
}
|
||||
|
||||
function showError(requestId, message) {
|
||||
const stream = streams.get(requestId);
|
||||
if (stream) {
|
||||
|
||||
Reference in New Issue
Block a user