1#ifndef YAZE_APP_CORE_STYLE_H
2#define YAZE_APP_CORE_STYLE_H
8#include "absl/strings/string_view.h"
12#include "imgui/imgui.h"
25 const ImVec2 &size = ImVec2(0, 0),
26 ImGuiWindowFlags flags = 0);
42void BeginTableCanvas(
const char* table_id,
int columns, ImVec2 canvas_size = ImVec2(0, 0));
72 void Copy() { ImGui::SetClipboardText(
text.c_str()); }
83 std::string str = ImGui::GetClipboardText();
115 std::function<void(
int index,
const T &item,
bool is_selected)>;
119 const char *title =
"Selection",
120 ImGuiMultiSelectFlags flags = ImGuiMultiSelectFlags_ClearOnEscape |
121 ImGuiMultiSelectFlags_BoxSelect1d)
142 if (ImGui::BeginChild(
143 "##MultiSelectChild",
146 ImGuiMultiSelectIO *ms_io =
150 ImGuiListClipper clipper;
151 clipper.Begin(
items_.size());
152 if (ms_io->RangeSrcItem != -1)
153 clipper.IncludeItemByIndex((
int)ms_io->RangeSrcItem);
155 while (clipper.Step()) {
156 for (
int n = clipper.DisplayStart; n < clipper.DisplayEnd; n++) {
157 bool item_is_selected =
selection_.Contains((ImGuiID)n);
158 ImGui::SetNextItemSelectionUserData(n);
165 snprintf(label,
sizeof(label),
"Item %d", n);
166 ImGui::Selectable(label, item_is_selected);
171 ms_io = ImGui::EndMultiSelect();
179 std::vector<int> indices;
180 for (
int i = 0; i <
items_.size(); i++) {
182 indices.push_back(i);
199 ImGuiChildFlags_FrameStyle | ImGuiChildFlags_ResizeY;
void SetItemRenderer(ItemRenderer renderer)
void SetItems(const std::vector< T > &items)
ItemRenderer item_renderer_
std::function< void(int index, const T &item, bool is_selected)> ItemRenderer
void SetHeight(float height_in_font_units=20.0f)
ImGuiMultiSelectFlags flags_
MultiSelect(const char *title="Selection", ImGuiMultiSelectFlags flags=ImGuiMultiSelectFlags_ClearOnEscape|ImGuiMultiSelectFlags_BoxSelect1d)
void SetChildFlags(ImGuiChildFlags flags)
ImGuiChildFlags child_flags_
ImGuiSelectionBasicStorage selection_
std::vector< int > GetSelectedIndices() const
float height_in_font_units_
void DrawBitmapViewer(const std::vector< gfx::Bitmap > &bitmaps, float scale, int ¤t_bitmap_id)
void BeginCanvasTableCell(ImVec2 min_size)
void BeginTableCanvas(const char *table_id, int columns, ImVec2 canvas_size)
void BeginChildBothScrollbars(int id)
TextEditor::LanguageDefinition GetAssemblyLanguageDef()
void DrawDisplaySettings(ImGuiStyle *ref)
void SetupCanvasTableColumn(const char *label, float width_ratio)
void EndWindowWithDisplaySettings()
void DrawDisplaySettingsForPopup(ImGuiStyle *ref)
void BeginWindowWithDisplaySettings(const char *id, bool *active, const ImVec2 &size, ImGuiWindowFlags flags)
void TextWithSeparators(const absl::string_view &text)
void BeginChildWithScrollbar(const char *str_id)
Main namespace for the application.