Le Samedi 11 Février 2006 07:54, vous avez écrit : > Bonjour, Bonjour,
> > Je me permet de te contacter suite a ton message sur > prog@fr.openoffice.org concernant la creation d'une fenetre dockable. > > As tu reussi ? Car je suis dans le meme cas que toi. J'ai a peut pres > le meme code que toi (en Java) mais ca ne fonctionne pas. Oui, je pense avoir réussi et voici le code python que j'utilise (qui peut être simplifié). Ce code créé une barre d'état en bas de la fenêtre ouverte avec une zone de texte et 7 "check box". Il faut ajouter ensuite le code pour la gestion de nouvelle fenêtre ou barre d'état pour moi. import uno from com.sun.star.awt.WindowClass import SIMPLE ctx = aContext smgr = ctx.ServiceManager desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",.ctx) # accès au document draw courant aController = desktop.getCurrentComponent().getCurrentController() # faire de la place pour la barra d'état aPosSize = desktop.CurrentFrame.ComponentWindow.PosSize aRect = uno.createUnoStruct("com.sun.star.awt.Rectangle") aRect.X, aRect.Y, aRect.Width, aRect.Height = aPosSize.X, aPosSize.Y+aPosSize.Height-45, aPosSize.Width, 45 aController.Frame.ComponentWindow.setPosSize(aPosSize.X, aPosSize.Y, aPosSize.Width, aPosSize.Height-45, 15) # créer une nouvelle fenêtre pour une barre d'état aWindowDescriptor = uno.createUnoStruct("com.sun.star.awt.WindowDescriptor") aWindowDescriptor.Type = SIMPLE aWindowDescriptor.WindowServiceName = "dockingwindow" aWindowDescriptor.Parent = aController.Frame.ContainerWindow aWindowDescriptor.ParentIndex = -1 aWindowDescriptor.Bounds = aRect aWindowDescriptor.WindowAttributes = 0 aWinPeer = aController.Frame.ContainerWindow.Toolkit.createWindow(aWindowDescriptor) aWinPeer.setBackground(0xf0f0f0) aWinPeer.setPosSize(aRect.X, aRect.Y, aRect.Width, aRect.Height, 15) aWinPeer.setVisible(True) # créer un label à insérer dans la barre aLabel = ctx.ServiceManager.createInstance( "com.sun.star.awt.UnoControlFixedTextModel" ) aLabel.Label = "No comment" aLabel.Border = 1 aLabel.BackgroundColor = 0xf0f0f0 aLabelControl = ctx.ServiceManager.createInstance("com.sun.star.awt.UnoControlFixedText") aLabelControl.setModel(aLabel) aLabelControl.createPeer(aWinPeer.Toolkit, aWinPeer) aPeer = aLabelControl.getPeer() aPeer.setPosSize(0, 0, aRect.Width, 20, 15) aPeer.setVisible(True) aLabelControl.setDesignMode(False) aCheckBoxControl = [] aCheckBox = [] for i in range(7): # créer des check box aCheckBox.append(ctx.ServiceManager.createInstance("com.sun.star.awt.UnoControlCheckBoxModel")) aCheckBox[-1].Label = aArgs[0].Value[i] # créer le check box controller aCheckBoxControl.append(ctx.ServiceManager.createInstance("com.sun.star.awt.UnoControlCheckBox")) aCheckBoxControl[-1].setModel(aCheckBox[-1]) aCheckBoxControl[-1].createPeer(aWinPeer.Toolkit, aWinPeer) aPeer = aCheckBoxControl[-1].getPeer() aPeer.setPosSize(i*aRect.Width/7, 20, aRect.Width/7, 20, 15) aPeer.setVisible(True) aPeer.setBackground(0xf0f0f0) aCheckBoxControl[-1].setDesignMode(False) > > Desole de te contacter directement par mail, mais je ne suis pas > (encore!) inscrit a la mailing list. Je poste une copie à la liste au cas où cela pourrait intéresser d'autres personnes. > > Merci! J'espère avoir été assez clair. NB: le code ci-dessus est extrait d'un composant uno que j'ai créé pour une barre d'état utilisée dans CADOOo -- gerard deneux --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]