Egui::WindowFrame::Macos
Inherits Egui::WindowFrame < Reference < Object
========================================================================== macOS (current): light titlebar with a separator hairline, centered title, traffic lights at the LEFT edge — close, minimize, zoom in Apple's order.
Constants
BG_BOTTOM = Color32.new(233, 233, 233, 255)
BG_TOP = Color32.new(243, 243, 243, 255)
CAPTION_H = 28.0
CLOSE = Color32.new(255, 95, 87, 255)
CLOSE_DOWN = Color32.new(214, 55, 49, 255)
CLOSE_GLYPH = Color32.new(130, 0, 0, 255)
Glyph shades (macOS darkens the symbols inside the lights).
CLOSE_RING = Color32.new(224, 71, 65, 255)
Each light carries a slightly darker ring + a still darker pressed shade (what the real traffic lights do).
FG = Color32.new(60, 60, 64, 255)
FIRST_CX = 20.0
LIGHT_D = 14.0
LIGHT_GAP = 8.0
MIN = Color32.new(254, 188, 46, 255)
MIN_DOWN = Color32.new(214, 152, 20, 255)
MIN_GLYPH = Color32.new(150, 95, 0, 255)
MIN_RING = Color32.new(222, 160, 24, 255)
SEPARATOR = Color32.new(201, 201, 201, 255)
TITLE_PT = 17.0
ZOOM = Color32.new(40, 200, 64, 255)
ZOOM_DOWN = Color32.new(28, 158, 50, 255)
ZOOM_GLYPH = Color32.new(9, 90, 23, 255)
ZOOM_RING = Color32.new(34, 170, 55, 255)
Instance methods
caption_height
Sourcepaint_buttons(bar : Rect) : Nil
Traffic lights: close, minimize, zoom from the left edge. Each light reacts to its OWN hover only — the glyph appears in the hovered circle alone (real macOS reveals the group; per-button is what actually reads clean at this DPI).
paint_caption(bar : Rect) : Nil
The caption background. Win11 has NO separator under the caption; macOS has one. Fills grow 1pt past the strip and ride z=1 (panels paint at z=0, the deferred central panel later) so no panel stroke can bleed through at the seam.
paint_title(bar : Rect) : Nil
Source