// ***************************************************************************** // // WindoidDefines.h // // ----------------------------------------------------------------------------- // This file contains only the #define's used to determine how to compile // the Infinity Windoid WDEF. By modifying only this file, you can choose // what capabilities will be included when the WDEF is compiled. // ***************************************************************************** #ifndef __WindoidDefines__ #define __WindoidDefines__ // ***************************************************************************** // Conditional Compilation Options // ----------------------------------------------------------------------------- /* The #define's you may make include: ALLOW_VERT - This determines if the code that is compiled will support a palette that has a vertical title bar along the left side of the window (rather than the top). To create such a window, add one to the varcode that is used. ALLOW_GROW - This option creates a WDEF that supports a grow box. This grow box behaves exactly like that of a standard document window. This addition to the code was provided to me by Jim Petrick. ALLOW_ZOOM - This option creates a windoid that supports a zoombox. To add the zoombox to a windoid, add zoomDocProc to the procID when creating the window. The application is responsible for setting the user state and standard state Rects of the window for zooming. (When a new window is created, both of these are initialized to the bounds of the window. See the README for more information). SMALL_GROW - This option will cause the grow box to be drawn smaller than the standard size. STAYPUT_ZOOM - This option will cause both the user and standard Rects to be changed together, causing the zoomed in and out state to have the same topLeft at all times. If this is not set, the standard and user states have their own 'memories'. (Note: this behavior is not fully tested.) MFI_ZOOM - This will cause the WDEF to handle the zoom box in the way expected by MicroFrontier applications (the same way as version 2.2). That is, the other state that is used is one which has a title bar with a small area (in which the host program displays a label for the windoid). MACAPP_STYLE - This determines if the varcodes that are supported are the one's I consider 'normal' or the ones MacApp's windoid WDEF knows about. Note, however, that this code only supports the 'smaller', title-less version that is available in MacApp's. THINK_STYLE - This creates a version of the WDEF that is totally compatible with the varcodes used in the windoid WDEF included with the THINK environments. Two things are done: varcode 0 gives a normal titlebar, varcode 2 gives a titlebar down the left side, and other varcodes (i.e. 1,3,4,5,6,7) give no titlebar at all. (Note that in my version, a zoom box may also be used with this style.) Also, for the THINK style, ALWAYS_HILITE is also set, as this is how theirs works. ALWAYS_HILITE - This will cause a windoid to be created that will always draw its title bar with gadgets and all. Normally, the windoid will draw the titlebar and frame in gray and empty when the window is not hilighted (like normal windows). Some programs, however, don't keep their windoids properly hilighted, so this will make them appear to always be active. VERS_2_2_COMPATIBLE - This creates a version of the WDEF that is functionally compatible with the version 2.2 windoid that I released. The only issue involved is the way the zooming is handled. THICK_TITLEBAR - Defining this will cause the titlebar of the windoid to be a little taller and include tinges along the outside that match those of document windows. This is similar to Adobe's recent windoids, and also similar to (but better than in my opinion) the floating windows put up by Casper on the AV Macs. This option works especially well if the window has a grow box (the overall appearance of the windoid is better) or if title strings are being shown, as descenders are cut off with the thinner titlebar. TITLE_STRING - Due to popular request and several commercial applications with titles in their floaters, I have implemented this option. When enabled, the windoid's title will appear centered in the titlebar. Currently, this feature does not look at the script and change the size of the titlebar as is recommended for regions with an application font that doesn't work at 9 points. Now, a note: I personally don't like the title showing in the titlebar of a floater, since it makes it look more like a document window. If you like them, though, the ones I have implemented take everything into account. SYS7_OR_LATER - If this flag is set, a version of the WDEF that doesn't support the System 6 coloring will be compiled. Note that this version may crash on systems earlier than 7.0, so your application should make sure to check for System 7 or later. USE_GESTALT - Define this if you want to use Gestalt to determine the System and QuickDraw versions. Otherwise, SysEnvirons is used. (NOTE: using Gestalt in MPW will cause additional glue code to be attached to the WDEF resource, making it larger.) With SYS7_OR_LATER, this is automatically defined. ALIGN_ZOOM - Aligns the zoom box with the titlebar pattern so that it appear aligned the same as the close box (i.e. it will be an extra pixel from the edge of the window) UNIV_HEADERS - Define this if you are compiling the WDEF with Universal headers (the only change made is that if you are using them, the ProcPtr for the DeviceLoop drawing routines get created with UniversalProcPtrs). PBOOK_AWARE - If this is defined, the WDEF will act like the WDEF that is included in the PowerBook enabler. That is, when the window is on the main screen of a PowerBook with a passive matrix display, the titlebar will always be drawn in black and white (to avoid shimmering). ------------------------------------------------------------------------------*/ //#define MACAPP_STYLE #define THICK_TITLEBAR #define TITLE_STRING #define ALLOW_ZOOM //#define ALLOW_VERT //#define ALLOW_GROW //#define SMALL_GROW #define SYS7_OR_LATER #define UNIV_HEADERS #define ALIGN_ZOOM #define PBOOK_AWARE //#define VERS_2_2_COMPATIBLE // ***************************************************************************** // Combinations // These should pretty much remain untouched // ----------------------------------------------------------------------------- #ifdef VERS_2_2_COMPATIBLE #ifndef MFI_ZOOM #define MFI_ZOOM #endif #ifndef STAYPUT_ZOOM #define STAYPUT_ZOOM #endif #endif // ----------------------------------------------------------------------------- #ifdef THINK_STYLE #ifndef ALLOW_VERT #define ALLOW_VERT #endif #ifndef ALWAYS_HILITE #define ALWAYS_HILITE #endif #ifdef MACAPP_STYLE #undef MACAPP_STYLE #endif #endif // ----------------------------------------------------------------------------- #ifdef MACAPP_STYLE #ifdef ALLOW_VERT #undef ALLOW_VERT #endif #ifdef ALWAYS_HILITE #undef ALWAYS_HILITE #endif #ifndef ALLOW_GROW #define ALLOW_GROW #endif #endif // ----------------------------------------------------------------------------- #ifdef SYS7_OR_LATER #ifndef USE_GESTALT #define USE_GESTALT #endif #endif // ***************************************************************************** // System version define for the Apple Interfaces // ----------------------------------------------------------------------------- #ifdef SYS7_OR_LATER #define SystemSevenOrLater 1 #else #define SystemSixOrLater 1 #endif // This is used so that we can cut down on the code size in MPW. If // support for earlier systems is important, get rid of this. // Note: for this define to work under THINK C, MacHeaders cannot be used. // ***************************************************************************** #endif