飞艳小屋

程序--人生--哲学___________________欢迎艳儿的加入

BlogJava 首页 新随笔 联系 聚合 管理
  52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks
Google 桌面
 Google 桌面补充工具栏小工具入门

Google 桌面主页

下载 SDK

开发人员论坛

其他文档目前仅提供英语版本

提交小工具
SDK 概述
Google 桌面博客

目录


简介

Google 桌面 Google 小工具 API 包含了采用 JavaScript 或 VBScript 等脚本语言编写补充工具栏小工具(以前称为“插件”)时所用的对象和方法。本文档说明了如何利用与 Google 桌面小工具设计器一同提供的这一 API 编写小工具。设计器提供了一个集成的开发环境,您可以通过拖放组件设计小工具的用户界面并在补充工具栏外测试小工具。

本文档没有涉及小工具及脚本之外的 Google 桌面 API 内容,例如索引查询操作事件 API 等 (其他文档目前仅提供英语版本)。有关这些 API 的完整详细信息,请参阅链接到的文档。

从文件和包装角度看,基于脚本的 Google 桌面小工具包含以下内容:

  • gadget.gmanifest XML 文件,此文件包含了关于小工具的元信息。
  • main.xml 文件,此文件定义了小工具的主视图。视图包含构成一个完整的小工具可视窗格的用户界面和对象。
  • 一个 options.xml 文件(如果需要),此文件定义了小工具的选项视图。
  • 实施小工具功能所需代码的所有 JavaScript 或 VBScript 文件。
  • 任何所需图片文件,这些图片包括用户界面元素(按钮、复选框等等)、小工具中显示的图片、与小工具相关的图标等。
  • 实现小工具用户界面所用的各种语言的单独文件夹和文件(如果需要)。

在设计器中完成这些文件的编写后,它会将这些文件一起压缩到文件 gadget_name.gg 中,其中 .gg 表示 Google Gadget ,即 Google 小工具。如果您没有使用设计器,则需要将文件压缩到一起,并重命名所得到的文件,使其带有 .gg 后缀。

要分发您的小工具,只需通过 http://desktop.google.com/pluginsubmit 或其他方式提供这一 .gg 文件即可。

在用户通过 .gg 文件安装小工具时,其 Google 桌面安装过程会利用 gadget.gmanifest 文件中的信息对该小工具进行处理,完成解压缩、安装和注册过程。

Google 桌面 4.0 之前的版本不能处理 .gg 文件。运行 4.0 以下版本 Google 桌面的用户无法使用 .gg 样式的小工具。不过,通过创建必要的 .xml 文件和 .gmanifest 文件,并对代码本身作一些微小改动,可将以前编写的插件转换为 Google 桌面 4.0 小工具。

利用 Google 桌面小工具设计器开发和分发基于脚本的补充工具栏小工具的完整步骤为:

  1. 通过 Google 桌面 SDK 中的 designer.exe 启动 Google 桌面小工具设计器。
  2. 点击文件->创建项目
  3. 在文件窗格中双击项目设置,打开项目设置对话框。填写该对话框。设计器使用此信息编写 gadget.gmanifest 文件。
  4. 将构成小工具用户界面的用户界面元素拖放到设计器的显示窗格
  5. 根据需要,将各种按钮图片等用户界面图片文件添加到项目。要执行这一操作,需要使用 Windows Explorer 等外部文件浏览器。将相应文件添加到项目文件夹,或覆盖现有文件内容。
  6. 依次选择各个用户界面元素,并针对您的小工具设置适当的属性和事件值。按下 Cntl-S,保存所完成的工作。
  7. 此外,点击项目->添加选项视图可以按照 options.xml 中的定义向小工具中添加选项视图。针对选项视图重复第 4 步至第 6 步操作。
  8. 打开 main.js 文件(如果您愿意,也可以创建并打开其他脚本文件),编写用户界面元素事件所调用的函数。按下 Cntl-S,保存所完成的工作。
  9. 测试小工具:
    1. 点击预览顶部标签,在显示窗格中显示功能完整的小工具。
    2. 点击视图->调试控制台打开调试控制台。调整其设置,以使其显示所需消息,然后根据需要调整设计器窗口大小,使其同时显示完整的显示窗格和调试控制台。
    3. 通过一些方式试用小工具,执行对小工具的测试。
    4. 如果出现错误,则尝试在代码或用户界面(包括属性)中对其进行修正。保存所做修正,然后点击视图->刷新,将小工具重置为最初状态。重新进行测试,并重复所需操作,直到获得成功。
    5. 如果没有出现错误,请点击视图->刷新将小工具重置为初始状态。继续进行测试,直到小工具能够实现最初的要求,并且您也对其感到满意。
  10. 点击项目->建立包,即可将项目内的所有文件压缩到 Project_name.gg 文件中。
  11. http://desktop.google.com/pluginsubmit 上提交 .gg 文件,分发您的小工具。

请记着经常按 Cntl-S 或点击文件->保存保存完成的工作,特别是在开始测试小工具之前。

设计器本身无法向项目或其文件夹(或子文件夹)中添加文件,了解这一点非常重要。尽管通过文件->创建项目可以创建若干文件(如文件窗格最初所示),但您不能在设计器内向小工具的文件夹中添加文件或从中删除文件。

要向项目文件夹中添加文件或从中删除文件,请使用外部文件浏览器工具,例如 Windows Explorer。这也是您覆盖小工具设计器创建的 plugin_large.gif(该文件包含了与小工具相关的较大图标)等文件需要采用的方式。


使用入门

运行 Google 桌面 SDK 中所包含的 designer.exe 文件即可启动 Google 桌面小工具设计器。设计器初始外观如右图所示。

设计器初始外观

在设计器中,小工具称为项目。因此,要开始创建新的小工具:

  1. 转到文件菜单,并点击其创建项目项。
  2. 之后,即会出现如右图所示的对话框。
  3. 在底部的文件名:字段中,键入小工具的名称。
  4. 点击保存按钮。

新项目名称对话框

在我们命名小工具后,设计器即会创建项目文件夹以及其他几个文件和文件夹(将在文件和文件窗格部分中介绍)供您使用。此时,设计器窗口外观如右图所示。

设计器窗口

项目设置对话框和 gadget.gmanifest 文件

要打开项目设置对话框,请在文件窗格中双击项目设置。在该对话框中,您可以输入关于小工具的基本信息,设计器将利用这些信息编写 gadget.gmanifest 文件。

项目设置对话框

gadget.gmanifest 文件

您所需的 gadget.gmanifest 文件采用 XML 格式指定了对小工具进行说明的元数据以及创建小工具前需要安装的组件。尽管通过 项目设置对话框可以指定其大多数内容,但您也可以手动进行修改。

manifest 文件内容中包含了 <gadget> 元素,该元素带有一个 minimumGoogleDesktopVersion 参数,其值为可以运行这一小工具的 Google 桌面最低版本。在该元素内,包含了必需的 <about> 元素及可选的 <install> 元素。

<about> 元素可以包括以下子元素:

  • <id>:小工具的 CLSID。必需
  • <name>:小工具的名称。必需。
  • <description>:对小工具功能的简短说明。必需。
  • <version>:小工具的版本号。
  • <author>:小工具的作者。必需。
  • <authorEmail>:开发人员联系电子邮件地址。
  • <authorWebsite>:您的网站网址。
  • <copyright>:版权声明。
  • <aboutText>:显示在小工具“关于”对话框中的文字。
  • <smallIcon>:显示在小工具标题栏中的 12x12 像素图标。
  • <icon>:显示在小工具“关于”对话框和快讯用户界面(如果小工具支持)中的 32x32 像素图标。
  • <eventAPI> : 如果包含(该子元素无值,因此使用 <eventAPI /> 即可),则小工具可以使用 Google 桌面事件 API。注册自动进行。
  • <displayAPI usersNotifier="true"/>:若将 usersNotifier 设为 true,则会启用补充工具栏用户界面通知。注册自动进行。
  • <queryAPI allowModifyIndex="true"/>:若将 allowModifyIndex 设为 true,则允许小工具使用查询 API 和索引通知。注册自动进行。

应包含 <id><name><description> 元素(带有值)。我们建议还要包含 <version><author><authorEmail><authorWebsite><copyright><aboutText><smallIcon><icon> 元素(带有值)。您可能会在一些实例中看到所包含的后面一组元素没有值,例如 <authorEmail></authorEmail>。这是可以接受的,但不应作为首选。

下面是数字时钟小工具 gadget.gmanifest 文件的示例。



<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>版权所有 (c) 2006 Google Inc.</copyright>
    <description>只需一瞥即可查看时间 - 数码式</description>
    <aboutText>&strAboutText</aboutText>
    <smallIcon>gadget_small.gif</smallIcon>

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

<gadget> 元素内,除必需的 <about> 元素外,还可以使用可选的 <install> 元素,该元素列出了创建小工具前需要安装的包组件(如字体)。例如:


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

文件窗格和文件

文件窗格显示了压缩后会形成 gadget_name.gg 文件(用于分发小工具)的目录和文件。顶级目录的名称与您在项目设置对话框中为小工具提供的名称相同。在开始时,顶级目录下包含两个子目录和五个文件。

  • 1033 目录:1033 是美国英语的语言 ID。该目录包含 strings.xml 文件,此文件供您及设计器存储小工具用户界面所用字符串的美国英语版本。有关详情以及其他语言如何表示的信息,请参阅 本文档的“国际化”部分
  • 项目设置:双击该文件可打开项目设置对话框。
  • main.js:可向其中写入函数的默认 JavaScript 文件,这些函数用来实现小工具的行为和事件处理。双击该文件即可在显示窗格中打开文件供您修改,同时还会向显示窗格区域顶部添加一个针对所显示文件的标签。完成文件的修改后,请使用文件->保存Cntl+S 保存所做修改。
  • main.xml:定义小工具用户界面布局/视图的 XML 文件。双击该条目等效于按下显示窗格顶部的 main.xml 标签,可在显示窗格中显示 main.xml 的内容。在显示窗格中将用户界面元素拖放到主视图中并设置属性值时,该文件的内容会随之变化。但是,您不能直接在显示窗格中修改该文件。可以使用 Emacs、vim、记事本等外部文件编辑器修改该文件。
  • plugin_large.gif:该文件包含了与小工具相关的较大图标图片。您应使用包含您的小工具所用的适当较大图标(32 x 32 像素)的同名文件替换这一文件。
  • plugin_small.gif:该文件包含了与小工具相关的较小图标图片。您应使用包含您的小工具所用的适当较小图标(12 x 12 像素)的同名文件替换这一文件。
  • stock_images 目录:包含了按钮和复选框等预载用户界面组件图片文件。通常,您需要使用自己的图片文件替换这些文件,或者利用自己的图片覆盖这些文件的内容。

请记注,要添加、删除或复制文件窗格中显示的文件的内容,需要使用设计器的外部浏览器,例如 Windows Explorer 等。文件窗格可用于显示小工具文件夹的内容,但不能用于处理这些内容。

文件窗格

显示窗格

中央显示区域最初由位于较大灰色正方形中央的白色正方形构成。白色区域即是小工具的当前外观,表示总体 view 对象(在 XML 文件中表示小工具的总体外观)。在您启动但尚未定义任何小工具用户界面元素时,显示窗格显示为空白,如右面截图所示。在向白色区域添加内容后,即可更改总体视图对象的大小等属性。

显示窗格

标签

最初,在位于窗口中央的显示窗格区域四周有四个标签,两个位于顶部,两个位于底部。我们已经了解到如何通过在文件窗格中打开 main.js 文件将相应标签添加到顶部。稍后,我们将了解如何向顶部添加标签或从顶部删除标签。

  • 顶部标签:
    • main.xml:选择该标签后,设计器会在显示窗格区域显示小工具的 main.xml 文件的内容。视所选底部标签而定,会按照 XML 内容中的定义显示小工具的用户界面或实际的 XML 代码。
    • 预览:显示小工具的用户界面执行与用户界面关联的一些脚本或函数。从本质上讲,它可以让您在补充工具栏和 Google 桌面之外运行和测试您的小工具。例如,如果您的小工具带有一个按钮,在按下该按钮后,会运行函数,将小工具背景色更改为色谱中的下一颜色,则可在预览模式中按下该按钮,改变小工具的背景色(假定您正确编写了函数)。请注意,在启动预览模式后,底部标签会隐藏。
  • 底部标签:
    • 设计器:显示实际的小工具用户界面。
    • 源代码:显示定义小工具用户界面的 XML 代码
标签

编写视图 XML 文件

使用设计器时,可以拖放用户界面元素,并在主视图或选项视图中设置其属性。在执行这些操作时,会自动更新描述相应特定视图的 XML 文件(main.xmloptions.xml)。更新内容包括添加或删除 XML 元素、设置属性值等等。

您也可以访问 XML 文件,并手动进行修改。因此,在讲解如何使用设计器拖放对象和设置属性前,我们首先了解一下 XML 文件的格式。

下文中的 API 参考列出了可在小工具及其视图(此处“视图”指窗格的总体外观)中定义的元素的属性、方法和事件。您可以使用这些元素在 XML 视图文件中指定小工具的用户界面组件、布局和行为。小工具的主视图由 main.xml XML 文件中的 <view> 元素定义,在创建新项目时,设计器会自动完成这一定义过程。如果您的小工具使用选项视图,您还需要包含 options.xml 文件,该文件定义了其他 <view> 元素。<view> 定义内包含了 XML 元素,这些元素定义了构成相应视图的用户界面对象。例如,main.xml 文件可能包含:

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

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

</view>

上述内容定义了包含按钮的 200x200 像素视图。通过设置相关 button 对象属性,我们还为按钮的 normal、mouse-over 和 mouse-down 状态指定了不同的图片。通过按钮onclick事件,在用户点击按钮时,它会调用在其他位置定义的 button_clicked() 函数。

要在 XML 指定属性,请将属性="" 添加给相应元素。您可以在 XML 中指定事件 scriptlet,方法是将 事件="脚本" 添加给相应元素。对于 DHTML,您可以在创建元素后在脚本中对元素进行处理,但前提是这些元素必须带有 name 属性。例如:

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

在元素具有名称时,脚本即可以对元素进行访问和处理,还可以调用与其关联的所有方法:

sample_button.property = "新值";
sample_button.event = "新脚本";
sample_button.method();

您可以使用 .gg 文件包中其他位置(包括专门的 .js.vbs 文件)定义的脚本函数(例如上面按钮示例中使用的 button_clicked() 函数),也可以包含 <view> 定义中的脚本函数。例如:

												
<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>

										

view 对象内只可定义一个 contentArea 对象。有关 contentArea 的详情,请参阅 API 参考。


小工具事件处理

小工具事件模型类似于 DHTML。下文的 API 参考部分列出了一些对象(具体指 viewbasicElement 及其一些子对象)的相关事件。要指定如何处理这些对象之一的事件,请在该对象的 XML 定义中包含相应事件及事件发生时的行为。例如,要指定发生 onmouseover 事件时 view 对象的行为,应编写以下语句:

<view onmouseover="do_something_when_mouse_is_over;"/>

...其中 do_something_when_mouse_is_over 可以是一段脚本,例如 alert('mouse over!'),也可以是对脚本块中实施的函数的调用,例如 view_onmouseover()

对于 DHTML,事件及其句柄不带任何参数。脚本使用 view.event 对象获取事件的信息。由于每次只能触发一个事件,因此,视图的 event 对象限制了关于当前触发的事件的信息。

event.returnValue 属性可用来设置返回值。对于 DHTML,该值为布尔值,决定了是否触发事件的默认行为。例如:

event.returnValue = false; // 禁用默认行为
event.returnValue = true; // 启用默认行为
// 不指定返回值,启用默认行为

具体讲,event.returnValue 属性可以为:

  • view.event.returnValue = false; //禁用视图事件的默认行为
  • view.event.returnValue = true; //启用视图事件的默认行为

例如:


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

每当在由这一 edit 对象控制时按下某键,都会调用 edit_onkeypress() 函数。如果您按下的键为 j,则由于 event.returnValue 设为 false,事件及其通常的返回值会被取消,使得结果如同从未按下 j 一样。实际上,这相当于该 <edit> 元素不允许您键入字母 j。


处理 4.0 版本之前的对象事件

当前小工具对象集包括 4.0 版本之前的对象集中的一些对象。一些这样的对象(特别是 googleTalkcontentItem)采用与上述模型不同的事件处理模型。在下面的 API 参考中,这些对象列出了相关的事件句柄,而不仅仅是事件

对于这些 4.0 版本之前的对象,要处理某一事件,需要为该特定事件设置句柄函数。这些句柄函数只能在 JavaScript 或 VBScript 块内进行设置,而不能像 4.0 版本的对象那样在 XML 定义中设置。

事件句柄为“只写”句柄,对于它们,您只能为其指定函数。如果您未设置特定句柄,则在响应相关事件时,会执行默认操作。在其 API 参考部分的说明中,我们为各个事件句柄指定了原型签名;您为特定事件句柄指定的函数应与其原型签名匹配。

我们看一下选项与菜单样例代码的相关部分,以了解事件句柄的具体使用方法。


    // 设置的小工具属性,类似于“世界您好”示例。
    // ...
    // 在小工具对象的 onAddCustomMenuItems 事件与
    // 脚本中定义的函数间建立关联。
    plugin.onAddCustomMenuItems = AddCustomMenuItems;  // 添加菜单项的句柄

    // ...

    function AddCustomMenuItems(menu) {
      // 添加不同项目布局作为菜单项,并查看当前所选布局
      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);
        }
      }    
    }

    // ...
   

在该例中,我们为 plugin 对象的 onAddCustomMenuItems 事件指定了 AddCustomMenuItems 函数。请注意,所指定的值仅包含函数名,并不完全包含参数签名。补充工具栏在显示小工具的菜单前需要对其进行初始化,此时即会发生该事件。

AddCustomMenuItems 列出的原型为 AddCustomMenuItems(menu),因此,我们指定的函数也应仅带有一个参数,即 menu 对象。


对象概述

在本部分中,我们将了解各种对象,并着重研究这些对象的用途以及关系。

    gadget 对象

gadget 在整个小工具级有两种不同用途。

  • 在以调试模式运行时,gadget.debug 可以在调试控制台中显示您所进行的一系列选择,从而可以帮助您进行调试。

    要以调试模式运行,请解压缩您的小工具,并双击所获得的文件中的 gadget.gmanifest 文件。这样,开发您的小工具时,您就不必在每次想要测试时都要进行压缩。

    仅当从文件夹中启动小工具(通过点击 gadget.gmanifest)时,调试控制台中才会显示调试消息。在通过 .gg 文件启动小工具时,不会显示调试信息。消息显示在设计器调试控制台或随 Google 桌面 SDK 提供的 gdpconsole.exe 中。
  • gadget.storage 方法用于构成整个小工具包的文件。利用这些方法,您可以提取并打开包中的文件。该存储对象的文件名参数可以使用以下参数:
    • “foo.xml”.gg 文件的根文件夹中查找 foo.xml。如果不能找到,则在本地化文件夹(例如 1033\foo.xml)中查找。
    • 子文件夹\foo.xml”.gg 文件的子文件夹文件夹中查找 foo.xml。如果不能找到,则在本地化文件夹的子文件夹文件夹(例如 1033\subfolder\foo.xml)中查找。
    • “c:\bar.xml”c:\ 驱动器中查找 bar.xml。请提供精确路径。

    view 对象

您应为小工具所拥有的各个整体窗格外观定义 view 对象。这些对象应分别采用单独的 .XML 文件。在您创建项目时,设计器会自动创建包含 view 对象的 main.xml 文件。同时,它还会创建包含自己的 view 属性的 options.xml 文件。

view 的属性和方法定义并使用视图窗格的全部行为。其中包括构成窗格外观的用户界面元素、窗格大小、用户是否可以调整大小、控制脚本执行的计时器、添加或删除用户界面元素以及消息/确认框的显示情况。

view 的事件会根据以下操作触发和运行函数:各种鼠标按钮操作、键盘操作、重新调整大小、属性值更改、光标操作以及第一次打开该视图。

    basicElement 和用户界面对象

basicElement 是构成特定视图视觉外观的各种用户界面元素的父对象。basicElement 本身从不实例化,而只是为其子用户界面对象提供一系列常用属性和事件。

属性指定了元素的大小和位置、名称、可见度与不透明度以及其他一般用户界面元素属性。

事件为与用户界面对象相关的常用事件;操作包括鼠标点击或滚轮、拖放元素、获得或失去键盘焦点、键盘操作、光标移动等。

您可以定义以下 basicElement 子元素:

  • button:您可利用此类特定属性为按钮及其不同状态设置不同图片。
  • checkbox:您可利用此类特定属性为复选框及其不同状态设置不同图片,还可利用它们确定框是否为选中状态。在框的选中值更改时,会触发事件。
  • object:嵌入式无窗口 ActiveX 控件。主要用于 Windows Media Player 嵌入。
  • div:用来设置元素背景颜色或图片。
  • edit:您可利用此类特定属性控制其文本内容外观及设置或检索其文本内容。在内容更改时,会触发事件。
  • img:您可利用此类特定属性设置要显示的图片并获取其原始尺寸。它同时包含了重新设置图片大小的方法。
  • label:您可利用此类特定属性控制标签文字的外观及位置/排列方式。
  • a:您可以利用这一链接对象的特定属性控制链接的外观及其网址。
  • progressBar:此类特定属性控制进度条及其组件的外观以及值更改时触发的事件。

另外还有 elements 对象,该对象表示 basicElement 的子对象的容器。

    options 对象

将选项及其值存储为标准字典/映射。下面两种设置值的方法效果相同:
options("键") = "值";
options.item("键") = "值";

与所有目录类似,您可以通过两种方法之一添加项目:
options("键") = "值"; // 添加或替换当前值。
options.add("键", "值"); // 添加值,如该值已经存在,则不执行任何操作。

defaultValue 属性允许键在字典中没有与之相关的实际值时返回默认值,从而使您不必再检查该键是否存在值。例如:

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

此时,只要请求“color”且字典中实际并不存在“color”,就会返回“red”。例如:

options.defaultValue("color") = "red";
options("color") = "blue";
debug.trace(options( "color")); // 显示“blue”
options.remove("color");
debug.trace(options("color")); // 显示“red”(默认值)
options("texture") = "bumpy";
debug.trace(options("texture")); // 显示“bumpy”
options.remove("texture");
debug.trace(options("texture")); // 显示“”(因为没有默认值)

    4.0 版本之前的对象(googleTalkfriendContentItemmenu、DetailsView

4.0 开发模型中包含了 4.0 版本之前的开发模型中的四种对象:googleTalkfriendContentItemmenu。请记住,在代码中使用 googleTalkmenu 事件句柄时,需要使用 4.0 版本之前的事件处理模型。另外,与其他用户界面元素不同,这些元素并不是 basicElement 的子元素。

有关如何使用 googleTalkfriend 对象编写可与您的计算机上运行的小工具进行通信的小工具的详细信息,请参阅 Google 桌面补充工具栏通信 API 文档 (其他文档目前仅提供英语版本)。

利用 menu 对象及其方法,您可以为小工具构造多项菜单,包括用户点击某一菜单项时的相关句柄函数。

ContentItem 对象在运行于不同计算机上的小工具间传递,并且可以构成 contentArea 对象所包含的用户界面元素。

DetailsView 是一个用户界面功能,该功能允许小工具在补充工具栏外的其他窗口/小工具中显示更多信息。小工具利用此功能还可从“详细视图”接收通知和事件。

framework 命名空间

framework 命名空间实现了填充 Windows Scripting Host(Windows 脚本主机)留下的空隙的 API,对于小工具的实施非常有用。具体讲,framework.* 对象并非 basicElement 的子对象,并且不会出现在小工具 XML 用户界面对象定义中。framework 是用于查询系统信息的对象的命名空间,基本类似于 .NET;由 XML 定义的用户界面对象所调用的脚本会使用这些系统信息。

利用 framework 对象及其属性可以:

  • 显示文件对话框的浏览。
  • 加载图片文件。
  • 获取当前光标位置。
  • 获取系统内存空间和使用情况的相关信息。
  • 获取系统无线性能及连接情况的相关信息。
  • 设置和监控控制何时运行脚本代码的计数器。
  • 获取系统电源和电池电量的相关信息(总电量及剩余电量)。
  • 获取系统处理器的相关信息。
  • 获取系统的屏幕尺寸。

最后,还有其他两个定义的对象,它们仅用于 Framework 命名空间内的类型:

  • point:表示“点”,具有 x 坐标属性和 y 坐标属性。
  • size:表示对象的尺寸,具有高度属性和宽度属性。

作为可以如何使用 framework 对象的示例,我们编写了一个可显示膝上型电脑电池剩余电量的样例小工具:


<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>

我们定义了包含两个要素的 200x200 像素视图:

  • <div>,背景颜色为白色
  • <label>,名为 percent_used,最初读数为 0%。

在加载小工具时,触发 view::onopen 事件,该事件调用 view_onopen()。该函数设置了间隔,以使得每秒钟调用一次 update_battery()update_battery() 使用 framework 命名空间的 system.power.percentRemaining 对象及属性更新 percent_used 元素的 innerText

请注意,我们未将 framework. 放在 system.power.percentRemaining 前,是否这样做由您选择。


拖放用户界面对象

拖放用户界面图标

这是在设计器中定义小工具用户界面的途径。只需在任一用户界面元素(共八个)上点击鼠标,并根据您希望该元素显示在小工具中的位置,将其向下拖动到白色显示区域内的相应位置。放开鼠标按钮,该用户界面元素即会出现在小工具中,并会成为当前选择的用户界面元素。作为选择的用户界面元素,其属性及属性值会显示在右侧的属性窗格中。只需在显示区域内点击某一用户界面对象,即可使其成为当前选择的用户界面对象。

用户界面对象具有 API 参考部分中介绍的所有属性、方法和事件。请记住,此处所示的对象均继承自 basicElement 对象,因此请在那一部分查看未针对各个对象指定的属性或事件的说明。八个用户界面元素为:

  • Div:用来设置小工具或用户界面元素的背景颜色,并提供一个连接点,以通过程序插入或删除包含元素中的用户界面元素。
  • Image:指定视图中显示的图片。
  • Button:按钮对象。
  • Edit:指定小工具用户可以编辑文字内容的范围。
  • Check:复选框对象。
  • Link:定义 HTML 链接。
  • Text Label:固定文本标签对象。
  • ContentContentArea 包容 (containment) 对象.请参阅 API 参考了解其使用方法。

progressbarobject 用户界面元素在设计器拖放元素时不可用,但可在 XML 代码中进行定义。请记住,设计器不允许直接编辑小工具的 XML 文件,因此您应使用外部编辑器程序。


元素窗格

在显示窗格中添加了一个或多个用户界面元素后,您可以通过以下两种方法之一选择元素:

  • 在显示窗格中单击相应元素。
  • 在元素窗格中点击其名称。

在某一对象被首次放入显示窗格时,它在元素窗格中显示为 view 元素的子元素,并且仅使用类型作为标识符。因此,例如,如果您将 Button 元素拖放到显示窗格中两次,元素窗格中会显示两个项目,并且两者均通过 button 指定。如果您赋予某个元素名称,例如 Button1,则该元素在元素窗格中会显示在表单 button (Button1) 内。

请注意,在设计器中只有一种途径可以访问 view 对象的属性和事件,即在元素窗格中点击 view 项。

元素窗格

属性窗格

属性窗格显示了当前选择的用户界面对象的属性及属性值。在该窗格内,您还可以修改对象的属性值,及选择与其事件相关的函数。

要修改属性值,只需点击其名称或值。输入选项取决于属性类型。

  • 如果为布尔属性,则其值会变为一个小的下拉菜单,其中提供了 truefalse 两个值。点击您希望赋予该属性的值即可。
  • 如果为数字或文本值属性,则只需在值字段内键入新值,并按下 Enter 即可。 一些属性值,例如 maskdivbackground,也可以为字符串或文件。对于该属性类型,会出现一个带有 3 个点的小框。如果点击该框,就会出现打开文件浏览器窗口,这样您就可以选择作为属性值的文件。如果您需要使用字符串值,只需在值字段内键入字符串,并按下 Enter 即可。

根据需要,显示内容会发生更改,以反映用户界面对象的新属性值。

请注意,cursor 等一些属性所允许的值集是确定且有限的。设计器不会查看您输入的值是否属于该属性所允许的值集。但是,在您显示视图时,不在值集的值会引起错误。

另请注意,可通过在元素窗格中选择进行访问的总体 view 对象都具有自己的属性和事件集。例如,如果您想要更改视图本身的大小,请在元素窗格中点击 view,然后在属性窗格中更改 height 和/或 width 值。

对于事件,只需在其值字段中输入小工具所包含的脚本文件中定义的函数的名称即可。例如,对于 viewonOpen 事件,可以在其值字段内键入 main.js 中定义的函数 view_onOpen()

属性窗格

脚本窗格

本窗格显示了当前显示的 XML 文件中小工具所用的所有脚本文件。在完成小工具的设计后,这些脚本文件会和用户界面 XML 及图片文件压缩到一起。默认情况下,该窗格最初仅包含 main.js 文件,但您可以添加其他脚本和/或删除 main.js

要向脚本窗格中添加脚本文件,请点击三个图标中居左的纸张图标。这会打开以您的小工具文件夹开始的文件浏览器(设为仅显示脚本文件)。找到您要添加的脚本文件,并点击打开。请注意,脚本文件应已存在,您才可以在此处添加它。与 File-> 命令不同,该操作会将脚本文件复制到项目文件夹中,并让设计器将其显示在文件窗格中。它还会在显示窗格中当前活动的小工具 XML 文件中加入 <script src="filename" /> 行。因此,例如,如果 main.xml 处于活动状态,<script src="filename"/>会添加到 main.xml 中,而不会添加到 options.xml 中。

在脚本窗格中,通过点击选择某一脚本文件后,您可以:

  • 点击中间的打开文件图标打开文件,以进行编辑。这会添加一个以文件名为标记的顶部标签。这一操作还相当于点击了这一新标签,会将显示窗格更改为针对该文件内容的编辑窗格。
  • 通过点击右侧 X 图标从脚本窗格中删除文件。请注意,这会立即删除脚本,且不会显示任何确认对话框,但同时,该脚本的文件仍会显示在文件窗格中,且仍将会压缩为小工具的一部分,除非您还通过外部浏览器工具从小工具的文件夹中删除了相应文件。

脚本窗格不是显示项目文件夹中存储的脚本文件,而是显示当前显示的视图定义 XML 文件中所用的脚本,这一点非常重要。

如果您在通过文件->新建项目创建 main.xml 文件后立即查看它,则在其 <view> 元素中会包含 <script src="main.js" /> 行。main.js 还会列于脚本窗格以及文件窗格中。

如果您从脚本窗格中删除 main.js,则 <view> 元素中的 <script src="main.js" /> 会消失,表明小工具的视图无法再获取该文件中定义的函数的信息。文件本身仍存在于项目文件夹中,并应通过外部文件浏览器删除(如果您希望删除该文件),否则,它会与其他项目文件一起压缩到 .gg 文件中。

最后请注意,默认情况下创建新项目时,main.xml 会自动包含 <script src="main.js" /> 行,而 main.js 会包含 main.xml 所用的 view_onOpen() 函数的定义。如果您从脚本窗格中删除 main.js,却不提供替代函数定义,也不重新编写 main.xml,使其不再使用 view_onOpen(),则会出现错误。

脚本窗格

菜单命令

在设计器窗口顶部共有五个带有下拉菜单的命令:文件编辑视图项目帮助。下面我们分别详细介绍这些命令。

菜单命令

      文件菜单命令

文件包含七个菜单命令:

  • 新建项目:打开另存为对话框,以让您指定存放新项目的文件夹的位置及其名称。点击 确定后,新项目即会出现在设计器窗口中。注意:如果某一项目已显示在设计器窗口中,在打开新项目前,不会要求用户保存项目。Cntl-Shift-N 为键盘等价命令键。
  • 打开项目:打开浏览文件夹对话框,供您用来查找现有项目文件夹。选择文件夹后,点击确定。如果所选文件夹不包含 main.xml 文件,则会弹出错误消息,并退出操作过程。否则,所选项目会在设计器窗口中打开。Cntl-Shift-O 为键盘等价命令键。
  • 关闭项目:关闭当前项目,设计器窗口显示为空白,仅保留顶部菜单命令。请注意,该命令不会让您保存当前打开的项目。该命令没有键盘等价命令键。
  • 打开:打开已设为显示 XML 文件的文件浏览器。选择并打开文件会创建以相应文件名为标记的新的顶部标签,同时会选中新标签,并在显示窗格区域内显示文件的内容。请注意,新文件不会被添加到显示在文件窗格的小工具文件夹中,因为该文件并不在项目文件夹内。要向项目文件夹中添加文件,请使用 Windows Explorer 等外部文件浏览器。Cntl+O 为键盘等价命令键。
  • 保存:保存所有打开的小工具文件。在编辑文件或更改用户界面对象的属性时,需要使用该命令。Cntl+S 为键盘等价命令键。
  • 关闭:立即关闭当前显示在显示窗格中的文件,并删除该文件的顶部标签。文件本身仍在文件窗格中。Cntl+F4 为键盘等价命令键。
  • 退出:弹出窗口,询问您是否保存对 main.xml 文件的更改。在您点击后,小工具设计器即会关闭。Alt+F4 为键盘等价命令键。

另外,所有最近的文档都会显示在菜单部分退出命令上方的相邻位置。点击最近项目会在设计器中将其打开。

文件命令

      编辑菜单命令

编辑包含六个菜单命令:

  • 撤消:还原您在设计器中执行的操作,例如更改属性值、移动用户界面对象、创建新对象等等。您可以连续进行多次撤消,从而撤消一系列操作。Cntl+Z 为键盘等价命令键。
  • 恢复:如果您刚刚执行了撤消操作,该命令会恢复最后一次撤消的操作,否则该命令显示为灰色。如果您连续进行了多次撤消,则可以连续进行多次恢复,以还原设计器状态。Cntl+Y 为键盘等价命令键。
  • 剪切:标准剪切操作,该命令作用于在显示窗格中选择的用户界面元素。Cntl+x 为键盘等价命令键。
  • 复制:标准复制操作,该命令作用于在显示窗格中选择的用户界面元素。请注意,在复制用户界面对象时,会完全复制包括所有属性值在内的所有内容。因此,例如,如果您复制名为 Button2 的按钮,则复制的内容还会包含值为 Button2 的名称属性。在元素窗格中,两个按钮外观完全相同。Cntl+c 为键盘等价命令键。
  • 粘贴:标准粘贴操作,该命令作用于在显示窗格中选择的用户界面元素。Cntl+v 为键盘等价命令键。
  • 删除:标准删除操作,该命令作用于在显示窗格中选择的用户界面元素。DEL 为键盘等价命令键。

编辑命令

      视图菜单命令

视图包含五个菜单命令:

  • 刷新:刷新设计器窗口中的各种对象和窗格。最为重要的是,该命令会重新初始化小工具的所有全局变量和属性值,这样,就会从头开始执行全局范围的代码。从本质上讲,该命令会将小工具重置为最初状态,这在测试小工具时非常有用。F5 为键盘等价命令键。
  • 下一个标签:等价于点击当前所选标签右侧的顶部标签。如果当前选择的是最后一个标签,则相当于转而点击第一个标签。Cntl+Tab 为键盘替代命令键。
  • 上一个标签:等价于点击当前所选标签左侧的顶部标签。如果当前选择的是第一个标签,则相当于转而点击最后一个标签。Cntl+Shift+Tab 为键盘替代命令键。
  • 调试控制台:在设计器窗口底部打开调试控制台(占用通常的窗口内容所用的空间;若要将其他内容恢复为之前的大小,需要重新调整窗口大小)。视所选中的复选框而定,此处会显示预览/运行小工具时生成的调试、信息、警告和或错误消息。您还可以选择是否显示所出现的消息。要隐藏调试控制台,只需再次点击调试控制台菜单项。
  • 预览窗口:更改显示窗格,使其显示运行模式下的小工具,以便于您测试用户界面和查看其工作情况。等价于点击预览顶部标签。

视图命令

      项目菜单命令

项目包含三个菜单命令:

  • 设置:打开项目设置对话框。F3 为键盘等价命令键。
  • 添加选项视图向项目中添加 options.xml 文件,并在顶部添加 options.xml 标签;由于每个项目只可以定义一个 options.xml 文件,因此,添加选项视图会显示为灰色。点击该命令后,应采用与主视图相同的方式创建并测试选项视图及其用户界面。
  • 建立包:将小工具的文件压缩到 Project_Name.gg 文件中,以供分发。F7 为键盘等价命令键。

项目命令

      帮助菜单命令

帮助包含两个菜单命令:

  • 用户指南:在浏览器窗口中打开本文档。
  • 关于:显示包含关于设计器的有限信息的弹出窗口。

帮助命令


补充工具栏小工具之间的通信

满足以下条件时,运行在不同计算机上的补充工具栏小工具之间可以进行通信:

  • 应为相同的小工具;Tic-Tac-Toe 小工具可以与另一 Tic-Tac-Toe 小工具通信,但不能与便笺簿小工具通信,反之亦然。
  • 进行通信的小工具的所有用户都应登录 Google Talk。

Google Talk 担当补充工具栏小工具的通信媒介。在用户登录 Google Talk 后,小工具就可以获得用户当前在线的 Google Talk 朋友列表。获得在线朋友列表后,小工具即可与运行于在线朋友计算机上的同一小工具进行数据发送和接收操作。如果朋友没有安装补充工具栏,小工具则会向该朋友发送一条文本消息。

在向基于脚本的小工具添加通信功能时,要发送数据和设置小工具接收数据时调用的句柄,都会用到 googleTalk 全局变量。

在发送数据时,第一步是引用 googleTalkfriends 属性,该属性会获取包含您的 Google Talk 在线朋友的 friend 对象的队列。

friend 对象具有五个属性:

  • name:Google Talk 中显示的名称。
  • user_id:Google Talk 用户 ID,会作为数据/消息接收参数传递给数据/消息发送方法。
  • email_address:朋友电子邮件地址。
  • has_sidebar:布尔指示符,指出朋友是否安装了补充工具栏。在尝试向可能不存在的工具栏发送数据前,应查看该属性。
  • status:朋友的 Google Talk 状态:在线、空闲或忙碌,此处分别以 0、1 或 2 表示。

在脚本获得 Google Talk 朋友队列后,即会利用以下两种方法之一向朋友发送数据:

  • SendTalkData(friend_id, data):向由 friend_id 的补充工具栏确定的朋友发送数据字符串(最长 2000 个字符)。具体讲,是向朋友补充工具栏中与调用该方法的小工具相同的小工具发送数据。
  • SendTalkText(friend_id, message):向用户 ID 为 friend_id 的 Google Talk 用户发送最多 2000 个字符的文本消息。该方法常用于朋友未安装补充工具栏时。

要接收数据,需要为某一函数建立关联,以与 googleTalkonReceiveTalkData 函数句柄一同进行处理。函数的签名应为 name(friend_object, data_string)。在小工具收到数据时即会调用该函数,因此在编写时,应使其能够处理其他小工具可能发送的任何及全部消息。

使用通信 API 的脚本工具不应执行收到的数据,这一点是通过调用 eval() 实现的。导致这一问题的原因是恶意用户可能会对小工具进行修改,以发送在朋友计算机上执行的脚本。收到的脚本会在本地权限下运行,因此可以访问本地文件和资源。为防范这一情况,需查看 eval() 调用,以确保其没有评估收到的数据。

要了解小工具通信的示例,请查看 SDK 中提供的 Tic-Tac-Toe 示例代码。



用户界面与可用性指南

在设计小工具时,请记住以下一般原则:

  • 小工具应简单、简洁、简短。

    补充工具栏的空间资源非常有限,因此要仅使用确实需要用来显示信息的空间。简单的调色板提供了更为清晰的外观,同时最大限度地降低了与其他小工具在感觉上的不协调。
  • 开发期间测试易用性。

    在开发小工具功能时邀请他人使用您的小工具。在它们发现不协调或不易使用的情况时,请重新考虑用户界面方面。特别是要确保帮助内容清晰、有用、全面。

用户希望与补充工具栏小工具的交互在小工具间保持一致性。以下部分将指出在所有补充工具栏小工具间均应保持一致的视觉线索与操作。



      一般设计

您的小工具应提供尽可能多的替代操作和信息。具体指:

  • 为小工具的命令提供鼠标替代操作和键盘替代命令键(包括为所有菜单命令提供键盘快捷键)。
  • 支持工具提示。
  • 提供详细视图窗格(如果需要)以及可用操作的右键点击上下文菜单。



      鼠标输入

由于用户通过鼠标与大多数小工具进行交互,因此,与用户界面相关的鼠标输入在整个补充工具栏内更应保持一致,以避免造成混乱。以下视觉线索会告知用户三个主要平铺窗格元素类型所支持的点击类型。

  • 项目:显示小工具的主要内容,例如在新闻小工具中的文章。
    • 单击选择项目并打开其详细视图。
    • 双击在新的应用程序窗口中打开项目,同时在补充工具栏中选中该项目。
    • 鼠标悬停临时突出显示项目。

  • 窗口小部件:包括按钮、复选框、星标等等,在被点击时会执行某些操作。
    • 单击!我们保留双击,将其用于打开项目。
    • 鼠标悬停鼠标点击状态与正常状态外观不同。
    • 看上去应可点击,例如使用带有三维阴影的图形。
    • 同时作为窗口小部件的文本应满足以下两点,以与普通文本区分开来:
      • 在可点击文本旁显示图标(请参见下例“删除”按钮)。
      • 其鼠标悬停状态看上去应可点击或与按钮相似。
    • 窗口小部件不是项目或项目的一部分。点击窗口小部件不应打开项目的详细视图。
    • 针对文本和图形使用所支持的 DrawItemBackground(使用不同标记设置),创建在整个补充工具栏内外观相同的按钮。
    • 窗口小部件示例:
       正常状态鼠标悬停鼠标点击
      复选框
      (执行项目小工具)
      正常复选框鼠标悬停复选框点击复选框
      删除按钮
      (详细视图)
      删除按钮鼠标悬停于删除按钮点击删除按钮
  • 状态指示器:显示辅助信息的图标或图形。
    • 如果是项目的一部分,则会继承项目的所有鼠标行为
    • 图形通常是不可点击的,因此,在鼠标悬停或鼠标点击时应不会改变。
    • 状态示例(收盘价格、网络活动、天气云量):



显示

      图形和图标

  • 应为小工具提供两种大小的图标。图标设计应该易于理解,并与小工具的功能相适应。

    • 12x12 像素:显示在小工具的标题栏中

    • 32x32 像素:显示在关于这一小工具对话框和快讯用户界面中(如果小工具支持)。

  • 小工具中的图标应该为 12x12 像素。由于尺寸较小,请使用简单图形和调色板,以便于用户快速识别小工具。
  • 以下 12x12 图标集用于默认补充工具栏小工具集。您应该使图标样式与这些图标相符合,它们具有简单完整的图形,且通常由单一主色阴影组成。图片本身以 2D 平面形式代表了小工具的内容。每个图标的主色阴影都具有 1 像素的边界。


      颜色


  • 请慎用颜色。如果可以,请使用灰色阴影。
  • 请勿使用太亮的颜色,或对比度过高或过低的组合。尽量避免引起视觉疲劳。例如,左侧图片颜色运用较好,右侧图标则难以阅读。

  • 不要仅仅依靠颜色进行区别,因为如果用户色盲,会出现问题。此示例同时使用颜色(红/绿)和文字 (+/-) 表示股票价格的改变方向。


      文本

  • 用户指定的系统字体和字体大小同时会用于补充工具栏的文本显示。
  • 标准文本是黑色,重要性较低的文本颜色为 navy(深蓝)[#224499 或 rgb(34, 68, 153)] 或 gray(灰)[#666666 或 rgb(102, 102, 102)]。
  • 尽量避免使用粗体文本,因为相对于补充工具栏的其他部分过于突出。


格式和布局
补充工具栏可以有四种不同的视图;常规最小化扩展详细
  • 常规视图:常规外观。

    如果您具有网络剪辑等项目列表,则可以使用 API 提供的列表布局。如果只显示一个项目,例如一张图片,则使用单项目列表布局。只通过查看此视图内容,小工具的用途就应该一目了然。

    请记住,根据补充工具栏的宽度,您所显示的信息可能更多或更少。应该尽量避免使用滚动条,而是使用项目的扩展视图。

    尽量清晰明了地表示项目的类型。例如,文件项目应该在名称旁边带有文件类型图标。对于较大的文本(例如电子邮件或网页)的摘录,应该在第一行显示标题,附带该项目来源和日期等主要信息。

    常规小工具视图

  • 最小化视图:即仅显示标题栏。

    通常,标题栏只显示小工具的图标和标题。您也可以不显示标题,而是逐一循环显示小工具的简短项目,例如您的股票及其价格。

    最小化小工具视图

  • 扩展视图:补充工具栏旁边完全最大化的视图。

    通常用于显示所有小工具项目的完整列表,如果有很多项目需要显示,可以使用垂直滚动条。

    扩展小工具视图

  • 详细视图:特定小工具项目的详细信息。

    通过点击任何项目,就可以从小工具的常规或扩展视图启动此视图,它可以显示尽可能多的信息。

    点击一个项目的标题就可以在相应的应用程序中打开它,例如在浏览器中打开一张网页。

    项目详细视图项目详细视图

国际化

即使您无法提供任何其他语言的文本,在编写小工具时,也应该使它的文本和标签能以多种语言显示。今后,或许其他人能够提供。您还可以为不同语言的用户指定不同图片、视图布局甚至脚本。

首先,让我们看看语言。要支持多种语言,需将所有小工具用户界面中可见的特定语言的字符串放在名为 strings.xml 的文件中,此文件在以相应语言 ID 命名的子目录中。此文件包含针对特定语言字符串的指定变量。在小工具定义和代码中不使用特定语言字符串,而是使用这些变量。例如,“世界您好”的英语 strings.xml 文件包括:


<strings>

  <strTitle>HelloWorld!</strTitle> 
  <strHello>HelloWorld!</strHello> 
  <strSnippet>一些项目信息。</strSnippet> 
  <strAboutText>
	HelloWorld!插件。此处为版权信息。此处为详细说明
	</strAboutText> 
  <strDescription>Says Hello World</strDescription> 
  </strings>

    

这样,您在“世界您好”小工具的脚本代码中,为“HelloWorld!”标题设置了视图的 caption 属性,如下所示:
view.caption = strTitle;
如果在您的 XML 或 .gmanifest 文件中设置了 About 文本,如下所示:
<aboutText>&strAboutText</aboutText>

请注意,在代码中,您只需使用来自 strings.xml 文件的元素名。在 XML 中,您需要在元素名之前加上 &

如果您编写的小工具同时具有英语和法语版本,应该将文件放在以下目录树中:


  <GD dir>/Plugins/YourGadget
                     |
                     |---- gadget.js
                     |
                     |---- gadget.gif
                     |
                     |---- 1033 (美国英语语言 ID)
                     |      |
                     |      `-- strings.xml
                     |
                     `---- 1036 (法语语言 ID)
                            |
                            `-- strings.xml
     

补充工具栏首先检查具有与当前系统所使用的语言 ID 相同的目录。如果存在,它将加载该目录的 strings.xml 文件。如果无法找到该文件,默认情况下将加载 1033(美国英语)目录的 strings.xml 文件(如果存在)。

同样,您现在可以将图片、标记、脚本等等放置在此本地化文件夹中,Sidebar 将尝试使用以上规则加载它们。这样,例如,如果您的小工具针对当地语言需要不同图片,可以按以下步骤操作:
<img src="some_image.png"/>

补充工具栏将首先尝试加载 some_image.png,如果系统语言为法语,它将在法语本地化目录中查找此图片(1036\some_image.png),然后退回英语目录 (1033\some_image.png)。

您可以将内容放置在本地化目录中,而不是主目录中,包括:

  • main.xml:如果具有使用不同语言的不同布局。
  • options.xml:如果具有使用不同语言的不同布局。
  • anything.js:如果具有使用不同语言的不同脚本。

如果您希望所创建的小工具在大多数地方都支持默认行为,但是对不同语言具有不同行为,可以:

  • gadget.xml 放置在 gadget.gg 文件的根文件夹中。
  • 将其他内容放置在 gadget.gg 文件的 1033\ 文件夹中。
  • 将不同语言中需要替换的内容放置在特定语言的文件夹中。

点击此处可以获得所有语言 ID 号码的列表。


API 参考


对象参考

此部分显示了 Google Gadgets API 中与脚本相关的不同对象,包括它们的属性、方法和相关事件。注意,许多对象继承了 basicElement 的属性、方法和事件。

同样,如果说一个方法返回了一个元素,这意味着在小工具的 XML 定义中定义了一个元素,它继承自 basicElement

gadget.debug
列出了可用于开发和调试小工具的 API。要以调试模式运行,请解压缩您的小工具,并双击所获得的文件中的 gadget.gmanifest 文件。
方法
名称和参数说明返回值
error(string Message)当小工具以调试模式运行时,在调试控制台中作为错误消息显示字符串消息。void
trace(string Message)当小工具以调试模式运行时,在调试控制台中显示字符串消息。void
warning(string Message)当小工具以调试模式运行时,在调试控制台中作为警告显示字符串消息。void


gadget.storage
提供对小工具包内容的访问权。
方法
名称和参数说明返回值
extract(string filename)将文件从小工具包解压到临时文件夹,并返回该解压文件的完整路径。字符串
openStream(string filename)通过小工具包打开一个文件,并作为流返回内容。
openText(string filename)通过小工具包打开一个文件,并作为字符串返回内容。字符串


view
注意:与其子对象/内容对象不同,viewbasicElement 继承。
您必须在单独的文件中为小工具的每个面板用户界面定义 view 对象。
属性
名称说明类型读/写
caption此视图的标题,默认情况下当小工具处于浮动/扩展模式时显示此标题,当小工具位于补充工具栏中时不显示此标题。另请参阅 showCaptionAlways 属性。字符串读-写
children返回包含此视图元素的直接子元素的集合。它们全部是 basicElement 的子对象。只能通过脚本访问,不能通过 XML 定义访问。元素只读
event事件句柄脚本获得 event 对象的方式。事件
height设置或返回视图高度,以像素表示。整数读-写
width设置或返回视图宽度,以像素表示。整数读-写
resizable值为 true 时,用户可以调整视图的大小。布尔读-写
showCaptionAlways值为 true 时,补充工具栏一直显示此视图的标题(在caption 属性中指定)。默认情况下或当此值为 false 时,如果小工具在补充工具栏中则不显示此标题,如果小工具处于浮动或扩展模式则显示此标题。布尔读-写
方法
名称和参数说明返回值
void alert(string message)显示包含消息字符串的消息框。void
element appendElement(string xml)解析所提供的元素定义(以 XML 格式给定),并将此元素附加为此视图的最后一个子视图。 新元素。
integer beginAnimation(string script, integer startValue, integer endValue, integer duration)启动动画计时器。此计时器运行 duration 毫秒。在此时间段内使用 StartValue 和 EndValue 之间的值定期执行脚本。可用于取消此动画的标识符。
注意:调用 Callback 的次数由系统的性能和当前负载决定。最高为 100 fps。
void cancelAnimation(integer Token)取消当前运行的动画。Token 是 beginAnimation 返回的标识符。void
void clearInterval(integer Token)取消间隔或超时。void
boolean confirm(string message)显示包含消息字符串的确认框。如果按“确定”,返回 true,否则返回 false布尔
element insertElement(string xml, element InsertBefore)解析提供的 XML,并将此元素插入紧挨 InsertBefore 元素之前的位置。新元素。
void removeElement(element Item)删除指定元素。void
void resizeBy(integer width, integer height)根据视图当前的宽度和高度,将视图大小更改指定的宽度和高度。以像素为单位。void
Void resizeTo(integer width, integer height)将视图大小更改为指定的宽度和高度(以像素为单位)。void
integer setTimeout(string Script, integer Duration)创建单次运行计时器。在 Duration 毫秒之后脚本将执行一次。可用于取消超时的令牌。
integer setInterval(string Script, integer Duration)创建一个永久运行计时器。在取消之前,脚本将每 Duration 毫秒执行一次。可用于取消间隔的令牌。
事件

名称 说明
onclick 点击鼠标左键时触发。
onclose 视图将关闭时触发。
ondblclick 双击鼠标左键时触发。
onkeydown 当按下某键时触发。
onkeypress 当按下某键然后释放时触发。
onkeyup 当释放某键时触发。
onminimize 当小工具最小化时触发。
onmousedown 当按下鼠标左键时触发。
onmouseout 当鼠标光标离开视图时触发。
onmouseover 当鼠标光标进入视图时触发。
onmouseup 当释放鼠标左键时触发。
onopen 视图第一次打开时触发。
onoptionchanged 当添加、更改或删除 options 对象中的属性时触发。event.propertyName 指定更改的项目。
onrestore 当小工具从最小化状态恢复时触发。
onsizing 当用户更改小工具大小时触发。只有 resizable 设置为 true 时才触发。event.widthevent.height 包含用户请求的新宽度和高度。事件代码可以取消该事件(event.returnValue = false),这将使小工具保持当前大小。事件代码可以修改 event.widthevent.height,以忽略用户选择进行更改。
onsize 在脚本代码修改大小(例如,设置 view.widthview.height,或调用 view.resizeByview.resizeTo)后,或在调用 onsizing 并指定新的大小后,视图更改到新的大小,然后触发此事件。此事件无法取消。


basicElement 对象
定义可用于所有元素的属性、方法和事件,特定元素将继承此处定义的内容。
属性
名称 说明 类型 读/写
cursor 设置或检索光标,以在鼠标位于此元素之上时进行显示。

可能值:arrowibeamwaitcrossuparrowsizesizenwsesizeneswsizewesizenssizeallnohandbusyhelp

字符串 读-写
dropTarget 设置或检索此元素是否是拖/放操作的目标。如果为 true,当用户启动拖/放操作时,ondrag* 事件将触发。 布尔 读-写
enabled 设置或检索是否启用此元素。禁用事件不触发任何鼠标或键盘事件。 布尔 读-写
height 设置或检索高度。 可以按像素或父对象的高度的百分比表示此值。 可变 读-写
hitTest 设置或检索此事件的点击测试值。

可能值:httransparenthtnowherehtclient, htcaptionhtsysmenuhtsize, htmenuhthscrollhtvscrollhtminbuttonhtmaxbuttonhtlefthtrighthttophttoplefthttoprighthtbottomhtbottomlefthtbottomrighthtborderhtobjecthtclose, hthelp

字符串 读-写
mask 设置或检索定义此元素剪切路径的掩码位图。 字符串 读-写
name 检索元素名称。 字符串 只读
offsetHeight 检索元素相对于父元素的高度,以像素表示。该属性类似于相同名称的 DHTML 属性。只能通过脚本访问,不能通过 XML 定义访问。 整数 只读
offsetWidth 检索元素相对于父元素的宽度,以像素表示。该属性类似于相同名称的 DHTML 属性。只能通过脚本访问,不能通过 XML 定义访问。 整数 只读
offsetX 检索元素相对于父元素的 x 位置,以像素表示。该属性类似于相同名称的 DHTML 属性。只能通过脚本访问,不能通过 XML 定义访问。 整数 只读
offsetY 检索元素相对于父元素的 y 位置,以像素表示。该属性类似于相同名称的 DHTML 属性。只能通过脚本访问,不能通过 XML 定义访问。 整数 只读
opacity 设置或检索元素的不透明度。

有效值:0-255

整数 读-写
parentElement 检索父元素。只能通过脚本访问,不能通过 XML 定义访问。 元素 只读
pinX 设置或检索水平针型标记。 整数 读-写
pinY 设置或检索垂直针型标记。 整数 读-写
rotation 设置或检索元素的旋转,以度数表示。 浮点 读-写
tagName 检索标志名称。只能通过脚本访问,不能通过 XML 定义访问。 字符串 只读
tooltip 设置或检索鼠标在此元素之上停留时显示的工具提示。 字符串 读-写
width 设置或检索宽度。可以按像素或父对象的宽度的百分比表示此值。 可变 读-写
visible 设置或检索此元素是否可见。 布尔 读-写
x 设置或检索水平位置。可以按像素或父对象的宽度的百分比表示此值。 可变 读-写
y 设置或检索垂直位置。可以按像素或父对象的高度的百分比表示此值。 可变 读-写
事件
名称 说明
onclick 当用户点击此元素时触发。
ondblclick 当用户双击此元素时触发。
ondragdrop 当用户将对象拖动到此元素上时触发。
ondragout 当用户取消拖/放操作时触发。
ondragover 当用户将一个对象拖动到此元素上时触发。
onfocusin 当元素获得键盘焦点时触发。
onfocusout 当元素失去键盘焦点时触发。
onkeydown 当用户按下某键时触发。
onkeypress 当用户按下然后释放某键时触发。
onkeyup 当用户释放某键时触发。
onmousedown 当用户按下鼠标键时触发。
onmousemove 当用户在元素上移动鼠标时触发。
onmouseout 当用户将鼠标移出元素之外时触发。
onmouseover 当用户将鼠标移动到元素上时触发。
onmouseup 当用户释放鼠标键时触发。
onmousewheel 当用户滚动鼠标滚轮时触发。


元素
表示元素对象的容器。支持 Javascript 枚举器和集合元素访问,例如 elements("foo"),而不是 elements.item("foo")
属性
名称 说明 类型 读/写
count 返回集合中的元素数。 整数 只读
item (string Name) 返回 Name 参数确定的元素。如果使用同一名称定义了多个元素,则返回第一个。如果没有匹配元素,返回空值。 元素 只读,默认(对于某些脚本语言, .item 标识可选)


<button> 元素,button 对象
Button 对象,同样继承了 basicElement 对象的所有属性和方法。
属性
名称 说明 类型 读/写
disabledImage 设置或检索禁用按钮时显示的图象。 字符串 读-写
downImage 设置或检索按下按钮时显示的图片。 字符串 读-写
image 设置或检索按钮的默认图片。 字符串 读-写
overImage 设置或检索当鼠标移动到按钮上时显示的图片。 字符串 读-写


<checkbox> 元素,checkbox 对象
Checkbox 对象,同样继承了 basicElement 对象的所有属性和方法。
属性
名称 说明 类型 读/写
image 设置或检索复选框的默认图片。 字符串 读-写
checkedDisabledImage 设置或检索选中和禁用复选框时显示的图片。 字符串 读-写
checkedDownImage 设置或检索选中和按下复选框时显示的图片。 字符串 读-写
checkedOverImage 设置或检索选中复选框时以及鼠标位于复选框之上时显示的图片。 字符串 读-写
checkedImage 设置或检索选中复选框时显示的默认图片。 字符串 读-写
disabledImage 设置或检索禁用复选框时显示的图片。 字符串 读-写
downImage 设置或检索按下复选框时显示的图片。 字符串 读-写
overImage 设置或检索当鼠标移动到按钮上时显示的图片。 字符串 读-写
value 如果选中复选框,返回 true。 布尔 读-写
事件
名称 说明
onchange value 属性更改时触发。


<object> 元素object 对象
嵌入式对象,它是无窗口 ActiveX 控件,同样继承了 basicElement 对象的所有属性和方法。
属性
名称 说明 类型 读/写
classId 检索创建 ActiveX 控件所使用的 classId。注意,以 XML 格式定义 objectElement 时,classId 的值应使用 "clsid:GUID_value""progid:progid_value" 的格式,包括引号。 字符串 只读
object 检索托管的 ActiveX 控件。 对象 只读
wmpServiceType 当对象是 Windows Media Player 时,设置或检索该嵌入式对象的服务类型。 字符串 读-写
wmpSkin 设置或检索要在小工具中托管的 Windows Media Player 外观文件的名称。外观文件应该打包在 .gg 文件中。 字符串 读-写


<contentArea> 元素contentArea 对象
一般内容包容对象。虽然来源于 basicElement,但是不支持许多 basicElement 属性。仅支持 xywidthheightnamebasicElement 属性。这包括 ContentItem 对象;详细信息请参见其参考材料。在 view 对象中只能定义一个 contentArea
属性
名称 说明 类型 读/写
contentFlags 一个或多个 gddContentFlagXXXX 标记的组合。 整数 只写
maxContentItems 允许的内容项最大数,默认值为 25。 整数 读-写
contentItems 内容项组。 可变 读-写
pinImages 图片组;您可以使用 framework.graphics.loadImage() 加载图片。 可变 读-写
方法
名称和参数 说明 返回值
void addContentItem(item, options) 添加新内容项。 void
void removeContentItem(item) 删除指定内容项。 void
void removeAllContentItems() 删除所有内容项。 void


<div> 元素,div 对象
div 对象,同样继承了 basicElement 对象的所有属性和方法。
属性
名称 说明 类型 读/写
background 设置或检索元素的背景颜色或背景图片。 字符串 读-写
children 检索包含此元素的直接子元素的集合。只能通过脚本访问,不能通过 XML 定义访问。 元素 只读
方法
名称和参数 说明 返回值
appendElement(string xml) 解析提供的 XML,并将此元素附加为这一元素的最后一个子元素。 元素
insertElement(string xml, element InsertBefore) 解析提供的 XML,并将此元素插入紧挨 InsertBefore 元素之前的位置。 元素
removeElement(element Item) 删除指定元素。 void


<edit> 元素,edit 对象
编辑区域对象,同样继承了 basicElement 对象的所有属性和方法。颜色值格式只能是:
color="#RRGGBB"(类似于 HTML)
不支持 Alpha 和图片纹理值。
属性
名称 说明 类型 读/写
background 设置或检索元素的背景颜色。 字符串 读-写
bold 设置或检索文本是否应该为粗体。 布尔 读-写
color 设置或检索文本颜色。 字符串 读-写
font 设置或检索文本字体。 字符串 读-写
italic 设置或检索文本是否应该为斜体。 布尔 读-写
size 设置或检索文本文字大小,以磅表示。 整数 读-写
strikeout 设置或检索是否应该删除文本。 布尔 读-写
underline 设置或检索是否应该为文本添加下划线。 布尔 读-写
value 设置或检索元素值。 字符串 读-写
事件
名称 说明
onchange 属性值更改时触发。


<img> 元素,img 对象
图片对象,同样继承了 basicElement 对象的所有属性和方法。
属性
名称 说明 类型 读/写
src 设置或检索要显示的图片。 字符串 读-写
srcHeight 检索所显示图片的原始高度。 整数 只读
srcWidth 检索所显示图片的原始宽度。 整数 只读
方法
名称和参数 说明 返回值
setSrcSize(integer Width, integer Height) 通过降低分辨率,将图片大小调整为指定的宽度和高度。如果源图片大于显示区域,通过使用此方法将图片大小更改为输出大小,可以节省内存,改善呈现效果。 void


<label> 元素,label对象
标签对象,同样继承了 color="#RRGGBB"(类似于 HTML)
color="#AARRGGBB"(类似于 HTML,其中 AA 为 alpha 值)
color="some_image.png"(将此图片作为重复纹理)
属性
名称 说明 类型 读/写
align 设置或检索文本对齐方式。
可能值:center、left 和 right
字符串 读-写
bold 设置或检索文本是否应该为粗体。 布尔 读-写
color 设置或检索文本颜色。 字符串 读-写
font 设置或检索文本字体。 字符串 读-写
innerText 设置或检索显示的文本。只能通过脚本访问,不能通过 XML 定义访问。 字符串 读-写
italic 设置或检索文本是否应该为斜体。 布尔 读-写
size 设置或检索文本文字大小,以磅表示。 整数 读-写
strikeout 设置或检索是否应该删除文本。 布尔 读-写
trimming 如果文本太大无法显示,设置或检索剪裁模式。
可能值:none、character、word、character-ellipsis、word-ellipsis、path-ellipsis
字符串 读-写
underline 设置或检索是否应该为文本添加下划线。 布尔 读-写
vAlign 设置或检索垂直对齐方式。
可能值:top(靠上)、middle(居中)、bottom(靠下)
字符串 读-写
wordWrap 设置或检索文本是否应该换行。 布尔 读-写


<a> 元素,a 对象
定义一个链接,同样继承了 basicElement 对象的所有属性和方法。
属性
名称 说明 类型 读/写
align 设置或检索文本对齐方式。
可能值:center、left 和 right
字符串 读-写
bold 设置或检索文本是否应该为粗体。 布尔 读-写
color 设置或检索文本颜色。 字符串 读-写
font 设置或检索文本字体。 字符串 读-写
href 设置后,点击此链接将在默认浏览器中启动此网址。只能启动 http:、https: 和 ftp:网址。 字符串 读-写
innerText 设置或检索显示的文本。只能通过脚本访问,不能通过 XML 定义访问。 字符串 读-写
italic 设置或检索文本是否应该为斜体。 布尔 读-写
overColor 设置或检索当鼠标移动到元素上时文本的颜色。 字符串 读-写
size 设置或检索文本文字大小,以磅表示。 整数 读-写
strikeout 设置或检索是否应该删除文本。 布尔 读-写
trimming 如果文本太大无法显示,设置或检索剪裁模式。
可能值:none、character、word、character-ellipsis、word-ellipsis、path-ellipsis
字符串 读-写
underline 设置或检索是否应该为文本添加下划线。 布尔 读-写
vAlign 设置或检索垂直对齐方式。
可能值:top(靠上)、middle(居中)、bottom(靠下)
字符串 读-写
wordWrap 设置或检索文本是否应该换行。 布尔 读-写


<progressBar> 元素,progressBar 对象。
进度条对象,同样继承了 basicElement 对象的所有属性和方法。
属性
名称 说明 类型 读/写
emptyImage 设置或检索滑块为空时显示的图片。 字符串 读-写
fullImage 设置或检索滑块充满时显示的图片。 字符串 读-写
max 设置或检索最大值 - 滑块充满时的值。 整数 读-写
min 设置或检索最小值 - 滑块为空时的值。 整数 读-写
orientation 设置或检索滑块的方向。
可能值:horizontal(水平)、vertical(垂直)
字符串 读-写
thumbDisabledImage 设置或检索禁用滑块时显示的缩略图。 字符串 读-写
thumbDownImage 设置或检索当按缩略图时显示的图片。 字符串 读-写
thumbOverImage 设置或检索当鼠标移动到缩略图上时显示的图片。 字符串 读-写
thumbImage 设置或检索缩略图的默认图片。 字符串 读-写
value 设置或检索该值。 整数 读-写
事件
名称 说明
onchange value 属性更改时触发。


options
独立对象,不会从其他任何对象继承。
属性
名称 说明 类型 读/写
count 返回字典中的项目数。 整数 只读
defaultValue (string name) 设置或返回 namedefaultValue 字符串 读-写
item (string name) 设置或返回 name 的当前值。这是默认属性。 字符串 读-写
方法
名称和参数 说明 返回值
add(string name, variant value) 如果某项未包含在字典中,添加此项。 void
exists(string name) 如果已经设置 name 值,返回 true 布尔
remove(string name) 从字典中删除此值。 void
removeAll() 从字典中删除所有值。 void


googleTalk
4.0 版本之前的对象,其事件句柄使用 4.0 版本之前的事件处理模式。
属性
名称 说明 类型 读/写
friends 返回在线朋友姓名。 friend 对象。 只读
方法
名称和参数 说明 返回值
SendTalkData(friend_id, data) 向朋友发送字符串。friend_id 来自 friend 对象的 user_id 属性。 不返回任何值。
SendTalkText(friend_id, message) 向朋友发送作为即时消息的文本消息。friend_id 来自 friend 对象的 user_id 属性。 不返回任何值。
事件句柄
名称 原型 说明 返回值
onReceiveTalkData OnReceiveTalkData(friend, data) 当某位朋友机器上的同一插件发送数据时调用。friendfriend 对象,data 为字符串。 不返回任何值。


Friend 对象
此对象由 googleTalk 返回。Google 小工具无法创建此类型的变量。
属性
名称 说明 类型 读/写
name 朋友的可见用户名。 字符串 只读
user_id 朋友的用户 ID,此 ID 被作为参数传递给 SendTalkText SendTalkData 等方法。 字符串 只读
email_address 朋友的电子邮件地址。 字符串 只读
has_sidebar 朋友是否安装了补充工具栏。 布尔 只读
status 朋友的状态(例如,在线/空闲/忙碌)。 整数 只读


ContentItem 对象
4.0 版本之前的对象,其事件句柄使用 4.0 版本之前的事件处理模式
属性
名称 说明 类型 读/写
image 项目中显示的图片。 图片 读/写
notifier_image 通知程序中显示的图片。 图片 读/写
time_created 时间(在 JavaScript 中,指可变时间值)。 时间 读/写
heading 项目显示的标题。 字符串 读/写
source 项目显示的网站/新闻来源。 字符串 读/写
snippet 项目显示的摘录。 字符串 读/写
open_command 用户打开/双击项目时打开的网址/文件路径。 字符串 读/写
layout 项目的布局表明项目的显示格式。 整数 读/写
flags 内容项标记组合。 整数 只写
tooltip 工具提示文本,例如完整路径、完整标题等等。 字符串 只写
friend_name 如果此项目来自其他用户,则包含发送项目的用户名。 字符串 读/写
time_received 如果此项目来自其他用户,则包含接收的日期和时间(使用通用协调时间)。 字符串 读/写
方法
名称和参数 说明 返回值
SetRect(x, y, width, height) 设置项目的显示位置。在设置任何项目的位置之前,启用插件的 MANUAL_LAYOUT 标记。如果未启用,此项目将显示在插件给定的默认位置。
事件句柄
名称 原型 说明 返回值
onDrawItem DrawItem(item, display_target, graphics, x, y, width, height) 调用以绘制项目。 不返回任何值。
onGetHeight GetHeight(item, display_target, graphics, width) 调用以获取项目在宽度给定时的高度,以像素数表示。 返回 integer,按像素数给出项目高度。
onOpenItem OpenItem(item) 用户打开/双击项目时调用。 不返回任何值。
onToggleItemPinnedState ToggleItemPinnedState(item) 用户点击项目的“针形标记”按钮时调用 不返回任何值。
onGetIsTooltipRequired GetIsTooltipRequired(item, display_target, graphics, x, y, width, height) 调用以检查显示在给定位置的项目是否需要工具提示 返回布尔值,true 显示工具提示,false 不显示工具提示。
onDetailsView OnDetailsView(item) 在为给定项目显示详细视图之前调用 不返回任何值,将取消详细视图;或返回一个具有以下属性的对象:
  • obj.title - 详细视图显示的标题
  • obj.details_control - 应该在详细视图中显示的 activeX 控件
  • obj.flags - 控制详细视图布局/使用的标记
对于以上每个参数的详细信息,请参阅界面 IGoogleDesktopDisplayContentItemHandler 中有关 OnDetailsView 的文档。
onProcessDetailsViewFeedback ProcessDetailsViewFeedback(item, details_view_flags) 调用以处理用户在详细视图中的操作。 不返回任何值。
onRemoveItem RemoveItem(item) 当用户从显示中删除一项时调用 返回 true 取消删除,保留此项目;返回 false 继续操作,删除此项目。


DetailsView 对象
4.0 版本之前的对象,其事件句柄使用 4.0 版本之前的事件处理模式
方法
名称和参数 说明 返回值
SetContent(source, time_created, text, time_absolute, content_layout) 设置要在“详细视图”内容窗格中显示的内容。
SetContentFromItem(item) 设置从项目直接显示的内容。


menu
方法
名称和参数 说明 返回值
AddItem(item_text, style, handler) 添加一个菜单项。stylegddMenuItemFlagXXXX 的组合。handler 的函数原型是 OnMenuItem(item_text) 不返回任何值。
SetItemStyle(item_text, style) 设置给定菜单项的样式。Style 是 gddMenuItemFlagXXXX 的组合。 不返回任何值。
AddPopup(popup_text) 添加显示给定文本的子菜单/弹出式菜单。 返回新弹出式菜单的菜单对象。


Framework 命名空间

framework
如果指向其子对象,则 framework 关键字可选。例如,framework.system.battery 等同于 system.battery
对象 说明
system 返回收集计算机系统相关信息的对象。
方法
名称和参数 说明 返回值
BrowseForFile( string Filter) 显示文件对话的标准浏览,并返回所选文件的文件名;如果取消此对话,则显示空字符串。过滤器字符串的形式为“显示名称|类型列表”,并可以为其添加多个条目。例如“音乐文件|*.mp3;*.wma|所有文件|*.*”通过对话的“文件类型”下拉菜单定义了两种可能选择:音乐文件,符合 *.mp3 或 *.wma 的任何文件;所有文件,符合 *.* 的任何文件。 字符串
BrowseForFiles( string Filter) 显示文件对话的标准浏览,并返回包含所选文件名称的集合;如果取消此对话,则显示空字符串。查看 BrowseForFile,获得对 Filter 参数的说明。 collection


framework.graphics
对象 说明
createPoint 返回 Point 对象。
createSize 返回 Size 对象。
loadImage(image_src) 加载和返回(作为 image 对象)给定的图片文件。
image_src 可以是本地文件(不支持远程网址)的路径,也可以是 XMLHttp 对象的 responseStream 成员(通过它,小工具可以使用 XMLHttp 对象下载和加载图片)。您可以将图片文件对象用作 contentItem.image 属性的值,或修改旧的 API 的 plugin 对象的 <smallIcon><icon> 属性。


framework.system
有关这些对象属性的信息,请参阅以下条目
对象 说明 cursor 返回提供鼠标光标相关信息的对象。 filesystem 返回提供对 Windows 标准 Scripting.FileSystemObject 对象访问权的对象。 memory 返回提供系统内存相关信息的对象。 network 提供系统无线连接相关信息的对象的父对象。目前,framework.system.network 自身不具有属性,本身也不作为对象使用。 perfmon 返回提供类似于 Windows PerfMon 的信息的对象。 power 返回提供系统节能状态相关信息的对象。 processor 返回提供系统处理器相关信息的对象,可以提供诸如批次,型号,名称,速度,厂家等信息。 screen 返回提供屏幕相关信息的对象。

framework.system.cursor
属性 类型 说明
position point 返回 Point 对象,它包含当前光标相对于屏幕的位置。


framework.system.memory
属性 类型 说明
free 整数 当前可用的虚拟内存(物理 + 转换)的字节数。
total 整数 虚拟内存(物理 + 转换)的总字节数。
used 整数 当前正在使用的虚拟内存(物理 + 转换)的字节数。
freePhysical 整数 当前可用的物理内存的字节数。
totalPhysical 整数 物理内存的总字节数。
usedPhysical 整数 当前使用的物理内存的字节数。


framework.system.network.wireless
属性 类型 说明
available 布尔 如果可以使用无线则为 True。
connected 布尔 如果已连接到无线网络此值为 True。
name 字符串 返回无线适配器的名称。
networkName 字符串 返回无线网络的名称。
signalStrength 整数 返回无线连接的信号强度。值为 0-100。


framework.system.perfmon
属性 类型 说明
currentValue ("counter_path") 可变 返回所指定计数器的当前值。应该已经使用 addCounter 添加计数器。计数器路径由 Windows PerfMon 应用程序定义和记录,类似 “\Processor(_Total)\% Processor Time”“\LogicalDisk(_Total)\% Disk Time”
方法
名称和参数 说明 返回值
addCounter(string counter_path, string script_code) 开始监控指定计数器。只要计数器值改变,此脚本代码就会运行。 void
removeCounter(string counter_path) 停止监控指定计数器。 void


framework.system.power
注意:如果此计算机没有电池或 Windows 无法确定电池的值,整数类型属性将返回 -1
属性 类型 说明
charging 布尔 如果电池正在充电,值为 true
percentRemaining 整数 剩余电池电量(百分比)
pluggedIn 布尔 如果计算机已插上电源,则为 true
timeRemaining 整数 所估计的电池需要充电之前的剩余时间(以秒表示)。
timeTotal 整数 所估计的电池完全充满后的工作时间(以秒表示)。


framework.system.processor
属性 类型 说明
architecture 字符串 处理器架构(例如 x86)。
count 整数 安装的处理器数量。
family 整数 处理器系列的标识。
model 整数 标记的处理器型号。
name 字符串 处理器名称(用于显示)。
speed 字符串 处理器速度,以 mhz 表示。
stepping 整数 处理器的步进标识。
vendor 字符串 处理器供应商名称。


framework.system.screen
属性 类型 说明
size 尺寸 返回包含屏幕尺寸信息的 size 对象。


Point 对象

表示一个由其位置确定的点。坐标值与哪些因素相关取决于指定这些值的方法或属性。

point
属性
名称 说明 类型 读/写
x X-坐标值。 整数 读-写
y Y-坐标值。 整数 读-写


Size 对象

表示某一对象的大小。

size
属性
名称 说明 类型 读/写
height 高度值。 整数 读-写
width 宽度值。 整数 读-写


常量和标记
详细视图标记
名称 说明
gddDetailsViewFlagNone 没有传递任何标记。
gddDetailsViewFlagToolbarOpen 使详细视图标题像按钮一样可以点击。
gddDetailsViewFlagNegativeFeedback 在详细视图中添加否定反馈按钮(例如,“不要显示这样的项目”)。
gddDetailsViewFlagRemoveButton 在详细视图中添加“删除”按钮。
gddDetailsViewFlagShareWithButton 在详细视图中添加按钮,以在点击时显示朋友列表,用户还可以与其朋友共享内容项目。
插件标记
名称 说明
gddPluginFlagNone 没有传递任何标记。
gddPluginFlagToolbarBack 在插件工具栏中添加“返回”按钮。
gddPluginFlagToolbarForward 在插件工具栏中添加“前进”按钮。
信息掩码
名称 说明
gddInfoMaskNone 没有传递任何标记。
gddInfoMaskMinSize 返回显示插件内容所需大小的下限
gddInfoMaskMaxSize 返回显示插件内容所需大小的上限
gddInfoMaskIdealSize 返回显示插件内容所需大小的理想值
插件命令
名称 说明
gddCmdAboutDialog 显示“关于”对话。
gddCmdToolbarBack 用户点击了“返回”按钮。
gddCmdToolbarForward 用户点击了“前进”按钮
内容项布局
名称 说明
gddContentItemLayoutNowrapItems 只有标题和图标时为单行。
gddContentItemLayoutNews 显示标题、来源和时间的布局。
gddContentItemLayoutEmail 显示标题、来源、时间和摘录的布局。
内容标记
名称 说明
gddContentFlagNone 没有传递任何标记。
gddContentFlagHaveDetails 当用户点击内容项时显示详细视图。
gddContentFlagPinnable 使用户可以固定内容项,以便一直显示这些项目。
gddContentFlagManualLayout 通过给定每个项目的显示位置,插件可以管理项目布局
内容项标记
名称 说明
gddContentItemFlagNone 没有传递任何标记。
gddContentItemFlagStatic 项目不接受用户输入。
gddContentItemFlagHighlighted 项目突出显示/显示为粗体。
gddContentItemFlagPinned 项目被固定在列表顶部。
gddContentItemFlagTimeAbsolute 项目时间显示为绝对时间,与当前时间无关。
gddContentItemFlagNegativeFeedback 项目可以从用户那里获得否定反馈。
gddContentItemFlagLeftIcon 项目图标应该显示在左侧。
gddContentItemFlagNoRemove 不在上下文菜单中显示此项目的“删除”选项。
gddContentItemFlagShareable 可以与朋友共享项目。这将启用上下文菜单中的特定菜单项,并启用详细视图中的按钮。
gddContentItemFlagShared 说明此项目来自其他用户。
gddContentItemFlagInteracted 说明该用户已经与此项目交互(查看详细信息/打开等等)。
小工具显示状态
名称 说明
gddTileDisplayStateHidden 平铺窗格不可见。
gddTileDisplayStateRestored 从最小化或伸出状态恢复平铺窗格。
gddTileDisplayStateMinimized 平铺窗格已经最小化,只有标题栏可见。
gddTileDisplayStatePoppedOut 平铺窗格“伸出”补充工具栏另外展开一个窗口。
gddTileDisplayStateResized 平铺窗格重新调整大小。
目标设备
名称 说明
gddTargetSidebar 正在补充工具栏中显示/绘制项目。
gddTargetNotifier 正在通知窗口中显示/绘制项目。
gddTargetFloatingView 插件/项目正显示在浮动于桌面上的自己的窗口中。
ContentItem 显示选项
名称 说明
gddItemDisplayInSidebar 在补充工具栏中显示此项目。
gddItemDisplayInSidebarIfVisible 如果补充工具栏可见,则在其中显示此项目。
gddItemDisplayAsNotification 在通知窗口中显示此项目。
gddItemDisplayAsNotificationIfSidebarHidden 如果补充工具栏隐藏,则在通知窗口中显示此项目。
窗口类
名称 说明
gddWndCtrlClassLabel 标准窗口静态/标签控件。
gddWndCtrlClassEdit 标准窗口单行编辑控件。
gddWndCtrlClassList 标准窗口列表框/下拉列表组合框控件。
gddWndCtrlClassButton 标准窗口按钮控件(还包括复选框)。
控件类型
名称 说明
gddWndCtrlTypeNone 未传递任何值。
编辑控件类型
名称 说明
gddWndCtrlTypeEditPassword 用户可以输入密码的编辑框,该框可以隐藏实际输入的字符。
列表控件类型
名称 说明
gddWndCtrlTypeListOpen 标准列表控件,在可滚动窗口中显示所有选项。
gddWndCtrlTypeListDrop 下拉列表控件(也称为没有现场编辑功能的组合框控件)。
按钮控件类型
名称 说明
gddWndCtrlTypeButtonPush 标准按钮。
gddWndCtrlTypeButtonCheck 复选框控件。
字体 ID
名称 说明
gddFontNormal 用于常规文本的字体。
gddFontSnippet 用于摘录文本的字体(可能稍小于常规字体)。
gddFontExtraInfo 用于项目其他信息(例如来源和时间)的字体。
文本颜色 ID
名称 说明
gddColorNormalText 常规文本所使用的颜色。
gddColorNormalBackground 补充工具栏背景所使用的颜色。
gddColorSnippet 摘录文本所使用的颜色。
gddColorExtraInfo 项目其他信息(例如来源和时间)所使用的颜色。
文本标记
名称 说明
gddTextFlagCenter 文本水平居中。
gddTextFlagRight 文本右对齐。
gddTextFlagVCenter 文本垂直居中。
gddTextFlagBottom 文本底部对齐。
gddTextFlagWordBreak 当换行时在字的分界处截断文本。
gddTextFlagSingleLine 在一行中显示文本,不换行。
菜单项标记
名称 说明
gddMenuItemFlagGrayed 禁用的菜单项。
gddMenuItemFlagChecked 选中的菜单项。
出现在选项对话框中的按钮 ID
名称 说明
gddIdOK “确定”按钮
gddIdCancel “取消”按钮。
写入插件日志的消息级别
名称 说明
gddLogLevelDebug 用于正常诊断消息。
gddLogLevelInfo 用于可能属于不正常行为的提供信息的消息。
gddLogLevelWarning 用于输入/数据不正常、需要注意的情况。
gddLogLevelError 用于重大错误。
好友列表中联系人的状态
名称 说明
gddFriendStatusOnline 好友在线。
gddFriendStatusIdle 好友空闲,最近没有使用此 PC。
gddFriendStatusBusy 好友正忙。
“发送至”目标
名称 说明
gddSendToSidebar 将此数据发送至给定用户的补充工具栏。
gddSendToIM 使用即时消息将此数据发送至给定用户。
gddSendToEmail 使用电子邮件将此数据发送至给定用户。
©2006 Google - 隐私政策 - 条款 - 版权声明
posted on 2006-09-27 15:15 天外飞仙 阅读(5079) 评论(0)  编辑  收藏 所属分类: javaScript

只有注册用户登录后才能发表评论。


网站导航: