[Python] Dialogue message étendu

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur : Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 13:42

[Python] Dialogue message étendu

Message par bm92 »

En complément du message de Dude [Basic] Dialogue message étendu, voici un exemple d'utilisation de l'interface XMessageBoxFactory en Python.

Dans ce script MsgBox.py la macro TestMessageBox() boucle sur l'affichage d'un message et l'affichage de la réponse utilisateur, jusqu'à ce qu'il clique le bouton Non. Un document doit être ouvert.

Code : Tout sélectionner

import uno

from com.sun.star.awt.MessageBoxButtons import BUTTONS_OK, BUTTONS_OK_CANCEL, BUTTONS_YES_NO, BUTTONS_YES_NO_CANCEL, BUTTONS_RETRY_CANCEL, BUTTONS_ABORT_IGNORE_RETRY
from com.sun.star.awt.MessageBoxButtons import DEFAULT_BUTTON_OK, DEFAULT_BUTTON_CANCEL, DEFAULT_BUTTON_RETRY, DEFAULT_BUTTON_YES, DEFAULT_BUTTON_NO, DEFAULT_BUTTON_IGNORE

from com.sun.star.awt.MessageBoxType import MESSAGEBOX, INFOBOX, WARNINGBOX, ERRORBOX, QUERYBOX
# renommer les valeurs pour eviter possibles ambiguites
from com.sun.star.awt.MessageBoxResults import YES as MBR_YES, NO as MBR_NO, CANCEL as MBR_CANCEL
 
# Message box utilisant le Toolkit de l'API
def MessageBox(ParentWin, MsgText, MsgTitle, MsgType=MESSAGEBOX, MsgButtons=BUTTONS_OK):
 
  ctx = uno.getComponentContext()
  sm = ctx.ServiceManager
  sv = sm.createInstanceWithContext("com.sun.star.awt.Toolkit", ctx) 
  maBoite = sv.createMessageBox(ParentWin, MsgType, MsgButtons, MsgTitle, MsgText)
  return maBoite.execute()

 
def TestMessageBox():
  doc = XSCRIPTCONTEXT.getDocument()
  parentwin = doc.CurrentController.Frame.ContainerWindow
 
  res = MBR_YES
  while res != MBR_NO:
    s = "Voulez-vous continuer ?"
    t = "Un message de Python"
    res = MessageBox(parentwin, s, t, QUERYBOX, BUTTONS_YES_NO_CANCEL + DEFAULT_BUTTON_NO)
 
    s = "Reponse : " +str(res)
    MessageBox(parentwin, s, t, INFOBOX)
 
g_exportedScripts = TestMessageBox,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial