mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-25 09:30:50 +00:00
325 lines
9.3 KiB
C
325 lines
9.3 KiB
C
|
|
||
|
/************************************************************
|
||
|
|
||
|
Created: Saturday, July 27, 1991 at 7:34 PM
|
||
|
Windows.h
|
||
|
C Interface to the Macintosh Libraries
|
||
|
|
||
|
|
||
|
Copyright Apple Computer, Inc. 1985-1992
|
||
|
All rights reserved.
|
||
|
|
||
|
|
||
|
Change History (most recent first):
|
||
|
|
||
|
<17> 7/28/92 DCL Moving applicationFloatKind & systemFloatKind constants out of
|
||
|
the public eye and into the private Layers header file. At the
|
||
|
request of TechPubs, and with assistance from Dean, Greg and
|
||
|
Kenny.
|
||
|
<16> 7/13/92 DCL Changed prototype of DragGrayRgn boundsRect to limitRect to
|
||
|
match Inside Mac. (as requested by NIIM writers)
|
||
|
<15> 5/11/92 JH #1029361 <KST>: Adding to new Window kinds for floating windows.
|
||
|
<14> 7/31/91 JL Updated Copyright.
|
||
|
<13> 1/27/91 LN Checked in Database generate file from DSG.
|
||
|
<11> 11/26/90 JL Checked in GetNewCWindow Ptr parameter to a void *
|
||
|
<10> 11/13/90 JL Bad checkIn of last version.
|
||
|
<9> 11/13/90 JL Put formal parameters back in functions.
|
||
|
<8> 11/4/90 dba got rid of some extraneous parameter names; made some parameters
|
||
|
void* instead of Ptr; used constStr255Parameter
|
||
|
<7> 10/30/90 dba make smaller version of GetGrayRgn() (using #define)
|
||
|
<6> 10/24/90 JL Changed all #defines to anonymous enums.
|
||
|
<5> 10/18/90 VL Fixed the comment <4>. No code change.
|
||
|
<4> 10/18/90 VL (jsm) Added new variant for movable modal dialog (5).
|
||
|
** <3> JAL 10/09/1990 Added Inline to GetGrayRgn.
|
||
|
** <2> JAL 02/15/1990 Changed AuxWinHndl to AuxWinHandle to match I.M.
|
||
|
** 1.4 EMT 12/11/1989 Moved all layer stuff to Layers.h.
|
||
|
** 1.3 EMT 06/27/1989 Added auxiliary lists to layer record.
|
||
|
** 1.2 CCH 05/15/1989 Submitted from System project.
|
||
|
** 1.0 EMT 05/13/1989 Added layer stuff.
|
||
|
|
||
|
************************************************************/
|
||
|
|
||
|
|
||
|
#ifndef __WINDOWS__
|
||
|
#define __WINDOWS__
|
||
|
|
||
|
#ifndef __QUICKDRAW__
|
||
|
#include <Quickdraw.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __EVENTS__
|
||
|
#include <Events.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __CONTROLS__
|
||
|
#include <Controls.h>
|
||
|
#endif
|
||
|
|
||
|
|
||
|
enum {
|
||
|
|
||
|
documentProc = 0,
|
||
|
dBoxProc = 1,
|
||
|
plainDBox = 2,
|
||
|
altDBoxProc = 3,
|
||
|
noGrowDocProc = 4,
|
||
|
movableDBoxProc = 5,
|
||
|
zoomDocProc = 8,
|
||
|
zoomNoGrow = 12,
|
||
|
rDocProc = 16,
|
||
|
dialogKind = 2,
|
||
|
userKind = 8,
|
||
|
|
||
|
/*FindWindow Result Codes*/
|
||
|
inDesk = 0,
|
||
|
inMenuBar = 1,
|
||
|
inSysWindow = 2,
|
||
|
inContent = 3,
|
||
|
inDrag = 4,
|
||
|
inGrow = 5,
|
||
|
inGoAway = 6,
|
||
|
inZoomIn = 7,
|
||
|
inZoomOut = 8
|
||
|
};
|
||
|
enum {
|
||
|
|
||
|
/*window messages*/
|
||
|
wDraw = 0,
|
||
|
wHit = 1,
|
||
|
wCalcRgns = 2,
|
||
|
wNew = 3,
|
||
|
wDispose = 4,
|
||
|
wGrow = 5,
|
||
|
wDrawGIcon = 6,
|
||
|
|
||
|
/*defProc hit test codes*/
|
||
|
wNoHit = 0,
|
||
|
wInContent = 1,
|
||
|
wInDrag = 2,
|
||
|
wInGrow = 3,
|
||
|
wInGoAway = 4,
|
||
|
wInZoomIn = 5,
|
||
|
wInZoomOut = 6,
|
||
|
deskPatID = 16,
|
||
|
|
||
|
/*Window Part Identifiers which correlate color table entries with window elements*/
|
||
|
wContentColor = 0,
|
||
|
wFrameColor = 1,
|
||
|
wTextColor = 2,
|
||
|
wHiliteColor = 3,
|
||
|
wTitleBarColor = 4
|
||
|
};
|
||
|
|
||
|
|
||
|
typedef pascal void (*DragGrayRgnProcPtr)(void);
|
||
|
|
||
|
struct WindowRecord {
|
||
|
GrafPort port;
|
||
|
short windowKind;
|
||
|
Boolean visible;
|
||
|
Boolean hilited;
|
||
|
Boolean goAwayFlag;
|
||
|
Boolean spareFlag;
|
||
|
RgnHandle strucRgn;
|
||
|
RgnHandle contRgn;
|
||
|
RgnHandle updateRgn;
|
||
|
Handle windowDefProc;
|
||
|
Handle dataHandle;
|
||
|
StringHandle titleHandle;
|
||
|
short titleWidth;
|
||
|
ControlHandle controlList;
|
||
|
struct WindowRecord *nextWindow;
|
||
|
PicHandle windowPic;
|
||
|
long refCon;
|
||
|
};
|
||
|
|
||
|
typedef struct WindowRecord WindowRecord;
|
||
|
typedef WindowRecord *WindowPeek;
|
||
|
|
||
|
struct CWindowRecord {
|
||
|
CGrafPort port;
|
||
|
short windowKind;
|
||
|
Boolean visible;
|
||
|
Boolean hilited;
|
||
|
Boolean goAwayFlag;
|
||
|
Boolean spareFlag;
|
||
|
RgnHandle strucRgn;
|
||
|
RgnHandle contRgn;
|
||
|
RgnHandle updateRgn;
|
||
|
Handle windowDefProc;
|
||
|
Handle dataHandle;
|
||
|
StringHandle titleHandle;
|
||
|
short titleWidth;
|
||
|
ControlHandle controlList;
|
||
|
struct CWindowRecord *nextWindow;
|
||
|
PicHandle windowPic;
|
||
|
long refCon;
|
||
|
};
|
||
|
|
||
|
typedef struct CWindowRecord CWindowRecord;
|
||
|
typedef CWindowRecord *CWindowPeek;
|
||
|
|
||
|
struct WStateData {
|
||
|
Rect userState; /*user state*/
|
||
|
Rect stdState; /*standard state*/
|
||
|
};
|
||
|
|
||
|
typedef struct WStateData WStateData;
|
||
|
typedef WStateData *WStateDataPtr, **WStateDataHandle;
|
||
|
|
||
|
struct AuxWinRec {
|
||
|
struct AuxWinRec **awNext; /*handle to next AuxWinRec*/
|
||
|
WindowPtr awOwner; /*ptr to window */
|
||
|
CTabHandle awCTable; /*color table for this window*/
|
||
|
Handle dialogCItem; /*handle to dialog manager structures*/
|
||
|
long awFlags; /*reserved for expansion*/
|
||
|
CTabHandle awReserved; /*reserved for expansion*/
|
||
|
long awRefCon; /*user Constant*/
|
||
|
};
|
||
|
|
||
|
typedef struct AuxWinRec AuxWinRec;
|
||
|
typedef AuxWinRec *AuxWinPtr, **AuxWinHandle;
|
||
|
|
||
|
struct WinCTab {
|
||
|
long wCSeed; /*reserved*/
|
||
|
short wCReserved; /*reserved*/
|
||
|
short ctSize; /*usually 4 for windows*/
|
||
|
ColorSpec ctTable[5];
|
||
|
};
|
||
|
|
||
|
typedef struct WinCTab WinCTab;
|
||
|
typedef WinCTab *WCTabPtr, **WCTabHandle;
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
pascal void InitWindows(void)
|
||
|
= 0xA912;
|
||
|
pascal void GetWMgrPort(GrafPtr *wPort)
|
||
|
= 0xA910;
|
||
|
pascal WindowPtr NewWindow(void *wStorage,const Rect *boundsRect,ConstStr255Param title,
|
||
|
Boolean visible,short theProc,WindowPtr behind,Boolean goAwayFlag,long refCon)
|
||
|
= 0xA913;
|
||
|
pascal WindowPtr GetNewWindow(short windowID,void *wStorage,WindowPtr behind)
|
||
|
= 0xA9BD;
|
||
|
pascal void CloseWindow(WindowPtr theWindow)
|
||
|
= 0xA92D;
|
||
|
pascal void DisposeWindow(WindowPtr theWindow)
|
||
|
= 0xA914;
|
||
|
void setwtitle(WindowPtr theWindow,char *title);
|
||
|
pascal void GetWTitle(WindowPtr theWindow,Str255 title)
|
||
|
= 0xA919;
|
||
|
pascal void SelectWindow(WindowPtr theWindow)
|
||
|
= 0xA91F;
|
||
|
pascal void HideWindow(WindowPtr theWindow)
|
||
|
= 0xA916;
|
||
|
pascal void ShowWindow(WindowPtr theWindow)
|
||
|
= 0xA915;
|
||
|
pascal void ShowHide(WindowPtr theWindow,Boolean showFlag)
|
||
|
= 0xA908;
|
||
|
pascal void HiliteWindow(WindowPtr theWindow,Boolean fHilite)
|
||
|
= 0xA91C;
|
||
|
pascal void BringToFront(WindowPtr theWindow)
|
||
|
= 0xA920;
|
||
|
pascal void SendBehind(WindowPtr theWindow,WindowPtr behindWindow)
|
||
|
= 0xA921;
|
||
|
pascal WindowPtr FrontWindow(void)
|
||
|
= 0xA924;
|
||
|
pascal void DrawGrowIcon(WindowPtr theWindow)
|
||
|
= 0xA904;
|
||
|
pascal void MoveWindow(WindowPtr theWindow,short hGlobal,short vGlobal,
|
||
|
Boolean front)
|
||
|
= 0xA91B;
|
||
|
pascal void SizeWindow(WindowPtr theWindow,short w,short h,Boolean fUpdate)
|
||
|
= 0xA91D;
|
||
|
pascal void ZoomWindow(WindowPtr theWindow,short partCode,Boolean front)
|
||
|
= 0xA83A;
|
||
|
pascal void InvalRect(const Rect *badRect)
|
||
|
= 0xA928;
|
||
|
pascal void InvalRgn(RgnHandle badRgn)
|
||
|
= 0xA927;
|
||
|
pascal void ValidRect(const Rect *goodRect)
|
||
|
= 0xA92A;
|
||
|
pascal void ValidRgn(RgnHandle goodRgn)
|
||
|
= 0xA929;
|
||
|
pascal void BeginUpdate(WindowPtr theWindow)
|
||
|
= 0xA922;
|
||
|
pascal void EndUpdate(WindowPtr theWindow)
|
||
|
= 0xA923;
|
||
|
pascal void SetWRefCon(WindowPtr theWindow,long data)
|
||
|
= 0xA918;
|
||
|
pascal long GetWRefCon(WindowPtr theWindow)
|
||
|
= 0xA917;
|
||
|
pascal void SetWindowPic(WindowPtr theWindow,PicHandle pic)
|
||
|
= 0xA92E;
|
||
|
pascal PicHandle GetWindowPic(WindowPtr theWindow)
|
||
|
= 0xA92F;
|
||
|
pascal Boolean CheckUpdate(EventRecord *theEvent)
|
||
|
= 0xA911;
|
||
|
pascal void ClipAbove(WindowPeek window)
|
||
|
= 0xA90B;
|
||
|
pascal void SaveOld(WindowPeek window)
|
||
|
= 0xA90E;
|
||
|
pascal void DrawNew(WindowPeek window,Boolean update)
|
||
|
= 0xA90F;
|
||
|
pascal void PaintOne(WindowPeek window,RgnHandle clobberedRgn)
|
||
|
= 0xA90C;
|
||
|
pascal void PaintBehind(WindowPeek startWindow,RgnHandle clobberedRgn)
|
||
|
= 0xA90D;
|
||
|
pascal void CalcVis(WindowPeek window)
|
||
|
= 0xA909;
|
||
|
pascal void CalcVisBehind(WindowPeek startWindow,RgnHandle clobberedRgn)
|
||
|
= 0xA90A;
|
||
|
pascal long GrowWindow(WindowPtr theWindow,Point startPt,const Rect *bBox)
|
||
|
= 0xA92B;
|
||
|
Boolean trackgoaway(WindowPtr theWindow,Point *thePt);
|
||
|
pascal short FindWindow(Point thePoint,WindowPtr *theWindow)
|
||
|
= 0xA92C;
|
||
|
short findwindow(Point *thePoint,WindowPtr *theWindow);
|
||
|
pascal long PinRect(const Rect *theRect,Point thePt)
|
||
|
= 0xA94E;
|
||
|
pascal long DragGrayRgn(RgnHandle theRgn,Point startPt,const Rect *limitRect,
|
||
|
const Rect *slopRect,short axis,DragGrayRgnProcPtr actionProc)
|
||
|
= 0xA905;
|
||
|
pascal Boolean TrackBox(WindowPtr theWindow,Point thePt,short partCode)
|
||
|
= 0xA83B;
|
||
|
pascal void GetCWMgrPort(CGrafPtr *wMgrCPort)
|
||
|
= 0xAA48;
|
||
|
void getwtitle(WindowPtr theWindow,char *title);
|
||
|
pascal void SetWinColor(WindowPtr theWindow,WCTabHandle newColorTable)
|
||
|
= 0xAA41;
|
||
|
pascal Boolean GetAuxWin(WindowPtr theWindow,AuxWinHandle *awHndl)
|
||
|
= 0xAA42;
|
||
|
long growwindow(WindowPtr theWindow,Point *startPt,const Rect *bBox);
|
||
|
pascal void SetDeskCPat(PixPatHandle deskPixPat)
|
||
|
= 0xAA47;
|
||
|
WindowPtr newwindow(void *wStorage,const Rect *boundsRect,char *title,Boolean visible,
|
||
|
short theProc,WindowPtr behind,Boolean goAwayFlag,long refCon);
|
||
|
pascal WindowPtr NewCWindow(void *wStorage,const Rect *boundsRect,ConstStr255Param title,
|
||
|
Boolean visible,short procID,WindowPtr behind,Boolean goAwayFlag,long refCon)
|
||
|
= 0xAA45;
|
||
|
WindowPtr newcwindow(void *wStorage,const Rect *boundsRect,char *title,
|
||
|
Boolean visible,short procID,WindowPtr behind,Boolean goAwayFlag,long refCon);
|
||
|
pascal WindowPtr GetNewCWindow(short windowID,void *wStorage,WindowPtr behind)
|
||
|
= 0xAA46;
|
||
|
pascal short GetWVariant(WindowPtr theWindow)
|
||
|
= 0xA80A;
|
||
|
long pinrect(const Rect *theRect,Point *thePt);
|
||
|
#define GetGrayRgn() (* (RgnHandle*) 0x09EE)
|
||
|
pascal void SetWTitle(WindowPtr theWindow,ConstStr255Param title)
|
||
|
= 0xA91A;
|
||
|
Boolean trackbox(WindowPtr theWindow,Point *thePt,short partCode);
|
||
|
pascal Boolean TrackGoAway(WindowPtr theWindow,Point thePt)
|
||
|
= 0xA91E;
|
||
|
pascal void DragWindow(WindowPtr theWindow,Point startPt,const Rect *boundsRect)
|
||
|
= 0xA925;
|
||
|
long draggrayrgn(RgnHandle theRgn,Point *startPt,const Rect *boundsRect,
|
||
|
const Rect *slopRect,short axis,DragGrayRgnProcPtr actionProc);
|
||
|
void dragwindow(WindowPtr theWindow,Point *startPt,const Rect *boundsRect);
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|