Bonjour,
Est-il possible, avec SWT, de faire un programme à la winamp, c'est à dire sans décoration, et générer tous les éléments comme étant des bitmaps ?
Et surtout est-ce portable à l'identique sous linux ?
Merci pour les réponses![]()
Bonjour,
Est-il possible, avec SWT, de faire un programme à la winamp, c'est à dire sans décoration, et générer tous les éléments comme étant des bitmaps ?
Et surtout est-ce portable à l'identique sous linux ?
Merci pour les réponses![]()
Il faut regarder du côté de la classe Shell.
La surface (forme) de la fenêtre qui doit s'afficher est controlée en paramétrant la région du Shell. Une région peut être une collection de polygones dans le repère du système (les coordonnées x - y)
Une region peut donc être complexe :
Ensuite, lors d'une création d'une Window, il faut tout dessiner (avec un Listener pour l'event SWT.Paint)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Shell shell = new Shell(null, SWT.NO_TRIM); Region region = new Region(); region.add(new Rectangle(0,0,400,600)); ... shell.setRegion(region);
Bref, c'est pas simple, mais c'est possible...
Mais l'intérêt de SWT n'est-il pas de coller au plus près à la configuration de l'OS (puisque les widgets sont récupérés nativement...) ?
Salut et merci pour la réponse
Que veux-tu dire par ta question ? En effet, l'avantage de SWT est pour moi sa rapidité d'execution en comparaison a SWING, et surtout, le fait qu'il soit portable et écrit en Java.
Pour réaliser ce projet, je suis parti sur l'option GTK+. Mais je ne suis pas aussi à l'aise en C/C++, que je ne le suis en Java.
De plus, il y a des API que je suis habitué à utiliser sous Java, donc mon choix s'oriente naturellement vers Java pour la réalisation du projet, et SWT correspond le mieux à mes attentes !
Je testerais ta solution, ça a l'air interessant ! Réaliser une interface skinnable n'est pas la chose la plus facile à faire sur terre
A+
ca n'a peut etre rien a voir, mais pour avoir le choix de different style d'affichage utilisable sur la même application. Je te conseil de te renseigner sur le design pattern abstract factory.
de plus je doute que SWT soit le mieu adapter a ce genre de comportement. car les widgets ne sont pas heritable et sont natives de l'OS
Niveau organisation des classes et patterns, je pense que j'ai les idées claires; c'est juste au niveau de l'implémentation que je me pose des questions, car je ne voudrais pas commencer des développements lourds pour me rendre compte que je suis limité par l'interface graphique..
Pensez-vous que ce n'est pas possible sous SWT de faire un programme comme Winamp par exemple ?
Personellement je trouve SWT limité et trés lourd à dévelloper(pas de thread géré par l'API, pas de module tout fait, pas d'héritage des widgets, mauvaise utilisation de l'objet(radio bouton, check box, fleche, tous la meme class Button...)), mais ce n'est que mon point de vue.
Quand à la portabilité, effectivement ça l'est, à condition d'installer tout les librairies nécessaires.... (donc tout dépend de la définition que l'on a de la portabilité)
Si si c'est possible.
Même avec une appli RCP.
Il y a d'ailleurs un chapitre dans le bouquin "Eclipse Rich Client Platform : Designing, Coding and packaging Java applications"
Ce que je voulais dire avec ma question, c'est qu'en général, pour une appli, on choisit SWT pour coller au mieux à l'OS. Cela inclut également le look&feel.
Maintenant rien n'empèche de vouloir faire une appli à la WinAmp. Mais il faut faire attention à l'architecture de l'appli pour que le skin soit facilement changeable. Bref de bonnes heures de dév en perspective![]()
Partager