Google Desktop
 Conceptos básicos sobre gadgets para la barra lateral de Google Desktop



Foro para programadores

Descargar kit de desarrollo de software

Documentación adicional sólo disponible en inglés

Enviar gadgets

Visión general del kit de desarrollo de software
Blog de Google Desktop

Índice


Introducción

La API de Google Gadgets de Google Desktop incluye objetos y métodos que permiten escribir los gadgets de la barra lateral (antiguamente conocidos como complementos) en lenguajes de secuencia de comandos como JavaScript o VBScript. En este documento se explica cómo escribir gadgets con la API y el Diseñador de gadgets de Google Desktop. El Diseñador es un entorno de desarrollo integrado que permite diseñar la interfaz de usuario de tu gadget utilizando componentes de arrastrar y soltar, así como probar el gadget fuera de la barra lateral.

En este documento no se describen los aspectos no relacionados con los gadgets o secuencias de comandos de la API de Google Desktop, como las API del Índice, Consulta, Acción o Evento (Documentación adicional sólo disponible en inglés). Si deseas obtener más información acerca de esas API, consulta los documentos enlazados.

Desde una perspectiva de archivos y paquetes, un gadget basado en secuencias de comandos de Google Desktop consta de:

  • Un archivo XML gadget.gmanifest que contiene metainformación acerca del gadget.
  • Un archivo main.xml, que define la vista principal del gadget. La vista la integran la interfaz de usuario y los objetos que completan un panel visible del gadget.
  • Si es necesario, un archivo options.xml, que define la vista de opciones del gadget.
  • Cualquier archivo JavaScript o VBScript con el código necesario para implementar la funcionalidad del gadget.
  • Cualquier archivo de imagen necesario, como elementos de la interfaz de usuario (botones, casillas de verificación, etc.), imágenes que aparecen en el gadget o iconos asociados con el mismo.
  • Si es necesario, carpetas y archivos separados para cada idioma en el que se haya desarrollado la interfaz de usuario del gadget.

Cuando termines de escribir los archivos en el Diseñador, este los comprimirá de forma conjunta en el archivo nombre_gadget.gg, donde .gg significa Google Gadget. En caso de que no utilices el Diseñador, deberás comprimir los archivos de forma conjunta y cambiar el nombre del archivo resultante para que tenga el sufijo .gg.

Para distribuir tu gadget, habilita el acceso al archivo .gg, ya sea a través de http://desktop.google.com/pluginsubmit?hl=es o por otros medios.

Cuando un usuario instala un gadget basado en archivos .gg, el proceso de instalación de Google Desktop utiliza la información del archivo gadget.gmanifest para descomprimir el archivo, e instalar y registrar el gadget.

Las versiones anteriores a 4.0 de Google Desktop desconocen cómo administrar archivos .gg. Así que los usuarios que ejecutan versiones de Google Desktop inferiores a 4.0 no podrán utilizar los gadgets del tipo .gg. Sin embargo, existe la posibilidad de convertir los complementos escritos anteriormente a gadgets de Google Desktop 4.0 creando los archivos .xml y .gmanifest necesarios y modificando ligeramente el código en sí.

El proceso completo para desarrollar y distribuir un gadget de la barra lateral basado en secuencias de comandos mediante el Diseñador de gadgets de Google Desktop es el siguiente:

  1. Inicia el Diseñador de gadgets de Google Desktop mediante el archivo designer.exe del kit de desarrollo de software de Google Desktop.
  2. Haz clic en Archivo>Crear proyecto.
  3. Haz clic doble clic en Configuración del proyecto en el panel de archivos para que aparezca el cuadro de diálogo Configuración del proyecto. Introduce los datos solicitados. El Diseñador utiliza esta información para escribir el archivo gadget.gmanifest.
  4. Arrastra los elementos de la interfaz de usuario que integran el gadget y suéltalos en el panel de visualización del Diseñador.
  5. Añade al proyecto los archivos gráficos que quieras insertar en la interfaz de usuario como, por ejemplo, una imagen de botón diferente. Para ello, debes utilizar un navegador de archivos externo, como el Explorador de Windows. Añade los archivos adecuados a la carpeta del proyecto o sobrescribe el contenido de los archivos existentes.
  6. Selecciona cada uno de los elementos de la interfaz y establece la propiedad y los valores de evento según corresponda. Escribe Ctrl+S para guardar los ajustes.
  7. Como alternativa, puedes hacer clic en Proyecto>Añadir vista de opciones para añadir una vista de opciones a tu gadget, como se define en options.xml. Repite los pasos del 4 al 6, esta vez para la vista de opciones.
  8. Abre el archivo main.js (o, si lo prefieres, crea una secuencia de comandos diferente y, a continuación, ábrela) y escribe las funciones invocadas por los eventos de los elementos de la interfaz de usuario. Escribe Ctrl+S para guardar los ajustes.
  9. Prueba el gadget:
    1. Haz clic en la pestaña superior Vista previa para mostrar el gadget en el panel de visualización.
    2. Haz clic en Ver>Consola de depuración para abrirla. Establece la configuración adecuada para que aparezcan los mensajes que deseas y define el tamaño de la ventana Diseñador, para que tanto el panel de visualización como la Consola de depuración estén visibles.
    3. Haz una prueba de uso del gadget.
    4. Si se produce un error, intenta corregirlo en el código o la interfaz de usuario (incluidas las propiedades). Guarda las correcciones y haz clic en Ver>Actualizar para restablecer el gadget a su estado inicial. Sigue intentándolo hasta que funcione correctamente.
    5. Si no se produce ningún error, haz clic en Ver>Actualizar para restablecer el gadget a su estado inicial. Continúa realizando pruebas hasta que estés seguro de que el gadget funciona como deseas.
  10. Haz clic en Proyecto>Crear paquete, que comprime todos los archivos del proyecto y los coloca en un archivo denominado Nombre_proyecto.gg.
  11. Distribuye tu gadget mediante el envío del archivo .gg en http://desktop.google.com/pluginsubmit?hl=es

Recuerda ir guardando los ajustes realizados con frecuencia pulsando Ctrl+S o haciendo clic en Archivo>Guardar, sobre todo antes de probar el gadget.

Un aspecto que cabe destacar acerca del Diseñador es que no tiene capacidad para añadir archivos a un proyecto o a su carpeta o subcarpetas. Si bien el comando Archivo>Crear proyecto genera una serie de archivos, tal y como se muestra inicialmente en el panel de archivos, no podrás añadir o eliminar archivos de la carpeta del gadget desde el Diseñador

Para añadir o eliminar archivos de la carpeta del proyecto, utiliza cualquier navegador de archivos externo, como el Explorador de Windows. Esta es también la manera en que debes sobrescribir el contenido de cualquier archivo creado con el Diseñador de gadgets, como plugin_large.gif, que contiene el icono más grande asociado a tu gadget.


Cómo empezar

Para iniciar el Diseñador de gadgets de Google Desktop, ejecuta designer.exe, que se incluye con el kit de desarrollo de software de Google Desktop. Al principio, el Diseñador tendrá el aspecto de la imagen situada a la derecha.

Aspecto inicial del Diseñador

El Diseñador se refiere a tus gadgets como Proyectos. Por lo tanto, para comenzar a crear un gadget nuevo:

  1. Ve al menú Archivo y haz clic en el elemento Crear proyecto.
  2. Aparece el cuadro de diálogo que se muestra a la derecha.
  3. En el campo Nombre de archivo: situado al final, escribe el nombre de tu gadget.
  4. Haz clic en el botón Guardar.

Cuadro de diálogo para el nombre del nuevo proyecto

Ahora que ya hemos asignado un nombre al gadget, el Diseñador crea una carpeta para el proyecto, junto con varios archivos y carpetas (descritos en la sección Panel de archivos y archivos) para comenzar. Llegado a este punto, la ventana Diseñador tendrá el aspecto de la imagen situada a la derecha.

Ventana Diseñador

Cuadro de diálogo Configuración del proyecto y el archivo gadget.gmanifest

Para que aparezca el cuadro de diálogo Configuración del proyecto haz doble clic en Configuración del proyecto, en el panel de archivos. En este cuadro de diálogo, deberás introducir información básica acerca del gadget que el Diseñador utilizará para escribir su archivo gadget.gmanifest.

Cuadro de diálogo Configuración del proyecto

Archivo gadget.gmanifest

El archivo obligatorio gadget.gmanifest especifica, en formato XML, los metadatos que describen el gadget, así como los componentes que se deben instalar antes de su creación. Si bien se puede especificar gran parte de su contenido a través del cuadro de diálogo Configuración del proyecto, también cabe la posibilidad de editarlo manualmente.

El contenido de este archivo consta de un elemento <gadget>, el cual presenta un parámetro de minimumGoogleDesktopVersion con un valor de la versión más antigua de Google Desktop que puede ejecutar este gadget. Este elemento contiene un elemento <about> necesario y, de forma opcional, un elemento <install>.

El elemento <about> puede incluir estos subelementos:

  • <id> : número de identificación de clase del gadget. Necesario
  • <name> : nombre del gadget. Necesario.
  • <description> : breve descripción de las funciones del gadget. Necesario.
  • <version> : número de la versión del gadget.
  • <author> : persona que escribió el gadget. Necesario.
  • <authorEmail> : dirección de correo electrónico para ponerse en contacto con el programador.
  • <authorWebsite> : URL de tu sitio web.
  • <copyright> : información sobre los derechos de autor.
  • <aboutText> : texto que se muestra en el cuadro de diálogo Acerca de del gadget.
  • <smallIcon> : icono de 12 x 12 píxeles que aparece en la barra de título de tu gadget.
  • <icon> : icono de 32 x 32 píxeles que se muestra en el cuadro de diálogo Acerca de del gadget y en la interfaz de usuario de Alertas (si es compatible con tu gadget).
  • <eventAPI> : si se incluye (no representa ningún valor, por lo que <eventAPI /> sería correcto), el gadget puede utilizar la API de eventos de Google Desktop. El registro se lleva a cabo de forma automática.
  • <displayAPI usersNotifier="true"/> : cuando usersNotifier se establece en true, se habilitan las notificaciones de la interfaz de usuario de la barra lateral. El registro se lleva a cabo de forma automática.
  • <queryAPI allowModifyIndex="true"/> : cuando allowModifyIndex se establece en true, el gadget puede utilizar las notificaciones de índice y la API de consultas. El registro se lleva a cabo de forma automática.

Debes incluir, con valores, los elementos <id>, <name> y <description>. Te recomendamos que también incluyas, con valores, los elementos <version>, <author>, <authorEmail>, <authorWebsite>, <copyright>, <aboutText>, <smallIcon> y <icon>. Puedes ver ejemplos del último conjunto de elementos incluidos sin valores, por ejemplo, <authorEmail></authorEmail>. Esta opción es posible, pero no es la mejor.

A continuación te mostramos un ejemplo de un archivo gadget.gmanifest para un gadget de reloj digital:



<gadget minimumGoogleDesktopVersion="4.2006.505.0">
  <about>
    <id>5EBA73D8-8A97-47de-A373-2BCBDCA3D539</id>

    <version>1.0.0.0</version>
    <author>Google</author>
    <authorEmail></authorEmail>
    <authorWebsite>http://desktop.google.com/plugins.html</authorWebsite>

    <copyright>Copyright (c) 2006 Google Inc.</copyright>
    <description>Consulta la hora en un reloj digital de un solo vistazo.</description>
    <aboutText>&strAboutText</aboutText>
    <smallIcon>gadget_small.gif</smallIcon>

    <icon>gadget_large.gif</icon>
  </about>
</gadget>

En el elemento <gadget>, además del elemento <about> obligatorio, puedes tener un elemento opcional <install> que enumere todos los componentes del paquete, como los tipos de letra, que deben instalarse antes de crear el gadget. Por ejemplo:


<install>
  <font src="mcfont.ttf"/>
</install>

Panel de archivos y archivos

El panel de archivos muestra los directorios y los archivos que se comprimirán para crear el archivo nombre_gadget.gg que se utiliza para distribuir tu gadget. El directorio del nivel superior tendrá el nombre que le hayas otorgado al gadget en el cuadro de diálogo Configuración del proyecto. Inicialmente, contiene dos directorios y cinco archivos.

  • Directorio 1033: 1033 es el número de identificación del idioma para inglés de EE.UU. Este directorio contiene el archivo strings.xml en el que tú y el Diseñador almacenáis la versión en inglés de EE.UU. de cualquier cadena utilizada en la interfaz de usuario del gadget. Si deseas obtener más información al respecto y cómo representar otros idiomas, consulta la sección Internacionalización de este documento.
  • Configuración del proyecto: haz doble clic en esta opción para que aparezca el cuadro de diálogo Configuración del proyecto.
  • main.js: archivo predeterminado de JavaScript en el que puedes escribir funciones que implementen el comportamiento y la administración de eventos de tu gadget. Si haces doble clic en esta opción, se abre el archivo en el panel de visualización para su edición y se añade una pestaña de visualización en la parte superior del área de este panel. Después de editar el archivo, haz clic en Archivo->Guardar o pulsa Ctrl+S para guardar las modificaciones.
  • main.xml: archivo XML que define el diseño de la interfaz de usuario de tu gadget. Si haces doble clic en esta entrada, se pulsa la pestaña main.xml en la parte superior del panel de visualización y se muestra el contenido de main.xml en dicho panel. Cuando arrastres los elementos de la interfaz y los sueltes en la vista principal del panel de visualización y establezcas los valores de propiedad, el contenido de este archivo cambiará correspondientemente. Sin embargo, no puedes editar directamente este archivo en el panel de visualización. Puedes hacerlo con un editor de archivos externo, como Emacs, vim, Bloc de notas, etc.
  • plugin_large.gif: archivo que contiene el icono de imagen grande asociado a tu gadget. Debes reemplazar este archivo con uno del mismo nombre que contenga un icono grande adecuado (32 x 32 píxeles) para tu gadget.
  • plugin_small.gif: archivo que contiene el icono de imagen pequeño asociado a tu gadget. Debes reemplazar este archivo con uno del mismo nombre que contenga un icono pequeño adecuado (12 x 12 píxeles) para tu gadget.
  • Directorio stock_images: contiene archivos de imagen de los componentes de la interfaz de usuario cargados previamente, como botones y casillas de verificación. Te recomendamos que los reemplaces con tus propios archivos de imagen o que los sobrescribas para sustituir el contenido con tus imágenes.

Recuerda que, para añadir, eliminar o copiar el contenido en archivos que se muestran en el panel de archivos, debes utilizar un navegador de archivos externo, como el Explorador de Windows. El panel de archivos debe considerarse como una pantalla de visualización del contenido de la carpeta de tu gadget, no como un medio para administrarlos.

Panel de archivos

Panel de visualización

Inicialmente, el área de visualización central consta de un cuadrado en blanco dentro de un cuadrado gris grande. Esta área en blanco será el aspecto actual de tu gadget y representará el objeto general view, que en un archivo XML representa el aspecto general de tu gadget. Cuando inicies el Diseñador y aún tengas que definir los elementos de la interfaz de usuario para tu gadget, el panel de visualización aparecerá en blanco, como se puede ver en la captura de pantalla situada a la derecha. Una vez que añadas el contenido en el área en blanco, podrás cambiar las propiedades del objeto general view, como su tamaño.

Panel de visualización

Pestañas

Inicialmente, la ventana central del panel de visualización presenta cuatro pestañas, dos en la parte superior y dos en la inferior. Ya hemos visto cómo se añade una pestaña main.js a la parte superior abriendo el archivo en el panel de archivos. Más adelante, veremos otras maneras de añadir o eliminar pestañas de la parte superior.

  • Pestañas superiores:
    • main.xml: cuando está seleccionada, el Diseñador muestra el contenido del archivo main.xml de tu gadget en el área del panel de visualización. Según la pestaña inferior que esté seleccionada, se mostrará la interfaz de usuario de tu gadget de acuerdo con el contenido XML o el código XML real.
    • Vista previa: muestra la interfaz de usuario de tu gadget y ejecuta las secuencias de comandos o las funciones asociadas con elementos de la interfaz. Fundamentalmente, esto te permite ejecutar y probar tu gadget fuera de la barra lateral y Google Desktop. De este modo, por ejemplo, si tu gadget cuenta con un botón que al pulsarlo ejecuta una función que cambia el color de fondo al siguiente en su gama de colores, cuando estés en el modo Vista previa podrás probar esta función, siempre y cuando las hayas escrito correctamente. Ten en cuenta que las pestañas inferiores desaparecen cuando la opción Vista previa esté activa.
  • Pestañas inferiores:
    • Diseñador: muestra la interfaz de usuario del gadget en cuestión.
    • Origen: muestra el código XML que define la interfaz de usuario del gadget.
Pestañas

Vista de escritura de archivos XML

El Diseñador permite arrastrar y soltar elementos de la interfaz de usuario y establecer sus propiedades en una vista principal o en una vista de opciones. Siempre que lo hagas, la aplicación actualiza automáticamente el archivo XML (ya sea main.xml o options.xml) que describe esa vista en particular. Esta actualización incluye añadir o eliminar elementos XML, establecer valores de las propiedades, etc.

También puedes editar los archivos XML uno por uno. Por lo tanto, antes de mostrarte cómo utilizar el Diseñador para arrastrar y soltar objetos y establecer propiedades, revisemos el formato de los archivos XML.

La sección Referencia de la API que aparece más adelante enumera las propiedades, los métodos y los eventos de los elementos que puedes definir en un gadget y sus vistas (por "vista" se entiende el aspecto general de un panel). Utiliza estos elementos en los archivos de la vista XML para especificar los componentes, el diseño y el comportamiento de la interfaz de usuario de tu gadget. La vista principal de tu gadget se define a través del elemento <view> en el archivo XML main.xml, que el Diseñador define automáticamente al crear un nuevo proyecto. Si tu gadget presenta una vista Opciones, también debes incluir un archivo options.xml, el cual define un elemento <view> diferente. En una definición <view> hay elementos XML que definen los objetos de la interfaz de usuario que forman esa vista. Por ejemplo, un archivo main.xml puede contener:

<view width="200" height="200">

<button image="button.png" overImage="button_over.png"
downImage="button_down.png" onclick="button_clicked()"/>

</view>

Este código define una vista de 200 x 200 píxeles con un botón. También especificamos, mediante las propiedades de objeto relevantes del button, imágenes distintas para el botón en estado normal, al colocar el ratón encima y al hacer clic en él. Cuando un usuario hace clic en el botón a través del evento onclick del button, invoca la función button_clicked(), la cual se define en otra ubicación.

Para especificar una propiedad en XML, añade propiedad="valor" a un elemento. Puedes especificar un fragmento de código del evento en XML añadiendo evento="secuenciacomandos" a un elemento. Como ocurre con DHTML, puedes manipular elementos de una secuencia de comandos una vez que se hayan creado, pero sólo si presentan la propiedad nombre. Por ejemplo:

<button name="sample_button" ... />

Cuando un elemento presenta un nombre, las secuencias de comandos pueden obtener acceso y manipularlo, así como invocar cualquier método asociado:

sample_button.property = "valor nuevo";
sample_button.event = "secuencia de comandos nueva";
sample_button.method();

Puedes utilizar funciones de secuencias de comando definidas en otra ubicación del paquete de archivos .gg, que incluyen archivos dedicados .js o .vbs (como la función button_clicked() utilizada en el ejemplo anterior), o puedes incluir funciones con secuencias de comandos en la definición <view>. Por ejemplo:


<view width="200" height="200" onopen="view_onopen()">
 <script language="jscript"><!--
  function view_onopen()
  {
    foo( "bar()", 1000 );
  }

  function bar()
  {
    x = 2 + 2;
  }

 --></script>

 <div background="#FFFFFF" width="200" height="200"/>
</view>

Sólo se puede definir un objeto contentArea en un objeto view. Si deseas obtener más información sobre contentArea, consulta la sección Referencia de la API.


Administración de eventos de gadget

El modelo de eventos de gadget es similar al de DHTML. La sección Referencia de la API que aparece más adelante enumera los eventos de algunos objetos, específicamente view y basicElement y algunos de sus objetos descendientes. Para especificar cómo administrar un evento para uno de estos objetos, coloca el evento y lo que debe hacer cuando esto suceda en la definición XML del objeto. Por ejemplo, para especificar lo que sucede cuando un objeto view presenta un evento onmouseover, deberías escribir:

<view onmouseover="do_something_when_mouse_is_over;"/>

...donde realizar_alguna_acción_cuando_se_coloque_el_ratón_encima es una parte de la secuencia de comandos, como alerta('ratón encima!') o una invocación a una función implementada en un bloqueo de secuencias de comandos, como view_onmouseover().

Como ocurre con DHTML, los eventos y sus administradores no tienen argumentos. En su lugar, la secuencia de comandos utiliza el objeto view.event para obtener información sobre el evento. Dado que se activa un solo evento cada vez, el objeto de event de la vista contiene información sobre el evento que se está activando.

La propiedad event.returnValue se puede utilizar para establecer un valor de devolución. Como ocurre con DHTML, este valor es un parámetro booleano que determina si se activa el comportamiento predeterminado del evento. Por ejemplo:

event.returnValue = false; // inhabilitar el comportamiento predeterminado
event.returnValue = true; // habilitar el comportamiento predeterminado
// no especificar un valor de devolución, habilitar el comportamiento predeterminado

En particular, la propiedad event.returnValue puede ser:

  • view.event.returnValue = false; //Inhabilitar el comportamiento predeterminado del evento de la vista
  • view.event.returnValue = true; //Habilitar el comportamiento predeterminado del evento de la vista

Por ejemplo:


    <edit onkeypress="edit_onkeypress()"/>
    function edit_onkeypress()
    {
     if( event.keyCode == 'j' ) event.returnValue = false;
    }
    

Cada vez que se pulsa una tecla cuando el control se encuentra en el objeto edit, se invoca la función edit_onkeypress(). Si pulsas la tecla j, como event.returnValue se establece en false, se cancela el evento y su valor de retorno usual, como si j nunca se hubiese pulsado. Efectivamente, este elemento <edit> no permite teclear la letra "j".


Administración de eventos de objetos anteriores a 4.0

El conjunto de objetos del gadget actual incluye algunos objetos del conjunto anterior a 4.0. Algunos de estos objetos, específicamente googleTalk y contentItem, presentan un modelo de administración de eventos diferente del descrito anteriormente. En la sección Referencia de la API que aparece más adelante, tienen asociados Event Handlers en lugar de sólo Events.

Para administrar un evento para estos objetos anteriores a 4.0 debes establecer una función de administrador para ese evento específico. Estas funciones del administrador se pueden establecer sólo en bloques de JavaScript o VBScript, no en definiciones XML, como objetos 4.0.

Los administradores de eventos son de sólo escritura; lo único que puedes hacer con ellos es asignarles una función. Si no estableces un determinado administrador, su acción predeterminada se produce en respuesta a su evento asociado. En las descripciones de la sección Referencia de la API, especificamos una firma prototipo para cada administrador de eventos; la función que asignes a un administrador de eventos en particular deberá coincidir con la firma de su prototipo.

Observemos las partes relevantes del código de muestra Opciones y Menú para ver un ejemplo del uso del administrador de eventos.


    // propiedades del gadget que se establecen, similar al ejemplo de Hola mundo.
    // ...
    // Asociar el evento deAñadirElementosMenúPersonalizados del objeto del gadget con
    // una función definida en la secuencia de comandos.
    plugin.onAddCustomMenuItems = deAñadirElementosMenúPersonalizados;  // administrador para añadir elementos del menú    

    // ...

    function AddCustomMenuItems(menu) {
      // Añadir varios diseños de elementos como elementos de menú y verificar
			// el que está seleccionado en esos momentos
      var itemLayout = options.GetValue("item_layout");
      for (var i = 0; i < menuItems.length; ++i) {
        if (i == itemLayout) {
          menu.AddItem(menuItems[i], gddMenuItemFlagChecked, MenuItemClicked);
        } else {
          menu.AddItem(menuItems[i], 0, MenuItemClicked);
        }
      }    
    }

    // ...
   

En este caso, asignamos la función AñadirElementosMenúPersonalizados al evento deAñadirElementosMenúPersonalizados del objeto complemento. Ten en cuenta que el valor asignado consta sólo del nombre de la función, no de su firma completa de parámetro. Este evento ocurre cuando la barra lateral quiere iniciar el menú del gadget antes de mostrarlo.

El prototipo que se muestra para AñadirElementosMenúPersonalizados es AñadirElementosMenúPersonalizado(menú), por lo que nuestra función asignada también debe tomar un solo argumento, un objeto menu.


Conceptos básicos sobre objetos

En esta sección, observaremos varios objetos, concentrándonos en su función y su relación.

    Objeto gadget

El objeto gadget se utiliza para dos fines muy diferentes en el nivel general del gadget.

  • Los métodos de gadget.debug ayudan a depurar mostrando la cadena que deseas en la consola de depuración cuando ejecutas el modo de depuración.

    Para ejecutar en modo de depuración, descomprime tu gadget y, en él, haz doble clic en el archivo gadget.gmanifest. Esto permite desarrollar tu gadget sin tener que comprimirlo cada vez que desees probarlo.

    Los mensajes de depuración aparecen en la consola de depuración sólo cuando el gadget se indica desde una carpeta (haciendo clic en gadget.gmanifest). No se muestran si inicias el gadget desde el archivo .gg. Los mensajes aparecen en la consola de depuración del Diseñador o en gdpconsole.exe que se suministra con el kit de desarrollo de software de Google Desktop.

  • Los métodos de gadget.storage funcionan con los archivos que integran el paquete general de gadgets. Estos métodos te permiten extraer o abrir un archivo desde el paquete. Los argumentos del nombre de archivo para el objeto de almacenamiento pueden ser cualquiera de los siguientes:
    • "foo.xml" busca foo.xml en la carpeta raíz del archivo .gg. Si no lo encuentra, buscará en las carpetas de la localización (por ej., 1033\foo.xml).
    • "subcarpeta\foo.xml" busca foo.xml en la carpeta de la subcarpeta del archivo .gg. Si no lo encuentra, buscará en carpeta de la subcarpeta de la localización (por. ej. 1033\subcarpeta\foo.xml).
    • "c:\bar.xml" busca bar.xml en la unidad c:\. Debes indicar la ruta exacta.

    Objeto view

Debes definir un objeto view para cada aspecto del panel que tiene el gadget. Cada uno de estos debe incluirse en un archivo .XML separado. Al crear un proyecto, el Diseñador crea automáticamente un archivo main.xml con un objeto view. También puedes crear un archivo options.xml con su propio objeto view.

Las propiedades y métodos de view definen y acceden al comportamiento general de un panel de vistas. Ello incluye los elementos de la interfaz de usuario que conforman el aspecto del panel, el tamaño de este, si el usuario puede cambiarle el tamaño, los controles para la ejecución de secuencias de comandos, la adición o eliminación de elementos de la interfaz y la visualización de cuadros de diálogo de mensaje y confirmación.

Los eventos de view se activan y ejecutan una función basada en varios botones del ratón, teclas, cambios de tamaños y de los valores de propiedades o acciones del cursor, así como cuando esta vista se abre por primera vez.

    Objetos basicElement y de la interfaz de usuario

basicElement es el objeto principal de varios elementos de la interfaz de usuario que conforman el aspecto visual de una vista en particular. basicElement en sí mismo nunca puede crear una instancia; sólo proporciona un conjunto de propiedades y eventos comunes para sus objetos descendientes de la interfaz.

Las propiedades especifican el tamaño y la posición del elemento, su nombre, la visibilidad y la opacidad, y otras propiedades generales de los elementos de la interfaz de usuario.

Los eventos son los que suelen asociarse con un objeto de la interfaz: acciones relacionadas con clics del ratón o rueda de desplazamiento, arrastrar y soltar el elemento, acciones del teclado, teclas y movimientos del cursor.

Puedes definir los siguientes descendientes basicElement:

  • button: propiedades específicas que te permiten establecer varias imágenes para el botón y sus diversos estados.
  • checkbox: propiedades específicas que te permiten establecer varias imágenes para la casilla de verificación y sus diversos estados, así como determinar si la casilla está marcada o no. Un evento se activa cuando cambia el valor de la casilla marcada.
  • object: Control ActiveX incrustado sin ventanas. Se utiliza para la incrustación del Reproductor de Windows Media.
  • div: se utiliza para establecer colores o imágenes de fondo del elemento.
  • edit: propiedades específicas que permiten controlar el aspecto del contenido del texto y establecer o recuperar su contenido de texto. Un evento se activa cuando cambia el contenido.
  • img: propiedades específicas que permiten establecer la imagen que se mostrará y obtener sus dimensiones originales. También dispone de un método para cambiar el tamaño de una imagen.
  • label: propiedades específicas que permiten controlar el aspecto del texto de la etiqueta y la posición o alineación.
  • a: objeto de vínculo con propiedades específicas que permiten controlar el aspecto del vínculo y su URL.
  • progressBar: propiedades específicas que controlan el aspecto de la barra de progreso y sus componentes, así como un evento que se activa cuando el valor cambia.

También está el objeto elements, que representa un contenedor de objetos que descienden de basicElement.

    Objeto options

Almacena opciones y sus valores como un diccionario o mapa estándar. A continuación se indican dos maneras idénticas de establecer un valor:
options("tecla") = "valor";
options.item("tecla") = "valor";

Como ocurre con todos los diccionarios, puedes añadir elementos a través de dos métodos:
options("tecla") = "valor"; // Añadir o reemplazar valor actual.
options.add("tecla", "valor"); // Añadir el valor; si ya existe, no hacer nada.

La propiedad defaultValue permite que las teclas muestren valores predeterminados si la tecla no tiene un valor real asociado en el diccionario, sin tener que verificar si existe un valor para esa tecla. Por ejemplo:

options.defaultValue("color") = "rojo";

El diccionario ahora mostrará "rojo" siempre que se solicite "color" y este no exista realmente en el diccionario. Por ejemplo:

options.defaultValue("color") = "rojo";
options("color") = "azul";
debug.trace(options( "color")); // muestra "azul"
options.remove("color");
debug.trace(options("color")); // muestra "rojo" (el valor predeterminado)
options("textura") = "desigual";
debug.trace(options("textura")); // muestra "desigual"
options.remove("textura");
debug.trace(options("textura")); // muestra "" (porque no hay un valor predeterminado)

    Objetos anteriores a 4.0 (googleTalk, friend, ContentItem,menu, DetailsView)

Se incluyeron cuatro objetos, googleTalk, friend, ContentItem y menu, del modelo de desarrollo anteriores a 4.0 en el modelo de 4.0. Recuerda que, cuando utilices los administradores de eventos de googleTalk o menu en tu código, debes utilizar el modelo de administración de eventos anterior a 4.0. Además, a diferencia de otros elementos de la interfaz de usuario, estos no descienden de basicElement.

Si deseas obtener más información sobre cómo utilizar los objetos googleTalk y friend para escribir gadgets que se puedan comunicar con los gadgets que se ejecutan en otros equipos, consulta el documento sobre la API de comunicación de la barra lateral de Google Desktop (Documentación adicional sólo disponible en inglés).

Los objetos menu y sus métodos permiten construir un menú de varios elementos para tu gadget, incluida la asociación de funciones del administrador para cuando un usuario hace clic en un elemento del menú.

Los objetos ContentItem se pasan entre gadgets que se ejecutan en diferentes equipos y pueden formar elementos de la interfaz de usuario contenidos en un objeto contentArea.

DetailsView es una función de la interfaz de usuario que permite a un gadget mostrar información adicional en una ventana o un gadget independiente fuera de la barra lateral. Los gadgets que hacen uso de esta función también pueden recibir notificaciones y eventos de la vista de información detallada.

Nombre de espacio framework

El espacio de nombre framework expone las API que rellenan los espacios que deja Windows Scripting Host y resultan útiles para la implementación del gadget. En particular, los objetos framework.* no descienden de basicElement y no se muestran en las definiciones de objetos de la interfaz XML del gadget. framework es básicamente un espacio de nombre de objetos del tipo .NET que se utiliza para solicitar información del sistema, y que emplean las secuencias de comandos invocadas por los eventos en los objetos de la interfaz de usuario definidos con código XML.

Los objetos framework y sus métodos y propiedades permiten realizar lo siguiente:

  • mostrar cuadros de diálogo Buscar archivos;
  • cargar imágenes,
  • conocer la ubicación del cursor,
  • obtener información acerca de la capacidad y uso de la memoria del sistema,
  • obtener información acerca de las capacidades y la conexión inalámbrica del sistema,
  • establecer y supervisar los contadores que controlan cuándo se ejecuta el código de la secuencia de comandos,
  • obtener información acerca de la fuente de alimentación del sistema y la capacidad de la batería (cantidad total restante),
  • obtener información acerca del procesador del sistema,
  • obtener las dimensiones de la pantalla del sistema.

Finalmente, existen otros dos objetos definidos que se utilizan sólo para tipos dentro del espacio de nombre framework:

  • point: representa un punto, con las propiedades de coordenadas x- e y-.
  • size: representa el tamaño de un objeto, con las propiedades de altura y ancho.

Para ejemplificar cómo se podrían utilizar los objetos framework, escribamos un gadget simple que muestre cuánta energía queda en la batería de tu equipo portátil:


<view width="200" height="200" onopen="view_onopen()">
 <script language="jscript"><!--
  function view_onopen()
  {
    setInterval( "update_battery()", 1000 );
  }

  function update_battery()
  {
    percent_used.innerText = system.power.percentRemaining + "%";
  }

 --></script>

 <div background="#FFFFFF" width="200" height="200"/>

 <label name="percent_used" align="center" valign="middle">0%</label>
</view>

Hemos definido una vista de 200 x 200 píxeles con dos elementos:

  • <div> con un color de fondo blanco
  • <label> con el valor percent_used que inicialmente es 0%.

Cuando se carga el gadget, se activa el evento view::onopen, que invoca view_onopen(). Esta función establece un intervalo para que update_battery() se invoque cada segundo. update_battery() utiliza el objeto y la propiedad system.power.percentRemaining del nombre de espacio framework para actualizar innerText del elemento percent_used.

Ten en cuenta que no fue necesario colocar framework. antes de system.power.percentRemaining; depende de ti hacerlo o no.


Arrastrar y soltar objetos de la interfaz de usuario

Arrastrar y soltar iconos de la interfaz de usuario

Esta es la forma en que inicialmente se define la interfaz de usuario del gadget en el Diseñador. Haz clic sobre cualquiera de estos ocho elementos de interfaz de usuario y arrástralo hasta la posición del área blanca de la pantalla en la que quieres que aparezca en el gadget. Al soltar el botón del ratón, el elemento de la interfaz de usuario estará en el gadget y además aparecerá seleccionado. Al estar seleccionado, sus propiedades y valores aparecerán en el panel de propiedades situado a la derecha. Para seleccionar un objeto de la interfaz, bastará con hacer clic en uno de ellos.

Los objetos de interfaz de usuario cuentan con todos los elementos, métodos y eventos que se describen en la sección Referencia de la API. Recuerda que los objetos que se enumeran en dicho apartado proceden todos del objeto basicElement; por lo tanto, consulta las descripciones de cualquier propiedad o evento que no se hayan especificado para un objeto en particular. Los ocho elementos de interfaz de usuario son:

  • Div: se utiliza para configurar el color de fondo del gadget o de un elemento de la interfaz. Además, ofrece un enlace para insertar o eliminar, por medio de programas, elementos de interfaz de usuario del elemento que los contiene.
  • Image: especifica una imagen para mostrar en la vista.
  • Button: objeto con un solo botón.
  • Edit: especifica el área en donde el usuario del gadget puede editar el contenido de texto.
  • Check: objeto casilla de verificación.
  • Link: define un vínculo HTML.
  • Text Label: un objeto de etiqueta de texto fijo.
  • Content: un objeto de contención ContentArea. Para saber cómo utilizarlo consulta la sección Referencia de la API.

Los elementos de la interfaz de usuario progressbar y object no están disponibles como elementos para arrastrar y soltar de Diseñador, pero se pueden definir en código XML. Recuerda que el Diseñador no permite editar directamente los archivos XML del gadget; para ello, debes utilizar un programa de edición externo.


Panel de elementos

Cuando haya uno o varios elementos de interfaz de usuario en el panel de visualización, podrás seleccionarlo de las siguientes formas:

  • con un sólo clic sobre el elemento que está en el panel de visualización,
  • con un clic sobre el nombre de elemento en el panel de elementos.

Cuando un objeto se coloca por primera vez en el panel de visualización, aparecerá como un dependiente del elemento view en el panel de elementos, y sólo se lo podrá identificar por su tipo. Entonces, por ejemplo, si has arrastrado el elemento Button al panel de visualización dos veces, el panel de elementos mostrará dos elementos, ambos designados por button. Si le das un nombre a un elemento, por ejemplo, Botón1, aparecerá en el panel de elementos como button (Botón1).

Recuerda que la única forma de acceder a las propiedades y los elementos del objeto view del Diseñador es mediante un clic en la entrada view en el panel de elementos.

Panel de elementos

Panel de propiedades

El panel de propiedades muestra las propiedades y sus valores para el objeto de interfaz de usuario que está seleccionado. Aquí también puedes editar los valores de propiedad de un objeto y las funciones asociadas a sus eventos.

Para editar un valor de propiedad, haz clic sobre el nombre o el valor. Las opciones de datos dependen del tipo de propiedad.

  • Si se trata de una propiedad booleana, el valor cambia y muestra un menú desplegable con los valores true y false. Haz clic en el valor que deseas asignar a la propiedad.
  • Si es una propiedad con valor numérico o textual, escribe el nuevo valor en el campo correspondiente y pulsa Intro.
  • Algunos valores de propiedad, como mask o background de div, pueden ser un archivo o una cadena. Para este tipo de propiedad aparece un pequeño cuadro con tres puntos. Si haces clic en el cuadro, aparecerá la ventana de navegación Abrir archivo que permite elegir un archivo como el valor de la propiedad. Si prefieres un valor de cadena, escríbela en el campo de valores y pulsa Intro.

Si es necesario, la pantalla cambia para reflejar el nuevo valor de propiedad del objeto de interfaz de usuario.

Algunas propiedades, como por ejemplo cursor, presentan una cantidad definida y limitada de valores permitidos. El Diseñador no comprueba si el valor que has introducido forma parte del conjunto de valores permitidos de la propiedad. Sin embargo, cuando trates de mostrar la vista, se generará un error.

Además, recuerda que el objeto view, al que se puede acceder seleccionándolo en el panel de elementos, cuenta con su propio conjunto de propiedades y eventos. Si, por ejemplo, deseas cambiar el tamaño de la vista, haz clic en view en el panel de elementos y, a continuación, cambia los valores de la height o del width en el panel de propiedades.

En el caso de los eventos, en el campo de valores introduce el nombre de una función definida en un archivo de secuencia de comandos que esté incluido en el gadget. Por ejemplo, para el evento onOpen de view, puedes escribir view_onOpen(), como se define en la función main.js, en su campo de valores.

Panel de propiedades

Panel de secuencias de comandos

Este panel muestra todos los archivos de secuencia de comandos que utiliza el gadget en el archivo XML que aparece en ese momento. Cuando termines de diseñar el gadget, estos archivos se comprimirán junto con los archivos XML de la interfaz de usuario y los archivos de imágenes. De forma predeterminada, inicialmente sólo contiene un archivo main.js, pero puedes añadir otros archivos de secuencias de comandos o eliminar main.js.

Para añadir un archivo de secuencias de comandos al panel de secuencias de comandos, haz clic sobre el icono de hoja de papel situado a la izquierda de los tres iconos. Se abrirá un navegador de archivos que está establecido para mostrar sólo los archivos de secuencia de comandos, comenzando por la carpeta de tus gadgets. Busca el archivo de secuencia de comandos que deseas añadir y haz clic en Abrir. Para poder añadirlo, el archivo debe existir previamente. A diferencia de los comandos Archivo->, este copia el archivo de secuencia de comandos en la carpeta del proyecto; como consecuencia, el Diseñador lo muestra en el panel de archivos. También añade una línea <script src="filename" /> en el archivo XML del gadget que esté activo en ese momento en el panel de visualización. Así pues, por ejemplo, si main.xml está activo, la línea <script src="filename"/> se añade sólo a main.xml y no a options.xml.

En el panel de secuencias de comandos, una vez que hayas seleccionado uno de los archivos de secuencias de comandos haciendo clic sobre él, puedes:

  • Hacer clic en el icono de carpeta medio abierta para abrir el archivo y editarlo. A continuación, se añadirá una nueva pestaña en la parte superior con el nombre del archivo correspondiente, y la pantalla cambiará el panel visualización por un panel de edición con el contenido del archivo.
  • Eliminar el archivo del panel de secuencias de comandos haciendo clic sobre el icono X que se encuentra a la derecha. Recuerda que la secuencia de comandos se elimina automáticamente sin que aparezca un diálogo de confirmación; además, el archivo de secuencias de comandos sigue presente en el panel de archivos y se comprimirá como parte del gadget a menos que también lo elimines de la carpeta de gadgets por medio de un navegador de archivos externo.

Un aspecto a tener en cuenta es que el panel de secuencias de comandos no muestra los archivos de secuencias de comandos almacenados en la carpeta del proyecto, sino las secuencias de comandos que se utilizan en el archivo XML que define las vistas y que se muestra en esos momentos.

Si consultas main.xml justo después de su creación mediante Archivo->Proyecto nuevo, observarás que presenta una línea <script src="main.js" /> en su elemento <view>. main.js también aparece en el panel de secuencias de comandos y en el panel de archivos.

Si eliminas main.js del panel de secuencias de comandos <script src="main.js" /> desaparecerá del elemento <view>. Es decir, la vista del gadget no reconocerá ninguna de las funciones definidas en el archivo. El archivo todavía se encuentra en la carpeta del proyecto, y se debe eliminar a través de un navegador de archivos externo (si deseas eliminarlo); de lo contrario, se comprimirá en el archivo .gg junto con los demás archivos del proyecto.

Por último, ten en cuenta que, de forma predeterminada, cuando creas un proyecto nuevo, main.xml automáticamente contiene la línea <script src="main.js" />, y main.js contiene una definición de la función view_onOpen() que utiliza main.xml. Si eliminas main.js del panel de secuencias de comandos sin reemplazarlo con una definición de función o sin sobrescribir main.xml para que ya no utilice view_onOpen(), obtendrás un mensaje de error.

Panel de secuencias de comandos

Comandos del menú

En la parte superior de la ventana del Diseñador se muestran cinco comandos, cada uno con un menú desplegable; Archivo, Edición, Ver, Proyecto y Ayuda. Analicemos detalladamente cada uno de ellos.

Comandos del menú

      Comandos del menú Archivo

Archivo cuenta con siete comandos de menú:

  • Proyecto nuevo: abre un cuadro de diálogo Guardar como para que especifiques el nombre y el lugar donde deseas guardar la carpeta del nuevo proyecto. Cuando haces clic en Aceptar, el nuevo proyecto aparece en la ventana del Diseñador. Nota: Si ya había un proyecto activo en la ventana del Diseñador, no se le preguntará al usuario si desea guardarlo antes de abrir el nuevo. El método abreviado de teclado es Ctrl+Mayús+N.
  • Abrir proyecto: abre el cuadro de diálogo Buscar carpeta para que puedas localizar la carpeta de un proyecto que ya existente. Cuando hayas seleccionado una, haz clic en Aceptar. Si la carpeta elegida no contiene un archivo main.xml, aparecerá un mensaje de error y se anulará la operación. De lo contrario, el proyecto seleccionado se abrirá en la ventana del Diseñador. El método abreviado de teclado es Ctrl+Mayús+O.
  • Cerrar proyecto: cierra el proyecto actual y deja la ventana del Diseñador en blanco con los comandos del menú en la parte superior. Recuerda que no se te preguntará si deseas guardar el proyecto que está abierto en ese momento. Este comando no cuenta con ningún método abreviado de teclado.
  • Abrir: abre un navegador de archivos configurado para mostrar archivos XML. Si seleccionas y abres un archivo, se crea una nueva pestaña superior con el nombre de archivo en cuestión. Además, abrirá la nueva pestaña con el contenido del archivo en el área del panel de visualización. El nuevo archivo no se añade a la carpeta de tu gadget como se muestra en el panel de archivos, ya que el archivo no se encuentra en la carpeta del proyecto. Para añadir un archivo a la carpeta del proyecto, utiliza un navegador de archivos externo, como el Explorador de Windows. El método abreviado de teclado pertinente es Ctrl+O.
  • Guardar: guarda cualquier archivo de gadget que se encuentre abierto Utiliza esta opción cada vez que edites un archivo o cambies las propiedades de un objeto de la interfaz de usuario. El método abreviado de teclado correspondiente es Ctrl+S.
  • Cerrar: cierra de forma inmediata todo archivo visible en ese momento en el panel de visualización y elimina la pestaña superior del archivo. El archivo permanecerá en el panel de archivos. El método abreviado de teclado pertinente es Ctrl+F4.
  • Salir: muestra un cuadro de diálogo solicitándote si deseas guardar los cambios en el archivo main.xml. Después de hacer clic en o No, se cierra el Diseñador de gadgets El método abreviado de teclado es Alt+F4.

Además, los proyectos recientes aparecen en una sección del menú justo por encima del comando Salir. Si haces clic en uno de ellos, se abrirá en el Diseñador.

Comandos de Archivo

      Comandos del menú Edición

Edición cuenta con seis comandos de menú:

  • Deshacer: deshace la acción que hayas realizado en el Diseñador, como cambiar el valor de una propiedad, mover un objeto de interfaz de usuario, crear un objeto nuevo, etc. Utiliza esta acción de forma consecutiva para deshacer varias operaciones. El método abreviado de teclado es Ctrl+Z.
  • Rehacer: esta opción no estará habilitada a menos que hayas realizado una operación de deshacer; con ella, se volverá a realizar la última operación de deshacer. Si se han realizado varias acciones de deshacer de forma consecutiva, es posible realizar varias acciones de rehacer para restaurar el estado del Diseñador. El método abreviado de teclado pertinente es Ctrl+Y.
  • Cortar: operación estándar que permite cortar y que funciona al seleccionar los elementos de la interfaz de usuario en el panel de visualización. El método abreviado de teclado es Ctrl+X.
  • Copiar: operación estándar que permite copiar y que funciona al seleccionar los elementos de la interfaz de usuario en el panel de visualización. Cuando se copia un objeto de la interfaz de usuario, se hace una copia exacta que incluye todos los valores de propiedad. Así, por ejemplo, si se copia un botón con el nombre Botón2, la copia también tendrá el valor Botón2 para su propiedad de nombre. Los dos botones serán idénticos en el panel de elementos. El método abreviado de teclado es Ctrl+c.
  • Pegar: operación estándar que permite pegar y que funciona al seleccionar los elementos de la interfaz de usuario en el panel de visualización. El método abreviado de teclado es Ctrl+v.
  • Eliminar: operación de eliminación estándar que funciona con los elementos seleccionados de la interfaz de usuario en el panel de visualización. El método abreviado de teclado es la tecla Supr.

Comandos de Edición

      Comandos del menú Ver

Ver cuenta con cinco comandos de menú:

  • Actualizar: actualiza los objetos y paneles de la ventana del Diseñador. El aspecto más importante es que reinicia todas las variables globales y los valores de propiedad del gadget, y todo código de alcance global se ejecuta ahora desde el principio. Fundamentalmente, restablece el gadget a su estado original, que resulta de gran utilidad para su evaluación. El método abreviado de teclado es la tecla F5.
  • Pestaña siguiente: muestra la pestaña superior situada a la derecha de la pestaña que está seleccionada en ese momento. Si la pestaña que está seleccionada es la última, la opción volverá a comenzar por la primera. El método abreviado de teclado es Ctrl+Tab.
  • Pestaña anterior: muestra la pestaña superior situada a la izquierda de la pestaña que está seleccionada en ese momento. Si la pestaña que está seleccionada es la primera, la opción volverá a comenzar por la última. El método abreviado de teclado es Ctrl+Mayús+Tab.
  • Consola de depuración: abre una consola de depuración en la parte inferior de la ventana del Diseñador. Concretamente, ocupa el espacio que utilizaba previamente el contenido de la ventana; te recomendamos cambiar el tamaño de la ventana para que los otros contenidos vuelvan a su tamaño original. Según las casillas de verificación que estén seleccionadas, aquí aparecerán los mensajes de depuración, mensajes informativos, de advertencia o de error cuando se previsualice o se ejecute el gadget. También se puede elegir si deseas que los mensajes incluyan información sobre cuándo aparecieron. Para que la Consola de depuración sea invisible, haz clic una vez más en el elemento de menú Consola de depuración.
  • Ventana de vista previa: muestra en el panel de visualización el gadget en modo de ejecución; podrás poner a prueba la interfaz de usuario y ver cómo funciona. Es lo mismo que hacer clic sobre la pestaña superior Vista previa.

Comandos de Ver

      Comandos del menú Proyecto

Proyecto cuenta con tres comandos de menú:

  • Configuración: Muestra el cuadro de diálogo Configuración del proyecto. El método abreviado de teclado es la tecla F3.
  • Añadir vista de opciones añade un archivo options.xml al proyecto, una pestaña options.xml en la parte superior y atenúa la función Añadir vista de opciones ya que sólo se puede definir un archivo options.xml por proyecto. Después de hacer clic en esta opción, deberás crear y probar la vista de opciones y su interfaz de usuario, al igual que con la vista principal.
  • Crear paquete: comprime todos los archivos del gadget y los coloca en un archivo Nombre_proyecto.gg para su distribución. El método abreviado de teclado es la tecla F7.

Comandos de Proyecto

      Comandos del menú Ayuda

Ayuda cuenta con dos comandos de menú:

  • Guía del usuario: abre el documento en una ventana del navegador.
  • Acerca de: muestra un mensaje con información breve sobre el Diseñador.

Comandos de Ayuda


Comunicación entre los gadgets de la barra lateral

Los gadgets de la barra lateral pueden establecer comunicación con los gadgets de la barra lateral que se ejecuten en otros equipos, siempre y cuando se cumplan las siguientes condiciones:

  • Los gadgets deben ser los mismos, un gadget Tres en raya se puede comunicar con otro gadget Tres en raya, pero no con un gadget Bloc de notas o viceversa.
  • Los usuarios de los gadgets que deseen establecer comunicación deben haber accedido a Google Talk.

Google Talk sirve de medio de comunicación para los gadgets de la barra lateral Cuando un usuario accede a Google Talk, el gadget en cuestión es capaz de obtener una lista de los amigos de Google Talk que están online en ese momento. Una vez que dispone de esa lista de amigos, el gadget puede enviar y recibir datos del gadget que se está ejecutando en el equipo del amigo que se encuentra online. Si el amigo no tiene la barra lateral instalada, el gadget puede enviarle un mensaje de texto.

Cuando se añade capacidad de comunicación a un gadget basado en secuencias de comandos, se utiliza la variable global googleTalk tanto para enviar datos como para establecer la función de administrador que se invoca cuando el gadget recibe información.

El primer paso para enviar datos es hacer referencia a la propiedad friend de googleTalk; con ello se obtiene un conjunto de objetos friend formado por tus amigos de Google Talk online.

Un objeto friend cuenta con cinco propiedades:

  • name: nombre visible en Google Talk.
  • user_id: el número de identificación del usuario de Google Talk, que se envía como el parámetro del destinatario del mensaje o de los datos a los métodos de envío de datos o mensajes.
  • email_address: dirección de correo electrónico del amigo.
  • has_sidebar: indicador booleano que informa de si el amigo tiene instalada la barra lateral. Es necesario verificar la existencia de dicha barra antes de intentar enviar los datos.
  • status: el estado del amigo de Google Talk, ya sea online, inactivo u ocupado; se representa con los valores 0, 1 y 2 respectivamente.

Una vez que la secuencia de comandos dispone del conjunto de amigos de Google Talk, les envía datos mediante uno de los métodos que se describen a continuación:

  • SendTalkData(id_amigo, datos): envía la cadena de datos (no debe superar los 2.000 caracteres) al amigo que identificado mediante la barra lateral de id_amigo; concretamente, envía los datos al mismo gadget de la barra lateral del amigo desde el que se solicita el método.
  • SendTalkText(id_amigo, mensaje): envía un mensaje de texto de hasta 2.000 caracteres al usuario de Google Talk con el valor id_amigo. Este método se utiliza normalmente cuando el amigo no tiene la barra lateral instalada.

Para poder recibir los datos, es necesario asociar una función para administrarla con el administrador de funciones onReceiveTalkData de googleTalk. La firma de tu función debe ser nombre(objeto_amigo, cadena_datos). Esta función se solicitará cada vez que el gadget reciba datos; por lo tanto, debes escribirla para que pueda utilizar cualquiera mensaje que envíe otro gadget.

Los gadgets de secuencias de comandos que utilizan la API de comunicación no deben ejecutar los datos que reciben, es decir, invocando eval(). Esto representa un problema porque un usuario malicioso podría modificar el gadget para enviar una secuencia de comandos que se ejecutaría en el equipo del un amigo. La secuencia de comandos que se recibe se ejecutará con derechos locales y, por lo tanto, tendrá acceso a los archivos y a los recursos locales. Para protegerse de ello, se comprueban las solicitudes eval() para asegurarse de que no estén evaluando datos recibidos.

Para obtener un ejemplo de comunicación entre gadgets, consulta el código de ejemplo para Tres en raya que se incluye en el kit de desarrollo de software.



Interfaz de usuario y directrices de uso

Cuando diseñes tu gadget, recuerda estos principios generales:

  • Procura que los gadgets sean simples, claros y pequeños.

    La presencia de la barra lateral es muy limitada, por lo que sólo debes utilizar el espacio que realmente necesites para mostrar la información. Las paletas de colores simples ofrecen una vista más clara, ayuda a diferenciar a los gadgets y evita confusiones.

  • Pon a prueba la facilidad de uso del gadget durante la etapa de desarrollo

    Trata que otras personas utilicen tu gadget a medida que desarrollas las funciones. Reconsidera aquellos aspectos de la interfaz de usuario que resulten confusos o difíciles de usar. En particular, asegúrate de que el contenido de la Ayuda sea claro, útil y completo.

Los usuarios esperan que su interacción con los gadgets de la barra lateral sea coherente entre ellos. Las secciones a continuación especifican indicios visuales y acciones generales que deben ser las mismas en todos los gadgets de la barra lateral.



      Diseño general

Tu gadget debe ofrecer tantas alternativas para las acciones y la información como sea posible. Concretamente:

  • Proporcionar alternativas de ratón y teclado para los comandos del gadget, incluidos métodos abreviados de teclado para los comandos del menú.
  • Sugerencias de ayuda:
  • Proporcionar un panel de vista con información detallada, si procede, así como un menú contextual con las acciones disponibles que se active haciendo clic con el botón derecho del ratón.



      Entrada de datos mediante el ratón

Dado que los usuarios interactúan con la mayoría de los gadgets a través del ratón, la entrada de datos relacionados concretamente con la interfaz de usuario debe ser coherente en toda la barra lateral para evitar confusiones. Los indicios visuales de seguimiento informan a los usuarios del tipo de clics admiten los tres tipos de elementos de mosaico principales.

  • Elementos: muestra el contenido principal del gadget, como los artículos periodísticos en un gadget de noticias.
    • Un solo clic selecciona un elemento y abre la vista de información detallada correspondiente.
    • Doble clic abre el elemento en una nueva ventana de aplicación y lo selecciona en la barra lateral.
    • Ratón sobre el elemento resalta temporalmente el elemento.

  • Artilugios: ejecutan alguna acción cuando se hace clic sobre ellos, como botones, casillas de verificación, estrellas, etc.
    • Un solo clic. Los doble clic se reservan para abrir elementos.
    • Los estados ratón sobre el elemento o clic con el ratón difieren de los estados normales.
    • Deben tener un aspecto que permita hacer clic sobre ellos, como un gráfico con sombreado en 3D.
    • Para que se pueda diferenciar del texto normal, el texto que funcione como artilugio deberá cumplir con estas condiciones:
      • Mostrar un icono junto al texto sobre el que se puede hacer clic (consulta el ejemplo del botón Eliminar que se ofrece a continuación).
      • El estado de ratón sobre el elemento debe mostrar un aspecto parecido al de un botón o sobre el que se pueda hacer clic.
    • Los artilugios no son elementos o parte de estos. Al hacer clic sobre un artilugio no debe abrirse la vista con información detallada de un elemento.
    • Crear el mismo aspecto e imagen del botón en toda la barra lateral utilizando el DrawItemBackground compatible (establecido con distintas marcas) en el texto y los gráficos.
    • Ejemplos de artilugios:
        estado normal ratón sobre el elemento clic con el ratón
      casilla de verificación
      (gadget de tareas pendientes)
      casilla de verificación normal ratón por encima de la casilla de verificación clic en casilla de verificación
      botón Eliminar
      (vista con información detallada)
      botón Eliminar ratón encima del botón Eliminar clic en el botón Eliminar
  • Indicadores de estado: iconos o gráficos que muestran información secundaria.
    • Si forman parte de un elemento, heredan todos los comportamientos de ratón del elemento.
    • El gráfico no debe cambiar de aspecto cuando se coloca el ratón encima y cuando se hace clic en él, ya que, por lo general, no es posible hacer clic los elementos.
    • Ejemplos de estados (luna que indica fuera del horario de mercado, actividad de la red, nubes):



Visualización

      Gráficos e iconos

  • Debes proporcionar un icono para el gadget en 2 tamaños. El diseño debe ser fácil de entender y debe adecuarse a las funciones que realiza.

    • 12 x 12 píxeles: aparece en la barra de título del gadget.

    • 32 x 32 píxeles: aparece en el cuadro de diálogo de Acerca de este gadget y en la interfaz de usuario de Alertas (si el gadget admite la aplicación).

  • Los iconos del gadget deben ser de 12 x 12 píxeles. Usa una forma y una paleta de color simples ya que es de un tamaño muy pequeño y, además, ayudará a identificar el gadget rápidamente.

  • El siguiente grupo de iconos de 12 x 12 es parte del grupo de gadgets predeterminados de la barra lateral. Debes intentar que el diseño de tus iconos combine con estos: formas simples y redondeadas y, en su mayoría, están formados por distintas matices de un único color predominante. La imagen es una representación plana en 2D de lo que contiene el gadget. Cada uno presenta un borde de 1 píxel en un matiz del color principal.


      Colores


  • Usa los colores con moderación. Si un tono de gris luce bien, utilízalo en lugar de otro color.

  • No uses colores muy intensos o combinaciones que tengan un contraste muy alto o muy bajo. Trata de evitar el cansancio visual. La imagen de la izquierda sería un buen ejemplo de combinación del color, mientras que la de la derecha, dificulta la lectura.

  • No dependas del color únicamente para marcar diferencias ya que podría causar problemas para los usuarios daltónicos . Este ejemplo indica las direcciones del cambio en los precios de acciones tanto por medio del color (rojo/verde) como por medio de texto (+/-).


      Texto

  • El tipo y tamaño de fuente especificada es la misma que utiliza la barra lateral para mostrar el texto.

  • El texto normal es negro, mientras que el texto menos importante es color azul marino [#224499 o rgb(34, 68, 153)] o gris [#666666 o rgb(102, 102, 102)].

  • Dentro de lo posible, evita utilizar el formato negrita, ya que sobresale demasiado del resto de la barra lateral.


Formato y diseño
Los gadgets de la barra lateral pueden tener cuatro vistas diferentes; normal, minimizada, expandida, y detallada.
  • Vista normal: apariencia normal

    Si dispones de una lista de elementos, como clips de la web, puedes utilizar el diseño de lista que ofrece la API. Si se muestra sólo un elemento, como una fotografía, utiliza el diseño de lista de un solo elemento. El propósito de tu gadget debe ser claro con sólo observar el contenido de esta vista.

    Recuerda que la capacidad de mostrar más o menos información depende el ancho de la barra lateral. Siempre que sea posible, evita usar barras de desplazamiento;, en su lugar, utiliza la vista expandida del elemento.

    Trata de representar claramente y visualmente qué tipo de elemento es. Por ejemplo, los elementos de archivo deben presentar un icono de tipo de archivo junto al nombre. Los resúmenes que corresponden a un cuerpo de texto más largo, como mensajes de correo electrónico o páginas web, deben mostrar el título en la primera línea junto con información breve de la fuente y la fecha del elemento.

    vista normal de gadget

  • Vista minimizada: sólo la barra de título.

    Normalmente, la barra de título sólo muestra el icono y el título del gadget. En lugar del título, puedes incluir elementos abreviados del gadget, como las acciones y sus precios, para que aparezcan de forma rotativa.

    vista de gadget minimizada

  • Vista ampliada: la vista completamente ampliada aparece junto a la barra lateral.

    Por lo general, se utiliza para mostrar la lista completa de los elementos del gadget, con una barra de desplazamiento vertical en el caso de que haya muchos elementos.

    vista de gadget ampliada

  • Vista detallada: información minuciosa del elemento de un gadget en particular.

    Esta vista se puede activar a partir de la vista normal o ampliada haciendo clic sobre un elemento y debería mostrar toda la información disponible.

    Si haces clic en el título de un elemento, este se ejecutará en la aplicación correspondiente, como una página web que abre un navegador.

    vista detallada de elementovista detallada de elemento

Internacionalización

Debes crear tu gadget de manera que el texto y las etiquetas puedan aparecer en varios idiomas, aún cuando no puedas escribirlo en esos otros idiomas. Puede que con el tiempo alguien lo haga. También puedes especificar diferentes imágenes, diseños de vistas y hasta secuencias de comandos para los usuarios de otros idiomas.

Analicemos primero la cuestión de los idiomas. Para poder admitir varios idiomas, todas las cadenas específicas para un idioma que se mostrará en la interfaz de usuario del gadget se debe colocar en un archivo denominado strings.xml dentro de subdirectorios que tengan el nombre del número de identificación del idioma correspondiente. Este archivo contiene asignaciones de variables para las cadenas de un idioma en particular. En lugar de utilizar las cadenas específicas del idioma en la definición y el código del gadget, utiliza las variables. Por ejemplo, el archivo strings.xml Hola Mundo en español contiene:


<strings>

  <strTitle>¡HolaMundo!</strTitle> 
  <strHello>¡HolaMundo!</strHello> 
  <strSnippet>Alguna información del elemento.</strSnippet> 
  <strAboutText>
	Complemento ¡HolaMundo! Aquí va la información sobre los derechos de autor. Más texto descriptivo aquí
	</strAboutText> 
  <strDescription>Dice Hola Mundo</strDescription> 
  </strings>

    

Por lo tanto, en el código de secuencia de comandos del gadget Hola Mundo, establecerías la propiedad caption de la vista para el título "¡HolaMundo!"como esta:
view.caption = strTitle;
En los archivos XML o .gmanifest establecerías el texto "Acerca de" de la siguiente forma:
<aboutText>&strAboutText</aboutText>

Recuerda que en código, sólo se utiliza el nombre del elemento del archivo strings.xml. En XML, el nombre del elemento debe estar precedido de &.

Si el gadget que has creado ofrece versiones en inglés y en francés, los archivos se colocarán en el siguiente árbol de directorio:


  <GD dir>/Plugins/YourGadget
                     |
                     |---- gadget.js
                     |
                     |---- gadget.gif
                     |
                     |---- 1033 (ID del idioma para inglés de EE.UU.)
                     |      |
                     |      `-- strings.xml
                     |
                     `---- 1036 (ID del idioma para el Francés)
                            |
                            `-- strings.xml
     

La barra lateral primero comprueba si existe un directorio con el mismo número de identificación (ID) de idioma que el sistema actual. Si existe, carga el archivo strings.xml de ese directorio. Si no encuentra el archivo, de forma predeterminada carga el archivo strings.xml del directorio 1033 (inglés, EE.UU), si estuviera presente.

De forma similar, ahora se pueden añadir imágenes, marcas, secuencias de comandos, etc. en las carpetas de localización y la barra lateral tratará de cargarlas de acuerdo con las reglas anteriores. Así, por ejemplo, si tu gadget requiere una imagen diferente según el idioma local, puedes:
<img src="some_image.png"/>

La barra lateral primero tratará de cargar una_imagen.png; a continuación, si el idioma de tu sistema es el francés, la buscará en el directorio de localización francés (1036\una_imagen.png) y, a continuación, volverá al directorio para inglés (1033\una_imagen.png).

Puedes insertar el contenido en un directorio de localización en lugar del directorio principal, incluyendo:

  • main.xml: si necesitas diferentes diseños para los distintos idiomas.
  • options.xml: si necesitas diferentes diseños para los distintos idiomas.
  • anything.js: si necesitas diferentes secuencias de comandos para los distintos idiomas.

Si deseas crear un gadget que presente un comportamiento predeterminado en la mayoría de los casos pero que tenga un comportamiento diferente en uno o más idiomas en particular:

  • Escribe gadget.xml en la carpeta raíz del archivo gadget.gg.
  • Coloca el resto del contenido en la carpeta 1033\ del archivo gadget.gg.
  • Inserta el contenido que debe reemplazarse en determinados idiomas en la carpeta específica de cada idioma.

Haz clic aquí para obtener la lista completa de todos los números de identificación de idiomas.


Referencia la API


Referencia de objetos

En esta sección se incluyen los distintos objetos relacionados con las secuencias de comandos en la API de Google Gadgets, incluido sus propiedades, métodos y eventos asociados. Ten en cuenta que muchos objetos heredar propiedades, métodos y eventos de basicElement.

Asimismo, cuando se dice que un método devuelve un element, significa que un elemento especificado en la definición XML del gadget es descendiente de basicElement.

gadget.debug
Expone las API útiles para desarrollar y depurar gadgets. Para ejecutar este modo de depuración, descomprime el gadget y, en el archivo en que lo descomprimiste, haz doble clic en el archivo gadget.gmanifest.
Métodos
Nombre y argumentos Descripción Valores devueltos
error(string Mensaje) Cuando el gadget se ejecuta en el modo de depuración, muestra el mensaje de cadena en la consola de depuración como un error. void
trace(string Mensaje) Cuando el gadget se ejecuta en el modo de depuración, muestra el mensaje de cadena en la consola de depuración. void
warning(string Mensaje) Cuando el gadget se ejecuta en el modo de depuración, muestra el mensaje de cadena en la consola de depuración como una advertencia. void


gadget.storage
Proporciona acceso al contenido del paquete del gadget.
Métodos
Nombre y argumentos Descripción Valores devueltos
extract(string nombrearchivo) Extrae un archivo del paquete del gadget a la carpeta temporal y devuelve la ruta completa al archivo extraído. cadena
openStream(string nombrearchivo) Abre un archivo del paquete del gadget y proporciona el contenido como una secuencia. secuencia
openText(string nombrearchivo) Abre un archivo del paquete del gadget y devuelve el contenido como una cadena. cadena


view
Nota: A diferencia de los objetos descendientes/de contenido, view no hereda del basicElement.
Debes definir un objeto view en un archivo separado para cada interfaz de panel del gadget.
Propiedades
Nombre Descripción Tipo Lectura/escritura
caption Título para esta vista; se muestra de forma predeterminada cuando un gadget está en el modo flotante/expandido pero no se muestra si se encuentra en la barra lateral. Consulta también la propiedad showCaptionAlways. cadena Lectura-escritura
children Devuelve una recopilación que incluye el elemento secundario inmediato del elemento vista. Estos elementos secundarios serán todos los objetos descendientes de basicElement. Sólo puedes acceder a ellos a través de secuencias de comandos y no de definiciones XML. elementos Sólo lectura
event Cómo se expone el objeto event a las secuencias de comando para los administradores de eventos. evento Lectura
height Establece o devuelve la altura de la vista en píxeles. entero Lectura-escritura
width Establece o devuelve el ancho de la vista en píxeles. entero Lectura-escritura
resizable Si el valor es true, el usuario puede cambiar el tamaño de la vista. booleano Lectura-escritura
showCaptionAlways Si el valor es true, la barra lateral siempre mostrará el título (especificado en la propiedad caption ) para esta vista. De forma predeterminada o si el valor está definido en false, el título no se muestra si el gadget se encuentra en la barra lateral; si lo hace, en cambio, si está en modo flotante o expandido. booleano Lectura-escritura
Métodos
Nombre y argumentos Descripción Valores devueltos
void alert(string mensaje) Muestra un cuadro de mensaje que incluye la cadena del mensaje. void
element appendElement(string xml) Analiza la definición del elemento proporcionado, en formato XML, y la adjunta al elemento como el último elemento descendiente de esta vista. El nuevo elemento.
integer beginAnimation(string script, integer startValue, integer endValue, integer duration) Inicia un cronómetro de animación. El cronómetro funciona durante duration milisegundos. La secuencia de comandos se ejecuta periódicamente durante este tiempo con un valor entre StartValue y EndValue. Identificador que se puede utilizar para cancelar la animación.
Nota: La cantidad de veces que se solicita la devolución de llamada depende del rendimiento y la carga actual del sistema. Puede llegar a ser tan alta como 100 fps.
void cancelAnimation(integer Token) Cancela una animación actualmente en ejecución. El token es el identificador que devuelve iniciarAnimación. void
void clearInterval(integer Token) Cancela un intervalo o tiempo de espera. void
boolean confirm(string message) Muestra un cuadro de confirmación que incluye la cadena del mensaje. Devuelve el valor true si se pulsa Aceptar. De lo contrario, devuelve el valor false. booleano
element insertElement(string xml, element InsertBefore) Analiza el código XML proporcionado e inserta el elemento inmediatamente antes del elemento InsertBefore. El nuevo elemento.
void removeElement(element Item) Elimina el elemento especificado. void
void resizeBy(integer width, integer height) Cambia el tamaño de la vista por el ancho y la altura especificados, en función del ancho y la altura actuales de la vista. Las unidades están en píxeles. void
Void resizeTo(integer width, integer height) Cambia el tamaño de la vista por el ancho y la altura especificados en píxeles. void
integer setTimeout(string Script, integer Duration) Crea un cronómetro de única ejecución. La secuencia de comandos se ejecutará una vez después de Duración milisegundos. Un token que puede utilizarse para cancelar el tiempo de espera.
integer setInterval(string Script, integer Duration) Crea un cronómetro de ejecución continua. La secuencia de comandos se ejecutará cada Duración milisegundos hasta que se cancele. Un token que puede utilizarse para cancelar el intervalo.
Eventos
Nombre Descripción
onclick Se activa al hacer clic en el botón izquierdo del ratón.
onclose Se activa cuando se está a punto de cerrar la vista.
ondblclick Se activa al hacer doble clic en el botón izquierdo del ratón.
onkeydown Se activa al pulsar una tecla.
onkeypress Se activa al pulsar una tecla y soltarla.
onkeyup Se activa al soltar una tecla.
onminimize Se activa cuando se minimiza el gadget.
onmousedown Se activa al hacer clic en el botón izquierdo del ratón.
onmouseout Se activa al retirar el cursor del ratón de la vista.
onmouseover Se activa cuando el cursor del ratón se coloca sobre la vista.
onmouseup Se activa cuando se suelta el botón izquierdo del ratón.
onopen Se activa cuando se abre la vista por primera vez.
onoptionchanged Se activa cuando se añade, modifica o elimina una propiedad del objeto options. event.propertyName indica el elemento que se ha modificado.
onrestore Se activa cuando se restaura el gadget del estado minimizado.
onsizing Se activa cuando el usuario cambia el tamaño del gadget. Sólo se activa si el valor de resizable se establece en true. event.width y event.height incluyen los nuevos valores del ancho y la altura solicitados por el usuario. El código de evento puede cancelar el evento (event.returnValue = false), lo que hará que el gadget conserve su tamaño actual. El código de evento puede modificar event.width y event.height para anular la selección del usuario.
onsize Se activa después de modificar la vista a un nuevo tamaño como resultado de un código de secuencia de comando que modifica el tamaño (por ej., establecer view.width o view.height o solicitar view.resizeBy o view.resizeTo), o después de solicitar decambiartamaño y especificar un nuevo tamaño. Este evento no puede cancelarse.


Objeto basicElement
Define las propiedades, los métodos y los eventos expuestos en todos los elementos, con elementos específicos que heredan las propiedades definidas aquí.
Propiedades
Nombre Descripción Tipo Lectura/escritura
cursor Establece o indica el cursor que debe mostrarse cuando el ratón se coloca sobre este elemento.

Valores posibles: arrow, ibeam, wait, cross, uparrow, size, sizenwse, sizenesw,sizewe, sizens, sizeall, no, hand,busy, help

cadena Lectura-escritura
dropTarget Establece o indica si este elemento es un objetivo para las operaciones de arrastrar y soltar. Si el valor es true, los eventos ondrag* se activarán cuando el usuario inicie una operación de arrastrar y soltar. booleano Lectura-escritura
enabled Establece o indica si el elemento está habilitado o no. Los elementos inhabilitados no activan ningún evento del ratón ni del teclado. booleano Lectura-escritura
height Establece o indica la altura. El valor puede expresarse en píxeles o como un porcentaje de la altura del elemento principal. variante Lectura-escritura
hitTest Establece o indica el valor prueba-resultados para este elemento.

Valores posibles: httransparent, htnowhere, htclient,htcaption, htsysmenu, htsize,prmenú, hthscroll, htvscroll, htminbutton, htmaxbutton, htleft, htright, httop, httopleft, httopright, htbottom, htbottomleft, htbottomright, htborder, htobject, htclose, hthelp

cadena Lectura-escritura
mask Establece o indica el mapa de bits de la máscara que define la ruta de recorte de este elemento. cadena Lectura-escritura
name Indica el nombre del elemento. cadena Sólo lectura
offsetHeight Indica la altura del elemento relativo a su elemento principal en píxeles. Esta propiedad imita a la propiedad DHTML con el mismo nombre. Sólo es accesible a través de secuencias de comandos, y no mediante definiciones XML. entero Sólo lectura
offsetWidth Indica el ancho del elemento relativo a su elemento principal en píxeles. Esta propiedad imita a la propiedad DHTML con el mismo nombre. Sólo es accesible a través de secuencias de comandos, y no mediante definiciones XML. entero Sólo lectura
offsetX Indica la posición x del elemento relativo a su elemento principal en píxeles. Esta propiedad imita a la propiedad DHTML con el mismo nombre. Sólo es accesible a través de secuencias de comandos, y no mediante definiciones XML. entero Sólo lectura
offsetY Indica la posición y del elemento relativo a su elemento principal en píxeles. Esta propiedad imita a la propiedad DHTML con el mismo nombre. Sólo es accesible a través de secuencias de comandos, y no mediante definiciones XML. entero Sólo lectura
opacity Establece o indica la opacidad del elemento.

Rango válido: 0 a 255

entero Lectura-escritura
parentElement Indica el elemento principal. Sólo es accesible a través de secuencias de comandos, y no mediante definiciones XML. elemento Sólo lectura
pinX Establece o indica la marca horizontal. entero Lectura-escritura
pinY Establece o indica la marca vertical. entero Lectura-escritura
rotation Establece o indica la rotación del elemento en grados. flotante Lectura-escritura
tagName Indica el nombre de la etiqueta. Sólo es accesible a través de secuencias de comandos, y no mediante definiciones XML. cadena Sólo lectura
tooltip Establece o indica la información sobre herramientas que aparece al desplazar el ratón sobre este elemento. cadena Lectura-escritura
width Establece o indica el ancho. El valor puede expresarse en píxeles o como un porcentaje del ancho del elemento principal. variante Lectura-escritura
visible Establece o indica si el elemento está visible o no. booleano Lectura-escritura
x Establece o indica la posición horizontal. El valor puede expresarse en píxeles o como un porcentaje del ancho del elemento principal. variante Lectura-escritura
y Establece o indica la posición vertical. El valor puede expresarse en píxeles o como un porcentaje de la altura del elemento principal. variante Lectura-escritura
Eventos
Nombre Descripción
onclick Se activa cuando el usuario hace clic en el elemento.
ondblclick Se activa cuando el usuario hace doble clic en el elemento.
ondragdrop Se activa cuando el usuario suelta un elemento sobre otro.
ondragout Se activa cuando el usuario cancela una operación de arrastrar y soltar.
ondragover Se activa cuando el usuario suelta un objeto sobre el elemento.
onfocusin Se activa cuando el elemento recibe una acción del teclado.
onfocusout Se activa cuando el elemento deja de recibir una acción del teclado.
onkeydown Se activa cuando el usuario pulsa una tecla.
onkeypress Se activa cuando el usuario pulsa y suelta una tecla.
onkeyup Se activa cuando el usuario suelta una tecla.
onmousedown Se activa cuando el usuario hace clic en un botón del ratón.
onmousemove Se activa cuando el usuario mueve el cursor mientras este se encuentra sobre el elemento.
onmouseout Se activa cuando el usuario retira el cursor del elemento.
onmouseover Se activa cuando el usuario mueve el cursor sobre el elemento.
onmouseup Se activa cuando el usuario suelta el botón del ratón.
onmousewheel Se activa cuando el usuario desplaza la rueda del ratón.


elements
Representa un contenedor de objetos de elementos. Admite enumeradores de JavaScript y acceso a elementos del conjunto, por ejemplo, elementos("foo") en lugar de elements.item("foo").
Propiedades
Nombre Descripción Tipo Lectura/escritura
count Devuelve la cantidad de elementos en el conjunto. entero Sólo lectura
item (Nombre cadena) Devuelve el elemento identificado por el parámetro Nombre. Si se definen varios elementos con el mismo nombre, devuelve el primero. Devuelve el valor void si no coincide ningún elemento. elemento Sólo lectura, predeterminado (para algunos idiomas de secuencia de comandos, la designación .item es opcional)


elemento <button>, objeto button
El objeto botón también hereda todas las propiedades y los métodos del objeto basicElement .
Propiedades
Nombre Descripción Tipo Lectura/escritura
disabledImage Establece o indica la imagen que debe mostrarse cuando el botón no está habilitado. cadena Lectura-escritura
downImage Establece o indica la imagen que debe mostrarse cuando se pulsa el botón. cadena Lectura-escritura
image Establece o indica la imagen predeterminada del botón. cadena Lectura-escritura
overImage Establece o indica la imagen que debe mostrarse cuando el ratón pasa por encima del botón. cadena Lectura-escritura


elemento <checkbox>, objeto checkbox
Objeto Casillaverificación, también hereda todas las propiedades y los métodos del objeto basicElement.
Propiedades
Nombre Descripción Tipo Lectura/escritura
image Establece o indica la imagen predeterminada para la casilla de verificación. cadena Lectura-escritura
checkedDisabledImage Establece o indica la imagen que debe mostrarse cuando la casilla de verificación está seleccionada e inhabilitada. cadena Lectura-escritura
checkedDownImage Establece o indica la imagen que debe mostrarse cuando se pulsa la casilla de verificación se encuentra seleccionada. cadena Lectura-escritura
checkedOverImage Establece o indica la imagen que debe mostrarse cuando la casilla de verificación está seleccionada y el ratón se encuentra encima. cadena Lectura-escritura
checkedImage Establece o indica la imagen predeterminada que debe mostrarse cuando la casilla de verificación está seleccionada. cadena Lectura-escritura
disabledImage Establece o indica la imagen que debe mostrarse cuando la casilla de verificación no está habilitada. cadena Lectura-escritura
downImage Establece o indica la imagen que debe mostrarse cuando se pulsa la casilla de verificación. cadena Lectura-escritura
overImage Establece o indica la imagen que debe mostrarse cuando el ratón se coloca sobre el botón. cadena Lectura-escritura
value Indica el valor true si la casilla de verificación está seleccionada. booleano Lectura-escritura
Eventos
Nombre Descripción
onchange Se activa cuando la propiedad del valor se modifica.


elemento <object>, objeto object
Objeto incrustado, un control ActiveX sin ventanas que también hereda todas las propiedades y los métodos del objeto basicElement.
Propiedades
Nombre Descripción Tipo Lectura/escritura
classId Indica el valor de classId utilizado para crear el control ActiveX. Ten en cuenta que al definir un objectElement en XML, el valor de classId debe presentar el formato "clsid:GUID_value" o "progid:progid_value", incluidas las comillas. cadena Sólo lectura
object Indica el control ActiveX albergado. objeto Sólo lectura
wmpServiceType Establece o indica el tipo de servicio para el objeto incrustado cuando el objeto es Windows Media Player. cadena Lectura-escritura
wmpSkin Establece o indica el nombre del archivo de máscara de Windows Media Player que desea albergar en el gadget. El archivo de máscara debe incluirse en el archivo .gg. cadena Lectura-escritura


elemento <contentArea>, objeto contentArea
Objeto de contención de contenido general. Si bien deriva de basicElement, muchas de las propiedades basicElement no son compatibles. Sólo se admiten las propiedades x, y, width, height y name basicElement. Esto incluye los objetos ContentItem; consulta el material de referencia para obtener más información. Un objeto view sólo puede tener una propiedad contentArea definida.
Propiedades
Nombre Descripción Tipo Lectura/escritura
contentFlags Combinación de una o más marcas gddContentFlagXXXX. entero Sólo escritura
maxContentItems Cantidad máxima de elementos de contenido admitidos; el valor predeterminado es 25. entero Lectura-escritura
contentItems Conjunto de elementos de contenido. variante Lectura-escritura
pinImages Conjunto de imágenes; puedes cargar las imágenes utilizando framework.graphics.loadImage() variante Lectura-escritura
Métodos
Nombre y argumentos Descripción Valores devueltos
anular addContentItem(elemento, opciones) Añade un nuevo elemento de contenido. void
anular removeContentItem(elemento) Elimina el elemento de contenido especificado. void
anular removeAllContentItems() Elimina todos los elementos de contenido. void


elemento <div>, objeto div
El objeto div también hereda todas las propiedades y los métodos del objeto basicElement.
Propiedades
Nombre Descripción Tipo Lectura/escritura
background Establece o indica el color o la imagen de fondo del elemento. cadena Lectura-escritura
children Indica un conjunto que incluye los elementos secundarios inmediatos de este elemento. Sólo es accesible a través de secuencias de comandos, y no mediante definiciones XML. elementos Sólo lectura
Métodos
Nombre y argumentos Descripción Valores devueltos
appendElement(string xml) Analiza el código XML proporcionado y adjunta el elemento como el último elemento secundario de este. El nuevo elemento
insertElement(string xml, elemento InsertarAntes) Analiza el código XML proporcionado e inserta el elemento inmediatamente antes del elemento InsertBefore. El nuevo elemento
removeElement(elemento Elemento) Elimina el elemento especificado. void


elemento <edit>, objeto edit
El objeto de área Editar también hereda todas las propiedades y los métodos del objeto basicElement. El formato del valor de color es únicamente:
color="#RRGGBB" (al igual que HTML)
Los valores alfa y de textura de la imagen no son compatibles.
Propiedades
Nombre Descripción Tipo Lectura/escritura
background Establece o indica el color de fondo del elemento. cadena Lectura-escritura
bold Establece o indica si el texto debe estar en negrita. booleano Lectura-escritura
color Establece o indica el color del texto. cadena Lectura-escritura
font Establece o indica la fuente del texto. cadena Lectura-escritura
italic Establece o indica si el texto debe estar en cursiva. booleano Lectura-escritura
size Establece o indica el tamaño del texto en puntos. entero Lectura-escritura
strikeout Establece o indica si el texto debe ser eliminado. booleano Lectura-escritura
underline Establece o indica si el texto debe estar subrayado. booleano Lectura-escritura
value Establece o indica el valor del elemento. cadena Lectura-escritura
Eventos
Nombre Descripción
onchange Se activa cuando se modifica el valor de la propiedad.


elemento <img>, objeto img
El objeto Imagen también hereda todas las propiedades y los métodos del objeto basicElement.
Propiedades
Nombre Descripción Tipo Lectura/escritura
src Establece o indica la imagen que debe mostrarse. cadena Lectura-escritura
srcHeight Indica la altura original de la imagen que se muestra. entero Sólo lectura
srcWidth Indica el ancho original de la imagen que se muestra. entero Sólo lectura
Métodos
Nombre y argumentos Descripción Valores devueltos
setSrcSize(Ancho entero, Altura entero) Cambia el tamaño de la imagen al ancho y la altura especificados a través de la resolución reducida. Si la imagen original es más grande que el área de visualización, si utilizas este método para cambiar el tamaño de la imagen al tamaño de resultado permitirá ahorrar memoria y mejorar el rendimiento final. void


elemento <label>, objeto label
El objeto Etiqueta también hereda todas las propiedades y los métodos del objeto color="#RRGGBB" (al igual que HTML)
color="#AARRGGBB" (al igual que HTML, donde AA es el valor alfa)
color="some_image.png" (usa la imagen como una textura recurrente)
Propiedades
Nombre Descripción Tipo Lectura/escritura
align Establece o indica la alineación del texto.
Valores posibles: center, left, right
cadena Lectura-escritura
bold Establece o indica si el texto debe estar en negrita. booleano Lectura-escritura
color Establece o indica el color del texto. cadena Lectura-escritura
font Establece o indica la fuente del texto. cadena Lectura-escritura
innerText Establece o indica el texto que se muestra. Sólo es accesible a través de secuencias de comandos, y no mediante definiciones XML. cadena Lectura-escritura
italic Establece o indica si el texto debe estar en cursiva. booleano Lectura-escritura
size Establece o indica el tamaño del texto en puntos. entero Lectura-escritura
strikeout Establece o indica si el texto debe ser eliminado. booleano Lectura-escritura
trimming Establece o indica el modo de recorte si el texto es demasiado largo para mostrarlo.
Valores posibles: none, character, word, character-ellipsis, word-ellipsis, path-ellipsis
cadena Lectura-escritura
underline Establece o indica si el texto debe estar subrayado. booleano Lectura-escritura
vAlign Establece o indica la alineación vertical.
Valores posibles: top, middle, bottom
cadena Lectura-escritura
wordWrap Establece o indica si el texto debe incluir varias líneas. booleano Lectura-escritura


elemento <a>, objeto a
Define un vínculo y también hereda todas las propiedades y los métodos del objeto basicElement.
Propiedades
Nombre Descripción Tipo Lectura/escritura
align Establece o indica la alineación del texto.
Valores posibles: center, left, right
cadena Lectura-escritura
bold Establece o indica si el texto debe estar en negrita. booleano Lectura-escritura
color Establece o indica el color del texto. cadena Lectura-escritura
font Establece o indica la fuente del texto. cadena Lectura-escritura
href Si está establecida, la URL se iniciará en el navegador predeterminado tras hacer clic en el vínculo. Sólo se pueden iniciar las URL del tipo http:, https: y ftp:. cadena Lectura-escritura
innerText Establece o indica el texto que se muestra. Sólo es accesible a través de secuencias de comandos, y no mediante definiciones XML. cadena Lectura-escritura
italic Establece o indica si el texto debe estar en cursiva. booleano Lectura-escritura
overColor Establece o indica el color del texto cuando el ratón se coloca sobre el elemento. cadena Lectura-escritura
size Establece o indica el tamaño del texto en puntos. entero Lectura-escritura
strikeout Establece o indica si el texto debe ser eliminado. booleano Lectura-escritura
trimming Establece o indica el modo de recorte si el texto es demasiado largo para mostrarlo.
Valores posibles: none, character, word, character-ellipsis, word-ellipsis, path-ellipsis
cadena Lectura-escritura
underline Establece o indica si el texto debe estar subrayado. booleano Lectura-escritura
vAlign Establece o indica la alineación vertical.
Valores posibles: top, middle, bottom
cadena Lectura-escritura
wordWrap Establece o indica si el texto debe incluir varias líneas. booleano Lectura-escritura


elemento <progressBar>, objeto progressBar
El objeto barraprogreso también hereda todas las propiedades y los métodos del objeto basicElement.
Propiedades
Nombre Descripción Tipo Lectura/escritura
emptyImage Establece o indica la imagen que debe mostrarse cuando la barra deslizable está vacía. cadena Lectura-escritura
fullImage Establece o indica la imagen que debe mostrarse cuando la barra deslizable está completa. cadena Lectura-escritura
max Establece o indica el valor máximo ?, el valor en el que la barra deslizable está completa. entero Lectura-escritura
min Establece o indica el valor mínimo ?, el valor en el que la barra deslizable está vacía. entero Lectura-escritura
orientation Establece o indica la orientación de la barra deslizable.
Valores posibles: horizontal, vertical
cadena Lectura-escritura
thumbDisabledImage Establece o indica la imagen en miniatura que debe mostrarse cuando la barra deslizable no está habilitada. cadena Lectura-escritura
thumbDownImage Establece o indica la imagen que debe mostrarse cuando se pulsa la imagen en miniatura. cadena Lectura-escritura
thumbOverImage Establece o indica la imagen que debe mostrarse cuando el ratón se coloca encima de la imagen en miniatura. cadena Lectura-escritura
thumbImage Establece o indica la imagen predeterminada de la imagen en miniatura. cadena Lectura-escritura
value Establece o indica el valor. entero Lectura-escritura
Eventos
Nombre Descripción
onchange Se activa cuando se modifica la propiedad value.


options
Objeto independiente, no desciende de ningún otro objeto.
Propiedades
Nombre Descripción Tipo Lectura/escritura
count Indica la cantidad de elementos en el diccionario. entero Sólo lectura
defaultValue (nombre cadena) Establece o devuelve el valor Valorpredeterminado de nombre. cadena Lectura-escritura
item (nombre cadena) Establece o devuelve el valor actual de name. Esta es la propiedad predeterminada. cadena Lectura-escritura
Métodos
Nombre y argumentos Descripción Valores devueltos
add(nombre cadena, valor variante) Añade un elemento al diccionario, si no existe. void
exists(nombre cadena) Devuelve el valor true si se ha establecido el valor de name. booleano
remove(nombre cadena) Elimina el valor del diccionario. void
removeAll() Elimina todos los valores del diccionario. void


googleTalk
Un objeto anterior a 4.0; los administradores de eventos usan el modelo de administración de eventos anterior a 4.0.
Propiedades
Nombre Descripción Tipo Lectura/escritura
friends Indica los amigos que están online. Un conjunto de objetos friends. Sólo lectura
Métodos
Nombre y argumentos Descripción Valores devueltos
SendTalkData(id_amigo, datos) Envía una cadena a un amigo. id_amigo es de la propiedad id_usuario del objeto friend. No devuelve ningún valor.
SendTalkText(id_amigo, mensaje) Envía un mensaje de texto a un amigo en forma de mensaje instantáneo. id_amigo es de la propiedad id_usuario del objeto friend. No devuelve ningún valor.
Administradores de eventos
Nombre Prototipo Descripción Valores devueltos
onReceiveTalkData onReceiveTalkData(amigo, datos) Se invoca cuando el mismo complemento en la máquina de un amigo envía datos. amigo es un objeto de friend y datos es una cadena. No devuelve ningún valor.


Objeto friend
Este objeto lo devuelve googleTalk. Google Gadgets no puede crear variables de este tipo.
Propiedades
Nombre Descripción Tipo Lectura/escritura
name Nombre de usuario visible del amigo. cadena Sólo lectura
user_id El número de identificación de usuario del amigo; se envía como un parámetro a métodos como SendTalkText y SendTalkData. cadena Sólo lectura
email_address Dirección de correo electrónico del amigo. cadena Sólo lectura
has_sidebar Indica si el amigo tiene la barra lateral instalada o no. booleano Sólo lectura
status Estado del amigo (por ej., online/inactivo/ocupado). entero Sólo lectura


Objeto ContentItem
Un objeto anterior a 4.0; los administradores de eventos usan el modelo de administración de eventos anterior a 4.0.
Propiedades
Nombre Descripción Tipo Lectura/escritura
image Imagen que debe mostrarse en el elemento. Imagen Lectura/escritura
notifier_image Imagen que debe mostrarse en el notificador. Imagen Lectura/escritura
time_created Hora (en JavaScript, el valor de hora variante). hora Lectura/escritura
heading Título que se muestra del elemento. cadena Lectura/escritura
source Origen del sitio web/noticias que se muestra del elemento. cadena Lectura/escritura
snippet Fragmento que se muestra del elemento. cadena Lectura/escritura
open_command Ruta URL o del archivo que se abre cuando el usuario abre o hace doble clic en el elemento. cadena Lectura/escritura
layout Diseño del elemento que indica el formato en el que se debe mostrar. entero Lectura/escritura
flags Combinación de las marcas de contenido del elemento. entero Sólo escritura
tooltip Texto descriptivo, como la ruta completa, los títulos completos, etc. cadena Sólo escritura
friend_name Si este elemento se recibió de otro usuario, contiene el nombre del usuario que lo envió. cadena Lectura/escritura
time_received Si este elemento se recibió de otro usuario, contiene la fecha y la hora (en la hora universal coordinada, UTC) en que se recibió. cadena Lectura/escritura
Métodos
Nombre y argumentos Descripción Valores devueltos
SetRect(x, y, width, height) Establece la posición de visualización del elemento. Antes de configurar la posición de un elemento, habilita la marca MANUAL_LAYOUT del complemento. De lo contrario, los elementos aparecerán en las posiciones predeterminadas estipuladas por el complemento. Nada
Administradores de eventos
Nombre Prototipo Descripción Valores devueltos
onDrawItem DrawItem(item, display_target, graphics, x, y, width, height) Se solicita para dibujar el elemento. No devuelve ningún valor.
onGetHeight GetHeight(item, display_target, graphics, width) Se solicita para obtener la altura en píxeles del elemento para el ancho determinado. Devuelve el valor integer que indica la altura del elemento en píxeles.
onOpenItem OpenItem(item) Se solicita cuando el usuario abre o hace doble clic en el elemento. No devuelve ningún valor.
onToggleItemPinnedState ToggleItemPinnedState(item) Se solicita cuando el usuario hace clic en el botón para marcar de un elemento. No devuelve ningún valor.
onGetIsTooltipRequired GetIsTooltipRequired(item, display_target, graphics, x, y, width, height) Se solicita para comprobar si se requiere un texto descriptivo para el elemento que se muestra en una posición determinada. Devuelve el valor booleano, true para mostrar el texto del botón, false para no mostrarlo.
onDetailsView OnDetailsView(item) Se activa antes de mostrar la vista de detalles para un elemento determinado. No devuelve ningún valor si se cancela la vista de detalles o devuelve un objeto con las siguientes propiedades:
  • obj.title: el título que se mostrará para la vista de detalles
  • obj.details_control: un control ActiveX que debe mostrarse en la vista detalles
  • obj.flags: marcas que controlan el diseño o el uso de la vista detalles
Para obtener más información sobre cada uno de los parámetros anteriores, consulta la documentación de OnDetailsView en la interfaz IGoogleDesktopDisplayContentItemHandler
onProcessDetailsViewFeedback ProcessDetailsViewFeedback(item, details_view_flags) Se activa para procesar la acción del usuario en la vista detalles. No devuelve ningún valor.
onRemoveItem RemoveItem(item) Se activa cuando el usuario eliminó un elemento de la vista. Devuelve el valor true para señalar la eliminación y conservar el elemento, false para continuar y eliminar el elemento.


Objeto DetailsView
Un objeto anterior a 4.0; los administradores de eventos usan el modelo de administración de eventos anterior a 4.0.
Métodos
Nombre y argumentos Descripción Valores devueltos
SetContent(source, time_created, text, time_absolute, content_layout) Establece el contenido que se mostrará en el panel de contenido de la vista de información detallada. Nada
SetContentFromItem(item) Establece el contenido que se mostrará directamente desde un elemento. Nada


menu
Métodos
Nombre y argumentos Descripción Valores devueltos
AddItem(item_text, style, handler) Añade un elemento de menú único. style es una combinación de gddMenuItemFlagXXXX. El prototipo de la función de administrador es OnMenuItem(item_text). No devuelve ningún valor.
SetItemStyle(item_text, style) Establece el estilo del elemento de menú en cuestión. Style es una combinación de gddMenuItemFlagXXXX. No devuelve ningún valor.
AddPopup(popup_text) Añade un submenú/popup que muestra el texto en cuestión. Devuelve un objeto de menú para el nuevo menú emergente.


Framework Namespace

framework
La palabra clave framework es opcional cuando hace referencia a los objetos descendientes. Por ejemplo, framework.system.battery es equivalente a system.battery.
Objeto Descripción
system Devuelve un objeto para recopilar información sobre el sistema del equipo.
Métodos
Nombre y argumentos Descripción Valores devueltos
BrowseForFile( string Filter) Muestra el cuadro de diálogo estándar que permite buscar archivos y devuelve el nombre del archivo seleccionado o una cadena vacía si se cancela el cuadro de diálogo. La cadena de filtro presenta el formato "Mostrar nombre|Lista de tipos" y se pueden añadir varias entradas. Por ejemplo, “Archivos de música|*.mp3;*.wma|Todos los archivos|*.*" define dos selecciones posibles del menú desplegable Tipo de archivo del cuadro de diálogo; Archivos de música, que coincide con con *.mp3 o *.wma y Todos los archivos, que coincide con *.*. cadena
BrowseForFiles( string Filter) Muestra el cuadro de diálogo estándar que permite buscar archivos y devuelve un conjunto con los nombres de los archivos seleccionados o una cadena vacía si se cancela el cuadro de diálogo. Consulta BrowseForFile para obtener más información sobre el parámetro Filtro. recopilación


framework.graphics
Objeto Descripción
createPoint Devuelve un objeto Point.
createSize Devuelve un objeto Size.
loadImage(image_src) Carga y devuelve (como un objeto image) el archivo de imagen en cuestión.
image_src puede ser la ruta a un archivo local (URL remota no admitida) o puede ser el miembro responseStream de un objeto ZMLHttp (esto permite al gadget descargar imágenes utilizando el objeto XMLHttp y cargarlas). Puedes usar el objeto del archivo de imágenes como un valor de la propiedad contentItem.image o modificar los atributos <smallIcon> y <icon> del objeto plugin de la API anterior.


framework.system
Consulta las entradas a continuación para conocer las propiedades de estos objetos.
Objeto Descripción
cursor Devuelve un objeto que proporciona información sobre el cursor del ratón.
filesystem Devuelve un objeto que proporciona acceso al objeto estándar de Windows Scripting.FileSystemObject.
memory Devuelve un objeto que proporciona información sobre la memoria del sistema.
network Objeto principal de un objeto que proporciona información sobre la conexión inalámbrica del sistema. En este momento, framework.system.network no posee propiedades propias y no se utiliza como un objeto en sí.
perfmon Devuelve un objeto que proporciona información similar a PerfMon de Windows.
power Devuelve un objeto que proporciona información sobre el estado de la administración de poder del sistema.
processor Devuelve un objeto que proporciona información sobre el procesador del sistema, como su familia, modelo, nombre, velocidad, fabricante, y otros.
screen Devuelve un objeto que proporciona información sobre la pantalla.


framework.system.cursor
Propiedad Tipo Descripción
position punto Devuelve un objeto Point que contiene la posición actual del cursor en relación con la pantalla.


framework.system.memory
Propiedad Tipo Descripción
free entero El número de bytes disponibles actualmente en la memoria virtual (física + intercambio).
total entero El número total de bytes de memoria virtual (física + intercambio).
used entero El número de bytes en uso de la memoria virtual (física + intercambio).
freePhysical entero El número de bytes disponibles de la memoria física.
totalPhysical entero El número total de bytes de la memoria física.
usedPhysical entero El número de bytes de la memoria física actualmente en uso.


framework.system.network.wireless
Propiedad Tipo Descripción
available booleano True si la conexión inalámbrica está disponible.
connected booleano True si está conectado a una red inalámbrica.
name cadena Devuelve el nombre del adaptador inalámbrico.
networkName cadena Devuelve el nombre de la red inalámbrica.
signalStrength entero Devuelve la potencia de la señal de la conexión inalámbrica. Los valores son 0 a 100.


framework.system.perfmon
Propiedad Tipo Descripción
currentValue ("counter_path") Variante Devuelve el valor actual del contador especificado. El contador deben haberse añadido utilizando addCounter. Las rutas del contador se definen y documentan en la aplicación PerfMon de Windows y se asemejan a "\Processor(_Total)\% Processor Time" o "\LogicalDisk(_Total)\% Disk Time".
Métodos
Nombre y argumentos Descripción Valores devueltos
addCounter(string counter_path, string script_code) Comienza la supervisión del contador especificado. El código de la secuencia de comandos se ejecuta siempre que se modifica el valor de este contador. void
removeCounter(string counter_path) Interrumpe la supervisión del contador especificado. void


framework.system.power
Nota: Las propiedades de tipo entero devolverán el valor -1 si alguno de los equipos no posee una batería o Windows no puede determinar su valor.
Propiedad Tipo Descripción
charging booleano true si la batería se está cargando.
percentRemaining entero Porcentaje de potencia restante de la batería.
pluggedIn booleano true si el equipo está conectado a la corriente.
timeRemaining entero El tiempo estimado que queda para que deba cargarse la batería (en segundos).
timeTotal entero El tiempo estimado durante el cual la batería funcionará cuando esté completamente cargada (en segundos).


framework.system.processor
Propiedad Tipo Descripción
architecture cadena La arquitectura del procesador (por ej., x86).
count entero El número de procesadores instalados.
family entero La designación de la familia del procesador.
model entero La designación del modelo del procesador.
name cadena El nombre del procesador (que se mostrará).
speed cadena La velocidad del procesador, en Mhz.
stepping entero La designación del submodelo del procesador.
vendor cadena El nombre del proveedor del procesador.


framework.system.screen
Propiedad Tipo Descripción
size tamaño Devuelve un objeto size que contiene las dimensiones de la pantalla.


Objeto point

Representa un punto, según define su posición. La referencia de los valores de las coordenadas depende del método o la propiedad asignados a los valores.

point
Propiedades
Nombre Descripción Tipo Lectura/escritura
x Valor de la coordenada X. entero Lectura-escritura
y Valor de la coordenada Y. entero Lectura-escritura


Objeto size

Representa el tamaño de un elemento.

size
Propiedades
Nombre Descripción Tipo Lectura/escritura
height Valor de la altura. entero Lectura-escritura
width Valor del ancho. entero Lectura-escritura


Constantes y marcas
Marcas de la vista de información detallada
Nombre Descripción
gddDetailsViewFlagNone No se envía ninguna marca.
gddDetailsViewFlagToolbarOpen Permite que se pueda hacer clic en el título de la vista detallada, como si de un botón se tratara.
gddDetailsViewFlagNegativeFeedback Añade un botón de comentarios negativos en la vista detallada (por ej., "No mostrar elementos como este").
gddDetailsViewFlagRemoveButton Añade un botón Eliminar en la vista detallada.
gddDetailsViewFlagShareWithButton Añade un botón en la vista detallada que muestra la lista de amigos al hacer clic y el usuario puede compartir el elemento de contenido con ellos.
Marcas del complemento
Nombre Descripción
gddPluginFlagNone No se enviarán marcas.
gddPluginFlagToolbarBack Añade un botón atrás en la barra de herramientas del complemento.
gddPluginFlagToolbarForward Añade un botón adelante en la barra de herramientas del complemento.
Máscaras de información
Nombre Descripción
gddInfoMaskNone No se enviarán marcas.
gddInfoMaskMinSize Devuelve el tamaño mínimo necesario para que el complemento muestre su contenido.
gddInfoMaskMaxSize Devuelve el tamaño mínimo necesario para que el complemento muestre su contenido.
gddInfoMaskIdealSize Devuelve el tamaño ideal necesario para que el complemento muestre su contenido.
Comandos del complemento
Nombre Descripción
gddCmdAboutDialog Muestra el cuadro de diálogo Acerca de.
gddCmdToolbarBack El usuario ha hecho clic en el botón atrás.
gddCmdToolbarForward El usuario ha hecho clic en el botón adelante.
Diseños del elemento de contenido
Nombre Descripción
gddContentItemLayoutNowrapItems Única línea con sólo el título y el icono.
gddContentItemLayoutNews Un diseño que muestra el título, el origen y la hora.
gddContentItemLayoutEmail Un diseño que muestra el título, el origen, la hora y el fragmento de texto.
Marcas de contenido
Nombre Descripción
gddContentFlagNone No se enviarán marcas.
gddContentFlagHaveDetails Muestra la vista detallada cuando el usuario hace clic en los elementos de contenido.
gddContentFlagPinnable Permite al usuario marcar elementos de contenido para mostrarlos en todo momento.
gddContentFlagManualLayout El complemento administrará el diseño de los elementos y les proporciona la posición de visualización a cada uno de ellos.
Marcas del elemento de contenido
Nombre Descripción
gddContentItemFlagNone No se enviarán marcas.
gddContentItemFlagStatic El elemento no utiliza la información del usuario.
gddContentItemFlagHighlighted El elemento aparece en en negrita.
gddContentItemFlagPinned El elemento se marca en la parte superior de la lista.
gddContentItemFlagTimeAbsolute La hora del elemento se muestra como hora absoluta y no en relación con la hora actual.
gddContentItemFlagNegativeFeedback El elemento puede utilizar los comentarios negativos del usuario.
gddContentItemFlagLeftIcon El icono del elemento debe mostrarse a la izquierda.
gddContentItemFlagNoRemove No muestra la opción eliminar para este elemento en el menú contextual.
gddContentItemFlagShareable El elemento puede compartirse con amigos. De esta forma, se habilitará el elemento de menú específico en el menú contextual y el botón en la vista detallada.
gddContentItemFlagShared Indica que este elemento se ha recibido de otro usuario.
gddContentItemFlagInteracted Indica que el usuario ha interactuado con este elemento, es decir, lo ha iniciado, ha consultado información detallada, etc.
Estado de visualización del gadget
Nombre Descripción
gddTileDisplayStateHidden El mosaico no está visible.
gddTileDisplayStateRestored El mosaico se restaura de los estados minimizado o emergente.
gddTileDisplayStateMinimized El mosaico se minimiza y sólo se muestra la barra del título.
gddTileDisplayStatePoppedOut El mosaico “emerge” de la barra lateral en una ventana separada.
gddTileDisplayStateResized Cambia el tamaño del mosaico.
Dispositivo objetivo
Nombre Descripción
gddTargetSidebar El elemento se muestra en la barra lateral.
gddTargetNotifier El elemento se muestra en la ventana de notificación.
gddTargetFloatingView El complemento o elemento se muestra en su propia ventana flotante en el escritorio.
Opciones de visualización de ContentItem
Nombre Descripción
gddItemDisplayInSidebar Muestra el elemento en la barra lateral.
gddItemDisplayInSidebarIfVisible Muestra el elemento en la barra lateral si está visible.
gddItemDisplayAsNotification Muestra el elemento en la ventana de notificación.
gddItemDisplayAsNotificationIfSidebarHidden Muestra el elemento en la ventana de notificación si la barra lateral está oculta.
Clases de ventana
Nombre Descripción
gddWndCtrlClassLabel Control estático/de etiquetas de ventanas estándar.
gddWndCtrlClassEdit Control de edición de única línea de ventanas estándar.
gddWndCtrlClassList Control de cuadros combinados de cuadros de lista/lista desplegables de ventanas estándar.
gddWndCtrlClassButton Control de botones de ventanas estándar (también incluye casillas de verificación).
Tipos de control
Nombre Descripción
gddWndCtrlTypeNone No se envía ningún valor.
Tipos de control de edición
Nombre Descripción
gddWndCtrlTypeEditPassword Cuadro de edición que permite al usuario introducir contraseñas; aplica una máscara a los caracteres introducidos.
Tipos de control de listas
Nombre Descripción
gddWndCtrlTypeListOpen Control normal de listas que muestran todas las opciones en una ventana deslizable.
gddWndCtrlTypeListDrop Control de listas desplegables (también denominado un control de cuadros combinados sin función de edición).
Tipos de control de botones
Nombre Descripción
gddWndCtrlTypeButtonPush Botón estándar.
gddWndCtrlTypeButtonCheck Control de casillas de verificación.
Números de identificación de fuentes
Nombre Descripción
gddFontNormal Fuente utilizada para el texto normal.
gddFontSnippet Fuente utilizada para el texto de fragmento (puede ser considerablemente más pequeña que la fuente normal).
gddFontExtraInfo Fuente utilizada para información adicional sobre elementos (por ej., origen y hora).
Número de identificación del color del texto
Nombre Descripción
gddColorNormalText Color utilizado para el texto normal.
gddColorNormalBackground Color utilizado para el fondo de la barra lateral.
gddColorSnippet Color utilizado para el texto del fragmento.
gddColorExtraInfo Color utilizado para información adicional sobre elementos (por ej., origen y hora).
Marcas de texto
Nombre Descripción
gddTextFlagCenter Centra el texto horizontalmente.
gddTextFlagRight Alinea el texto a la derecha.
gddTextFlagVCenter Centra el texto verticalmente.
gddTextFlagBottom Alinea el texto en la parte inferior.
gddTextFlagWordBreak Inserta un salto de texto en los límites de palabras al ajustar varias líneas.
gddTextFlagSingleLine Muestra el texto en una única línea sin ajustes de líneas.
Marcas del elemento de menú
Nombre Descripción
gddMenuItemFlagGrayed Elemento de menú inhabilitado.
gddMenuItemFlagChecked Elemento de menú seleccionado.
Números de identificación de botones que aparecen en el cuadro de diálogo Opciones
Nombre Descripción
gddIdOK Botón Aceptar
gddIdCancel Botón Cancelar.
Niveles de mensajes escritos en el registro del complemento.
Nombre Descripción
gddLogLevelDebug Utilizado para los mensajes de diagnóstico normales.
gddLogLevelInfo Utilizado para los mensajes informativos cuyo comportamiento quizás no sea normal.
gddLogLevelWarning Utilizado para situaciones en las que las entradas o los datos no son frecuentes y necesitan especial atención.
gddLogLevelError Utilizado para errores graves.
Estado de un contacto en la lista de amigos.
Nombre Descripción
gddFriendStatusOnline El amigo está online.
gddFriendStatusIdle El amigo está inactivo; hace un rato que no utiliza el equipo.
gddFriendStatusBusy El amigo está ocupado.
Objetivos Enviar a
Nombre Descripción
gddSendToSidebar Envía los datos a la barra lateral del usuario en cuestión.
gddSendToIM Envía los datos al usuario en cuestión a través de mensajería instantánea.
gddSendToEmail Envía los datos al usuario en cuestión a través del correo electrónico.