45 lines
1.9 KiB
C++
45 lines
1.9 KiB
C++
// Lot LISIB - textes lisibles hors du panneau Settings (Docs/Migration/etat/ST/LISIB/LISIB-SPEC.md).
|
|
//
|
|
// Les SpinBox et les Text Box des menus du jeu gardent souvent le style par defaut du moteur : texte gris clair
|
|
// (InvertedForeground, 0.47 lineaire) en taille 12 sur un fond gris clair pour une SpinBox, texte herite clair sur un
|
|
// fond blanc a 80 % pour une Text Box (inventaire LISIB-T1-CART.md, 56 SpinBox et 16 Text Box). Ce sous-systeme leur
|
|
// pose, une fois par widget, un style lisible :
|
|
// - SpinBox : fond sombre, texte blanc avec contour noir, remplissage bleu, comme les reglages de
|
|
// ULPSettingsSubsystem (HardenSettingsControls), police d'au moins 16 et opacite de rendu 1 ;
|
|
// - Text Box dont la couleur de texte n'est pas fixee : texte noir opaque (comme STE-TXT), police d'au moins 14.
|
|
// Les widgets du panneau Settings (sous SettingsScrollBox) restent a ULPSettingsSubsystem. Aucun asset n'est modifie.
|
|
//
|
|
// Le style d'une Text Box passe par ULPWidgetStyleLibrary::SetEditableTextBoxStyle (ERR-088), jamais par
|
|
// UEditableTextBox::SetWidgetStyle sur une valeur temporaire.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Containers/Ticker.h"
|
|
#include "Subsystems/GameInstanceSubsystem.h"
|
|
#include "LPReadableTextSubsystem.generated.h"
|
|
|
|
class UWidget;
|
|
|
|
UCLASS()
|
|
class LIFEPLAY_API ULPReadableTextSubsystem : public UGameInstanceSubsystem
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
virtual void Initialize(FSubsystemCollectionBase& Collection) override;
|
|
virtual void Deinitialize() override;
|
|
|
|
private:
|
|
bool Tick(float DeltaTime);
|
|
void ApplyReadableStyles();
|
|
bool IsGameWidget(const UWidget* Widget) const;
|
|
|
|
FTSTicker::FDelegateHandle TickHandle;
|
|
float SinceLastPass = 0.f;
|
|
|
|
// Widgets deja traites : le style n'est pose qu'une fois (il vit ensuite dans les membres UMG).
|
|
TSet<TWeakObjectPtr<UWidget>> Done;
|
|
// Noms deja journalises (classe du menu + nom du widget), pour une ligne par widget d'asset.
|
|
TSet<FString> Logged;
|
|
};
|