
-- imgui はフローティング ウィンドウ内でのみ機能するため、最初に作成する必要があります。
column_wnd = float_wnd_create(350, 150, 1, true)
float_wnd_set_title(column_wnd, "imgui Demo")
float_wnd_set_imgui_builder(column_wnd, "column_demo")
float_wnd_set_onclose(column_wnd, "closed_demo")
function column_demo(wnd, x, y)
-- ここでは、テーブルを出力する 3 つの異なる方法を紹介します。
-- それらは同じものの非常に単純なバリエーションです!
-- [方法 1] TableNextRow() を使用して新しい行を作成し、TableSetColumnIndex() を使用して列を選択します。
-- 多くの場合、以下は最も柔軟で使いやすいパターンです。
-- imgui.TextUnformatted("Table 1")
-- imgui.BeginTable("table1", 3)
-- for row = 0, 4, 1
-- do
-- imgui.TableNextRow()
-- for column = 0, 3, 1
-- do
-- imgui.TableSetColumnIndex(column)
-- imgui.TextUnformatted("Row " .. row .. " Column " .. column)
-- end
-- end
-- imgui.EndTable()
-- imgui.TextUnformatted("")
-- 【方法2】 forループ+TableSetColumnIndex()ではなく、TableNextColumn()を複数回呼び出す。
-- これは通常、各列の内容を手動で送信するコードがある場合により便利です。
imgui.TextUnformatted("Table 2")
imgui.BeginTable("table2", 3)
for row = 0, 4, 1 do
imgui.TableNextRow()
imgui.TableNextColumn()
imgui.TextUnformatted("Row " .. row)
imgui.TableNextColumn()
imgui.TextUnformatted("Some contents")
imgui.TableNextColumn()
imgui.TextUnformatted("123.456");
end
imgui.EndTable()
-- imgui.TextUnformatted("")
-- [方法 3] 各セルの_前_に TableNextColumn() を呼び出します。
-- TableNextColumn() は自動的にラップアラウンドし、必要に応じて新しい roes を作成するため、TableNextRow() を呼び出すことはありません。
-- これは通常、すべてのセルに同じ種類のデータが含まれている場合により便利です。
-- imgui.TextUnformatted("Table 3")
-- imgui.BeginTable("table2", 3)
-- for item = 0, 14, 1
-- do
-- imgui.TableNextColumn()
-- imgui.TextUnformatted("Item " .. item)
-- end
-- imgui.EndTable()
end
function closed_demo(wnd)
-- Tこの関数は、ユーザーがウィンドウを閉じるときに呼び出されます。
-- ウィンドウが既に破棄されているため、この関数では imgui 関数の描画または呼び出しは許可されない。
end