mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:30:27 +00:00
fce4bb7387
- Bug 1080319 - Remove the -remote option. r=bsmedberg (d83d3ffcc) - bug 1171580 - Don't create a hidden window on iOS. r=froydnj (c3c4be38c) - Bug 1138290 - New option in WindowWatcher.openWindow to open another toplevel window on b2g. r=roc (1d8ea9754) - Bug 1067325 - Context menu actions for view source tabs. r=mconley (68494022e) - Bug 1201533 - Remove the GetEastAsianWidth API and its supporting character-property data. r=smontagu (667a1e932) - Bug 1201518 - Remove the (unused) HBGetEastAsianWidth callback from gfxHarfBuzzShaper. r=jdaggett (49dcca793) - Bug 1170072 - Part 2. Use ICU instead of GetCharProps1 and its supporting data if ICU is turned on. r=jfkthame (af13908f3) - Bug 1203412 - Fix a warning in intl/unicharutil/. r=emk. This change is for the following warning-as-error that shows up on "B2G L Emulator" builds: "error: call to 'sprintf' declared with attribute warning: sprintf is often misused; please use snprintf". (088d6d66d)
137 lines
5.3 KiB
C
137 lines
5.3 KiB
C
/* -*- 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)
|
|
{
|
|
}
|
|
|
|
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;
|
|
};
|
|
|
|
#endif // nsWidgetInitData_h__
|