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);
38 bool horizontal_scroll =
false);
44 ImVec2 canvas_size = ImVec2(0, 0));
51 ImGuiStyle* ref =
nullptr);
75 void Copy() { ImGui::SetClipboardText(
text.c_str()); }
86 std::string str = ImGui::GetClipboardText();
118 std::function<void(
int index,
const T& item,
bool is_selected)>;
122 const char* title =
"Selection",
123 ImGuiMultiSelectFlags flags = ImGuiMultiSelectFlags_ClearOnEscape |
124 ImGuiMultiSelectFlags_BoxSelect1d)
145 if (ImGui::BeginChild(
146 "##MultiSelectChild",
149 ImGuiMultiSelectIO* ms_io =
153 ImGuiListClipper clipper;
154 clipper.Begin(
items_.size());
155 if (ms_io->RangeSrcItem != -1)
156 clipper.IncludeItemByIndex((
int)ms_io->RangeSrcItem);
158 while (clipper.Step()) {
159 for (
int n = clipper.DisplayStart; n < clipper.DisplayEnd; n++) {
160 bool item_is_selected =
selection_.Contains((ImGuiID)n);
161 ImGui::SetNextItemSelectionUserData(n);
168 snprintf(label,
sizeof(label),
"Item %d", n);
169 ImGui::Selectable(label, item_is_selected);
174 ms_io = ImGui::EndMultiSelect();
182 std::vector<int> indices;
183 for (
int i = 0; i <
items_.size(); i++) {
185 indices.push_back(i);
202 ImGuiChildFlags_FrameStyle | ImGuiChildFlags_ResizeY;
void SetItemRenderer(ItemRenderer renderer)
void SetItems(const std::vector< T > &items)
ItemRenderer item_renderer_
void SetHeight(float height_in_font_units=20.0f)
ImGuiMultiSelectFlags flags_
std::function< void(int index, const T &item, bool is_selected)> ItemRenderer
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)