widget/nsIBidiKeyboard.idl
author Rob Wu <rob@robwu.nl>
Sat, 24 Sep 2016 11:16:32 +0200
changeset 320058 a41f871e2d1b37754bbd1001c36c075511b49342
parent 239668 103433e8eb3c2a034b45e614e1a036252d2bb52f
permissions -rw-r--r--
Bug 1299411 - Decouple Port implementation from API r=aswan Decoupled the API from the implementation. From now on it is possible to create Port instances without generating an API. This allows us to internally use Ports to pass around messages with minimal overhead (in the form of unnecessary clones of messages). This will be used by native messaging. This commit has no behavioral change, it is mostly moving around some code and storing the internal message listener in a set. MozReview-Commit-ID: 4h0LNJvTH9R

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 *
 * 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"

[builtinclass, scriptable, uuid(288dae24-76e2-43a3-befe-9d9fabe8014e)]
interface nsIBidiKeyboard : nsISupports
{
  /**
   * Inspects the installed keyboards and resets the bidi keyboard state
   */
  void reset();

  /**
   * Determines if the current keyboard language is right-to-left
   * @throws NS_ERROR_FAILURE if no right-to-left keyboards are installed
   */
  boolean isLangRTL();

  /**
   * Determines whether the system has at least one keyboard of each direction
   * installed.
   *
   * @throws NS_ERROR_NOT_IMPLEMENTED if the widget layer does not provide this
   * information.
   */
  readonly attribute boolean haveBidiKeyboards;
};