Tier 5 — Theme¶
The theme half of Tier 5 is a single method on GRIPEMS.API.UI — a re-export of EMS's own panel-registration hook, not a capability of its own — that makes your plugin's frames inherit the active EMS skin so they match the rest of the window. It controls colours, fonts, textures, and borders — appearance only. It gives you no structural authority over EMS frames.
API.UI:RegisterPanelFrame(frame, category, class)¶
Registers frame with the theme system. When the user's theme changes, EMS restyles registered frames, including yours. Call it once, after you create the frame.
| Parameter | Type | Meaning |
|---|---|---|
frame |
frame | the frame to style |
category |
string | broad bucket, e.g. "panel" or "overlay" |
class |
string | a dotted style key, e.g. "panel.acmeNav" |
The method is nil-safe — if the theme system isn't present, the call does nothing rather than erroring. Always pass a class; registering without one is flagged as a mistake.
Pick a class namespaced to your plugin (panel.acme*) so you're styling your own frames against a known bucket rather than colliding with EMS's internal class keys. The category is the coarse grouping (panel for windows and sub-panels, overlay for HUD-style elements).
When to use it¶
Use it for the chrome your layout provider builds into the host frames, so a 3-column layout looks like part of EMS instead of a bolted-on window. Theme registration is appearance only — it never changes which spell fires, how the frame behaves, or anything on the lock list.