home *** CD-ROM | disk | FTP | other *** search
- /*
- File: MacIncludes.h
-
- Contains: This file contains all of the Mac includes that one needs
-
- Version: SimpleText 1.4 or later
-
- ** Copyright 1993-1996 Apple Computer. All rights reserved.
- **
- ** You may incorporate this sample code into your applications without
- ** restriction, though the sample code has been provided "AS IS" and the
- ** responsibility for its operation is 100% yours. However, what you are
- ** not permitted to do is to redistribute the source as "DSC Sample Code"
- ** after having made changes. If you're going to re-distribute the source,
- ** we require that you make it clear in the source that the code was
- ** descended from Apple Sample Code, but that you've made changes.
-
- */
-
-
- #ifndef __MACINCLUDES__
- #define __MACINCLUDES__
-
- #ifndef BUILDING_FOR_SYSTEM7
- #define BUILDING_FOR_SYSTEM7 1
- #endif
-
- #ifndef FOR_OPAQUE_SYSTEM_DATA_STRUCTURES
- #define FOR_OPAQUE_SYSTEM_DATA_STRUCTURES 0
- #endif
-
- #ifndef PRAGMA_IMPORT_SUPPORTED
- #define PRAGMA_IMPORT_SUPPORTED 0
- #endif
-
- #include <StdArg.h>
- #include <Limits.h>
- #include <Types.h>
- #include <Resources.h>
- #include <QuickDraw.h>
- #include <Fonts.h>
- #include <Events.h>
- #include <Windows.h>
- #include <Menus.h>
- #include <TextEdit.h>
- #include <Dialogs.h>
- #include <ToolUtils.h>
- #include <Memory.h>
- #include <SegLoad.h>
- #include <Files.h>
- #include <OSUtils.h>
- #include <Traps.h>
- #include <Script.h>
- #include <ColorPicker.h>
- #include <FixMath.h>
- #include <Packages.h>
- #include <Math.h>
- #include <Palettes.h>
- #include <QDOffscreen.h>
- #include <DeskBus.h>
- #include <StdLib.h>
- #include <StdArg.h>
- #include <Strings.h>
- #include <StdIO.h>
- #include <Sound.h>
- #include <Errors.h>
- #include <AppleEvents.h>
- #include <DiskInit.h>
- #include <Retrace.h>
- #include <Folders.h>
- #include <Lists.h>
- #include <CTBUtilities.h>
- #include <Gestalt.h>
- #include <Finder.h>
- #include <Scrap.h>
- #include <Devices.h>
- #include <Video.h>
- #include <Aliases.h>
- #include <SoundInput.h>
- #include <Movies.h>
- #include <Printing.h>
- #include <Balloons.h>
- #include <MixedMode.h>
- #include <Drag.h>
- #include <TSMTE.h>
- #include <AppleGuide.h>
- #include <Speech.h>
- #include <Icons.h>
- #include <LowMem.h>
- #include <GXMath.h>
- #include <GXGraphics.h>
- #include <GXEnvironment.h>
- #include <GXFonts.h>
- #include <GXLayout.h>
- #include <GXPrinting.h>
- #include <GXMessages.h>
- #include <CodeFragments.h>
- #include <TextUtils.h>
-
- // ----- BEGINNING OF SWIPED MACROS -----
- // Things that should be in the standard Maxwell versions of headers, but
- // are not. Probably should clean up a bit w.r.t. using window refs and the like
-
- #define GetWindowPort(aWindowRef) ( (CGrafPtr) aWindowRef)
- #define GetWindowKind(aWindowRef) ( *(SInt16 *) (((UInt8 *) aWindowRef) + sizeof(GrafPort)))
- #define GetWindowUpdateRgn(aWindowRef, aRgnHandle) CopyRgn( *(RgnHandle *)(((UInt8 *) aWindowRef) + sizeof(GrafPort) + 0xE), \
- aRgnHandle )
- #define GetNextWindow(aWindowRef) ( *(WindowRef *) (((UInt8 *) aWindowRef) + sizeof(GrafPort) + 0x24))
- #define GetWindowStructureRgn(aWindowRef, aRgnHandle) CopyRgn( *(RgnHandle *)(((UInt8 *) aWindowRef) + sizeof(GrafPort) + 0x6), \
- aRgnHandle )
- #define GetWindowContentRgn(aWindowRef, aRgnHandle) CopyRgn( *(RgnHandle *)(((UInt8 *) aWindowRef) + sizeof(GrafPort) + 0xA), \
- aRgnHandle )
-
- #define GetDialogWindow(dialog) ((WindowRef) dialog)
- #define GetDialogKeyboardFocusItem(dialog) ((*(SInt16 *) (((UInt8 *) dialog) + 164)) < 0 ? -1 : (*(SInt16 *) (((UInt8 *) dialog) + 164)) + 1)
-
- // ----- END OF SWIPED MACROS -----
-
- #include "AGFile.h"
-
- // Balloons.h
- #define kDefaultBalloonVariant 2
-
- // Fonts.h
- #if !GENERATINGPOWERPC
- pascal short GetDefFontSize(void)
- = {0x3EB8,0x0BA8,0x6604,0x3EBC,0x000C};
- #endif
-
- // GXPrinterDrivers.h
- #if GENERATINGPOWERPC
- // in the old library, these are not automagically remapped from the
- // forward messages, so we do so via Macros. At some point, can remove
- // this once SCM libs catch up.
- #undef Forward_GXPrintingEvent
- #undef Forward_GXCompleteSpoolFile
- #undef Send_GXSpoolResource
-
- // Jason Yeo: the follwoing 3 functions used to be extern Psacal OSErr ....
- extern OSErr Forward_GXPrintingEvent(EventRecord *evtRecord, Boolean filterEvent);
- extern OSErr Forward_GXCompleteSpoolFile(gxSpoolFile theSpoolFile);
- extern OSErr Send_GXSpoolResource(gxSpoolFile theSpoolFile, Handle theResource, ResType theType, long id);
- #endif
-
- // For looking at all of our windows, not just the visible ones.
- #define LMGetFirstWindow() (* (WindowRef*) 0x9D6)
-
- // No glue for this either, sigh.
- #define TESetClickLoop(L,H) ((**(H)).clickLoop = (L))
-
- // defines I like to use all of the time
- extern void _DataInit(); // part of Runtime library
-
- #define TopLeft(aRect) (* (Point *) &(aRect).top)
- #define BotRight(aRect) (* (Point *) &(aRect).bottom)
-
- #define RectWidth(aRect) ((aRect).right - (aRect).left)
- #define RectHeight(aRect) ((aRect).bottom - (aRect).top)
-
- #define Max(X, Y) ( ((X)>(Y)) ? (X) : (Y) )
- #define Min(X, Y) ( ((X)>(Y)) ? (Y) : (X) )
-
- #define Pin(VALUE, MIN, MAX) ( ((VALUE) < (MIN)) ? (MIN) : ( ((VALUE) > (MAX)) ? (MAX) : (VALUE) ) )
-
- #define nrequire(CONDITION, LABEL) if (true) {if ((CONDITION)) goto LABEL; }
- #define require(CONDITION, LABEL) if (true) {if (!(CONDITION)) goto LABEL; }
-
- // The Pascal equivalent of strcpy, takes two Pascal string pointers
- #define PSTRCPY(P1, P2) BlockMove(P2, P1, P2[0]+1)
-
- // Concatante one character C onto the string S
- #define CHARCAT(S, C) S[(S[0]+1)] = C; S[0]++;
-
- /* The Pascal equivalent of strcat, takes two Pascal string pointers */
- #define PSTRCAT(P1, P2) \
- BlockMove(&P2[1], &P1[(P1[0]+1)], P2[0]); \
- P1[0] += P2[0];
-
- #if defined(UNIVERSAL_INTERFACES_VERSION) && (UNIVERSAL_INTERFACES_VERSION < 0x300)
- #define CheckMenuItem(menu, item, checked) CheckItem(menu, item, checked)
- #endif
-
- #endif /* __MACINCLUDES__ */
-
- /*
- * The following drag enums and typedefs are from the beta 3.0 version of Interfaces and Libraries upon
- * which SimpleText was orginally built. Since the 3.0 version was removed, they
- * are necessary for compatibilty with the 2.x interfaces and libraries.
- *
- * Should these be put back in future versions of Interface files, you can just remove these declarations.
- *
- */
-
- enum {
- kDragTrackingEnterHandler = 1, /* drag has entered handler*/
- kDragTrackingEnterWindow = 2, /* drag has entered window*/
- kDragTrackingInWindow = 3, /* drag is moving within window*/
- kDragTrackingLeaveWindow = 4, /* drag has exited window*/
- kDragTrackingLeaveHandler = 5 /* drag has exited handler*/
- };
-
- enum {
- kNullCharCode = 0,
- kHomeCharCode = 1,
- kEnterCharCode = 3,
- kEndCharCode = 4,
- kHelpCharCode = 5,
- kBellCharCode = 7,
- kBackspaceCharCode = 8,
- kTabCharCode = 9,
- kLineFeedCharCode = 10,
- kVerticalTabCharCode = 11,
- kPageUpCharCode = 11,
- kFormFeedCharCode = 12,
- kPageDownCharCode = 12,
- kReturnCharCode = 13,
- kFunctionKeyCharCode = 16,
- kEscapeCharCode = 27,
- kClearCharCode = 27,
- kLeftArrowCharCode = 28,
- kRightArrowCharCode = 29,
- kUpArrowCharCode = 30,
- kDownArrowCharCode = 31,
- kDeleteCharCode = 127,
- kNonBreakingSpaceCharCode = 202
- };
-
- /*
- _______________________________________________________________________________________________________
-
- • DRAG ATTRIBUTES
- _________________________________________________________________________________________________________
- */
- typedef OptionBits DragAttributes;
-
- enum {
- kDragHasLeftSenderWindow = (1L << 0), /* drag has left the source window since TrackDrag*/
- kDragInsideSenderApplication = (1L << 1), /* drag is occurring within the sender application*/
- kDragInsideSenderWindow = (1L << 2) /* drag is occurring within the sender window*/
- };
-