27 #include "IPMUnknown.h" 28 #include "ShuksanID.h" 32 #include "WindowVisibleState.h" 41 const uint32 kIWindowPtrProp =
'IWin';
48 enum { kDefaultIID = IID_IWINDOW };
51 enum VisibleState { kHide = SW_HIDE, kMaximize = SW_MAXIMIZE, kMinimize = SW_MINIMIZE,
52 kRestore = SW_RESTORE, kShow = SW_SHOW, kShowNormal = SW_SHOWNORMAL,
53 kShowNoActivate = SW_SHOWNA };
68 kWindowLayerMask = (0x0000000FUL),
71 kAppRootWindowLayer = 1,
73 kDocumentWindowLayer = 2,
75 kToolbarWindowLayer = 4,
77 kPaletteWindowLayer = 5,
79 kAppModalWindowLayer = 7,
82 kUtilityWindowLayer = 11,
84 kMenuWindowLayer = 13,
86 kHelpWindowLayer = 14,
91 kWindowFrameMask = (0x000000F0UL),
93 kStandardWindowFrame = 0,
95 kDocWindowFrame = (1UL << 4),
97 kPaletteWindowFrame = (2UL << 4),
99 kModelessDialogWindowFrame = (3UL << 4),
101 kMovableModalDialogWindowFrame = (4UL << 4),
103 kModalDialogWindowFrame = (5UL << 4),
105 kMovableAlertWindowFrame = (6UL << 4),
107 kAlertWindowFrame = (7UL << 4),
109 kAppRootWindowFrame = (8UL << 4),
111 kBorderOnlyWindowFrame = (9UL << 4),
113 kCustomWindowFrame = (14UL << 4),
115 kNoWindowFrame = (15UL << 4),
119 kWindowControlsMask = (0x0000FF00),
127 kStandardWindowControls = 0,
129 kCloseWindowControl = (1UL << 8),
131 kZoomWindowControl = (1UL << 9),
133 kCollapseWindowControl = (1UL << 10),
135 kResizeWindowControl = (1UL << 11),
137 kToolbarWindowControl = (1UL << 12),
139 kSideTitlebarControl = (1UL << 13),
141 kRemoveTitlebarControl = (1UL << 14),
143 kListAbsentWindowControls = (1UL << 15),
145 kNoWindowControls = kWindowControlsMask,
147 kAllWindowControls = kListAbsentWindowControls,
149 kStandardDocWindowControls = (kCloseWindowControl | kZoomWindowControl | kCollapseWindowControl | kResizeWindowControl),
151 kStandardPaletteWindowControls = (kCloseWindowControl | kZoomWindowControl),
156 kWindowPolicyMask = (0xFFFF0000UL),
158 kStandardWindowPolicy = 0,
161 kHideInBackgroundWindowPolicy = (1UL << 16),
163 kDontHideInBackgroundWindowPolicy = (1UL << 17),
166 kTabCyclesKeyFocusWindowPolicy = (1UL << 18),
168 kTabDoesntCycleKeyFocusWindowPolicy = (1UL << 19),
171 kRememberLastEditboxKeyFocusWindowPolicy = (1UL << 20),
173 kDontRememberLastEditboxKeyFocusWindowPolicy = (1UL << 21),
176 kHasDefaultButtonWindowPolicy = (1UL << 22),
178 kDoesntHaveDefaultButtonWindowPolicy = (1UL << 23),
181 kMovableWindowPolicy = (1UL << 24),
183 kNonMovableWindowPolicy = (1UL << 25),
186 kListBoxGrabsKeyFocusWindowPolicy = (1UL << 26),
188 kListBoxDoesntGrabsKeyFocusWindowPolicy = (1UL << 27),
191 kDoUnused1WindowPolicy = (1UL << 28),
193 kDontUnused1WindowPolicy = (1UL << 29),
196 kDoUnused2WindowPolicy = (1UL << 30),
198 kDontUnused2WindowPolicy = (1UL << 31)
206 virtual void InitWindow( uint32 policyBits) = 0;
210 virtual void OpenWindow() = 0;
214 virtual void CloseWindow() = 0;
218 virtual void PlatformWindowClosed() = 0;
223 virtual void SetTitle(
const PMString& newtitle) = 0;
228 virtual const PMString& GetTitle()
const = 0;
243 virtual void SetFrameBBox(
const GSysRect& rt) = 0;
248 virtual GSysRect GetFrameBBox()
const = 0;
253 virtual GSysRect GetContentBBox()
const = 0;
258 virtual void SetContentBBox(
const GSysRect& bbox) = 0;
262 virtual int32 GetTitlebarHeight()
const = 0;
266 virtual int32 GetBorderWidth()
const = 0;
271 virtual SysRect GetVisRgnBBox()
const = 0;
277 virtual void Resize(SysCoord newWidth, SysCoord newHeight) = 0;
285 virtual void SetPosition(GSysCoord xPos, GSysCoord yPos, bool16 inFront) = 0;
289 virtual void CenterOnScreen() = 0;
294 virtual SysWindow GetSysWindow()
const = 0;
297 virtual void SetSysWindow(
const SysWindow sysWindow) = 0;
300 typedef enum { kZoomedOut, kZoomedIn, kResetZoomedOut} ZoomState;
305 virtual void Zoom(ZoomState zoomState,
GSysRect *zoomRect) = 0;
309 virtual ZoomState GetZoomState()
const = 0;
312 virtual void SetZoomState(ZoomState zoomState) = 0;
316 virtual void SetVisible(VisibleState state, bool16 apply = kTrue) = 0;
320 virtual VisibleState GetVisible()
const = 0;
324 virtual bool16 IsVisible()
const = 0;
328 virtual void VisibleStateChanged(VisibleState state) = 0;
332 virtual void BringToFront() = 0;
336 virtual void Activate() = 0;
340 virtual void Deactivate() = 0;
344 virtual bool16 IsActive()
const = 0;
346 typedef enum{ kLimitMinimumWidth, kLimitMaximumWidth, kLimitMinimumHeight, kLimitMaximumHeight } LimitType;
350 virtual SysCoord GetLimits(
const LimitType type )
const = 0;
354 virtual void SetLimits(
const LimitType type,
const SysCoord newLimit) = 0;
358 virtual void Paint(
IViewPort* viewPort, SysRgn updateRgn) = 0;
362 virtual void SystemPaint() = 0;
366 virtual bool16 IsRolledUp(bool16& changed)
const = 0;
370 virtual bool16 DoesFloat()
const = 0;
383 virtual SysRgn SystemScroll(
const SysPoint& delta, bool16 bDoInval = kTrue,
SysRect *bbox = nil) = 0;
389 virtual void ForceRedraw(SysRgn invalidRgnToAdopt, bool16 forceRedraw) = 0;
393 virtual bool16 IsOnScreen()
const = 0;
397 virtual void EnsureOnScreen() = 0;
402 virtual uint32 GetWindowPolicy()
const = 0;
407 virtual void SetWindowPolicy(uint32 policy) = 0;
412 virtual void InitThemeForWindow() = 0;