1 #ifndef TKINTER_H
2 #define TKINTER_H
3 
4 /* This header is used to share some macros between _tkinter.c and
5  * tkappinit.c.
6  * Be sure to include tk.h before including this header so
7  * TK_HEX_VERSION is properly defined. */
8 
9 /* TK_RELEASE_LEVEL is always one of the following:
10  *  TCL_ALPHA_RELEASE   0
11  *  TCL_BETA_RELEASE    1
12  *  TCL_FINAL_RELEASE   2
13  */
14 #define TK_HEX_VERSION ((TK_MAJOR_VERSION << 24) | \
15                         (TK_MINOR_VERSION << 16) | \
16                         (TK_RELEASE_LEVEL << 8) | \
17                         (TK_RELEASE_SERIAL << 0))
18 
19 /* TK_VERSION_HEX packs fields in wrong order, not suitable for comparing of
20  * non-final releases.  Left for backward compatibility.
21  */
22 #define TK_VERSION_HEX ((TK_MAJOR_VERSION << 24) | \
23                         (TK_MINOR_VERSION << 16) | \
24                         (TK_RELEASE_SERIAL << 8) | \
25                         (TK_RELEASE_LEVEL << 0))
26 
27 /* Protect Tk 8.4.13 and older from a deadlock that happens when trying
28  * to load tk after a failed attempt. */
29 #if TK_HEX_VERSION < 0x0804020e
30 #define TKINTER_PROTECT_LOADTK
31 #define TKINTER_LOADTK_ERRMSG \
32         "Calling Tk_Init again after a previous call failed might deadlock"
33 #endif
34 
35 #endif /* !TKINTER_H */
36