144 bool is_multi_selected =
150 std::optional<gui::StyleColorGuard> sel_bg_guard;
154 sel_bg_guard.emplace(ImGuiCol_ChildBg, sel_bg);
155 }
else if (is_multi_selected) {
158 sel_bg_guard.emplace(ImGuiCol_ChildBg, multi_bg);
161 ImGui::BeginChild(absl::StrFormat(
"##Sheet%02X", sheet_id).c_str(),
162 ImVec2(thumb_width + 8, thumb_height + 24),
true,
163 ImGuiWindowFlags_NoScrollbar);
166 preview_opts.
canvas_size = ImVec2(thumb_width + 1, thumb_height + 1);
167 preview_opts.
dest_pos = ImVec2(2, 2);
168 preview_opts.
dest_size = ImVec2(thumb_width - 2, thumb_height - 2);
187 std::string label = absl::StrFormat(
"%02X", sheet_id);
193 ImVec2 text_pos = ImGui::GetCursorScreenPos();
194 ImVec2 text_size = ImGui::CalcTextSize(label.c_str());
196 ImVec2(2, 2), ImVec2(text_size.x + 4, text_size.y + 2),
197 is_modified ? IM_COL32(180, 100, 0, 200) : IM_COL32(0, 100, 0, 180));
200 is_modified ? IM_COL32(255, 200, 100, 255)
201 : IM_COL32(150, 255, 150, 255));
206 if (ImGui::IsItemClicked(ImGuiMouseButton_Left)) {
207 if (ImGui::GetIO().KeyCtrl) {
209 if (is_multi_selected) {
221 if (ImGui::IsItemHovered() &&
222 ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left)) {
228 sel_bg_guard.reset();
231 if (ImGui::IsItemHovered()) {
232 ImGui::BeginTooltip();
233 ImGui::Text(tr(
"Sheet: 0x%02X (%d)"), sheet_id, sheet_id);
235 ImGui::Text(tr(
"Size: %dx%d"), bitmap.
width(), bitmap.
height());
236 ImGui::Text(tr(
"Depth: %d bpp"), bitmap.
depth());
238 ImGui::Text(tr(
"(Inactive)"));