DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (c073e3faa76e)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
/* -*- 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_plugin_ipc_chrome,   // chrome side native widget for plugins
                                   // (e10s)
  eWindowType_plugin_ipc_content,  // content side puppet widget for plugins
                                   // (e10s)
  eWindowType_sheet,               // MacOSX sheet (special dialog class)
};

/**
 * Popup types
 *
 * For eWindowType_popup
 */
enum nsPopupType {
  ePopupTypePanel,
  ePopupTypeMenu,
  ePopupTypeTooltip,
  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
  ePopupLevelParent,
  // 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
  ePopupLevelFloating,
  // the popup appears on top of other windows, including those of other
  // applications
  ePopupLevelTop
};

/**
 * 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()
      : mWindowType(eWindowType_child),
        mBorderStyle(eBorderStyle_default),
        mPopupHint(ePopupTypePanel),
        mPopupLevel(ePopupLevelTop),
        mScreenId(0),
        clipChildren(false),
        clipSiblings(false),
        mDropShadow(false),
        mListenForResizes(false),
        mUnicode(true),
        mRTL(false),
        mNoAutoHide(false),
        mIsDragPopup(false),
        mIsAnimationSuppressed(false),
        mSupportTranslucency(false),
        mMouseTransparent(false),
        mHasRemoteContent(false) {}

  nsWindowType mWindowType;
  nsBorderStyle mBorderStyle;
  nsPopupType mPopupHint;
  nsPopupLevel mPopupLevel;
  // B2G multi-screen support. Screen ID is for differentiating screens of
  // windows, and due to the hardware limitation, it is platform-specific for
  // now, which align with the value of display type defined in HWC.
  uint32_t mScreenId;
  // 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;
  bool mHasRemoteContent;
};

#endif  // nsWidgetInitData_h__