Layercut 1.3c
Le Module Shortcut Transparent
Layercut est un module pour LiteStep basé sur le module shortcut2. Il permet
de faire de la vraie transparence avec les shortcut en utilisant l'alpha channel
des images png 32-bits.
Ce module ne fonctionne que sous Windows 2000/XP.
-=
Syl
=-
Sommaire
Historique
29/03/2002 - ver 1.3c
- Correction de l'Ultime bug du z-order ^_^
19/03/2002 - ver 1.3b
- Correction: quelques problèmes avec le z-order (merci à blkhawk pour l'astuce).
04/03/2002 - ver 1.3
- Ajout:
execution .
- Mise à zero de l'animation quand le shortcut est affiché/masqué.
- Les shortcuts qui n'ont pas de titre ne seront plus affiché dans le gestionnaire des taches.
28/02/2002 - ver 1.2b
- Correction: amélioration de la gestion de la seconde action.
27/02/2002 - ver 1.2a
- Ajout:
flags E et S (action Entrante et Sortante).
24/02/2002 - ver 1.2
- Changement dans la manière de gérer les images, cela prend désormais moins de mémoire si vous chargez la même image plusieurs fois a travers différents shortcuts.
- Suppression d'une optimisation (!!!), les shortcuts étaient chargés s'ils étaient visible au démarrage,
maintenant tout est chargé au démarrage, c'est plus facile à utiliser avec LSDynamic.
- Ajout: support de l'
animation .
- Ajout: documentation en francais.
- Correction: Il y avait des ralentissements avec LSDynamic lorsque la souris passait au dessus des shortcuts
- Correction:
ShortcutAlphaThreshold .
- Correction: Manière de créer les shortcuts (les shortcuts qui étaient sur le bureau étaient un peu au dessus des autres fenêtres...).
04/02/2002 - ver 1.0
Démarré le 03/02/2002.
Installation
Copiez Layercut.dll dans votre répertoire contenant vos modules et chargez le:
LoadModule "c:\LiteStep\Modules\Layercut.dll"
Si c:\LiteStep\Modules\ est votre répertoire contenant vos modules bien sure...
N'oubliez pas de ne pas charger shortcut2.dll, car c'est inutile...
Utilisation
Avantages:
- Shortcut avec de la vraie transparence
- l'alpha channel des shortcuts est activé pour qu'ils soient transparents au pixel près
- plus rapide avec LSDynamic
- shortcuts animés
- Prend moins de mémoire
Inconvénient:
- un peu plus lent que shortcut2
- le positionement en profondeur est différent par rapport à shortcut2
Couleur de la syntaxe:
La syntaxe est compatible avec celle de shortcut2. Vous pouvez en plus spécifier une valeur de transparence
pour le shortcut:
*shortcut
<caption>
<x-pos>
<y-pos>
<image-normal>
<image-hover>
<image-click>
#<group><flags>
a:<alpha-value>
<hover-sound>
<sound-click>
<action>
<alpha-value> est entre 0 (transparent) et 255 (opaque). par exemple,
a:128 est 50% transparent.
Pour plus d'information pour savoir comment fonctionne les shortcuts, allez voir la documentation
concernant shortcut2 dans le répertoire de documentation de LiteStep.
Avec une petite astuce, vous pouvez ajouter une autre action à votre shortcut quand vous cliquez dessus
avec le bouton droit de la souris. Pour que cela fonctionne, vous devez utiliser 2 bang !execute comme ceci:
*Shortcut "" 0 0 normal.bmp hover.bmp click.bmp !execute [cmd1][cmd2] !execute [cmd3][cmd4]
cmd1 et cmd2 vont être éxécuté avec le bouton gauche quand vous cliquerez sur le shortcut, et cmd3 et cmd4
seront éxécuté lorsque vous cliquerez avec le bouton droit.
Si le flag E est spécifié, la seconde action sera aussi éxécutée quand la souris sera au dessus du shortcut (action Entrante).
Si le flag S est spécifié, la seconde action sera aussi éxécutée quand la souris sortira du shortcut (action Sortante).
ATTENTION: cette syntaxe est obsolète mais fonctionne toujours. Vous devriez utiliser la syntaxe execution
Configuration
ShortcutDefaultAlpha <value>
Met une valeur de transparence par défaut pour tous les shortcuts.
ShortcutAlphaThreshold <value>
Specifie la tolérance lors de la création de la zone de test pour la souris. Cette valeur indique quelle valeur dans
l'alpha channel est considéré comme étant totalement transparente. La valeur par défaut est 0 (noir est transparent).
ShortcutNoLoadingOnStartup
Charge le shortcut uniquement lorsqu'il devient visible (donc tous les shortcuts ne sont pas chargés au démarrage, retour a la manière de shortcut2).
Bangs
!ShortcutGroupSetAlpha value groups
Change l'alpha pour un groupe de shortcuts.
Animation
L'image pour l'animation est basé sur le format d'image de CursorXP. Vous pouvez stocker
toutes les étapes d'animation dans un seul fichier, ensuite spécifiez la largeur et la hauteur pour
une image. Layercut calculera le nombre total d'image en fonctionne de la largeur et la hauteur
que vous aurez spécifiez.
Vous devez rajouter quelques définition dans le step.rc pour activer l'animation, ensuite remplacez juste
le nom de l'image par <animation-name>
dans la définition du shortcut.
<animation-name> :
... est le nom de l'animation. Remplacez l'image image d'un état dans la définition d'un shortcut avec
le nom de l'animation. Vous pouvez mettre une nimation pour l'état normal, souris au dessus ou cliqué.
image :
Quelle image va être utilisé pour l'animation. <image-name>
peut être une image bmp ou png.
size :
Spécifiez la largeur et la hauteur pour une seule image.
speed :
Spécifiez la vitesse en millisecondes lorsque Layercut va jouer la prochaine image.
La valeur par défaut est 100 ms.
flags :
Voici les différents flags:
O : force l'Opacité de l'animation (comme shortcut2).
L : animation joue indéfiniment (Loop).
F : l'animation se terminera (Finish) avant de commencer à jouer l'animation suivante.
P : l'animation commencera (Priorité) même si l'animation courante à le flag F (l'animation courante sera stoppée). Très utile pour l'état cliqué...
between :
Quand l'animation se joue indéfiniment, elle se joue entre la première image et la dernière.
Quand vous spécifiez un intervalle, Layercut tournera entre
<first-frame> et
<last-frame> . Par exemple si l'intervalle
est entre 10 et 30, Layercut jouera les image 0, 1, 2, 3, ..., 29 puis retournera à l'image 9.
Execution
Pour faciliter la lisibilité de la ligne de commande, utilisez cette configuration pour la commande.
Vous devez rajouter quelques définition dans le step.rc pour activer cette syntaxe, ensuite remplacez juste
la commande par <execution-name>
dans la définition du shortcut.
<execution-name> :
... est le nom de la macro de commande. Remplacez la commande du shortcut par le nom de l'execution.
left, right, in, out :
Vous pouvez spécifiez une commande pour le click gauche, le click droit ou bien quand la souris entre ou sort
du shortcut. Vous n'ètes pas obligé de spécifier une commande pour chaque état (si vous utilisez seulement le click droit,
oubliez left, in et out).
Exemples
Copiez les images png dans votre répertoire images, copiez layercut.rc dans votre
répertoire LiteStep (ou de votre thème), puis incluez le dans votre fichier step.rc.
Astuces
Vous n'ètes pas obligé de remplacer vos images bmp en png, Layercut fonctionne aussi avec des bmp
(mais vous ne pourrez pas utiliser de transparence par pixel, juste la transparence globale).
Pour créer une image png avec de l'alpha, il y a 2 moyen (avec Photoshop):
Vous pouvez créer une nouvelle image avec un fond transparent, puis dessiner une nouvelle image dessus
et l'enregistrer en tant que png.
Ou vous pouvez ajouter une nouvelle couche (channel), et dessiner une image en noir et blanc dedans,
où le noir est transparent et le blanc opaque. L'avantage de l'alpha channel est que vous pouvez
faire de la transparence au pixel près et utiliser les 256 nuances de gris pour faire de la transparence fluide
et des contours bien intégrés aux bureau, sans éffet d'escalier.
Vous pouvez aussi convertir des tga 32-bits en png 32-bits.
Pour faire une animation lorsque la souris s'e va du raccourci, utilisez le flag L avec between,
et le flag F, comme ca l'animation tournera dans l'intervalle spécifiez par bettwen et lorsque
la souris s'en ira, l'animation continuera de jouer jusqu'à la fin pour ensuite revenir à l'état normal.
Pour faire des shortcut animé, vous devriez utiliser AniUtil 1.3
provenant du site de CursorXP.
Bugs connus
Ce module ne fonctionne que sous Windows 2000/XP.
Ce module est plus lent que shortcut2, donc si vous l'utilisez comme shortcut2, c'est-à-dire
sans transparence, ne l'utilisez pas =)
Ce module a été fait car c'était trop lent de faire les shortcuts transparent avec LSDynamic,
et ce module est plus rapide pour la transparence qu'aucune qutre application ne pourrait le faire
(comme LSDynamic avec shortcut2). Utilisez l'option DynLayeredShortcut avec LSDynamic
sinon vous ne pourrez pas changez l'alpha des shortcuts.
Du aux grosses modifications apportées pour rendre les shortcuts transparents, quelques états
lors de la création des fenêtres ont du être changé, et quelque modification vont apparaitre pour
les shortcut qui sont au dessus des autres, et lors des changes d'état. J'ai éssayé de conserver
la manière dont les shortcuts étaient affichés, mais parfois c'étaient impossible.
Si vous utilisz des shortcuts animés pour l'état normal, et que celui-ci se joue à l'infini et qu'il
a un court delay ( < 100 ), cela prendra beaucoup de temps processeur, vous devriez augmenter un peu le delay.
Dans une FAQ de Microsoft, il est dit que lorsqu'une fenêtre est visible et que a un titre,
elle apparait dans le gestionnaire des taches de Windows.
Dans LSDynamic, pour recupérer la fenêtre, j'utilise une fonction qui se base sur les titres
des fenêtres, et lorsqu'un shortcut est visible, il apparait dans le gestionnaire des taches.
Et je n'y peux donc rien.
Remerciement
Merci à l'équipe LSdev de m'avoir laissez utilisé les sources de shortcut2 pour faire ce module.
Merci à xnowfall (beta-testeur officiel ;-) )
Merci à NeoRamasay pour m'avoir laissé utiliser des images de 3D Crystal Ex pour illustrer Layercut.
Merci encore à xnowfall pour l'example avec le logo LiteStep.
Contact
Si vous avez un problème, que vous voulez une nouvelle option, que vous trouvez un bug, que vous voulez les sources,
mailez moi.
-=
Syl
=-
|