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

3
src/main.cpp

@ -303,7 +303,8 @@ loadScene(GameState* gs, RenderState* rs)
addManeuver(gs, go_2, ImpulseType::CIRCULARIZE_LOWERING);
// 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
// NOTE: add more orbits with maneuvers to try and provoke a failure

Loading…
Cancel
Save