File indexing completed on 2026-09-12 09:32:08
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _TKINT
0016 #define _TKINT
0017
0018 #ifndef _TKPORT
0019 #include "tkPort.h"
0020 #endif
0021
0022 #define TK_OPTION_ENUM_VAR ((int)(sizeof(Tk_OptionType)&(sizeof(int)-1))<<6)
0023
0024
0025
0026
0027
0028
0029
0030 #include <stdio.h>
0031 #ifdef HAVE_SYS_TYPES_H
0032 # include <sys/types.h>
0033 #endif
0034 #ifdef HAVE_SYS_PARAM_H
0035 # include <sys/param.h>
0036 #endif
0037 #ifdef BYTE_ORDER
0038 # ifdef BIG_ENDIAN
0039 # if BYTE_ORDER == BIG_ENDIAN
0040 # undef WORDS_BIGENDIAN
0041 # define WORDS_BIGENDIAN 1
0042 # endif
0043 # endif
0044 # ifdef LITTLE_ENDIAN
0045 # if BYTE_ORDER == LITTLE_ENDIAN
0046 # undef WORDS_BIGENDIAN
0047 # endif
0048 # endif
0049 #endif
0050
0051
0052
0053
0054
0055
0056 #ifndef MODULE_SCOPE
0057 # ifdef __cplusplus
0058 # define MODULE_SCOPE extern "C"
0059 # else
0060 # define MODULE_SCOPE extern
0061 # endif
0062 #endif
0063
0064 #ifndef JOIN
0065 # define JOIN(a,b) JOIN1(a,b)
0066 # define JOIN1(a,b) a##b
0067 #endif
0068
0069 #ifndef TCL_UNUSED
0070 # if defined(__cplusplus)
0071 # define TCL_UNUSED(T) T
0072 # elif defined(__GNUC__) && (__GNUC__ > 2)
0073 # define TCL_UNUSED(T) T JOIN(dummy, __LINE__) __attribute__((unused))
0074 # else
0075 # define TCL_UNUSED(T) T JOIN(dummy, __LINE__)
0076 # endif
0077 #endif
0078
0079 #if defined(_WIN32) && (TCL_MAJOR_VERSION < 9) && (TCL_MINOR_VERSION < 7)
0080 # if TCL_UTF_MAX > 3
0081 # define Tcl_WCharToUtfDString(a,b,c) Tcl_WinTCharToUtf((TCHAR *)(a),(b)*sizeof(WCHAR),c)
0082 # define Tcl_UtfToWCharDString(a,b,c) (WCHAR *)Tcl_WinUtfToTChar(a,b,c)
0083 # else
0084 # define Tcl_WCharToUtfDString ((char * (*)(const WCHAR *, int len, Tcl_DString *))Tcl_UniCharToUtfDString)
0085 # define Tcl_UtfToWCharDString ((WCHAR * (*)(const char *, int len, Tcl_DString *))Tcl_UtfToUniCharDString)
0086 # endif
0087 #endif
0088
0089 #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
0090 # define TKFLEXARRAY
0091 #elif defined(__GNUC__) && (__GNUC__ > 2)
0092 # define TKFLEXARRAY 0
0093 #else
0094 # define TKFLEXARRAY 1
0095 #endif
0096
0097 #ifndef Tcl_GetParent
0098 # define Tcl_GetParent Tcl_GetMaster
0099 #endif
0100
0101
0102
0103
0104
0105
0106
0107 #if !defined(INT2PTR) && !defined(PTR2INT)
0108 # if defined(HAVE_INTPTR_T) || defined(intptr_t)
0109 # define INT2PTR(p) ((void*)(intptr_t)(p))
0110 # define PTR2INT(p) ((int)(intptr_t)(p))
0111 # else
0112 # define INT2PTR(p) ((void*)(p))
0113 # define PTR2INT(p) ((int)(p))
0114 # endif
0115 #endif
0116 #if !defined(UINT2PTR) && !defined(PTR2UINT)
0117 # if defined(HAVE_UINTPTR_T) || defined(uintptr_t)
0118 # define UINT2PTR(p) ((void*)(uintptr_t)(p))
0119 # define PTR2UINT(p) ((unsigned int)(uintptr_t)(p))
0120 # else
0121 # define UINT2PTR(p) ((void*)(p))
0122 # define PTR2UINT(p) ((unsigned int)(p))
0123 # endif
0124 #endif
0125
0126 #ifndef TCL_Z_MODIFIER
0127 # if defined(_WIN64)
0128 # define TCL_Z_MODIFIER "I"
0129 # elif defined(__GNUC__) && !defined(_WIN32)
0130 # define TCL_Z_MODIFIER "z"
0131 # else
0132 # define TCL_Z_MODIFIER ""
0133 # endif
0134 #endif
0135
0136
0137
0138
0139
0140 typedef struct TkColormap TkColormap;
0141 typedef struct TkFontAttributes TkFontAttributes;
0142 typedef struct TkGrabEvent TkGrabEvent;
0143 typedef struct TkpCursor_ *TkpCursor;
0144 typedef struct TkRegion_ *TkRegion;
0145 typedef struct TkStressedCmap TkStressedCmap;
0146 typedef struct TkBindInfo_ *TkBindInfo;
0147 typedef struct Busy *TkBusy;
0148
0149
0150
0151
0152
0153
0154
0155 typedef struct TkCursor {
0156 Tk_Cursor cursor;
0157 Display *display;
0158
0159 int resourceRefCount;
0160
0161
0162
0163
0164
0165
0166
0167
0168 int objRefCount;
0169
0170 Tcl_HashTable *otherTable;
0171
0172 Tcl_HashEntry *hashPtr;
0173
0174 Tcl_HashEntry *idHashPtr;
0175
0176 struct TkCursor *nextPtr;
0177
0178
0179
0180 } TkCursor;
0181
0182
0183
0184
0185
0186
0187
0188
0189 typedef struct TkCaret {
0190 struct TkWindow *winPtr;
0191
0192 int x;
0193 int y;
0194 int height;
0195 } TkCaret;
0196
0197
0198
0199
0200
0201
0202
0203 typedef struct TkDisplay {
0204 Display *display;
0205 struct TkDisplay *nextPtr;
0206 char *name;
0207
0208 Time lastEventTime;
0209
0210
0211
0212
0213
0214
0215 int borderInit;
0216 Tcl_HashTable borderTable;
0217
0218
0219
0220
0221
0222
0223 int atomInit;
0224
0225 Tcl_HashTable nameTable;
0226 Tcl_HashTable atomTable;
0227
0228
0229
0230
0231
0232 int bindInfoStale;
0233
0234
0235 unsigned int modeModMask;
0236
0237
0238 unsigned int metaModMask;
0239
0240
0241 unsigned int altModMask;
0242
0243
0244 enum {LU_IGNORE, LU_CAPS, LU_SHIFT} lockUsage;
0245
0246
0247 int numModKeyCodes;
0248
0249 KeyCode *modKeyCodes;
0250
0251
0252
0253
0254
0255
0256
0257 int bitmapInit;
0258 int bitmapAutoNumber;
0259 Tcl_HashTable bitmapNameTable;
0260
0261
0262 Tcl_HashTable bitmapIdTable;
0263
0264 Tcl_HashTable bitmapDataTable;
0265
0266
0267
0268
0269
0270
0271
0272
0273
0274 int numIdSearches;
0275 int numSlowSearches;
0276
0277
0278
0279
0280
0281 int colorInit;
0282 TkStressedCmap *stressPtr;
0283
0284
0285 Tcl_HashTable colorNameTable;
0286
0287
0288 Tcl_HashTable colorValueTable;
0289
0290
0291
0292
0293
0294
0295
0296 int cursorInit;
0297 Tcl_HashTable cursorNameTable;
0298
0299
0300 Tcl_HashTable cursorDataTable;
0301
0302
0303 Tcl_HashTable cursorIdTable;
0304
0305
0306 char cursorString[20];
0307 Font cursorFont;
0308
0309
0310
0311
0312
0313
0314 struct TkErrorHandler *errorPtr;
0315
0316
0317
0318 int deleteCount;
0319
0320
0321
0322
0323
0324
0325
0326
0327 struct TkWindowEvent *delayedMotionPtr;
0328
0329
0330
0331
0332
0333
0334
0335
0336
0337
0338
0339 int focusDebug;
0340
0341 struct TkWindow *implicitWinPtr;
0342
0343
0344
0345
0346 struct TkWindow *focusPtr;
0347
0348
0349
0350
0351
0352
0353
0354
0355
0356
0357
0358
0359 Tcl_HashTable gcValueTable;
0360
0361 Tcl_HashTable gcIdTable;
0362 int gcInit;
0363
0364
0365
0366
0367
0368
0369 Tcl_HashTable maintainHashTable;
0370
0371
0372
0373 int geomInit;
0374
0375
0376
0377
0378
0379
0380 #define TkGetContainer(tkwin) (Tk_TopWinHierarchy((TkWindow *)tkwin) ? NULL : \
0381 (((TkWindow *)tkwin)->maintainerPtr != NULL ? \
0382 ((TkWindow *)tkwin)->maintainerPtr : ((TkWindow *)tkwin)->parentPtr))
0383
0384
0385
0386
0387
0388 Tcl_HashTable uidTable;
0389 int uidInit;
0390
0391
0392
0393
0394
0395 struct TkWindow *grabWinPtr;
0396
0397 struct TkWindow *eventualGrabWinPtr;
0398
0399
0400
0401 struct TkWindow *buttonWinPtr;
0402
0403
0404
0405 struct TkWindow *serverWinPtr;
0406
0407
0408
0409
0410
0411
0412
0413 TkGrabEvent *firstGrabEventPtr;
0414
0415
0416
0417
0418
0419 TkGrabEvent *lastGrabEventPtr;
0420
0421
0422 int grabFlags;
0423
0424
0425
0426
0427
0428
0429 int gridInit;
0430 Tcl_HashTable gridHashTable;
0431
0432
0433
0434
0435
0436
0437 int imageId;
0438
0439
0440
0441
0442
0443 int postCommandGeneration;
0444
0445
0446
0447
0448
0449 int packInit;
0450 Tcl_HashTable packerHashTable;
0451
0452
0453
0454
0455
0456
0457
0458 int placeInit;
0459 Tcl_HashTable masterTable;
0460
0461 Tcl_HashTable slaveTable;
0462
0463
0464
0465
0466
0467
0468 struct TkSelectionInfo *selectionInfoPtr;
0469
0470
0471
0472
0473 Atom multipleAtom;
0474
0475 Atom incrAtom;
0476 Atom targetsAtom;
0477 Atom timestampAtom;
0478 Atom textAtom;
0479 Atom compoundTextAtom;
0480 Atom applicationAtom;
0481 Atom windowAtom;
0482 Atom clipboardAtom;
0483 Atom utf8Atom;
0484 Atom atomPairAtom;
0485
0486 Tk_Window clipWindow;
0487
0488
0489
0490 int clipboardActive;
0491
0492 struct TkMainInfo *clipboardAppPtr;
0493
0494 struct TkClipboardTarget *clipTargetPtr;
0495
0496
0497
0498
0499
0500
0501
0502
0503
0504 Tk_Window commTkwin;
0505
0506
0507
0508 Atom commProperty;
0509 Atom registryProperty;
0510
0511 Atom appNameProperty;
0512
0513
0514
0515
0516
0517
0518 struct TkWmInfo *firstWmPtr;
0519 struct TkWmInfo *foregroundWmPtr;
0520
0521
0522
0523
0524
0525
0526 TkColormap *cmapPtr;
0527
0528
0529
0530
0531
0532
0533 #ifdef TK_USE_INPUT_METHODS
0534 XIM inputMethod;
0535 XIMStyle inputStyle;
0536 XFontSet inputXfs;
0537 #endif
0538 Tcl_HashTable winTable;
0539
0540 int refCount;
0541
0542
0543
0544
0545
0546
0547
0548
0549 int mouseButtonState;
0550
0551 Window mouseButtonWindow;
0552
0553 Tk_Window warpWindow;
0554 Tk_Window warpMainwin;
0555
0556 int warpX;
0557 int warpY;
0558
0559
0560
0561
0562
0563 unsigned int flags;
0564
0565 TkCaret caret;
0566
0567
0568 int iconDataSize;
0569 unsigned char *iconDataPtr;
0570 #ifdef TK_USE_INPUT_METHODS
0571 int ximGeneration;
0572 #endif
0573 } TkDisplay;
0574
0575
0576
0577
0578
0579
0580
0581
0582
0583
0584
0585
0586
0587 #define TK_DISPLAY_COLLAPSE_MOTION_EVENTS (1 << 0)
0588 #define TK_DISPLAY_USE_IM (1 << 1)
0589 #define TK_DISPLAY_WM_TRACING (1 << 3)
0590 #define TK_DISPLAY_IN_WARP (1 << 4)
0591 #define TK_DISPLAY_USE_XKB (1 << 5)
0592
0593
0594
0595
0596
0597
0598 typedef struct TkErrorHandler {
0599 TkDisplay *dispPtr;
0600 unsigned long firstRequest;
0601
0602 unsigned long lastRequest;
0603
0604
0605
0606 int error;
0607
0608 int request;
0609
0610
0611 int minorCode;
0612
0613
0614 Tk_ErrorProc *errorProc;
0615
0616 ClientData clientData;
0617 struct TkErrorHandler *nextPtr;
0618
0619
0620 } TkErrorHandler;
0621
0622
0623
0624
0625
0626
0627 typedef struct TkEventHandler {
0628 unsigned long mask;
0629 Tk_EventProc *proc;
0630
0631 ClientData clientData;
0632 struct TkEventHandler *nextPtr;
0633
0634
0635 } TkEventHandler;
0636
0637
0638
0639
0640
0641
0642
0643 typedef struct TkMainInfo {
0644 int refCount;
0645
0646
0647
0648
0649
0650 struct TkWindow *winPtr;
0651 Tcl_Interp *interp;
0652 Tcl_HashTable nameTable;
0653
0654
0655 long deletionEpoch;
0656 Tk_BindingTable bindingTable;
0657
0658
0659 TkBindInfo bindInfo;
0660
0661 struct TkFontInfo *fontInfoPtr;
0662
0663
0664
0665
0666
0667
0668
0669 struct TkToplevelFocusInfo *tlFocusPtr;
0670
0671
0672
0673 struct TkDisplayFocusInfo *displayFocusPtr;
0674
0675
0676
0677
0678
0679 struct ElArray *optionRootPtr;
0680
0681
0682
0683 Tcl_HashTable imageTable;
0684
0685 int strictMotif;
0686
0687 int alwaysShowSelection;
0688
0689 struct TkMainInfo *nextPtr;
0690
0691 Tcl_HashTable busyTable;
0692 Tcl_ObjCmdProc *tclUpdateObjProc;
0693
0694
0695
0696 unsigned int ttkNbTabsStickBit;
0697
0698 } TkMainInfo;
0699
0700
0701
0702
0703
0704
0705
0706 typedef struct {
0707 const void *source;
0708 int width, height;
0709 int native;
0710
0711 } TkPredefBitmap;
0712
0713
0714
0715
0716
0717
0718
0719
0720
0721
0722
0723 typedef struct TkWindow {
0724
0725
0726
0727
0728 Display *display;
0729 TkDisplay *dispPtr;
0730
0731 int screenNum;
0732
0733 Visual *visual;
0734
0735 int depth;
0736 Window window;
0737
0738
0739 struct TkWindow *childList;
0740
0741
0742 struct TkWindow *lastChildPtr;
0743
0744
0745 struct TkWindow *parentPtr;
0746
0747
0748
0749 struct TkWindow *nextPtr;
0750
0751
0752 TkMainInfo *mainPtr;
0753
0754
0755
0756
0757
0758
0759
0760
0761
0762
0763 char *pathName;
0764
0765
0766
0767
0768
0769 Tk_Uid nameUid;
0770
0771 Tk_Uid classUid;
0772
0773
0774
0775
0776
0777
0778
0779
0780
0781 XWindowChanges changes;
0782 unsigned int dirtyChanges;
0783
0784 XSetWindowAttributes atts;
0785 unsigned long dirtyAtts;
0786
0787
0788 unsigned int flags;
0789
0790
0791
0792
0793
0794
0795
0796 TkEventHandler *handlerList;
0797
0798 #ifdef TK_USE_INPUT_METHODS
0799 XIC inputContext;
0800 #endif
0801
0802
0803
0804
0805
0806
0807 ClientData *tagPtr;
0808
0809
0810 int numTags;
0811
0812
0813
0814
0815
0816 int optionLevel;
0817
0818
0819
0820
0821
0822
0823
0824 struct TkSelHandler *selHandlerList;
0825
0826
0827
0828
0829
0830
0831
0832 const Tk_GeomMgr *geomMgrPtr;
0833
0834
0835 ClientData geomData;
0836 int reqWidth, reqHeight;
0837
0838
0839 int internalBorderLeft;
0840
0841
0842
0843
0844
0845
0846
0847
0848
0849 struct TkWmInfo *wmInfoPtr;
0850
0851
0852
0853
0854
0855
0856
0857
0858
0859 const Tk_ClassProcs *classProcsPtr;
0860 ClientData instanceData;
0861
0862
0863
0864
0865
0866 struct TkWindowPrivate *privatePtr;
0867
0868
0869
0870
0871
0872
0873 int internalBorderRight;
0874 int internalBorderTop;
0875 int internalBorderBottom;
0876
0877 int minReqWidth;
0878 int minReqHeight;
0879 #ifdef TK_USE_INPUT_METHODS
0880 int ximGeneration;
0881 #endif
0882 char *geomMgrName;
0883 struct TkWindow *maintainerPtr;
0884
0885
0886
0887 } TkWindow;
0888
0889
0890
0891
0892
0893 MODULE_SCOPE const char *const tkStateStrings[];
0894 MODULE_SCOPE const char *const tkCompoundStrings[];
0895
0896
0897
0898
0899
0900
0901 typedef struct {
0902 XKeyEvent keyEvent;
0903 #ifdef _WIN32
0904 char trans_chars[XMaxTransChars];
0905
0906 unsigned char nbytes;
0907 #elif !defined(MAC_OSX_TK)
0908 char *charValuePtr;
0909
0910
0911
0912
0913 int charValueLen;
0914
0915 KeySym keysym;
0916
0917 #endif
0918 } TkKeyEvent;
0919
0920
0921
0922
0923
0924 #define TK_MAKE_MENU_TEAROFF 0
0925 #define TK_MAKE_MENU_POPUP 1
0926 #define TK_MAKE_MENU_DROPDOWN 2
0927
0928
0929
0930
0931
0932
0933 typedef struct TkEnsemble {
0934 const char *name;
0935 Tcl_ObjCmdProc *proc;
0936 const struct TkEnsemble *subensemble;
0937 } TkEnsemble;
0938
0939
0940
0941
0942
0943
0944
0945 typedef struct TkStateMap {
0946 int numKey;
0947 const char *strKey;
0948 } TkStateMap;
0949
0950
0951
0952
0953
0954
0955 typedef struct TkpClipMask {
0956 int type;
0957 union {
0958 Pixmap pixmap;
0959 TkRegion region;
0960 } value;
0961 } TkpClipMask;
0962
0963 #define TKP_CLIP_PIXMAP 0
0964 #define TKP_CLIP_REGION 1
0965
0966
0967
0968
0969
0970 #define TK_GRAB_NONE 0
0971 #define TK_GRAB_IN_TREE 1
0972 #define TK_GRAB_ANCESTOR 2
0973 #define TK_GRAB_EXCLUDED 3
0974
0975
0976
0977
0978
0979
0980
0981 #define TK_ISOLATE_END 32
0982
0983
0984
0985
0986
0987
0988
0989 #define UCHAR(c) ((unsigned char) (c))
0990
0991
0992
0993
0994
0995
0996 #define EMBEDDED_APP_WANTS_FOCUS (NotifyNormal + 20)
0997
0998
0999
1000
1001
1002
1003
1004 #define META_MASK (AnyModifier<<1)
1005 #define ALT_MASK (AnyModifier<<2)
1006 #define EXTENDED_MASK (AnyModifier<<3)
1007
1008
1009
1010
1011
1012
1013 #define ALL_BUTTONS \
1014 (Button1Mask|Button2Mask|Button3Mask|Button4Mask|Button5Mask)
1015
1016
1017 MODULE_SCOPE unsigned TkGetButtonMask(unsigned);
1018
1019
1020
1021
1022
1023
1024 MODULE_SCOPE const Tcl_ObjType tkBorderObjType;
1025 MODULE_SCOPE const Tcl_ObjType tkBitmapObjType;
1026 MODULE_SCOPE const Tcl_ObjType tkColorObjType;
1027 MODULE_SCOPE const Tcl_ObjType tkCursorObjType;
1028 MODULE_SCOPE const Tcl_ObjType tkFontObjType;
1029 MODULE_SCOPE const Tcl_ObjType tkStateKeyObjType;
1030 MODULE_SCOPE const Tcl_ObjType tkTextIndexType;
1031
1032
1033
1034
1035
1036
1037 MODULE_SCOPE const Tk_SmoothMethod tkBezierSmoothMethod;
1038 MODULE_SCOPE Tk_ImageType tkBitmapImageType;
1039 MODULE_SCOPE Tk_PhotoImageFormat tkImgFmtGIF;
1040 MODULE_SCOPE void (*tkHandleEventProc) (XEvent* eventPtr);
1041 MODULE_SCOPE Tk_PhotoImageFormat tkImgFmtPNG;
1042 MODULE_SCOPE Tk_PhotoImageFormat tkImgFmtPPM;
1043 MODULE_SCOPE TkMainInfo *tkMainWindowList;
1044 MODULE_SCOPE Tk_ImageType tkPhotoImageType;
1045 MODULE_SCOPE Tcl_HashTable tkPredefBitmapTable;
1046
1047 MODULE_SCOPE const char *const tkWebColors[20];
1048
1049
1050
1051
1052
1053
1054 #ifndef PI
1055 #ifdef M_PI
1056 #define PI M_PI
1057 #else
1058 #define PI 3.14159265358979323846
1059 #endif
1060 #endif
1061
1062
1063
1064
1065
1066 #if defined(PURIFY) && defined(__clang__)
1067 #if __has_feature(attribute_analyzer_noreturn) && \
1068 !defined(Tcl_Panic) && defined(Tcl_Panic_TCL_DECLARED)
1069 void Tcl_Panic(const char *, ...) __attribute__((analyzer_noreturn));
1070 #endif
1071 #if !defined(CLANG_ASSERT)
1072 #define CLANG_ASSERT(x) assert(x)
1073 #endif
1074 #elif !defined(CLANG_ASSERT)
1075 #define CLANG_ASSERT(x)
1076 #endif
1077
1078
1079
1080
1081
1082
1083
1084 #define GENERATED_FOCUS_EVENT_MAGIC ((Bool) 0x547321ac)
1085
1086
1087
1088
1089
1090 #include "tkIntDecls.h"
1091
1092 #ifdef __cplusplus
1093 extern "C" {
1094 #endif
1095
1096
1097
1098
1099
1100 MODULE_SCOPE int Ttk_Init(Tcl_Interp *interp);
1101 MODULE_SCOPE void Ttk_TkDestroyedHandler(Tcl_Interp *interp);
1102
1103
1104
1105
1106
1107
1108 MODULE_SCOPE int Tk_BellObjCmd(ClientData clientData,
1109 Tcl_Interp *interp, int objc,
1110 Tcl_Obj *const objv[]);
1111 MODULE_SCOPE int Tk_BindObjCmd(ClientData clientData,
1112 Tcl_Interp *interp, int objc,
1113 Tcl_Obj *const objv[]);
1114 MODULE_SCOPE int Tk_BindtagsObjCmd(ClientData clientData,
1115 Tcl_Interp *interp, int objc,
1116 Tcl_Obj *const objv[]);
1117 MODULE_SCOPE int Tk_BusyObjCmd(ClientData clientData,
1118 Tcl_Interp *interp, int objc,
1119 Tcl_Obj *const objv[]);
1120 MODULE_SCOPE int Tk_ButtonObjCmd(ClientData clientData,
1121 Tcl_Interp *interp, int objc,
1122 Tcl_Obj *const objv[]);
1123 MODULE_SCOPE int Tk_CanvasObjCmd(ClientData clientData,
1124 Tcl_Interp *interp, int argc,
1125 Tcl_Obj *const objv[]);
1126 MODULE_SCOPE int Tk_CheckbuttonObjCmd(ClientData clientData,
1127 Tcl_Interp *interp, int objc,
1128 Tcl_Obj *const objv[]);
1129 MODULE_SCOPE int Tk_ClipboardObjCmd(ClientData clientData,
1130 Tcl_Interp *interp, int objc,
1131 Tcl_Obj *const objv[]);
1132 MODULE_SCOPE int Tk_ChooseColorObjCmd(ClientData clientData,
1133 Tcl_Interp *interp, int objc,
1134 Tcl_Obj *const objv[]);
1135 MODULE_SCOPE int Tk_ChooseDirectoryObjCmd(ClientData clientData,
1136 Tcl_Interp *interp, int objc,
1137 Tcl_Obj *const objv[]);
1138 MODULE_SCOPE int Tk_DestroyObjCmd(ClientData clientData,
1139 Tcl_Interp *interp, int objc,
1140 Tcl_Obj *const objv[]);
1141 MODULE_SCOPE int Tk_EntryObjCmd(ClientData clientData,
1142 Tcl_Interp *interp, int objc,
1143 Tcl_Obj *const objv[]);
1144 MODULE_SCOPE int Tk_EventObjCmd(ClientData clientData,
1145 Tcl_Interp *interp, int objc,
1146 Tcl_Obj *const objv[]);
1147 MODULE_SCOPE int Tk_FrameObjCmd(ClientData clientData,
1148 Tcl_Interp *interp, int objc,
1149 Tcl_Obj *const objv[]);
1150 MODULE_SCOPE int Tk_FocusObjCmd(ClientData clientData,
1151 Tcl_Interp *interp, int objc,
1152 Tcl_Obj *const objv[]);
1153 MODULE_SCOPE int Tk_FontObjCmd(ClientData clientData,
1154 Tcl_Interp *interp, int objc,
1155 Tcl_Obj *const objv[]);
1156 MODULE_SCOPE int Tk_GetOpenFileObjCmd(ClientData clientData,
1157 Tcl_Interp *interp, int objc,
1158 Tcl_Obj *const objv[]);
1159 MODULE_SCOPE int Tk_GetSaveFileObjCmd(ClientData clientData,
1160 Tcl_Interp *interp, int objc,
1161 Tcl_Obj *const objv[]);
1162 MODULE_SCOPE int Tk_GrabObjCmd(ClientData clientData,
1163 Tcl_Interp *interp, int objc,
1164 Tcl_Obj *const objv[]);
1165 MODULE_SCOPE int Tk_GridObjCmd(ClientData clientData,
1166 Tcl_Interp *interp, int objc,
1167 Tcl_Obj *const objv[]);
1168 MODULE_SCOPE int Tk_ImageObjCmd(ClientData clientData,
1169 Tcl_Interp *interp, int objc,
1170 Tcl_Obj *const objv[]);
1171 MODULE_SCOPE int Tk_LabelObjCmd(ClientData clientData,
1172 Tcl_Interp *interp, int objc,
1173 Tcl_Obj *const objv[]);
1174 MODULE_SCOPE int Tk_LabelframeObjCmd(ClientData clientData,
1175 Tcl_Interp *interp, int objc,
1176 Tcl_Obj *const objv[]);
1177 MODULE_SCOPE int Tk_ListboxObjCmd(ClientData clientData,
1178 Tcl_Interp *interp, int objc,
1179 Tcl_Obj *const objv[]);
1180 MODULE_SCOPE int Tk_LowerObjCmd(ClientData clientData,
1181 Tcl_Interp *interp, int objc,
1182 Tcl_Obj *const objv[]);
1183 MODULE_SCOPE int Tk_MenuObjCmd(ClientData clientData,
1184 Tcl_Interp *interp, int objc,
1185 Tcl_Obj *const objv[]);
1186 MODULE_SCOPE int Tk_MenubuttonObjCmd(ClientData clientData,
1187 Tcl_Interp *interp, int objc,
1188 Tcl_Obj *const objv[]);
1189 MODULE_SCOPE int Tk_MessageBoxObjCmd(ClientData clientData,
1190 Tcl_Interp *interp, int objc,
1191 Tcl_Obj *const objv[]);
1192 MODULE_SCOPE int Tk_MessageObjCmd(ClientData clientData,
1193 Tcl_Interp *interp, int objc,
1194 Tcl_Obj *const objv[]);
1195 MODULE_SCOPE int Tk_PanedWindowObjCmd(ClientData clientData,
1196 Tcl_Interp *interp, int objc,
1197 Tcl_Obj *const objv[]);
1198 MODULE_SCOPE int Tk_OptionObjCmd(ClientData clientData,
1199 Tcl_Interp *interp, int objc,
1200 Tcl_Obj *const objv[]);
1201 MODULE_SCOPE int Tk_PackObjCmd(ClientData clientData,
1202 Tcl_Interp *interp, int objc,
1203 Tcl_Obj *const objv[]);
1204 MODULE_SCOPE int Tk_PlaceObjCmd(ClientData clientData,
1205 Tcl_Interp *interp, int objc,
1206 Tcl_Obj *const objv[]);
1207 MODULE_SCOPE int Tk_RadiobuttonObjCmd(ClientData clientData,
1208 Tcl_Interp *interp, int objc,
1209 Tcl_Obj *const objv[]);
1210 MODULE_SCOPE int Tk_RaiseObjCmd(ClientData clientData,
1211 Tcl_Interp *interp, int objc,
1212 Tcl_Obj *const objv[]);
1213 MODULE_SCOPE int Tk_ScaleObjCmd(ClientData clientData,
1214 Tcl_Interp *interp, int objc,
1215 Tcl_Obj *const objv[]);
1216 MODULE_SCOPE int Tk_ScrollbarObjCmd(ClientData clientData,
1217 Tcl_Interp *interp, int objc,
1218 Tcl_Obj *const objv[]);
1219 MODULE_SCOPE int Tk_SelectionObjCmd(ClientData clientData,
1220 Tcl_Interp *interp, int objc,
1221 Tcl_Obj *const objv[]);
1222 MODULE_SCOPE int Tk_SendObjCmd(ClientData clientData,
1223 Tcl_Interp *interp,int objc,
1224 Tcl_Obj *const objv[]);
1225 MODULE_SCOPE int Tk_SpinboxObjCmd(ClientData clientData,
1226 Tcl_Interp *interp, int objc,
1227 Tcl_Obj *const objv[]);
1228 MODULE_SCOPE int Tk_TextObjCmd(ClientData clientData,
1229 Tcl_Interp *interp, int objc,
1230 Tcl_Obj *const objv[]);
1231 MODULE_SCOPE int Tk_TkwaitObjCmd(ClientData clientData,
1232 Tcl_Interp *interp, int objc,
1233 Tcl_Obj *const objv[]);
1234 MODULE_SCOPE int Tk_ToplevelObjCmd(ClientData clientData,
1235 Tcl_Interp *interp, int objc,
1236 Tcl_Obj *const objv[]);
1237 MODULE_SCOPE int Tk_UpdateObjCmd(ClientData clientData,
1238 Tcl_Interp *interp, int objc,
1239 Tcl_Obj *const objv[]);
1240 MODULE_SCOPE int Tk_WinfoObjCmd(ClientData clientData,
1241 Tcl_Interp *interp, int objc,
1242 Tcl_Obj *const objv[]);
1243 MODULE_SCOPE int Tk_WmObjCmd(ClientData clientData, Tcl_Interp *interp,
1244 int objc, Tcl_Obj *const objv[]);
1245
1246 MODULE_SCOPE int Tk_GetDoublePixelsFromObj(Tcl_Interp *interp,
1247 Tk_Window tkwin, Tcl_Obj *objPtr,
1248 double *doublePtr);
1249 #define TkSetGeometryContainer TkSetGeometryMaster
1250 MODULE_SCOPE int TkSetGeometryContainer(Tcl_Interp *interp,
1251 Tk_Window tkwin, const char *name);
1252 #define TkFreeGeometryContainer TkFreeGeometryMaster
1253 MODULE_SCOPE void TkFreeGeometryContainer(Tk_Window tkwin,
1254 const char *name);
1255
1256 MODULE_SCOPE void TkRegisterObjTypes(void);
1257 MODULE_SCOPE int TkDeadAppObjCmd(ClientData clientData,
1258 Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);
1259 MODULE_SCOPE int TkCanvasGetCoordObj(Tcl_Interp *interp,
1260 Tk_Canvas canvas, Tcl_Obj *obj,
1261 double *doublePtr);
1262 MODULE_SCOPE int TkGetDoublePixels(Tcl_Interp *interp, Tk_Window tkwin,
1263 const char *string, double *doublePtr);
1264 MODULE_SCOPE int TkPostscriptImage(Tcl_Interp *interp, Tk_Window tkwin,
1265 Tk_PostscriptInfo psInfo, XImage *ximage,
1266 int x, int y, int width, int height);
1267 MODULE_SCOPE void TkMapTopFrame(Tk_Window tkwin);
1268 MODULE_SCOPE XEvent * TkpGetBindingXEvent(Tcl_Interp *interp);
1269 MODULE_SCOPE void TkCreateExitHandler(Tcl_ExitProc *proc,
1270 void *clientData);
1271 MODULE_SCOPE void TkDeleteExitHandler(Tcl_ExitProc *proc,
1272 ClientData clientData);
1273 MODULE_SCOPE Tcl_ExitProc TkFinalize;
1274 MODULE_SCOPE Tcl_ExitProc TkFinalizeThread;
1275 MODULE_SCOPE void TkpBuildRegionFromAlphaData(TkRegion region,
1276 unsigned x, unsigned y, unsigned width,
1277 unsigned height, unsigned char *dataPtr,
1278 unsigned pixelStride, unsigned lineStride);
1279 MODULE_SCOPE void TkAppendPadAmount(Tcl_Obj *bufferObj,
1280 const char *buffer, int pad1, int pad2);
1281 MODULE_SCOPE int TkParsePadAmount(Tcl_Interp *interp,
1282 Tk_Window tkwin, Tcl_Obj *objPtr,
1283 int *pad1Ptr, int *pad2Ptr);
1284 MODULE_SCOPE void TkFocusSplit(TkWindow *winPtr);
1285 MODULE_SCOPE void TkFocusJoin(TkWindow *winPtr);
1286 MODULE_SCOPE int TkpAlwaysShowSelection(Tk_Window tkwin);
1287 MODULE_SCOPE void TkpDrawCharsInContext(Display * display,
1288 Drawable drawable, GC gc, Tk_Font tkfont,
1289 const char *source, int numBytes, int rangeStart,
1290 int rangeLength, int x, int y);
1291 MODULE_SCOPE void TkpDrawAngledCharsInContext(Display * display,
1292 Drawable drawable, GC gc, Tk_Font tkfont,
1293 const char *source, int numBytes, int rangeStart,
1294 int rangeLength, double x, double y, double angle);
1295 MODULE_SCOPE int TkpMeasureCharsInContext(Tk_Font tkfont,
1296 const char *source, int numBytes, int rangeStart,
1297 int rangeLength, int maxLength, int flags,
1298 int *lengthPtr);
1299 MODULE_SCOPE void TkUnderlineCharsInContext(Display *display,
1300 Drawable drawable, GC gc, Tk_Font tkfont,
1301 const char *string, int numBytes, int x, int y,
1302 int firstByte, int lastByte);
1303 MODULE_SCOPE void TkpGetFontAttrsForChar(Tk_Window tkwin, Tk_Font tkfont,
1304 int c, struct TkFontAttributes *faPtr);
1305 MODULE_SCOPE Tcl_Obj * TkNewWindowObj(Tk_Window tkwin);
1306 MODULE_SCOPE void TkpShowBusyWindow(TkBusy busy);
1307 MODULE_SCOPE void TkpHideBusyWindow(TkBusy busy);
1308 MODULE_SCOPE void TkpMakeTransparentWindowExist(Tk_Window tkwin,
1309 Window parent);
1310 MODULE_SCOPE void TkpCreateBusy(Tk_FakeWin *winPtr, Tk_Window tkRef,
1311 Window *parentPtr, Tk_Window tkParent,
1312 TkBusy busy);
1313 MODULE_SCOPE int TkBackgroundEvalObjv(Tcl_Interp *interp,
1314 int objc, Tcl_Obj *const *objv, int flags);
1315 MODULE_SCOPE void TkSendVirtualEvent(Tk_Window tgtWin,
1316 const char *eventName, Tcl_Obj *detail);
1317 MODULE_SCOPE void TkDrawDottedRect(Display *disp, Drawable d, GC gc,
1318 int x, int y, int width, int height);
1319 MODULE_SCOPE Tcl_Command TkMakeEnsemble(Tcl_Interp *interp,
1320 const char *nsname, const char *name,
1321 ClientData clientData, const TkEnsemble *map);
1322 MODULE_SCOPE int TkInitTkCmd(Tcl_Interp *interp,
1323 ClientData clientData);
1324 MODULE_SCOPE int TkInitFontchooser(Tcl_Interp *interp,
1325 ClientData clientData);
1326 MODULE_SCOPE void TkpWarpPointer(TkDisplay *dispPtr);
1327 MODULE_SCOPE void TkpCancelWarp(TkDisplay *dispPtr);
1328 MODULE_SCOPE int TkListCreateFrame(ClientData clientData,
1329 Tcl_Interp *interp, Tcl_Obj *listObj,
1330 int toplevel, Tcl_Obj *nameObj);
1331
1332 #ifdef _WIN32
1333 #define TkParseColor XParseColor
1334 #else
1335 MODULE_SCOPE Status TkParseColor (Display * display,
1336 Colormap map, const char* spec,
1337 XColor * colorPtr);
1338 #endif
1339 #ifdef HAVE_XFT
1340 MODULE_SCOPE void TkUnixSetXftClipRegion(TkRegion clipRegion);
1341 #endif
1342
1343 MODULE_SCOPE void TkpCopyRegion(TkRegion dst, TkRegion src);
1344
1345 #if !defined(__cplusplus) && !defined(c_plusplus)
1346 # define c_class class
1347 #endif
1348
1349
1350 #if TCL_UTF_MAX > (3 + (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 6))
1351 # define TkUtfToUniChar Tcl_UtfToUniChar
1352 # define TkUniCharToUtf Tcl_UniCharToUtf
1353 # define TkUtfPrev Tcl_UtfPrev
1354 # define TkUtfAtIndex Tcl_UtfAtIndex
1355 #else
1356 MODULE_SCOPE int TkUtfToUniChar(const char *, int *);
1357 MODULE_SCOPE int TkUniCharToUtf(int, char *);
1358 MODULE_SCOPE const char *TkUtfPrev(const char *, const char *);
1359 MODULE_SCOPE const char *TkUtfAtIndex(const char *src, int index);
1360 #endif
1361
1362
1363
1364
1365
1366 MODULE_SCOPE int TkUnsupported1ObjCmd(ClientData clientData,
1367 Tcl_Interp *interp, int objc,
1368 Tcl_Obj *const objv[]);
1369
1370
1371
1372
1373 MODULE_SCOPE int SquareObjCmd(ClientData clientData,
1374 Tcl_Interp *interp, int objc,
1375 Tcl_Obj * const objv[]);
1376 MODULE_SCOPE int TkOldTestInit(Tcl_Interp *interp);
1377 #if !(defined(_WIN32) || defined(MAC_OSX_TK))
1378 #define TkplatformtestInit(x) TCL_OK
1379 #else
1380 MODULE_SCOPE int TkplatformtestInit(Tcl_Interp *interp);
1381 #endif
1382
1383 #ifdef __cplusplus
1384 }
1385 #endif
1386
1387 #endif
1388
1389
1390
1391
1392
1393
1394
1395