ImGuiDebugPanel.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "TextEditor.h"
  2. void TextEditor::ImGuiDebugPanel(const std::string& panelName)
  3. {
  4. ImGui::Begin(panelName.c_str());
  5. if (ImGui::CollapsingHeader("Editor state info"))
  6. {
  7. ImGui::Checkbox("Panning", &mPanning);
  8. ImGui::Checkbox("Dragging selection", &mDraggingSelection);
  9. ImGui::DragInt("Cursor count", &mState.mCurrentCursor);
  10. for (int i = 0; i <= mState.mCurrentCursor; i++)
  11. {
  12. ImGui::DragInt2("Interactive start", &mState.mCursors[i].mInteractiveStart.mLine);
  13. ImGui::DragInt2("Interactive end", &mState.mCursors[i].mInteractiveEnd.mLine);
  14. }
  15. }
  16. if (ImGui::CollapsingHeader("Lines"))
  17. {
  18. for (int i = 0; i < mLines.size(); i++)
  19. {
  20. ImGui::Text("%d", mLines[i].size());
  21. }
  22. }
  23. if (ImGui::CollapsingHeader("Undo"))
  24. {
  25. static std::string numberOfRecordsText;
  26. numberOfRecordsText = "Number of records: " + std::to_string(mUndoBuffer.size());
  27. ImGui::Text("%s", numberOfRecordsText.c_str());
  28. ImGui::DragInt("Undo index", &mState.mCurrentCursor);
  29. for (int i = 0; i < mUndoBuffer.size(); i++)
  30. {
  31. if (ImGui::CollapsingHeader(std::to_string(i).c_str()))
  32. {
  33. ImGui::Text("Operations");
  34. for (int j = 0; j < mUndoBuffer[i].mOperations.size(); j++)
  35. {
  36. ImGui::Text("%s", mUndoBuffer[i].mOperations[j].mText.c_str());
  37. ImGui::Text(mUndoBuffer[i].mOperations[j].mType == UndoOperationType::Add ? "Add" : "Delete");
  38. ImGui::DragInt2("Start", &mUndoBuffer[i].mOperations[j].mStart.mLine);
  39. ImGui::DragInt2("End", &mUndoBuffer[i].mOperations[j].mEnd.mLine);
  40. ImGui::Separator();
  41. }
  42. }
  43. }
  44. }
  45. if (ImGui::Button("Run unit tests"))
  46. {
  47. UnitTests();
  48. }
  49. ImGui::End();
  50. }