Files
Ronald Caesar 5f0791e8b1 extern/luajit-imgui: add source code properly
This adds luajit-imgui without submodules.

Signed-off-by: Ronald Caesar <github43132@proton.me>
2026-06-11 14:12:55 -04:00

96 lines
3.4 KiB
Lua

local igwin = require"imgui.window"
--local win = igwin:SDL(800,600, "widgets")
local win = igwin:GLFW(800,600, "widgets")
local ffi = require"ffi"
local p_open = ffi.new("bool[?]",1,true)
local selected = 0
--// Demonstrate create a window with multiple child windows.
--static void ShowExampleAppLayout(bool* p_open)
function win:draw(ig)
if p_open[0] == false then return end
local lib = ig.lib
--Submit a window filling the entire viewport
local viewport = ig.GetMainViewport();
ig.SetNextWindowPos(viewport.WorkPos);
ig.SetNextWindowSize(viewport.WorkSize);
ig.SetNextWindowViewport(viewport.ID);
--ig.SetNextWindowSize(ig.ImVec2(500, 440), lib.ImGuiCond_FirstUseEver);
if (ig.Begin("Example: Simple layout", p_open, lib.ImGuiWindowFlags_MenuBar))
then
if (ig.BeginMenuBar())
then
if (ig.BeginMenu("File"))
then
if (ig.MenuItem("Close", "Ctrl+W")) then p_open[0] = false end
ig.EndMenu();
end
ig.EndMenuBar();
end
ig.BeginChild("top", ig.ImVec2(0, 0), lib.ImGuiChildFlags_Borders + lib.ImGuiChildFlags_ResizeY);
-- // Left
--{
ig.BeginChild("left pane", ig.ImVec2(150, 0), lib.ImGuiChildFlags_Borders + lib.ImGuiChildFlags_ResizeX);
for i = 0,99
do
local label = string.format( "MyObject %d", i);
if (ig.Selectable(label, selected == i, lib.ImGuiSelectableFlags_SelectOnNav)) then
selected = i; end
end
ig.EndChild();
--}
ig.SameLine();
-- // Right
--{
ig.BeginGroup();
ig.BeginChild("item view", ig.ImVec2(0, -ig.GetFrameHeightWithSpacing())); --// Leave room for 1 line below us
ig.Text(string.format("MyObject: %d", selected));
ig.Separator();
if (ig.BeginTabBar("##Tabs", lib.ImGuiTabBarFlags_None))
then
if (ig.BeginTabItem("Description"))
then
ig.TextWrapped("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ");
ig.EndTabItem();
end
if (ig.BeginTabItem("Details"))
then
ig.Text("ID: 0123456789");
ig.EndTabItem();
end
ig.EndTabBar();
end
ig.EndChild();
if (ig.Button("Revert")) then end
ig.SameLine();
if (ig.Button("Save")) then end
ig.EndGroup();
--}
ig.EndChild()
ig.BeginChild("item view22", ig.ImVec2(0, 0));
ig.Text(string.format("MyObject: %d", selected));
ig.Separator();
if (ig.BeginTabBar("##Tabs", lib.ImGuiTabBarFlags_None))
then
if (ig.BeginTabItem("Description"))
then
ig.TextWrapped("hola ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ");
ig.EndTabItem();
end
if (ig.BeginTabItem("Details"))
then
ig.Text("ID: 9876543");
ig.EndTabItem();
end
ig.EndTabBar();
end
ig.EndChild();
end
ig.End();
--ig.ShowDemoWindow()
end
win:start()