Skip to content

fix(gui): TLS RadioBox overflow + taskbar icon + About refresh (closes #63)#65

Merged
Aybook merged 1 commit into
mainfrom
fix/63-gui-cosmetics
Jun 12, 2026
Merged

fix(gui): TLS RadioBox overflow + taskbar icon + About refresh (closes #63)#65
Aybook merged 1 commit into
mainfrom
fix/63-gui-cosmetics

Conversation

@Aybook

@Aybook Aybook commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Three related GUI fixes that surfaced post-rc2 ship:

TLS RadioBox text overflow (wxLua 3.x)

The "TLSv1.3" radio item truncated to "TLSv1." on Windows. wxLua 2.x rendered the radio bullet + text tight enough that the `wxSUNKEN_BORDER` chrome fit within 83px; wxLua 3.x adds inner item-padding so the same width clips at the trailing "3". Bumping the outer box width alone didn't help (110px / 130px iterations still showed clipping).

Fix: keep the outer box at 100px (matches the original right-column visual width) AND drop the `wxSUNKEN_BORDER` style. Dropping the border recovers ~6-8px of inner space per side, which is exactly the budget the radio item needs to render the trailing character.

Missing taskbar / Alt-Tab / Explorer icon

`Announcer.exe` shipped without an embedded ICON resource so Windows used the generic GUI-exe glyph. `wxFrame:SetIcons()` in Lua attaches PNG icons for wx-side widgets but the OS-side taskbar / shell uses ONLY the .exe's embedded ICON.

Fix: new `frontends/gui/announcer.rc` + `frontends/gui/applogo.ico` (multi-resolution 16/32/48/96/256 generated from the source PNG). MinGW `windres` auto-compiles `.rc` sources listed in `add_executable`; CMakeLists.txt now `enable_language(RC)` and adds `announcer.rc` to the `announcer_gui_launcher` target.

Branded icon + About refresh

Swap all three runtime PNGs (`applogo_16x16/32x32/96x96.png`) and the new `applogo.ico` with the Luadch-NG branded design Aybo provided. About window gains two lines below "Members: jrock":

Hyperlink needs an explicit `wxSize(220, -1)` because wxLua 3.x miscomputes its preferred width and Centre() clips the label on both sides. All About y-coords from the first horizontal line onward shift by +40px to keep the rhythm; dialog height 505 → 545.

Test plan

  • `lua54 loadfile` -> OK
  • Live visual verification on rc2 Windows install (Aybo, 2026-06-12):
    • TLS RadioBox shows full "TLSv1.3" without truncation
    • New Luadch-NG branding in title bar + tray icon
    • About window: new logo, "Maintained since 2026 by Aybo" + clickable URL
    • Hyperlink opens in default browser
  • CI smoke green (Linux + Windows GUI builds)
  • Taskbar / Alt-Tab / Explorer icon visible (verified after CI rebuild produces new Announcer.exe)

🤖 Generated with Claude Code

…#63)

Three related GUI fixes that surfaced post-rc2 ship:

**TLS RadioBox text overflow (wxLua 3.x).** The "TLSv1.3" radio item
truncated to "TLSv1." on Windows. wxLua 2.x rendered the radio
bullet + text tight enough that the wxSUNKEN_BORDER chrome fit
within 83px; wxLua 3.x adds inner item-padding so the same width
clips at the trailing "3". Bumping the outer box width alone didn't
help (110px / 130px iterations still showed clipping). Fix: keep
the outer box at 100px (matches the original right-column visual
width) AND drop the wxSUNKEN_BORDER style. Dropping the border
recovers ~6-8px of inner space per side, which is exactly the
budget the radio item needs to render the trailing character.
save_hub button also reverted to the original 83px width.

**Missing taskbar / Alt-Tab / Explorer icon.** Announcer.exe shipped
without an embedded ICON resource so Windows used the generic
GUI-exe glyph. wxFrame:SetIcons() in Lua attaches PNG icons for
wx-side widgets (title bar inside the window) but the OS-side
taskbar / shell uses ONLY the .exe's embedded ICON. New
frontends/gui/announcer.rc + frontends/gui/applogo.ico (multi-
resolution 16/32/48/96/256 generated from the source PNG). MinGW
windres auto-compiles .rc sources listed in add_executable;
CMakeLists.txt now enable_language(RC) and adds announcer.rc to
the announcer_gui_launcher target.

**Branded icon + About refresh.** Swap all three runtime PNGs
(applogo_16x16/32x32/96x96.png) and the new applogo.ico with the
Luadch-NG branded design Aybo provided. About window gains two
lines below "Members: jrock": "Maintained since 2026 by Aybo" +
the org URL as a wxHyperlinkCtrl that opens in the default browser.
Hyperlink needs an explicit wxSize(220, -1) because wxLua 3.x
miscomputes its preferred width and Centre() clips the label on
both sides. All About y-coords from the first horizontal line
onward shift by +40px to keep the rhythm; dialog height 505 -> 545.

Lua syntax check via lua54 loadfile: OK.
Live visual verification on rc2 Windows install: PASS for TLS
RadioBox readability + new branding in title bar + new About
layout + clickable URL.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@Aybook
Aybook merged commit 6d2a596 into main Jun 12, 2026
8 checks passed
@Aybook
Aybook deleted the fix/63-gui-cosmetics branch June 12, 2026 13:20
@Aybook Aybook mentioned this pull request Jun 12, 2026
3 tasks
Aybook added a commit that referenced this pull request Jun 12, 2026
_VERSION bumped 1.0.0-dev -> 1.0.0-rc3 (visible in About window, title
bar, tray-icon tooltip, status bar, and the "ready" log line). Release
body re-leads with the rc2 -> rc3 delta:

  - #65 / #63 - TLS RadioBox overflow + missing taskbar .exe icon +
    branded About refresh
  - #66 / #59 - GUI worker stderr capture into log/logfile.txt
  - #67 / #62 - first-run cert auto-generation
  - #64 / #61 - tray exit crash + restore-from-tray (already in main
    since rc2-tag; documented for completeness as the load-bearing
    GUI fix between rc2 and rc3)

Tag will be pushed once this lands on main; release.yml auto-detects
the `-rc3` suffix as a SemVer pre-release.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant