From 461ff6c20cb4414b0a1498d98ee082c0ce948e9f Mon Sep 17 00:00:00 2001 From: Ralph Sennhauser Date: Fri, 20 Jun 2025 00:06:41 +0200 Subject: [PATCH] Fix most headers in gui Make include-what-you-use happy with most of the files in source/gui and fix what needs to be fixed after including missing compile flags. Ref: #8086 Signed-off-by: Ralph Sennhauser --- source/gui/CGUI.cpp | 39 ++++++++++++++----- source/gui/CGUI.h | 6 +-- source/gui/CGUISetting.cpp | 15 +++++-- source/gui/GUIManager.cpp | 35 ++++++++++++++--- source/gui/GUIObjectTypes.cpp | 9 ++++- source/gui/GUIRenderer.cpp | 11 ++++-- source/gui/GUIStringConversions.cpp | 11 ++++++ source/gui/GUITooltip.cpp | 7 +++- source/gui/ObjectBases/IGUIObject.cpp | 2 + source/gui/ObjectTypes/CMiniMap.cpp | 1 + source/gui/Scripting/GuiScriptConversions.cpp | 19 ++++++++- source/gui/Scripting/JSInterface_CGUISize.cpp | 23 +++++++++-- .../gui/Scripting/JSInterface_GUIManager.cpp | 10 +++-- source/gui/Scripting/JSInterface_GUIProxy.cpp | 6 +++ source/gui/Scripting/JSInterface_GUIProxy.h | 15 +++++-- .../gui/Scripting/JSInterface_GUIProxy_impl.h | 23 ++++++++++- source/gui/Scripting/JSInterface_GUISize.cpp | 16 +++++++- source/gui/Scripting/JSInterface_GUISize.h | 13 ++++++- source/gui/Scripting/ScriptFunctions.cpp | 2 +- source/gui/SettingTypes/CGUIColor.h | 2 +- source/gui/SettingTypes/CGUIHotkey.cpp | 4 +- source/gui/SettingTypes/CGUIHotkey.h | 7 ++-- source/gui/SettingTypes/CGUIList.h | 3 +- source/gui/SettingTypes/CGUISize.cpp | 3 -- source/gui/SettingTypes/CGUISize.h | 4 +- source/gui/SettingTypes/CGUIString.cpp | 10 ++++- source/gui/SettingTypes/CGUIString.h | 9 ++++- source/gui/SettingTypes/MouseEventMask.cpp | 17 ++++++-- source/gui/SettingTypes/MouseEventMask.h | 8 ++-- source/gui/tests/test_CGUIText.h | 11 +++++- source/gui/tests/test_GUISetting.h | 22 ++++++----- source/gui/tests/test_GuiManager.h | 28 ++++++++++--- source/gui/tests/test_ParseString.h | 8 +++- source/scriptinterface/ScriptConversions.h | 1 + 34 files changed, 319 insertions(+), 81 deletions(-) diff --git a/source/gui/CGUI.cpp b/source/gui/CGUI.cpp index 5be4cc9342..b78923b5ac 100644 --- a/source/gui/CGUI.cpp +++ b/source/gui/CGUI.cpp @@ -19,41 +19,62 @@ #include "CGUI.h" -#include "GUIObjectEventBroadcaster.h" - #include "graphics/Canvas2D.h" +#include "graphics/Color.h" +#include "gui/CGUISetting.h" +#include "gui/CGUISprite.h" +#include "gui/GUIObjectEventBroadcaster.h" #include "gui/IGUIScrollBar.h" #include "gui/ObjectBases/IGUIObject.h" #include "gui/ObjectTypes/CGUIDummyObject.h" #include "gui/ObjectTypes/CTooltip.h" #include "gui/Scripting/JSInterface_GUIProxy.h" #include "gui/Scripting/ScriptFunctions.h" +#include "gui/SettingTypes/CGUISize.h" #include "i18n/L10n.h" #include "lib/bits.h" +#include "lib/debug.h" +#include "lib/external_libraries/libsdl.h" +#include "lib/file/vfs/vfs_util.h" #include "lib/input.h" -#include "lib/sysdep/sysdep.h" +#include "lib/path.h" #include "lib/timer.h" #include "lib/utf8.h" #include "maths/Size2D.h" #include "ps/CLogger.h" +#include "ps/Errors.h" #include "ps/Filesystem.h" #include "ps/GameSetup/Config.h" -#include "ps/Globals.h" #include "ps/Hotkey.h" -#include "ps/Profile.h" -#include "ps/Pyrogenesis.h" #include "ps/VideoMode.h" +#include "ps/XMB/XMBData.h" #include "ps/XML/Xeromyces.h" +#include "renderer/backend/Sampler.h" #include "scriptinterface/FunctionWrapper.h" #include "scriptinterface/Object.h" -#include "scriptinterface/Promises.h" -#include "scriptinterface/ScriptContext.h" +#include "scriptinterface/ScriptExceptions.h" #include "scriptinterface/ScriptInterface.h" +#include "scriptinterface/ScriptRequest.h" -#include +#include +#include +#if MSC_VERSION +# pragma warning(push, 1) +#endif +#include +#if MSC_VERSION +# pragma warning(pop) +#endif +#include #include +#include +#include +#include +#include +#include #include #include +#include const double SELECT_DBLCLICK_RATE = 0.5; const u32 MAX_OBJECT_DEPTH = 100; // Max number of nesting for GUI includes. Used to detect recursive inclusion diff --git a/source/gui/CGUI.h b/source/gui/CGUI.h index f9d1a8834c..b77afca19e 100644 --- a/source/gui/CGUI.h +++ b/source/gui/CGUI.h @@ -24,6 +24,7 @@ #define INCLUDED_CGUI #include "gui/GUITooltip.h" +#include "gui/IGUIScrollBar.h" #include "gui/SGUIIcon.h" #include "gui/SGUIMessage.h" #include "gui/SGUIStyle.h" @@ -38,8 +39,10 @@ #include "scriptinterface/ModuleLoader.h" #include "scriptinterface/StructuredClone.h" +#include #include #include +#include #include #include #include @@ -47,7 +50,6 @@ #include #include #include -#include #include class CCanvas2D; @@ -63,11 +65,9 @@ class ScriptRequest; class XMBData; class XMBElement; namespace JS { class HandleValueArray; } -namespace JS { class Value; } namespace js { class BaseProxyHandler; } struct SDL_Event_; struct SGUIImageEffects; -struct SGUIScrollBarStyle; extern const double SELECT_DBLCLICK_RATE; diff --git a/source/gui/CGUISetting.cpp b/source/gui/CGUISetting.cpp index fe97e6ad58..ce4d7f3407 100644 --- a/source/gui/CGUISetting.cpp +++ b/source/gui/CGUISetting.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -22,16 +22,23 @@ #include "gui/CGUI.h" #include "gui/CGUISprite.h" #include "gui/ObjectBases/IGUIObject.h" +#include "gui/SettingTypes/CGUIColor.h" #include "gui/SettingTypes/CGUIList.h" #include "gui/SettingTypes/CGUISeries.h" -#include "gui/SettingTypes/CGUISize.h" #include "gui/SettingTypes/CGUIString.h" -#include "gui/SettingTypes/EAlign.h" -#include "gui/SettingTypes/EScrollOrientation.h" +#include "lib/types.h" +#include "maths/Vector2D.h" #include "ps/CLogger.h" #include "ps/CStr.h" #include "scriptinterface/ScriptConversions.h" +#include + +enum class EAlign; +enum class EScrollOrientation; +enum class EVAlign; +struct CColor; + IGUISetting::IGUISetting(const CStr& name, IGUIObject* owner) : m_Object(*owner), m_Name(name) { m_Object.RegisterSetting(m_Name, this); diff --git a/source/gui/GUIManager.cpp b/source/gui/GUIManager.cpp index e30964e11e..00e6f756b6 100644 --- a/source/gui/GUIManager.cpp +++ b/source/gui/GUIManager.cpp @@ -20,25 +20,50 @@ #include "GUIManager.h" #include "gui/CGUI.h" +#include "gui/SGUIMessage.h" +#include "lib/debug.h" +#include "lib/file/vfs/vfs_util.h" #include "lib/timer.h" -#include "lobby/IXmppClient.h" +#include "lib/utf8.h" #include "ps/CLogger.h" +#include "ps/Errors.h" #include "ps/Filesystem.h" -#include "ps/GameSetup/Config.h" #include "ps/Profile.h" +#include "ps/Profiler2.h" #include "ps/VideoMode.h" +#include "ps/XMB/XMBData.h" #include "ps/XML/Xeromyces.h" #include "ps/containers/StaticVector.h" #include "scriptinterface/FunctionWrapper.h" #include "scriptinterface/Object.h" -#include "scriptinterface/Promises.h" #include "scriptinterface/ScriptContext.h" +#include "scriptinterface/ScriptConversions.h" #include "scriptinterface/ScriptInterface.h" +#include "scriptinterface/ScriptRequest.h" #include "scriptinterface/StructuredClone.h" +#include "simulation2/system/ParamNode.h" -#include "js/Equality.h" - +#include +#include +#include +#include +#if MSC_VERSION +# pragma warning(push, 1) +#endif +#include +#if MSC_VERSION +# pragma warning(pop) +#endif +#include +#include +#include +#include +#include +#include +#include +#include #include +#include namespace { diff --git a/source/gui/GUIObjectTypes.cpp b/source/gui/GUIObjectTypes.cpp index 1c3a26db07..88c6a35869 100644 --- a/source/gui/GUIObjectTypes.cpp +++ b/source/gui/GUIObjectTypes.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -36,6 +36,13 @@ #include "gui/ObjectTypes/CText.h" #include "gui/ObjectTypes/CTooltip.h" #include "gui/Scripting/JSInterface_GUIProxy.h" +#include "ps/CStr.h" + +#include +#include +#include + +class IGUIObject; void CGUI::AddObjectTypes() { diff --git a/source/gui/GUIRenderer.cpp b/source/gui/GUIRenderer.cpp index 2d96dead39..cc5754b131 100644 --- a/source/gui/GUIRenderer.cpp +++ b/source/gui/GUIRenderer.cpp @@ -24,14 +24,19 @@ #include "gui/CGUI.h" #include "gui/CGUISprite.h" #include "gui/SettingTypes/CGUIColor.h" +#include "gui/SettingTypes/CGUISize.h" #include "i18n/L10n.h" -#include "lib/tex/tex.h" +#include "lib/file/vfs/vfs_path.h" +#include "lib/path.h" #include "lib/utf8.h" +#include "maths/Vector2D.h" #include "ps/CLogger.h" -#include "ps/CStrInternStatic.h" -#include "ps/Filesystem.h" +#include "ps/CStr.h" #include "renderer/Renderer.h" +#include +#include + using namespace GUIRenderer; DrawCalls::DrawCalls() diff --git a/source/gui/GUIStringConversions.cpp b/source/gui/GUIStringConversions.cpp index aab95be597..351b2f06c0 100644 --- a/source/gui/GUIStringConversions.cpp +++ b/source/gui/GUIStringConversions.cpp @@ -18,10 +18,21 @@ #include "precompiled.h" #include "gui/CGUI.h" +#include "gui/CGUISprite.h" +#include "gui/SettingTypes/CGUIColor.h" +#include "gui/SettingTypes/CGUISize.h" #include "gui/SettingTypes/CGUIString.h" #include "gui/SettingTypes/EAlign.h" #include "gui/SettingTypes/EScrollOrientation.h" +#include "lib/types.h" +#include "maths/Rect.h" +#include "maths/Size2D.h" +#include "maths/Vector2D.h" #include "ps/CLogger.h" +#include "ps/CStr.h" + +#include +#include class CGUIList; class CGUISeries; diff --git a/source/gui/GUITooltip.cpp b/source/gui/GUITooltip.cpp index 8793031d66..f4ecff23f3 100644 --- a/source/gui/GUITooltip.cpp +++ b/source/gui/GUITooltip.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2021 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -20,10 +20,15 @@ #include "GUITooltip.h" #include "gui/CGUI.h" +#include "gui/ObjectBases/IGUIObject.h" #include "gui/ObjectTypes/CTooltip.h" +#include "lib/debug.h" #include "lib/timer.h" +#include "lib/types.h" #include "ps/CLogger.h" +#include + /* Tooltips: When holding the mouse stationary over an object for some amount of time, diff --git a/source/gui/ObjectBases/IGUIObject.cpp b/source/gui/ObjectBases/IGUIObject.cpp index 74ba6143dc..104eaedf47 100644 --- a/source/gui/ObjectBases/IGUIObject.cpp +++ b/source/gui/ObjectBases/IGUIObject.cpp @@ -26,6 +26,7 @@ #include "js/Conversions.h" #include "lib/debug.h" #include "lib/secure_crt.h" +#include "maths/Size2D.h" #include "maths/Vector2D.h" #include "ps/CLogger.h" #include "ps/Profiler2.h" @@ -46,6 +47,7 @@ #include #include #include +#include #include #include #include diff --git a/source/gui/ObjectTypes/CMiniMap.cpp b/source/gui/ObjectTypes/CMiniMap.cpp index 51d37688ae..845e9f967b 100644 --- a/source/gui/ObjectTypes/CMiniMap.cpp +++ b/source/gui/ObjectTypes/CMiniMap.cpp @@ -59,6 +59,7 @@ #include #include #include +#include #include #include #include diff --git a/source/gui/Scripting/GuiScriptConversions.cpp b/source/gui/Scripting/GuiScriptConversions.cpp index 6a221fbf56..38737f8846 100644 --- a/source/gui/Scripting/GuiScriptConversions.cpp +++ b/source/gui/Scripting/GuiScriptConversions.cpp @@ -17,22 +17,39 @@ #include "precompiled.h" +#include "scriptinterface/ScriptConversions.h" + +#include "gui/CGUISprite.h" #include "gui/ObjectBases/IGUIObject.h" #include "gui/Scripting/JSInterface_GUIProxy.h" #include "gui/SettingTypes/CGUIColor.h" #include "gui/SettingTypes/CGUIList.h" #include "gui/SettingTypes/CGUISeries.h" +#include "gui/SettingTypes/CGUIString.h" #include "gui/SettingTypes/EAlign.h" #include "gui/SettingTypes/EScrollOrientation.h" +#include "lib/code_generation.h" #include "lib/external_libraries/libsdl.h" +#include "maths/Rect.h" #include "maths/Size2D.h" #include "maths/Vector2D.h" #include "ps/CLogger.h" #include "ps/Hotkey.h" #include "scriptinterface/Object.h" -#include "scriptinterface/ScriptConversions.h" +#include "scriptinterface/ScriptExceptions.h" +#include "scriptinterface/ScriptRequest.h" +#include +#include +#include +#include +#include +#include +#include #include +#include + +struct CColor; #define SET(obj, name, value) STMT(JS::RootedValue v_(rq.cx); Script::ToJSVal(rq, &v_, (value)); JS_SetProperty(rq.cx, obj, (name), v_)) // ignore JS_SetProperty return value, because errors should be impossible diff --git a/source/gui/Scripting/JSInterface_CGUISize.cpp b/source/gui/Scripting/JSInterface_CGUISize.cpp index 640eef4b59..d56c7b715d 100644 --- a/source/gui/Scripting/JSInterface_CGUISize.cpp +++ b/source/gui/Scripting/JSInterface_CGUISize.cpp @@ -19,19 +19,36 @@ #include "JSInterface_CGUISize.h" -#include "ps/CStr.h" #include "gui/CGUI.h" #include "gui/CGUISetting.h" #include "gui/ObjectBases/IGUIObject.h" -#include "gui/SettingTypes/CGUISize.h" #include "gui/Scripting/JSInterface_GUISize.h" +#include "gui/SettingTypes/CGUISize.h" #include "lib/code_generation.h" +#include "lib/types.h" #include "maths/Rect.h" +#include "ps/CLogger.h" +#include "ps/CStr.h" #include "scriptinterface/Object.h" +#include "scriptinterface/ScriptConversions.h" #include "scriptinterface/ScriptInterface.h" -#include "scriptinterface/ScriptForward.h" +#include "scriptinterface/ScriptRequest.h" #include "scriptinterface/ScriptTypes.h" + #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +struct JSContext; namespace { diff --git a/source/gui/Scripting/JSInterface_GUIManager.cpp b/source/gui/Scripting/JSInterface_GUIManager.cpp index 3e92698905..4a663f4d20 100644 --- a/source/gui/Scripting/JSInterface_GUIManager.cpp +++ b/source/gui/Scripting/JSInterface_GUIManager.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -21,12 +21,16 @@ #include "gui/CGUI.h" #include "gui/GUIManager.h" -#include "gui/ObjectBases/IGUIObject.h" -#include "ps/GameSetup/Config.h" #include "ps/VideoMode.h" #include "scriptinterface/FunctionWrapper.h" #include "scriptinterface/ScriptInterface.h" #include "scriptinterface/StructuredClone.h" +#include "simulation2/system/ParamNode.h" +#include +#include +#include +#include +#include namespace JSI_GUIManager { diff --git a/source/gui/Scripting/JSInterface_GUIProxy.cpp b/source/gui/Scripting/JSInterface_GUIProxy.cpp index d1d5bb97b6..27b338de8b 100644 --- a/source/gui/Scripting/JSInterface_GUIProxy.cpp +++ b/source/gui/Scripting/JSInterface_GUIProxy.cpp @@ -17,6 +17,7 @@ #include "precompiled.h" +#include "JSInterface_GUIProxy.h" #include "JSInterface_GUIProxy_impl.h" #include "gui/ObjectBases/IGUIObject.h" @@ -26,6 +27,11 @@ #include "gui/ObjectTypes/CScrollPanel.h" #include "gui/ObjectTypes/CText.h" +#include + +class CGUIString; +class ScriptRequest; + // Called for every specialization - adds the common interface. template<> void JSI_GUIProxy::CreateFunctions(const ScriptRequest& rq, GUIProxyProps* cache) diff --git a/source/gui/Scripting/JSInterface_GUIProxy.h b/source/gui/Scripting/JSInterface_GUIProxy.h index ba490931c7..7dadd69fe3 100644 --- a/source/gui/Scripting/JSInterface_GUIProxy.h +++ b/source/gui/Scripting/JSInterface_GUIProxy.h @@ -19,16 +19,25 @@ #define INCLUDED_JSI_GUIPROXY #include "gui/ObjectBases/IGUIObject.h" +#include "lib/sysdep/compiler.h" #include "scriptinterface/ScriptExtraHeaders.h" +#include +#include +#include +#include +#include +#include +#include #include +#include #include +class JSFunction; +class JSObject; class ScriptInterface; class ScriptRequest; - -template -class JSI_GUIProxy; +namespace JS { class CallArgs; } // See JSI_GuiProxy below #if GCC_VERSION diff --git a/source/gui/Scripting/JSInterface_GUIProxy_impl.h b/source/gui/Scripting/JSInterface_GUIProxy_impl.h index 807efede58..ab4a341e32 100644 --- a/source/gui/Scripting/JSInterface_GUIProxy_impl.h +++ b/source/gui/Scripting/JSInterface_GUIProxy_impl.h @@ -20,16 +20,37 @@ #include "JSInterface_GUIProxy.h" #include "gui/CGUI.h" -#include "gui/CGUISetting.h" #include "gui/ObjectBases/IGUIObject.h" #include "ps/CLogger.h" +#include "ps/CStr.h" #include "scriptinterface/FunctionWrapper.h" #include "scriptinterface/Object.h" +#include "scriptinterface/ScriptConversions.h" #include "scriptinterface/ScriptExtraHeaders.h" #include "scriptinterface/ScriptRequest.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include +#include +#include + +class JSObject; +class ScriptInterface; #ifndef INCLUDED_JSI_GUIPROXY_IMP #define INCLUDED_JSI_GUIPROXY_IMP diff --git a/source/gui/Scripting/JSInterface_GUISize.cpp b/source/gui/Scripting/JSInterface_GUISize.cpp index d189cda503..4195910a88 100644 --- a/source/gui/Scripting/JSInterface_GUISize.cpp +++ b/source/gui/Scripting/JSInterface_GUISize.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -20,8 +20,20 @@ #include "JSInterface_GUISize.h" #include "ps/CStr.h" -#include "scriptinterface/ScriptInterface.h" #include "scriptinterface/Object.h" +#include "scriptinterface/ScriptConversions.h" +#include "scriptinterface/ScriptInterface.h" +#include "scriptinterface/ScriptRequest.h" + +#include +#include +#include +#include +#include +#include +#include + +struct JSContext; JSClass JSI_GUISize::JSI_class = { "GUISize", 0, &JSI_GUISize::JSI_classops diff --git a/source/gui/Scripting/JSInterface_GUISize.h b/source/gui/Scripting/JSInterface_GUISize.h index 1f0a13cbe2..0999d49a52 100644 --- a/source/gui/Scripting/JSInterface_GUISize.h +++ b/source/gui/Scripting/JSInterface_GUISize.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2021 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -18,10 +18,19 @@ #ifndef INCLUDED_JSI_GUISIZE #define INCLUDED_JSI_GUISIZE + +#include "lib/types.h" #include "ps/CStr.h" -#include "scriptinterface/ScriptForward.h" #include "scriptinterface/ScriptTypes.h" +#include + +class ScriptInterface; +namespace JS { class Value; } +struct JSClass; +struct JSClassOps; +struct JSContext; + namespace JSI_GUISize { extern JSClass JSI_class; diff --git a/source/gui/Scripting/ScriptFunctions.cpp b/source/gui/Scripting/ScriptFunctions.cpp index 18bb38a9cf..cbeb3808d7 100644 --- a/source/gui/Scripting/ScriptFunctions.cpp +++ b/source/gui/Scripting/ScriptFunctions.cpp @@ -39,7 +39,7 @@ #include "ps/scripting/JSInterface_VFS.h" #include "ps/scripting/JSInterface_VisualReplay.h" #include "renderer/scripting/JSInterface_Renderer.h" -#include "scriptinterface/ScriptInterface.h" +#include "scriptinterface/ScriptRequest.h" #include "simulation2/scripting/JSInterface_Simulation.h" #include "soundmanager/scripting/JSInterface_Sound.h" diff --git a/source/gui/SettingTypes/CGUIColor.h b/source/gui/SettingTypes/CGUIColor.h index b61646b4e2..8840e9429a 100644 --- a/source/gui/SettingTypes/CGUIColor.h +++ b/source/gui/SettingTypes/CGUIColor.h @@ -20,9 +20,9 @@ #include "graphics/Color.h" #include "lib/code_annotation.h" -#include "ps/CStrForward.h" class CGUI; +class CStr8; /** * Same as the CColor class, but this one can also parse colors predefined in the GUI page (such as "yellow"). diff --git a/source/gui/SettingTypes/CGUIHotkey.cpp b/source/gui/SettingTypes/CGUIHotkey.cpp index 8f4a97d38b..ef62ea301c 100644 --- a/source/gui/SettingTypes/CGUIHotkey.cpp +++ b/source/gui/SettingTypes/CGUIHotkey.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -23,6 +23,8 @@ #include "gui/ObjectBases/IGUIObject.h" #include "scriptinterface/ScriptConversions.h" +#include + bool CGUIHotkey::DoFromString(const CStrW& value) { m_Object.GetGUI().UnsetObjectHotkey(&m_Object, m_Setting); diff --git a/source/gui/SettingTypes/CGUIHotkey.h b/source/gui/SettingTypes/CGUIHotkey.h index 782a50f4b0..d0cf552e7c 100644 --- a/source/gui/SettingTypes/CGUIHotkey.h +++ b/source/gui/SettingTypes/CGUIHotkey.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,11 +19,12 @@ #define INCLUDED_CGUIHOTKEY #include "gui/CGUISetting.h" -#include "scriptinterface/ScriptForward.h" +#include "lib/code_annotation.h" #include "ps/CStr.h" +#include + class IGUIObject; -class ScriptRequest; /** * Manages a hotkey setting for a GUI object. diff --git a/source/gui/SettingTypes/CGUIList.h b/source/gui/SettingTypes/CGUIList.h index a46644c610..ef2b60177d 100644 --- a/source/gui/SettingTypes/CGUIList.h +++ b/source/gui/SettingTypes/CGUIList.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2019 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,6 +19,7 @@ #define INCLUDED_CGUILIST #include "gui/SettingTypes/CGUIString.h" +#include "lib/code_annotation.h" #include diff --git a/source/gui/SettingTypes/CGUISize.cpp b/source/gui/SettingTypes/CGUISize.cpp index a914e8b7bc..83c648446d 100644 --- a/source/gui/SettingTypes/CGUISize.cpp +++ b/source/gui/SettingTypes/CGUISize.cpp @@ -19,11 +19,8 @@ #include "CGUISize.h" -#include "gui/Scripting/JSInterface_GUISize.h" #include "ps/CLogger.h" #include "ps/CStr.h" -#include "scriptinterface/Object.h" -#include "scriptinterface/ScriptInterface.h" CGUISize::CGUISize() : pixel(), percent() diff --git a/source/gui/SettingTypes/CGUISize.h b/source/gui/SettingTypes/CGUISize.h index 244d0d1e08..2a82805617 100644 --- a/source/gui/SettingTypes/CGUISize.h +++ b/source/gui/SettingTypes/CGUISize.h @@ -19,8 +19,8 @@ #define INCLUDED_CGUISIZE #include "maths/Rect.h" -#include "ps/CStrForward.h" -#include "scriptinterface/ScriptForward.h" + +class CStr8; /** * This class represents a rectangle relative to a parent rectangle diff --git a/source/gui/SettingTypes/CGUIString.cpp b/source/gui/SettingTypes/CGUIString.cpp index 6edb5a6cda..0d6733cac0 100644 --- a/source/gui/SettingTypes/CGUIString.cpp +++ b/source/gui/SettingTypes/CGUIString.cpp @@ -21,13 +21,21 @@ #include "graphics/FontMetrics.h" #include "gui/CGUI.h" +#include "gui/CGUISprite.h" #include "gui/ObjectBases/IGUIObject.h" +#include "gui/SGUIIcon.h" +#include "lib/debug.h" +#include "lib/types.h" #include "lib/utf8.h" +#include "maths/Rect.h" #include "ps/CLogger.h" +#include "ps/CStrIntern.h" #include #include -#include +#include + +struct CGUIColor; // List of word delimiter bounds // The list contains ranges of word delimiters. The odd indexed chars are the start diff --git a/source/gui/SettingTypes/CGUIString.h b/source/gui/SettingTypes/CGUIString.h index ccb4d3a6bb..7f7770bb6d 100644 --- a/source/gui/SettingTypes/CGUIString.h +++ b/source/gui/SettingTypes/CGUIString.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2022 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,13 +19,18 @@ #define INCLUDED_CGUISTRING #include "gui/CGUIText.h" -#include "ps/CStrIntern.h" +#include "lib/code_annotation.h" +#include "maths/Size2D.h" +#include "ps/CStr.h" #include #include +#include #include class CGUI; +class CStrIntern; +class IGUIObject; /** * String class, substitute for CStr, but that parses diff --git a/source/gui/SettingTypes/MouseEventMask.cpp b/source/gui/SettingTypes/MouseEventMask.cpp index d6a51c1d3a..7bac7d6114 100644 --- a/source/gui/SettingTypes/MouseEventMask.cpp +++ b/source/gui/SettingTypes/MouseEventMask.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -20,19 +20,28 @@ #include "MouseEventMask.h" #include "gui/CGUISetting.h" +#include "lib/file/vfs/vfs.h" +#include "lib/file/vfs/vfs_path.h" +#include "lib/path.h" +#include "lib/status.h" #include "lib/tex/tex.h" +#include "lib/types.h" #include "maths/Rect.h" #include "maths/Vector2D.h" -#include "ps/Filesystem.h" -#include "ps/CacheLoader.h" #include "ps/CLogger.h" #include "ps/CStr.h" +#include "ps/CacheLoader.h" +#include "ps/Filesystem.h" #include "scriptinterface/ScriptConversions.h" +#include +#include +#include #include +#include +#include class IGUIObject; -class IGUISetting; namespace { diff --git a/source/gui/SettingTypes/MouseEventMask.h b/source/gui/SettingTypes/MouseEventMask.h index eff93f25cd..2e76e4fe00 100644 --- a/source/gui/SettingTypes/MouseEventMask.h +++ b/source/gui/SettingTypes/MouseEventMask.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2023 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,15 +19,15 @@ #define INCLUDED_GUI_MOUSE_EVENT_MASK #include "gui/CGUISetting.h" -#include "ps/CStr.h" +#include "lib/code_annotation.h" -#include +#include #include +#include class CRect; class CVector2D; class IGUIObject; -class ScriptRequest; /** * A custom shape that changes the object's "over-ability", and thus where one can click on it. diff --git a/source/gui/tests/test_CGUIText.h b/source/gui/tests/test_CGUIText.h index 9976c57d1d..06d589ee00 100644 --- a/source/gui/tests/test_CGUIText.h +++ b/source/gui/tests/test_CGUIText.h @@ -17,14 +17,20 @@ #include "lib/self_test.h" -#include "graphics/FontManager.h" #include "graphics/FontMetrics.h" #include "gui/CGUI.h" #include "gui/CGUIText.h" #include "gui/SettingTypes/CGUIString.h" #include "gui/SettingTypes/EAlign.h" #include "i18n/L10n.h" +#include "lib/file/file_system.h" +#include "lib/file/vfs/vfs.h" +#include "lib/path.h" +#include "maths/Size2D.h" +#include "maths/Vector2D.h" #include "ps/CLogger.h" +#include "ps/CStr.h" +#include "ps/CStrIntern.h" #include "ps/ConfigDB.h" #include "ps/Filesystem.h" #include "ps/ProfileViewer.h" @@ -35,7 +41,10 @@ #include #include +#include #include +#include +#include class TestCGUIText : public CxxTest::TestSuite { diff --git a/source/gui/tests/test_GUISetting.h b/source/gui/tests/test_GUISetting.h index d7ece91285..58a1a85b10 100644 --- a/source/gui/tests/test_GUISetting.h +++ b/source/gui/tests/test_GUISetting.h @@ -17,33 +17,37 @@ #include "lib/self_test.h" -#include "graphics/FontManager.h" -#include "graphics/FontMetrics.h" #include "gui/CGUI.h" #include "gui/CGUISetting.h" -#include "gui/CGUIText.h" #include "gui/ObjectBases/IGUIObject.h" -#include "gui/Scripting/JSInterface_CGUISize.h" -#include "gui/Scripting/JSInterface_GUIProxy.h" #include "gui/SettingTypes/CGUISize.h" -#include "gui/SettingTypes/CGUIString.h" #include "i18n/L10n.h" +#include "lib/file/file_system.h" +#include "lib/file/vfs/vfs.h" +#include "lib/path.h" +#include "maths/Rect.h" #include "ps/CLogger.h" +#include "ps/CStr.h" #include "ps/ConfigDB.h" #include "ps/Filesystem.h" #include "ps/ProfileViewer.h" #include "ps/VideoMode.h" #include "ps/XML/Xeromyces.h" #include "renderer/Renderer.h" -#include "scriptinterface/Object.h" -#include "scriptinterface/ScriptContext.h" #include "scriptinterface/ScriptInterface.h" #include "scriptinterface/ScriptRequest.h" -#include "scriptinterface/ModuleLoader.h" +#include +#include +#include +#include +#include +#include #include #include +#include #include +#include class TestGUISetting : public CxxTest::TestSuite { diff --git a/source/gui/tests/test_GuiManager.h b/source/gui/tests/test_GuiManager.h index a434e36a83..7f990c70de 100644 --- a/source/gui/tests/test_GuiManager.h +++ b/source/gui/tests/test_GuiManager.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2024 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -21,20 +21,38 @@ #include "gui/CGUI.h" #include "lib/external_libraries/libsdl.h" +#include "lib/file/file_system.h" +#include "lib/file/vfs/vfs.h" +#include "lib/input.h" +#include "lib/path.h" +#include "lib/sysdep/compiler.h" +#include "ps/CLogger.h" +#include "ps/CStr.h" #include "ps/ConfigDB.h" #include "ps/Filesystem.h" #include "ps/GameSetup/GameSetup.h" #include "ps/Hotkey.h" #include "ps/XML/Xeromyces.h" #include "scriptinterface/FunctionWrapper.h" -#include "scriptinterface/ScriptContext.h" -#include "scriptinterface/ScriptRequest.h" -#include "scriptinterface/ScriptInterface.h" -#include "scriptinterface/StructuredClone.h" #include "scriptinterface/Object.h" +#include "scriptinterface/ScriptConversions.h" +#include "scriptinterface/ScriptInterface.h" +#include "scriptinterface/ScriptRequest.h" +#include "scriptinterface/StructuredClone.h" +#include +#include +#include +#include +#include +#include #include #include +#include +#include +#include +#include +#include #if MSC_VERSION # pragma warning(push, 1) diff --git a/source/gui/tests/test_ParseString.h b/source/gui/tests/test_ParseString.h index 2cf37dd54d..6b0ff7028e 100644 --- a/source/gui/tests/test_ParseString.h +++ b/source/gui/tests/test_ParseString.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2021 Wildfire Games. +/* Copyright (C) 2025 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -17,9 +17,13 @@ #include "lib/self_test.h" -#include "gui/SettingTypes/CGUISize.h" #include "gui/CGUI.h" +#include "gui/SettingTypes/CGUISize.h" +#include "maths/Rect.h" +#include "maths/Size2D.h" +#include "maths/Vector2D.h" #include "ps/CLogger.h" +#include "ps/CStr.h" class TestGuiParseString : public CxxTest::TestSuite { diff --git a/source/scriptinterface/ScriptConversions.h b/source/scriptinterface/ScriptConversions.h index a0bd267760..85ddbd4afd 100644 --- a/source/scriptinterface/ScriptConversions.h +++ b/source/scriptinterface/ScriptConversions.h @@ -18,6 +18,7 @@ #ifndef INCLUDED_SCRIPTCONVERSIONS #define INCLUDED_SCRIPTCONVERSIONS +#include "lib/debug.h" #include "ScriptRequest.h" #include "ScriptExceptions.h" #include "ScriptExtraHeaders.h" // for typed arrays