Como crear tu propia Notebookbar

Introducida recientemente con el concepto MUFFIN, la Notebookbar es un lienzo en blanco donde los controles pueden colocarse y organizarse libremente. Ofrece toda la libertad a los usuarios que no tienen miedo de jugar con un entorno de desarrollo integrado (IDE). Aquí explicamos cómo empezar desde cero.

Configuración del entorno

Las Notebookbars son archivos ui, que son sólo archivos de texto con formato XML. Modificar los archivos en cualquier editor de texto es posible pero bastante tedioso. La forma supuesta de modificar archivos ui es utilizar Glade. (Esto puede cambiar en el futuro.)

Después de instalar Glade, hay que agregar el catálogo LibreOffice para usar controles específicos. Ir a Edición > Preferencias, hacer clic en Agregar y buscar la ruta <libreoffice>/share/glade. Si todo va bien, los controles de LibreOffice aparecerán en la barra lateral izquierda después de reiniciar Glade.

Crear una nueva notebookbar

Ahora se pueden modificar las barras de herramientas existentes. Para Writer es notebookbar_groups.ui o notebookbar_simple.ui en <libreoffice>/share/config/soffice.cfg/modules/swriter/ui/. Los archivos ui de Calc se encuentran en <libreoffice>/share/config/soffice.cfg/modules/scalc/ui/, Impress en … simpress/ui etc. Simplemente hay que cargar el archivo ui en Glade, modificarlo, guardarlo y cambiar el archivo de barra de herramientas utilizado en LibreOffice (no es necesario reiniciar completamente).

Pero si tienes miedo de jugar con los archivos incluidos también es posible empezar desde cero. Primero se debe agregar una referencia al nuevo archivo ui en <libreoffice>/share/registry/main.xcd. Desafortunadamente, este archivo XML se crea durante el proceso de compilación sin ningún salto de línea, lo que dificulta la edición. Por suerte exite una pequeña herramienta llamada tidy que ayuda con el formato de archivos XML. Cambie el nombre del archivo main.xcd primero a main.bak y ejecute:

cat main.bak | tidy -utf8 -xml -w 255 -i -c -q -asxml > main.xcd

Ahora es posible editar el archivo en el editor de texto de su preferencia. Buscar la linea con notebookbar_groups y copiar/pegar la sección completa para duplicarla:

<node oor:name="Groups" oor:op="replace">
  <prop oor:name="Label">
    <value xml:lang="en-US">Contextual groups</value>
  </prop>
  <prop oor:name="File">
    <value>notebookbar_groups.ui</value>
  </prop>
  <prop oor:name="HasMenubar">
    <value>true</value>
  </prop>
</node>

Hay más de una ocurrencia de notebookbar_groups.ui, una para cada aplicación. Cerciórese de cambiar la siguiente sección:

<oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Notebookbar" oor:package="org.openoffice.Office.UI">
//...
  <node oor:name="Applications">
    <node oor:name="Writer" oor:op="replace">

Cambiar el nombre del nodo de “Groups” a “MyMuffin”, la etiqueta de “Contextual groups” a “My Muffin”, y la referencia del archivo de notebookbar_groups.ui a notebookbar_mymuffin.ui.

Crear el archivo notebookbar_mymuffin.ui en <libreoffice>/share/config/soffice.cfg/modules/swriter/ui/ e ingresar el contenido básico:

<?xml version="1.0" encoding="UTF-8"?>
  <interface>
    <requires lib="gtk+" version="3.12"/>
    <requires lib="LibreOffice" version="1.0"/>
  </interface>

También puede utilizar Glade para crear un nuevo archivo o duplicar uno de los otros archivos de Notebookbar y borrar el contenido. Inicie Writer para ver un hermoso lienzo en blanco esperando su creatividad.

Editar la Notebookbar

Para comenzar con una implementación muy sencilla construimos una barra de herramientas “clásica”. Ejecute Glade y abra el archivo ui. Haga clic en el símbolo de la Caja (primer elemento en la sección Contenedores) y arrástrelo al lienzo en blanco. En el cuadro de diálogo emergente, cambie el número de elementos a 1 (puede modificar todas las propiedades más adelante). Ahora agregue una caja de herramientas de Notebookbar (en la sección LibreOffice uno de los últimos elementos, la barra de herramientas común en Contenedores no funcionará) y colóquela en la GtkBox. Puede cambiar el tamaño de todos los controles a su gusto, pero la alineación final es realizada por LibreOffice.

Haga clic con el botón derecho en el sfxlo-NotebookbarToolbox y haga clic en Editar… En el cuadro de diálogo, vaya a la pestaña Jerarquía y haga clic en Añadir. En el área de la mano derecha con las propiedades busque el nombre de la acción y escriba .uno:Open allí. Para facilitar la identificación, puede utilizar Abrir en ID y eliminar el texto predefinido en la Etiqueta. Eso sería suficiente para mostrar el icono abierto con toda la funcionalidad en Writer.

“My Muffin” con el primer botón.

Los elementos de la barra de herramientas se definen de forma predeterminada como botones y, en contraste con la función normal de apertura, no tendrá menú con las funciones adicionales. Puede cambiar fácilmente esta propiedad en Jerarquía: Elemento de herramienta > Tipo de Botón a Menú.

Es posible que desee agregar más funciones, por lo que surge la pregunta de cómo se llaman todas las funciones y de dónde obtener ayuda.

.uno:¿Qué?

Los comandos .uno: contienen toda la información de una entidad como nombre e información de herramientas, incluida la traducción, el icono dependiendo del tema seleccionado, estado habilitado/inhabilitado, la función real, etc., en un modelo genérico. Por ejemplo, .uno:Bold significa que el botón cambia la propiedad de texto a negrita/no en negrita. Si conoce la función por nombre, puede encontrar el comando .uno correcto en la especificación del menú principal (menubar.xml) en <libreoffice>/share/config/soffice.cfg/modules/swriter/menubar/ (respectivamente para otros módulos En scalc/menubar, simpress/menubar etc).

Y, por supuesto, tiene sentido echar un vistazo a las otras Notebookbars. Muestra cómo manejar las secciones que dependen del contexto, cómo usar las pestañas y cómo usar botones grandes en lugar de la barra de herramientas muy sencilla.

Resumen

Puede modificar las Notebookbars existentes en <libreoffice>/share/config/soffice.cfg/modules/<module>/ui utilizando Glade, o añadir su propio archivo después de editar el archivo <libreoffice>/share/registry/main.xcd. La barra de herramientas es un lienzo en blanco donde se pueden agregar controles.

Tenga en cuenta que estas modificaciones se anularán con la próxima actualización. Somos conscientes de que este procedimiento no es fácil de usar. La implementación actual es experimental y en una etapa muy temprana. Pero da una idea de lo que es posible.

Lo más importante es que también puede arreglar o mejorar las variantes de la barra de herramientas existentes que se entregan con LibreOffice. Así que cuando vea algo que se puede hacer mejor, damos la bienvenida a las mejoras como parches!

Por favor contactenos en IRC en caso de preguntas – y comience a hackear LibreOffice hoy – ¡es divertido!

 

 

DIY UI: How to create your own Notebookbar

Comentarios

  1. By g

    Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Acepto la Política de privacidad