Skip to content

Display Buttons

Display buttons don't run actions — they organize and structure your menus visually.


LABEL

A non-interactive text line. Use it as a section header to group buttons visually.

Example: A Simple Menu with tools organized under labels:

─── Modeling ───
[ Loop Cut ]  [ Extrude ]  [ Bevel ]

─── Selection ───
[ Select All ]  [ Invert ]  [ Box Select ]

SECTION

A collapsible group. Add a SECTION button, then put other buttons inside it. The user can click the section header to expand or collapse it.

Use it when:

  • You have many buttons and want to keep the menu compact by default
  • You want to group related tools under a named header that can be hidden

In Preview — Edit Mode:

Click the section header to toggle open/close while editing.


DRAWER

A sliding panel that appears when the mouse hovers over the drawer button. Buttons inside the drawer are hidden until the user hovers — keeping the main menu clean.

Setup

Field Options
Direction RIGHT, LEFT, TOP, BOTTOM, SIDE_RIGHT, SIDE_LEFT
Items Per Row 0 = children in a single line (default). N > 0 wraps children into rows of N — useful for large drawers of icon buttons.
Items From Where the children come from: Static, Asset Folder, Modifiers or Python (see below).

Add child buttons inside the DRAWER button. They appear in the sliding panel.

Items From — filling a drawer automatically

Items From What fills the drawer
Static the buttons you added by hand
Asset Folder one button per asset file found in a folder, its thumbnail as icon, a click importing it. Set the Asset Kind (Models, Textures, HDRIs, Materials) so the click does the right thing, and use Asset Trigger Variants to run something after each import
Modifiers one sub-drawer per modifier on the active object, holding its parameters, its viewport and render toggles, and its actions. Nothing to write
Python the buttons a build() function returns, so the drawer is assembled from the scene

Two settings apply to the generated drawers:

  • Children Layout — direction, side flow, flow and items per row for the sub-panels a generator returns, without editing the script. A field left on Keep uses the generator's own value.
  • Rebuild When — an expression saying when the drawer is worth rebuilding. It is what keeps a generated drawer live in a menu that stays on screen; without one the drawer keeps what it had when it opened. A generator declaring PM_SIGNATURE supplies the expression itself, so a Modifiers drawer follows the active object with the field left empty.

Use it when:

  • You want secondary options accessible but not taking up space
  • You have a logical "parent → children" relationship (e.g. "Import" → list of formats)

Tip

Drawers support all widget types — sliders, color pickers, enum lists — not just operator buttons.

Icon-only children

Leave a child button's Label empty and set an Icon — it renders as an icon-only square. Combine with Items Per Row to build a compact icon grid inside a drawer.

Drawers in drawers

You can nest a DRAWER inside another DRAWER for deeper hierarchies.


SEPARATOR

Adds a visual gap between buttons. Use it to create breathing room inside a dense menu without adding a full LABEL or SECTION.

Its Style block chooses what is drawn in that gap: Space, Full line, Centered line, Dotted or Double dotted, with adjustable thickness, length and color. Line styles keep the background continuous, so a strip of glued buttons stays one block with a rule across it.

A separator used as a drawer item has the same Style block, and opens a real gap that cuts the panel background in two.