diff --git a/src/gui/tutorial.cpp b/src/gui/tutorial.cpp index 9d06ec5b..b3a1e66e 100644 --- a/src/gui/tutorial.cpp +++ b/src/gui/tutorial.cpp @@ -289,33 +289,58 @@ void FurnaceGUI::drawTutorial() { // tutorial if (curTutorial>=0 && curTutorialAddRectFilled( + ImVec2(0,0), + ImVec2(canvasW,canvasH), + col + ); + } + if (step.text[0]) { + ImVec2 avail=ImGui::GetContentRegionAvail(); + ImVec2 textSize=ImGui::CalcTextSize(step.text,NULL,false,avail.x); + textSize.y+=ImGui::GetFrameHeightWithSpacing(); + if (textSize.x>avail.x) textSize.x=avail.x; + if (textSize.y>avail.y) textSize.y=avail.y; - if (ImGui::Button(ICON_FA_CHEVRON_RIGHT)) { - curTutorialStep++; - if (step.runAfter!=NULL) step.runAfter(); - if (curTutorialStep>=(int)tutorials[curTutorial].steps.size()) { - tutorial.taken[curTutorial]=true; - curTutorial=-1; - curTutorialStep=0; - } else { - if (tutorials[curTutorial].steps[curTutorialStep].runBefore) tutorials[curTutorial].steps[curTutorialStep].runBefore(); + ImGui::SetCursorPos(ImVec2( + (canvasW-textSize.x)*0.5, + (canvasH-textSize.y)*0.5 + )); + + if (ImGui::BeginChild("TutText",textSize,true,ImGuiWindowFlags_NoScrollbar)) { + ImGui::TextWrapped("%s",step.text); + + if (ImGui::Button(ICON_FA_CHEVRON_RIGHT)) { + curTutorialStep++; + if (step.runAfter!=NULL) step.runAfter(); + if (curTutorialStep>=(int)tutorials[curTutorial].steps.size()) { + tutorial.taken[curTutorial]=true; + curTutorial=-1; + curTutorialStep=0; + } else { + if (tutorials[curTutorial].steps[curTutorialStep].runBefore) tutorials[curTutorial].steps[curTutorialStep].runBefore(); + } } } + ImGui::EndChild(); } - ImGui::End(); } + ImGui::End(); } } // helper functions void FurnaceGUI::highlightWindow(const char* winName) { - ImDrawList* dl=ImGui::GetForegroundDrawList(); + ImDrawList* dl=ImGui::GetWindowDrawList(); ImU32 col=ImGui::GetColorU32(uiColors[GUI_COLOR_MODAL_BACKDROP]); ImGuiWindow* win=ImGui::FindWindowByName(winName);