author Mike Hommey <mh+mozilla@glandium.org>
Tue, 04 Nov 2014 13:50:18 +0900
changeset 240257 6cd60e5f3d5272fc6c01a0c7b9388ae4f107a517
parent 188007 59a30471542b3ab88418b487972d78f093d34565
child 241781 dcc233b91a99e7d8cfaa39b508d2eb2c2496fab6
permissions -rw-r--r--
Bug 1091505 - Run subconfigures in parallel. r=gps On automation, this brings Windows configure time on a clobber from 5:30 to 3:10. Sadly, because make needs to run under intl/icu/host before configuring intl/icu/target, intl/icu/host needs to be configured independently. Fortunately, that's not configured for normal windows builds anyways. Also, having multiple subconfigures sharing the same cache file is dangerously racy. Fortunately, not a lot do. In fact, only js/src and $_subconfigure_subdir do, so force the latter (only used for ldap sdk on comm-central) not to configure in parallel.

/* -*- Mode: C++; tab-width: 40; 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/. */

#ifndef nsWidgetInitData_h__
#define nsWidgetInitData_h__

 * Window types
 * Don't alter previously encoded enum values - 3rd party apps may look at
 * these.
enum nsWindowType {
  eWindowType_toplevel,  // default top level window
  eWindowType_dialog,    // top level window but usually handled differently
                         // by the OS
  eWindowType_popup,     // used for combo boxes, etc
  eWindowType_child,     // child windows (contained inside a window on the
                         // desktop (has no border))
  eWindowType_invisible, // windows that are invisible or offscreen
  eWindowType_plugin,    // plugin window
  eWindowType_sheet      // MacOSX sheet (special dialog class)

 * Popup types
 * For eWindowType_popup
enum nsPopupType {
  ePopupTypeAny      = 0xF000 // used only to pass to
                              // nsXULPopupManager::GetTopPopup

 * Popup levels specify the window ordering behaviour.
enum nsPopupLevel {
  // the popup appears just above its parent and maintains its position
  // relative to the parent
  // the popup is a floating popup used for tool palettes. A parent window
  // must be specified, but a platform implementation need not use this.
  // On Windows, floating is generally equivalent to parent. On Mac, floating
  // puts the popup at toplevel, but it will hide when the application is deactivated
  // the popup appears on top of other windows, including those of other applications

 * Border styles
enum nsBorderStyle {
  eBorderStyle_none     = 0,      // no border, titlebar, etc.. opposite of
                                  // all
  eBorderStyle_all      = 1 << 0, // all window decorations
  eBorderStyle_border   = 1 << 1, // enables the border on the window. these
                                  // are only for decoration and are not
                                  // resize handles
  eBorderStyle_resizeh  = 1 << 2, // enables the resize handles for the
                                  // window. if this is set, border is
                                  // implied to also be set
  eBorderStyle_title    = 1 << 3, // enables the titlebar for the window
  eBorderStyle_menu     = 1 << 4, // enables the window menu button on the
                                  // title bar. this being on should force
                                  // the title bar to display
  eBorderStyle_minimize = 1 << 5, // enables the minimize button so the user
                                  // can minimize the window. turned off for
                                  // tranient windows since they can not be
                                  // minimized separate from their parent
  eBorderStyle_maximize = 1 << 6, // enables the maxmize button so the user
                                  // can maximize the window
  eBorderStyle_close    = 1 << 7, // show the close button
  eBorderStyle_default  = -1      // whatever the OS wants... i.e. don't do
                                  // anything

 * Basic struct for widget initialization data.
 * @see Create member function of nsIWidget

struct nsWidgetInitData {
  nsWidgetInitData() :

  nsWindowType  mWindowType;
  nsBorderStyle mBorderStyle;
  nsPopupType   mPopupHint;
  nsPopupLevel  mPopupLevel;
  // when painting exclude area occupied by child windows and sibling windows
  bool          clipChildren, clipSiblings, mDropShadow;
  bool          mListenForResizes;
  bool          mUnicode;
  bool          mRTL;
  bool          mNoAutoHide; // true for noautohide panels
  bool          mIsDragPopup;  // true for drag feedback panels
  // true if window creation animation is suppressed, e.g. for session restore
  bool          mIsAnimationSuppressed;
  // true if the window should support an alpha channel, if available.
  bool          mSupportTranslucency;
  // true if the window should be transparent to mouse events. Currently this is
  // only valid for eWindowType_popup widgets
  bool          mMouseTransparent;
  // Windows with out-of-process tabs always require OMTC. This flag designates
  // such windows.
  bool          mRequireOffMainThreadCompositing;

#endif // nsWidgetInitData_h__