feat(raygui): get message box example working
This commit is contained in:
parent
d6c77762cb
commit
f4b69764db
6 changed files with 616 additions and 577 deletions
55
examples/gui/message_box.zig
Normal file
55
examples/gui/message_box.zig
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
//! # raylib-zig [gui] example - message box
|
||||
//!
|
||||
//! Example originally created with raylib-zig 5.6-dev, last time updated with
|
||||
//! raylib-zig 5.6-dev
|
||||
//!
|
||||
//! Example licensed under an unmodified zlib/libpng license, which is an
|
||||
//! OSI-certified, BSD-like license that allows static linking with closed
|
||||
//! source software
|
||||
//!
|
||||
//! Copyright (c) Nikolas Wipper 2025
|
||||
|
||||
const std = @import("std");
|
||||
const rl = @import("raylib");
|
||||
const rg = @import("raygui");
|
||||
|
||||
// `rl.getColor` only accepts a `u32`. Performing `@intCast` on the return value
|
||||
// of `rg.getStyle` invokes checked undefined behavior from Zig when passed to
|
||||
// `rl.getColor`, hence the custom implementation here...
|
||||
fn getColor(hex: i32) rl.Color {
|
||||
var color: rl.Color = .black;
|
||||
// zig fmt: off
|
||||
color.r = @intCast((hex >> 24) & 0xFF);
|
||||
color.g = @intCast((hex >> 16) & 0xFF);
|
||||
color.b = @intCast((hex >> 8) & 0xFF);
|
||||
color.a = @intCast((hex >> 0) & 0xFF);
|
||||
// zig fmt: on
|
||||
return color;
|
||||
}
|
||||
|
||||
pub fn main() !void {
|
||||
rl.initWindow(400, 200, "raygui - controls test suite");
|
||||
defer rl.closeWindow();
|
||||
|
||||
rl.setTargetFPS(60);
|
||||
|
||||
var show_message_box = false;
|
||||
|
||||
const color_int = rg.getStyle(.default, .{ .default = .background_color });
|
||||
|
||||
while (!rl.windowShouldClose()) {
|
||||
rl.beginDrawing();
|
||||
defer rl.endDrawing();
|
||||
|
||||
rl.clearBackground(getColor(color_int));
|
||||
|
||||
if (rg.guiButton(.init(24, 24, 120, 30), "#191#Show Message") > 0) show_message_box = true;
|
||||
|
||||
if (show_message_box) {
|
||||
const result = rg.guiMessageBox(.init(85, 70, 250, 100), "#191#Message Box", "Hi! This is a message", "Nice;Cool");
|
||||
|
||||
if (result >= 0) show_message_box = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue