ImGui を使用して、ネストされたツリー ビュー UI コンポーネントを作成したいと考えています。結果は次のようになります。
Selectable()
これは、次のような要素のネストを作成するために必要なコードです。
void imgui_nested_tree() {
bool is_expanded = ImGui::TreeNodeExV( (void*)nullptr, ImGuiTreeNodeFlags_FramePadding, "", nullptr);
ImGui::SameLine();
ImGui::Selectable("outer selectable", false);
if (is_expanded) {
bool is_expanded = ImGui::TreeNodeExV( (void*)nullptr, ImGuiTreeNodeFlags_FramePadding, "", nullptr);
ImGui::SameLine();
ImGui::Selectable("inner1 selectable", false);
if (is_expanded) {
// and so on...
}
}
}
このコードはまた、小さな矢印とSelectable
独立してクリックできるようにします。これは素晴らしいことです。Selectable
これは、矢印の横をクリックするとイベントを発生できることを意味します。
このように手動でコーディングすると間違いを犯しやすいため、再帰を使用してこれらの入れ子要素を作成することにしました。これをどのように行いますか?