1#ifndef YAZE_APP_EDITOR_SYSTEM_SHORTCUT_MANAGER_H
2#define YAZE_APP_EDITOR_SYSTEM_SHORTCUT_MANAGER_H
7#include <unordered_map>
10#ifndef IMGUI_DEFINE_MATH_OPERATORS
11#define IMGUI_DEFINE_MATH_OPERATORS
14#include "imgui/imgui.h"
21 std::vector<ImGuiKey>
keys;
25std::vector<ImGuiKey>
ParseShortcut(
const std::string &shortcut);
32 const std::vector<ImGuiKey> &keys) {
36 const std::vector<ImGuiKey> &keys,
37 std::function<
void()> callback) {
42 std::function<
void()> callback) {
56 std::function<void()>
GetCallback(
const std::string &name)
const {
60 const std::string
GetKeys(
const std::string &name)
const {
68 std::function<
void()> save_callback,
69 std::function<
void()> open_callback,
70 std::function<
void()> close_callback,
71 std::function<
void()> find_callback,
72 std::function<
void()> settings_callback);
75 std::function<
void()> focus_left,
76 std::function<
void()> focus_right,
77 std::function<
void()> focus_up,
78 std::function<
void()> focus_down,
79 std::function<
void()> close_window,
80 std::function<
void()> split_horizontal,
81 std::function<
void()> split_vertical);
const Shortcut & GetShortcut(const std::string &name) const
const std::string GetKeys(const std::string &name) const
void RegisterShortcut(const std::string &name, ImGuiKey key, std::function< void()> callback)
std::function< void()> GetCallback(const std::string &name) const
void RegisterStandardShortcuts(std::function< void()> save_callback, std::function< void()> open_callback, std::function< void()> close_callback, std::function< void()> find_callback, std::function< void()> settings_callback)
auto GetShortcuts() const
void RegisterShortcut(const std::string &name, const std::vector< ImGuiKey > &keys, std::function< void()> callback)
void RegisterWindowNavigationShortcuts(std::function< void()> focus_left, std::function< void()> focus_right, std::function< void()> focus_up, std::function< void()> focus_down, std::function< void()> close_window, std::function< void()> split_horizontal, std::function< void()> split_vertical)
void ExecuteShortcut(const std::string &name) const
std::unordered_map< std::string, Shortcut > shortcuts_
void RegisterShortcut(const std::string &name, const std::vector< ImGuiKey > &keys)
std::vector< ImGuiKey > ParseShortcut(const std::string &shortcut)
std::string PrintShortcut(const std::vector< ImGuiKey > &keys)
void ExecuteShortcuts(const ShortcutManager &shortcut_manager)
Main namespace for the application.
std::function< void()> callback
std::vector< ImGuiKey > keys