/[dtapublic]/projs/trunk/shared_source/tk_base/tkwinint.h
ViewVC logotype

Contents of /projs/trunk/shared_source/tk_base/tkwinint.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 42 - (show annotations) (download)
Fri Oct 14 01:50:00 2016 UTC (8 years, 1 month ago) by dashley
File MIME type: text/plain
File size: 4444 byte(s)
Move shared source code to commonize.
1 /* $Header: /cvsroot/esrg/sfesrg/esrgpcpj/shared/tk_base/tkwinint.h,v 1.1.1.1 2001/06/13 05:13:35 dtashley Exp $ */
2
3 /*
4 * tkWinInt.h --
5 *
6 * This file contains declarations that are shared among the
7 * Windows-specific parts of Tk, but aren't used by the rest of
8 * Tk.
9 *
10 * Copyright (c) 1995-1997 Sun Microsystems, Inc.
11 * Copyright (c) 1998-2000 by Scriptics Corporation.
12 *
13 * See the file "license.terms" for information on usage and redistribution
14 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
15 *
16 * RCS: @(#) $Id: tkwinint.h,v 1.1.1.1 2001/06/13 05:13:35 dtashley Exp $
17 */
18
19 #ifndef _TKWININT
20 #define _TKWININT
21
22 #ifndef _TKINT
23 #include "tkInt.h"
24 #endif
25
26 /*
27 * Include platform specific public interfaces.
28 */
29
30 #ifndef _TKWIN
31 #include "tkWin.h"
32 #endif
33
34 #ifndef _TKPORT
35 #include "tkPort.h"
36 #endif
37
38
39 /*
40 * Define constants missing from older Win32 SDK header files.
41 */
42
43 #ifndef WS_EX_TOOLWINDOW
44 #define WS_EX_TOOLWINDOW 0x00000080L
45 #endif
46
47 /*
48 * The TkWinDCState is used to save the state of a device context
49 * so that it can be restored later.
50 */
51
52 typedef struct TkWinDCState {
53 HPALETTE palette;
54 int bkmode;
55 } TkWinDCState;
56
57 /*
58 * The TkWinDrawable is the internal implementation of an X Drawable (either
59 * a Window or a Pixmap). The following constants define the valid Drawable
60 * types.
61 */
62
63 #define TWD_BITMAP 1
64 #define TWD_WINDOW 2
65 #define TWD_WINDC 3
66
67 typedef struct {
68 int type;
69 HWND handle;
70 TkWindow *winPtr;
71 } TkWinWindow;
72
73 typedef struct {
74 int type;
75 HBITMAP handle;
76 Colormap colormap;
77 int depth;
78 } TkWinBitmap;
79
80 typedef struct {
81 int type;
82 HDC hdc;
83 }TkWinDC;
84
85 typedef union {
86 int type;
87 TkWinWindow window;
88 TkWinBitmap bitmap;
89 TkWinDC winDC;
90 } TkWinDrawable;
91
92 /*
93 * The following macros are used to retrieve internal values from a Drawable.
94 */
95
96 #define TkWinGetHWND(w) (((TkWinDrawable *) w)->window.handle)
97 #define TkWinGetWinPtr(w) (((TkWinDrawable *) w)->window.winPtr)
98 #define TkWinGetHBITMAP(w) (((TkWinDrawable *) w)->bitmap.handle)
99 #define TkWinGetColormap(w) (((TkWinDrawable *) w)->bitmap.colormap)
100 #define TkWinGetHDC(w) (((TkWinDrawable *) w)->winDC.hdc)
101
102 /*
103 * The following structure is used to encapsulate palette information.
104 */
105
106 typedef struct {
107 HPALETTE palette; /* Palette handle used when drawing. */
108 UINT size; /* Number of entries in the palette. */
109 int stale; /* 1 if palette needs to be realized,
110 * otherwise 0. If the palette is stale,
111 * then an idle handler is scheduled to
112 * realize the palette. */
113 Tcl_HashTable refCounts; /* Hash table of palette entry reference counts
114 * indexed by pixel value. */
115 } TkWinColormap;
116
117 /*
118 * The following macro retrieves the Win32 palette from a colormap.
119 */
120
121 #define TkWinGetPalette(colormap) (((TkWinColormap *) colormap)->palette)
122
123 /*
124 * The following macros define the class names for Tk Window types.
125 */
126
127 #define TK_WIN_TOPLEVEL_CLASS_NAME "TkTopLevel"
128 #define TK_WIN_CHILD_CLASS_NAME "TkChild"
129
130 /*
131 * The following variable is a translation table between X gc functions and
132 * Win32 raster op modes.
133 */
134
135 extern int tkpWinRopModes[];
136
137 /*
138 * The following defines are used with TkWinGetBorderPixels to get the
139 * extra 2 border colors from a Tk_3DBorder.
140 */
141
142 #define TK_3D_LIGHT2 TK_3D_DARK_GC+1
143 #define TK_3D_DARK2 TK_3D_DARK_GC+2
144
145 /*
146 * Internal procedures used by more than one source file.
147 */
148
149 #include "tkIntPlatDecls.h"
150
151 /*
152 * We need to specially add the TkWinChildProc because of the special
153 * prototype it has (doesn't fit into stubs schema)
154 */
155 #ifdef BUILD_tk
156 #undef TCL_STORAGE_CLASS
157 #define TCL_STORAGE_CLASS DLLEXPORT
158 #endif
159
160 extern LRESULT CALLBACK TkWinChildProc _ANSI_ARGS_((HWND hwnd, UINT message,
161 WPARAM wParam, LPARAM lParam));
162
163 /*
164 * Special proc needed as tsd accessor function between
165 * tkWinX.c:GenerateXEvent and tkWinClipboard.c:UpdateClipboard
166 */
167 extern void TkWinUpdatingClipboard(int mode);
168
169 #undef TCL_STORAGE_CLASS
170 #define TCL_STORAGE_CLASS DLLIMPORT
171
172 #endif /* _TKWININT */
173
174
175 /* $History: tkWinInt.h $
176 *
177 * ***************** Version 1 *****************
178 * User: Dtashley Date: 1/02/01 Time: 3:14a
179 * Created in $/IjuScripter, IjuConsole/Source/Tk Base
180 * Initial check-in.
181 */
182
183 /* End of TKWININT.H */

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25