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);
67 void Copy() { ImGui::SetClipboardText(
text.c_str()); }
78 std::string str = ImGui::GetClipboardText();
110 std::function<void(
int index,
const T& item,
bool is_selected)>;
114 const char* title =
"Selection",
115 ImGuiMultiSelectFlags flags = ImGuiMultiSelectFlags_ClearOnEscape |
116 ImGuiMultiSelectFlags_BoxSelect1d)
137 if (ImGui::BeginChild(
138 "##MultiSelectChild",
141 ImGuiMultiSelectIO* ms_io =
145 ImGuiListClipper clipper;
146 clipper.Begin(
items_.size());
147 if (ms_io->RangeSrcItem != -1)
148 clipper.IncludeItemByIndex((
int)ms_io->RangeSrcItem);
150 while (clipper.Step()) {
151 for (
int n = clipper.DisplayStart; n < clipper.DisplayEnd; n++) {
152 bool item_is_selected =
selection_.Contains((ImGuiID)n);
153 ImGui::SetNextItemSelectionUserData(n);
160 snprintf(label,
sizeof(label),
"Item %d", n);
161 ImGui::Selectable(label, item_is_selected);
166 ms_io = ImGui::EndMultiSelect();
174 std::vector<int> indices;
175 for (
int i = 0; i <
items_.size(); i++) {
177 indices.push_back(i);
194 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 BeginChildBothScrollbars(int id)
TextEditor::LanguageDefinition GetAssemblyLanguageDef()
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)