widget/nsITaskbarWindowPreview.idl
author Dorel Luca <dluca@mozilla.com>
Mon, 04 Dec 2017 18:01:09 +0200
changeset 394844 58fec9a96e269a57cc6f84bfe3a6dc6800acd955
parent 373253 87b6163f38794046591bb5265f8f31cefbef7d3d
child 475212 020c8c871c0d3b3920fe95935cfef06501976c0f
permissions -rw-r--r--
Backed out 7 changesets (bug 1377007) for failing build bustage on Linux pgo and faling Cpp's jsapi-tests r=backout on a CLOSED TREE Backed out changeset 9428a4ed7dec (bug 1377007) Backed out changeset 4407b43a8aff (bug 1377007) Backed out changeset 65a37a7f78a5 (bug 1377007) Backed out changeset 276fe6d9b716 (bug 1377007) Backed out changeset 1de46e60ffba (bug 1377007) Backed out changeset 893e303e17ec (bug 1377007) Backed out changeset 081a241e25d4 (bug 1377007)

/* vim: se cin sw=2 ts=2 et : */
/* -*- 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 "nsITaskbarPreview.idl"
interface nsITaskbarPreviewButton;

/*
 * nsITaskbarWindowPreview
 *
 * This interface represents the preview for a window in the taskbar. By
 * default, Windows implements much of the behavior for applications by
 * default. The primary purpose of this interface is to allow Gecko
 * applications to take control over parts of the preview. Some parts are not
 * controlled through this interface: the title and icon of the preview match
 * the title and icon of the window always.
 *
 * By default, Windows takes care of drawing the thumbnail and preview for the
 * application however if enableCustomDrawing is set to true, then the
 * controller will start to receive requestPreview and requestThumbnail calls
 * as well as reads on the thumbnailAspectRatio, width and height properties.
 *
 * By default, nsITaskbarWindowPreviews are visible. When made invisible, the
 * window disappears from the list of windows in the taskbar for the
 * application.
 *
 * If the window has any visible nsITaskbarTabPreviews, then the
 * nsITaskbarWindowPreview for the corresponding window is automatically
 * hidden. This is not reflected in the visible property. Note that other parts
 * of the system (such as alt-tab) may still request thumbnails and/or previews
 * through the nsITaskbarWindowPreview's controller.
 *
 * nsITaskbarWindowPreview will never invoke the controller's onClose or
 * onActivate methods since handling them may conflict with other internal
 * Gecko state and there is existing infrastructure in place to allow clients
 * to handle those events 
 *
 * Window previews may have a toolbar with up to 7 buttons. See
 * nsITaskbarPreviewButton for more information about button properties.
 */
[scriptable, uuid(EC67CC57-342D-4064-B4C6-74A375E07B10)]
interface nsITaskbarWindowPreview : nsITaskbarPreview
{
  /**
   * Max 7 buttons per preview per the Windows Taskbar API
   */
  const long NUM_TOOLBAR_BUTTONS = 7;

  /**
   * Gets the nth button for the preview image. By default, all of the buttons
   * are invisible.
   *
   * @see nsITaskbarPreviewButton
   *
   * @param index The index into the button array. Must be >= 0 and <
   *              MAX_TOOLBAR_BUTTONS.
   */
  nsITaskbarPreviewButton getButton(in unsigned long index);

  /**
   * Enables/disables custom drawing of thumbnails and previews
   *
   * Default value: false
   */
  attribute boolean enableCustomDrawing;
};