Salut tous !

Je vous propose un petit d�fis de programmation, un probl�me qui ne n�cessite pas de produire de code pour �tre r�solu mais plut�t d'une id�e de m�canisme...

Contexte:
Je cherchais � faire coder une outil simple et rapide d'utilisation pour r�aliser des GUI en C++.

Je me suis rappel� du m�canisme pr�sent dans le moteur Unity3D. (Dans ce moteur, des scripts sont lu plusieurs fois par seconde pour rafra�chir le comportement du jeu dont la GUI.)

Par exemple:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
 if (GUI.Button(new Rect(10, 70, 50, 30), "Click"))
            Debug.Log("Clicked the button with text");
Ceci permet non seulement de cr�er un bouton, mais aussi d'y d�finir sa taille, position, son contenu (texte) et de savoir si on a cliqu� dessus. Le tout en une ligne de code, �a c'est bien pratique !
Pour faire cela, pas vraiment de myst�re; le moteur Unity3D peut pr�parer l'image en fonction des param�tres et regarder l'actuelle position de la souris pour savoir si on clique dessus.


Mais l� o� �a devient int�ressant, c'est avec les fonctions de GUI "dynamique et flexible" qui vont automatiquement s'adapter au contenu d'une boite.

Voyez plut�t:

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
GUILayout.BeginHorizontal("box");
if ( GUILayout.Button("I'm the first button") ) Debug.Log("Clicked");
if ( GUILayout.Button("I'm to the right") ) Debug.Log("Clicked");
GUILayout.EndHorizontal();
Ce code d�clare tout d'abord un nouveau champ horizontal puis y ins�re 2 boutons dont la taille devra automatiquement s'adapter suivant l'espace de la taille du champ actuel et de la taille des autres �l�ments (m�me ceux d�clar�s apr�s !).

La question est; comment le gestionnaire de GUI peut-il savoir si on a cliqu� sur le bouton de la ligne 2 alors que celui-ci ne conna�tra sa taille r�elle qu'en ligne 4, quand tout le contenu sera d�fini. Et par cons�quent, comment peut il renvoyer sur la m�me instruction si oui ou non on a bien cliqu� sur le bouton ?

Ma piste;
- Laisser passer une frame, et identifier les appels pour renvoyer la r�ponse � la prochaine frame. (mais comment les identifier sans instanciation !?)


Une id�e ?


PS admin:
ah je me suis peut �tre plant� de sous forum, je viens de voir celui l�;
http://www.developpez.net/forums/f14...x-video/unity/
Bien que le probl�me concerne le C++, les forumeur de unity comprendraient peut �tre mieux l'exemple fourni...