diff options
Diffstat (limited to 'macosx/tkMacOSXInt.h')
-rw-r--r-- | macosx/tkMacOSXInt.h | 180 |
1 files changed, 71 insertions, 109 deletions
diff --git a/macosx/tkMacOSXInt.h b/macosx/tkMacOSXInt.h index 289f47b..9ff9069 100644 --- a/macosx/tkMacOSXInt.h +++ b/macosx/tkMacOSXInt.h @@ -6,10 +6,10 @@ * Copyright (c) 1995-1997 Sun Microsystems, Inc. * Copyright 2001, Apple Computer, Inc. * - * See the file "license.terms" for information on usage and redistribution of - * this file, and for a DISCLAIMER OF ALL WARRANTIES. + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXInt.h,v 1.21 2007/04/13 14:51:18 dkf Exp $ + * RCS: @(#) $Id: tkMacOSXInt.h,v 1.22 2007/04/21 19:06:38 hobbs Exp $ */ #ifndef _TKMACINT @@ -32,63 +32,64 @@ #endif struct TkWindowPrivate { - TkWindow *winPtr; /* Ptr to tk window or NULL if Pixmap */ - CGrafPtr grafPtr; + TkWindow *winPtr; /* Ptr to tk window or NULL if Pixmap */ + CGrafPtr grafPtr; ControlRef rootControl; - int xOff; /* X offset from toplevel window */ - int yOff; /* Y offset from toplevel window */ + int xOff; /* X offset from toplevel window */ + int yOff; /* Y offset from toplevel window */ RgnHandle clipRgn; /* Visible region of window */ RgnHandle aboveClipRgn; /* Visible region of window & it's children */ int referenceCount; /* Don't delete toplevel until children are * gone. */ - struct TkWindowPrivate *toplevel; - /* Pointer to the toplevel datastruct. */ + struct TkWindowPrivate *toplevel; /* Pointer to the toplevel + * datastruct. */ int flags; /* Various state see defines below. */ }; typedef struct TkWindowPrivate MacDrawable; /* - * This list is used to keep track of toplevel windows that have a Mac window - * attached. This is useful for several things, not the least of which is - * maintaining floating windows. + * This list is used to keep track of toplevel windows that have a Mac + * window attached. This is useful for several things, not the least + * of which is maintaining floating windows. */ typedef struct TkMacOSXWindowList { - struct TkMacOSXWindowList *nextPtr; - /* The next window in the list. */ - TkWindow *winPtr; /* This window */ + struct TkMacOSXWindowList *nextPtr; /* The next window in the list. */ + TkWindow *winPtr; /* This window */ } TkMacOSXWindowList; /* * Defines use for the flags field of the MacDrawable data structure. */ - + #define TK_SCROLLBAR_GROW 1 #define TK_CLIP_INVALID 2 #define TK_HOST_EXISTS 4 #define TK_DRAWN_UNDER_MENU 8 /* - * I am reserving TK_EMBEDDED = 0x100 in the MacDrawable flags. This is - * defined in tk.h. We need to duplicate the TK_EMBEDDED flag in the TkWindow - * structure for the window, but in the MacWin. This way we can still tell - * what the correct port is after the TKWindow structure has been freed. This - * actually happens when you bind destroy of a toplevel to Destroy of a child. + * I am reserving TK_EMBEDDED = 0x100 in the MacDrawable flags + * This is defined in tk.h. We need to duplicate the TK_EMBEDDED flag in the + * TkWindow structure for the window, but in the MacWin. This way we can + * still tell what the correct port is after the TKWindow structure has been + * freed. This actually happens when you bind destroy of a toplevel to + * Destroy of a child. */ /* - * This structure is for handling Netscape-type in process embedding where Tk - * does not control the top-level. It contains various functions that are - * needed by Mac specific routines, like TkMacOSXGetDrawablePort. The - * definitions of the function types are in tkMacOSX.h. + * This structure is for handling Netscape-type in process + * embedding where Tk does not control the top-level. It contains + * various functions that are needed by Mac specific routines, like + * TkMacOSXGetDrawablePort. The definitions of the function types + * are in tkMacOSX.h. */ typedef struct { - Tk_MacOSXEmbedRegisterWinProc *registerWinProc; - Tk_MacOSXEmbedGetGrafPortProc *getPortProc; - Tk_MacOSXEmbedMakeContainerExistProc *containerExistProc; - Tk_MacOSXEmbedGetClipProc *getClipProc; - Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc; + Tk_MacOSXEmbedRegisterWinProc *registerWinProc; + Tk_MacOSXEmbedGetGrafPortProc *getPortProc; + Tk_MacOSXEmbedMakeContainerExistProc *containerExistProc; + Tk_MacOSXEmbedGetClipProc *getClipProc; + Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc; } TkMacOSXEmbedHandler; MODULE_SCOPE TkMacOSXEmbedHandler *tkMacOSXEmbedHandler; @@ -96,7 +97,7 @@ MODULE_SCOPE TkMacOSXEmbedHandler *tkMacOSXEmbedHandler; /* * Defines used for TkMacOSXInvalidateWindow */ - + #define TK_WINDOW_ONLY 0 #define TK_PARENT_WINDOW 1 @@ -119,104 +120,65 @@ MODULE_SCOPE TkMacOSXEmbedHandler *tkMacOSXEmbedHandler; * Defines for tkTextDisp.c */ -#define TK_LAYOUT_WITH_BASE_CHUNKS 1 -#define TK_DRAW_IN_CONTEXT 1 +#define TK_LAYOUT_WITH_BASE_CHUNKS 1 +#define TK_DRAW_IN_CONTEXT 1 /* - * Variables shared among various Mac Tk modules but are not exported to the - * outside world. + * Variables shared among various Mac Tk modules but are not + * exported to the outside world. */ /* * Globals shared among Macintosh Tk */ -MODULE_SCOPE MenuHandle tkCurrentAppleMenu; - /* Handle to current Apple Menu */ -MODULE_SCOPE MenuHandle tkAppleMenu; - /* Handle to default Apple Menu */ -MODULE_SCOPE MenuHandle tkFileMenu; - /* Handles to menus */ -MODULE_SCOPE MenuHandle tkEditMenu; - /* Handles to menus */ -MODULE_SCOPE RgnHandle tkMenuCascadeRgn; - /* A region to clip with. */ -MODULE_SCOPE int tkUseMenuCascadeRgn; - /* If this is 1, clipping code should - * intersect tkMenuCascadeRgn before drawing - * occurs. tkMenuCascadeRgn will only be valid - * when the value of this variable is 1. */ -MODULE_SCOPE int tkPictureIsOpen; - /* If this is 1, we are drawing to a picture - * The clipping should then be done relative - * to the bounds of the picture rather than - * the window. As of OS X.0.4, something is - * seriously wrong: The clipping bounds only - * seem to work if the top,left values are 0,0 - * The destination rectangle for CopyBits - * should also have top,left values of 0,0 */ +MODULE_SCOPE MenuHandle tkCurrentAppleMenu; /* Handle to current Apple Menu */ +MODULE_SCOPE MenuHandle tkAppleMenu; /* Handle to default Apple Menu */ +MODULE_SCOPE MenuHandle tkFileMenu; /* Handles to menus */ +MODULE_SCOPE MenuHandle tkEditMenu; /* Handles to menus */ +MODULE_SCOPE RgnHandle tkMenuCascadeRgn;/* A region to clip with. */ +MODULE_SCOPE int tkUseMenuCascadeRgn; /* If this is 1, clipping code + * should intersect tkMenuCascadeRgn + * before drawing occurs. + * tkMenuCascadeRgn will only + * be valid when the value of this + * variable is 1. */ +MODULE_SCOPE int tkPictureIsOpen; /* If this is 1, we are drawing to a + * picture The clipping should then be + * done relative to the bounds of the + * picture rather than the window. As + * of OS X.0.4, something is seriously + * wrong: The clipping bounds only + * seem to work if the top,left values + * are 0,0 The destination rectangle + * for CopyBits should also have + * top,left values of 0,0 + */ MODULE_SCOPE TkMacOSXWindowList *tkMacOSXWindowListPtr; - /* The list of toplevels */ + /* The list of toplevels */ MODULE_SCOPE Tcl_Encoding TkMacOSXCarbonEncoding; -MODULE_SCOPE void TkMacOSXDisplayChanged(Display *display); -MODULE_SCOPE int TkMacOSXUseAntialiasedText(Tcl_Interp *interp, - int enable); -MODULE_SCOPE void TkMacOSXInitCarbonEvents(Tcl_Interp *interp); -MODULE_SCOPE int TkMacOSXInitCGDrawing(Tcl_Interp *interp, int enable, - int antiAlias); -MODULE_SCOPE void TkMacOSXInitKeyboard(Tcl_Interp *interp); -MODULE_SCOPE void TkMacOSXDefaultStartupScript(void); -MODULE_SCOPE int TkMacOSXGenerateFocusEvent(Window window, - int activeFlag); +MODULE_SCOPE void TkMacOSXDisplayChanged(Display *display); +MODULE_SCOPE int TkMacOSXUseAntialiasedText(Tcl_Interp *interp, int enable); +MODULE_SCOPE void TkMacOSXInitCarbonEvents(Tcl_Interp *interp); +MODULE_SCOPE int TkMacOSXInitCGDrawing(Tcl_Interp *interp, int enable, int antiAlias); +MODULE_SCOPE void TkMacOSXInitKeyboard(Tcl_Interp *interp); +MODULE_SCOPE void TkMacOSXDefaultStartupScript(void); +MODULE_SCOPE int TkMacOSXGenerateFocusEvent( Window window, int activeFlag); MODULE_SCOPE WindowClass TkMacOSXWindowClass(TkWindow *winPtr); -MODULE_SCOPE int TkMacOSXIsWindowZoomed(TkWindow *winPtr); -MODULE_SCOPE int TkGenerateButtonEventForXPointer(Window window); -MODULE_SCOPE int TkMacOSXCompareColors(unsigned long c1, - unsigned long c2); -MODULE_SCOPE void * TkMacOSXGetNamedSymbol(const char *module, - const char *symbol); - -/* - * Macro to abstract common use of TkMacOSXGetNamedSymbol to initialize named - * symbols. - */ +MODULE_SCOPE int TkMacOSXIsWindowZoomed(TkWindow *winPtr); +MODULE_SCOPE int TkGenerateButtonEventForXPointer(Window window); +MODULE_SCOPE int TkMacOSXCompareColors(unsigned long c1, unsigned long c2); +MODULE_SCOPE void* TkMacOSXGetNamedSymbol(const char* module, const char* symbol); +/* Macro to abstract common use of TkMacOSXGetNamedSymbol to initialize named symbols */ #define TkMacOSXInitNamedSymbol(module, ret, symbol, ...) \ static ret (* symbol)(__VA_ARGS__) = (void*)(-1L); \ if (symbol == (void*)(-1L)) { \ symbol = TkMacOSXGetNamedSymbol(STRINGIFY(module), STRINGIFY(_##symbol));\ } -/* - * Macro to make handling failed events a little bit less verbose. Assumes - * that error values are always in the (local) variable 'err'. - */ - -#ifdef TK_MAC_DEBUG -#define LOG_MSG(msg, ...) fprintf(stderr, msg "\n", __VA_ARGS__) -#define LOG_ON_ERROR(msg) \ - if (err != noErr) { \ - fprintf(stderr, ##msg " failed, %d\n", (int) err); \ - } -#else -#define LOG_MSG(msg, ...) /* do nothing */ -#define LOG_ON_ERROR(msg) /* do nothing */ -#endif - -/* - * Include the stubbed internal platform-specific API. - */ - #include "tkIntPlatDecls.h" #endif /* _TKMACINT */ - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ |