|
|
|
|
@@ -1275,9 +1275,17 @@ func paintHistoryDetailPane(hwnd uintptr, app *guiApp) uintptr {
|
|
|
|
|
border = clrAccentGreen
|
|
|
|
|
}
|
|
|
|
|
drawSettingsBox(hdc, row.Rect, fill, border)
|
|
|
|
|
duration := humanDurationLabel(row.Start, row.End, row.Current)
|
|
|
|
|
durationWidth := measureTextWidth(hdc, duration, app.hFont)
|
|
|
|
|
durationX := row.Rect.Right - 12 - durationWidth
|
|
|
|
|
if durationX < row.Rect.Left+260 {
|
|
|
|
|
durationX = row.Rect.Left + 260
|
|
|
|
|
}
|
|
|
|
|
drawPaneText(hdc, row.Rect.Left+12, y+6, "入室 "+historyEntryTimeLabel(row.Start, false, row.Current), app.hFont, clrMutedText)
|
|
|
|
|
drawPaneText(hdc, row.Rect.Left+146, y+6, "退室 "+historyEntryTimeLabel(row.End, true, row.Current), app.hFont, clrMutedText)
|
|
|
|
|
drawPaneText(hdc, row.Rect.Right-110, y+6, humanDurationLabel(row.Start, row.End, row.Current), app.hFont, clrMutedText)
|
|
|
|
|
drawPaneText(hdc, row.Rect.Left+136, y+6, "退室 "+historyEntryTimeLabel(row.End, true, row.Current), app.hFont, clrMutedText)
|
|
|
|
|
if durationX+durationWidth < row.Rect.Right-8 {
|
|
|
|
|
drawPaneText(hdc, durationX, y+6, duration, app.hFont, clrMutedText)
|
|
|
|
|
}
|
|
|
|
|
label := ellipsizeTextToWidth(hdc, row.WorldLabel, row.Rect.Right-row.Rect.Left-150, app.joinBoldHFont)
|
|
|
|
|
if label == "" {
|
|
|
|
|
label = "(unknown)"
|
|
|
|
|
@@ -1373,12 +1381,12 @@ func isMidnight(t time.Time) bool {
|
|
|
|
|
|
|
|
|
|
func historyEntryTimeLabel(t time.Time, isEnd bool, current bool) string {
|
|
|
|
|
if t.IsZero() {
|
|
|
|
|
if current {
|
|
|
|
|
if current && isEnd {
|
|
|
|
|
return "now"
|
|
|
|
|
}
|
|
|
|
|
return ""
|
|
|
|
|
}
|
|
|
|
|
if current {
|
|
|
|
|
if current && isEnd {
|
|
|
|
|
return "now"
|
|
|
|
|
}
|
|
|
|
|
if isEnd && isMidnight(t) {
|
|
|
|
|
|