widget/nsITouchBarInput.idl
author Timothy Guan-tin Chien <timdream@gmail.com>
Mon, 28 Jan 2019 18:24:08 +0000
changeset 513567 c1032d34b5e0e525820446f713e4ad6288ebcb56
parent 511967 099f631b90046b102aa1868455f03b7f9942eaba
child 544247 6bad91b2f1989e35f5dbcaa2a850102a0bcb3078
permissions -rw-r--r--
Bug 1518932 - Convert menulist to custom element r=paolo This custom element replaces XBL <content> usage by directly prepend the two needed child nodes when the element is connected. This is doable because - There isn't any direct access of child nodes under <menulist>. Everyone seems to access via .menupopup, which is usually the only child. - We don't need to move the children under <menulist>. If we need to and if the child is a <xbl:children> (which could happen if <menulist> is inside an XBL <content> that just get cloned to the document), the layout will get very confused and crash (see finding in bug 1514926) Differential Revision: https://phabricator.services.mozilla.com/D16149

/* 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"

[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 name of a icon file added to
   * /widget/cocoa/touchbar.
   */
  attribute AString 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.
   */
  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;
};