/******************************************** * * Window Manager * * Copyright Apple Computer, Inc. 1986-92 * All Rights Reserved * * Copyright 1992, 1993, Byte Works, Inc. * ********************************************/ #ifndef __TYPES__ #include #endif #ifndef __WINDOW__ #define __WINDOW__ /* Error Codes */ #define paramLenErr 0x0E01 /* first word of parameter list is the wrong size */ #define allocateErr 0x0E02 /* unable to allocate window record */ #define taskMaskErr 0x0E03 /* reserved bits are not clear in wmTaskMask */ #define compileTooLarge 0x0E04 /* Compiled text is larger than 64 KB */ #define cantUpdateErr 0x0E05 /* window couldn't be updated */ /* Axis Parameters */ #define wNoConstraint 0x0000 /* No constraint on movement */ #define wHAxisOnly 0x0001 /* Horizontal axis only */ #define wVAxisOnly 0x0002 /* Vertical axis only */ /* Desktop Command Codes */ #define FromDesk 0x00 /* Subtract region from desktop */ #define ToDesk 0x1 /* Add region to desktop */ #define GetDesktop 0x2 /* Get Handle of Desktop region */ #define SetDesktop 0x3 /* Set Handle of Desktop region */ #define GetDeskPat 0x4 /* Address of pattern or drawing routine */ #define SetDeskPat 0x5 /* Change Address of pattern or drawing routine */ #define GetVisDesktop 0x6 /* Get destop region less visible windows */ #define BackGroundRgn 0x7 /* For drawing directly on desktop */ #define CheckForNewDeskMsg 0x8 /* Force rechecking message #2 */ /* SendBehind Values */ #define toBottom 0xFFFFFFFEL /* To send window to bottom */ #define topMost 0xFFFFFFFFL /* To make window top */ #define bottomMost 0x0000L /* To make window bottom */ /* Task Masks */ #define tmMenuKey 0x00000001L #define tmUpdate 0x00000002L #define tmFindW 0x00000004L #define tmMenuSel 0x0008L #define tmOpenNDA 0x0010L #define tmSysClick 0x0020L #define tmDragW 0x0040L #define tmContent 0x0080L #define tmClose 0x0100L #define tmZoom 0x0200L #define tmGrow 0x0400L #define tmScroll 0x0800L #define tmSpecial 0x1000L #define tmCRedraw 0x2000L #define tmInactive 0x4000L #define tmInfo 0x8000L #define tmContentControls 0x00010000L #define tmControlKey 0x00020000L #define tmControlMenu 0x00040000L #define tmMultiClick 0x00080000L #define tmIdleEvents 0x00100000L #define tmNoGetNextEvent 0x00200000L /* TaskMaster Codes */ #define wNoHit 0x0000 /* retained for back compatibility */ #define inNull 0x0000 /* retained for back compatibility */ #define inKey 0x0003 /* retained for back compatibility */ #define inButtDwn 0x0001 /* retained for back compatibility */ #define inUpdate 0x0006 /* retained for back compatibility */ #define wInDesk 0x0010 /* On Desktop */ #define wInMenuBar 0x0011 /* On system menu bar */ #define wClickCalled 0x0012 /* system click called */ #define wInContent 0x0013 /* In content region */ #define wInDrag 0x0014 /* In drag region */ #define wInGrow 0x0015 /* In grow region, active window only */ #define wInGoAway 0x0016 /* In go-away region, active window only */ #define wInZoom 0x0017 /* In zoom region, active window only */ #define wInInfo 0x0018 /* In information bar */ #define wInSpecial 0x0019 /* Item ID selected was 250 - 255 */ #define wInDeskItem 0x001A /* Item ID selected was 1 - 249 */ #define wInFrame 0x1B /* in Frame, but not on anything else */ #define wInactMenu 0x1C /* 'selection' of inactive menu item */ #define wClosedNDA 0x001D /* desk accessory closed */ #define wCalledSysEdit 0x001E /* inactive menu item selected */ #define wInSysWindow 0x8000 /* hi bit set for system windows */ /* VarCode */ #define wDraw 0x00 /* Draw window frame command */ #define wHit 0x01 /* Hit test command */ #define wCalcRgns 0x02 /* Compute regions command */ #define wNew 0x03 /* Initialization command */ #define wDispose 0x04 /* Dispose command */ #define wGetDrag 5 /* Return address of outline drawing handler */ #define wGrowFrame 6 /* Draw outline of window being resized */ #define wRecSize 7 /* Return size of additional space neeed in the windrec */ #define wPos 8 /* Return RECT that is the window's portRect */ #define wBehind 9 /* Return where the window should be placed in the list */ #define wCallDefProc 10 /* Generic call to the defproc */ /* WFrame */ #define fHilited 0x0001 /* Window is highlighted */ #define fZoomed 0x0002 /* Window is zoomed */ #define fAllocated 0x0004 /* Window record was allocated */ #define fCtlTie 0x0008 /* Window state tied to controls */ #define fInfo 0x0010 /* Window has an information bar */ #define fVis 0x0020 /* Window is visible */ #define fQContent 0x0040 #define fMove 0x0080 /* Window is movable */ #define fZoom 0x0100 /* Window is zoomable */ #define fFlex 0x0200 #define fGrow 0x0400 /* Window has grow box */ #define fBScroll 0x0800 /* Window has horizontal scroll bar */ #define fRScroll 0x1000 /* Window has vertical scroll bar */ #define fAlert 0x2000 #define fClose 0x4000 /* Window has a close box */ #define fTitle 0x8000 /* Window has a title bar */ /* DoModalWindow flag values */ #define mwMovable 0x8000 #define mwUpdateAll 0x4000 #define mwDeskAcc 0x0010 #define mwIBeam 0x0008 #define mwMenuKey 0x0004 #define mwMenuSelect 0x0002 #define mwNoScrapForLE 0x0001 /* HandleDiskInsert flag values (bit flags) */ #define hdiScan 0x8000 #define hdiHandle 0x4000 #define hdiUpdate 0x2000 #define hdiReportEjects 0x1000 #define hdiNoDelay 0x0800 #define hdiDupDisk 0x0400 #define hdiCheckTapeDrives 0x0200 #define hdiUnreadable 0x0100 #define hdiMarkOffline 0x0001 /* HandleDiskInsert result flag values (bit flags) */ #define hdiFormatted 0x0002 #define hdiEjection 0x0001 /* constants for AlertWindow alertFlags */ #define awCString 0x0000 #define awPString 0x0001 #define awPointer 0x0000 #define awHandle 0x0002 #define awResource 0x0004 #define awTextFullWidth 0x0008 #define awForceBeep 0x0010 #define awButtonLayout 0x0020 #define awNoDevScan 0x0040 #define awNoDisposeRes 0x0080 #define awWatchForDisk 0x0100 #define awIconIsResource 0x0200 #define awFullColor 0x0400 /* UpdateWindow flag values */ #define uwBackground 0x8000 #define uwGSOSnotAvail 0x4000 /* Other Constants */ #define windSize 0x00D4 /* Size of WindRec */ #define wmTaskRecSize 0x002E /* Size of WmTaskRec */ #define wTrackZoom 0x001F #define wHitFrame 0x0020 #define wInControl 0x0021 #define wInControlMenu 0x0022 /* custom defproc dRequest codes (from TN #42) */ #define wSetOrgMask 0 #define wSetMaxGrow 1 #define wSetScroll 2 #define wSetPage 3 #define wSetInfoRefCon 4 #define wSetInfoDraw 5 #define wSetOrigin 6 #define wSetDataSize 7 #define wSetZoomRect 8 #define wSetTitle 9 #define wSetColorTable 10 #define wSetFrameFlag 11 #define wGetOrgMask 12 #define wGetMaxGrow 13 #define wGetScroll 14 #define wGetPage 15 #define wGetInfoRefCon 16 #define wGetInfoDraw 17 #define wGetOrigin 18 #define wGetDataSize 19 #define wGetZoomRect 20 #define wGetTitle 21 #define wGetColorTable 22 #define wGetFrameFlag 23 #define wGetInfoRect 24 #define wGetDrawInfo 25 #define wGetStartInfoDraw 26 #define wGetEndInfoDraw 27 #define wZoomWindow 28 #define wStartDrawing 29 #define wStartMove 30 #define wStartGrow 31 #define wNewSize 32 #define wTask 33 typedef struct WindColor { Word frameColor; /* Color of window frame */ Word titleColor; /* Color of title and bar */ Word tBarColor; /* Color/pattern of title bar */ Word growColor; /* Color of grow box */ Word infoColor; /* Color of information bar */ } WindColor, *WindColorPtr, **WindColorHndl; typedef struct WindRec { /* struct WindRec *wNext; not included in record returned by ToolBox calls */ GrafPort port; /* Window's port */ ProcPtr wDefProc; LongWord wRefCon; ProcPtr wContDraw; LongWord wReserved; /* Space for future expansion */ RegionHndl wStrucRgn; /* Region of frame plus content */ RegionHndl wContRgn; /* Content region */ RegionHndl wUpdateRgn; /* Update region */ CtlRecHndl wControls; /* Window's control list */ CtlRecHndl wFrameCtrls; /* Window frame's control list */ Word wFrame; } WindRec, *WindRecPtr; typedef struct ParamList { Word paramLength; Word wFrameBits; Pointer wTitle; LongWord wRefCon; Rect wZoom; WindColorPtr wColor; Word wYOrigin; Word wXOrigin; Word wDataH; Word wDataW; Word wMaxH; Word wMaxW; Word wScrollVer; Word wScrollHor; Word wPageVer; Word wPageHor; LongWord wInfoRefCon; Word wInfoHeight; /* height of information bar */ LongProcPtr wFrameDefProc; VoidProcPtr wInfoDefProc; VoidProcPtr wContDefProc; Rect wPosition; WindowPtr wPlane; WindRecPtr wStorage; } ParamList, *ParamListPtr, **ParamListHndl; typedef struct WindParam1 { Word p1Length; Word p1Frame; Pointer p1Title; LongWord p1RefCon; Rect p1ZoomRect; WindColorPtr p1ColorTable; Word p1YOrigin; Word p1XOrigin; Word p1DataHeight; Word p1DataWidth; Word p1MaxHeight; Word p1MaxWidth; Word p1VerScroll; Word p1HorScroll; Word p1VerPage; Word p1HorPage; LongWord p1InfoText; Word p1InfoHeight; LongProcPtr p1DefProc; VoidProcPtr p1InfoDraw; VoidProcPtr p1ContentDraw; Rect p1Position; WindowPtr p1Plane; Long p1ControlList; Word p1InDesc; } WindParam1, *WindParam1Ptr, **WindParam1Hndl; typedef struct DeskMessageRecord { LongWord reserved; Word messageType; Word drawType; } DeskMessageRecord, *DeskMessageRecordPtr; typedef struct AuxWindInfoRecord { Word recordSize; Word reservedForBank; Word reservedForDP; Word reservedForResApp; LongWord reservedForUpdateHandle; LongWord reservedForEndUpdatePort; LongWord reservedForWindoidLayer; Word sysWindMinHeight; Word sysWindMinWidth; Ptr NDASysWindPtr; } AuxWindInfoRecord, *AuxWindInfoPtr; typedef struct WindGlobalsRec { Word lineW; Word titleHeight; Word titleYPos; Word closeHeight; Word closeWidth; LongWord defWindClr; LongWord windIconFont; Word screenMode; Byte pattern[32]; Word callerDPage; Word callerDataB; } WindGlobalsRec, *WindGlobalsRecPtr, **WindGlobalsRecHndl; extern pascal void WindBootInit(void) inline(0x010E,dispatcher); extern pascal void WindStartUp(Word) inline(0x020E,dispatcher); extern pascal void WindShutDown(void) inline(0x030E,dispatcher); extern pascal Word WindVersion(void) inline(0x040E,dispatcher); extern pascal void WindReset(void) inline(0x050E,dispatcher); extern pascal Boolean WindStatus(void) inline(0x060E,dispatcher); extern pascal void BeginUpdate(GrafPortPtr) inline(0x1E0E,dispatcher); extern pascal void BringToFront(GrafPortPtr) inline(0x240E,dispatcher); extern pascal Boolean CheckUpdate(EventRecordPtr) inline(0x0A0E,dispatcher); extern pascal void CloseWindow(GrafPortPtr) inline(0x0B0E,dispatcher); extern pascal Pointer Desktop(Word, LongWord) inline(0x0C0E,dispatcher); extern pascal void DragWindow(Word, Integer, Integer, Word, Rect *, GrafPortPtr) inline(0x1A0E,dispatcher); extern pascal void EndInfoDrawing(void) inline(0x510E,dispatcher); extern pascal void EndUpdate(GrafPortPtr) inline(0x1F0E,dispatcher); extern pascal Word FindWindow(GrafPortPtr *, Integer, Integer) inline(0x170E,dispatcher); extern pascal WindowPtr FrontWindow(void) inline(0x150E,dispatcher); extern pascal VoidProcPtr GetContentDraw(GrafPortPtr) inline(0x480E,dispatcher); extern pascal Long GetContentOrigin (GrafPortPtr) inline(0x3E0E,dispatcher); extern pascal RegionHndl GetContentRgn(GrafPortPtr) inline(0x2F0E,dispatcher); extern pascal LongWord GetDataSize(GrafPortPtr) inline(0x400E,dispatcher); extern pascal LongProcPtr GetDefProc(GrafPortPtr) inline(0x310E,dispatcher); extern pascal WindowPtr GetFirstWindow(void) inline(0x520E,dispatcher); extern pascal void GetFrameColor(WindColorPtr, GrafPortPtr) inline(0x100E,dispatcher); extern pascal VoidProcPtr GetInfoDraw(GrafPortPtr) inline(0x4A0E,dispatcher); extern pascal LongWord GetInfoRefCon(GrafPortPtr) inline(0x350E,dispatcher); extern pascal LongWord GetMaxGrow(GrafPortPtr) inline(0x420E,dispatcher); extern pascal WindowPtr GetNextWindow(GrafPortPtr) inline(0x2A0E,dispatcher); extern pascal LongWord GetPage(GrafPortPtr) inline(0x460E,dispatcher); extern pascal void GetRectInfo(Rect *, GrafPortPtr) inline(0x4F0E,dispatcher); extern pascal LongWord GetScroll(GrafPortPtr) inline(0x440E,dispatcher); extern pascal RegionHndl GetStructRgn(GrafPortPtr) inline(0x2E0E,dispatcher); extern pascal Boolean GetSysWFlag(GrafPortPtr) inline(0x4C0E,dispatcher); extern pascal RegionHndl GetUpdateRgn(GrafPortPtr) inline(0x300E,dispatcher); extern pascal CtlRecHndl GetWControls(GrafPortPtr) inline(0x330E,dispatcher); extern pascal Word GetWFrame(GrafPortPtr) inline(0x2C0E,dispatcher); extern pascal Word GetWKind(GrafPortPtr) inline(0x2B0E,dispatcher); extern pascal WindowPtr GetWMgrPort(void) inline(0x200E,dispatcher); extern pascal LongWord GetWRefCon(GrafPortPtr) inline(0x290E,dispatcher); extern pascal Pointer GetWTitle(GrafPortPtr) inline(0x0E0E,dispatcher); extern pascal Rect *GetZoomRect(GrafPortPtr) inline(0x370E,dispatcher); extern pascal LongWord GrowWindow(Word, Word, Integer, Integer, GrafPortPtr) inline(0x1B0E,dispatcher); extern pascal void HideWindow(GrafPortPtr) inline(0x120E,dispatcher); extern pascal void HiliteWindow(Boolean, GrafPortPtr) inline(0x220E,dispatcher); extern pascal void InvalRect(Rect *) inline(0x3A0E,dispatcher); extern pascal void InvalRgn(Handle) inline(0x3B0E,dispatcher); extern pascal void MoveWindow(Integer, Integer, GrafPortPtr) inline(0x190E,dispatcher); extern pascal WindowPtr NewWindow(ParamListPtr) inline(0x090E,dispatcher); extern pascal Point PinRect(Integer, Integer, Rect *) inline(0x210E,dispatcher); extern pascal void RefreshDesktop(Rect *) inline(0x390E,dispatcher); extern pascal void SelectWindow(GrafPortPtr) inline(0x110E,dispatcher); extern pascal void SendBehind(GrafPortPtr, GrafPortPtr) inline(0x140E,dispatcher); extern pascal void SetContentDraw(VoidProcPtr, GrafPortPtr) inline(0x490E,dispatcher); extern pascal void SetContentOrigin(Word, Word, GrafPortPtr) inline(0x3F0E,dispatcher); extern pascal void SetContentOrigin2(Word, Word, Word, GrafPortPtr) inline(0x570E,dispatcher); extern pascal void SetDataSize(Word, Word, GrafPortPtr) inline(0x410E,dispatcher); extern pascal void SetDefProc(LongProcPtr, GrafPortPtr) inline(0x320E,dispatcher); extern pascal void SetFrameColor(WindColorPtr, GrafPortPtr) inline(0x0F0E,dispatcher); extern pascal void SetInfoDraw(VoidProcPtr, GrafPortPtr) inline(0x160E,dispatcher); extern pascal void SetInfoRefCon(LongWord, GrafPortPtr) inline(0x360E,dispatcher); extern pascal void SetMaxGrow(Word, Word, GrafPortPtr) inline(0x430E,dispatcher); extern pascal void SetOriginMask(Word, GrafPortPtr) inline(0x340E,dispatcher); extern pascal void SetPage(Word, Word, GrafPortPtr) inline(0x470E,dispatcher); extern pascal void SetScroll(Word, Word, GrafPortPtr) inline(0x450E,dispatcher); extern pascal void SetSysWindow(GrafPortPtr) inline(0x4B0E,dispatcher); extern pascal void SetWFrame(Word, GrafPortPtr) inline(0x2D0E,dispatcher); extern pascal FontHndl SetWindowIcons(FontHndl) inline(0x4E0E,dispatcher); extern pascal void SetWRefCon(Longint, GrafPortPtr) inline(0x280E,dispatcher); extern pascal void SetWTitle(Pointer, GrafPortPtr) inline(0x0D0E,dispatcher); extern pascal void SetZoomRect(Rect *, GrafPortPtr) inline(0x380E,dispatcher); extern pascal void ShowHide(Boolean, GrafPortPtr) inline(0x230E,dispatcher); extern pascal void ShowWindow(GrafPortPtr) inline(0x130E,dispatcher); extern pascal void SizeWindow(Word, Word, GrafPortPtr) inline(0x1C0E,dispatcher); extern pascal void StartDrawing(GrafPortPtr) inline(0x4D0E,dispatcher); extern pascal void StartInfoDrawing(Rect *, GrafPortPtr) inline(0x500E,dispatcher); extern pascal Word TaskMaster(Word, WmTaskRecPtr) inline(0x1D0E,dispatcher); extern pascal Boolean TrackGoAway(Integer, Integer, GrafPortPtr) inline(0x180E,dispatcher); extern pascal Boolean TrackZoom(Integer, Integer, GrafPortPtr) inline(0x260E,dispatcher); extern pascal void ValidRect(Rect *) inline(0x3C0E,dispatcher); extern pascal void ValidRgn(Handle) inline(0x3D0E,dispatcher); extern pascal LongWord WindDragRect(VoidProcPtr, Pattern, Integer, Integer, Rect *, Rect *, Rect *, Word) inline(0x530E,dispatcher); extern pascal void WindNewRes(void) inline(0x250E,dispatcher); extern pascal Word WindowGlobal(Word) inline(0x560E,dispatcher); extern pascal void ZoomWindow(GrafPortPtr) inline(0x270E,dispatcher); extern pascal Word AlertWindow(Word, Pointer, Ref) inline(0x590E,dispatcher); extern pascal Handle CompileText(Word, Pointer, Pointer, Word) inline(0x600E,dispatcher); extern pascal void DrawInfoBar(GrafPortPtr) inline(0x550E,dispatcher); extern pascal void EndFrameDrawing(void) inline(0x5B0E,dispatcher); extern pascal Word ErrorWindow(Word, Pointer, Word) inline(0x620E,dispatcher); extern pascal Ptr GetWindowMgrGlobals(void) inline(0x580E,dispatcher); extern pascal WindowPtr NewWindow2(Pointer, Long, VoidProcPtr, LongProcPtr, Word, Ref, Word) inline(0x610E,dispatcher); extern pascal void ResizeWindow(Boolean, Rect *, GrafPortPtr) inline(0x5C0E,dispatcher); extern pascal void StartFrameDrawing(GrafPortPtr) inline(0x5A0E,dispatcher); extern pascal Word TaskMasterDA(Word, WmTaskRecPtr) inline(0x5F0E,dispatcher); extern pascal LongWord DoModalWindow(EventRecordPtr, VoidProcPtr, VoidProcPtr, VoidProcPtr, Word) inline(0x640E,dispatcher); extern pascal Word FindCursorCtl(CtlRecHndlPtr, Integer, Integer, GrafPortPtr) inline(0x690E,dispatcher); extern pascal AuxWindInfoPtr GetAuxWindInfo(GrafPortPtr) inline(0x630E,dispatcher); extern pascal LongWord HandleDiskInsert(Word, Word) inline(0x6B0E,dispatcher); extern pascal Word MWGetCtlPart(void) inline(0x650E,dispatcher); extern pascal VoidProcPtr MWSetMenuProc(VoidProcPtr) inline(0x660E,dispatcher); /* old spelling of MWSetMenuProc */ extern pascal VoidProcPtr SetMenuProc(VoidProcPtr) inline(0x660E,dispatcher); extern pascal void MWSetUpEditMenu(void) inline(0x680E,dispatcher); extern pascal void MWStdDrawProc(void) inline(0x670E,dispatcher); extern pascal void ResizeInfoBar(Word, Word, GrafPortPtr) inline(0x6A0E,dispatcher); extern pascal void UpdateWindow(Word, GrafPortPtr) inline(0x6C0E,dispatcher); /* The parameters for these calls are not documented. extern pascal void GDRPrivate() inline(0x540E,dispatcher); extern pascal void TaskMasterContent() inline(0x5D0E,dispatcher); extern pascal void TaskMasterKey() inline(0x5E0E,dispatcher); */ #endif