Firefox Extension Addon SDK结合了多个"动作按钮"

bri*_*pie 8 javascript firefox firefox-addon navbar firefox-addon-sdk

我想将两个"Action Buttons"组合成一个,就像Firefox目前使用Bookmarks插件一样,注意它被视为"Customize ..."选项中的一个按钮.

以下是navBar上整个按钮的屏幕截图.

这是按钮在navBar上的样子

以下是"Customize"gui中"Bookmarks"按钮的屏幕截图.

以下是自定义面板中的按钮(书签)

我仔细阅读了SDK文档,但没有明确的方法.看来这需要操纵sdk/ui库本身.我感谢任何有助于我解决此问题的信息或见解.谢谢.

单击此处获取操作按钮api参考.

nma*_*ier 2

起初我很犹豫是否要回答这个问题,但由于显然没有其他人有更好的答案,所以现在这是我的“非答案”答案:

APIActionButton目前不支持此功能。

但一切并没有失去。您可以使用新的CustomizableUIAPI 加上一些 XUL 和 CSS 直接实现这一点,但这通常是未知的领域。这里有龙;你被警告了。

如果您查看默认按钮的源代码,您会发现通常有不同的方法来实现这样的按钮:

  • 书签按钮本质上是一个“普通”按钮,<toolbarbutton type="menu-button">具有一些自定义样式.toolbarbutton-menubutton-dropmarker(包含下拉标记的框)和/或.dropmarker-icon<image>包含.toolbarbutton-menubutton-dropmarker实际下拉图标的框)。当按钮位于工具栏上时,下拉标记图像将设置为“列表”图标,而不是默认的向下箭头图标,而当位于调色板或“汉堡包”菜单中时,整个内容将被隐藏。当然,还有一些额外的代码可以修复按钮和/或下拉标记的默认操作。
  • 另一方面,缩放控件实际上似乎是一个特殊容器中的三个按钮,并且具有一些自定义样式,这些样式似乎主要是可重用的类(通过设置updateCombinedWidgetStyle)。请参阅MXRCustomizeableWidgets等。

我建议你阅读如何使用CustomizableUI,当然还要阅读内置小部件的代码和 CSS 规则。使用 DOM Inspector 附加组件查看 Chrome Window DOM 也可能会有所帮助,例如更快地找出哪些 CSS 规则正在发挥作用以及它们来自何处;)此外,实际的文件历史记录/更改集也可能会有所帮助。

另外,要求 SDK 团队支持 SDK 中的此类组合按钮可能是个好主意ActionButton(或者自己为此创建补丁;)