Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
CLUTSample.h
/*------------------------------------------------------------------------------ |
# |
# Apple Macintosh Developer Technical Support |
# |
# CLUTSample |
# |
# CLUTSample.h - Rez and C Include Source |
# |
# |
# Loosely based in the sample SAMPLE this program shows |
# how to create a window and display on it the colors of the CLUT |
# associated with the device the window sits on top of. |
# |
# Left to the curious reader are some improvements such as, remembering the |
# positions of each open window, so if you use this program to monitor your |
# color tables it will position the windows in the last place you opened them. |
# The treatment of direct devices is kind of 'casual' a better color display may |
# be appropriate. Last, it may be desireable to change the size of the color |
# rectangles depending on the depth of the color table. |
# Check Sample sources for more detailed documentation. |
# Copyright © 1989 Apple Computer, Inc. |
--------------------------------------------------------------------------------*/ |
#define kMinSize 23 /* application's minimum size (in K) */ |
/* We made the preferred size bigger than the minimum size by 12K, so that |
there would be even more room for the scrap, FKEYs, etc. */ |
#define kPrefSize 35 /* application's preferred size (in K) */ |
#define rMenuBar 128 /* application's menu bar */ |
#define rAboutAlert 128 /* about alert */ |
#define rUserAlert 129 /* error user alert */ |
#define rWindow 128 /* application's window */ |
/* kSysEnvironsVersion is passed to SysEnvirons to tell it which version of the |
SysEnvRec we understand. */ |
#define kSysEnvironsVersion 1 |
/* kOSEvent is the event number of the suspend/resume and mouse-moved events sent |
by MultiFinder. Once we determine that an event is an osEvent, we look at the |
high byte of the message sent to determine which kind it is. To differentiate |
suspend and resume events we check the resumeMask bit. */ |
#define kOSEvent app4Evt /* event used by MultiFinder */ |
#define kSuspendResumeMessage 1 /* high byte of suspend/resume event message */ |
#define kResumeMask 1 /* bit of message field for resume vs. suspend */ |
#define kMouseMovedMessage 0xFA /* high byte of mouse-moved event message */ |
#define kNoEvents 0 /* no events mask */ |
/* The following constants are used to identify menus and their items. The menu IDs |
have an "m" prefix and the item numbers within each menu have an "i" prefix. */ |
#define mApple 128 /* Apple menu */ |
#define iAbout 1 |
#define mFile 129 /* File menu */ |
#define iNew 1 |
#define iClose 2 |
#define iQuit 4 |
/* 1.01 - kTopLeft - This is for positioning the Disk Initialization dialogs. */ |
#define kDITop 0x0050 |
#define kDILeft 0x0070 |
/* 1.01 - kMinHeap - This is the minimum result from the following |
equation: |
ORD(GetApplLimit) - ORD(ApplicZone) |
for the application to run. It will insure that enough memory will |
be around for reasonable-sized scraps, FKEYs, etc. to exist with the |
application, and still give the application some 'breathing room'. |
To derive this number, we ran under a MultiFinder partition that was |
our requested minimum size, as given in the 'SIZE' resource. */ |
#define kMinHeap 21 * 1024 |
/* 1.01 - kMinSpace - This is the minimum result from PurgeSpace, when called |
at initialization time, for the application to run. This number acts |
as a double-check to insure that there really is enough memory for the |
application to run, including what has been taken up already by |
pre-loaded resources, the scrap, code, and other sundry memory blocks. */ |
#define kMinSpace 8 * 1024 |
/* kExtremeNeg and kExtremePos are used to set up wide open rectangles and regions. */ |
#define kExtremeNeg -32768 |
#define kExtremePos 32767 - 1 /* required to address an old region bug */ |
/* these #defines are used to set enable/disable flags of a menu */ |
#define AllItems 0b1111111111111111111111111111111 /* 31 flags */ |
#define NoItems 0b0000000000000000000000000000000 |
#define MenuItem1 0b0000000000000000000000000000001 |
#define MenuItem2 0b0000000000000000000000000000010 |
#define MenuItem3 0b0000000000000000000000000000100 |
#define MenuItem4 0b0000000000000000000000000001000 |
#define MenuItem5 0b0000000000000000000000000010000 |
#define MenuItem6 0b0000000000000000000000000100000 |
#define MenuItem7 0b0000000000000000000000001000000 |
#define MenuItem8 0b0000000000000000000000010000000 |
#define MenuItem9 0b0000000000000000000000100000000 |
#define MenuItem10 0b0000000000000000000001000000000 |
#define MenuItem11 0b0000000000000000000010000000000 |
#define MenuItem12 0b0000000000000000000100000000000 |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14