GNT sans publicité, site mobile, fonctionnalitées exclusives...

Interface Utilisateur Google Talk

Le
Cyrille Szymanski
Bonjour à tous,

je cherche à faire un peu de reverse engineering sur GoogleTalk dont je
trouve l'interface utilisateur de toute beauté. J'ai déjà tenté plusieurs
fois de créer mes propres contrôles dessinés main, mais j'ai vite
abandonné tellement c'est fastidieux. Peut-être que je m'y prenais mal

Quel est l'état de l'art pour faire ce genre de chose aujourd'hui sans se
casser les dents ?



Quelques infos sur GoogleTalk :

A part l'utilisation de RICHED20.DLL, je n'ai pas trouvé grand chose de
spécial. L'application est composée d'un seul fichier googletalk.exe

Les bitmaps représentant les contrôles dans tous leurs états (normal,
appuyé, rollover) sont en resource. En resource aussi les boîtes de
dialogue qui s'affichent sans thème particulier. Une exception : la
fenêtre de login. Les champs de saisie utilisent le style ES_LEFT |
ES_PASSWORD | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER |
WS_TABSTOP ce qui n'est pas choquant.

La manifest indique qu'il faut utiliser les Common Controls version 6.

les contrôles ont l'air plutôt standard. Les noms de classe ne trahissent
pas grand chose : "ChatTitle", "Chat View" "Chat Link Bar", "Contact List
View", à part "RichEdit20W" bien sûr

Conclusion : c'est apparemment tout fait à la main. Ouille la galère !
Pour moi ça représente un travail énorme. Il doit bien y avoir une
solution plus simple non ?

Avez-vous une idée de la façon dont cette appli a été programmée ?


Merci.
--
Cyrille Szymanski
Lire les 12 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Bacelar
Le #9791301
Le reverse engineering n'est pas autorisé en Europe et n'est toléré que pour
des motifs de compatibilité si le produit retro engineeré a plus de 5 ans.

(A moins que la législation ait changé récemment ?)
--
Paul Bacelar

"Cyrille Szymanski" news:
Bonjour à tous,

je cherche à faire un peu de reverse engineering sur GoogleTalk dont je
trouve l'interface utilisateur de toute beauté. J'ai déjà tenté plusieurs
fois de créer mes propres contrôles dessinés main, mais j'ai vite
abandonné tellement c'est fastidieux. Peut-être que je m'y prenais mal...

Quel est l'état de l'art pour faire ce genre de chose aujourd'hui sans se
casser les dents ?



Quelques infos sur GoogleTalk :

A part l'utilisation de RICHED20.DLL, je n'ai pas trouvé grand chose de
spécial. L'application est composée d'un seul fichier googletalk.exe

Les bitmaps représentant les contrôles dans tous leurs états (normal,
appuyé, rollover...) sont en resource. En resource aussi les boîtes de
dialogue qui s'affichent sans thème particulier. Une exception : la
fenêtre de login. Les champs de saisie utilisent le style ES_LEFT |
ES_PASSWORD | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER |
WS_TABSTOP ce qui n'est pas choquant.

La manifest indique qu'il faut utiliser les Common Controls version 6.

les contrôles ont l'air plutôt standard. Les noms de classe ne trahissent
pas grand chose : "ChatTitle", "Chat View" "Chat Link Bar", "Contact List
View", à part "RichEdit20W" bien sûr...

Conclusion : c'est apparemment tout fait à la main. Ouille la galère !
Pour moi ça représente un travail énorme. Il doit bien y avoir une
solution plus simple non ?

Avez-vous une idée de la façon dont cette appli a été programmée ?


Merci.
--
Cyrille Szymanski


Arnold McDonald \(AMcD\)
Le #9791291
>Conclusion : c'est apparemment tout fait à la main. Ouille la galère !
Pour moi ça représente un travail énorme. Il doit bien y avoir une
solution plus simple non ?



Ben quand tu veux faire du perso, il n'y a pas 150 solutions, reécrire tes
propres composants à la main ! Détourner ou sous-classer les composants
Windows, c'est une perte de temps, tu vas tomber sur 50 cas particuliers,
des incompatibilités entre systèmes d'exploitation, DLLs système installées,
etc.

De plus les composants Windows sont souvent très lourds, truffés de messages
dont tu n'as que faire et ainsi de suite. Qui plus est, à la base, dès que
tu veux un truc original, ils ne sont pas prévus pour... Tu as bien plus
vite fait de créer les tiens ! Pour cela, le truc le plus rapide et
classique est de passer par des bitmaps bien sûr, redessiner les contrôles à
chaque WM_PAINT ça peut-être très lourd en overhead. Pour les trucs pénibles
ou compliqués, je te conseille vivement le double-buffering d'ailleurs...

Ya V. Burel qui a passé pas mal de temps à faire les siens de composants, il
pourra te donner des tuyaux, mais en gros, c'est du boulot, beaucoup de
boulot. Un simple contrôle bouton perso, avec gestion du bitmap dessus,
différenes fontes, quelques effets d'ombres, différents états, etc, t'as
vite tes 1.000-1.500 lignes de C.


--
Arnold McDonald (AMcD) - Help #15 /2006

http://arnold.mcdonald.free.fr/
Remi THOMAS
Le #9791281
"Cyrille Szymanski"
Bonjour à tous,

je cherche à faire un peu de reverse engineering sur GoogleTalk dont je
trouve l'interface utilisateur de toute beauté. J'ai déjà tenté plusieurs
fois de créer mes propres contrôles dessinés main, mais j'ai vite
abandonné tellement c'est fastidieux. Peut-être que je m'y prenais mal...

Quel est l'état de l'art pour faire ce genre de chose aujourd'hui sans se
casser les dents ?





Bonjour,

C'est effectivement assez long à faire.
Pourquoi ne pas le faire en flash?
http://www.macromedia.com/devnet/fl...story.html
http://www.globfx.com/

L'avenir serait WinFX ?

Rémi
Bertrand Lenoir-Welter
Le #9791271
Arnold McDonald (AMcD) :

Un simple contrôle bouton perso, avec gestion du bitmap dessus,
différenes fontes, quelques effets d'ombres, différents états, etc, t'as
vite tes 1.000-1.500 lignes de C.



Hmm. A mon avis, on passe plus de temps à dessiner les bitmaps des
différents états qu'à en programmer la gestion. Et si c'est du graphisme
vectoriel, genre les boutons grandissent en même temps que la fenêtre,
avec changement de taille selon la résolution pour pas faire de trop
petits boutons, etc., alors là oui ça devient vraiment galère.
Arnold McDonald \(AMcD\)
Le #9791261
Bertrand Lenoir-Welter wrote:

Hmm. A mon avis, on passe plus de temps à dessiner les bitmaps des
différents états qu'à en programmer la gestion.



Oui, bien sûr, la gestion "basique" n'est pas compliquée. Dans ma tête, je
pensais par exemple au custom des barres de titres, au redimensionnements,
aux correspondances en fonction de la taille de texte du système de
l'utilisateur, etc. C'est cela qui prend un temps considérable et qui fait
enfler ton nombre de lignes. En théorie, il faut que tes composants se
comportent comme ceux de Windows, au moins dans les grandes lignes. Parce
qu'après, niveau logique, c'est évidemment simple, quelques messages à
prendre en compte seulement, ceux que tu as uniquement besoin d'ailleurs
(l'avantage de coder ses composants persos).

Sinon, on a oublié quelques liens.

Dand les bouquins, il y a l'inévitable Petzold, chapitre 8 dans ma version,
9 dans la 5e, où il montre les bases de la programmation de fenêtres enfants
personnalisées.

On trouve pas mal de tutos sur le Web, beaucoup de daubes, mais certains
très très bien faits, en voici un d'excellent amha car simple et complet :

http://www.catch22.net/tuts/custctrl.asp

D'ailleurs, le site en entier est excellent.

Dans le MSDN on trouve aussi des références sur le custom à la Microsoft en
utilisant custom draw, qui permet, à partir de certaines versions de Windows
(vaut d'ailleurs mieux avoir XP) de customiser l'apparence de certains
contrôles. C'est assez lourd mais bon, ça peut suffire à certains.

Rappelons que pour des modifs simples, on peut aussi sous-classer un
contrôle tout simplement. Perso, pour de petits trucs, je fais encore plus
simple, j'utilise un contrôle static dont je gère le dessin en ownerdraw via
le message WM_DRAWITEM.

Bref, ce ne sont pas les techniques qui manquent :-).

--
Arnold McDonald (AMcD) - Help #16 /2006

http://arnold.mcdonald.free.fr/
Publicité
Suivre les réponses
Poster une réponse
Anonyme