Browse Source

testing imgui tabs and combobox

main
cinnaboot 1 year ago
parent
commit
bbc1ef6623
  1. 70
      src/gooey.cpp
  2. 3
      src/main.cpp

70
src/gooey.cpp

@ -76,26 +76,40 @@ gooDraw(SDL_Window* window, GameState* gs, RenderState* rs)
Begin("Gooey"); Begin("Gooey");
drawSimulationWindow(gs->running, gs->sim_time_ms, gs->sim_speed); drawSimulationWindow(gs->running, gs->sim_time_ms, gs->sim_speed);
drawMemoryWindow(gs->arena, rs);
Separator(); Separator();
drawOrbitSelectionWindow(gs); // FIXME: testing tabs
GameOrbit* orbit = getSelectedOrbit(gs); if (BeginTabBar("tabbar_01")) {
if (BeginTabItem("orbits")) {
drawOrbitSelectionWindow(gs);
GameOrbit* orbit = getSelectedOrbit(gs);
if (orbit) {
TwoBodySystem& sys = orbit->system;
BeginChild("orbit details", ImVec2(G_WIDTH - 20, 450), true);
drawSystemWindow(sys);
Separator();
drawSatelliteWindow(sys.sat);
Separator();
drawOrbitalElements(sys.elements);
EndChild();
BeginChild("impulsive maneuver", ImVec2(G_WIDTH - 20, 125), true);
drawManeuverWindow(gs);
EndChild();
}
if (orbit) { EndTabItem();
TwoBodySystem& sys = orbit->system; }
BeginChild("orbit details", ImVec2(G_WIDTH - 20, 450), true);
drawSystemWindow(sys);
Separator();
drawSatelliteWindow(sys.sat);
Separator();
drawOrbitalElements(sys.elements);
EndChild();
}
BeginChild("impulsive maneuver", ImVec2(G_WIDTH - 20, 125), true); if (BeginTabItem("resources")) {
drawManeuverWindow(gs); drawMemoryWindow(gs->arena, rs);
EndChild(); EndTabItem();
}
EndTabBar();
}
// FIXME: end testing tabs
End(); End();
Render(); Render();
@ -162,17 +176,25 @@ void drawOrbitSelectionWindow(GameState* gs)
BeginChild("orbit selection", ImVec2(G_WIDTH - 20, 55), true); BeginChild("orbit selection", ImVec2(G_WIDTH - 20, 55), true);
for (u32 i = 0; i < gs->num_orbits; i++) { const u32 label_len = 32;
GameOrbit& orbit = gs->orbits[i]; static char label[label_len];
static char selected_label[label_len];
if (BeginCombo("select orbit", selected_label)) {
for (u32 i = 0; i < gs->num_orbits; i++) {
GameOrbit& orbit = gs->orbits[i];
if (orbit.in_use) { if (orbit.in_use) {
const u32 label_len = 32; snprintf(label, label_len, "Orbit %d", i);
static char label[label_len];
snprintf(label, label_len, "Orbit %d", i);
if (Selectable(label, orbit.selected)) if (Selectable(label, orbit.selected)) {
selectOrbit(gs, &orbit); selectOrbit(gs, &orbit);
snprintf(selected_label, label_len, "Orbit %d", i);
}
}
} }
EndCombo();
} }
EndChild(); EndChild();

3
src/main.cpp

@ -303,7 +303,8 @@ loadScene(GameState* gs, RenderState* rs)
addManeuver(gs, go_2, ImpulseType::CIRCULARIZE_LOWERING); addManeuver(gs, go_2, ImpulseType::CIRCULARIZE_LOWERING);
// NOTE: pre-select an orbit for testing // NOTE: pre-select an orbit for testing
selectOrbit(gs, go_2); // NOTE: doesn't work the same with the Combo Selection
//selectOrbit(gs, go_2);
#if DEBUG_ORBITS #if DEBUG_ORBITS
// NOTE: add more orbits with maneuvers to try and provoke a failure // NOTE: add more orbits with maneuvers to try and provoke a failure

Loading…
Cancel
Save