Forum de la communauté SFML
Aide => Général => Discussion démarrée par: gaulois94 le Août 27, 2012, 12:19:44 am
-
Bonsoirs,
voila je me pose une question, surement idiot pour vous mais pas pour moi : pourquoi vous mettez (dans les GUI que j'ai vu) vos Widgets en nonCopiable ? Je fais ma GUI en ce moment (ouai je suis lent à la faire, cela fait un moment x) ) et j'arrive bien à copier tout les Widgets que j'utilises jusqu'à présent. Alors pourquoi les mettre en non copiables ? Merci d'avance, cela m'aidera à construire la mienne beaucoup mieux ;) .
merci d'avance :D .
-
C'est une question de sémantique, un widget peut ne pas être copiable parce que le design ne le prévoit pas, de la même manière que les sockets ou les fenêtres sont non copiables.
Une GUI prend du temps a réaliser, et encore plus de temps a maintenir de toute façon. ;)
-
Je disais ça car je vois, par exemple dans sfgui, que TOUT les Widgets sont non copiables, je me demandais simplement pourquoi :) . Aprèx, je suis conscient que CERTAINS widgets ne peuvent être copiable (un Layout par exemple, quoi que là encore cela ce discute).
-
Par exemple au niveau du comportement, que fais tu si tu copies un widget, tu copies ses enfants ?
-
Je réinitialise le parent (parent = NULL) et il n'a plus aucun enfant. J'estime que le parent et les enfants ne font pas parties du Widgets.
-
c'est une des solutions mais elle n'est pas logique, aucune n'est logique.
Si tu as un widget composite a coté, tu es sensé copier ses enfants, comment vas tu gérer la mémoire alors ?
-
c'est le coup du "entité VS valeur".
Si tes widgets sont copiables, tu dois aussi redéfinir les operateurs +, -, *, /, ==, <, etc. Et tu vois que c'est impossible/illogique.
-
Si tes widgets sont copiables, tu dois aussi redéfinir les operateurs +, -, *, /, ==, <, etc.
Faut pas exagérer non plus ;)
Le minimum syndical c'est tout ce qui touche à la copie : constructeur par copie, opérateur =, et destructeur. Le reste, ça dépend de ce que représente la classe.
En ce qui concerne la question initiale, personnellement je n'ai pas d'avis. Je vois bien quelques raisons mais rien de bien insurmontable. Donc si je devais faire une bibliothèque de GUI je partirais sans a priori. Si des widgets copiables ont du sens et ne posent pas de problème technique, alors pourquoi pas. Et s'il y a un problème, alors rien de tel que de tomber dessus pour bien s'en rendre compte :)