widget/nsIWinMetroUtils.idl

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #include "nsISupports.idl"
     8 /**
     9  * Integration with the "Metro"/"Modern" UI environment in Windows 8.
    10  *
    11  * Note: browser/metro/base/content/browser.js contains a stub
    12  * implementation of this interface for non-Windows systems, for testing and
    13  * development purposes only.
    14  */
    15 [scriptable, uuid(319faae0-82ca-4c2f-8a24-2b2445e5a72a)]
    16 interface nsIWinMetroUtils : nsISupports
    17 {
    18   /**
    19    * Determine if the current device has the hardware capabilities to run
    20    * in metro mode.
    21    */
    22   readonly attribute boolean supported;
    24   /**
    25    * Determine if the current browser is running in the metro immersive
    26    * environment.
    27    */
    28   readonly attribute boolean immersive;
    30   /**
    31    * Determine the activation URI
    32    */
    33   readonly attribute AString activationURI;
    35   /**
    36    * Determine the previous execution state. The possible values of this
    37    * attribute are exactly those values in the
    38    * Windows::ApplicationModel::Activation enumeration.
    39    */
    40   readonly attribute long previousExecutionState;
    42   /**
    43    * Helper for our restart logic up in the about flyout. We set this
    44    * right before we restart for an update so that MetroAppShell can
    45    * communicate this to the ceh.
    46    */
    47   attribute boolean updatePending;
    49   /*
    50    * Determine if metro firefox is running in the foreground.
    51    */
    52   readonly attribute boolean foreground;
    54    /**
    55     * Show the settings flyout
    56     */
    57    void showSettingsFlyout();
    59   /**
    60    * Launches the specified application with the specified arguments and
    61    * switches to Desktop mode if in metro mode.
    62    */
    63    void launchInDesktop(in AString aPath, in AString aArguments); 
    65   /**
    66    * Displays a native Windows 8 toast.
    67    *
    68    * @param aAppId  Application ID for current application.
    69    *                If using Metro mode, it can be null string.
    70    */
    71    void showNativeToast(in AString aTitle, in AString aMessage,
    72                         in AString anImage, in AString aCookie,
    73                         [optional] in AString aAppId);
    75   /**
    76    * Secondary tiles are a Windows 8 specific feature for pinning new tiles
    77    * to the start screen.   Tiles can later be activated whether the browser is
    78    * already opened or not. 
    79    */
    81   /**
    82    * Pins a new tile to the Windows 8 start screen.
    83    * 
    84    * @param aTileID         An ID which can later be used to remove the tile
    85    *                        ID must only contain valid filesystem characters
    86    * @param aShortName      A short name for the tile
    87    * @param aDiplayName     The name that will be displayed on the tile
    88    * @param aActivationArgs The arguments to pass to the browser upon 
    89    *                        activation of the tile
    90    * @param aTileImage An image for the normal tile view
    91    * @param aSmallTileImage An image for the small tile view
    92    */
    93   void pinTileAsync(in AString aTileID,
    94                     in AString aShortName,
    95                     in AString aDisplayName,
    96                     in AString aActivationArgs,
    97                     in AString aTileImage,
    98                     in AString aSmallTileImage);
   100   /**
   101    * Unpins a tile from the Windows 8 start screen.
   102    * 
   103    * @param aTileID An existing ID which was previously pinned
   104    *                ID must only contain valid filesystem characters
   105    */
   106   void unpinTileAsync(in AString aTileID);
   108   /**
   109    * Determines if a tile is pinned to the Windows 8 start screen.
   110    * 
   111    * @param aTileID An ID which may have been pinned with pinTileAsync
   112    *                ID must only contain valid filesystem characters
   113    * @return true if the tile is pinned
   114    */
   115   bool isTilePinned(in AString aTileID);
   117   /**
   118    * Soft keyboard attributes. Used in unison with shown/hidden observer
   119    * events sent via FrameworkView.
   120    *
   121    * keyboardVisible - returns true if the soft keyboard is currently
   122    * displayed, false otherwise.
   123    * keyboardX, keyboardY, keyboardWidth, keyboardHeight - occlude rect
   124    * of the keyboard when displayed in device independent pixels.
   125    */
   126   readonly attribute boolean keyboardVisible;
   127   readonly attribute unsigned long keyboardX;
   128   readonly attribute unsigned long keyboardY;
   129   readonly attribute unsigned long keyboardWidth;
   130   readonly attribute unsigned long keyboardHeight;
   132   /**
   133    * Settings panel links. addSettingsPanelEntry adds an entry to
   134    * the settings flyout panel that the user can invoke.
   135    *
   136    * @param aChromePanelId panel id invoked via nsIBrowserDOMWindow's
   137    * ShowPanel api. Example: 'prefs-container'
   138    * @return a unique identifier that will be passed as "data" in the
   139    * "metro-settings-entry-selected" notification when the entry is clicked
   140    */
   141   unsigned long addSettingsPanelEntry(in AString aLabel);
   143   /**
   144    * Change the value of the "switch primary and secondary buttons" preference.
   145    * See the Windows SwapMouseButton API docs for details.
   146    * Included here for use in automated tests (see bug 839460).
   147    *
   148    * @param aSwap true to enable the preference, false to disable it.
   149    * @return original value of the preference.
   150    */
   151   bool swapMouseButton(in bool aSwap);
   152 };

mercurial