Skip to content

Improve MidiLearnPanel/Table scripted LAF styling support#919

Draft
davidhealey wants to merge 5 commits intochristophhart:developfrom
davidhealey:midiLearnPanelLaf
Draft

Improve MidiLearnPanel/Table scripted LAF styling support#919
davidhealey wants to merge 5 commits intochristophhart:developfrom
davidhealey:midiLearnPanelLaf

Conversation

@davidhealey
Copy link
Copy Markdown
Contributor

Depends on #918

Improve MidiLearnPanel/FrontendMacroPanel scripted LAF styling support
Add comprehensive scripted look-and-feel support for MidiLearnPanel and
FrontendMacroPanel floating tiles, including:

  • Scripted LAF support for drawTableCell, drawTableRowBackground,
    drawTableHeaderBackground, drawTableHeaderColumn, drawLinearSlider,
    drawToggleButton, and drawScrollbar callbacks
  • Pass floating tile properties (colours, font, fontSize) to all LAF
    callbacks
  • Add ColumnWidthRatio property for configurable column widths
  • Add itemColour3, font, and fontSize to all drawTable LAF functions
  • Change InvertedButton from TextButton to ToggleButton for
    drawToggleButton
  • Set component IDs on floating tile sliders ("min" and "max")
  • Use visual column indices in drawTableCell and drawTableHeaderColumn
  • Make textBoxOutlineColourId transparent for scripted LAF sliders
  • Fix getFontName() usage for LAF font property across all table
    callbacks

https://claude.ai/code/session_01E1nPYm3ugRjMYoHCwRZkR4

claude and others added 3 commits March 18, 2026 18:03
Allows script developers to fully customise the PerformanceLabel floating tile via a drawPerformanceLabel LAF callback. The callback object provides layout, colours, font settings, and performance metrics (CPU %, RAM bytes, voices). Rendering now uses direct painting through LookAndFeelMethods instead of an internal Label, while preserving the previous default appearance and remaining backward compatible when no ScriptedLookAndFeel is used.
Exposes the keyboard floating tile's Font and FontSize panel properties
in the obj passed to drawWhiteNote and drawBlackNote scripted LAF
callbacks, allowing script authors to use the configured font when
drawing custom key labels.

https://claude.ai/code/session_01PemsiopLqyqjZb35AWzTZx

Fix font property in drawWhiteNote/drawBlackNote callbacks including style

getTypefaceName() returns only the family name ("Inter"), dropping the
style suffix. Add getFontName() getter to FloatingTileContent to expose
the raw fontName string ("Inter Bold", "Inter Medium", etc.) and use
that for the font callback property instead.

https://claude.ai/code/session_01PemsiopLqyqjZb35AWzTZx
Add comprehensive scripted look-and-feel support for MidiLearnPanel and
FrontendMacroPanel floating tiles, including:

- Scripted LAF support for drawTableCell, drawTableRowBackground,
  drawTableHeaderBackground, drawTableHeaderColumn, drawLinearSlider,
  drawToggleButton, and drawScrollbar callbacks
- Pass floating tile properties (colours, font, fontSize) to all LAF 
callbacks
- Add ColumnWidthRatio property for configurable column widths
- Add itemColour3, font, and fontSize to all drawTable LAF functions
- Change InvertedButton from TextButton to ToggleButton for 
drawToggleButton
- Set component IDs on floating tile sliders ("min" and "max")
- Use visual column indices in drawTableCell and drawTableHeaderColumn
- Make textBoxOutlineColourId transparent for scripted LAF sliders
- Fix getFontName() usage for LAF font property across all table 
callbacks

https://claude.ai/code/session_01E1nPYm3ugRjMYoHCwRZkR4
claude added 2 commits March 21, 2026 22:37
Use resizeAllColumnsToFit(width - scrollbarThickness) to properly
account for the scrollbar in both CSS and non-CSS table paths, matching
the pattern used in PageFactory.cpp.

https://claude.ai/code/session_01PoL6Ct4FKXR2LvU9S3Wksu
Adds a data property "ScrollbarWidth" to MidiLearnPanel that controls
the viewport's scrollbar thickness. Defaults to 16 to match the JUCE
default, preserving backwards compatibility.

https://claude.ai/code/session_01PoL6Ct4FKXR2LvU9S3Wksu
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.

2 participants