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

interface mozIDOMWindowProxy;
interface imgIContainer;

[scriptable, builtinclass, uuid(aa8a0ecf-96a1-418c-b80e-f24ae18bbedc)]
interface nsIWindowsUIUtils : nsISupports
{
  readonly attribute long systemSmallIconSize;
  readonly attribute long systemLargeIconSize;

  void setWindowIcon(in mozIDOMWindowProxy aWindow, in imgIContainer aSmallIcon, in imgIContainer aLargeIcon);

  void setWindowIconFromExe(in mozIDOMWindowProxy aWindow, in AString aExe, in unsigned short aIndex);

  void setWindowIconNoData(in mozIDOMWindowProxy aWindow);

  /**
   * Whether the OS is currently in tablet mode. Always false on
   * non-Windows and on versions of Windows before win10
   */
  readonly attribute boolean inTabletMode;

  /**
   * Share URL
   */
  void shareUrl(in AString shareTitle, in AString urlToShare);
};
