Doxygen Samurai Engine 0.0.1
Doxygen Samurai Engine Documentation
Loading...
Searching...
No Matches
editShortcuts.cpp
Go to the documentation of this file.
1
2
3#include "editShortcuts.h"
4
5#include <Config.h>
6
7#include <imgui.h>
8
10{
11 imguiId = imguiIdManager.getImguiIds(2);
12 //todo save shortcuts
13}
14
16{
17
18
19 ImGui::SetNextWindowSize({400, 500});
20
21 ImGui::PushID(imguiId);
22
23 if (ImGui::Begin(ICON_NAME, &open,
24 ImGuiWindowFlags_NoDocking |
25 ImGuiWindowFlags_NoResize |
26 ImGuiWindowFlags_NoCollapse
27 ))
28 {
29
30 ImGui::Text("Edit shortcuts\n");
31
32 if (ImGui::BeginChild(imguiId + 1, {}, true))
33 {
34
35
36 ImGui::Columns(2, 0, false);
37
38 for (auto &shortcut : shortcutManager.registeredShortcuts)
39 {
40
41 ImGui::Text(shortcut.first.c_str());
42
43 ImGui::NextColumn();
44
45
46 char input[256] = {};
47 std::strncpy(input, shortcut.second.shortcut.c_str(), sizeof(input));
48
49 int flags = ImGuiInputTextFlags_EnterReturnsTrue;
50 if (!shortcut.second.editable)
51 {
52 flags = flags | ImGuiInputTextFlags_ReadOnly;
53 }
54
55 if (
56 ImGui::InputText(("##" + shortcut.first).c_str(),
57 input, sizeof(input), flags)
58 )
59 {
60 shortcut.second.shortcut = samurai::normalizeShortcutName(input);
61
62 }
63
64 ImGui::NextColumn();
65 }
66
67 ImGui::Columns(1);
68
69 ImGui::EndChild();
70 }
71
72
73
74 }
75 ImGui::End();
76
77 ImGui::PopID();
78
79}
bool shortcut(const samurai::Input &input, const char *shortcut)
std::string normalizeShortcutName(const char *shortcut)
std::unordered_map< std::string, Shortcut > registeredShortcuts
Definition shortcutApi.h:22
void update(samurai::ShortcutManager &shortcutManager, bool &open)
void init(samurai::samuraiImgui::ImGuiIdsManager &imguiIdManager)
int getImguiIds(unsigned int count=1)
Definition gui.h:60