Import Tk 8.5.15 (as of svn r89086)
This commit is contained in:
206
macosx/tkMacOSXInt.h
Normal file
206
macosx/tkMacOSXInt.h
Normal file
@@ -0,0 +1,206 @@
|
||||
/*
|
||||
* tkMacOSXInt.h --
|
||||
*
|
||||
* Declarations of Macintosh specific shared variables and procedures.
|
||||
*
|
||||
* Copyright (c) 1995-1997 Sun Microsystems, Inc.
|
||||
* Copyright 2001-2009, Apple Inc.
|
||||
* Copyright (c) 2005-2009 Daniel A. Steffen <das@users.sourceforge.net>
|
||||
*
|
||||
* See the file "license.terms" for information on usage and redistribution
|
||||
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
*/
|
||||
|
||||
#ifndef _TKMACINT
|
||||
#define _TKMACINT
|
||||
|
||||
#ifndef _TKINT
|
||||
#include "tkInt.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Include platform specific public interfaces.
|
||||
*/
|
||||
|
||||
#ifndef _TKMAC
|
||||
#include "tkMacOSX.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Define compatibility platform types used in the structures below so that
|
||||
* this header can be included without pulling in the platform headers.
|
||||
*/
|
||||
|
||||
#ifndef _TKMACPRIV
|
||||
# ifndef CGGEOMETRY_H_
|
||||
# ifndef CGFLOAT_DEFINED
|
||||
# if __LP64__
|
||||
# define CGFloat double
|
||||
# else
|
||||
# define CGFloat float
|
||||
# endif
|
||||
# endif
|
||||
# define CGSize struct {CGFloat width; CGFloat height;}
|
||||
# endif
|
||||
# ifndef CGCONTEXT_H_
|
||||
# define CGContextRef void *
|
||||
# endif
|
||||
# ifndef CGCOLOR_H_
|
||||
# define CGColorRef void *
|
||||
# endif
|
||||
# ifndef __HISHAPE__
|
||||
# define HIShapeRef void *
|
||||
# endif
|
||||
# ifndef _APPKITDEFINES_H
|
||||
# define NSView void *
|
||||
# endif
|
||||
#endif
|
||||
|
||||
struct TkWindowPrivate {
|
||||
TkWindow *winPtr; /* Ptr to tk window or NULL if Pixmap */
|
||||
NSView *view;
|
||||
CGContextRef context;
|
||||
int xOff; /* X offset from toplevel window */
|
||||
int yOff; /* Y offset from toplevel window */
|
||||
CGSize size;
|
||||
HIShapeRef visRgn; /* Visible region of window */
|
||||
HIShapeRef aboveVisRgn; /* Visible region of window & its children */
|
||||
HIShapeRef drawRgn; /* Clipped drawing region */
|
||||
int referenceCount; /* Don't delete toplevel until children are
|
||||
* gone. */
|
||||
struct TkWindowPrivate *toplevel;
|
||||
/* Pointer to the toplevel datastruct. */
|
||||
int flags; /* Various state see defines below. */
|
||||
};
|
||||
typedef struct TkWindowPrivate MacDrawable;
|
||||
|
||||
/*
|
||||
* Defines use for the flags field of the MacDrawable data structure.
|
||||
*/
|
||||
|
||||
#define TK_SCROLLBAR_GROW 0x01
|
||||
#define TK_CLIP_INVALID 0x02
|
||||
#define TK_HOST_EXISTS 0x04
|
||||
#define TK_DRAWN_UNDER_MENU 0x08
|
||||
#define TK_FOCUSED_VIEW 0x10
|
||||
#define TK_IS_PIXMAP 0x20
|
||||
#define TK_IS_BW_PIXMAP 0x40
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
Tk_MacOSXEmbedRegisterWinProc *registerWinProc;
|
||||
Tk_MacOSXEmbedGetGrafPortProc *getPortProc;
|
||||
Tk_MacOSXEmbedMakeContainerExistProc *containerExistProc;
|
||||
Tk_MacOSXEmbedGetClipProc *getClipProc;
|
||||
Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc;
|
||||
} TkMacOSXEmbedHandler;
|
||||
|
||||
MODULE_SCOPE TkMacOSXEmbedHandler *tkMacOSXEmbedHandler;
|
||||
|
||||
/*
|
||||
* GC CGColorRef cache for tkMacOSXColor.c
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
unsigned long cachedForeground;
|
||||
CGColorRef cachedForegroundColor;
|
||||
unsigned long cachedBackground;
|
||||
CGColorRef cachedBackgroundColor;
|
||||
} TkpGCCache;
|
||||
|
||||
MODULE_SCOPE TkpGCCache *TkpGetGCCache(GC gc);
|
||||
MODULE_SCOPE void TkpInitGCCache(GC gc);
|
||||
MODULE_SCOPE void TkpFreeGCCache(GC gc);
|
||||
|
||||
/*
|
||||
* Undef compatibility platform types defined above.
|
||||
*/
|
||||
|
||||
#ifndef _TKMACPRIV
|
||||
# ifndef CGGEOMETRY_H_
|
||||
# ifndef CGFLOAT_DEFINED
|
||||
# undef CGFloat
|
||||
# endif
|
||||
# undef CGSize
|
||||
# endif
|
||||
# ifndef CGCONTEXT_H_
|
||||
# undef CGContextRef
|
||||
# endif
|
||||
# ifndef CGCOLOR_H_
|
||||
# undef CGColorRef
|
||||
# endif
|
||||
# ifndef __HISHAPE__
|
||||
# undef HIShapeRef
|
||||
# endif
|
||||
# ifndef _APPKITDEFINES_H
|
||||
# undef NSView
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Defines used for TkMacOSXInvalidateWindow
|
||||
*/
|
||||
|
||||
#define TK_WINDOW_ONLY 0
|
||||
#define TK_PARENT_WINDOW 1
|
||||
|
||||
/*
|
||||
* Accessor for the privatePtr flags field for the TK_HOST_EXISTS field
|
||||
*/
|
||||
|
||||
#define TkMacOSXHostToplevelExists(tkwin) \
|
||||
(((TkWindow *) (tkwin))->privatePtr->toplevel->flags & TK_HOST_EXISTS)
|
||||
|
||||
/*
|
||||
* Defines used for the flags argument to TkGenWMConfigureEvent.
|
||||
*/
|
||||
|
||||
#define TK_LOCATION_CHANGED 1
|
||||
#define TK_SIZE_CHANGED 2
|
||||
#define TK_BOTH_CHANGED 3
|
||||
#define TK_MACOSX_HANDLE_EVENT_IMMEDIATELY 1024
|
||||
|
||||
/*
|
||||
* Defines for tkTextDisp.c
|
||||
*/
|
||||
|
||||
#define TK_LAYOUT_WITH_BASE_CHUNKS 1
|
||||
#define TK_DRAW_IN_CONTEXT 1
|
||||
|
||||
/*
|
||||
* Prototypes of internal procs not in the stubs table.
|
||||
*/
|
||||
|
||||
MODULE_SCOPE void TkMacOSXDefaultStartupScript(void);
|
||||
#if 0
|
||||
MODULE_SCOPE int XSetClipRectangles(Display *d, GC gc, int clip_x_origin,
|
||||
int clip_y_origin, XRectangle* rectangles, int n, int ordering);
|
||||
#endif
|
||||
MODULE_SCOPE void TkpClipDrawableToRect(Display *display, Drawable d, int x,
|
||||
int y, int width, int height);
|
||||
MODULE_SCOPE void TkpRetainRegion(TkRegion r);
|
||||
MODULE_SCOPE void TkpReleaseRegion(TkRegion r);
|
||||
|
||||
/*
|
||||
* Include the stubbed internal platform-specific API.
|
||||
*/
|
||||
|
||||
#include "tkIntPlatDecls.h"
|
||||
|
||||
#endif /* _TKMACINT */
|
||||
Reference in New Issue
Block a user