Animer le desktop

22:31 modifié dans API AppKit #1
Bonjour à  tous,

Je cherche à  animer les bureau.
Késako?
Et bien, en gros, j'aimerai par exemple passer d'un fond d'écran à  un autre comme le permet déjà  les préférences système, avec par exemple un fade entre les 2 fonds d'écran.
J'aimerai savoir comment demander ça au desktop, et aussi obtenir des effets supplémentaires comme la transition "Cube".

Je parle donc simplement du fond d'écran, les fichiers eux ne doivent pas bouger.

Une piste?  ;)

Réponses

  • schlumschlum Membre
    octobre 2009 modifié #2
    On peut passer un économiseur d'écran en fond d'écran si tu veux... c'est assez fun (et ça prend pas tant de CPU que ça...) ^^

    /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine -background
  • 22:31 modifié #3
    Hmm c'est vrai que j'avais oublié cette piste que je connaissais.
    Mais j'ai peur d'utiliser ça  ;D Bon un simple QTZ qu'on configure en fonction des fonds d'écran que je veux, c'est pas compliqué à  faire. Mais étant donné que l'app sera distribuée comme un wallpapers-manager, j'ai peur que des gens râlent à  cause de la technique employée pour changer de fond d'écran toutes les X minutes.

    Par contre, dis moi si je me trompe, mais je peux toujours envoyer un .qtz configurable au moment de la transition entre 2 wallpaper. Image-in, image-out, et un fade entre les 2. Une fois l'animation terminée je repasse le wallpaper en mode "normal" (sans screensaver), avec le nouveau wallpaper.
  • schlumschlum Membre
    22:31 modifié #4
    C'est en tout cas à  ma connaissance le seul moyen d'avoir un fond d'écran animé...
  • AliGatorAliGator Membre, Modérateur
    22:31 modifié #5
    Il y a une autre solution (mais que je n'ai pas essayée) : faire une fenêtre qui prend tout l'écran, sans barre de titre ni bordure ni ombre, et avec un windowLevel qui soit juste au niveau du deskop pour qu'elle s'affiche en dessous de toutes les fenêtres des applications mais tout de même au dessus du bureau.
    En espérant qu'il existe un niveau intermédiaire au dessus du fond d'écran du bureau mais en dessous des icônes du Finder pour y placer ta fenêtre le temps de lui mettre l'ancien fond d'écran en fond et d'animer ce fond puis de retirer la fenêtre.
  • schlumschlum Membre
    22:31 modifié #6
    dans 1254569901:

    Il y a une autre solution (mais que je n'ai pas essayée) : faire une fenêtre qui prend tout l'écran, sans barre de titre ni bordure ni ombre, et avec un windowLevel qui soit juste au niveau du deskop pour qu'elle s'affiche en dessous de toutes les fenêtres des applications mais tout de même au dessus du bureau.
    En espérant qu'il existe un niveau intermédiaire au dessus du fond d'écran du bureau mais en dessous des icônes du Finder pour y placer ta fenêtre le temps de lui mettre l'ancien fond d'écran en fond et d'animer ce fond puis de retirer la fenêtre.


    J'y ai pensé, mais je ne pense pas qu'un niveau entre le fond d'écran et les icônes existe (de manière documentée du moins)... Cela dit, c'est probablement la méthode utilisée par le "-background" de la ligne donnée ci-dessus puisque exposé " bouge " également l'animation dans certains cas.
  • octobre 2009 modifié #7
    ça aussi ça n'est pas con, et je vois exactement ce que tu veux dire.
    Le problème qui se posera dans ta solution, c'est que si l'utilisateur choisi une transition de type Cube, il verra tout de suite le background qu'il avait mis par défaut dans les préférences système. Hé oui, vu que lors de la transition il y a des espaces vides qui sont sensés être noir comme lorsque vous changez de session par voie rapide. Donc on verra tout de suite le côté "fake".

    Je resterai plus sur la solution d'un QTZ, qui n'est pas plus chiante.
    Mais de toute façon je testerai les 2 solutions  ;)
  • 22:31 modifié #8
    dans 1254571290:

    dans 1254569901:

    Il y a une autre solution (mais que je n'ai pas essayée) : faire une fenêtre qui prend tout l'écran, sans barre de titre ni bordure ni ombre, et avec un windowLevel qui soit juste au niveau du deskop pour qu'elle s'affiche en dessous de toutes les fenêtres des applications mais tout de même au dessus du bureau.
    En espérant qu'il existe un niveau intermédiaire au dessus du fond d'écran du bureau mais en dessous des icônes du Finder pour y placer ta fenêtre le temps de lui mettre l'ancien fond d'écran en fond et d'animer ce fond puis de retirer la fenêtre.


    J'y ai pensé, mais je ne pense pas qu'un niveau entre le fond d'écran et les icônes existe (de manière documentée du moins)... Cela dit, c'est probablement la méthode utilisée par le "-background" de la ligne donnée ci-dessus puisque exposé " bouge " également l'animation dans certains cas.


    Ce niveau existe bel et bien. Tu peux passer derrière les icônes du bureau mais rester devant le wallpaper :
    <br />[myWindow setLevel:kCGDesktopWindowLevel+1];<br />
    
  • schlumschlum Membre
    22:31 modifié #9
    Pour les effets cubes, je pense que ça aura le même effet que le "-background" du Screen Saver.
  • AliGatorAliGator Membre, Modérateur
    22:31 modifié #10
    Et que tu devrais t'en sortir en mettant une vue ou fenêtre noire derrière ta fenêtre qui contient ton bkg avant d'appliquer ton effet cube ;)

    Par contre je ne suis pas convaincu par l'effet cube : autant je le trouve très joli, autant si tu l'appliques uniquement au fond d'écran mais pas au reste (quid des icônes de ton bureau, elles resteront immobiles et face à  l'écran pendant que le cube, lui, tournera ? Et les éventuelles fenêtres du Finder ou des autres applications restées à  l'écran ?)

    PS : Dans ce genre d'application, fais gaffe à  penser aux cas des gens qui ont plusieurs écrans, ainsi qu'au cas de Spaces pour ceux qui auraient plusieurs bureaux (quoique pour ça ça doit moins impacter que plusieurs écrans)
  • 22:31 modifié #11
    dans 1254577464:

    Et que tu devrais t'en sortir en mettant une vue ou fenêtre noire derrière ta fenêtre qui contient ton bkg avant d'appliquer ton effet cube ;)

    Par contre je ne suis pas convaincu par l'effet cube : autant je le trouve très joli, autant si tu l'appliques uniquement au fond d'écran mais pas au reste (quid des icônes de ton bureau, elles resteront immobiles et face à  l'écran pendant que le cube, lui, tournera ? Et les éventuelles fenêtres du Finder ou des autres applications restées à  l'écran ?)

    PS : Dans ce genre d'application, fais gaffe à  penser aux cas des gens qui ont plusieurs écrans, ainsi qu'au cas de Spaces pour ceux qui auraient plusieurs bureaux (quoique pour ça ça doit moins impacter que plusieurs écrans)


    Effectivement :)
    Y'en pleins de choses à  penser. C'est pour ça que l'application n'en est qu'au stade de la reflexion en fait  :)
Connectez-vous ou Inscrivez-vous pour répondre.