Table des matières

La gestion du thème du client

Le système de préférences géré par le Global Settings (res://autoloads/settings.gd) intègre la gestion du thème qui définit les différents éléments d’affichage.

Les paramètres sont définis par le script res:data_definition/settings_preset.gd et les paramètres par défaut sont stockés dans res:data/settings/settings_default.tres.

Les icônes du thème

Les icônes sont définies dans la sous section GuiIcons, dans la section Theme dédiée au thème dans les presets (ceux par défault créé à l’origine sont créés à partir de la Resource SettingsPreset situé à res://data/settings/settings_default.tres

Les éléments à indiquer sont:

Avec ces informations, le Global GuiMedia(res://autoloads/gui_media.gd) va aller chercher dans le fichier les appels qui lui sont faits depuis le code pour indiquer la bonne icône d’interface pour le thème choisi.

L’ordre dans lequel les icônes sont disposées est crucial, car le système ira les chercher dans l’ordre indiqué par l’enum GuiMedia.Icon. C’est ce qui permet pour les appels depuis les nodes Control de simplement écrire :

Button.icon = GuiMedia.get_gui_icon(GuiIcon.Icon.GO_LEFT)

pour obtenir la flêche indiquant vers la gauche.

Les polices de caractère

La police par défaut est NotoSans, pour permettre l’affichage aisée d’un maximum de langues. Seuls les éléments de Display sont en police khaganat.ttf (en cours de développement par Yann).

Comme il s’agit d’une police variable, pour diférencier l’engraissement et la largeur des diférentes polices dérivées (enregistrées en .tres dans res://data/gui/fonts), voici les correspondances utilisées dans les variations définies pour NotoSans:

Les Theme Properties pour les Controls

Les différentes Theme Properties des éléments ne sont pas toujours simples à visualiser/comprendre. Donc quelques notes pour aider à faire la grille de correspondance entre les Settings et le thème Godot en arrière-plan (réalisé dans res:autoloads/settings.gd avec la méthode apply_theme_settings() depuis le dictionnaire qu’elle contient color_attribution_list.

PanelContainer - Theme Properties

StyleBox

Button - Theme Properties

StyleBox

On peut épingler une des StyleBox qui sera alors parente de toutes les autres : Cf.Documentation Godot.

Font

Font Size

Color (texte)

Color (icône)

Icon

Constants

Label - Theme Properties

Font

Font Size

Color

Constants