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