Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Les GUI en générales : Widgets non copiables ? Pourquoi ?  (Lu 3490 fois)

0 Membres et 1 Invité sur ce sujet

gaulois94

  • Sr. Member
  • ****
  • Messages: 259
    • Voir le profil
Les GUI en générales : Widgets non copiables ? Pourquoi ?
« 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 .

danman

  • Hero Member
  • *****
  • Messages: 1121
    • Voir le profil
    • E-mail
Re : Les GUI en générales : Widgets non copiables ? Pourquoi ?
« Réponse #1 le: Août 27, 2012, 02:43:59 am »
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. ;)
Pointilleur professionnel

gaulois94

  • Sr. Member
  • ****
  • Messages: 259
    • Voir le profil
Re : Les GUI en générales : Widgets non copiables ? Pourquoi ?
« Réponse #2 le: Août 27, 2012, 03:02:22 pm »
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).

danman

  • Hero Member
  • *****
  • Messages: 1121
    • Voir le profil
    • E-mail
Re : Les GUI en générales : Widgets non copiables ? Pourquoi ?
« Réponse #3 le: Août 28, 2012, 11:28:23 am »
Par exemple au niveau du comportement, que fais tu si tu copies un widget, tu copies ses enfants ?
Pointilleur professionnel

gaulois94

  • Sr. Member
  • ****
  • Messages: 259
    • Voir le profil
Re : Les GUI en générales : Widgets non copiables ? Pourquoi ?
« Réponse #4 le: Août 28, 2012, 03:04:11 pm »
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.

danman

  • Hero Member
  • *****
  • Messages: 1121
    • Voir le profil
    • E-mail
Re : Les GUI en générales : Widgets non copiables ? Pourquoi ?
« Réponse #5 le: Août 28, 2012, 08:07:55 pm »
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 ?
Pointilleur professionnel

minirop

  • Sr. Member
  • ****
  • Messages: 254
    • Voir le profil
    • http://dev.peyj.com
Re : Les GUI en générales : Widgets non copiables ? Pourquoi ?
« Réponse #6 le: Août 28, 2012, 10:48:23 pm »
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.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Les GUI en générales : Widgets non copiables ? Pourquoi ?
« Réponse #7 le: Août 28, 2012, 11:17:30 pm »
Citer
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 :)
Laurent Gomila - SFML developer