1#ifndef YAZE_APP_CORE_INPUT_H
2#define YAZE_APP_CORE_INPUT_H
4#define IMGUI_DEFINE_MATH_OPERATORS
14#include "absl/strings/str_cat.h"
15#include "absl/strings/string_view.h"
17#include "imgui/imgui.h"
25IMGUI_API
bool InputHex(
const char *label, uint64_t *data);
26IMGUI_API
bool InputHex(
const char *label,
int *data,
int num_digits = 4,
27 float input_width = 50.f);
29IMGUI_API
bool InputHexShort(
const char *label, uint32_t *data);
30IMGUI_API
bool InputHexWord(
const char *label, uint16_t *data,
31 float input_width = 50.f,
bool no_step =
false);
32IMGUI_API
bool InputHexWord(
const char *label, int16_t *data,
33 float input_width = 50.f,
bool no_step =
false);
34IMGUI_API
bool InputHexByte(
const char *label, uint8_t *data,
35 float input_width = 50.f,
bool no_step =
false);
37IMGUI_API
bool InputHexByte(
const char *label, uint8_t *data, uint8_t max_value,
38 float input_width = 50.f,
bool no_step =
false);
40IMGUI_API
void Paragraph(
const std::string &text);
44IMGUI_API
bool ListBox(
const char *label,
int *current_item,
45 const std::vector<std::string> &items,
46 int height_in_items = -1);
58IMGUI_API ImGuiID
GetID(
const std::string &
id);
62using GuiElement = std::variant<std::function<void()>, std::string>;
77static std::function<bool()> kDefaultEnabledCondition = []() {
return false; };
86using Menu = std::vector<MenuItem>;
SNES 16-bit tile metadata container.
constexpr std::string kSeparator
bool ClickableText(const std::string &text)
void Paragraph(const std::string &text)
void ItemLabel(absl::string_view title, ItemLabelFlags flags)
bool InputHexWord(const char *label, uint16_t *data, float input_width, bool no_step)
bool ListBox(const char *label, int *current_item, const std::vector< std::string > &items, int height_in_items)
bool InputHexShort(const char *label, uint32_t *data)
void AddTableColumn(Table &table, const std::string &label, GuiElement element)
enum ItemLabelFlag { Left=1u<< 0u, Right=1u<< 1u, Default=Left, } ItemLabelFlags
void DrawMenu(Menu &menu)
void DrawTable(Table ¶ms)
std::vector< MenuItem > Menu
bool InputHex(const char *label, uint64_t *data)
bool InputTileInfo(const char *label, gfx::TileInfo *tile_info)
std::variant< std::function< void()>, std::string > GuiElement
constexpr ImVec2 kZeroPos
constexpr ImVec2 kDefaultModalSize
ImGuiID GetID(const std::string &id)
ImGuiKey MapKeyToImGuiKey(char key)
bool InputHexByte(const char *label, uint8_t *data, float input_width, bool no_step)
Main namespace for the application.
std::vector< std::string > column_labels
std::vector< GuiElement > column_contents