/[dtapublic]/projs/ets/trunk/src/c_tk_base_7_5_w_mods/tkwinint.h
ViewVC logotype

Diff of /projs/ets/trunk/src/c_tk_base_7_5_w_mods/tkwinint.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.69  
changed lines
  Added in v.98

dashley@gmail.com
ViewVC Help
Powered by ViewVC 1.1.25