Softanza
StartFrançais
Softanza
The library documents itself · GUI & reactive

stzPanel

64 own methods · 7 forms written with extensions, listed under their method

the source: base/gui/stzPanel.ring(opens in a new tab) · All classes · The area reference: GUI & reactive

Under each method, its extensions (Q CS XT Z ZZ IB W U): bold and ticked, it exists; struck, it does not. The extensions and what they mean

No method of this class is run on this page: the class reaches files, the network, processes, the clock, chance or sound, and an example run here would only be an example of its effects. Each method carries the explanation the library gives of itself.

Method
Explanation, as the source carries it
init
(no comment in the source: the name reads as a sentence) initno extension
Id_
identityno extension
Width
(no comment in the source: the name reads as a sentence) widthno extension
Height
(no comment in the source: the name reads as a sentence) heightno extension
IsAlive
(no comment in the source: the name reads as a sentence) is aliveno extension
LoadMarkup
the document -------------------------------------------------------- Markup as a STRING, because markup is emitted. See the header.QCSXTZZZIBWU
HasDocument
(no comment in the source: the name reads as a sentence) has documentno extension
Layout
Lay out. Cheap when nothing changed: G0 measured a still frame at 1/362 of a dirty one, and 500 still frames re-compiled zero geometry.QCSXTZZZIBWU
Resize
(no comment in the source: the name reads as a sentence) resizeQCSXTZZZIBWU
SetTime
RmlUi's clock, driven by the caller -- so a test frame is deterministic instead of depending on when it ran.no extension
Record
the geometry -------------------------------------------------------- Lay out if needed, then record the triangles. Called for you by DrawInto and by Verts/Indices; a caller driving its own frame loop may call it directly.no extension
Verts
Flat x, y, r, g, b, a per vertex -- pixel space, channels 0..255.no extension
Indices
Flat 0-based triangle indices.no extension
TriangleCount
Same as Record: the geometry -------------------------------------------------------- Lay out if needed, then record the triangles. Called for you by DrawInto and by Verts/Indices; a caller driving its own frame loop may call it directly.no extension
Counters
The last two are G2's, and they are the phase's own gauge. G0 measured 988 GetStringWidth calls per re-layout, unmemoized by RmlUi; at ~1 us per real shape that is ~1 ms/frame before a glyph is drawn, so the plan made a width cache a PRECONDITION. widthCalls is what RmlUi asked for and shapeCalls is what actually reached the shaper -- the gap between them is the cache doing its job, and if they ever converge the precondition has silently lapsed.no extension
WidthCalls
(no comment in the source: the name reads as a sentence) width callsno extension
ShapeCalls
(no comment in the source: the name reads as a sentence) shape callsno extension
WidthCacheHits
(no comment in the source: the name reads as a sentence) width cache hitsno extension
TextMeshes
That is not hypothetical: registering one font family twice used to free the id the existing faces pointed at, so widths came back -1, the quads were zero-wide, RmlUi culled them, and whichever panel had been built first lost its text. Two panels sharing a font is all it took, and every single-panel guard stayed green. The invariant lives here now so the next such bug is a failing number, not a screenshot.no extension
GenerateCalls
(no comment in the source: the name reads as a sentence) generate callsno extension
TextDraws
(no comment in the source: the name reads as a sentence) text drawsno extension
TextIsWhole
TRUE when every generated string became geometry.no extension
DroppedTexturedDraws
(no comment in the source: the name reads as a sentence) dropped textured drawsno extension
IgnoredScissors
(no comment in the source: the name reads as a sentence) ignored scissorsno extension
UseFont
Answers an stzFont for the caller to paint with, or NULL on refusal.QCSXTZZZIBWU
FontCount
(no comment in the source: the name reads as a sentence) font countno extension
FontFor
The stzFont this panel paints a recorded command with. Matching is by the engine font id the command carries -- not by family name, which a fallback may have changed under us.no extension
PointerMovedTo
EVENTS ARE DRAINED, NEVER DISPATCHED. RmlUi routes and bubbles, the engine writes down what arrived, and Events() hands over the list. A callback per event would re-enter Haro from inside a C++ dispatch, which is not safe, and the house has already settled this shape twice: the display list and the text commands.no extension
PointerPressed
(no comment in the source: the name reads as a sentence) pointer pressedno extension
PointerReleased
(no comment in the source: the name reads as a sentence) pointer releasedno extension
ClickAt
The whole gesture, because a click is a press AND a release and a caller that forgets the second one gets a button stuck down.no extension
PointerLeft
(no comment in the source: the name reads as a sentence) pointer leftno extension
KeyPressed
(no comment in the source: the name reads as a sentence) key pressedno extension
TypeText
(no comment in the source: the name reads as a sentence) type textno extension
ElementAt
The element under a point, by name. "" when the point hits nothing that carries a name -- a fair answer, not a failure.no extension
FromWindow
the conversions, named at the boundary ------------------------------ A window's pixels are the panel's when the panel fills the window, which is the case stzWindow.Draw arranges. Named anyway: the reader of a frame loop should see WHERE the space changes.no extension
FromTexture
A panel hanging in a 3D scene is hit by a RAY, and what the caller has after the intersection is a texture coordinate. This is the whole of the in-scene input mapping (§6's tier): uv in, panel pixels out. v is flipped because a texture's origin is bottom-left and a panel's is top-left -- the one place that difference is stated, so no caller has to remember it.no extension
SetTextOf
The difference is measurable, and the guard measures it: after a rebuild every string is generated again; after a set, only the ones that actually changed are. GenerateCalls() reports both. One element's words. The value is DATA -- it is escaped at the seam, so a model holding "<span>" cannot inject markup into a document the court already passed.QCSXTZZZIBWU
SetStyleOf
An EMPTY value removes the property, handing the element back to the stylesheet. Without that, a binding that had fired once could never be undone.QCSXTZZZIBWU
ClearStyleOf
(no comment in the source: the name reads as a sentence) clear style ofno extension
FocusOn
Rule 80 (Keyboard Sovereignty) is `machine` tier, so this is legally required rather than polish. RmlUi owns the traversal -- tab order in document order, and a spatial heuristic for directional moves -- and what is added here is the QUERY and the COUNTED refusal.no extension
ClearFocus
(no comment in the source: the name reads as a sentence) clear focusno extension
Focused
The focused element's name, or "" when nothing is focused.no extension
FocusNext
TRUE when focus MOVED. A refusal at the end of a ring is a real answer, not an error, so it answers FALSE rather than raising.no extension
FocusPrevious
(no comment in the source: the name reads as a sentence) focus previousno extension
FocusUp
Directional moves, for an arrow key or a gamepad stick. RmlUi picks the target by a spatial heuristic, which is what the WAI-ARIA APG contract wants inside a composite widget.no extension
FocusDown
(no comment in the source: the name reads as a sentence) focus downno extension
FocusLeft
(no comment in the source: the name reads as a sentence) focus leftno extension
FocusRight
(no comment in the source: the name reads as a sentence) focus rightno extension
TabRing
A ring is a CYCLE, and this enters it wherever focus currently sits: RmlUi resumes tabbing from the last focused element even after a blur, so calling this with `cancel` focused answers the same cycle rotated. The SET and the ORDER are stable; the entry point is not. Call it before touching focus if the first stop matters -- as the guard does.no extension
Events
The SOURCE is the frame §7 chose to surface, and it earns its place: Rule 80 makes "reachable by a human keyboard" materially different from "something dispatched a click", and G4 needs an assistive activation distinguishable from a pointer one.no extension
ClearEvents
(no comment in the source: the name reads as a sentence) clear eventsno extension
EventsDropped
What the bounded queue threw away. A caller that stops draining stops receiving, and this is how it finds out.no extension
EventCount
(no comment in the source: the name reads as a sentence) event countno extension
EventsFor
Every event whose target is one named element.no extension
Texts
Text crosses as COMMANDS, not as quads. RmlUi asked our font engine for the string; the engine recorded the request instead of rasterizing it, and the canvas draws it with the same shaper. That is why this plane owns no glyph atlas and no second rasterizer.no extension
TextCount
(no comment in the source: the name reads as a sentence) text countno extension
BoxOf
The laid-out box of one element: [x, y, w, h], in panel pixels. Empty when there is no such element -- an absence, not a raise, since asking about an element that may not exist is a fair question.no extension
LastEngineMessage
(no comment in the source: the name reads as a sentence) last engine messageno extension
DrawInto
output -------------------------------------------------------------- Put the panel's triangles into a canvas. The canvas decides what happens next -- ToSVG() with no device, ToPNG() with one, a window, or a texture mapped onto a quad in a 3D scene. The panel does not know and must not care.QCSXTZZZIBWU
ToCanvas
The panel as a picture, on the tier this machine can reach. A canvas is made, drawn into and answered -- so the caller gets ToSVG/ToPNG/ Show without assembling anything.no extension
ToSVG
(no comment in the source: the name reads as a sentence) to svgno extension
ToPNG
(no comment in the source: the name reads as a sentence) to pngno extension
Free
(no comment in the source: the name reads as a sentence) freeno extension