bug 818009 - canActivate: only click-to-play-type plugins are valid r=jaws
[gecko.git] / widget / nsWidgetInitData.h
blob5edc3d86efd66f479ce5eda160b09d5f0829f807
1 /* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef nsWidgetInitData_h__
7 #define nsWidgetInitData_h__
9 #include "prtypes.h"
11 /**
12 * Window types
14 * Don't alter previously encoded enum values - 3rd party apps may look at
15 * these.
17 enum nsWindowType {
18 eWindowType_toplevel, // default top level window
19 eWindowType_dialog, // top level window but usually handled differently
20 // by the OS
21 eWindowType_popup, // used for combo boxes, etc
22 eWindowType_child, // child windows (contained inside a window on the
23 // desktop (has no border))
24 eWindowType_invisible, // windows that are invisible or offscreen
25 eWindowType_plugin, // plugin window
26 eWindowType_sheet // MacOSX sheet (special dialog class)
29 /**
30 * Popup types
32 * For eWindowType_popup
34 enum nsPopupType {
35 ePopupTypePanel,
36 ePopupTypeMenu,
37 ePopupTypeTooltip,
38 ePopupTypeAny = 0xF000 // used only to pass to
39 // nsXULPopupManager::GetTopPopup
42 /**
43 * Popup levels specify the window ordering behaviour.
45 enum nsPopupLevel {
46 // the popup appears just above its parent and maintains its position
47 // relative to the parent
48 ePopupLevelParent,
49 // the popup is a floating popup used for tool palettes. A parent window
50 // must be specified, but a platform implementation need not use this.
51 // On Windows, floating is generally equivalent to parent. On Mac, floating
52 // puts the popup at toplevel, but it will hide when the application is deactivated
53 ePopupLevelFloating,
54 // the popup appears on top of other windows, including those of other applications
55 ePopupLevelTop
58 /**
59 * Border styles
61 enum nsBorderStyle {
62 eBorderStyle_none = 0, // no border, titlebar, etc.. opposite of
63 // all
64 eBorderStyle_all = 1 << 0, // all window decorations
65 eBorderStyle_border = 1 << 1, // enables the border on the window. these
66 // are only for decoration and are not
67 // resize handles
68 eBorderStyle_resizeh = 1 << 2, // enables the resize handles for the
69 // window. if this is set, border is
70 // implied to also be set
71 eBorderStyle_title = 1 << 3, // enables the titlebar for the window
72 eBorderStyle_menu = 1 << 4, // enables the window menu button on the
73 // title bar. this being on should force
74 // the title bar to display
75 eBorderStyle_minimize = 1 << 5, // enables the minimize button so the user
76 // can minimize the window. turned off for
77 // tranient windows since they can not be
78 // minimized separate from their parent
79 eBorderStyle_maximize = 1 << 6, // enables the maxmize button so the user
80 // can maximize the window
81 eBorderStyle_close = 1 << 7, // show the close button
82 eBorderStyle_default = -1 // whatever the OS wants... i.e. don't do
83 // anything
86 /**
87 * Basic struct for widget initialization data.
88 * @see Create member function of nsIWidget
91 struct nsWidgetInitData {
92 nsWidgetInitData() :
93 mWindowType(eWindowType_child),
94 mBorderStyle(eBorderStyle_default),
95 mPopupHint(ePopupTypePanel),
96 mPopupLevel(ePopupLevelTop),
97 clipChildren(false),
98 clipSiblings(false),
99 mDropShadow(false),
100 mListenForResizes(false),
101 mUnicode(true),
102 mRTL(false),
103 mNoAutoHide(false),
104 mIsDragPopup(false),
105 mIsAnimationSuppressed(false),
106 mSupportTranslucency(false)
110 nsWindowType mWindowType;
111 nsBorderStyle mBorderStyle;
112 nsPopupType mPopupHint;
113 nsPopupLevel mPopupLevel;
114 // when painting exclude area occupied by child windows and sibling windows
115 bool clipChildren, clipSiblings, mDropShadow;
116 bool mListenForResizes;
117 bool mUnicode;
118 bool mRTL;
119 bool mNoAutoHide; // true for noautohide panels
120 bool mIsDragPopup; // true for drag feedback panels
121 // true if window creation animation is suppressed, e.g. for session restore
122 bool mIsAnimationSuppressed;
123 // true if the window should support an alpha channel, if available.
124 bool mSupportTranslucency;
127 #endif // nsWidgetInitData_h__