diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1999-12-07 23:08:10 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1999-12-07 23:08:10 (GMT) |
commit | 8f5725af60cc26787bf61549fc780537f287ebc0 (patch) | |
tree | 9bc93b64dba5256755cbef4c62ca15a84830efd8 | |
parent | cbdff766d2be1e065c76dc571552ebe3747dcf70 (diff) | |
download | cpython-8f5725af60cc26787bf61549fc780537f287ebc0.zip cpython-8f5725af60cc26787bf61549fc780537f287ebc0.tar.gz cpython-8f5725af60cc26787bf61549fc780537f287ebc0.tar.bz2 |
First bits and pieces of appearance support: an init routine, a global flag PyMac_AppearanceCompliant (exported thru MacOS). If USE_APPEARANCE
is off the code is disabled (but the variables are still there, set to 0).
-rw-r--r-- | Mac/Include/macglue.h | 1 | ||||
-rw-r--r-- | Mac/Include/pythonresources.h | 28 | ||||
-rw-r--r-- | Mac/Modules/macosmodule.c | 3 | ||||
-rw-r--r-- | Mac/Python/macglue.c | 5 | ||||
-rw-r--r-- | Mac/Python/macmain.c | 20 | ||||
-rw-r--r-- | Mac/mwerks/mwerks_small_config.h | 1 |
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 |