Source code

Revision control

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsIArray.idl"
#include "nsISupports.idl"
#include "nsIURI.idl"
[scriptable, function, uuid(001ab07c-1b3a-4dbf-a657-fada0065ff55)]
interface nsITouchBarInputCallback : nsISupports
{
void onCommand();
};
/**
* Implements an input to be registered on the Mac Touch Bar.
*/
[scriptable, uuid(77441d17-f29c-49d7-982f-f20a5ab5a900)]
interface nsITouchBarInput : nsISupports
{
readonly attribute AString key;
/**
* The lookup key for the button's localized text title.
*/
attribute AString title;
/**
* The URI of an icon file.
*/
attribute nsIURI image;
/**
* The type of the input.
* Takes one of:
* `button`:
* A standard button.
* If an image is available, only the image is displayed.
* `mainButton`:
* An extra-wide button. Displays both the image and title.
* `scrubber`:
* A Scrubber element. Not yet implemented, except in the case of Apple's
* pre-built Share scrubber.
* `popover`:
* An element that displays a new instance of nsTouchBar when tapped.
* The elements in the new Touch Bar should be defined in the
* input's `children` property.
* `label`:
* A text label.
* `scrollView`:
* Contains several buttons, defined in the input's `children` property.
* The user can scroll through the buttons.
*/
attribute AString type;
/**
* A callback function to be invoked when an element is touched.
*/
attribute nsITouchBarInputCallback callback;
/**
* A hexadecimal uint32_t specifying the input's
* background color. If omitted, the default background color is used.
*/
attribute uint32_t color;
/**
* If `true`, the Touch Bar input is greyed out and inoperable.
*/
attribute boolean disabled;
/**
* An array containing an input's children.
* Available for type = ("scrollView" || "popover").
*/
attribute nsIArray children;
};