mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-05 08:35:26 +00:00
137 lines
4.7 KiB
Plaintext
137 lines
4.7 KiB
Plaintext
/* -*- Mode: C++; tab-width: 4; 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"
|
|
|
|
/**
|
|
* Integration with the "Metro"/"Modern" UI environment in Windows 8.
|
|
*
|
|
* Note: browser/metro/base/content/browser-scripts.js contains a stub
|
|
* implementation of this interface for non-Windows systems, for testing and
|
|
* development purposes only.
|
|
*/
|
|
[scriptable, uuid(b6cbef4a-eec1-470b-8e74-9f4120f678c6)]
|
|
interface nsIWinMetroUtils : nsISupports
|
|
{
|
|
/**
|
|
* Determine if the current browser is running in the metro immersive
|
|
* environment.
|
|
*/
|
|
readonly attribute boolean immersive;
|
|
|
|
/**
|
|
* Determine the activation URI
|
|
*/
|
|
readonly attribute AString activationURI;
|
|
|
|
/**
|
|
* Determine the previous execution state. The possible values of this
|
|
* attribute are exactly those values in the
|
|
* Windows::ApplicationModel::Activation enumeration.
|
|
*/
|
|
readonly attribute long previousExecutionState;
|
|
|
|
/**
|
|
* Helper for our restart logic up in the about flyout. We set this
|
|
* right before we restart for an update so that MetroAppShell can
|
|
* communicate this to the ceh.
|
|
*/
|
|
attribute boolean updatePending;
|
|
|
|
/**
|
|
* Show the settings flyout
|
|
*/
|
|
void showSettingsFlyout();
|
|
|
|
/**
|
|
* Launches the specified application with the specified arguments and
|
|
* switches to Desktop mode if in metro mode.
|
|
*/
|
|
void launchInDesktop(in AString aPath, in AString aArguments);
|
|
|
|
/**
|
|
* Displays a native Windows 8 toast.
|
|
*/
|
|
void showNativeToast(in AString aTitle, in AString aMessage, in AString anImage, in AString aCookie);
|
|
|
|
/**
|
|
* Secondary tiles are a Windows 8 specific feature for pinning new tiles
|
|
* to the start screen. Tiles can later be activated whether the browser is
|
|
* already opened or not.
|
|
*/
|
|
|
|
/**
|
|
* Pins a new tile to the Windows 8 start screen.
|
|
*
|
|
* @param aTileID An ID which can later be used to remove the tile
|
|
* ID must only contain valid filesystem characters
|
|
* @param aShortName A short name for the tile
|
|
* @param aDiplayName The name that will be displayed on the tile
|
|
* @param aActivationArgs The arguments to pass to the browser upon
|
|
* activation of the tile
|
|
* @param aTileImage An image for the normal tile view
|
|
* @param aSmallTileImage An image for the small tile view
|
|
*/
|
|
void pinTileAsync(in AString aTileID,
|
|
in AString aShortName,
|
|
in AString aDisplayName,
|
|
in AString aActivationArgs,
|
|
in AString aTileImage,
|
|
in AString aSmallTileImage);
|
|
|
|
/**
|
|
* Unpins a tile from the Windows 8 start screen.
|
|
*
|
|
* @param aTileID An existing ID which was previously pinned
|
|
* ID must only contain valid filesystem characters
|
|
*/
|
|
void unpinTileAsync(in AString aTileID);
|
|
|
|
/**
|
|
* Determines if a tile is pinned to the Windows 8 start screen.
|
|
*
|
|
* @param aTileID An ID which may have been pinned with pinTileAsync
|
|
* ID must only contain valid filesystem characters
|
|
* @return true if the tile is pinned
|
|
*/
|
|
bool isTilePinned(in AString aTileID);
|
|
|
|
/**
|
|
* Soft keyboard attributes. Used in unison with shown/hidden observer
|
|
* events sent via FrameworkView.
|
|
*
|
|
* keyboardVisible - returns true if the soft keyboard is currently
|
|
* displayed, false otherwise.
|
|
* keyboardX, keyboardY, keyboardWidth, keyboardHeight - occlude rect
|
|
* of the keyboard when displayed in device independent pixels.
|
|
*/
|
|
readonly attribute boolean keyboardVisible;
|
|
readonly attribute unsigned long keyboardX;
|
|
readonly attribute unsigned long keyboardY;
|
|
readonly attribute unsigned long keyboardWidth;
|
|
readonly attribute unsigned long keyboardHeight;
|
|
|
|
/**
|
|
* Settings panel links. addSettingsPanelEntry adds an entry to
|
|
* the settings flyout panel that the user can invoke.
|
|
*
|
|
* @param aChromePanelId panel id invoked via nsIBrowserDOMWindow's
|
|
* ShowPanel api. Example: 'prefs-container'
|
|
* @return a unique identifier that will be passed as "data" in the
|
|
* "metro-settings-entry-selected" notification when the entry is clicked
|
|
*/
|
|
unsigned long addSettingsPanelEntry(in AString aLabel);
|
|
|
|
/**
|
|
* Change the value of the "switch primary and secondary buttons" preference.
|
|
* See the Windows SwapMouseButton API docs for details.
|
|
* Included here for use in automated tests (see bug 839460).
|
|
*
|
|
* @param aSwap true to enable the preference, false to disable it.
|
|
* @return original value of the preference.
|
|
*/
|
|
bool swapMouseButton(in bool aSwap);
|
|
};
|