-/* $Id: mac.c,v 1.8 2002/12/28 22:22:43 ben Exp $ */
+/* $Id: mac.c,v 1.15 2003/01/04 00:13:18 ben Exp $ */
/*
* Copyright (c) 1999 Ben Harris
* All rights reserved.
#include <Devices.h>
#include <DiskInit.h>
#include <Gestalt.h>
+#include <LowMem.h>
#include <Resources.h>
#include <Script.h>
#include <TextCommon.h>
if (&RegisterAppearanceClient == kUnresolvedCFragSymbolAddress)
mac_gestalts.apprvers = 0;
#endif
+#if TARGET_CPU_68K
+ mac_gestalts.cntlattr = 0;
+ mac_gestalts.windattr = 0;
+#else
/* Mac OS 8.5 Control Manager (proportional scrollbars)? */
- if (Gestalt(gestaltControlMgrAttr, &mac_gestalts.cntlattr) != noErr)
+ if (Gestalt(gestaltControlMgrAttr, &mac_gestalts.cntlattr) != noErr ||
+ &SetControlViewSize == kUnresolvedCFragSymbolAddress)
mac_gestalts.cntlattr = 0;
/* Mac OS 8.5 Window Manager? */
- if (Gestalt(gestaltWindowMgrAttr, &mac_gestalts.windattr) != noErr)
+ if (Gestalt(gestaltWindowMgrAttr, &mac_gestalts.windattr) != noErr ||
+ &SetWindowContentColor == kUnresolvedCFragSymbolAddress)
mac_gestalts.windattr = 0;
+#endif
/* Text Encoding Conversion Manager? */
if (
#if TARGET_RT_MAC_CFM
mac_gestalts.encvvers = 0;
else {
mac_gestalts.encvvers = (*ti)->tecVersion;
+ mac_gestalts.uncvattr = (*ti)->tecUnicodeConverterFeatures;
DisposeHandle((Handle)ti);
}
windows.about = NULL;
windows.licence = NULL;
+ {
+ short vol;
+ long dirid;
+
+ /* Set the default directory for loading and saving settings. */
+ /* XXX Should we create it? */
+ if (get_session_dir(FALSE, &vol, &dirid) == noErr) {
+ LMSetSFSaveDisk(-vol);
+ LMSetCurDirStore(dirid);
+ }
+ }
init_ucs();
}
mac_clickterm(window, event);
break;
case wAbout:
- if (DialogSelect(event, &(DialogPtr)window, &item))
+ if (DialogSelect(event, &window, &item))
switch (item) {
case wiAboutLicence:
mac_openlicence();
break;
}
break;
+ case wSettings:
+ mac_clickdlg(window, event);
+ break;
}
}
case wTerminal:
mac_activateterm(window, active);
break;
+ case wSettings:
+ mac_activatedlg(window, event);
+ break;
case wAbout:
mac_activateabout(window, event);
break;
mac_updateterm(window);
break;
case wAbout:
+ case wSettings:
BeginUpdate(window);
UpdateDialog(window, window->visRgn);
EndUpdate(window);
*/
static int mac_windowtype(WindowPtr window) {
int kind;
+ long refcon;
if (window == NULL)
return wNone;
return wDA;
if (GetWVariant(window) == zoomDocProc)
return wTerminal;
- return GetWRefCon(window);
+ refcon = GetWRefCon(window);
+ if (refcon < 1024)
+ return refcon;
+ else
+ return wSettings;
}
/*
case iNew:
mac_newsession();
goto done;
+ case iOpen:
+ mac_opensession();
+ goto done;
case iClose:
mac_closewindow(window);
goto done;
static void mac_shutdown(void) {
+#if !TARGET_RT_MAC_CFM
if (mac_gestalts.encvvers != 0)
TerminateUnicodeConverter();
+#endif
exit(0);
}