[Scummvm-git-logs] scummvm master -> 921c133b814b8db78bc906cdbccd73bf296b91eb
scemino
noreply at scummvm.org
Mon May 6 15:16:38 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
921c133b81 DIRECTOR: Add text in name + icon in grid view
Commit: 921c133b814b8db78bc906cdbccd73bf296b91eb
https://github.com/scummvm/scummvm/commit/921c133b814b8db78bc906cdbccd73bf296b91eb
Author: scemino (scemino74 at gmail.com)
Date: 2024-05-06T17:13:42+02:00
Commit Message:
DIRECTOR: Add text in name + icon in grid view
Changed paths:
engines/director/debugtools.cpp
diff --git a/engines/director/debugtools.cpp b/engines/director/debugtools.cpp
index 87990ced7c5..1b3bad7964c 100644
--- a/engines/director/debugtools.cpp
+++ b/engines/director/debugtools.cpp
@@ -33,6 +33,7 @@
#include "director/cast.h"
#include "director/castmember/bitmap.h"
#include "director/castmember/castmember.h"
+#include "director/castmember/text.h"
#include "director/castmember/script.h"
#include "director/channel.h"
#include "director/debugtools.h"
@@ -345,6 +346,18 @@ static void showImage(const ImGuiImage &image, const char *name, float thumbnail
setToolTipImage(image, name);
}
+static Common::String getDisplayName(CastMember *castMember) {
+ const CastMemberInfo *castMemberInfo = castMember->getInfo();
+ Common::String name(castMemberInfo ? castMemberInfo->name : "");
+ if (!name.empty())
+ return name;
+ if (castMember->_type == kCastText) {
+ TextCastMember *textCastMember = (TextCastMember *)castMember;
+ return textCastMember->getText();
+ }
+ return Common::String::format("%u", castMember->getID());
+}
+
static void showCast() {
if (!_state->_showCast)
return;
@@ -402,19 +415,18 @@ static void showCast() {
continue;
for (auto castMember : *cast->_loadedCast) {
- CastMemberInfo *castMemberInfo = cast->getCastMemberInfo(castMember._key);
if (!castMember._value->isLoaded())
continue;
- const char *name = castMemberInfo ? castMemberInfo->name.c_str() : "";
- if (!_state->_cast._nameFilter.PassFilter(name))
+ Common::String name(getDisplayName(castMember._value));
+ if (!_state->_cast._nameFilter.PassFilter(name.c_str()))
continue;
if ((castMember._value->_type != kCastTypeAny) && !(_state->_cast._typeFilter & (1 << (int)castMember._value->_type)))
continue;
ImGui::TableNextRow();
ImGui::TableNextColumn();
- ImGui::Text("%s %s", toIcon(castMember._value->_type), name);
+ ImGui::Text("%s %s", toIcon(castMember._value->_type), name.c_str());
ImGui::TableNextColumn();
ImGui::Text("%d", castMember._key);
@@ -430,7 +442,7 @@ static void showCast() {
ImGui::TableNextColumn();
ImGuiImage imgID = getImageID(castMember._value);
if (imgID.id) {
- showImage(imgID, name, 32.f);
+ showImage(imgID, name.c_str(), 32.f);
}
}
}
@@ -449,14 +461,10 @@ static void showCast() {
continue;
for (auto castMember : *cast->_loadedCast) {
- CastMemberInfo *castMemberInfo = cast->getCastMemberInfo(castMember._key);
if (!castMember._value->isLoaded())
continue;
- Common::String name(castMemberInfo ? castMemberInfo->name : "");
- if (name.empty()) {
- name = Common::String::format("%d", castMember._key);
- }
+ Common::String name(getDisplayName(castMember._value));
if (!_state->_cast._nameFilter.PassFilter(name.c_str()))
continue;
if ((castMember._value->_type != kCastTypeAny) && !(_state->_cast._typeFilter & (1 << (int)castMember._value->_type)))
@@ -471,9 +479,6 @@ static void showCast() {
if (textWidth > thumbnailSize) {
textWidth = thumbnailSize;
textHeight *= (textSize.x / textWidth);
- if (textHeight > thumbnailSize) {
- textHeight = thumbnailSize;
- }
}
ImGuiImage imgID = getImageID(castMember._value);
@@ -490,6 +495,7 @@ static void showCast() {
draw_list->AddRect(p0, p1, IM_COL32_WHITE);
const ImVec2 pos = p0 + ImVec2((thumbnailSize - textWidth) * 0.5f, (thumbnailSize - textHeight) * 0.5f);
draw_list->AddText(nullptr, 0.f, pos, IM_COL32_WHITE, name.c_str(), 0, thumbnailSize);
+ draw_list->AddText(nullptr, 0.f, p1 - ImVec2(16, 16), IM_COL32_WHITE, toIcon(castMember._value->_type));
ImGui::PopClipRect();
}
ImGui::EndGroup();
More information about the Scummvm-git-logs
mailing list