ImGuiを使っているとき、BeginComboの書き方をよく忘れるのでメモ。
基本は、BeginCombo()で始めて、Selectable()で項目追加、EndCombo()で終了。
std::vector<std::string> itemList; static const char* s_currentItem = nullptr; if (ImGui::BeginCombo("Combo", s_currentItem)) { for (int i = 0; i < itemList.size(); ++i) { const bool is_selected = (s_currentItem == itemList.c_str()); if (ImGui::Selectable(itemList[i].c_str(), is_selected)) s_currentItem = itemList[i].c_str(); if (is_selected) SetItemDefaultFocus(); } EndCombo(); }
検索していたら、ImGuiのインタラクティブなマニュアルを見つけた。
pthom.github.io
このページ自体がImGuiで作られていて、さまざまな項目がメニューに実装されている。
詳しく知りたい項目を選ぶと、そのコードが表示されるので、非常に分かりやすい。