miércoles, 30 de mayo de 2007

Llegan las Interfaces Naturales

Pues sí, parece ser que alguien de Microsoft ha leido en mi blog la entrada que puse hace ya tiempo sobre Interfaces Naturales (que mas quisiera yo) y han decidido usar la tecnología de Jeff Han para implementar lo que ellos llaman Microsoft Surface, e incluso han ido un poco más allá dándole integración con otros dispositivos tales como cámaras digitales, PDAs, móviles, reproductores de MP3...

Microsoft Surface es una suerte de mesa cuya superficie esta formada por una pantalla multitáctil, lo que nos permite una interacción natural en el manejo del software que se esté utilizando. Tareas tales como visualizar fotos, consultar un mapa, reservar entradas, etc se convierten en algo sencillo e incluso divertido. En el video promocional incluso la usan como muestrario en una tienda, para ver las características de los productos que se depositen sobre ella e incluso comprarlos directametne depositando nuestra tarjeta de credito sobre la mesa.

La comunicación con el resto de dispositivos se realiza mediante conexión Wireless 802.11 b/g y Bluetooth 2.0.

Actualmente ya puede encontrarse en el Sheraton New York Hotel & Towers disponible para el público.

En la página web de Microsoft Surface podeis encontrar videos, imágenes y demás información al respecto.

Espero que este sea el inicio de una serie de cambios en lo que respecta a la interacción con el software que usamos.

viernes, 18 de mayo de 2007

Crear nuevo Ribbon en Word 2007

Hay distintas maneras de crear una nueva cinta de opciones o Ribbon en Word 2007 u otro programa de la suite ofimática. Seguramente al buscar información habrá numerosas referencias a Visual Studio 2005. Aquí lo haremos de otra manera, sin necesidad de utilizar Visual Studio.

Lo primero que deberemos hacer es crear un documento de Word con macros habilitadas en el cual queremos que aparezca nuestra cinta de opciones. Después de crearlo cambiamos la extensión del mismo a ZIP (MiDocumento.docm -> MiDocumento.zip) y lo descomprimimos en una carpeta. La carpeta debería contener la siguiente estructura:
  • _rels
    • .rels
  • docProps
    • app.xml
    • core.xml
  • word
    • _rels
      • document.xml.rels
    • theme
      • theme1.xml
    • document.xml
    • frontTable.xml
    • settings.xml
    • styles.xml
    • vbaProyect.bin
    • webSettings.xml
  • [Content_Types].xml
Abrimos el archivo .rels de la carpeta _rels con Notepad para editarlo. El archivo debería contener lo siguiente:

Le añadimos una última etiqueta relationship (texto marcado en rojo), de tal manera que se quedaría así:

Ahora añadimos una nueva carpeta llamada customUI que estará al mismo nivel que las carpetas _rels, docprops y word. Dentro de esta carpeta creamos un nuevo archivo XML con nuestra configuración de cinta de opciones. A continuación expongo un ejemplo:

Esto creará una nueva cinta llamada Mi Ribbon y en ella creará un nuevo grupo de opciones llamado Mis opciones con un botón que ejecuta una macro del documento. Aquí un ejemplo de cómo quedaría la cinta de opciones que se indica más arriba.

Los atributos de un botón son:
  • id: Identificador del botón.
  • label: Etiqueta que mostrará el botón.
  • imageMso: Imagen que mostrará el botón perteneciente a la galería de Office (más abajo indico un link con información sobre los valores que puede tomar).
  • size: Tamaño del botón. Con el valor large muestra el botón grande, si no se indica usa el tamaño por defecto (pequeño).
  • tag: Valor similar al id, también sirve para identificarlo en la macro.
  • onAction: Aquí se indica el nombre del método que ejecutará al pulsarse. Más abajo se explica cómo hacer un método para nuestro botón de la cinta.
  • supertip: Descripción larga que aparece al mantener el puntero sobre el botón.

Una vez hecho todo esto comprimimos de nuevo todo el contenido en un archivo ZIP incluyendo la nueva carpeta customUI. Una vez comprimido renombramos el archivo de nuevo a formato Word (MiDocumento.zip -> iDocumento.docm). Abrimos el archivo y voila. Ya solo falta darle funcionalidad a nuestro botón.



Para crear un método para nuestro botón abrimos el editor de Visual Basic de Word y añadimos un nuevo módulo en el proyecto. Creamos un nuevo método que ha de llamarse igual que hemos indicado en el atributo onAction del botón, en este caso mensaje y como atributo del método una variable tipo IRibbonControl. Un ejemplo sería:

Una cinta de opciones da para mucho más que poner solo una serie de botones. En esta página, Jensen Harris: An Office User Interface Blog y más concretamente aquí encontrareis mucha información al respecto.

Los iconos que se pueden usar en un botón de la cinta de opciones son numerosos y variados, en la página Júlio Battisti puedes descargar un documento de Excel donde se pueden ver todos los iconos posibles que ofrece office, realmente muy útil.