pdulvp.fr

Une image dans le panneau, placée à la souris has been fixed.

See more details at : https://github.com/pdulvp/pdcartes-barquette/issues/8

  • une image posée sur une carte dessinée qui porte un panneau vient à la place

de la couleur de fond de ce panneau, et non à la place de la carte: le
papier, le filet, le coin et ce que la carte porte se tracent par-dessus

  • elle se place dans l'aperçu de la carte choisie: glisser la déplace, la

molette la redimensionne, un double-clic la recadre, et « Retirer l'image »
rend au panneau sa couleur. La carte du jeu n'est refaite qu'au relâchement,
le tracé puis l'encodage d'une image par mouvement de souris rendant le
glissement poussif

  • l'image appartient à la carte et non au style: recipeFor() la rend à chaque

case que « Appliquer à tout », « Tout remplir » ou « Poser dans la case
choisie » redessinent, et la recette adoptée par l'onglet du jeu dessiné est
débarrassée de la sienne

  • PanelArt porte l'image, son type et sa place — un décalage et un facteur

d'échelle en part du panneau, et non en pixels, pour que le cadrage vaille
d'un rendu à l'autre; elle vit dans DrawnRecipe, rangée par case, et non
dans CardStyle, posé sur cinquante-trois cartes à la fois

  • cardPanelBox() publie le rectangle du panneau, que le dessin et l'aperçu

emploient tous deux; bloc des recettes en version 6

Une image dans le panneau, placée à la souris

<sub>2026-10-27-2155-une-image-dans-le-panneau-placee-a-la-souris.md — 2026-10-27 21:55</sub>

Poser une image sur une carte remplace aujourd'hui la carte entière. Demandé :
qu'une image posée sur une carte dessinée vienne à la place de la couleur
de fond de son panneau, la carte gardant son papier, son filet, son coin et ce
qu'elle porte ; et qu'on puisse ensuite déplacer et redimensionner l'image à
l'intérieur du panneau, à la souris, dans l'aperçu de la carte choisie.

Décisions

  • L'image vit dans la recette de la carte, et non dans son style. Une

DrawnRecipe est déjà rangée par case, et elle dit justement « de quoi
refaire cette carte-ci » ; un CardStyle, lui, est posé sur cinquante-trois
cartes à la fois. L'image traverse donc toute la chaîne de dessin sans qu'un
seul appel change : drawnFaceArt() la trouve dans la recette qu'on lui
donne.

  • Une image ne se répand jamais. « Appliquer à tout », « Garder pour la

suite » et « Tout remplir » posent un style sur plusieurs cartes : chacune y
garde l'image qu'elle avait, et la recette adoptée par l'autre onglet est
débarrassée de la sienne. Sans cette règle, le portrait du roi se
retrouverait sur les cinquante-deux autres cases.

  • La place de l'image est donnée en part du panneau, et non en pixels. Un

décalage et un facteur d'échelle, l'échelle valant un lorsque l'image
recouvre le panneau au plus juste. Une carte est rendue à la hauteur qu'on
demande : des pixels ne voudraient rien dire d'un rendu à l'autre, et le
cadrage tiendrait à la taille de l'image fournie.

  • L'image remplit le panneau, le reste se trace par-dessus. Le filet du

panneau, l'emblème des figures, les symboles des cartes chiffrées et le coin
restent tracés après elle, et l'image est rognée à l'arrondi du panneau.
C'est bien la couleur de fond qu'elle remplace, et rien d'autre.

  • Le dépôt vise le panneau de lui-même. Une image posée sur une carte

dessinée qui porte un panneau va dans ce panneau ; sur une carte sans
panneau, ou sur une case qui n'est pas dessinée, elle remplace la carte
entière comme auparavant. Il n'y a donc pas de geste nouveau à apprendre.

  • Le placement se fait dans l'aperçu compact, celui de la carte choisie.

Glisser déplace, la molette redimensionne, un double-clic recadre. L'aperçu
de l'onglet du jeu dessiné, lui, montre quatre cartes d'exemple et ne reçoit
rien : il n'y a pas de carte choisie à y placer.

  • La carte n'est redessinée qu'au relâchement. Chaque image de carte est

tracée puis encodée en PNG : le faire à chaque mouvement de souris rendrait
le glissement poussif. L'aperçu se repeint seul pendant le geste, et la
carte du jeu est refaite une fois, à la fin.

  • Le rectangle du panneau est publié par la cartothèque. L'aperçu doit

savoir où le panneau se trouve pour y rogner l'image et pour convertir un
mouvement de souris en décalage. Le calcul était enfoui dans le dessin ;
il sort dans cardPanelBox(), que le dessin emploie aussi — une seule
définition du panneau, et non deux qui dérivent l'une de l'autre.

  • Le bloc des recettes passe en version 6. Il porte l'image, son type et sa

place. Une recette plus ancienne n'a pas d'image, et son panneau garde sa
couleur.

Étapes

  1. [x] lib/CardArt.h, lib/CardArt.cpp — PanelArt et sa place dans

DrawnRecipe ; cardPanelBox() publié, et le dessin qui s'en sert ;
le panneau rempli de l'image, rognée à son arrondi.

  1. [x] lib/DrawnDeck.cpp — la recette passe son image au dessin.
  2. [x] lib/CardSet.cpp — bloc des recettes en version 6.
  3. [x] src/CardStyleEditor.cpp — l'aperçu compact devient une surface de

placement : glisser, molette, double-clic, et un bouton pour retirer
l'image.

  1. [x] src/AtelierWindow.cpp — le dépôt vise le panneau d'une carte

dessinée ; les trois chemins qui répandent un style gardent à chaque
carte son image.

  1. [x] src/HelpDialog.cpp — un paragraphe.
  2. [x] Bâtir en série, puis vérifier à l'écran et à l'image.
  3. [x] docs/plans/sumup.md, archivage du plan.

Vérifié

Bâti en série : cartotheque, pdcartes-barquette et pdcartes-rami
compilent et se lient sans avertissement.

Vérifié à l'image, cinq cartes rendues hors écran avec une image repérable
dans le panneau — bandes obliques, disque rouge au centre :

  • Cadrage par défaut : l'image recouvre le panneau au plus juste sur les cinq

cartes, rognée à l'arrondi du panneau, et le filet du panneau, la couronne,
les symboles, le bonnet du joker et le coin se tracent bien par-dessus.

  • Décalage d'un quart de panneau et échelle à 180 pour cent : l'image se

déplace et grossit dans le panneau, le rognage suivant le panneau et non
l'image.

  • Échelle à 40 pour cent : l'image devient une vignette, la couleur du

panneau reparaissant autour d'elle.

  • Panneau retiré : aucune image n'est tracée, les cartes sont celles de

toujours.

Aller-retour par le fichier, en version 6 du bloc des recettes : l'image
revient avec ses 5 722 octets, son type, son décalage, son échelle, et se
décode ; la recette relue est égale à celle qui a été écrite.

Vérifié hors écran sur l'éditeur compact, par des événements de souris
envoyés à l'aperçu : un glissement déplace l'image du panneau, la molette
l'agrandit — environ 1,15 par cran — et un double-clic rend le décalage à zéro
et l'échelle à un. La précision du geste tient à la taille de l'aperçu : le
panneau y mesure quelques dizaines de pixels, ce qui suffit à cadrer mais non
à ajuster finement ; un aperçu de placement plus grand serait l'étape
suivante, si l'usage le demande.

<sub>Filed by prel from the completed plans at commit time.</sub>