Files
ZMMO/Source/ZMMO/Data/UI/UIStyleRow.h
Mateus Rodrigues 6a6a28a086 refactor: prefixo ZMMO -> Zeus em classes/módulos C++ do cliente
- Renomeia ~50 classes UCLASS/USTRUCT/UENUM/UINTERFACE pra Zeus*
  (AZeusGameMode, AZeusCharacter, UZeusGameInstance, IZeusEntityInterface,
  UZeusWorldSubsystem, FZeusEntitySnapshot, etc.)
- Encurta AZMMOPlayerCharacter -> AZeusCharacter
- Renomeia módulos satélite ZMMOAttributes -> ZeusAttributes e
  ZMMOJobs -> ZeusJobs (pasta + .Build.cs + .uproject)
- Mantém módulo principal ZMMO (renomeia depois quando jogo ganhar nome)
- DefaultEngine.ini: ActiveClassRedirects ZMMOX -> ZeusX (preserva BPs/assets)
- DefaultGame.ini: sections atualizadas pra ZeusThemeSubsystem/ZeusPlayerState
- Category="ZMMO|..." -> "Zeus|..." em UPROPERTYs
- Preserva LogZMMO, ZMMO_API, /Script/ZMMO., /Game/ZMMO/, classes Target

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 17:24:38 -03:00

97 lines
3.1 KiB
C

#pragma once
#include "CoreMinimal.h"
#include "Engine/DataTable.h"
#include "UIStyleTypes.h"
#include "UIStyleTokens.h"
#include "UIStyleRow.generated.h"
/**
* Struct raiz que agrega todos os tokens de estilo de um tema.
*
* Adicionar membros aqui (fase 2/3) é mudança aditiva e segura para a
* DataTable existente — mas, ao alterar este struct em produção, fazer
* backup de DT_UI_Styles (UHT invalida rows serializadas se a coluna não
* preservar valores). Ver ARQUITETURA.md / docs Epic sobre DataTable.
*/
USTRUCT(BlueprintType)
struct ZMMO_API FUIStyle
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStylePalette Palette;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyleSemantic Semantic;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyleText Text;
/**
* Categorias tipográficas nomeadas (data-driven). O autor define as
* chaves aqui no DT_UI_Styles ("Title", "Section", "Body", "Label",
* "Dim", ou customizadas); o UUICommonText_Base escolhe pelo nome
* (dropdown populado a partir destas chaves — sem enum fixo em C++).
*/
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
TMap<FName, FUITextStyle> TextRoles;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyleButton Button;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStylePanel Panel;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyleBorders Borders;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyleProgressBar ProgressBar;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyleTooltip Tooltip;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyleSpinner Spinner;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyleCheckBox CheckBox;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyleInput Input;
/**
* Fundo de tela cheia do front-end (ex.: Boot/Login). Brush data-driven:
* a tela aplica no seu Border_Bg via RefreshUIStyle — nunca hard-ref no
* WBP (ARQUITETURA.md §5). Preenchido em DT_UI_Styles.
*/
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FSlateBrush ScreenBackground;
};
/**
* Linha de DT_UI_Styles. O Row Name é o ThemeId (ex.: "Default", "RPG"),
* espelhando DT_ThemeCalendar e ThemeRegistry — assim a camada de estilo
* é consumidora do ThemeId já resolvido pelo UZeusThemeSubsystem.
*/
USTRUCT(BlueprintType)
struct ZMMO_API FUIStyleRow : public FTableRowBase
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FText DisplayName;
/** Validação tipada de design-time; runtime resolve por ThemeId/Row Name. */
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
EUITheme Theme = EUITheme::None;
/** Ponte para o ThemeId resolvido pelo UZeusThemeSubsystem. */
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FName ThemeId;
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "UI Style")
FUIStyle Style;
};