Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] Overlays ne s'affichent pas dans une fenêtre

Envoyé par : gehiks

Date : 26/09/2009 18:29

Bonjour,

Je débute en XUL et j'essaye de faire une application XULRunner.

Sur toutes les pages de mon application la barre de menu (menubar) sera la même. Pour faciliter la maintenance, je voudrais que ce menu soit dans un overlay appelé par chaque page. J'ai essayé de suivre le tutoriel de XulFr.org et celui sur le site de Mozilla, mais je dois rater quelquechose car il me semble que l'overlay (overlay_menu.xul) ne soit pas appelée par la page principale (main.xul).

Structure

->chrome
 -->content
    about.xul
    controller.js
    main.js
    main.xul
    options.xul
    overlay_menu.xul
 -->locale
 -->skin

main.xul

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://BENuRH/skin/main.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://BENuRH/locale/main.dtd">
<window id="main" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
			title="&title;" style="width: 700px; height: 500px;" persist="screenX screenY width height sizemode">
<?xul-overlay href="chrome://BENuRH/content/overlay_menu.xul"?>
	<toolbox>
		<menubar id="menubar"/>
		<toolbar id="main-toolbar" mode="icons">
		</toolbar>
	</toolbox>
</window>

overlay_menu.xul

<?xml version="1.0"?>
<!DOCTYPE overlay SYSTEM "chrome://BENuRH/locale/overlay_menu.dtd">
<overlay id="overlay_menu" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<menubar id="menubar">
	<menu id="file_menu" label="&file.label;">
		<menupopup id="file_popup">
			<menuitem label="&import.label;"/>
			<menuitem label="&export.label;"/>
			<menuitem command="cmd_print"/>
			<menuitem command="cmd_exit"/>
		</menupopup>
	</menu>
</menubar>
</overlay>

Quand j'exécute mon code, le menu n'apparaît pas alors que quand je colle le contenu de menubar dans main.xul, le menu apparaît normalement. Quelqu'un voit-il ce qui ne va pas?

Merci,

Gêhïks

# Re: Overlays ne s'affichent pas dans une fenêtre

Envoyé par : jordan

Date : 26/09/2009 22:27

Bonjour,

On peut voir ton fichier .manifest ?

++

# Re: Overlays ne s'affichent pas dans une fenêtre

Envoyé par : gehiks

Date : 27/09/2009 00:20

Voici le .manifest

content        BENuRH       content/
skin           BENuRH       classic/1.0       skin/
locale         BENuRH       fr-FR             locale/fr-FR/

Il n'y a pas d'erreurs dans les fichiers précédents?

Gêhïks

# Re: [Résolu] Overlays ne s'affichent pas dans une fenêtre

Envoyé par : gehiks

Date : 27/09/2009 13:04

Merci Jordan,

Tu m'as permis de voir ce qui clochait. Il manquait une ligne à mon manifest. Voici le nouveau manifest.

content	BENuRH	content/
skin	BENuRH	classic/1.0	skin/
locale	BENuRH	fr-FR	locale/fr-FR/
overlay	chrome://BENuRH/content/main.xul chrome://BENuRH/content/overlay_menu.xul

Avec cette méthode, il ne semble pas nécessaire d'ajouter la ligne de chargement explicite <?xul-overlay href="chrome://component/content/componentOverlay.xul"?>. Je dois encore avoir loupé quelquechose :)

A votre connaissance, y aurait-il un moyen d'ajouter "overlay_menu.xul" à plusieurs pages sans tout déclarer dans le manifest?

# Re: [Résolu] Overlays ne s'affichent pas dans une fenêtre

Envoyé par : jordan

Date : 27/09/2009 16:33

Moi j'ai toujours tout déclaré dans le manifest. Je ne savais pas qu'il existait une alternative :

<?xul-overlay href="chrome://BENuRH/content/overlay_menu.xul"?>

Encore que visiblement, elle ne marche pas/plus. De toute manière, à ce jour, j'ai réalisé qu'une extension Firefox, c'est un peu différent.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.