----Message d'origine----
Date: Wed, 26 Jul 2006 14:37:30 +0200
De: christianwtd <chri...@free.fr>
A: pr...@fr.openoffice.org
Sujet: [prog] Curseur modifié
Bonjour à tous,
Je patine... Je n'arrive pas à afficher un curseur de souris modifié.
Où est l'erreur dans cette macro ?
L'erreur est que ça ne marche qu'avec des windowPeers, pas des windows
ordinaire. Ne me demande pas la différence...
En recherchant dans la description IDL de setPointer on voit que la méthode est
offerte par l'interface XWindowPeer. A cette page de l'IDL, quand on clique sur
la case Use (en haut) on voit les fonctions qui renvoient une telle interface.
Essentiellement getPeer offert par l'interface XControl. Donc il faut récupérer
le Peer à partir d'un contrôle. Plus exactement, à partir de la vue du contrôle.
En fait une partie de ton codage se trouve dans la bibli Tools, module
ModuleControls (tiens donc!), routine SwitchMousePointer.
Dans un document Writer neuf, dépose un gros bouton, nommé "Bouton1". Voici le
codage, utilisant la routine:
GlobalScope.BasicLibraries.LoadLibrary("Tools")
oDocument = ThisComponent
unFormulaire = oDocument.DrawPage.Forms(0)
unControle = unFormulaire.getByName("Bouton1")
oCurrentController = oDocument.getCurrentController()
vueControle = oCurrentController.getControl(unControle)
oWindow = vueControle.getPeer()
SwitchMousePointer(oWindow, False)
wait 10000
SwitchMousePointer(oWindow, True)
Lancer la macro depuis la fenêtre Writer. Pendant 10 secondes le sablier
apparaît quand la souris est au-dessus du bouton.
Voila. C'est tout ce qu'on peut faire, je pense.