Made the GUSI options work again with GUSI 2.

This commit is contained in:
Jack Jansen 2000-04-21 23:53:37 +00:00
parent 6dd9fc1a2c
commit ee0810403d
3 changed files with 43 additions and 6 deletions

View File

@ -127,6 +127,10 @@ PyObject *PyMac_Buildwide(wide *); /* Convert wide to PyObject */
void PyMac_InitApplet(void); /* Initialize and run an Applet */
void PyMac_Initialize(void); /* Initialize function for embedding Python */
#ifdef USE_GUSI2
short PyMac_OpenPrefFile(void); /* From macgetpath.c, open and return preference file */
#endif
/* From macfiletype.c: */
long getfiletype(char *); /* Get file type */

View File

@ -5,9 +5,11 @@
#define GUSI_SOURCE
#include <GUSIConfig.h>
#include <sys/cdefs.h>
#include <Resources.h>
#include "Python.h"
#include "macglue.h"
#include "pythonresources.h"
static void
PyMac_GUSISpin(bool wait)
@ -79,13 +81,44 @@ void GUSISetupDevices()
GUSIConfiguration::FileSuffix sSuffices[] = {
"", '????', '????'
};
extern "C" void GUSISetupConfig()
{
GUSIConfiguration * config =
GUSIConfiguration::CreateInstance(GUSIConfiguration::kNoResource);
Handle h;
short oldrh, prefrh = -1;
short resource_id = GUSIConfiguration::kNoResource;
config->ConfigureDefaultTypeCreator('TEXT', 'TEXT');
oldrh = CurResFile();
/* Try override from the application resource fork */
UseResFile(PyMac_AppRefNum);
h = Get1Resource('GU\267I', GUSIOPTIONSOVERRIDE_ID);
if ( h ) {
resource_id = GUSIOPTIONSOVERRIDE_ID;
} else {
/* Next try normal resource from preference file */
prefrh = PyMac_OpenPrefFile();
h = Get1Resource('GU\267I', GUSIOPTIONS_ID);
if ( h ) {
resource_id = GUSIOPTIONS_ID;
} else {
/* Finally try normal resource from application */
if ( prefrh != -1 ) {
CloseResFile(prefrh);
prefrh = -1;
}
resource_id = GUSIOPTIONS_ID;
}
}
/* Now we have the right resource file topmost and the id. Init GUSI. */
GUSIConfiguration * config =
GUSIConfiguration::CreateInstance(resource_id);
/* Finally restore the old resource file */
if ( prefrh != -1) CloseResFile(prefrh);
UseResFile(oldrh);
config->ConfigureDefaultTypeCreator('ttxt', 'TEXT');
config->ConfigureSuffices(
sizeof(sSuffices)/sizeof(GUSIConfiguration::FileSuffix)-1, sSuffices);
config->ConfigureAutoInitGraf(false);

View File

@ -189,7 +189,7 @@ Py_GetPath()
/*
** Open/create the Python Preferences file, return the handle
*/
static short
short
PyMac_OpenPrefFile()
{
AliasHandle handle;
@ -467,4 +467,4 @@ PyMac_SetGUSIOptions()
if ( prefrh != -1) CloseResFile(prefrh);
UseResFile(oldrh);
}
#endif /* USE_GUSI */
#endif /* USE_GUSI1 */