home *** CD-ROM | disk | FTP | other *** search
- /* Blob Manager global types and constants */
-
- # ifndef __BLOBMGR_H__
-
- # define __BLOBMGR_H__
-
-
-
- /*
- * Blob flag masks
- *
- * bScaleMask, bHJustMask, and bVJustMask apparantly are unused at present
- */
-
- enum
- {
- bEnableMask = 1,
- bFreezeMask = 2,
- bStatModeMask = 4,
- bDragModeMask = 8,
- bDrawModeMask = 12, /* two bits, derived: bStatModeMask + bDragModeMask */
- bNeedGlobMask = 16,
- bScaleMask = 32,
- bHJustMask = 192, /* two bits: 64 + 128 */
- bVJustMask = 768, /* two bits: 256 + 512 */
- bPicMask = 1024,
- bProcManualDimMask = 2048 /* BlobDraw() assumes draw proc does own dimming */
- };
-
-
- /* blob drawing modes */
-
- enum
- {
- normalDraw = 1, /* draw blob normally */
- dimDraw = 2 /* draw dimmed blob */
- };
-
- /* blob part codes */
-
- enum
- {
- inStatBlob = 1, /* static region */
- inDragBlob = 2, /* drag region */
- inFullBlob = 3 /* entire blob */
- };
-
-
- /*
- * special max glue count - no limit
- */
-
- # define infiniteGlue 0x8000
-
-
- /*
- * BlobClick return codes
- */
-
- enum
- {
- /* 0 = nothing done */
- bcGlue = 1, /* donor blob glued to receptor */
- bcUnglue, /* glob unglued from receptor */
- bcXfer, /* glob transferred from one receptor to another */
- bcDup, /* glob duplicated from one receptor onto another */
- bcSwap /* globs of two receptors swapped */
- };
-
-
- /*
- * Messages passed by BlobClick to advisory functions
- */
-
- enum
- {
- advDClick, /* click in donor */
- advRClick, /* click in receptor */
- advGlue, /* glue transaction proposed */
- advUnglue, /* unglue transaction proposed */
- advXfer, /* transfer transaction proposed */
- advDup, /* duplicate transaction proposed */
- advSwap /* swap transaction proposed */
- };
-
-
- /* DragGrayRgn result code for bad drag - Old Inside Macintosh is wrong! */
-
- # define badDragResult 0x80008000L
-
-
- /*
- * BlobRecord structure
- *
- * flags:
- * bit 0: 1 = enabled, 0 = disabled
- * bit 1: 1 = frozen, 0 = thawed (1/0)
- * bit 2: 1 = static region is dimmed, 0 = normal
- * bit 3: 1 = drag region is dimmed, 0 = normal
- * bit 4: 1 = need explicit match, 0 = don't
- * bit 5: 1 = scale when glued, 0 = don't
- * bit 6-7: horizontal justification mask
- * bit 8-9: vertical justification mask
- * bit 10: 1 = is picture blob, 0 = is procedure blob
- * bit 11: draw procedure does own dimming (procedure blobs only)
- *
- * fzflags:
- * bit 2: 1 = static region was dimmed before freeze, 0 = was normal
- * bit 3: 1 = drag region was dimmed before freeze, 0 = was normal
- */
-
- typedef struct BlobRecord BlobRecord, *BlobPtr, **BlobHandle;
- typedef struct MatchRecord MatchRecord, *MatchPtr, **MatchHandle;
- typedef struct BlobSetRecord BlobSetRecord, *BlobSetPtr, **BlobSetHandle;
-
- typedef pascal void (*BDrawProcPtr) (BlobHandle bDst, BlobHandle bSrc, short partCode);
- typedef pascal void (*BLoopProcPtr1) (BlobHandle b);
- typedef pascal void (*BLoopProcPtr2) (BlobHandle b, short partCode);
- typedef pascal Boolean (*BAdvisoryProcPtr) (short advMessage, BlobHandle b);
- typedef pascal Boolean (*BQuietProcPtr) (BlobHandle b);
- typedef pascal short (*BRandProcPtr) (short max);
-
- struct BlobRecord
- {
- short flags; /* flags word */
- short fzFlags; /* freeze flags word */
- union /* pic if bPicMask flag word bit set*/
- { /* proc if bit clear */
- PicHandle bPic; /* blob picture (and original frame) */
- BDrawProcPtr bDrawProc; /* blob drawing procedure */
- } bPicProc;
- RgnHandle statRgn; /* current static region */
- RgnHandle dragRgn; /* current drag region */
- Rect statRect; /* original static region frame */
- Rect dragRect; /* original drag region frame */
- short glueMax; /* maximum times can glue to others */
- short glueCount; /* number of times glued to others */
- MatchHandle matches; /* set of valid matches */
- BlobHandle glob; /* currently glued blob */
- long bRefCon; /* reference value */
- BlobHandle nextBlob; /* next blob in set */
- };
-
-
- struct MatchRecord
- {
- BlobHandle mBlob; /* blob that matches */
- MatchHandle nextMatch; /* next match record */
- };
-
-
- struct BlobSetRecord
- {
- BlobHandle firstBlob; /* first Blob of set */
- BlobHandle lastBlob; /* last Blob of set */
- BlobSetHandle nextBlobSet; /* next blob set */
- };
-
-
- pascal BlobHandle NewBlob (BlobSetHandle bSet, Boolean enable, short glueMVal,
- Boolean mustMatch, long refCon);
- pascal BlobSetHandle NewBlobSet (void);
- pascal void NewBlobMatch (BlobHandle b1, BlobHandle b2);
- pascal void AddBlob (BlobHandle b, BlobSetHandle bSet);
- pascal void DisposeBlobPic (BlobHandle b);
- pascal void DisposeBlobMatchSet (BlobHandle b);
- pascal void DisposeBlob (BlobHandle b);
- pascal void DisposeBlobSet (BlobSetHandle bSet);
- pascal void DisposeBlobSets (void);
- pascal void ClobberBlob (BlobHandle b, BlobSetHandle bSet);
- pascal void ClobberBlobMatch (BlobHandle b1, BlobHandle b2);
-
- pascal void OpenBlob (void);
- pascal void CloseRectBlob (BlobHandle b, Rect *dragRect, Rect *statRect);
- pascal void CloseRgnBlob (BlobHandle b, RgnHandle dragRgn, RgnHandle statRgn);
-
- pascal void SetProcRgnBlob (BlobHandle b, BDrawProcPtr p, RgnHandle dragRgn, RgnHandle statRgn);
- pascal void SetProcRectBlob (BlobHandle b, BDrawProcPtr p, Rect *dragRect, Rect *statRect);
-
- pascal void SetBlobRgns (BlobHandle b, RgnHandle dragRgn, RgnHandle statRgn);
- pascal void SetBlobRects (BlobHandle b, Rect *dragRect, Rect *statRect);
-
- pascal BlobHandle FirstBlob (BlobSetHandle bSet);
- pascal BlobHandle LastBlob (BlobSetHandle bSet);
- pascal BlobHandle NextBlob (BlobHandle b);
- pascal void SetBRefCon (BlobHandle b, long val);
- pascal long GetBRefCon (BlobHandle b);
- pascal RgnHandle BStatRgn (BlobHandle b);
- pascal RgnHandle BDragRgn (BlobHandle b);
- pascal Rect BStatBox (BlobHandle b);
- pascal Rect BDragBox (BlobHandle b);
- pascal BlobHandle BGlob (BlobHandle b);
- pascal BlobHandle FirstBMatch (BlobHandle b);
-
- pascal RgnHandle BCalcRegion (BlobHandle b, short partCode);
-
- pascal void SetBCZoomFlags (Boolean uGlueZoom, Boolean bDragZoom);
- pascal void GetBCZoomFlags (Boolean *uGlueZoom, Boolean *bDragZoom);
- pascal void SetBCPermissions (Boolean canUnglue, Boolean canXfer, Boolean canDup,
- Boolean canSwap, Boolean canRep);
- pascal void GetBCPermissions (Boolean *canUnglue, Boolean *canXfer, Boolean *canDup,
- Boolean *canSwap, Boolean *canRep);
- pascal void SetBCAdvisory (BAdvisoryProcPtr p);
- pascal void GetBCAdvisory (BAdvisoryProcPtr *p);
- pascal void BlobClick (Point thePt, long t, BlobSetHandle dSet, BlobSetHandle rSet);
- pascal short BClickResult (void);
- pascal void BClickCast (BlobHandle *d1, BlobHandle *d2, BlobHandle *r1, BlobHandle *r2);
-
- pascal void SetBDragRects (Rect *limitRect, Rect *slopRect);
- pascal void GetBDragRects (Rect *limitRect, Rect *slopRect);
- pascal void SetBDragAxis (short axis);
- pascal short GetBDragAxis (void);
- pascal long TrackBlob (BlobHandle b, short partCode, Point startPoint,
- Rect *limitRect, Rect *slopRect, short axis);
- pascal long DTrackBlob (BlobHandle b, short partCode, Point startPoint);
- pascal void DragBlob (BlobHandle b, Point startPoint,
- Rect *limitRect, Rect *slopRect, short axis);
- pascal void DDragBlob (BlobHandle b, Point startPoint);
-
- pascal void SetBDimInfo (Pattern p, short mode);
- pascal void GetBDimInfo (Pattern *p, short *mode);
- pascal void DrawBlob (BlobHandle b, short partCode);
- pascal void DimBlobRgn (BlobHandle b, short partCode);
- pascal void DrawBlobSet (BlobSetHandle bSet);
- pascal Boolean BeginBlobDimDraw (BlobHandle b, short partCode);
- pascal void EndBlobDimDraw (void);
-
- pascal void SetBlobFlags (BlobHandle b, short bitMask);
- pascal void ClearBlobFlags (BlobHandle b, short bitMask);
- pascal short TestBlobFlags (BlobHandle b, short bitMask);
- pascal void EnableBlob (BlobHandle b);
- pascal void EnableBlobSet (BlobSetHandle bSet);
- pascal void DisableBlob (BlobHandle b);
- pascal void DisableBlobSet (BlobSetHandle bSet);
- pascal short GetBDrawMode (BlobHandle b, short partCode);
- pascal void SetBDrawMode (BlobHandle b, short partCode, short mode);
- pascal short GetFzBDrawMode (BlobHandle b, short partCode);
- pascal Boolean BlobDimmed (BlobHandle b, short partCode);
- pascal Boolean BlobEnabled (BlobHandle b);
- pascal Boolean BlobFrozen (BlobHandle b);
- pascal Boolean PicBlob (BlobHandle b);
- pascal Boolean CanGlue (BlobHandle b);
- pascal Boolean BlobActive (BlobHandle b);
-
- pascal void OffsetBlob (BlobHandle b, short partCode, short hoff, short voff);
- pascal void MoveBlob (BlobHandle b, short partCode, short h, short v);
-
- pascal void HiliteBlob (BlobHandle b, short partCode, short mode);
- pascal void HiliteBlobSet (BlobSetHandle bSet, short partCode, short mode);
- pascal void IncBlobGlue (BlobHandle b);
- pascal void DecBlobGlue (BlobHandle b);
- pascal void SetBGlueMax (BlobHandle b, short max);
- pascal short GetBGlueMax (BlobHandle b);
-
- pascal void FreezeBlob (BlobHandle b);
- pascal void FreezeBlobSet (BlobSetHandle bSet);
- pascal void ThawBlob (BlobHandle b);
- pascal void ThawBlobSet (BlobSetHandle bSet);
- pascal void BlobFeedback (BlobSetHandle bSet, short quietMode, short noisyMode);
-
- pascal Boolean InBlobMatchSet (BlobHandle b1, BlobHandle b2);
- pascal Boolean BlobQuiet (BlobHandle b);
- pascal void SetBQuietTest (BQuietProcPtr f);
- pascal Boolean BlobSetQuiet (BlobSetHandle bSet);
-
- pascal void HideBlob (BlobHandle b);
- pascal void HideBlobSet (BlobSetHandle bSet);
- pascal void ShowBlob (BlobHandle b);
- pascal void ShowBlobSet (BlobSetHandle bSet);
-
- pascal short TestBlob (BlobHandle b, Point thePoint);
- pascal short FindBlob (Point thePoint, BlobSetHandle bSet, BlobHandle *bPtr);
-
- pascal BlobHandle GetBlobHandle (BlobSetHandle bSet, short i);
- pascal short GetBlobIndex (BlobSetHandle bSet, BlobHandle b);
- pascal short BlobSetSize (BlobSetHandle bSet);
-
- pascal void BlobLoopProc1 (BLoopProcPtr1 p, BlobSetHandle bSet);
- pascal void BlobLoopProc2 (BLoopProcPtr2 p, BlobSetHandle bSet, short partCode);
-
- pascal short BlobRand (short max);
- pascal void SetBlobRand (BRandProcPtr f);
-
- pascal void ShuffleBlobSet (BlobSetHandle bSet);
- pascal void ShuffleGlobSet (BlobSetHandle bSet);
-
- pascal Boolean BTrackMouse (BlobHandle b, Point startPt, short partCode);
-
- pascal void UnglueGlob (BlobHandle b);
- pascal void UnglueGlobSet (BlobSetHandle bSet);
- pascal void GlueGlob (BlobHandle d, BlobHandle r);
- pascal void TransferGlob (BlobHandle r1, BlobHandle r2);
- pascal void SwapGlob (BlobHandle r1, BlobHandle r2);
- pascal void DupGlob (BlobHandle r1, BlobHandle r2);
-
- pascal void BMgrZoomRect (Rect *r1, Rect *r2);
-
- pascal void ZUnglueGlob (BlobHandle b);
- pascal void ZUnglueGlobSet (BlobSetHandle bSet);
- pascal void ZGlueGlob (BlobHandle d, BlobHandle r);
- pascal void ZDupGlob (BlobHandle r1, BlobHandle r2);
-
- # endif /* __BLOBMGR_H__ */