[Résolu][Draw] Volet page invisible

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 !
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 820
Inscription : 10 janv. 2009 10:05

[Résolu][Draw] Volet page invisible

Message par joel275 »

Bonjour,

je me mets à Draw pour faire des dessins, et je tombe tout de suite sur un problème:
j'ouvre le module Draw à partir de Writer avec:

Code : Tout sélectionner

StarDesktop.LoadComponentFromURL("private:factory/sdraw","_blank",0, Array())
mais j'ignore comment ne pas afficher le volet page, fenêtre qui s'ouvre en même temps que la page de dessin.
Quelqu'un aurait-il cela dans ses cartons?

D'avance merci
Joël
Dernière modification par joel275 le 29 déc. 2009 09:30, modifié 1 fois.
A jour de LibreOffice et de Ubuntu
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
Messages : 1527
Inscription : 28 sept. 2008 14:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Draw] Volet page invisible

Message par Alain de La Chaume »

Bonsoir Joël, bonsoir à tous,
Quelqu'un aurait-il cela dans ses cartons?
Ben, non. Et apparemment, même pas possible d'utiliser l'enregistreur de macros sous Draw (que je ne connais pas :oops: ).
En fouillant un peu dans les fichiers de config j'ai quand même pu bricoler ceci :

Code : Tout sélectionner

REM  *****  BASIC  *****
option explicit

' --------------------------------------------------------------------
' Module aMain, sub main :
' pour compatibilité avec mon raccourci clavier CTRL/MAJ_M
' --------------------------------------------------------------------
sub main()
dim oDocDraw as object
	oDocDraw = StarDesktop.LoadComponentFromURL(_
		"private:factory/sdraw","_blank",0, Array())
	acPageVoir(false, oDocDraw)	
end sub

' --------------------------------------------------------- 26/12/2009
' DRAW - Afficher, ou pas, le volet Page
' --------------------------------------------------------------------
sub acPageVoir(ouiNon as boolean, optional oDoc)
dim oFrame as object, dsp as object
dim args(0) as new com.sun.star.beans.PropertyValue

	if isMissing(oDoc) then oDoc = thisComponent
	oFrame = oDoc.currentController.Frame
	dsp = createUnoService("com.sun.star.frame.DispatchHelper")
	args(0).Name = "LeftPaneDraw"
	args(0).Value = ouiNon
	dsp.executeDispatch(oFrame, ".uno:LeftPaneDraw", "", 0, args())
end sub
J'ai placé le code ci-dessus dans un module d'un doc Writer et chez moi ça fonctionne (activation par un raccourci clavier).
Si ça convient, je pourrai expliquer comment j'ai fini par trouver.
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
Sébastien C
Membre hOOnoraire
Membre hOOnoraire
Messages : 157
Inscription : 29 avr. 2008 01:21
Localisation : Meymac (19250)
Contact :

Re: [Draw] Volet page invisible

Message par Sébastien C »

Alain de La Chaume a écrit :Si ça convient, je pourrai expliquer comment j'ai fini par trouver.
Et comment ! Une explication ! Vite !
:bravo: :D :super:
LibreOffice 3.5.3.2 sous GNU-Linux Mageia 2.
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 820
Inscription : 10 janv. 2009 10:05

Re: [Draw] Volet page invisible

Message par joel275 »

Bonjour,

merci beaucoup et bravo Alain pour cette macro qui fonctionne nickel!
Comme Sébastien, je suis preneur d'explications quand tu auras le temps.

En attendant, bonnes fêtes à tous.

Joël
A jour de LibreOffice et de Ubuntu
Avatar de l’utilisateur
Alain de La Chaume
HédOOniste
HédOOniste
Messages : 1527
Inscription : 28 sept. 2008 14:56
Localisation : ʇsǝnoo,ꞁ ɐ ʇuǝɯǝʇǝꞁdɯoↃ

Re: [Draw] Volet page invisible

Message par Alain de La Chaume »

Bonjour Joël, bonjour à tous.

Bon, puisque vous insistez... ;-) ... voici comment j'ai fini par trouver :

Rappel : contrairement à Writer ou Calc, Draw ne permet pas l'enregistrement de macros.
Je me suis donc inspiré d'une macro enregistrée sous Writer pour comprendre quels arguments passer et comment les passer.
J'ai choisi l'action Montrer/Cacher le Navigateur (par le menu Affichage) qui me retourne ce code :

Code : Tout sélectionner

sub showHideNavig
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Navigator"
args1(0).Value = false

dispatcher.executeDispatch(document, ".uno:Navigator", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Navigator"
args2(0).Value = true

dispatcher.executeDispatch(document, ".uno:Navigator", "", 0, args2())
end sub
Il ne me reste plus qu'à trouver le mot-clé qui doit remplacer Navigator...
Pour obliger OOo à générer un fichier de config des menus dans mon environnement personnel,
j'ai ajouté un élément de menu dans Affichage, du module Draw bien entendu.


Ensuite je suis allé consulter le fichier de config : menubar.xml
dans la racine : 'monDossierPerso'/.openoffice.org/3/user/config/soffice.cfg/modules/sdraw/menubar
qui m'a tout raconté sur le sujet, par une simple recherche de "Volet page"

Code : Tout sélectionner

<menu:menuitem menu:id=".uno:LeftPaneDraw" menu:helpid=".uno:LeftPaneDraw" menu:label="Volet page"/>
Euh... oui, c'est vrai que sans fouiller un peu, beaucoup, voire passionément...
ce n'est pas du tout-cuit !
(API-culteur et pêcheur de macros en mode loisirs occasionnels, mais toujours les pieds dans l'OO)
AOO 4.1.2 sous Linux Xubuntu Voyager 14.04 (x86_64)
Avatar de l’utilisateur
Sébastien C
Membre hOOnoraire
Membre hOOnoraire
Messages : 157
Inscription : 29 avr. 2008 01:21
Localisation : Meymac (19250)
Contact :

Re: [Draw] Volet page invisible

Message par Sébastien C »

Alain de La Chaume a écrit :Euh... oui, c'est vrai que sans fouiller un peu, beaucoup, voire passionément...
ce n'est pas du tout-cuit !
Pas exactement.

Mais il eut été dommage de ne pas se mettre à genoux les mains jointes et la larme à l’œil suppliante pour vous implorer votre témoignage, car, le moins que l’on puisse dire, c’est que les soupiraux que vous nous ouvrez à l’appétit de ces mondes souterrains nous laissent songeur quant à la respiration des courants d’airs enivrants qu’ils inspirent...

Bien cher Einstein, comment vous remercier de toute cette théorie qui n’a rien de relatif ?

Sans doute en suggérant encore à nos très-chers modérateurs de déplacer le présent fil dans le chapitre « Suprême de code » (qualificatif ici plus que mérité, non ?), chapitre qui ne possède, à ce jour, qu’un seul et unique post pourvu de l’ineffable balise [Draw], ce qui le fait, m'a-t-il confié, « [s]’y ennuyer à moÛrir »...

:bravo: :bravo: :bravo: :bravo: :bravo:
LibreOffice 3.5.3.2 sous GNU-Linux Mageia 2.
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 820
Inscription : 10 janv. 2009 10:05

Re: [Draw] Volet page invisible

Message par joel275 »

Bonjour,

loin des envolées lyriques de Sébastien que j'approuve sans réserves, je me contenterai d'un seul mot:

Chapeau!

Joel
A jour de LibreOffice et de Ubuntu
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 23853
Inscription : 03 mars 2006 09:45
Localisation : 127.0.0.1
Contact :

Re: [Résolu][Draw] Volet page invisible

Message par Dude »

Salut,

J'ai mis en ligne une gestion des volets pour Draw et Impress en suprême de code.

:idea:
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Répondre