Skip to content

Popup menu laf colours and font#920

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

Popup menu laf colours and font#920
davidhealey wants to merge 5 commits intochristophhart:developfrom
davidhealey:popupMenuLaf

Conversation

@davidhealey
Copy link
Copy Markdown
Contributor

Depends on #915 and #919

Fix popup menu colours: pass component and panel colours to LAF callbacks
Route ComboBox and FloatingTile colour properties (bgColour, textColour,
itemColour1-3) through to drawPopupMenuBackground, drawPopupMenuItem, and
drawPopupMenuSectionHeader LAF callbacks. Also passes font/fontSize from
the ComboBox's configured font properties.

  • Set HiseColourScheme colour IDs on BorderPanel for popup menu support
  • Add FloatingTile and TableFloatingTileBase colour support
  • Fix popup menu rendering by passing nullptr to callWithGraphics
  • Read combo box font from HiComboBox::font (kept in sync via updateFont)

https://claude.ai/code/session_01MASkUkpwz1N9tJGdqrffmd

Fix popup menu font name always returning default typeface name
Store the configured font name string alongside the Font object in
ScriptedLookAndFeel, HiComboBox, and FloatingTileContent, so that the
drawPopupMenuItem LAF callback receives the user-configured name (e.g.
"Default" or a custom font ID) rather than the internal typeface name
(e.g. "Oxygen") obtained via getTypefaceName().

  • Add getFontName() to FloatingTileContent returning fontName or
    "Default"
  • Add getFontName() to ScriptedLookAndFeel::Laf returning the stored
    name
  • Add fontName member to ScriptedLookAndFeel, set in setGlobalFont()
  • Add fontName member to HiComboBox, set in
    ComboBoxWrapper::updateFont()
  • Use getFontName()/fontName in drawPopupMenuItemWithOptions and
    drawPopupMenuSectionHeaderWithOptions instead of getTypefaceName()
    https://claude.ai/code/session_01MhDNx57De9NDH44TfzMYPE

claude and others added 5 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
Remove drop shadow from popup menus using custom laf on Windows

Fix square background behind rounded value popup

Replace DropShadower with manually-painted DropShadow using a rounded
rectangle path. The DropShadower rendered shadow based on rectangular
component bounds, causing a visible square background when itemColour
and itemColour2 were set to transparent. Now the shadow follows the
rounded shape defined by borderRadius, allowing truly rounded popups.

https://claude.ai/code/session_01V2DtUFT6hpxSYF9aozG2z6
…acks

Route ComboBox and FloatingTile colour properties (bgColour, textColour,
itemColour1-3) through to drawPopupMenuBackground, drawPopupMenuItem, and
drawPopupMenuSectionHeader LAF callbacks. Also passes font/fontSize from
the ComboBox's configured font properties.

- Set HiseColourScheme colour IDs on BorderPanel for popup menu support
- Add FloatingTile and TableFloatingTileBase colour support
- Fix popup menu rendering by passing nullptr to callWithGraphics
- Read combo box font from HiComboBox::font (kept in sync via updateFont)

https://claude.ai/code/session_01MASkUkpwz1N9tJGdqrffmd

Fix popup menu font name always returning default typeface name
Store the configured font name string alongside the Font object in
ScriptedLookAndFeel, HiComboBox, and FloatingTileContent, so that the
drawPopupMenuItem LAF callback receives the user-configured name (e.g.
"Default" or a custom font ID) rather than the internal typeface name
(e.g. "Oxygen") obtained via getTypefaceName().
- Add getFontName() to FloatingTileContent returning fontName or
"Default"
- Add getFontName() to ScriptedLookAndFeel::Laf returning the stored
name
- Add fontName member to ScriptedLookAndFeel, set in setGlobalFont()
- Add fontName member to HiComboBox, set in
ComboBoxWrapper::updateFont()
- Use getFontName()/fontName in drawPopupMenuItemWithOptions and
  drawPopupMenuSectionHeaderWithOptions instead of getTypefaceName()
https://claude.ai/code/session_01MhDNx57De9NDH44TfzMYPE
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.

3 participants