widget/nsIStandaloneNativeMenu.idl
author Valentin Gosu <valentin.gosu@gmail.com>
Wed, 27 Aug 2014 05:42:13 +0300
changeset 209178 7e1d2aaeeec1b843ba061552d6e66bd9cc19df85
parent 94475 f4157e8c410708d76703f19e4dfb61859bfe32d8
child 788973 7f3223b376bb4f473b44e8d3d504df58b70652a0
permissions -rw-r--r--
Bug 786419 - Part 11 - Address possible issues with offline notifications in nsGlobalWindow and WorkerPrivate r=bent Part 2 of this bug adds nsGlobalWindow as an observer for the app-offline notification. There are however a few corner cases we haven't handled. For example: If the browser is offline, and an app is made offline, there should be no offline event dispatched. Also, WorkerPrivate should ignore offline events that cause no change in its offline state.

/* 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 "nsISupports.idl"

interface nsIDOMElement;

/**
 * Platform-independent interface to platform native menu objects.
 */

[scriptable, uuid(7F7201EB-510C-4CEF-BDF0-04A15A7A4A8C)]
interface nsIStandaloneNativeMenu : nsISupports
{
  /**
   * Initialize the native menu using given XUL DOM element.
   *
   * @param aDOMElement A XUL DOM element of tag type |menu| or |menupopup|.
   */
  void init(in nsIDOMElement aDOMElement);

  /**
   * This method must be called before the menu is opened and displayed to the
   * user. It allows the platform code to update the menu and also determine
   * whether the menu should even be shown.
   *
   * @return true if the menu can be shown, false if it should not be shown
   */
  boolean menuWillOpen();

  /**
   * The native object representing the XUL menu that was passed to Init(). On
   * Mac OS X, this will be a NSMenu pointer, which will be retained and
   * autoreleased when the attribute is retrieved.
   */
  [noscript] readonly attribute voidPtr nativeMenu;

  /**
   * Activate the native menu item specified by |anIndexString|. This method
   * is intended to be used by the test suite.
   *
   * @param anIndexString string containing a list of indices separated by
   *        pipe ('|') characters
   */
  void activateNativeMenuItemAt(in AString anIndexString);

  /**
   * Force an update of the native menu item specified by |anIndexString|. This
   * method is intended to be used by the test suite.
   *
   * @param anIndexString string containing a list of indices separated by
   *        pipe ('|') characters
   */
  void forceUpdateNativeMenuAt(in AString anIndexString);
};