|
@ -204,6 +204,37 @@ ctx->RSSetScissorRects(1, &r); |
|
|
### Q: How can I have multiple widgets with the same label? |
|
|
### Q: How can I have multiple widgets with the same label? |
|
|
### Q: How can I have multiple windows with the same label? |
|
|
### Q: How can I have multiple windows with the same label? |
|
|
|
|
|
|
|
|
|
|
|
**USING THE SAME LABEL+ID IS THE MOST COMMON USER MISTAKE:** |
|
|
|
|
|
<table> |
|
|
|
|
|
<tr> |
|
|
|
|
|
<td><img src="https://github.com/ocornut/imgui/assets/8225057/76eb9467-74d1-4e95-9f56-be81c6dd029d"></td> |
|
|
|
|
|
<td> |
|
|
|
|
|
<pre lang="cpp"> |
|
|
|
|
|
ImGui::Begin("Incorrect!"); |
|
|
|
|
|
ImGui::DragFloat2("My value", &objects[0]->pos.x); |
|
|
|
|
|
ImGui::DragFloat2("My value", &objects[1]->pos.x); |
|
|
|
|
|
ImGui::DragFloat2("My value", &objects[2]->pos.x); |
|
|
|
|
|
ImGui::End(); |
|
|
|
|
|
|
|
|
|
|
|
ImGui::Begin("Correct!"); |
|
|
|
|
|
ImGui::DragFloat2("My value", &objects[0]->pos.x); |
|
|
|
|
|
ImGui::DragFloat2("My value##2", &objects[1]->pos.x); |
|
|
|
|
|
ImGui::DragFloat2("My value##3", &objects[2]->pos.x); |
|
|
|
|
|
ImGui::End(); |
|
|
|
|
|
|
|
|
|
|
|
ImGui::Begin("Also Correct!"); |
|
|
|
|
|
for (int n = 0; n < 3; n++) |
|
|
|
|
|
{ |
|
|
|
|
|
ImGui::PushID(n); |
|
|
|
|
|
ImGui::DragFloat2("My value", &objects[n]->pos.x); |
|
|
|
|
|
ImGui::PopID(); |
|
|
|
|
|
} |
|
|
|
|
|
ImGui::End(); |
|
|
|
|
|
</pre> |
|
|
|
|
|
</td> |
|
|
|
|
|
</tr> |
|
|
|
|
|
</table> |
|
|
|
|
|
|
|
|
A primer on labels and the ID Stack... |
|
|
A primer on labels and the ID Stack... |
|
|
|
|
|
|
|
|
Dear ImGui internally needs to uniquely identify UI elements. |
|
|
Dear ImGui internally needs to uniquely identify UI elements. |
|
|