1695 lines
37 KiB
Zig
1695 lines
37 KiB
Zig
const std = @import("std");
|
|
const raygui = @cImport({
|
|
@cInclude("raygui.h");
|
|
@cInclude("raygui_marshal.h");
|
|
});
|
|
const raylib = @import("raylib");
|
|
|
|
pub const Rectangle = raylib.Rectangle;
|
|
pub const Vector2 = raylib.Vector2;
|
|
pub const Color = raylib.Color;
|
|
pub const RICON_SIZE = 32;
|
|
pub const RICON_DATA_ELEMENTS = 255;
|
|
|
|
pub fn textAlignPixelOffset(h: i32) i32 {
|
|
return h % 2;
|
|
}
|
|
|
|
fn bitCheck(a: u32, b: u32) bool {
|
|
const r = @shlWithOverflow(1, @as(u5, @truncate(b)));
|
|
return (a & (r[0])) != 0;
|
|
}
|
|
|
|
/// Draw selected icon using rectangles pixel-by-pixel
|
|
pub fn GuiDrawIcon(
|
|
icon: raygui.GuiIconName,
|
|
posX: i32,
|
|
posY: i32,
|
|
pixelSize: i32,
|
|
color: raylib.Color,
|
|
) void {
|
|
const iconId = @intFromEnum(icon);
|
|
|
|
var i: i32 = 0;
|
|
var y: i32 = 0;
|
|
while (i < RICON_SIZE * RICON_SIZE / 32) : (i += 1) {
|
|
var k: u32 = 0;
|
|
while (k < 32) : (k += 1) {
|
|
if (bitCheck(raygui.guiIcons[@as(usize, @intCast(iconId * RICON_DATA_ELEMENTS + i))], k)) {
|
|
_ = raylib.DrawRectangle(
|
|
posX + @as(i32, @intCast(k % RICON_SIZE)) * pixelSize,
|
|
posY + y * pixelSize,
|
|
pixelSize,
|
|
pixelSize,
|
|
color,
|
|
);
|
|
}
|
|
|
|
if ((k == 15) or (k == 31)) {
|
|
y += 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/// Draw button with icon centered
|
|
pub fn GuiDrawIconButton(bounds: raylib.Rectangle, icon: GuiIconName, iconTint: raylib.Color) bool {
|
|
const pressed = GuiButton(bounds, "");
|
|
GuiDrawIcon(
|
|
icon,
|
|
@as(i32, @intFromFloat(bounds.x + bounds.width / 2 - @as(f32, @floatFromInt(RICON_SIZE)) / 2)),
|
|
@as(i32, @intFromFloat(bounds.y + (bounds.height / 2) - @as(f32, @floatFromInt(RICON_SIZE)) / 2)),
|
|
1,
|
|
iconTint,
|
|
);
|
|
return pressed;
|
|
}
|
|
|
|
/// Enable gui controls (global state)
|
|
pub fn GuiEnable() void {
|
|
raygui.mGuiEnable();
|
|
}
|
|
|
|
/// Disable gui controls (global state)
|
|
pub fn GuiDisable() void {
|
|
raygui.mGuiDisable();
|
|
}
|
|
|
|
/// Lock gui controls (global state)
|
|
pub fn GuiLock() void {
|
|
raygui.mGuiLock();
|
|
}
|
|
|
|
/// Unlock gui controls (global state)
|
|
pub fn GuiUnlock() void {
|
|
raygui.mGuiUnlock();
|
|
}
|
|
|
|
/// Check if gui is locked (global state)
|
|
pub fn GuiIsLocked() bool {
|
|
return raygui.mGuiIsLocked();
|
|
}
|
|
|
|
/// Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
|
|
pub fn GuiSetAlpha(
|
|
alpha: f32,
|
|
) void {
|
|
raygui.mGuiSetAlpha(
|
|
alpha,
|
|
);
|
|
}
|
|
|
|
/// Set gui state (global state)
|
|
pub fn GuiSetState(
|
|
state: GuiState,
|
|
) void {
|
|
raygui.mGuiSetState(
|
|
@intFromEnum(state),
|
|
);
|
|
}
|
|
|
|
/// Get gui state (global state)
|
|
pub fn GuiGetState() GuiState {
|
|
var out: GuiState = undefined;
|
|
raygui.mGuiGetState(
|
|
@as([*c]GuiState, @ptrCast(&out)),
|
|
);
|
|
return out;
|
|
}
|
|
|
|
/// Set gui custom font (global state)
|
|
pub fn GuiSetFont(
|
|
font: Font,
|
|
) void {
|
|
raygui.mGuiSetFont(
|
|
@as([*c]raygui.Font, @ptrFromInt(@intFromPtr(&font))),
|
|
);
|
|
}
|
|
|
|
/// Get gui custom font (global state)
|
|
pub fn GuiGetFont() Font {
|
|
var out: Font = undefined;
|
|
raygui.mGuiGetFont(
|
|
@as([*c]raygui.Font, @ptrCast(&out)),
|
|
);
|
|
return out;
|
|
}
|
|
|
|
/// Set one style property
|
|
pub fn GuiSetStyle(
|
|
control: i32,
|
|
property: i32,
|
|
value: i32,
|
|
) void {
|
|
raygui.mGuiSetStyle(
|
|
control,
|
|
property,
|
|
value,
|
|
);
|
|
}
|
|
|
|
/// Get one style property
|
|
pub fn GuiGetStyle(
|
|
control: GuiControl,
|
|
property: i32,
|
|
) i32 {
|
|
return raygui.mGuiGetStyle(
|
|
@intFromEnum(control),
|
|
property,
|
|
);
|
|
}
|
|
|
|
/// Load style file over global style variable (.rgs)
|
|
pub fn GuiLoadStyle(
|
|
fileName: [*:0]const u8,
|
|
) void {
|
|
raygui.mGuiLoadStyle(
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(fileName))),
|
|
);
|
|
}
|
|
|
|
/// Load style default over global style
|
|
pub fn GuiLoadStyleDefault() void {
|
|
raygui.mGuiLoadStyleDefault();
|
|
}
|
|
|
|
/// Enable gui tooltips (global state)
|
|
pub fn GuiEnableTooltip() void {
|
|
raygui.mGuiEnableTooltip();
|
|
}
|
|
|
|
/// Disable gui tooltips (global state)
|
|
pub fn GuiDisableTooltip() void {
|
|
raygui.mGuiDisableTooltip();
|
|
}
|
|
|
|
/// Set tooltip string
|
|
pub fn GuiSetTooltip(
|
|
tooltip: [*:0]const u8,
|
|
) void {
|
|
raygui.mGuiSetTooltip(
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(tooltip))),
|
|
);
|
|
}
|
|
|
|
/// Get text with icon id prepended (if supported)
|
|
pub fn GuiIconText(
|
|
iconId: i32,
|
|
text: [*:0]const u8,
|
|
) [*:0]const u8 {
|
|
return @as(
|
|
[*:0]const u8,
|
|
@ptrCast(raygui.mGuiIconText(
|
|
iconId,
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
)),
|
|
);
|
|
}
|
|
|
|
/// Set default icon drawing size
|
|
pub fn GuiSetIconScale(
|
|
scale: i32,
|
|
) void {
|
|
raygui.mGuiSetIconScale(
|
|
scale,
|
|
);
|
|
}
|
|
|
|
/// Get raygui icons data pointer
|
|
pub fn GuiGetIcons() *u32 {
|
|
return @as(
|
|
*u32,
|
|
@ptrCast(raygui.mGuiGetIcons()),
|
|
);
|
|
}
|
|
|
|
/// Load raygui icons file (.rgi) into internal icons data
|
|
pub fn GuiLoadIcons(
|
|
fileName: [*:0]const u8,
|
|
loadIconsName: bool,
|
|
) [*][*:0]u8 {
|
|
return @as(
|
|
[*][*:0]u8,
|
|
@ptrCast(raygui.mGuiLoadIcons(
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(fileName))),
|
|
loadIconsName,
|
|
)),
|
|
);
|
|
}
|
|
|
|
/// Window Box control, shows a window that can be closed
|
|
pub fn GuiWindowBox(
|
|
bounds: Rectangle,
|
|
title: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiWindowBox(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(title))),
|
|
);
|
|
}
|
|
|
|
/// Group Box control with text name
|
|
pub fn GuiGroupBox(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiGroupBox(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
);
|
|
}
|
|
|
|
/// Line separator control, could contain text
|
|
pub fn GuiLine(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiLine(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
);
|
|
}
|
|
|
|
/// Panel control, useful to group controls
|
|
pub fn GuiPanel(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiPanel(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
);
|
|
}
|
|
|
|
/// Tab Bar control, returns TAB to be closed or -1
|
|
pub fn GuiTabBar(
|
|
bounds: Rectangle,
|
|
text: [*]const [*:0]const u8,
|
|
count: i32,
|
|
active: *i32,
|
|
) i32 {
|
|
return raygui.mGuiTabBar(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c][*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
count,
|
|
@as([*c]i32, @ptrCast(active)),
|
|
);
|
|
}
|
|
|
|
/// Scroll Panel control
|
|
pub fn GuiScrollPanel(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
content: Rectangle,
|
|
scroll: *Vector2,
|
|
view: *Rectangle,
|
|
) i32 {
|
|
return raygui.mGuiScrollPanel(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&content))),
|
|
@as([*c]raygui.Vector2, @ptrFromInt(@intFromPtr(scroll))),
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(view))),
|
|
);
|
|
}
|
|
|
|
/// Label control, shows text
|
|
pub fn GuiLabel(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiLabel(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
);
|
|
}
|
|
|
|
/// Button control, returns true when clicked
|
|
pub fn GuiButton(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiButton(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
);
|
|
}
|
|
|
|
/// Label button control, show true when clicked
|
|
pub fn GuiLabelButton(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiLabelButton(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
);
|
|
}
|
|
|
|
/// Toggle Button control, returns true when active
|
|
pub fn GuiToggle(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
active: *bool,
|
|
) i32 {
|
|
return raygui.mGuiToggle(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]bool, @ptrCast(active)),
|
|
);
|
|
}
|
|
|
|
/// Toggle Group control, returns active toggle index
|
|
pub fn GuiToggleGroup(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
active: *i32,
|
|
) i32 {
|
|
return raygui.mGuiToggleGroup(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]i32, @ptrCast(active)),
|
|
);
|
|
}
|
|
|
|
/// Toggle Slider control, returns true when clicked
|
|
pub fn GuiToggleSlider(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
active: *i32,
|
|
) i32 {
|
|
return raygui.mGuiToggleSlider(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]i32, @ptrCast(active)),
|
|
);
|
|
}
|
|
|
|
/// Check Box control, returns true when active
|
|
pub fn GuiCheckBox(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
checked: *bool,
|
|
) i32 {
|
|
return raygui.mGuiCheckBox(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]bool, @ptrCast(checked)),
|
|
);
|
|
}
|
|
|
|
/// Combo Box control, returns selected item index
|
|
pub fn GuiComboBox(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
active: *i32,
|
|
) i32 {
|
|
return raygui.mGuiComboBox(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]i32, @ptrCast(active)),
|
|
);
|
|
}
|
|
|
|
/// Dropdown Box control, returns selected item
|
|
pub fn GuiDropdownBox(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
active: *i32,
|
|
editMode: bool,
|
|
) i32 {
|
|
return raygui.mGuiDropdownBox(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]i32, @ptrCast(active)),
|
|
editMode,
|
|
);
|
|
}
|
|
|
|
/// Spinner control, returns selected value
|
|
pub fn GuiSpinner(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
value: *i32,
|
|
minValue: i32,
|
|
maxValue: i32,
|
|
editMode: bool,
|
|
) i32 {
|
|
return raygui.mGuiSpinner(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]i32, @ptrCast(value)),
|
|
minValue,
|
|
maxValue,
|
|
editMode,
|
|
);
|
|
}
|
|
|
|
/// Value Box control, updates input text with numbers
|
|
pub fn GuiValueBox(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
value: *i32,
|
|
minValue: i32,
|
|
maxValue: i32,
|
|
editMode: bool,
|
|
) i32 {
|
|
return raygui.mGuiValueBox(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]i32, @ptrCast(value)),
|
|
minValue,
|
|
maxValue,
|
|
editMode,
|
|
);
|
|
}
|
|
|
|
/// Text Box control, updates input text
|
|
pub fn GuiTextBox(
|
|
bounds: Rectangle,
|
|
text: ?[*:0]u8,
|
|
textSize: i32,
|
|
editMode: bool,
|
|
) i32 {
|
|
return raygui.mGuiTextBox(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]u8, @ptrCast(text)),
|
|
textSize,
|
|
editMode,
|
|
);
|
|
}
|
|
|
|
/// Slider control, returns selected value
|
|
pub fn GuiSlider(
|
|
bounds: Rectangle,
|
|
textLeft: [*:0]const u8,
|
|
textRight: [*:0]const u8,
|
|
value: *f32,
|
|
minValue: f32,
|
|
maxValue: f32,
|
|
) i32 {
|
|
return raygui.mGuiSlider(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(textLeft))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(textRight))),
|
|
@as([*c]f32, @ptrCast(value)),
|
|
minValue,
|
|
maxValue,
|
|
);
|
|
}
|
|
|
|
/// Slider Bar control, returns selected value
|
|
pub fn GuiSliderBar(
|
|
bounds: Rectangle,
|
|
textLeft: [*:0]const u8,
|
|
textRight: [*:0]const u8,
|
|
value: *f32,
|
|
minValue: f32,
|
|
maxValue: f32,
|
|
) i32 {
|
|
return raygui.mGuiSliderBar(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(textLeft))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(textRight))),
|
|
@as([*c]f32, @ptrCast(value)),
|
|
minValue,
|
|
maxValue,
|
|
);
|
|
}
|
|
|
|
/// Progress Bar control, shows current progress value
|
|
pub fn GuiProgressBar(
|
|
bounds: Rectangle,
|
|
textLeft: [*:0]const u8,
|
|
textRight: [*:0]const u8,
|
|
value: *f32,
|
|
minValue: f32,
|
|
maxValue: f32,
|
|
) i32 {
|
|
return raygui.mGuiProgressBar(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(textLeft))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(textRight))),
|
|
@as([*c]f32, @ptrCast(value)),
|
|
minValue,
|
|
maxValue,
|
|
);
|
|
}
|
|
|
|
/// Status Bar control, shows info text
|
|
pub fn GuiStatusBar(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiStatusBar(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
);
|
|
}
|
|
|
|
/// Dummy control for placeholders
|
|
pub fn GuiDummyRec(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiDummyRec(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
);
|
|
}
|
|
|
|
/// Grid control, returns mouse cell position
|
|
pub fn GuiGrid(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
spacing: f32,
|
|
subdivs: i32,
|
|
mouseCell: *Vector2,
|
|
) i32 {
|
|
return raygui.mGuiGrid(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
spacing,
|
|
subdivs,
|
|
@as([*c]raygui.Vector2, @ptrFromInt(@intFromPtr(mouseCell))),
|
|
);
|
|
}
|
|
|
|
/// List View control, returns selected list item index
|
|
pub fn GuiListView(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
scrollIndex: *i32,
|
|
active: *i32,
|
|
) i32 {
|
|
return raygui.mGuiListView(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]i32, @ptrCast(scrollIndex)),
|
|
@as([*c]i32, @ptrCast(active)),
|
|
);
|
|
}
|
|
|
|
/// List View with extended parameters
|
|
pub fn GuiListViewEx(
|
|
bounds: Rectangle,
|
|
text: [*]const [*:0]const u8,
|
|
count: i32,
|
|
scrollIndex: *i32,
|
|
active: *i32,
|
|
focus: ?*i32,
|
|
) i32 {
|
|
return raygui.mGuiListViewEx(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c][*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
count,
|
|
@as([*c]i32, @ptrCast(scrollIndex)),
|
|
@as([*c]i32, @ptrCast(active)),
|
|
@as([*c]i32, @ptrCast(focus)),
|
|
);
|
|
}
|
|
|
|
/// Message Box control, displays a message
|
|
pub fn GuiMessageBox(
|
|
bounds: Rectangle,
|
|
title: [*:0]const u8,
|
|
message: [*:0]const u8,
|
|
buttons: [*:0]const u8,
|
|
) i32 {
|
|
return raygui.mGuiMessageBox(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(title))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(message))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(buttons))),
|
|
);
|
|
}
|
|
|
|
/// Text Input Box control, ask for text, supports secret
|
|
pub fn GuiTextInputBox(
|
|
bounds: Rectangle,
|
|
title: [*:0]const u8,
|
|
message: [*:0]const u8,
|
|
buttons: [*:0]const u8,
|
|
text: ?[*:0]u8,
|
|
textMaxSize: i32,
|
|
secretViewActive: *bool,
|
|
) i32 {
|
|
return raygui.mGuiTextInputBox(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(title))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(message))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(buttons))),
|
|
@as([*c]u8, @ptrCast(text)),
|
|
textMaxSize,
|
|
@as([*c]bool, @ptrCast(secretViewActive)),
|
|
);
|
|
}
|
|
|
|
/// Color Picker control (multiple color controls)
|
|
pub fn GuiColorPicker(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
color: *Color,
|
|
) i32 {
|
|
return raygui.mGuiColorPicker(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]raygui.Color, @ptrFromInt(@intFromPtr(color))),
|
|
);
|
|
}
|
|
|
|
/// Color Panel control
|
|
pub fn GuiColorPanel(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
color: *Color,
|
|
) i32 {
|
|
return raygui.mGuiColorPanel(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]raygui.Color, @ptrFromInt(@intFromPtr(color))),
|
|
);
|
|
}
|
|
|
|
/// Color Bar Alpha control
|
|
pub fn GuiColorBarAlpha(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
alpha: *f32,
|
|
) i32 {
|
|
return raygui.mGuiColorBarAlpha(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]f32, @ptrCast(alpha)),
|
|
);
|
|
}
|
|
|
|
/// Color Bar Hue control
|
|
pub fn GuiColorBarHue(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
value: *f32,
|
|
) i32 {
|
|
return raygui.mGuiColorBarHue(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]f32, @ptrCast(value)),
|
|
);
|
|
}
|
|
|
|
/// Color Picker control that avoids conversion to RGB on each call (multiple color controls)
|
|
pub fn GuiColorPickerHSV(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
colorHsv: *Vector3,
|
|
) i32 {
|
|
return raygui.mGuiColorPickerHSV(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]raygui.Vector3, @ptrFromInt(@intFromPtr(colorHsv))),
|
|
);
|
|
}
|
|
|
|
/// Color Panel control that returns HSV color value, used by GuiColorPickerHSV()
|
|
pub fn GuiColorPanelHSV(
|
|
bounds: Rectangle,
|
|
text: [*:0]const u8,
|
|
colorHsv: *Vector3,
|
|
) i32 {
|
|
return raygui.mGuiColorPanelHSV(
|
|
@as([*c]raygui.Rectangle, @ptrFromInt(@intFromPtr(&bounds))),
|
|
@as([*c]const u8, @ptrFromInt(@intFromPtr(text))),
|
|
@as([*c]raygui.Vector3, @ptrFromInt(@intFromPtr(colorHsv))),
|
|
);
|
|
}
|
|
|
|
/// Vector3 type // -- ConvertHSVtoRGB(), ConvertRGBtoHSV()
|
|
pub const Vector3 = extern struct {
|
|
///
|
|
x: f32,
|
|
///
|
|
y: f32,
|
|
///
|
|
z: f32,
|
|
};
|
|
|
|
/// It should be redesigned to be provided by user
|
|
pub const Texture2D = extern struct {
|
|
/// OpenGL texture id
|
|
id: u32,
|
|
/// Texture base width
|
|
width: i32,
|
|
/// Texture base height
|
|
height: i32,
|
|
/// Mipmap levels, 1 by default
|
|
mipmaps: i32,
|
|
/// Data format (PixelFormat type)
|
|
format: i32,
|
|
};
|
|
|
|
/// Image, pixel data stored in CPU memory (RAM)
|
|
pub const Image = extern struct {
|
|
/// Image raw data
|
|
data: *anyopaque,
|
|
/// Image base width
|
|
width: i32,
|
|
/// Image base height
|
|
height: i32,
|
|
/// Mipmap levels, 1 by default
|
|
mipmaps: i32,
|
|
/// Data format (PixelFormat type)
|
|
format: i32,
|
|
};
|
|
|
|
/// GlyphInfo, font characters glyphs info
|
|
pub const GlyphInfo = extern struct {
|
|
/// Character value (Unicode)
|
|
value: i32,
|
|
/// Character offset X when drawing
|
|
offsetX: i32,
|
|
/// Character offset Y when drawing
|
|
offsetY: i32,
|
|
/// Character advance position X
|
|
advanceX: i32,
|
|
/// Character image data
|
|
image: Image,
|
|
};
|
|
|
|
/// It should be redesigned to be provided by user
|
|
pub const Font = extern struct {
|
|
/// Base size (default chars height)
|
|
baseSize: i32,
|
|
/// Number of glyph characters
|
|
glyphCount: i32,
|
|
/// Padding around the glyph characters
|
|
glyphPadding: i32,
|
|
/// Texture atlas containing the glyphs
|
|
texture: Texture2D,
|
|
/// Rectangles in texture for the glyphs
|
|
recs: *Rectangle,
|
|
/// Glyphs info data
|
|
glyphs: *GlyphInfo,
|
|
};
|
|
|
|
/// NOTE: Used when exporting style as code for convenience
|
|
pub const GuiStyleProp = extern struct {
|
|
/// Control identifier
|
|
controlId: u16,
|
|
/// Property identifier
|
|
propertyId: u16,
|
|
/// Property value
|
|
propertyValue: i32,
|
|
};
|
|
|
|
/// NOTE: Text style is defined by control
|
|
pub const GuiTextStyle = extern struct {
|
|
///
|
|
size: u32,
|
|
///
|
|
charSpacing: i32,
|
|
///
|
|
lineSpacing: i32,
|
|
///
|
|
alignmentH: i32,
|
|
///
|
|
alignmentV: i32,
|
|
///
|
|
padding: i32,
|
|
};
|
|
|
|
/// Gui control state
|
|
pub const GuiState = enum(i32) {
|
|
///
|
|
STATE_NORMAL = 0,
|
|
///
|
|
STATE_FOCUSED = 1,
|
|
///
|
|
STATE_PRESSED = 2,
|
|
///
|
|
STATE_DISABLED = 3,
|
|
};
|
|
|
|
/// Gui control text alignment
|
|
pub const GuiTextAlignment = enum(i32) {
|
|
///
|
|
TEXT_ALIGN_LEFT = 0,
|
|
///
|
|
TEXT_ALIGN_CENTER = 1,
|
|
///
|
|
TEXT_ALIGN_RIGHT = 2,
|
|
};
|
|
|
|
/// Gui control text alignment vertical
|
|
pub const GuiTextAlignmentVertical = enum(i32) {
|
|
///
|
|
TEXT_ALIGN_TOP = 0,
|
|
///
|
|
TEXT_ALIGN_MIDDLE = 1,
|
|
///
|
|
TEXT_ALIGN_BOTTOM = 2,
|
|
};
|
|
|
|
/// Gui control text wrap mode
|
|
pub const GuiTextWrapMode = enum(i32) {
|
|
///
|
|
TEXT_WRAP_NONE = 0,
|
|
///
|
|
TEXT_WRAP_CHAR = 1,
|
|
///
|
|
TEXT_WRAP_WORD = 2,
|
|
};
|
|
|
|
/// Gui controls
|
|
pub const GuiControl = enum(i32) {
|
|
///
|
|
DEFAULT = 0,
|
|
/// Used also for: LABELBUTTON
|
|
LABEL = 1,
|
|
///
|
|
BUTTON = 2,
|
|
/// Used also for: TOGGLEGROUP
|
|
TOGGLE = 3,
|
|
/// Used also for: SLIDERBAR, TOGGLESLIDER
|
|
SLIDER = 4,
|
|
///
|
|
PROGRESSBAR = 5,
|
|
///
|
|
CHECKBOX = 6,
|
|
///
|
|
COMBOBOX = 7,
|
|
///
|
|
DROPDOWNBOX = 8,
|
|
/// Used also for: TEXTBOXMULTI
|
|
TEXTBOX = 9,
|
|
///
|
|
VALUEBOX = 10,
|
|
/// Uses: BUTTON, VALUEBOX
|
|
SPINNER = 11,
|
|
///
|
|
LISTVIEW = 12,
|
|
///
|
|
COLORPICKER = 13,
|
|
///
|
|
SCROLLBAR = 14,
|
|
///
|
|
STATUSBAR = 15,
|
|
};
|
|
|
|
/// Gui base properties for every control
|
|
pub const GuiControlProperty = enum(i32) {
|
|
/// Control border color in STATE_NORMAL
|
|
BORDER_COLOR_NORMAL = 0,
|
|
/// Control base color in STATE_NORMAL
|
|
BASE_COLOR_NORMAL = 1,
|
|
/// Control text color in STATE_NORMAL
|
|
TEXT_COLOR_NORMAL = 2,
|
|
/// Control border color in STATE_FOCUSED
|
|
BORDER_COLOR_FOCUSED = 3,
|
|
/// Control base color in STATE_FOCUSED
|
|
BASE_COLOR_FOCUSED = 4,
|
|
/// Control text color in STATE_FOCUSED
|
|
TEXT_COLOR_FOCUSED = 5,
|
|
/// Control border color in STATE_PRESSED
|
|
BORDER_COLOR_PRESSED = 6,
|
|
/// Control base color in STATE_PRESSED
|
|
BASE_COLOR_PRESSED = 7,
|
|
/// Control text color in STATE_PRESSED
|
|
TEXT_COLOR_PRESSED = 8,
|
|
/// Control border color in STATE_DISABLED
|
|
BORDER_COLOR_DISABLED = 9,
|
|
/// Control base color in STATE_DISABLED
|
|
BASE_COLOR_DISABLED = 10,
|
|
/// Control text color in STATE_DISABLED
|
|
TEXT_COLOR_DISABLED = 11,
|
|
/// Control border size, 0 for no border
|
|
BORDER_WIDTH = 12,
|
|
/// Control text padding, not considering border
|
|
TEXT_PADDING = 13,
|
|
/// Control text horizontal alignment inside control text bound (after border and padding)
|
|
TEXT_ALIGNMENT = 14,
|
|
};
|
|
|
|
/// DEFAULT extended properties
|
|
pub const GuiDefaultProperty = enum(i32) {
|
|
/// Text size (glyphs max height)
|
|
TEXT_SIZE = 16,
|
|
/// Text spacing between glyphs
|
|
TEXT_SPACING = 17,
|
|
/// Line control color
|
|
LINE_COLOR = 18,
|
|
/// Background color
|
|
BACKGROUND_COLOR = 19,
|
|
/// Text spacing between lines
|
|
TEXT_LINE_SPACING = 20,
|
|
/// Text vertical alignment inside text bounds (after border and padding)
|
|
TEXT_ALIGNMENT_VERTICAL = 21,
|
|
/// Text wrap-mode inside text bounds
|
|
TEXT_WRAP_MODE = 22,
|
|
};
|
|
|
|
/// Toggle/ToggleGroup
|
|
pub const GuiToggleProperty = enum(i32) {
|
|
/// ToggleGroup separation between toggles
|
|
GROUP_PADDING = 16,
|
|
};
|
|
|
|
/// Slider/SliderBar
|
|
pub const GuiSliderProperty = enum(i32) {
|
|
/// Slider size of internal bar
|
|
SLIDER_WIDTH = 16,
|
|
/// Slider/SliderBar internal bar padding
|
|
SLIDER_PADDING = 17,
|
|
};
|
|
|
|
/// ProgressBar
|
|
pub const GuiProgressBarProperty = enum(i32) {
|
|
/// ProgressBar internal padding
|
|
PROGRESS_PADDING = 16,
|
|
};
|
|
|
|
/// ScrollBar
|
|
pub const GuiScrollBarProperty = enum(i32) {
|
|
/// ScrollBar arrows size
|
|
ARROWS_SIZE = 16,
|
|
/// ScrollBar arrows visible
|
|
ARROWS_VISIBLE = 17,
|
|
/// ScrollBar slider internal padding
|
|
SCROLL_SLIDER_PADDING = 18,
|
|
/// ScrollBar slider size
|
|
SCROLL_SLIDER_SIZE = 19,
|
|
/// ScrollBar scroll padding from arrows
|
|
SCROLL_PADDING = 20,
|
|
/// ScrollBar scrolling speed
|
|
SCROLL_SPEED = 21,
|
|
};
|
|
|
|
/// CheckBox
|
|
pub const GuiCheckBoxProperty = enum(i32) {
|
|
/// CheckBox internal check padding
|
|
CHECK_PADDING = 16,
|
|
};
|
|
|
|
/// ComboBox
|
|
pub const GuiComboBoxProperty = enum(i32) {
|
|
/// ComboBox right button width
|
|
COMBO_BUTTON_WIDTH = 16,
|
|
/// ComboBox button separation
|
|
COMBO_BUTTON_SPACING = 17,
|
|
};
|
|
|
|
/// DropdownBox
|
|
pub const GuiDropdownBoxProperty = enum(i32) {
|
|
/// DropdownBox arrow separation from border and items
|
|
ARROW_PADDING = 16,
|
|
/// DropdownBox items separation
|
|
DROPDOWN_ITEMS_SPACING = 17,
|
|
};
|
|
|
|
/// TextBox/TextBoxMulti/ValueBox/Spinner
|
|
pub const GuiTextBoxProperty = enum(i32) {
|
|
/// TextBox in read-only mode: 0-text editable, 1-text no-editable
|
|
TEXT_READONLY = 16,
|
|
};
|
|
|
|
/// Spinner
|
|
pub const GuiSpinnerProperty = enum(i32) {
|
|
/// Spinner left/right buttons width
|
|
SPIN_BUTTON_WIDTH = 16,
|
|
/// Spinner buttons separation
|
|
SPIN_BUTTON_SPACING = 17,
|
|
};
|
|
|
|
/// ListView
|
|
pub const GuiListViewProperty = enum(i32) {
|
|
/// ListView items height
|
|
LIST_ITEMS_HEIGHT = 16,
|
|
/// ListView items separation
|
|
LIST_ITEMS_SPACING = 17,
|
|
/// ListView scrollbar size (usually width)
|
|
SCROLLBAR_WIDTH = 18,
|
|
/// ListView scrollbar side (0-SCROLLBAR_LEFT_SIDE, 1-SCROLLBAR_RIGHT_SIDE)
|
|
SCROLLBAR_SIDE = 19,
|
|
};
|
|
|
|
/// ColorPicker
|
|
pub const GuiColorPickerProperty = enum(i32) {
|
|
///
|
|
COLOR_SELECTOR_SIZE = 16,
|
|
/// ColorPicker right hue bar width
|
|
HUEBAR_WIDTH = 17,
|
|
/// ColorPicker right hue bar separation from panel
|
|
HUEBAR_PADDING = 18,
|
|
/// ColorPicker right hue bar selector height
|
|
HUEBAR_SELECTOR_HEIGHT = 19,
|
|
/// ColorPicker right hue bar selector overflow
|
|
HUEBAR_SELECTOR_OVERFLOW = 20,
|
|
};
|
|
|
|
///
|
|
pub const GuiIconName = enum(i32) {
|
|
///
|
|
ICON_NONE = 0,
|
|
///
|
|
ICON_FOLDER_FILE_OPEN = 1,
|
|
///
|
|
ICON_FILE_SAVE_CLASSIC = 2,
|
|
///
|
|
ICON_FOLDER_OPEN = 3,
|
|
///
|
|
ICON_FOLDER_SAVE = 4,
|
|
///
|
|
ICON_FILE_OPEN = 5,
|
|
///
|
|
ICON_FILE_SAVE = 6,
|
|
///
|
|
ICON_FILE_EXPORT = 7,
|
|
///
|
|
ICON_FILE_ADD = 8,
|
|
///
|
|
ICON_FILE_DELETE = 9,
|
|
///
|
|
ICON_FILETYPE_TEXT = 10,
|
|
///
|
|
ICON_FILETYPE_AUDIO = 11,
|
|
///
|
|
ICON_FILETYPE_IMAGE = 12,
|
|
///
|
|
ICON_FILETYPE_PLAY = 13,
|
|
///
|
|
ICON_FILETYPE_VIDEO = 14,
|
|
///
|
|
ICON_FILETYPE_INFO = 15,
|
|
///
|
|
ICON_FILE_COPY = 16,
|
|
///
|
|
ICON_FILE_CUT = 17,
|
|
///
|
|
ICON_FILE_PASTE = 18,
|
|
///
|
|
ICON_CURSOR_HAND = 19,
|
|
///
|
|
ICON_CURSOR_POINTER = 20,
|
|
///
|
|
ICON_CURSOR_CLASSIC = 21,
|
|
///
|
|
ICON_PENCIL = 22,
|
|
///
|
|
ICON_PENCIL_BIG = 23,
|
|
///
|
|
ICON_BRUSH_CLASSIC = 24,
|
|
///
|
|
ICON_BRUSH_PAINTER = 25,
|
|
///
|
|
ICON_WATER_DROP = 26,
|
|
///
|
|
ICON_COLOR_PICKER = 27,
|
|
///
|
|
ICON_RUBBER = 28,
|
|
///
|
|
ICON_COLOR_BUCKET = 29,
|
|
///
|
|
ICON_TEXT_T = 30,
|
|
///
|
|
ICON_TEXT_A = 31,
|
|
///
|
|
ICON_SCALE = 32,
|
|
///
|
|
ICON_RESIZE = 33,
|
|
///
|
|
ICON_FILTER_POINT = 34,
|
|
///
|
|
ICON_FILTER_BILINEAR = 35,
|
|
///
|
|
ICON_CROP = 36,
|
|
///
|
|
ICON_CROP_ALPHA = 37,
|
|
///
|
|
ICON_SQUARE_TOGGLE = 38,
|
|
///
|
|
ICON_SYMMETRY = 39,
|
|
///
|
|
ICON_SYMMETRY_HORIZONTAL = 40,
|
|
///
|
|
ICON_SYMMETRY_VERTICAL = 41,
|
|
///
|
|
ICON_LENS = 42,
|
|
///
|
|
ICON_LENS_BIG = 43,
|
|
///
|
|
ICON_EYE_ON = 44,
|
|
///
|
|
ICON_EYE_OFF = 45,
|
|
///
|
|
ICON_FILTER_TOP = 46,
|
|
///
|
|
ICON_FILTER = 47,
|
|
///
|
|
ICON_TARGET_POINT = 48,
|
|
///
|
|
ICON_TARGET_SMALL = 49,
|
|
///
|
|
ICON_TARGET_BIG = 50,
|
|
///
|
|
ICON_TARGET_MOVE = 51,
|
|
///
|
|
ICON_CURSOR_MOVE = 52,
|
|
///
|
|
ICON_CURSOR_SCALE = 53,
|
|
///
|
|
ICON_CURSOR_SCALE_RIGHT = 54,
|
|
///
|
|
ICON_CURSOR_SCALE_LEFT = 55,
|
|
///
|
|
ICON_UNDO = 56,
|
|
///
|
|
ICON_REDO = 57,
|
|
///
|
|
ICON_REREDO = 58,
|
|
///
|
|
ICON_MUTATE = 59,
|
|
///
|
|
ICON_ROTATE = 60,
|
|
///
|
|
ICON_REPEAT = 61,
|
|
///
|
|
ICON_SHUFFLE = 62,
|
|
///
|
|
ICON_EMPTYBOX = 63,
|
|
///
|
|
ICON_TARGET = 64,
|
|
///
|
|
ICON_TARGET_SMALL_FILL = 65,
|
|
///
|
|
ICON_TARGET_BIG_FILL = 66,
|
|
///
|
|
ICON_TARGET_MOVE_FILL = 67,
|
|
///
|
|
ICON_CURSOR_MOVE_FILL = 68,
|
|
///
|
|
ICON_CURSOR_SCALE_FILL = 69,
|
|
///
|
|
ICON_CURSOR_SCALE_RIGHT_FILL = 70,
|
|
///
|
|
ICON_CURSOR_SCALE_LEFT_FILL = 71,
|
|
///
|
|
ICON_UNDO_FILL = 72,
|
|
///
|
|
ICON_REDO_FILL = 73,
|
|
///
|
|
ICON_REREDO_FILL = 74,
|
|
///
|
|
ICON_MUTATE_FILL = 75,
|
|
///
|
|
ICON_ROTATE_FILL = 76,
|
|
///
|
|
ICON_REPEAT_FILL = 77,
|
|
///
|
|
ICON_SHUFFLE_FILL = 78,
|
|
///
|
|
ICON_EMPTYBOX_SMALL = 79,
|
|
///
|
|
ICON_BOX = 80,
|
|
///
|
|
ICON_BOX_TOP = 81,
|
|
///
|
|
ICON_BOX_TOP_RIGHT = 82,
|
|
///
|
|
ICON_BOX_RIGHT = 83,
|
|
///
|
|
ICON_BOX_BOTTOM_RIGHT = 84,
|
|
///
|
|
ICON_BOX_BOTTOM = 85,
|
|
///
|
|
ICON_BOX_BOTTOM_LEFT = 86,
|
|
///
|
|
ICON_BOX_LEFT = 87,
|
|
///
|
|
ICON_BOX_TOP_LEFT = 88,
|
|
///
|
|
ICON_BOX_CENTER = 89,
|
|
///
|
|
ICON_BOX_CIRCLE_MASK = 90,
|
|
///
|
|
ICON_POT = 91,
|
|
///
|
|
ICON_ALPHA_MULTIPLY = 92,
|
|
///
|
|
ICON_ALPHA_CLEAR = 93,
|
|
///
|
|
ICON_DITHERING = 94,
|
|
///
|
|
ICON_MIPMAPS = 95,
|
|
///
|
|
ICON_BOX_GRID = 96,
|
|
///
|
|
ICON_GRID = 97,
|
|
///
|
|
ICON_BOX_CORNERS_SMALL = 98,
|
|
///
|
|
ICON_BOX_CORNERS_BIG = 99,
|
|
///
|
|
ICON_FOUR_BOXES = 100,
|
|
///
|
|
ICON_GRID_FILL = 101,
|
|
///
|
|
ICON_BOX_MULTISIZE = 102,
|
|
///
|
|
ICON_ZOOM_SMALL = 103,
|
|
///
|
|
ICON_ZOOM_MEDIUM = 104,
|
|
///
|
|
ICON_ZOOM_BIG = 105,
|
|
///
|
|
ICON_ZOOM_ALL = 106,
|
|
///
|
|
ICON_ZOOM_CENTER = 107,
|
|
///
|
|
ICON_BOX_DOTS_SMALL = 108,
|
|
///
|
|
ICON_BOX_DOTS_BIG = 109,
|
|
///
|
|
ICON_BOX_CONCENTRIC = 110,
|
|
///
|
|
ICON_BOX_GRID_BIG = 111,
|
|
///
|
|
ICON_OK_TICK = 112,
|
|
///
|
|
ICON_CROSS = 113,
|
|
///
|
|
ICON_ARROW_LEFT = 114,
|
|
///
|
|
ICON_ARROW_RIGHT = 115,
|
|
///
|
|
ICON_ARROW_DOWN = 116,
|
|
///
|
|
ICON_ARROW_UP = 117,
|
|
///
|
|
ICON_ARROW_LEFT_FILL = 118,
|
|
///
|
|
ICON_ARROW_RIGHT_FILL = 119,
|
|
///
|
|
ICON_ARROW_DOWN_FILL = 120,
|
|
///
|
|
ICON_ARROW_UP_FILL = 121,
|
|
///
|
|
ICON_AUDIO = 122,
|
|
///
|
|
ICON_FX = 123,
|
|
///
|
|
ICON_WAVE = 124,
|
|
///
|
|
ICON_WAVE_SINUS = 125,
|
|
///
|
|
ICON_WAVE_SQUARE = 126,
|
|
///
|
|
ICON_WAVE_TRIANGULAR = 127,
|
|
///
|
|
ICON_CROSS_SMALL = 128,
|
|
///
|
|
ICON_PLAYER_PREVIOUS = 129,
|
|
///
|
|
ICON_PLAYER_PLAY_BACK = 130,
|
|
///
|
|
ICON_PLAYER_PLAY = 131,
|
|
///
|
|
ICON_PLAYER_PAUSE = 132,
|
|
///
|
|
ICON_PLAYER_STOP = 133,
|
|
///
|
|
ICON_PLAYER_NEXT = 134,
|
|
///
|
|
ICON_PLAYER_RECORD = 135,
|
|
///
|
|
ICON_MAGNET = 136,
|
|
///
|
|
ICON_LOCK_CLOSE = 137,
|
|
///
|
|
ICON_LOCK_OPEN = 138,
|
|
///
|
|
ICON_CLOCK = 139,
|
|
///
|
|
ICON_TOOLS = 140,
|
|
///
|
|
ICON_GEAR = 141,
|
|
///
|
|
ICON_GEAR_BIG = 142,
|
|
///
|
|
ICON_BIN = 143,
|
|
///
|
|
ICON_HAND_POINTER = 144,
|
|
///
|
|
ICON_LASER = 145,
|
|
///
|
|
ICON_COIN = 146,
|
|
///
|
|
ICON_EXPLOSION = 147,
|
|
///
|
|
ICON_1UP = 148,
|
|
///
|
|
ICON_PLAYER = 149,
|
|
///
|
|
ICON_PLAYER_JUMP = 150,
|
|
///
|
|
ICON_KEY = 151,
|
|
///
|
|
ICON_DEMON = 152,
|
|
///
|
|
ICON_TEXT_POPUP = 153,
|
|
///
|
|
ICON_GEAR_EX = 154,
|
|
///
|
|
ICON_CRACK = 155,
|
|
///
|
|
ICON_CRACK_POINTS = 156,
|
|
///
|
|
ICON_STAR = 157,
|
|
///
|
|
ICON_DOOR = 158,
|
|
///
|
|
ICON_EXIT = 159,
|
|
///
|
|
ICON_MODE_2D = 160,
|
|
///
|
|
ICON_MODE_3D = 161,
|
|
///
|
|
ICON_CUBE = 162,
|
|
///
|
|
ICON_CUBE_FACE_TOP = 163,
|
|
///
|
|
ICON_CUBE_FACE_LEFT = 164,
|
|
///
|
|
ICON_CUBE_FACE_FRONT = 165,
|
|
///
|
|
ICON_CUBE_FACE_BOTTOM = 166,
|
|
///
|
|
ICON_CUBE_FACE_RIGHT = 167,
|
|
///
|
|
ICON_CUBE_FACE_BACK = 168,
|
|
///
|
|
ICON_CAMERA = 169,
|
|
///
|
|
ICON_SPECIAL = 170,
|
|
///
|
|
ICON_LINK_NET = 171,
|
|
///
|
|
ICON_LINK_BOXES = 172,
|
|
///
|
|
ICON_LINK_MULTI = 173,
|
|
///
|
|
ICON_LINK = 174,
|
|
///
|
|
ICON_LINK_BROKE = 175,
|
|
///
|
|
ICON_TEXT_NOTES = 176,
|
|
///
|
|
ICON_NOTEBOOK = 177,
|
|
///
|
|
ICON_SUITCASE = 178,
|
|
///
|
|
ICON_SUITCASE_ZIP = 179,
|
|
///
|
|
ICON_MAILBOX = 180,
|
|
///
|
|
ICON_MONITOR = 181,
|
|
///
|
|
ICON_PRINTER = 182,
|
|
///
|
|
ICON_PHOTO_CAMERA = 183,
|
|
///
|
|
ICON_PHOTO_CAMERA_FLASH = 184,
|
|
///
|
|
ICON_HOUSE = 185,
|
|
///
|
|
ICON_HEART = 186,
|
|
///
|
|
ICON_CORNER = 187,
|
|
///
|
|
ICON_VERTICAL_BARS = 188,
|
|
///
|
|
ICON_VERTICAL_BARS_FILL = 189,
|
|
///
|
|
ICON_LIFE_BARS = 190,
|
|
///
|
|
ICON_INFO = 191,
|
|
///
|
|
ICON_CROSSLINE = 192,
|
|
///
|
|
ICON_HELP = 193,
|
|
///
|
|
ICON_FILETYPE_ALPHA = 194,
|
|
///
|
|
ICON_FILETYPE_HOME = 195,
|
|
///
|
|
ICON_LAYERS_VISIBLE = 196,
|
|
///
|
|
ICON_LAYERS = 197,
|
|
///
|
|
ICON_WINDOW = 198,
|
|
///
|
|
ICON_HIDPI = 199,
|
|
///
|
|
ICON_FILETYPE_BINARY = 200,
|
|
///
|
|
ICON_HEX = 201,
|
|
///
|
|
ICON_SHIELD = 202,
|
|
///
|
|
ICON_FILE_NEW = 203,
|
|
///
|
|
ICON_FOLDER_ADD = 204,
|
|
///
|
|
ICON_ALARM = 205,
|
|
///
|
|
ICON_CPU = 206,
|
|
///
|
|
ICON_ROM = 207,
|
|
///
|
|
ICON_STEP_OVER = 208,
|
|
///
|
|
ICON_STEP_INTO = 209,
|
|
///
|
|
ICON_STEP_OUT = 210,
|
|
///
|
|
ICON_RESTART = 211,
|
|
///
|
|
ICON_BREAKPOINT_ON = 212,
|
|
///
|
|
ICON_BREAKPOINT_OFF = 213,
|
|
///
|
|
ICON_BURGER_MENU = 214,
|
|
///
|
|
ICON_CASE_SENSITIVE = 215,
|
|
///
|
|
ICON_REG_EXP = 216,
|
|
///
|
|
ICON_FOLDER = 217,
|
|
///
|
|
ICON_FILE = 218,
|
|
///
|
|
ICON_SAND_TIMER = 219,
|
|
///
|
|
ICON_220 = 220,
|
|
///
|
|
ICON_221 = 221,
|
|
///
|
|
ICON_222 = 222,
|
|
///
|
|
ICON_223 = 223,
|
|
///
|
|
ICON_224 = 224,
|
|
///
|
|
ICON_225 = 225,
|
|
///
|
|
ICON_226 = 226,
|
|
///
|
|
ICON_227 = 227,
|
|
///
|
|
ICON_228 = 228,
|
|
///
|
|
ICON_229 = 229,
|
|
///
|
|
ICON_230 = 230,
|
|
///
|
|
ICON_231 = 231,
|
|
///
|
|
ICON_232 = 232,
|
|
///
|
|
ICON_233 = 233,
|
|
///
|
|
ICON_234 = 234,
|
|
///
|
|
ICON_235 = 235,
|
|
///
|
|
ICON_236 = 236,
|
|
///
|
|
ICON_237 = 237,
|
|
///
|
|
ICON_238 = 238,
|
|
///
|
|
ICON_239 = 239,
|
|
///
|
|
ICON_240 = 240,
|
|
///
|
|
ICON_241 = 241,
|
|
///
|
|
ICON_242 = 242,
|
|
///
|
|
ICON_243 = 243,
|
|
///
|
|
ICON_244 = 244,
|
|
///
|
|
ICON_245 = 245,
|
|
///
|
|
ICON_246 = 246,
|
|
///
|
|
ICON_247 = 247,
|
|
///
|
|
ICON_248 = 248,
|
|
///
|
|
ICON_249 = 249,
|
|
///
|
|
ICON_250 = 250,
|
|
///
|
|
ICON_251 = 251,
|
|
///
|
|
ICON_252 = 252,
|
|
///
|
|
ICON_253 = 253,
|
|
///
|
|
ICON_254 = 254,
|
|
///
|
|
ICON_255 = 255,
|
|
};
|
|
|
|
///
|
|
pub const RAYGUI_VERSION_MAJOR: i32 = 4;
|
|
|
|
///
|
|
pub const RAYGUI_VERSION_MINOR: i32 = 0;
|
|
|
|
///
|
|
pub const RAYGUI_VERSION_PATCH: i32 = 0;
|
|
|
|
///
|
|
pub const RAYGUI_VERSION: []const u8 = "4.0";
|
|
|
|
///
|
|
pub const SCROLLBAR_LEFT_SIDE: i32 = 0;
|
|
|
|
///
|
|
pub const SCROLLBAR_RIGHT_SIDE: i32 = 1;
|
|
|
|
/// Size of icons in pixels (squared)
|
|
pub const RAYGUI_ICON_SIZE: i32 = 16;
|
|
|
|
/// Maximum number of icons
|
|
pub const RAYGUI_ICON_MAX_ICONS: i32 = 256;
|
|
|
|
/// Maximum length of icon name id
|
|
pub const RAYGUI_ICON_MAX_NAME_LENGTH: i32 = 32;
|
|
|
|
/// Maximum number of controls
|
|
pub const RAYGUI_MAX_CONTROLS: i32 = 16;
|
|
|
|
/// Maximum number of base properties
|
|
pub const RAYGUI_MAX_PROPS_BASE: i32 = 16;
|
|
|
|
/// Maximum number of extended properties
|
|
pub const RAYGUI_MAX_PROPS_EXTENDED: i32 = 8;
|
|
|
|
///
|
|
pub const KEY_RIGHT: i32 = 262;
|
|
|
|
///
|
|
pub const KEY_LEFT: i32 = 263;
|
|
|
|
///
|
|
pub const KEY_DOWN: i32 = 264;
|
|
|
|
///
|
|
pub const KEY_UP: i32 = 265;
|
|
|
|
///
|
|
pub const KEY_BACKSPACE: i32 = 259;
|
|
|
|
///
|
|
pub const KEY_ENTER: i32 = 257;
|
|
|
|
///
|
|
pub const MOUSE_LEFT_BUTTON: i32 = 0;
|
|
|
|
///
|
|
pub const RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT: i32 = 24;
|
|
|
|
///
|
|
pub const RAYGUI_GROUPBOX_LINE_THICK: i32 = 1;
|
|
|
|
///
|
|
pub const RAYGUI_LINE_MARGIN_TEXT: i32 = 12;
|
|
|
|
///
|
|
pub const RAYGUI_LINE_TEXT_PADDING: i32 = 4;
|
|
|
|
///
|
|
pub const RAYGUI_PANEL_BORDER_WIDTH: i32 = 1;
|
|
|
|
///
|
|
pub const RAYGUI_TABBAR_ITEM_WIDTH: i32 = 160;
|
|
|
|
///
|
|
pub const RAYGUI_MIN_SCROLLBAR_WIDTH: i32 = 40;
|
|
|
|
///
|
|
pub const RAYGUI_MIN_SCROLLBAR_HEIGHT: i32 = 40;
|
|
|
|
///
|
|
pub const RAYGUI_TOGGLEGROUP_MAX_ITEMS: i32 = 32;
|
|
|
|
/// Frames to wait for autocursor movement
|
|
pub const RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN: i32 = 40;
|
|
|
|
/// Frames delay for autocursor movement
|
|
pub const RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY: i32 = 1;
|
|
|
|
///
|
|
pub const RAYGUI_VALUEBOX_MAX_CHARS: i32 = 32;
|
|
|
|
///
|
|
pub const RAYGUI_COLORBARALPHA_CHECKED_SIZE: i32 = 10;
|
|
|
|
///
|
|
pub const RAYGUI_MESSAGEBOX_BUTTON_HEIGHT: i32 = 24;
|
|
|
|
///
|
|
pub const RAYGUI_MESSAGEBOX_BUTTON_PADDING: i32 = 12;
|
|
|
|
///
|
|
pub const RAYGUI_TEXTINPUTBOX_BUTTON_HEIGHT: i32 = 24;
|
|
|
|
///
|
|
pub const RAYGUI_TEXTINPUTBOX_BUTTON_PADDING: i32 = 12;
|
|
|
|
///
|
|
pub const RAYGUI_TEXTINPUTBOX_HEIGHT: i32 = 26;
|
|
|
|
///
|
|
pub const RAYGUI_GRID_ALPHA: f32 = 0.15;
|
|
|
|
///
|
|
pub const MAX_LINE_BUFFER_SIZE: i32 = 256;
|
|
|
|
///
|
|
pub const ICON_TEXT_PADDING: i32 = 4;
|
|
|
|
///
|
|
pub const RAYGUI_MAX_TEXT_LINES: i32 = 128;
|
|
|
|
///
|
|
pub const RAYGUI_TEXTSPLIT_MAX_ITEMS: i32 = 128;
|
|
|
|
///
|
|
pub const RAYGUI_TEXTSPLIT_MAX_TEXT_SIZE: i32 = 1024;
|
|
|
|
///
|
|
pub const RAYGUI_TEXTFORMAT_MAX_SIZE: i32 = 256;
|