images pour les gadgets

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

images pour les gadgets

Message 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()
Dernière modification par Anonyme2 le jeu. 17/août/2006 15:19, modifié 2 fois.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Super beaulot !

Une idée : créer un treagdget mélange avec une listview !
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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...
Image
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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()
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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
Image
Inf0Byt3
Messages : 12
Inscription : mer. 07/juin/2006 23:16
Localisation : In the 4-th dimension :D
Contact :

Message par Inf0Byt3 »

Tres bon idee. Merci beaucoup!
Image
Unleash the power of your imagination >
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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:
Répondre