[Scummvm-git-logs] scummvm master -> abc9e1322200e9b55e741abf64dbf7851acd672a

scemino noreply at scummvm.org
Fri May 3 19:40:05 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:
abc9e13222 DIRECTOR: Add icons in ImGUI


Commit: abc9e1322200e9b55e741abf64dbf7851acd672a
    https://github.com/scummvm/scummvm/commit/abc9e1322200e9b55e741abf64dbf7851acd672a
Author: scemino (scemino74 at gmail.com)
Date: 2024-05-03T21:39:30+02:00

Commit Message:
DIRECTOR: Add icons in ImGUI

Changed paths:
    engines/director/debugtools.cpp


diff --git a/engines/director/debugtools.cpp b/engines/director/debugtools.cpp
index eaffb9a14e9..46561e7c512 100644
--- a/engines/director/debugtools.cpp
+++ b/engines/director/debugtools.cpp
@@ -21,6 +21,8 @@
 
 #define IMGUI_DEFINE_MATH_OPERATORS
 #include "backends/imgui/imgui.h"
+#include "backends/imgui/imgui_fonts.h"
+#include "common/config-manager.h"
 #include "graphics/surface.h"
 #include "graphics/opengl/shader.h"
 #include "image/png.h"
@@ -229,6 +231,28 @@ static const char *toString(ScriptType scriptType) {
 	return scriptTypes[(int)scriptType];
 }
 
+static const char *toIcon(CastType castType) {
+	static const char *castTypes[] = {
+		"",       // Empty
+		"\ue075", // Bitmap
+		"\ue062", // FilmLoop
+		"\ue0e1", // Text
+		"\ue055", // Palette
+		"\ue075", // Picture
+		"\ue0f1", // Sound
+		"\ue0cb", // Button
+		"\ue058", // Shape
+		"\ue0ee", // Movie
+		"\ue062", // DigitalVideo
+		"\ue0bc", // Script
+		"",       // RTE
+		"",       // ???
+		""};      // Transition"
+	if (castType < 0 || castType > kCastTransition)
+		return "";
+	return castTypes[(int)castType];
+}
+
 static const char *toString(CastType castType) {
 	static const char *castTypes[] = {
 		"Empty",
@@ -308,11 +332,17 @@ static void showCast() {
 
 	if (ImGui::Begin("Cast", &_state->_showCast)) {
 		Movie *movie = g_director->getCurrentMovie();
-		if (ImGui::Button(_state->_cast._listView ? "Grid" : "List")) {
-			_state->_cast._listView = !_state->_cast._listView;
+		ImGui::BeginDisabled(_state->_cast._listView);
+		if (ImGui::Button("\ue07e")) {
+			_state->_cast._listView = true;
 		}
-		ImGui::Separator();
-
+		ImGui::EndDisabled();
+		ImGui::SameLine();
+		ImGui::BeginDisabled(!_state->_cast._listView);
+		if (ImGui::Button("\ue06e")) {
+			_state->_cast._listView = false;
+		}
+		ImGui::EndDisabled();
 		if (_state->_cast._listView) {
 			if (ImGui::BeginTable("Resources", 5, ImGuiTableFlags_Borders | ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_Resizable | ImGuiTableFlags_RowBg)) {
 				ImGui::TableSetupColumn("Name", 0, 120.f);
@@ -334,7 +364,7 @@ static void showCast() {
 						ImGui::TableNextRow();
 						ImGui::TableNextColumn();
 						const char *name = castMemberInfo ? castMemberInfo->name.c_str() : "";
-						ImGui::Text("%s", castMemberInfo ? castMemberInfo->name.c_str() : "");
+						ImGui::Text("%s %s", toIcon(castMember._value->_type), name);
 
 						ImGui::TableNextColumn();
 						ImGui::Text("%d", castMember._key);
@@ -686,6 +716,19 @@ static void showScripts() {
 }
 
 void onImGuiInit() {
+	ImGuiIO &io = ImGui::GetIO();
+	io.Fonts->AddFontDefault();
+
+	ImFontConfig icons_config;
+	icons_config.MergeMode = true;
+	icons_config.PixelSnapH = false;
+	icons_config.OversampleH = 3;
+	icons_config.OversampleV = 3;
+	icons_config.GlyphOffset = {0, 3};
+
+	static const ImWchar icons_ranges[] = {0xE000, 0xF8FF, 0};
+	ImGui::addTTFFontFromArchive("OpenFontIcons.ttf", 13.f, &icons_config, icons_ranges);
+
 	_state = new ImGuiState();
 }
 
@@ -698,7 +741,8 @@ void onImGuiRender() {
 	if (!_state)
 		return;
 
-	ImGui::GetIO().ConfigFlags &= ~(ImGuiConfigFlags_NoMouseCursorChange | ImGuiConfigFlags_NoMouse);
+	ImGuiIO &io = ImGui::GetIO();
+	io.ConfigFlags &= ~(ImGuiConfigFlags_NoMouseCursorChange | ImGuiConfigFlags_NoMouse);
 
 	if (ImGui::BeginMainMenuBar()) {
 		if (ImGui::BeginMenu("View")) {




More information about the Scummvm-git-logs mailing list