AM+ Layout Designer Updates

Version 6.0

Whats New:

Button order (left → right in toolbar): 🎨 Theme · πŸ“‹ Romlist · πŸ“‚ Load .nut · πŸ’Ύ Save .nut · πŸ—‘ Clear All · ❓ Help · πŸ”„ Updates

Tooltips — hover any topbar button and a small bordered popup appears below it:

ButtonTooltipπŸ’Ύ Save .nutSave the current layout.nut code to diskπŸ”„ UpdatesVisit the website for news and updatesπŸ“‚ Load .nutLoad an existing layout.nut fileπŸ—‘ Clear AllRemove all elements and reset the layoutπŸ“‹ RomlistOpen the Romlist Editor in its own window❓ HelpOpen the built-in help & reference🎨 ThemeChoose a colour theme

The _attach_tooltip helper is reusable — you can call self._attach_tooltip(any_widget, "text") anywhere else in the app to add tooltips to other widgets too. Tooltips dismiss on mouse leave or when you click the button.


Version 6.1

Whats New:

Elements Look Better


Version 6.2

Whats New:

Standard menu bar (top-left, always visible):

MenuItemsFileNew Ctrl+N · Load Ctrl+O · Save Ctrl+S · Layout Info · Preview · ExitEditDuplicate Ctrl+D · Delete · Bring Forward/Back · Clear AllViewChoose Theme · Load/Clear BG ImageToolsRomlist Editor · CFG Generator · Reference · AM+ Docs · Snippet ManagerHelpHelp & Reference · Check for Updates/Website · About

Topbar — now just 5 core buttons a novice needs every session: πŸ“‚ Load .nut · πŸ’Ύ Save .nut · πŸ—‘ Clear · β–Ά Preview · 🎨 Theme

Left panel — trimmed to 3 tabs: Elements · Modules · Snippets

Right panel — trimmed to 2 tabs: Properties · layout.nut

Everything advanced (Romlist, CFG Gen, Reference, Docs) is in Tools and opens in its own full popup window — out of the way until needed.


Version 6.3

Whats New:

Here's a summary of everything cleaned up:

Dead code removed:

  • _toggle_appearance() — orphaned, never called
  • _build_romlist_tab_stub() — Romlist is now a Tools menu popup only
  • ORIENT_OPTIONS constant — defined but never referenced anywhere

New shared helpers (reduce repetition):

  • _cfont(size, bold=False) — replaces all ctk.CTkFont(family="Courier", size=N, ...) calls. Used 67 times in the file, now a single 3-line function
  • _ENTRY_KW dict — replaces repeating fg_color=COLORS["panel2"], text_color=..., border_color=... on every CTkEntry
  • _COMBO_KW dict — same for CTkComboBox
  • _btn() — reduced from 10 lines to 5

File structure — clear section headers:

# ─── ATTRACT-MODE PLUS LAYOUT DESIGNER

# ─── CONFIGURATION & CONSTANTS

# ─── THEME & COLOUR SYSTEM # ─── DATA MODEL (LayoutElement)

# ─── CANVAS (LayoutCanvas)

# ─── PROPERTIES PANEL (PropertiesPanel)

# ─── MAIN APPLICATION (AttractLayoutBuilder)

# ── Styling

# ── Widget helpers

# ── UI Construction

# ── Left panel tabs

# ── Right panel tabs

# ── Element operations

# ── Canvas / resolution helpers

# ── Background image

# ── Code generation

# ── Code editor

# ── File I/O

# ── Snippets

# ── CFG Generator

# ── Romlist Editor

# ── Reference tab

# ── AM+ Docs tab

# ── Preview / Launch

# ── Dialogs

# ── Updates & tools

# ── Theme picker

# ── Help

# ─── ENTRY POINT

Spacing: Trailing whitespace stripped from every line, excess blank lines compressed.


Version 6.4

Whats New:

Three ways to add a preview image to any element:

  1. Drag and drop — select the element first, then drag a PNG/JPG/MP4 from Explorer onto the canvas. The file gets assigned to that element's preview
  2. Browse button — in Properties > CANVAS PREVIEW section, click Browse to pick any image or video file
  3. Type the path — paste directly into the Preview File entry

Works on all visual types:
snap · video · boxart · marquee · wheel · flyer · fanart · artwork · surface · image

Video support (MP4, AVI, MKV, MOV etc.) — extracts the first frame using opencv-python

Key behaviour:

  • Preview images are display only — never written to layout.nut
  • The existing box outline, icon, name label, selection handles, resize — all still work exactly as before when no preview is set, and the border/handles draw on top of the preview image when selected
  • βœ• Clear Preview button removes the preview and restores the placeholder box
  • Cached per element — resizing stays fast

Updated 05-28-2026

Remember To Overwrite The Exe <-- False positive

Beta 

Rating: 0 stars
0 votes