Doxygen Samurai Engine 0.0.1
Doxygen Samurai Engine Documentation
Loading...
Searching...
No Matches
logWindow.cpp
Go to the documentation of this file.
1
2#include "logWindow.h"
3#include <imgui.h>
4#include <IconsForkAwesome.h>
5
6
7
12
14{
15 ImGui::PushID(imguiId);
16
17 if (!ImGui::Begin(ICON_NAME, &open))
18 {
19 ImGui::End();
20 ImGui::PopID();
21 return;
22 }
23
24
25 if (ImGui::BeginPopup("Options"))
26 {
27 ImGui::Checkbox("Auto-scroll", &autoScroll);
28 ImGui::EndPopup();
29 }
30
31
32 if (ImGui::Button("Options"))
33 ImGui::OpenPopup("Options");
34 ImGui::SameLine();
35 if (ImGui::Button("Clear"))
36 {logManager.internalLogs.clear();}
37 ImGui::SameLine();
38
39 if(ImGui::Button("Copy"))
40 {ImGui::LogToClipboard();}
41 ImGui::SameLine();
42
43 filter.Draw("Filter", -100.0f);
44
45 ImGui::Separator();
46 ImGui::BeginChild("scrolling", ImVec2(0, 0), false, ImGuiWindowFlags_HorizontalScrollbar);
47
48
49 ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0, 0));
50 if (filter.IsActive())
51 {
52 for (auto i : logManager.internalLogs)
53 {
54 if (filter.PassFilter(i.c_str()))
55 {
56 ImGui::TextUnformatted(i.c_str());
57 }
58 }
59
60 }
61 else
62 {
63 for (auto i : logManager.internalLogs)
64 {
65 ImGui::TextUnformatted(i.c_str());
66 }
67 }
68 ImGui::PopStyleVar();
69
70 if (autoScroll && ImGui::GetScrollY() >= ImGui::GetScrollMaxY())
71 ImGui::SetScrollHereY(1.0f);
72
73 ImGui::EndChild();
74 ImGui::End();
75
76 ImGui::PopID();
77}
78
79
std::deque< std::string > internalLogs
Definition log.h:32
void init(samurai::samuraiImgui::ImGuiIdsManager &idManager)
Definition logWindow.cpp:8
void update(samurai::LogManager &logManager, bool &open)
Definition logWindow.cpp:13
int getImguiIds(unsigned int count=1)
Definition gui.h:60