Je répondais à Sophie :

> > Mais j'ai un doute : tu veux modifier la configuration de l'interface en
> > fonction du modèle de document utilisé, c'est bien ça ? Si c'est ça, ben
> > je dois encore beaucoup réfléchir, mais c'est intéressant ;) Je ne sais
> > pas si c'est possible. Cyrille, si tu es là, tes lumières, s'il te plaît :)
> 
> Eh eh, c'est tout à fait ça.  

Je suis occupé à investiguer une autre direction, où je me contente
simplement d'un menu activer/désactiver l'extension (qui modifie la
disposition / visibilité de barres d'outils) [voir code en [1]].

Dans le même temps je me demande maintenant s'il y a possibilité d'inclure
une barre d'outils modifiée dans une extension, avec la syntaxe des barres
d'outils classiques, c'est-à-dire écrire :

  <toolbar:toolbaritem xlink:href=".uno:AddDirect"
     toolbar:text="Nouveau" toolbar:helpid=".uno:AddDirect"/>

plutôt que de devoir y aller de manière très verbeuse dans le Addons.xcu,
genre :

  <node oor:name="xyz" oor:op="replace">
    <prop oor:name="URL" oor:type="xs:string">
      <value>...</value>
    </prop>
    <prop oor:name="ImageIdentifier" oor:type="xs:string">
      <value/>
    </prop>
    <prop oor:name="Title" oor:type="xs:string">
      <value xml:lang="fr-FR">Nouveau</value>
    </prop>
    <prop oor:name="Target" oor:type="xs:string">
      <value>_self</value>
    </prop>
    <prop oor:name="Context" oor:type="xs:string">
      <value>com.sun.star.text.TextDocument</value>
    </prop>
  </node>

Une solution facile ?


        Frédéric


[1] si ça intéresse, voici mon code qui affiche mes barres d'outils,
et cache les barres d'outils standard, et inversément :

class ShowHideToolbars(unohelper.Base, XJobExecutor):
    def __init__(self, ctx):
        self.ctx = ctx

    def trigger(self, args):
        ctx = self.ctx
        oConfigAccess = getConfigAccess(
                ctx, '/org.openoffice.Office.Addons/AddonUI')
        oElement = oConfigAccess.getByName('OfficeToolBar')
        toolbar_names = oElement.getElementNames()

        desktop = self.ctx.ServiceManager.createInstanceWithContext(
                'com.sun.star.frame.Desktop', self.ctx )
        doc = desktop.getCurrentComponent()
        layout_manager = doc.CurrentController.Frame.LayoutManager
        if args == 'hide':
            for toolbar in toolbar_names:
                layout_manager.hideElement(
                                'private:resource/toolbar/addon_%s' % toolbar)
            layout_manager.showElement('private:resource/toolbar/standardbar')
            layout_manager.showElement('private:resource/toolbar/textobjectbar')
        else:
            for toolbar in toolbar_names:
                layout_manager.showElement(
                                'private:resource/toolbar/addon_%s' % toolbar)
            layout_manager.hideElement('private:resource/toolbar/standardbar')
            layout_manager.hideElement('private:resource/toolbar/textobjectbar')

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à