1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
/*
* tkWinInt.h --
*
* This file contains declarations that are shared among the
* Windows-specific parts of Tk, but aren't used by the rest of
* Tk.
*
* Copyright (c) 1995-1997 Sun Microsystems, Inc.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* RCS: @(#) $Id: tkWinInt.h,v 1.1 2004/01/07 22:32:38 barre Exp $
*/
#ifndef _TKWININT
#define _TKWININT
#ifndef _TKINT
#include "tkInt.h"
#endif
/*
* Include platform specific public interfaces.
*/
#ifndef _TKWIN
#include "tkWin.h"
#endif
#ifndef _TKPORT
#include "tkPort.h"
#endif
/*
* Define constants missing from older Win32 SDK header files.
*/
#ifndef WS_EX_TOOLWINDOW
#define WS_EX_TOOLWINDOW 0x00000080L
#endif
typedef struct TkFontAttributes TkFontAttributes;
/*
* The TkWinDCState is used to save the state of a device context
* so that it can be restored later.
*/
typedef struct TkWinDCState {
HPALETTE palette;
} TkWinDCState;
/*
* The TkWinDrawable is the internal implementation of an X Drawable (either
* a Window or a Pixmap). The following constants define the valid Drawable
* types.
*/
#define TWD_BITMAP 1
#define TWD_WINDOW 2
#define TWD_WINDC 3
typedef struct {
int type;
HWND handle;
TkWindow *winPtr;
} TkWinWindow;
typedef struct {
int type;
HBITMAP handle;
Colormap colormap;
int depth;
} TkWinBitmap;
typedef struct {
int type;
HDC hdc;
}TkWinDC;
typedef union {
int type;
TkWinWindow window;
TkWinBitmap bitmap;
TkWinDC winDC;
} TkWinDrawable;
/*
* The following macros are used to retrieve internal values from a Drawable.
*/
#define TkWinGetHWND(w) (((TkWinDrawable *) w)->window.handle)
#define TkWinGetWinPtr(w) (((TkWinDrawable*)w)->window.winPtr)
#define TkWinGetHBITMAP(w) (((TkWinDrawable*)w)->bitmap.handle)
#define TkWinGetColormap(w) (((TkWinDrawable*)w)->bitmap.colormap)
#define TkWinGetHDC(w) (((TkWinDrawable *) w)->winDC.hdc)
/*
* The following structure is used to encapsulate palette information.
*/
typedef struct {
HPALETTE palette; /* Palette handle used when drawing. */
UINT size; /* Number of entries in the palette. */
int stale; /* 1 if palette needs to be realized,
* otherwise 0. If the palette is stale,
* then an idle handler is scheduled to
* realize the palette. */
Tcl_HashTable refCounts; /* Hash table of palette entry reference counts
* indexed by pixel value. */
} TkWinColormap;
/*
* The following macro retrieves the Win32 palette from a colormap.
*/
#define TkWinGetPalette(colormap) (((TkWinColormap *) colormap)->palette)
/*
* The following macros define the class names for Tk Window types.
*/
#define TK_WIN_TOPLEVEL_CLASS_NAME "TkTopLevel"
#define TK_WIN_CHILD_CLASS_NAME "TkChild"
/*
* The following variable indicates whether we are restricted to Win32s
* GDI calls.
*/
extern int tkpIsWin32s;
/*
* The following variable is a translation table between X gc functions and
* Win32 raster op modes.
*/
extern int tkpWinRopModes[];
/*
* The following defines are used with TkWinGetBorderPixels to get the
* extra 2 border colors from a Tk_3DBorder.
*/
#define TK_3D_LIGHT2 TK_3D_DARK_GC+1
#define TK_3D_DARK2 TK_3D_DARK_GC+2
/*
* Internal procedures used by more than one source file.
*/
#include "tkIntPlatDecls.h"
extern LRESULT CALLBACK TkWinChildProc _ANSI_ARGS_((HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam));
#endif /* _TKWININT */
|