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.
BareBones.h
/* |
File: BareBones.h |
Contains: Common header file included by all source files |
Written by: Chris White |
Copyright: Copyright © 1996-1999 by Apple Computer, Inc., All Rights Reserved. |
You may incorporate this Apple sample source code into your program(s) without |
restriction. This Apple sample source code has been provided "AS IS" and the |
responsibility for its operation is yours. You are not permitted to redistribute |
this Apple sample source code as "Apple sample source 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 source |
code, but that you've made changes. |
Change History (most recent first): |
8/10/1999 Karl Groethe Updated for Metrowerks Codewarror Pro 2.1 |
*/ |
#ifndef __BAREBONES__ |
#define __BAREBONES__ |
#ifndef __DIALOGS__ |
#include <Dialogs.h> |
#endif |
#ifndef __THREADS__ |
#include <Threads.h> |
#endif |
#define DEBUGGING 1 // Anything that shouldn't normally occur |
#define WARNINGS 0 // Something that can occur, but you might like to know about |
enum |
{ |
// Generall application stuff |
kCreatorCode = 'prgr', // Progress Bars |
kSleepTime = 60L |
}; |
enum |
{ |
// Menu ID numbers |
kMenuBarID = 1000, |
kAppleMenu = 1000, |
kFileMenu = 1001, |
kProgressBarsMenu |
}; |
enum |
{ |
// Apple menu commands |
cAbout = 1 |
}; |
enum |
{ |
// File menu commands |
cQuit = 1 |
}; |
enum |
{ |
// ProgressBars menu commands |
cToggleThreads = 1, |
cSeperator1, |
cStandard, |
cBarberPole |
}; |
enum |
{ |
// General Windows and Dialogs |
kDisplayWindow = 1000, |
kAboutDialog, |
kErrorDialog |
}; |
enum |
{ |
// Progress Dialog |
kProgressDialogID = 1000, |
kCancelItemID = 1, |
kUserItemID, |
kStaticTextItemID |
}; |
enum |
{ |
// Strings |
kErrorStrings = 1000, |
kMiscStrings |
}; |
enum |
{ |
// Error String Index |
kNeedSystem7 = 1, |
kGenericErrorStr |
}; |
enum |
{ |
// Misc String Index |
kProgressStr = 1 |
}; |
enum |
{ |
// Internal flags |
kBarberPoleFinished = -1 |
}; |
enum |
{ |
// Thread readability |
kDefaultStackSpace = 0, |
kNoCreationOptions = 0 |
}; |
// Non-Threaded typedefs |
// Routine pointer to the operation being carried out. It |
// must call the UpdateOperation routine periodically. |
typedef Boolean (*tOperation) ( void* refCon, DialogRef theDialog ); |
// Threaded typedefs |
struct ThreadedOperationRec |
{ |
int usageCount; |
void* refCon; |
Boolean bCancelled; |
Boolean bBarberPole; |
int maxAmount; |
int doneAmount; |
int drawnAmount; |
Str255 theText; |
}; |
typedef struct ThreadedOperationRec tThreadedOperationRec, *tThreadedOperationPtr; |
// Routine pointer to the operation being carried out. It doesn't have to do |
// anything special except yield to other threads. |
typedef pascal SInt32 (*tThreadedOperation) ( tThreadedOperationPtr refCon ); |
// Global Variable Definitions. This allows me to include this file |
// in all sources with the extern keyword used in all instances except |
// the main source file. |
#ifdef __MAIN__ |
#define global |
#else |
#define global extern |
#endif |
global Boolean gQuit; // quit program flag |
global SInt32 gSleepTime; |
global Boolean gHasThreadManager; // Do we have the Thread Manager? |
global UserItemUPP gOutlineUserItemUPP; |
#endif // __BAREBONES__ |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-30