The example catalog

Every example in the suite, grouped the way bb examples groups them. Each is one namespace under raygui-examples/src/net/b12n/raygui_jnk/.

bb <name>          # run one, windowed. Q quits.
bb run-all [secs]  # cycle all of them, a demo reel
bb shot <name>     # run headless and screenshot to /tmp/<name>.png
bb examples        # this grouping, printed live
bb info            # every task, grouped, not just these

scripts/examples_registry.clj is the single source of truth for the names and descriptions below, and bb examples fails if a bb.edn task drifts from it. Run that for the count that is true right now rather than this page's memory of it. At the time of writing there are 24 examples across 7 groups, and the suite is complete.

Screenshots are captured by the same bb shot task the gates use. None of them shows an interaction, because no gate here can drive a mouse.

basics

previewbb namewhat it shows
basic-controlsThe smallest complete program here: a button, a label and a click counter. It proves the package built, the bounds arrived intact, and an int cell round-tripped through raygui's pointer API.
icon-buttonsraygui carries 256 icons inside the header, so there is no image to load. GuiIconText composes one with a label for any control, GuiDrawIcon draws it directly. The scale is global and persists until it is set back.
labels-linesThe controls that draw and hold nothing: labels at two alignments, separators with and without a caption, a placeholder box, a status bar. Also the thing to watch about raygui styling, since TEXT_ALIGNMENT is global and has to be put back.
togglesThree controls that all hold a selection, with three different state shapes. GuiToggle owns a bool cell; GuiToggleGroup and GuiToggleSlider take their options as one semicolon-separated string and report an index through an int cell.

inputs

previewbb namewhat it shows
text-boxThe first mutable char buffer. Edit mode is a plain bool the caller owns rather than a cell, and the screenshot prints the buffer's length so a failed readback would be visible.
text-input-boxA whole dialog in one call, including an out-param that raygui 5.0's docs do not show. The masked field always draws sixteen asterisks whatever the buffer holds, because raygui masks with a fixed literal.
spinner-value-boxBoth hold an int cell and clamp to a range. The third spinner starts at 999 against a maximum of 50, so the screenshot shows the clamp holding rather than asserting that it does.
slidersGuiSlider has a draggable handle, GuiSliderBar fills from its left edge. Each value is drawn beside its control, so a cell that failed to round-trip would show up in the picture.
progress-barFilled from GetTime rather than a frame counter. The only example that does not capture on frame 0, since an empty bar proves nothing.

collections

previewbb namewhat it shows
dropdown-boxEdit mode is a plain bool and the caller flips it. While the list is open the rest of the panel is locked and the dropdown draws last, or clicks fall through to whatever sits underneath.
combo-boxThe simple one. No edit mode, no overlay, no locking: clicking advances through the options and writes an int cell.
list-viewTwo int cells, a scroll index and an active row, over a semicolon-separated string. The scroll index is seeded non-zero, because a zero scroll looks the same as an unwired one.
list-view-exThe only control taking an array of strings rather than a joined one, and it adds a third out-param for the row under the pointer. The array is built and freed inside the wrapper, so examples pass a plain vector.
tab-barReturns a result code rather than a tab index: the tab to close is the active one. Close buttons only appear when TAB_CLOSE_BUTTON is set on the tab bar.

containers

previewbb namewhat it shows
panel-group-boxNeither container clips its children or holds state. They draw a frame, and the caller places what goes inside.
scroll-panelThe suite's only Rectangle * out-param. raygui reports the visible view back, which the example uses to scissor its content: 386 by 221 inside a 400 by 260 panel, once the scrollbars are subtracted. Ported from raygui's own example.
window-boxDraws a titled frame and reports its close button, and manages nothing else. Visibility is a bool cell the caller keeps, along with a way back.
floating-windowDragging is not a raygui feature. The title-bar hit test, the offset and the movement are all the caller's, in float cells. Ported from raygui's own example. The drag itself is not covered by any gate here.

dialogs

previewbb namewhat it shows
message-boxReturns a result code and writes the button index into a cell: 0 for the window's own close button, then 1 upward in semicolon order. Modality is the caller's job, since raygui draws no scrim and blocks nothing.
custom-input-boxThe same dialog as text-input-box, assembled by hand from a panel, a label, a text box and two buttons. What that buys is validation: OK stays disabled while the field is empty. Ported from raygui's own example.

color

previewbb namewhat it shows
color-pickerA Color * cell, seeded a distinctive orange so a failed readback could not hide. The swatch is drawn from the cell's own components, and the alpha strip sits over a chequer so transparency is visible.
color-picker-hsvHolds a Vector3 of hue, saturation and value rather than a colour. The swatch converts back through ColorFromHSV, so both representations are on screen agreeing.

styling

previewbb namewhat it shows
style-selectorCycles the six vendored themes plus raygui's built-in default. Palette and embedded font both come from the .rgs. Shown here with cyber, since the default theme shows nothing about styling. Ported from raygui's own example.
gui-stateThe global-state API, which has no bounds of its own. The same three controls under each forced state, then alpha, then lock. All three are global and sticky, so every row resets immediately.

The six vendored themes

style-selector cycles these. Each .rgs carries a palette and its own embedded font, and the font changing is the clearest sign the file loaded.

themetheme
ashescandy
cyberdark
sunnyterminal