Page 1 sur 1

images pour les gadgets

Publié : jeu. 17/août/2006 14:44
par Anonyme2
Pour faire suite à la demande de Dräc & Flype ici http://purebasic.forum-gratuit.com/viewtopic.php?t=5203
j'ai écrit quelques fonctions pour la gestions des images pour les ListiconGadget, Treegadget et Panelgadget

Reportez-vous à la doc et aux exemples

Je suis parti du principe de ne pas subclasser les fenêtres.

Toutes les images sont transformées en icône avant utilisation,
mais les images d'origine ne sont pas modifiées.
Il ne faut pas supprimer les images après utilisation des commandes.

On passe l'identifiant statique (et pas le Handle) comme paramètre

Si vous utilisez la même image, par exemple #image3 en changeant les paramètres
de transparence, toutes les images utilisées (par type de gadget) par le gadget
basées sur #image3 prendront les derniers paramètres de la dernière commande utilisée.

Il y a quelques limites, voir le fichier d'aide.

Les images utilisables sont celles chargées avec les commandes PB,
la transparence est gérée, avec une possibilité de choisir les paramètres
Avec les fichiers Jpg, on a pas toujours le résultat de transparence escompté
en particulier dans le cas de création d'un jpg à partir d'un png par exemple.
certaines couleurs sont modifiées même si on applique pas de compression
tout du moins avec PSP 9.

Il est possible de modifier les Case à cocher (commande SetCustomCheckBoxes()) en mettant
celles de son choix (à partir d'icônes, j'ai volontairement "interdit" les autres formats
pour les cases à cocher personnelles).
je vous ai fait plusieurs Case à cocher format icône XP 16x16 (c'est cadeau :D ) et j'ai aussi ajouté quelques icônes glanées sur le net

Pour toutes les images (XP et >), la couche alpha est supportées (API MS).

Le rendu des icônes XP est médiocre si on a pas les thèmes activés ou si l'OS est < XP

Le code est relativement long, les macros sont utilisées en interne, si vous voulez les exploiter, à vous de faire les tests qui évitent les crash

Il y a des commandes pour supprimer les images, mais les listicongadget ne retire pas l'espace réservé
de la 1ere colonnes (enfin je ne suis pas arrivé à le faire malgré des heures passées la-dessus).

Si vous utilisez la commande FreeGadget(), il faut utiliser immédiatement avant la commande FreeImage()
correspondante.

Je n'ai pas fait de librairie, juste des fonctions.

Le zip est ici http://denislabarre.free.fr/Divers/Func ... rsion1.zip

Aperçu :
Image

Voici les fonctions par nom

Code : Tout sélectionner

 GetColumnAlignment()
 GetHeaderImage()
 GetHeaderImageAlignment()
 GetitemImage()
 GetItemIndentation()
 ListIconGadgetDisplayMode()
 FreeGadgetImages()
 RemoveHeaderImage()
 RemoveItemImage()
 SetColumnAlignment()
 SetCustomCheckBoxes()
 SetHeaderImage()
 SetHeaderImageAlignment()
 SetitemImage()
 SetItemIndentation()
 SetImageSize()
 ShiftSubItem()

Publié : jeu. 17/août/2006 15:09
par Progi1984
Super beaulot !

Une idée : créer un treagdget mélange avec une listview !

Publié : jeu. 17/août/2006 15:21
par Anonyme2
Progi1984 a écrit :Super beaulot !

Une idée : créer un treagdget mélange avec une listview !
Merci :D

Je ne sais pas si c'est faisable facilement

Publié : jeu. 17/août/2006 15:36
par Flype
Merci denis, c cool.

Ca y est, PB4 te fais moins peur :wink:
Ta première production 2006 dis donc, çà se fête :D

Je vais regarder çà plus en détail...

Publié : jeu. 17/août/2006 15:36
par Anonyme2
Encore une précison de taille,

il ne faut pas utiliser l'ajout d'images des commandes purebasic, uniquement utiliser SetItemImage() et SetHeaderImage()

Publié : jeu. 17/août/2006 15:42
par Anonyme2
Flype a écrit :Merci denis, c cool.

Ca y est, PB4 te fais moins peur :wink:
Ta première production 2006 dis donc, çà se fête :D

Je vais regarder çà plus en détail...
Oui PB 4.00 me va bien :D , le code asm est beaucoup mieux que les versions précédantes.

Sur les macros, c'est bien mais ça ne rend pas forcément le code lisible, je me limite à des macros simples.

Publié : jeu. 17/août/2006 15:47
par Flype

Code : Tout sélectionner

Sur les macros, c'est bien mais ça ne rend pas forcément le code lisible, je me limite à des macros simples.
oui moi aussi.
je n'utilise les macros que si çà tiens en une ligne,
et en majuscule pour les distinguer !
De cette facon c'est bcp plus clair et çà permet d'avoir un retour
alors que sur 2 lignes c'est pas possible (et c'est normal, comme en C).

Code : Tout sélectionner

Macro NOMMACRO(x, y)
   ((x)+(y))
EndMacro

Publié : jeu. 24/août/2006 15:39
par Inf0Byt3
Tres bon idee. Merci beaucoup!

Publié : jeu. 24/août/2006 17:15
par Anonyme2
Inf0Byt3 a écrit :Tres bon idee. Merci beaucoup!
:D
Pour les dons (je ne prend que les euros), me contacter en MP :jesors: