143 bool is_multi_selected =
149 std::optional<gui::StyleColorGuard> sel_bg_guard;
153 sel_bg_guard.emplace(ImGuiCol_ChildBg, sel_bg);
154 }
else if (is_multi_selected) {
157 sel_bg_guard.emplace(ImGuiCol_ChildBg, multi_bg);
160 ImGui::BeginChild(absl::StrFormat(
"##Sheet%02X", sheet_id).c_str(),
161 ImVec2(thumb_width + 8, thumb_height + 24),
true,
162 ImGuiWindowFlags_NoScrollbar);
165 preview_opts.
canvas_size = ImVec2(thumb_width + 1, thumb_height + 1);
166 preview_opts.
dest_pos = ImVec2(2, 2);
167 preview_opts.
dest_size = ImVec2(thumb_width - 2, thumb_height - 2);
185 std::string label = absl::StrFormat(
"%02X", sheet_id);
191 ImVec2 text_pos = ImGui::GetCursorScreenPos();
192 ImVec2 text_size = ImGui::CalcTextSize(label.c_str());
194 ImVec2(2, 2), ImVec2(text_size.x + 4, text_size.y + 2),
195 is_modified ? IM_COL32(180, 100, 0, 200) : IM_COL32(0, 100, 0, 180));
198 is_modified ? IM_COL32(255, 200, 100, 255)
199 : IM_COL32(150, 255, 150, 255));
204 if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) {
205 if (ImGui::GetIO().KeyCtrl) {
207 if (is_multi_selected) {
219 if (ImGui::IsItemHovered() &&
220 ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left)) {
226 sel_bg_guard.reset();
229 if (ImGui::IsItemHovered()) {
230 ImGui::BeginTooltip();
231 ImGui::Text(
"Sheet: 0x%02X (%d)", sheet_id, sheet_id);
233 ImGui::Text(
"Size: %dx%d", bitmap.
width(), bitmap.
height());
234 ImGui::Text(
"Depth: %d bpp", bitmap.
depth());
236 ImGui::Text(
"(Inactive)");