
ImGui menus have been added in the branch 0.22+ of GeeXLab. Here is a code snippet that shows how to use the menu functions of the gh_imgui library.
The complete demo is available HERE (demo_menus.xml) as well as in the full code sample pack (gl-32/imgui/demo_menus.xml).
ImGui defines two kinds of menu bars: a main menu bar and a window menu bar.
Main menu bar
The main menu bar is a fullscreen menu bar. It’s placed on the top of GeeXLab 3D window.

Here is the code that draws the main menu bar:
if (gh_imgui.menu_begin_main_bar() == 1) then
local enabled = 1
if (gh_imgui.menu_begin("File", enabled) == 1) then
local item_selected = 0
local item_enabled = 1
if (gh_imgui.menu_item("Show log file", "", item_selected, item_enabled) == 1) then
--
-- do something
--
end
gh_imgui.menu_end()
end
if (gh_imgui.menu_begin("Tools", enabled) == 1) then
local item_selected = 0
local item_enabled = 1
if (gh_imgui.menu_item("Wireframe", "", item_selected, item_enabled) == 1) then
--
-- do something
--
end
if (gh_imgui.menu_item("Solid", "", item_selected, item_enabled) == 1) then
--
-- do something
--
end
gh_imgui.menu_end()
end
gh_imgui.menu_end_main_bar()
end
Window menu bar
Each ImGui window can have its own menu bar.

Here is the code that draws this menu:
gh_imgui.window_begin("Menu test", .......)
-- Window menu.
--
if (gh_imgui.menu_begin_bar() == 1) then
local enabled = 1
if (gh_imgui.menu_begin("File", enabled) == 1) then
local item_selected = 0
local item_enabled = 1
if (gh_imgui.menu_item("Show log file", "", item_selected, item_enabled) == 1) then
--
-- do something
--
end
gh_imgui.menu_end()
end
if (gh_imgui.menu_begin("Tools", enabled) == 1) then
local item_selected = 0
local item_enabled = 1
if (gh_imgui.menu_item("Wireframe", "", item_selected, item_enabled) == 1) then
--
-- do something
--
end
if (gh_imgui.menu_item("Solid", "", item_selected, item_enabled) == 1) then
--
-- do something
--
end
gh_imgui.menu_end()
end
gh_imgui.menu_end_bar()
end
gh_imgui.window_end()