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.
Source/init.c
/************************************************************************************* |
# |
# init.c |
# |
# basic initialization code. |
# |
# Author(s): Michael Marinkovich & Guillermo Ortiz |
# marink@apple.com |
# |
# Modification History: |
# |
# 4/3/96 MWM Initial coding |
# |
# Copyright © 1992-96 Apple Computer, Inc., 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. |
# |
*************************************************************************************/ |
#include <AppleEvents.h> |
#include <Displays.h> |
#include <Events.h> |
#include <Fonts.h> |
#include <Gestalt.h> |
#include <Menus.h> |
#include <OSUtils.h> |
#include "App.h" |
#include "Proto.h" |
//---------------------------------------------------------------------- |
// |
// Globals - |
// |
//---------------------------------------------------------------------- |
extern Boolean gHasDMTwo; |
extern Boolean gHasDrag; |
extern Boolean gInBackground; |
extern short gWindCount; |
//---------------------------------------------------------------------- |
// |
// Initialize - the main entry point for the initialization |
// |
// |
//---------------------------------------------------------------------- |
OSErr Initialize(void) |
{ |
OSErr err = noErr; |
ToolBoxInit(); |
CheckEnvironment(); |
err = InitApp(); |
return err; |
} |
//---------------------------------------------------------------------- |
// |
// ToolBoxInit - initialization all the needed managers |
// |
// |
//---------------------------------------------------------------------- |
void ToolBoxInit(void) |
{ |
InitGraf(&qd.thePort); |
InitFonts(); |
InitWindows(); |
InitMenus(); |
TEInit(); |
InitDialogs(nil); |
InitCursor(); |
FlushEvents(everyEvent, 0); |
} |
//---------------------------------------------------------------------- |
// |
// CheckEnvironment - make sure we can run with current sys and managers. |
// Also initialize globals - have drag & drop |
// |
//---------------------------------------------------------------------- |
void CheckEnvironment(void) |
{ |
OSErr err; |
long response; |
// require QuickTime 1.5 or later |
err = Gestalt(gestaltQuickTime, &response); |
if (noErr != err || ((response >> 16) & 0xFFFF) < 0x0150) |
HandleAlert(kNeedsQuickTime); |
// check to see if the Display Manager is present. If it is |
// then we have a PowerMac or System 7.5. |
err = Gestalt(gestaltDisplayMgrAttr, &response); |
if (err != noErr || ((response & (1 << gestaltDisplayMgrPresent)) == 0)) |
HandleAlert(kNeedsDisplayManager); |
// check for Display Manager 2.0 |
else |
{ |
Gestalt(gestaltDisplayMgrVers, (long*)&response); |
gHasDMTwo = (response >= 0x00020000); |
} |
} |
//---------------------------------------------------------------------- |
// |
// InitApp - initialization all the application specific stuff |
// |
// |
//---------------------------------------------------------------------- |
OSErr InitApp(void) |
{ |
OSErr err; |
// init AppleEvents |
err = AEInit(); |
MenuSetup(); |
// Install Display Manager AppleEvent Notification |
err = InstallAEDMNotification(); |
// init any globals |
gWindCount = 1; |
return err; |
} |
//---------------------------------------------------------------------- |
// |
// MenuSetup - |
// |
// |
//---------------------------------------------------------------------- |
void MenuSetup(void) |
{ |
Handle menu; |
menu = GetNewMBar(rMBarID); // get our menus from resource |
SetMenuBar(menu); |
DisposeHandle(menu); |
AddResMenu(GetMHandle(mApple ), 'DRVR'); // add apple menu items |
DrawMenuBar(); |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14