summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
Diffstat (limited to 'Mac')
-rw-r--r--Mac/Include/macglue.h1
-rw-r--r--Mac/Include/pythonresources.h28
-rw-r--r--Mac/Modules/macosmodule.c3
-rw-r--r--Mac/Python/macglue.c5
-rw-r--r--Mac/Python/macmain.c20
-rw-r--r--Mac/mwerks/mwerks_small_config.h1
6 files changed, 45 insertions, 13 deletions
diff --git a/Mac/Include/macglue.h b/Mac/Include/macglue.h
index b40d18a..5e39044 100644
--- a/Mac/Include/macglue.h
+++ b/Mac/Include/macglue.h
@@ -72,6 +72,7 @@ extern char PyMac_ApplicationPath[]; /* Application location (from macargv.c) *
extern OSErr PyMac_init_application_location Py_PROTO((void)); /* Init the above */
extern OSErr PyMac_GetFullPath Py_PROTO((FSSpec *, char *)); /* convert fsspec->path (macargv.c) */
extern int PyMac_GetArgv Py_PROTO((char ***, int)); /* Get argc, argv (from macargv.c) */
+extern int PyMac_AppearanceCompliant; /* True if in appearance support mode */
extern PyObject *PyMac_OSErrException; /* Exception for OSErr */
PyObject *PyMac_GetOSErrException(void); /* Initialize & return it */
diff --git a/Mac/Include/pythonresources.h b/Mac/Include/pythonresources.h
index 8f6c227..a696b86 100644
--- a/Mac/Include/pythonresources.h
+++ b/Mac/Include/pythonresources.h
@@ -41,24 +41,26 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
** shared ppc python, in the core dynamic library)
*/
+#define BASE_ID 228
+
/* The alert for "No Python directory, where is it?" (OBSOLETE) */
-#define NOPYTHON_ALERT 228
+#define NOPYTHON_ALERT BASE_ID+0
#define YES_ITEM 1
#define NO_ITEM 2
#define CURWD_ITEM 3
/* The alert for "this is an applet template" */
-#define NOPYC_ALERT 229
+#define NOPYC_ALERT BASE_ID+1
/* The dialog for our GetDirectory and PromptGetFile call */
-#define GETDIR_ID 230 /* Resource ID for our "get directory" */
-#define GETFILEPROMPT_ID 232 /* Resource id for prompted get file */
-#define PROMPT_ITEM 10 /* The prompt, at the top */
-#define SELECTCUR_ITEM 11 /* "Select current directory" button */
+#define GETDIR_ID BASE_ID+2 /* Resource ID for our "get directory" */
+#define GETFILEPROMPT_ID BASE_ID+4 /* Resource id for prompted get file */
+#define PROMPT_ITEM 10 /* The prompt, at the top */
+#define SELECTCUR_ITEM 11 /* "Select current directory" button */
/* The dialog for interactive options */
-#define OPT_DIALOG 231 /* Resource ID for dialog */
+#define OPT_DIALOG BASE_ID+3 /* Resource ID for dialog */
#define OPT_OK 1
#define OPT_CANCEL 2
#define OPT_INSPECT 3
@@ -74,21 +76,21 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define OPT_HELP 16
/* Dialog for 'No preferences directory' */
-#define NOPREFDIR_ID 233
+#define NOPREFDIR_ID BASE_ID+5
/* Dialog for 'Bad or outdated preferences' */
-#define BADPREFERENCES_ID 234
+#define BADPREFERENCES_ID BASE_ID+6
#define BADPREF_DELETE 1
#define BADPREF_CONTINUE 2
#define BADPREF_QUIT 3
/* Dialog for 'Bad preference file' */
-#define BADPREFFILE_ID 235
+#define BADPREFFILE_ID BASE_ID+7
/* About box */
-#define ABOUT_ID 236
+#define ABOUT_ID BASE_ID+8
/* No preferences file name resource */
-#define NOPREFNAME_ID 237
+#define NOPREFNAME_ID BASE_ID+9
/* EditPythonPrefs range. Needed here to forestall conflicts with applets */
#define EDITPYTHONPREFS_MIN 508
@@ -168,4 +170,4 @@ typedef struct PyMac_PrefRecord {
/* From macgetpath.c: */
void PyMac_PreferenceOptions Py_PROTO((PyMac_PrefRecord *));
char * PyMac_GetPythonDir Py_PROTO((void));
-#endif \ No newline at end of file
+#endif
diff --git a/Mac/Modules/macosmodule.c b/Mac/Modules/macosmodule.c
index 14f807c..586d675 100644
--- a/Mac/Modules/macosmodule.c
+++ b/Mac/Modules/macosmodule.c
@@ -734,5 +734,8 @@ initMacOS()
if( PyDict_SetItemString(d, "string_id_to_buffer", Py_BuildValue("i", off)) != 0)
Py_FatalError("Can't define MacOS.string_id_to_buffer");
}
+ if (PyDict_SetItemString(d, "AppearanceCompliant",
+ Py_BuildValue("i", PyMac_AppearanceCompliant)) != 0)
+ Py_FatalError("can't define MacOS.AppearanceCompliant");
}
diff --git a/Mac/Python/macglue.c b/Mac/Python/macglue.c
index fa27c79..4b4c021 100644
--- a/Mac/Python/macglue.c
+++ b/Mac/Python/macglue.c
@@ -155,6 +155,11 @@ static int upp_inited = 0;
*/
static PyObject *python_event_handler;
+/*
+** Set to true if we're appearance-compliant
+*/
+int PyMac_AppearanceCompliant;
+
#ifdef USE_GUSI
/*
** GUSI (1.6.0 and earlier, at the least) do not set the MacOS idea of
diff --git a/Mac/Python/macmain.c b/Mac/Python/macmain.c
index 0fdcb51..db39e18 100644
--- a/Mac/Python/macmain.c
+++ b/Mac/Python/macmain.c
@@ -37,6 +37,10 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <Windows.h>
#include <Fonts.h>
#include <Balloons.h>
+#ifdef USE_APPEARANCE
+#include <Gestalt.h>
+#include <Appearance.h>
+#endif /* USE_APPEARANCE */
#ifdef __MWERKS__
#include <SIOUX.h>
#define USE_SIOUX
@@ -64,6 +68,21 @@ PyMac_PrefRecord options;
static void Py_Main Py_PROTO((int, char **)); /* Forward */
void PyMac_Exit Py_PROTO((int)); /* Forward */
+static void init_appearance()
+{
+#ifdef USE_APPEARANCE
+ OSErr err;
+ SInt32 response;
+
+ err = Gestalt(gestaltAppearanceAttr,&response);
+ if ( err ) goto no_appearance;
+ if ( !(response&(1<<gestaltAppearanceExists)) ) goto no_appearance;
+ /* XXXX Should we check the version? Compat-mode? */
+ PyMac_AppearanceCompliant = 1;
+no_appearance:
+ return;
+#endif /* USE_APPEARANCE */
+}
/* Initialize the Mac toolbox world */
static void
@@ -80,6 +99,7 @@ init_mac_world()
InitDialogs((long)0);
InitMenus();
InitCursor();
+ init_appearance();
#endif
}
diff --git a/Mac/mwerks/mwerks_small_config.h b/Mac/mwerks/mwerks_small_config.h
index d3ba307..cee8d06 100644
--- a/Mac/mwerks/mwerks_small_config.h
+++ b/Mac/mwerks/mwerks_small_config.h
@@ -23,6 +23,7 @@
#define USE_MALLOC_DEBUG /* Enable range checking and other malloc debugging */
/* #define USE_GDBM /* Include the gdbm module */
/* #define USE_ZLIB /* Include the zlib module */
+#define USE_APPEARANCE /* Enable Appearance support */
#ifdef __powerc
#define USE_CACHE_ALIGNED 8 /* Align on 32-byte boundaries for 604 */
#endif