There is only XUL (VI)

Antes de empezar con cosas mas serias vamos a ver como se implementan los menús en XUL.

<?xml version=»1.0″?>
<?xml-stylesheet href=»chrome://global/skin» type=»text/css»?>
<window xmlns=»http://www.mozilla.org/keymaster/gatekeeper/ there.is.only.xul»>
<menubar>
<menu label=»Archivo»>
<menupopup>
<menuitem label=»Nuevo»/>
<menuseparator/>
<menuitem label=»Abrir»/>
<menuitem label=»Salvar»/>
<menuitem label=»Cerrar»/>
</menupopup>
</menu>
<menu label=»Editar»>
<menupopup>
<menuitem label=»Deshacer»/>
<menuseparator/>
<menuitem label=»Copiar»/>
<menuitem label=»Cortar»/>
<menuitem label=»Pegar»/>
</menupopup>
</menu>
<menu label=»Ver»>
<menupopup>
<menuitem label=»Regla»/>
<menu label=»Fuente»>
<menupopup>
<menuitem label=»Arial»/>
<menuitem label=»Verdana»/>
</menupopup>
</menu>
<menu label=»Color»>
<menupopup>
<radiogroup>
<radio label=»Rojo»/>
<radio label=»Azul»/>
<radio label=»Negro»/>
<radio label=»Verde»/>
</radiogroup>
</menupopup>
</menu>
<menuitem label=»Pantalla Completa»/>
</menupopup>
</menu>
</menubar>
</window>

menubar define la barra de menús. Dentro de menubar tenemos un conjunto de etiquetas menu que son las que definen las entradas de menú en si. Si al pulsar sobre el menú se va a desplegar una lista de submenús, entonces utilizamos menupopup y menuitem para cada uno de los submenús. En el caso de que no hubieramos agrupado los submenús (menuitems) en un menupopup se habrían mezclado todas las entradas en una sola, que no es lo que queremos. Además tenemos otro elemento que es menuseparator, que introduce una línea para dividir el menú en partes. Notar también que los submenús también pueden ser menús con varias entradas como vemos en el caso de fuente en que definimos un nuevo menú y no un menuitem. Como último comentario decir que en lugar de menuitems o menús, como entradas dentro de los menús también podríamos tener otros elementos como checkboxes o radiobuttons como vemos en el caso del menú color.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.