Bonjour à tous,
J'essaie de créer une GUI en C++ avec la SDL. Pour ça, j'ai créé une classe Widget de laquelle sont dérivés tous mes contrôles.
Dans les contrôles existants, on trouve notamment une classe FreeContainer, qui est un contrôle pouvant contenir d'autres contrôles.
Dans ma classe Widget, j'ai une fonction virtuelle "blit(surface)" qui permet de dessiner le contrôle sur une surface (en général, il s'agit de la surface du contrôle père).
Jusqu'ici tout va bien (du moins je crois).
Mais ce que j'ai essayé de faire, c'est ajouter une classe MainWindow, qui représente ma fenêtre principale. Comme il s'agit d'un contrôle visible qui peut contenir d'autres contrôles, je l'ai faite hériter de FreeContainer.
Mon problème (qui me fait penser qu'il y a une erreur dans ma logique de conception), c'est que pour cette classe (et uniquement celle-ci), la fonction "blit(surface)" n'a pas de sens. Quand on affiche la fenêtre principale, il n'est pas nécessaire de lui indiquer sur quelle surface elle doit se recopier...![]()
Pour résoudre mon problème, j'ai créé dans MainWindow une fonction "blit()" et j'ai redéfini la fonction "blit(surface)", qui ignore son paramètre et exécute simplement blit(). Mais cette solution, si elle fonctionne, ne me parait pas très propre
Qu'est-ce que vous en pensez ?
Merci pour vos lumières !![]()
Partager