4 Commits

Author SHA1 Message Date
messypy
a017170c71 Align settings controls
All checks were successful
build-windows-exe / build (push) Successful in 2m9s
2026-07-28 00:20:57 +09:00
messypy
d38d2edee3 Remove duplicate font size buttons
All checks were successful
build-windows-exe / build (push) Successful in 2m5s
2026-07-28 00:14:04 +09:00
messypy
01d5799914 Fix settings panel control overlap
All checks were successful
build-windows-exe / build (push) Successful in 2m28s
2026-07-28 00:05:41 +09:00
messypy
f9968895ac Allow smaller GUI font sizes
All checks were successful
build-windows-exe / build (push) Successful in 1m31s
2026-07-27 23:57:57 +09:00
2 changed files with 63 additions and 52 deletions

View File

@@ -121,6 +121,12 @@ const (
const translateTabEnabled = false const translateTabEnabled = false
const (
defaultGUIFontSize = 14
minGUIFontSize = 8
maxGUIFontSize = 30
)
var joinLeaveLinePattern = regexp.MustCompile(`^\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\]\s+\[(join|leave)\]\s+(.+?)\s+\((\d+)\)$`) var joinLeaveLinePattern = regexp.MustCompile(`^\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\]\s+\[(join|leave)\]\s+(.+?)\s+\((\d+)\)$`)
var runtimeTimePattern = regexp.MustCompile(`^\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\]`) var runtimeTimePattern = regexp.MustCompile(`^\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\]`)
var worldIdPattern = regexp.MustCompile(`worldId=(wrld_[0-9a-fA-F-]+)`) var worldIdPattern = regexp.MustCompile(`worldId=(wrld_[0-9a-fA-F-]+)`)
@@ -222,8 +228,6 @@ type guiApp struct {
tabSettings uintptr tabSettings uintptr
btnTopMost uintptr btnTopMost uintptr
btnAutoUnmute uintptr btnAutoUnmute uintptr
btnFontDown uintptr
btnFontUp uintptr
activeTab string activeTab string
topMost bool topMost bool
autoUnmuteOnLeave bool autoUnmuteOnLeave bool
@@ -450,7 +454,7 @@ func runNativeGUI(initialTab string) error {
if guiCfg.FontSize > 0 { if guiCfg.FontSize > 0 {
app.fontSize = guiCfg.FontSize app.fontSize = guiCfg.FontSize
} else { } else {
app.fontSize = 18 app.fontSize = defaultGUIFontSize
} }
app.refreshIntervalValue = guiCfg.RefreshIntervalValue app.refreshIntervalValue = guiCfg.RefreshIntervalValue
if app.refreshIntervalValue <= 0 { if app.refreshIntervalValue <= 0 {
@@ -580,8 +584,6 @@ func runNativeGUI(initialTab string) error {
rightTitle, _ := syscall.UTF16PtrFromString("") rightTitle, _ := syscall.UTF16PtrFromString("")
topMostTitle, _ := syscall.UTF16PtrFromString("Top most") topMostTitle, _ := syscall.UTF16PtrFromString("Top most")
autoUnmuteTitle, _ := syscall.UTF16PtrFromString("Leave unmute") autoUnmuteTitle, _ := syscall.UTF16PtrFromString("Leave unmute")
fontDownTitle, _ := syscall.UTF16PtrFromString("A-")
fontUpTitle, _ := syscall.UTF16PtrFromString("A+")
browseTitle, _ := syscall.UTF16PtrFromString("参照") browseTitle, _ := syscall.UTF16PtrFromString("参照")
saveTitle, _ := syscall.UTF16PtrFromString("保存") saveTitle, _ := syscall.UTF16PtrFromString("保存")
toolbarTitle, _ := syscall.UTF16PtrFromString("") toolbarTitle, _ := syscall.UTF16PtrFromString("")
@@ -629,41 +631,43 @@ func runNativeGUI(initialTab string) error {
app.settingsPaneHwnd, _, _ = createWindowEx.Call(0, uintptr(unsafe.Pointer(paneClassName)), uintptr(unsafe.Pointer(settingsPaneTitle)), paneStyle, 0, contentTop, windowWidth, settingsPaneHeight, hwnd, idLog+1, hInstance, 0) app.settingsPaneHwnd, _, _ = createWindowEx.Call(0, uintptr(unsafe.Pointer(paneClassName)), uintptr(unsafe.Pointer(settingsPaneTitle)), paneStyle, 0, contentTop, windowWidth, settingsPaneHeight, hwnd, idLog+1, hInstance, 0)
app.btnTopMost, _, _ = createWindowEx.Call(0, uintptr(unsafe.Pointer(buttonClass)), uintptr(unsafe.Pointer(topMostTitle)), buttonStyle, leftPaneWidth+32, contentTop+86, 140, 30, hwnd, 3005, hInstance, 0) app.btnTopMost, _, _ = createWindowEx.Call(0, uintptr(unsafe.Pointer(buttonClass)), uintptr(unsafe.Pointer(topMostTitle)), buttonStyle, leftPaneWidth+32, contentTop+86, 140, 30, hwnd, 3005, hInstance, 0)
app.btnAutoUnmute, _, _ = createWindowEx.Call(0, uintptr(unsafe.Pointer(buttonClass)), uintptr(unsafe.Pointer(autoUnmuteTitle)), buttonStyle, leftPaneWidth+32, contentTop+132, 180, 30, hwnd, 3008, hInstance, 0) app.btnAutoUnmute, _, _ = createWindowEx.Call(0, uintptr(unsafe.Pointer(buttonClass)), uintptr(unsafe.Pointer(autoUnmuteTitle)), buttonStyle, leftPaneWidth+32, contentTop+132, 180, 30, hwnd, 3008, hInstance, 0)
app.btnFontDown, _, _ = createWindowEx.Call(0, uintptr(unsafe.Pointer(buttonClass)), uintptr(unsafe.Pointer(fontDownTitle)), buttonStyle, leftPaneWidth+32, contentTop+178, 52, 30, hwnd, 3006, hInstance, 0)
app.btnFontUp, _, _ = createWindowEx.Call(0, uintptr(unsafe.Pointer(buttonClass)), uintptr(unsafe.Pointer(fontUpTitle)), buttonStyle, leftPaneWidth+92, contentTop+178, 52, 30, hwnd, 3007, hInstance, 0)
exportDirTitle, _ := syscall.UTF16PtrFromString("") exportDirTitle, _ := syscall.UTF16PtrFromString("")
exportDirRect := settingsHistoryExportDirRect()
app.settingsExportDirEdit, _, _ = createWindowEx.Call( app.settingsExportDirEdit, _, _ = createWindowEx.Call(
0, 0,
uintptr(unsafe.Pointer(editClassTitle)), uintptr(unsafe.Pointer(editClassTitle)),
uintptr(unsafe.Pointer(exportDirTitle)), uintptr(unsafe.Pointer(exportDirTitle)),
uintptr(wsChild|wsVisible|wsBorder|wsTabstop|esAutohscroll), uintptr(wsChild|wsVisible|wsBorder|wsTabstop|esAutohscroll),
116, 410, 520, 24, uintptr(exportDirRect.Left), uintptr(exportDirRect.Top), uintptr(exportDirRect.Right-exportDirRect.Left), uintptr(exportDirRect.Bottom-exportDirRect.Top),
app.settingsPaneHwnd, idHistoryExportDir, hInstance, 0, app.settingsPaneHwnd, idHistoryExportDir, hInstance, 0,
) )
browseStyle := uintptr(wsChild | wsTabstop) browseStyle := uintptr(wsChild | wsTabstop)
browseRect := settingsHistoryExportBrowseRect()
app.settingsExportBrowseBtn, _, _ = createWindowEx.Call( app.settingsExportBrowseBtn, _, _ = createWindowEx.Call(
0, 0,
uintptr(unsafe.Pointer(buttonClass)), uintptr(unsafe.Pointer(buttonClass)),
uintptr(unsafe.Pointer(browseTitle)), uintptr(unsafe.Pointer(browseTitle)),
browseStyle, browseStyle,
644, 410, 92, 24, uintptr(browseRect.Left), uintptr(browseRect.Top), uintptr(browseRect.Right-browseRect.Left), uintptr(browseRect.Bottom-browseRect.Top),
app.settingsPaneHwnd, idHistoryExportBrowse, hInstance, 0, app.settingsPaneHwnd, idHistoryExportBrowse, hInstance, 0,
) )
exportCustomTitle, _ := syscall.UTF16PtrFromString("") exportCustomTitle, _ := syscall.UTF16PtrFromString("")
customRect := settingsHistoryExportCustomRect()
app.settingsExportCustomEdit, _, _ = createWindowEx.Call( app.settingsExportCustomEdit, _, _ = createWindowEx.Call(
0, 0,
uintptr(unsafe.Pointer(editClassTitle)), uintptr(unsafe.Pointer(editClassTitle)),
uintptr(unsafe.Pointer(exportCustomTitle)), uintptr(unsafe.Pointer(exportCustomTitle)),
uintptr(wsChild|wsVisible|wsBorder|wsTabstop|esAutohscroll), uintptr(wsChild|wsVisible|wsBorder|wsTabstop|esAutohscroll),
116, 520, 520, 24, uintptr(customRect.Left), uintptr(customRect.Top), uintptr(customRect.Right-customRect.Left), uintptr(customRect.Bottom-customRect.Top),
app.settingsPaneHwnd, idHistoryExportCustom, hInstance, 0, app.settingsPaneHwnd, idHistoryExportCustom, hInstance, 0,
) )
saveRect := settingsHistoryExportCustomSaveRect()
app.settingsExportCustomSaveBtn, _, _ = createWindowEx.Call( app.settingsExportCustomSaveBtn, _, _ = createWindowEx.Call(
0, 0,
uintptr(unsafe.Pointer(buttonClass)), uintptr(unsafe.Pointer(buttonClass)),
uintptr(unsafe.Pointer(saveTitle)), uintptr(unsafe.Pointer(saveTitle)),
browseStyle, browseStyle,
644, 520, 92, 24, uintptr(saveRect.Left), uintptr(saveRect.Top), uintptr(saveRect.Right-saveRect.Left), uintptr(saveRect.Bottom-saveRect.Top),
app.settingsPaneHwnd, idHistoryExportSave, hInstance, 0, app.settingsPaneHwnd, idHistoryExportSave, hInstance, 0,
) )
applyRefreshTimer(hwnd, &app) applyRefreshTimer(hwnd, &app)
@@ -749,8 +753,11 @@ func runNativeGUI(initialTab string) error {
if !allowRapidSettingsAction(&app) { if !allowRapidSettingsAction(&app) {
return 0 return 0
} }
if app.fontSize > 10 { if app.fontSize > minGUIFontSize {
app.fontSize -= 2 app.fontSize -= 2
if app.fontSize < minGUIFontSize {
app.fontSize = minGUIFontSize
}
oldFont := app.hFont oldFont := app.hFont
app.hFont = createAppFont(app.fontSize) app.hFont = createAppFont(app.fontSize)
applyFont(&app) applyFont(&app)
@@ -764,8 +771,11 @@ func runNativeGUI(initialTab string) error {
if !allowRapidSettingsAction(&app) { if !allowRapidSettingsAction(&app) {
return 0 return 0
} }
if app.fontSize < 30 { if app.fontSize < maxGUIFontSize {
app.fontSize += 2 app.fontSize += 2
if app.fontSize > maxGUIFontSize {
app.fontSize = maxGUIFontSize
}
oldFont := app.hFont oldFont := app.hFont
app.hFont = createAppFont(app.fontSize) app.hFont = createAppFont(app.fontSize)
applyFont(&app) applyFont(&app)
@@ -1200,7 +1210,7 @@ func refreshGUI(setWindowText *syscall.LazyProc, app *guiApp, reloadData bool) {
if app.settingsPaneHwnd != 0 { if app.settingsPaneHwnd != 0 {
showWindowProc.Call(app.settingsPaneHwnd, swHideControl) showWindowProc.Call(app.settingsPaneHwnd, swHideControl)
} }
for _, hwnd := range []uintptr{app.btnTopMost, app.btnAutoUnmute, app.btnFontDown, app.btnFontUp} { for _, hwnd := range []uintptr{app.btnTopMost, app.btnAutoUnmute} {
if hwnd != 0 { if hwnd != 0 {
showWindowProc.Call(hwnd, swHideControl) showWindowProc.Call(hwnd, swHideControl)
} }
@@ -1241,7 +1251,7 @@ func refreshSettingsControls(showWindowProc, setWindowPosProc *syscall.LazyProc,
return return
} }
app.lastSettingsVisible = true app.lastSettingsVisible = true
for _, hwnd := range []uintptr{app.btnTopMost, app.btnAutoUnmute, app.btnFontDown, app.btnFontUp} { for _, hwnd := range []uintptr{app.btnTopMost, app.btnAutoUnmute} {
if hwnd != 0 { if hwnd != 0 {
showWindowProc.Call(hwnd, swHideControl) showWindowProc.Call(hwnd, swHideControl)
} }
@@ -1265,7 +1275,7 @@ func refreshSettingsControls(showWindowProc, setWindowPosProc *syscall.LazyProc,
if app.settingsPaneHwnd != 0 { if app.settingsPaneHwnd != 0 {
showWindowProc.Call(app.settingsPaneHwnd, swHideControl) showWindowProc.Call(app.settingsPaneHwnd, swHideControl)
} }
for _, hwnd := range []uintptr{app.btnTopMost, app.btnAutoUnmute, app.btnFontDown, app.btnFontUp, app.settingsExportDirEdit, app.settingsExportCustomEdit, app.settingsExportBrowseBtn, app.settingsExportCustomSaveBtn} { for _, hwnd := range []uintptr{app.btnTopMost, app.btnAutoUnmute, app.settingsExportDirEdit, app.settingsExportCustomEdit, app.settingsExportBrowseBtn, app.settingsExportCustomSaveBtn} {
if hwnd != 0 { if hwnd != 0 {
showWindowProc.Call(hwnd, swHideControl) showWindowProc.Call(hwnd, swHideControl)
} }
@@ -1433,7 +1443,7 @@ func applyJoinLogFont(app *guiApp, presentCount int) {
size = app.fontSize size = app.fontSize
} }
if size <= 0 { if size <= 0 {
size = 18 size = defaultGUIFontSize
} }
if app.joinHFont != 0 && app.joinBoldHFont != 0 && app.joinHeadlineHFont != 0 && if app.joinHFont != 0 && app.joinBoldHFont != 0 && app.joinHeadlineHFont != 0 &&
app.joinFontSize == size && app.joinBoldFontSize == size && app.joinHeadlineSize == size+2 { app.joinFontSize == size && app.joinBoldFontSize == size && app.joinHeadlineSize == size+2 {
@@ -1508,7 +1518,7 @@ func applyJoinLogFontSize(app *guiApp, size int) {
return return
} }
if size <= 0 { if size <= 0 {
size = 18 size = defaultGUIFontSize
} }
if app.joinHFont != 0 && app.joinBoldHFont != 0 && app.joinFontSize == size && app.joinBoldFontSize == size { if app.joinHFont != 0 && app.joinBoldHFont != 0 && app.joinFontSize == size && app.joinBoldFontSize == size {
return return
@@ -1538,7 +1548,7 @@ func applyJoinLogFontSize(app *guiApp, size int) {
func fitJoinLogFontSize(baseSize, lineCount, availableHeight int) int { func fitJoinLogFontSize(baseSize, lineCount, availableHeight int) int {
size := baseSize size := baseSize
if size <= 0 { if size <= 0 {
size = 18 size = defaultGUIFontSize
} }
if lineCount <= 0 { if lineCount <= 0 {
lineCount = 1 lineCount = 1
@@ -1546,14 +1556,14 @@ func fitJoinLogFontSize(baseSize, lineCount, availableHeight int) int {
if availableHeight <= 0 { if availableHeight <= 0 {
availableHeight = 300 availableHeight = 300
} }
for size > 8 { for size > minGUIFontSize {
if joinPaneContentHeight(size, lineCount) <= availableHeight { if joinPaneContentHeight(size, lineCount) <= availableHeight {
break break
} }
size -= 2 size -= 2
} }
if size < 8 { if size < minGUIFontSize {
size = 8 size = minGUIFontSize
} }
return size return size
} }
@@ -1857,22 +1867,17 @@ func paintSettingsPane(hwnd uintptr, app *guiApp) uintptr {
drawPaneText(hdc, 24, 68, "表示", app.hFont, clrMutedText) drawPaneText(hdc, 24, 68, "表示", app.hFont, clrMutedText)
drawSettingsWideButton(hdc, settingsTopMostRect(), "Top most", onOffBool(app.topMost), app.hFont, app.topMost) drawSettingsWideButton(hdc, settingsTopMostRect(), "Top most", onOffBool(app.topMost), app.hFont, app.topMost)
drawSettingsWideButton(hdc, settingsAutoUnmuteRect(), "Leave unmute", onOffBool(app.autoUnmuteOnLeave), app.hFont, app.autoUnmuteOnLeave) drawSettingsWideButton(hdc, settingsAutoUnmuteRect(), "Leave unmute", onOffBool(app.autoUnmuteOnLeave), app.hFont, app.autoUnmuteOnLeave)
drawPaneText(hdc, 24, 190, "文字サイズ", app.hFont, clrMutedText) drawPaneText(hdc, 24, 190, "更新間隔", app.hFont, clrMutedText)
drawSettingsRefreshControl(hdc, app) drawSettingsRefreshControl(hdc, app)
drawPaneText(hdc, 24, 314, "文字サイズ", app.hFont, clrMutedText)
drawSettingsFontControl(hdc, app) drawSettingsFontControl(hdc, app)
drawPaneText(hdc, 24, 390, "履歴 Export", app.hFont, clrMutedText) drawPaneText(hdc, 24, 390, "履歴 Export", app.hFont, clrMutedText)
drawPaneText(hdc, 24, 414, "出力先フォルダ", app.hFont, clrMutedText) drawPaneText(hdc, 24, 412, "出力先フォルダ", app.hFont, clrMutedText)
drawSettingsBox(hdc, settingsHistoryExportDirRect(), 0x0038281a, clrPaneBorder)
drawPaneText(hdc, 120, 414, exportDirDisplayText(app.historyExportDir), app.hFont, clrText)
drawSettingsWideButton(hdc, settingsHistoryExportBrowseRect(), "参照", "", app.hFont, true)
drawSettingsWideButton(hdc, settingsHistoryExportTimeRect(), "Time", onOffBool(app.historyExportIncludeTime), app.hFont, app.historyExportIncludeTime) drawSettingsWideButton(hdc, settingsHistoryExportTimeRect(), "Time", onOffBool(app.historyExportIncludeTime), app.hFont, app.historyExportIncludeTime)
drawSettingsWideButton(hdc, settingsHistoryExportWorldRect(), "World", onOffBool(app.historyExportIncludeWorld), app.hFont, app.historyExportIncludeWorld) drawSettingsWideButton(hdc, settingsHistoryExportWorldRect(), "World", onOffBool(app.historyExportIncludeWorld), app.hFont, app.historyExportIncludeWorld)
drawSettingsWideButton(hdc, settingsHistoryExportJoinLeaveRect(), "Join/Leave", onOffBool(app.historyExportIncludeJoinLeave), app.hFont, app.historyExportIncludeJoinLeave) drawSettingsWideButton(hdc, settingsHistoryExportJoinLeaveRect(), "Join/Leave", onOffBool(app.historyExportIncludeJoinLeave), app.hFont, app.historyExportIncludeJoinLeave)
drawSettingsWideButton(hdc, settingsHistoryExportCustomToggleRect(), "Custom", onOffBool(app.historyExportCustomEnabled), app.hFont, app.historyExportCustomEnabled) drawSettingsWideButton(hdc, settingsHistoryExportCustomToggleRect(), "Custom", onOffBool(app.historyExportCustomEnabled), app.hFont, app.historyExportCustomEnabled)
drawPaneText(hdc, 24, 522, "Custom 条件", app.hFont, clrMutedText) drawPaneText(hdc, 24, 532, "Custom 条件", app.hFont, clrMutedText)
drawSettingsBox(hdc, settingsHistoryExportCustomRect(), 0x0038281a, clrPaneBorder)
drawPaneText(hdc, 120, 522, previewLine(app.historyExportCustom, 60), app.hFont, clrText)
drawSettingsWideButton(hdc, settingsHistoryExportCustomSaveRect(), "保存", "", app.hFont, true)
return 0 return 0
} }
@@ -1913,35 +1918,35 @@ func settingsFontUpRect() winRect {
} }
func settingsHistoryExportDirRect() winRect { func settingsHistoryExportDirRect() winRect {
return winRect{Left: 116, Top: 410, Right: 636, Bottom: 434} return winRect{Left: 24, Top: 436, Right: 636, Bottom: 460}
} }
func settingsHistoryExportBrowseRect() winRect { func settingsHistoryExportBrowseRect() winRect {
return winRect{Left: 644, Top: 410, Right: 736, Bottom: 434} return winRect{Left: 644, Top: 436, Right: 736, Bottom: 460}
} }
func settingsHistoryExportTimeRect() winRect { func settingsHistoryExportTimeRect() winRect {
return winRect{Left: 24, Top: 442, Right: 360, Bottom: 476} return winRect{Left: 24, Top: 468, Right: 360, Bottom: 498}
} }
func settingsHistoryExportWorldRect() winRect { func settingsHistoryExportWorldRect() winRect {
return winRect{Left: 376, Top: 442, Right: 736, Bottom: 476} return winRect{Left: 376, Top: 468, Right: 736, Bottom: 498}
} }
func settingsHistoryExportJoinLeaveRect() winRect { func settingsHistoryExportJoinLeaveRect() winRect {
return winRect{Left: 24, Top: 480, Right: 360, Bottom: 514} return winRect{Left: 24, Top: 504, Right: 360, Bottom: 534}
} }
func settingsHistoryExportCustomToggleRect() winRect { func settingsHistoryExportCustomToggleRect() winRect {
return winRect{Left: 376, Top: 480, Right: 736, Bottom: 514} return winRect{Left: 376, Top: 504, Right: 736, Bottom: 534}
} }
func settingsHistoryExportCustomRect() winRect { func settingsHistoryExportCustomRect() winRect {
return winRect{Left: 116, Top: 520, Right: 636, Bottom: 544} return winRect{Left: 24, Top: 552, Right: 636, Bottom: 574}
} }
func settingsHistoryExportCustomSaveRect() winRect { func settingsHistoryExportCustomSaveRect() winRect {
return winRect{Left: 644, Top: 520, Right: 736, Bottom: 544} return winRect{Left: 644, Top: 552, Right: 736, Bottom: 574}
} }
func handleSettingsPaneClick(app *guiApp, x, y int32, getWindowText, setWindowText *syscall.LazyProc) bool { func handleSettingsPaneClick(app *guiApp, x, y int32, getWindowText, setWindowText *syscall.LazyProc) bool {
@@ -1972,15 +1977,21 @@ func handleSettingsPaneClick(app *guiApp, x, y int32, getWindowText, setWindowTe
applyRefreshTimer(app.hwnd, app) applyRefreshTimer(app.hwnd, app)
} }
case pointInRect(x, y, settingsFontDownRect()): case pointInRect(x, y, settingsFontDownRect()):
if app.fontSize > 10 { if app.fontSize > minGUIFontSize {
app.fontSize -= 2 app.fontSize -= 2
if app.fontSize < minGUIFontSize {
app.fontSize = minGUIFontSize
}
app.hFont = createAppFont(app.fontSize) app.hFont = createAppFont(app.fontSize)
applyFont(app) applyFont(app)
saveGUISettings(app) saveGUISettings(app)
} }
case pointInRect(x, y, settingsFontUpRect()): case pointInRect(x, y, settingsFontUpRect()):
if app.fontSize < 30 { if app.fontSize < maxGUIFontSize {
app.fontSize += 2 app.fontSize += 2
if app.fontSize > maxGUIFontSize {
app.fontSize = maxGUIFontSize
}
app.hFont = createAppFont(app.fontSize) app.hFont = createAppFont(app.fontSize)
applyFont(app) applyFont(app)
saveGUISettings(app) saveGUISettings(app)
@@ -2025,9 +2036,9 @@ func drawSettingsRefreshControl(hdc uintptr, app *guiApp) {
drawSettingsBox(hdc, settingsRefreshValueRect(), uint32(0x0038281a), border) drawSettingsBox(hdc, settingsRefreshValueRect(), uint32(0x0038281a), border)
drawSettingsBox(hdc, settingsRefreshUpRect(), fill, border) drawSettingsBox(hdc, settingsRefreshUpRect(), fill, border)
drawSettingsWideButton(hdc, settingsRefreshUnitRect(), "\u5358\u4f4d", refreshIntervalUnitLabel(app.refreshIntervalUnit), font, true) drawSettingsWideButton(hdc, settingsRefreshUnitRect(), "\u5358\u4f4d", refreshIntervalUnitLabel(app.refreshIntervalUnit), font, true)
drawCenteredPaneText(hdc, settingsRefreshDownRect(), "A-", font, clrText) drawCenteredPaneText(hdc, settingsRefreshDownRect(), "-", font, clrText)
drawCenteredPaneText(hdc, settingsRefreshValueRect(), refreshIntervalValueLabel(app.refreshIntervalValue, app.refreshIntervalUnit), font, clrMutedText) drawCenteredPaneText(hdc, settingsRefreshValueRect(), refreshIntervalValueLabel(app.refreshIntervalValue, app.refreshIntervalUnit), font, clrMutedText)
drawCenteredPaneText(hdc, settingsRefreshUpRect(), "A+", font, clrText) drawCenteredPaneText(hdc, settingsRefreshUpRect(), "+", font, clrText)
} }
func refreshIntervalValueLabel(value int, unit string) string { func refreshIntervalValueLabel(value int, unit string) string {
@@ -2652,7 +2663,7 @@ func drawSettingsFontControl(hdc uintptr, app *guiApp) {
drawSettingsBox(hdc, settingsFontValueRect(), uint32(0x0038281a), border) drawSettingsBox(hdc, settingsFontValueRect(), uint32(0x0038281a), border)
drawSettingsBox(hdc, settingsFontUpRect(), fill, border) drawSettingsBox(hdc, settingsFontUpRect(), fill, border)
drawCenteredPaneText(hdc, settingsFontDownRect(), "A-", font, clrText) drawCenteredPaneText(hdc, settingsFontDownRect(), "A-", font, clrText)
drawCenteredPaneText(hdc, settingsFontValueRect(), strconv.Itoa(app.fontSize), font, clrMutedText) drawCenteredPaneText(hdc, settingsFontValueRect(), strconv.Itoa(app.fontSize)+" pt", font, clrMutedText)
drawCenteredPaneText(hdc, settingsFontUpRect(), "A+", font, clrText) drawCenteredPaneText(hdc, settingsFontUpRect(), "A+", font, clrText)
} }
@@ -3310,7 +3321,7 @@ func formatDurationShort(d time.Duration) string {
func joinLogFontSize(baseSize, presentCount int) int { func joinLogFontSize(baseSize, presentCount int) int {
size := baseSize size := baseSize
if size <= 0 { if size <= 0 {
size = 18 size = defaultGUIFontSize
} }
if presentCount <= 32 { if presentCount <= 32 {
return size return size
@@ -3323,8 +3334,8 @@ func joinLogFontSize(baseSize, presentCount int) int {
case presentCount >= 33: case presentCount >= 33:
size -= 2 size -= 2
} }
if size < 8 { if size < minGUIFontSize {
size = 8 size = minGUIFontSize
} }
return size return size
} }
@@ -3779,7 +3790,7 @@ func loadGUISettings() config.GUIConfig {
if err != nil || cfg == nil { if err != nil || cfg == nil {
return config.GUIConfig{ return config.GUIConfig{
TopMost: false, TopMost: false,
FontSize: 18, FontSize: defaultGUIFontSize,
RefreshIntervalValue: 2, RefreshIntervalValue: 2,
RefreshIntervalUnit: "sec", RefreshIntervalUnit: "sec",
HistoryExportIncludeTime: true, HistoryExportIncludeTime: true,
@@ -3788,7 +3799,7 @@ func loadGUISettings() config.GUIConfig {
} }
} }
if cfg.GUI.FontSize <= 0 { if cfg.GUI.FontSize <= 0 {
cfg.GUI.FontSize = 18 cfg.GUI.FontSize = defaultGUIFontSize
} }
cfg.GUI.RefreshIntervalValue, cfg.GUI.RefreshIntervalUnit = normalizeRefreshIntervalSettings(cfg.GUI.RefreshIntervalValue, cfg.GUI.RefreshIntervalUnit) cfg.GUI.RefreshIntervalValue, cfg.GUI.RefreshIntervalUnit = normalizeRefreshIntervalSettings(cfg.GUI.RefreshIntervalValue, cfg.GUI.RefreshIntervalUnit)
cfg.GUI.HistoryRegex = strings.TrimSpace(cfg.GUI.HistoryRegex) cfg.GUI.HistoryRegex = strings.TrimSpace(cfg.GUI.HistoryRegex)
@@ -4139,7 +4150,7 @@ func formatRightPane(tab string, state map[string]any, worldLabel string, curren
b.WriteString("\r\nFont size: ") b.WriteString("\r\nFont size: ")
fontSize, _ := state["font_size"].(int) fontSize, _ := state["font_size"].(int)
if fontSize == 0 { if fontSize == 0 {
fontSize = 18 fontSize = defaultGUIFontSize
} }
b.WriteString(strconv.Itoa(fontSize)) b.WriteString(strconv.Itoa(fontSize))
b.WriteString("\r\nLeave unmute: ") b.WriteString("\r\nLeave unmute: ")
@@ -4177,7 +4188,7 @@ func formatSettingsPane(state map[string]any) string {
b.WriteString("\r\nFont size: ") b.WriteString("\r\nFont size: ")
fontSize, _ := state["font_size"].(int) fontSize, _ := state["font_size"].(int)
if fontSize == 0 { if fontSize == 0 {
fontSize = 18 fontSize = defaultGUIFontSize
} }
b.WriteString(strconv.Itoa(fontSize)) b.WriteString(strconv.Itoa(fontSize))
b.WriteString("\r\nLeave unmute: ") b.WriteString("\r\nLeave unmute: ")

View File

@@ -53,7 +53,7 @@ func Load(path string) (*Config, error) {
cfg := &Config{ cfg := &Config{
OSC: OSCConfig{Host: "127.0.0.1", Port: 9001}, OSC: OSCConfig{Host: "127.0.0.1", Port: 9001},
GUI: GUIConfig{ GUI: GUIConfig{
FontSize: 18, FontSize: 14,
RefreshIntervalValue: 2, RefreshIntervalValue: 2,
RefreshIntervalUnit: "sec", RefreshIntervalUnit: "sec",
HistoryExportIncludeTime: true, HistoryExportIncludeTime: true,