[Résolu][Calc]Focus boite de dialogue dans barre d'outils

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 949
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

[Résolu][Calc]Focus boite de dialogue dans barre d'outils

Message par luky-luke »

Bonjour,

En pièce jointe un code pour construire une barre d'outils avec Listbox, ComboBox, Champs date... etc. Tous les contrôles sont sur écoute (Big Brother) et renvois une info.
Je me suis fortement inspirer de ce lien Créer une zone de liste dans une barre d'outils. Et du suprême Gestion dynamique de dialogue J'ai tout pomper quoi !

Pour inviter des services UNO à travailler ensemble, il faut un script beanshell.
Le script BeanShell "listenercombiner.bsh" est dans le document joint. Pour la création de nouveau document, à condition qu'il ne soit pas utiliser sur plusieurs poste, ce script peut être copier dans le répertoire suivant
~/openoffice/4/user/Script/beanshell/
listenercombiner.zip
Ouvrir l'archive jointe et l'extraire dans le dossier beanshell. Si celui-ci n’existe pas, créer un nouveau dossier beanshell.

Ensuite dans le module FancyToolbarSub il faut modifier l'adresse du script dans la macro main
modifier document dans la ligne suivante

Code : Tout sélectionner

oScript = ThisComponent.getScriptProvider("").getScript("vnd.sun.star.script:listenercombiner.listenercombiner.bsh?language=BeanShell&location=document")
par user

Code : Tout sélectionner

oScript = ThisComponent.getScriptProvider("").getScript("vnd.sun.star.script:listenercombiner.listenercombiner.bsh?language=BeanShell&location=user")

Le script dans le document devient inutile.
Pour les fichiers vagabond, il faut suivre la procédure décrite dans le lien plus haut.


Dans le fichier Barre_BoiteDial_Calc_Exemple_1, il y a quatre modules.
  • FancyToolbarSub Création de la barre, ne pas bricoler :lol:
    Liste_Control Création des contrôles.
    Listener Les écoutes.
    Utils Les utilitaires et les futures macro appelé par les écoutes.
Pour modifier simplement la barre d'outils : Module Liste_Control, dans la fonction GenerateControle vous pouvez juste commenter les lignes

Code : Tout sélectionner

	Call Construire (180, HautCtrl, PosX, PosY, oComboModel, "ComboBox1", "CBOX_", "Feuille2",0, TRUE)
ou les modifier. Adapter les listeners en conséquences, et penser au changement de nom des contrôles dans les listeners appelés.
En principe, c'est simple comme un jeu de taquin :fou: Ensuite la barre d'outils se gère de la même façon qu'une boite de dialogue. Il ne vous reste plus qu'a écrire les différente macro lier aux écoutes.

J'ai une petite question quand même à poser au GOoourOou. Comment rendre la main à la feuille après la prise de focus de la boite. Rendre le clavier actif sur la feuille, sans clic souris, seul moyen pour reprendre la main sur la feuille.
Dans l'exemple joint, quelques tentative mais sans succès. Une petite idée ?
Toute modifications, suggestions, questions, sont les bienvenue.

Cordialement
Luke
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par luky-luke le 04 oct. 2013 09:33, modifié 2 fois.
LibO 7.4.7.2 Raspberry pi et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Avatar de l’utilisateur
gerard24
ManitOOu
ManitOOu
Messages : 3160
Inscription : 06 juil. 2008 17:08
Localisation : dans le Périgord

Re: [Calc]Focus boite de dialogue dans barre d'outils

Message par gerard24 »

Bonjour,

Je pense que tu veux que après sélection dans une listbox par exemple le focus revienne sur la feuille.
D'un point de vue macro je n'en sais rien (je suis une bille question macro),
d'un point de vue utilisateur, la touche F6 redonne le focus à la feuille.

A+
OOodidacte
LibreOffice 6.4.5 sous Windows 10.
pour télécharger LibreOffice
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26089
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc]Focus boite de dialogue dans barre d'outils

Message par Dude »

Salut,

Juste un mot pour dire que l'avenir n'est plus vraiment dans les barres d'outils avec l'avènement de la barre latérale.
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 949
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: [Calc]Focus boite de dialogue dans barre d'outils

Message par luky-luke »

Bonjour,

Et la barre latéral c'est pas une barre d'outils peut être :lol: .

Cordialement
Luke

P.S.: Merci Gérard pour la touche F6, mais c'est pas vraiment ce que je cherche. Je suis une feignasse, faut automatiser !
LibO 7.4.7.2 Raspberry pi et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

Re: [Calc]Focus boite de dialogue dans barre d'outils

Message par bm92 »

Bonjour,
luky-luke a écrit :Comment rendre la main à la feuille après la prise de focus de la boite. Rendre le clavier actif sur la feuille, sans clic souris, seul moyen pour reprendre la main sur la feuille.
Ouvrons le pavé Programmation OpenOffice.org et LibreOffice :
Table des matières... Les Formulaires ...Principes communs aux contrôles...
Tiens ! Remettre le focus sur le document page 769

Application : ajoutons à la fin de la Sub ABOX_actionPerformed:

Code : Tout sélectionner

ThisComponent.CurrentController.Frame.ContainerWindow.setFocus
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 949
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: [Calc]Focus boite de dialogue dans barre d'outils

Message par luky-luke »

Bonjour,

Merci bm92, la réponse était sous mon nez, pas vu. :oops:

Cordialement
Luke
LibO 7.4.7.2 Raspberry pi et Libo 7.6.5.2 LinuxMint 22
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose