Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merge 9.1 |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | revised_text | tip-466 |
Files: | files | file ages | folders |
SHA3-256: |
c4207ac48b13e3df3d7f908d7dfdf5a5 |
User & Date: | jan.nijtmans 2025-03-18 13:42:06.696 |
Context
2025-03-30
| ||
09:34 | merge trunk check-in: 027ff1ee user: fvogel tags: revised_text, tip-466 | |
2025-03-18
| ||
13:42 | Merge 9.1 check-in: c4207ac4 user: jan.nijtmans tags: revised_text, tip-466 | |
13:36 | Merge 9.0 check-in: 8f3434b4 user: jan.nijtmans tags: trunk, main | |
2025-03-16
| ||
22:54 | Merge 9.1 check-in: 8f92e5f9 user: jan.nijtmans tags: revised_text, tip-466 | |
Changes
Changes to generic/tkButton.c.
︙ | ︙ | |||
529 530 531 532 533 534 535 | int imgWidth, int imgHeight); static char * ButtonTextVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); static char * ButtonVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); | | | 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 | int imgWidth, int imgHeight); static char * ButtonTextVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); static char * ButtonVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); static Tcl_ObjCmdProc2 ButtonWidgetObjCmd; static int ConfigureButton(Tcl_Interp *interp, TkButton *butPtr, Tcl_Size objc, Tcl_Obj *const objv[]); static void DestroyButton(TkButton *butPtr); /* *-------------------------------------------------------------- * |
︙ | ︙ | |||
666 667 668 669 670 671 672 | /* * Initialize the data structure for the button. */ butPtr->tkwin = tkwin; butPtr->display = Tk_Display(tkwin); butPtr->interp = interp; | | | 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 | /* * Initialize the data structure for the button. */ butPtr->tkwin = tkwin; butPtr->display = Tk_Display(tkwin); butPtr->interp = interp; butPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(tkwin), ButtonWidgetObjCmd, butPtr, ButtonCmdDeletedProc); butPtr->type = type; butPtr->optionTable = optionTable; butPtr->textPtr = NULL; butPtr->underline = INT_MIN; butPtr->textVarNamePtr = NULL; butPtr->bitmap = None; |
︙ | ︙ | |||
763 764 765 766 767 768 769 | *-------------------------------------------------------------- */ static int ButtonWidgetObjCmd( void *clientData, /* Information about button widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 | *-------------------------------------------------------------- */ static int ButtonWidgetObjCmd( void *clientData, /* Information about button widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument values. */ { TkButton *butPtr = (TkButton *)clientData; int index; int result; Tcl_Obj *objPtr; |
︙ | ︙ |
Changes to generic/tkCanvas.c.
︙ | ︙ | |||
233 234 235 236 237 238 239 | static void CanvasLostSelection(void *clientData); static void CanvasSelectTo(TkCanvas *canvasPtr, Tk_Item *itemPtr, Tcl_Size index); static void CanvasSetOrigin(TkCanvas *canvasPtr, int xOrigin, int yOrigin); static void CanvasUpdateScrollbars(TkCanvas *canvasPtr); static int CanvasWidgetCmd(void *clientData, | | | 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | static void CanvasLostSelection(void *clientData); static void CanvasSelectTo(TkCanvas *canvasPtr, Tk_Item *itemPtr, Tcl_Size index); static void CanvasSetOrigin(TkCanvas *canvasPtr, int xOrigin, int yOrigin); static void CanvasUpdateScrollbars(TkCanvas *canvasPtr); static int CanvasWidgetCmd(void *clientData, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv); static void CanvasWorldChanged(void *instanceData); static int ConfigureCanvas(Tcl_Interp *interp, TkCanvas *canvasPtr, Tcl_Size objc, Tcl_Obj *const *objv, int flags); static void DefaultRotateImplementation(TkCanvas *canvasPtr, Tk_Item *itemPtr, double x, double y, |
︙ | ︙ | |||
669 670 671 672 673 674 675 | * pointers). */ canvasPtr = (TkCanvas *)ckalloc(sizeof(TkCanvas)); canvasPtr->tkwin = newWin; canvasPtr->display = Tk_Display(newWin); canvasPtr->interp = interp; | | | 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 | * pointers). */ canvasPtr = (TkCanvas *)ckalloc(sizeof(TkCanvas)); canvasPtr->tkwin = newWin; canvasPtr->display = Tk_Display(newWin); canvasPtr->interp = interp; canvasPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(canvasPtr->tkwin), CanvasWidgetCmd, canvasPtr, CanvasCmdDeletedProc); canvasPtr->firstItemPtr = NULL; canvasPtr->lastItemPtr = NULL; canvasPtr->borderWidthObj = NULL; canvasPtr->bgBorder = NULL; canvasPtr->relief = TK_RELIEF_FLAT; |
︙ | ︙ | |||
789 790 791 792 793 794 795 | *-------------------------------------------------------------- */ static int CanvasWidgetCmd( void *clientData, /* Information about canvas widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 | *-------------------------------------------------------------- */ static int CanvasWidgetCmd( void *clientData, /* Information about canvas widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { TkCanvas *canvasPtr = (TkCanvas *)clientData; int c, result; Tk_Item *itemPtr = NULL; /* Initialization needed only to prevent * compiler warning. */ TagSearch *searchPtr = NULL;/* Allocated by first TagSearchScan, freed by |
︙ | ︙ |
Changes to generic/tkCanvas.h.
︙ | ︙ | |||
286 287 288 289 290 291 292 | /* * Canvas-related functions that are shared among Tk modules but not exported * to the outside world: */ MODULE_SCOPE int TkCanvPostscriptObjCmd(TkCanvas *canvasPtr, | | | 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 | /* * Canvas-related functions that are shared among Tk modules but not exported * to the outside world: */ MODULE_SCOPE int TkCanvPostscriptObjCmd(TkCanvas *canvasPtr, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); MODULE_SCOPE int TkCanvTranslatePath(TkCanvas *canvPtr, int numVertex, double *coordPtr, int closed, XPoint *outPtr); /* * Standard item types provided by Tk: */ |
︙ | ︙ |
Changes to generic/tkConsole.c.
︙ | ︙ | |||
47 48 49 50 51 52 53 | static int Console2Close(void *instanceData, Tcl_Interp *interp, int flags); static void ConsoleDeleteProc(void *clientData); static void ConsoleEventProc(void *clientData, XEvent *eventPtr); static int ConsoleHandle(void *instanceData, int direction, void **handlePtr); static int ConsoleInput(void *instanceData, char *buf, int toRead, int *errorCode); | | | | 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | static int Console2Close(void *instanceData, Tcl_Interp *interp, int flags); static void ConsoleDeleteProc(void *clientData); static void ConsoleEventProc(void *clientData, XEvent *eventPtr); static int ConsoleHandle(void *instanceData, int direction, void **handlePtr); static int ConsoleInput(void *instanceData, char *buf, int toRead, int *errorCode); static Tcl_ObjCmdProc2 ConsoleObjCmd; static int ConsoleOutput(void *instanceData, const char *buf, int toWrite, int *errorCode); static void ConsoleWatch(void *instanceData, int mask); static void DeleteConsoleInterp(void *clientData); static void InterpDeleteProc(void *clientData, Tcl_Interp *interp); static Tcl_ObjCmdProc2 InterpreterObjCmd; /* * This structure describes the channel type structure for file based IO: */ static const Tcl_ChannelType consoleChannelType = { "console", /* Type name. */ |
︙ | ︙ | |||
417 418 419 420 421 422 423 | info->refCount++; Tcl_CreateThreadExitHandler(DeleteConsoleInterp, consoleInterp); /* * Add console commands to the interp */ | | | | 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 | info->refCount++; Tcl_CreateThreadExitHandler(DeleteConsoleInterp, consoleInterp); /* * Add console commands to the interp */ token = Tcl_CreateObjCommand2(interp, "console", ConsoleObjCmd, info, ConsoleDeleteProc); info->refCount++; /* * We don't have to count the ref held by the [consoleinterp] command * in the consoleInterp. The ref held by the consoleInterp delete * handler takes care of us. */ Tcl_CreateObjCommand2(consoleInterp, "consoleinterp", InterpreterObjCmd, info, NULL); mainWindow = Tk_MainWindow(interp); if (mainWindow) { Tk_CreateEventHandler(mainWindow, StructureNotifyMask, ConsoleEventProc, info); info->refCount++; |
︙ | ︙ | |||
688 689 690 691 692 693 694 | *---------------------------------------------------------------------- */ static int ConsoleObjCmd( void *clientData, /* Access to the console interp */ Tcl_Interp *interp, /* Current interpreter */ | | | 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 | *---------------------------------------------------------------------- */ static int ConsoleObjCmd( void *clientData, /* Access to the console interp */ Tcl_Interp *interp, /* Current interpreter */ Tcl_Size objc, /* Number of arguments */ Tcl_Obj *const objv[]) /* Argument objects */ { int index, result; static const char *const options[] = { "eval", "hide", "show", "title", NULL}; enum option {CON_EVAL, CON_HIDE, CON_SHOW, CON_TITLE}; Tcl_Obj *cmd = NULL; |
︙ | ︙ | |||
780 781 782 783 784 785 786 | *---------------------------------------------------------------------- */ static int InterpreterObjCmd( void *clientData, /* */ Tcl_Interp *interp, /* Current interpreter */ | | | 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 | *---------------------------------------------------------------------- */ static int InterpreterObjCmd( void *clientData, /* */ Tcl_Interp *interp, /* Current interpreter */ Tcl_Size objc, /* Number of arguments */ Tcl_Obj *const objv[]) /* Argument objects */ { int index, result = TCL_OK; static const char *const options[] = {"eval", "record", NULL}; enum option {OTHER_EVAL, OTHER_RECORD}; ConsoleInfo *info = (ConsoleInfo *)clientData; Tcl_Interp *otherInterp = info->interp; |
︙ | ︙ |
Changes to generic/tkEntry.c.
︙ | ︙ | |||
430 431 432 433 434 435 436 | static void ExpandPercents(Entry *entryPtr, const char *before, const char *change, const char *newStr, Tcl_Size index, int type, Tcl_DString *dsPtr); static int EntryValueChanged(Entry *entryPtr, const char *newValue); static void EntryVisibleRange(Entry *entryPtr, double *firstPtr, double *lastPtr); | | | | 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 | static void ExpandPercents(Entry *entryPtr, const char *before, const char *change, const char *newStr, Tcl_Size index, int type, Tcl_DString *dsPtr); static int EntryValueChanged(Entry *entryPtr, const char *newValue); static void EntryVisibleRange(Entry *entryPtr, double *firstPtr, double *lastPtr); static Tcl_ObjCmdProc2 EntryWidgetObjCmd; static void EntryWorldChanged(void *instanceData); static int GetEntryIndex(Tcl_Interp *interp, Entry *entryPtr, Tcl_Obj *indexObj, Tcl_Size *indexPtr); static int InsertChars(Entry *entryPtr, Tcl_Size index, Tcl_Obj *obj); /* * These forward declarations are the spinbox specific ones: */ static Tcl_ObjCmdProc2 SpinboxWidgetObjCmd; static int GetSpinboxElement(Spinbox *sbPtr, int x, int y); static int SpinboxInvoke(Tcl_Interp *interp, Spinbox *sbPtr, int element); static int ComputeFormat(Spinbox *sbPtr); /* * The structure below defines widget class behavior by means of functions |
︙ | ︙ | |||
518 519 520 521 522 523 524 | entryPtr = (Entry *)ckalloc(sizeof(Entry)); memset(entryPtr, 0, sizeof(Entry)); entryPtr->tkwin = tkwin; entryPtr->display = Tk_Display(tkwin); entryPtr->interp = interp; | | | 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 | entryPtr = (Entry *)ckalloc(sizeof(Entry)); memset(entryPtr, 0, sizeof(Entry)); entryPtr->tkwin = tkwin; entryPtr->display = Tk_Display(tkwin); entryPtr->interp = interp; entryPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(entryPtr->tkwin), EntryWidgetObjCmd, entryPtr, EntryCmdDeletedProc); entryPtr->optionTable = optionTable; entryPtr->type = TK_ENTRY; tmp = (char *)ckalloc(1); tmp[0] = '\0'; entryPtr->string = tmp; |
︙ | ︙ | |||
592 593 594 595 596 597 598 | *-------------------------------------------------------------- */ static int EntryWidgetObjCmd( void *clientData, /* Information about entry widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 | *-------------------------------------------------------------- */ static int EntryWidgetObjCmd( void *clientData, /* Information about entry widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Entry *entryPtr = (Entry *)clientData; int cmdIndex, selIndex, result; Tcl_Obj *objPtr; if (objc < 2) { |
︙ | ︙ | |||
3767 3768 3769 3770 3771 3772 3773 | sbPtr = (Spinbox *)ckalloc(sizeof(Spinbox)); entryPtr = (Entry *) sbPtr; memset(sbPtr, 0, sizeof(Spinbox)); entryPtr->tkwin = tkwin; entryPtr->display = Tk_Display(tkwin); entryPtr->interp = interp; | | | 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 | sbPtr = (Spinbox *)ckalloc(sizeof(Spinbox)); entryPtr = (Entry *) sbPtr; memset(sbPtr, 0, sizeof(Spinbox)); entryPtr->tkwin = tkwin; entryPtr->display = Tk_Display(tkwin); entryPtr->interp = interp; entryPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(entryPtr->tkwin), SpinboxWidgetObjCmd, sbPtr, EntryCmdDeletedProc); entryPtr->optionTable = optionTable; entryPtr->type = TK_SPINBOX; tmp = (char *)ckalloc(1); tmp[0] = '\0'; entryPtr->string = tmp; |
︙ | ︙ | |||
3859 3860 3861 3862 3863 3864 3865 | *-------------------------------------------------------------- */ static int SpinboxWidgetObjCmd( void *clientData, /* Information about spinbox widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 | *-------------------------------------------------------------- */ static int SpinboxWidgetObjCmd( void *clientData, /* Information about spinbox widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Entry *entryPtr = (Entry *)clientData; Spinbox *sbPtr = (Spinbox *)clientData; int cmdIndex, selIndex, result; Tcl_Obj *objPtr; |
︙ | ︙ |
Changes to generic/tkFrame.c.
︙ | ︙ | |||
335 336 337 338 339 340 341 | XEvent *eventPtr); static void FrameLostContentProc(void *clientData, Tk_Window tkwin); static void FrameRequestProc(void *clientData, Tk_Window tkwin); static void FrameStructureProc(void *clientData, XEvent *eventPtr); | | | 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 | XEvent *eventPtr); static void FrameLostContentProc(void *clientData, Tk_Window tkwin); static void FrameRequestProc(void *clientData, Tk_Window tkwin); static void FrameStructureProc(void *clientData, XEvent *eventPtr); static Tcl_ObjCmdProc2 FrameWidgetObjCmd; static void FrameWorldChanged(void *instanceData); static void MapFrame(void *clientData); /* * The structure below defines frame class behavior by means of functions that * can be invoked from generic window code. */ |
︙ | ︙ | |||
617 618 619 620 621 622 623 | } else { framePtr = (Frame *)ckalloc(sizeof(Frame)); memset(framePtr, 0, sizeof(Frame)); } framePtr->tkwin = newWin; framePtr->display = Tk_Display(newWin); framePtr->interp = interp; | | | 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 | } else { framePtr = (Frame *)ckalloc(sizeof(Frame)); memset(framePtr, 0, sizeof(Frame)); } framePtr->tkwin = newWin; framePtr->display = Tk_Display(newWin); framePtr->interp = interp; framePtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(newWin), FrameWidgetObjCmd, framePtr, FrameCmdDeletedProc); framePtr->optionTable = optionTable; framePtr->type = type; framePtr->colormap = colormap; framePtr->relief = TK_RELIEF_FLAT; framePtr->cursor = NULL; |
︙ | ︙ | |||
693 694 695 696 697 698 699 | *-------------------------------------------------------------- */ static int FrameWidgetObjCmd( void *clientData, /* Information about frame widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 | *-------------------------------------------------------------- */ static int FrameWidgetObjCmd( void *clientData, /* Information about frame widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { static const char *const frameOptions[] = { "cget", "configure", NULL }; enum options { FRAME_CGET, FRAME_CONFIGURE |
︙ | ︙ | |||
2094 2095 2096 2097 2098 2099 2100 | { Tcl_CmdInfo cmdInfo; Frame *framePtr; if (Tcl_GetCommandInfo(interp, cmdName, &cmdInfo) == 0) { return NULL; } | | | | 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 | { Tcl_CmdInfo cmdInfo; Frame *framePtr; if (Tcl_GetCommandInfo(interp, cmdName, &cmdInfo) == 0) { return NULL; } if (cmdInfo.objProc2 != FrameWidgetObjCmd) { return NULL; } framePtr = (Frame *)cmdInfo.objClientData2; if (framePtr->type != TYPE_TOPLEVEL) { return NULL; } return framePtr->tkwin; } /* |
︙ | ︙ |
Changes to generic/tkIcu.c.
︙ | ︙ | |||
61 62 63 64 65 66 67 | TCL_DECLARE_MUTEX(icu_mutex); static int startEndOfCmd( void *clientData, Tcl_Interp *interp, | | | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | TCL_DECLARE_MUTEX(icu_mutex); static int startEndOfCmd( void *clientData, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { Tcl_DString ds; Tcl_Size len; const char *str; UErrorCodex errorCode = U_ZERO_ERRORZ; void *it; |
︙ | ︙ | |||
300 301 302 303 304 305 306 | ICU_SYM(setText); #undef ICU_SYM } } Tcl_MutexUnlock(&icu_mutex); if (icu_fns.lib != NULL) { | | | | | | | 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 | ICU_SYM(setText); #undef ICU_SYM } } Tcl_MutexUnlock(&icu_mutex); if (icu_fns.lib != NULL) { Tcl_CreateObjCommand2(interp, "::tk::startOfCluster", startEndOfCmd, INT2PTR(0), icuCleanup); Tcl_CreateObjCommand2(interp, "::tk::startOfNextWord", startEndOfCmd, INT2PTR(FLAG_WORD|FLAG_FOLLOWING), icuCleanup); Tcl_CreateObjCommand2(interp, "::tk::startOfPreviousWord", startEndOfCmd, INT2PTR(FLAG_WORD), icuCleanup); Tcl_CreateObjCommand2(interp, "::tk::endOfCluster", startEndOfCmd, INT2PTR(FLAG_FOLLOWING), icuCleanup); Tcl_CreateObjCommand2(interp, "::tk::endOfWord", startEndOfCmd, INT2PTR(FLAG_WORD|FLAG_FOLLOWING|FLAG_SPACE), icuCleanup); icu_fns.nopen += 5; } } /* * Local Variables: |
︙ | ︙ |
Changes to generic/tkImgBmap.c.
︙ | ︙ | |||
141 142 143 144 145 146 147 | int wordLength; /* Number of non-NULL bytes in word. */ } ParseInfo; /* * Prototypes for procedures used only locally in this file: */ | < | | 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | int wordLength; /* Number of non-NULL bytes in word. */ } ParseInfo; /* * Prototypes for procedures used only locally in this file: */ static Tcl_ObjCmdProc2 ImgBmapCmd; static void ImgBmapCmdDeletedProc(void *clientData); static void ImgBmapConfigureInstance(BitmapInstance *instancePtr); static int ImgBmapConfigureModel(BitmapModel *modelPtr, Tcl_Size objc, Tcl_Obj *const objv[], int flags); static int NextBitmapWord(ParseInfo *parseInfoPtr); /* |
︙ | ︙ | |||
183 184 185 186 187 188 189 | void **clientDataPtr) /* Store manager's token for image here; it * will be returned in later callbacks. */ { BitmapModel *modelPtr = (BitmapModel *)ckalloc(sizeof(BitmapModel)); modelPtr->tkModel = model; modelPtr->interp = interp; | | | 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | void **clientDataPtr) /* Store manager's token for image here; it * will be returned in later callbacks. */ { BitmapModel *modelPtr = (BitmapModel *)ckalloc(sizeof(BitmapModel)); modelPtr->tkModel = model; modelPtr->interp = interp; modelPtr->imageCmd = Tcl_CreateObjCommand2(interp, name, ImgBmapCmd, modelPtr, ImgBmapCmdDeletedProc); modelPtr->width = modelPtr->height = 0; modelPtr->data = NULL; modelPtr->maskData = NULL; modelPtr->fgUid = NULL; modelPtr->bgUid = NULL; modelPtr->fileString = NULL; |
︙ | ︙ | |||
738 739 740 741 742 743 744 | *-------------------------------------------------------------- */ static int ImgBmapCmd( void *clientData, /* Information about the image model. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 | *-------------------------------------------------------------- */ static int ImgBmapCmd( void *clientData, /* Information about the image model. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { static const char *const bmapOptions[] = {"cget", "configure", NULL}; BitmapModel *modelPtr = (BitmapModel *)clientData; int index; if (objc < 2) { |
︙ | ︙ |
Changes to generic/tkImgPhoto.c.
︙ | ︙ | |||
181 182 183 184 185 186 187 | }; /* * Forward declarations */ static void PhotoFormatThreadExitProc(void *clientData); | < | | 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | }; /* * Forward declarations */ static void PhotoFormatThreadExitProc(void *clientData); static Tcl_ObjCmdProc2 ImgPhotoCmd; static int ParseSubcommandOptions( struct SubcommandOptions *optPtr, Tcl_Interp *interp, int allowedOptions, Tcl_Size *indexPtr, Tcl_Size objc, Tcl_Obj *const objv[]); static void ImgPhotoCmdDeletedProc(void *clientData); static int ImgPhotoConfigureModel(Tcl_Interp *interp, PhotoModel *modelPtr, Tcl_Size objc, |
︙ | ︙ | |||
366 367 368 369 370 371 372 | * Allocate and initialize the photo image model record. */ modelPtr = (PhotoModel *)ckalloc(sizeof(PhotoModel)); memset(modelPtr, 0, sizeof(PhotoModel)); modelPtr->tkModel = model; modelPtr->interp = interp; | | | 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 | * Allocate and initialize the photo image model record. */ modelPtr = (PhotoModel *)ckalloc(sizeof(PhotoModel)); memset(modelPtr, 0, sizeof(PhotoModel)); modelPtr->tkModel = model; modelPtr->interp = interp; modelPtr->imageCmd = Tcl_CreateObjCommand2(interp, name, ImgPhotoCmd, modelPtr, ImgPhotoCmdDeletedProc); modelPtr->palette = NULL; modelPtr->pix32 = NULL; modelPtr->instancePtr = NULL; modelPtr->validRegion = TkCreateRegion(); /* |
︙ | ︙ | |||
408 409 410 411 412 413 414 | *---------------------------------------------------------------------- */ static int ImgPhotoCmd( void *clientData, /* Information about photo model. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 | *---------------------------------------------------------------------- */ static int ImgPhotoCmd( void *clientData, /* Information about photo model. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { static const char *const photoOptions[] = { "blank", "cget", "configure", "copy", "data", "get", "put", "read", "redither", "transparency", "write", NULL }; enum PhotoOptions { |
︙ | ︙ |
Changes to generic/tkInt.decls.
︙ | ︙ | |||
131 132 133 134 135 136 137 | } declare 31 { void TkGetButtPoints(double p1[], double p2[], double width, int project, double m1[], double m2[]) } declare 32 { TkCursor *TkGetCursorByName(Tcl_Interp *interp, | | | 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | } declare 31 { void TkGetButtPoints(double p1[], double p2[], double width, int project, double m1[], double m2[]) } declare 32 { TkCursor *TkGetCursorByName(Tcl_Interp *interp, Tk_Window tkwin, const char *string) } declare 33 { const char *TkGetDefaultScreenName(Tcl_Interp *interp, const char *screenName) } declare 34 { TkDisplay *TkGetDisplay(Display *display) |
︙ | ︙ |
Changes to generic/tkInt.h.
︙ | ︙ | |||
1164 1165 1166 1167 1168 1169 1170 | MODULE_SCOPE Tcl_ObjCmdProc Tk_PackObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_PlaceObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_RadiobuttonObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_RaiseObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_ScaleObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_ScrollbarObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_SelectionObjCmd; | | | 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 | MODULE_SCOPE Tcl_ObjCmdProc Tk_PackObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_PlaceObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_RadiobuttonObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_RaiseObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_ScaleObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_ScrollbarObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_SelectionObjCmd; MODULE_SCOPE Tcl_ObjCmdProc2 Tk_SendObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_SpinboxObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_TextObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_TkwaitObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_ToplevelObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_UpdateObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_WinfoObjCmd; MODULE_SCOPE Tcl_ObjCmdProc Tk_WmObjCmd; |
︙ | ︙ |
Changes to generic/tkIntDecls.h.
︙ | ︙ | |||
129 130 131 132 133 134 135 | int *hotYPtr); /* 31 */ EXTERN void TkGetButtPoints(double p1[], double p2[], double width, int project, double m1[], double m2[]); /* 32 */ EXTERN TkCursor * TkGetCursorByName(Tcl_Interp *interp, | | | 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | int *hotYPtr); /* 31 */ EXTERN void TkGetButtPoints(double p1[], double p2[], double width, int project, double m1[], double m2[]); /* 32 */ EXTERN TkCursor * TkGetCursorByName(Tcl_Interp *interp, Tk_Window tkwin, const char *string); /* 33 */ EXTERN const char * TkGetDefaultScreenName(Tcl_Interp *interp, const char *screenName); /* 34 */ EXTERN TkDisplay * TkGetDisplay(Display *display); /* 35 */ EXTERN Tcl_Size TkGetDisplayOf(Tcl_Interp *interp, Tcl_Size objc, |
︙ | ︙ | |||
578 579 580 581 582 583 584 | TkWindow * (*tkFocusKeyEvent) (TkWindow *winPtr, XEvent *eventPtr); /* 25 */ void (*tkFontPkgInit) (TkMainInfo *mainPtr); /* 26 */ void (*tkFontPkgFree) (TkMainInfo *mainPtr); /* 27 */ void (*tkFreeBindingTags) (TkWindow *winPtr); /* 28 */ void (*tkpFreeCursor) (TkCursor *cursorPtr); /* 29 */ char * (*tkGetBitmapData) (Tcl_Interp *interp, const char *string, const char *fileName, int *widthPtr, int *heightPtr, int *hotXPtr, int *hotYPtr); /* 30 */ void (*tkGetButtPoints) (double p1[], double p2[], double width, int project, double m1[], double m2[]); /* 31 */ | | | 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 | TkWindow * (*tkFocusKeyEvent) (TkWindow *winPtr, XEvent *eventPtr); /* 25 */ void (*tkFontPkgInit) (TkMainInfo *mainPtr); /* 26 */ void (*tkFontPkgFree) (TkMainInfo *mainPtr); /* 27 */ void (*tkFreeBindingTags) (TkWindow *winPtr); /* 28 */ void (*tkpFreeCursor) (TkCursor *cursorPtr); /* 29 */ char * (*tkGetBitmapData) (Tcl_Interp *interp, const char *string, const char *fileName, int *widthPtr, int *heightPtr, int *hotXPtr, int *hotYPtr); /* 30 */ void (*tkGetButtPoints) (double p1[], double p2[], double width, int project, double m1[], double m2[]); /* 31 */ TkCursor * (*tkGetCursorByName) (Tcl_Interp *interp, Tk_Window tkwin, const char *string); /* 32 */ const char * (*tkGetDefaultScreenName) (Tcl_Interp *interp, const char *screenName); /* 33 */ TkDisplay * (*tkGetDisplay) (Display *display); /* 34 */ Tcl_Size (*tkGetDisplayOf) (Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[], Tk_Window *tkwinPtr); /* 35 */ TkWindow * (*tkGetFocusWin) (TkWindow *winPtr); /* 36 */ int (*tkGetInterpNames) (Tcl_Interp *interp, Tk_Window tkwin); /* 37 */ int (*tkGetMiterPoints) (double p1[], double p2[], double p3[], double width, double m1[], double m2[]); /* 38 */ void (*tkGetPointerCoords) (Tk_Window tkwin, int *xPtr, int *yPtr); /* 39 */ |
︙ | ︙ |
Changes to generic/tkListbox.c.
︙ | ︙ | |||
405 406 407 408 409 410 411 | static void EventuallyRedrawRange(Listbox *listPtr, Tcl_Size first, Tcl_Size last); static void ListboxScanTo(Listbox *listPtr, int x, int y); static int ListboxSelect(Listbox *listPtr, int first, int last, int select); static void ListboxUpdateHScrollbar(Listbox *listPtr); static void ListboxUpdateVScrollbar(Listbox *listPtr); | | | 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 | static void EventuallyRedrawRange(Listbox *listPtr, Tcl_Size first, Tcl_Size last); static void ListboxScanTo(Listbox *listPtr, int x, int y); static int ListboxSelect(Listbox *listPtr, int first, int last, int select); static void ListboxUpdateHScrollbar(Listbox *listPtr); static void ListboxUpdateVScrollbar(Listbox *listPtr); static Tcl_ObjCmdProc2 ListboxWidgetObjCmd; static int ListboxBboxSubCmd(Tcl_Interp *interp, Listbox *listPtr, int index); static int ListboxSelectionSubCmd(Tcl_Interp *interp, Listbox *listPtr, Tcl_Size objc, Tcl_Obj *const objv[]); static int ListboxXviewSubCmd(Tcl_Interp *interp, Listbox *listPtr, Tcl_Size objc, Tcl_Obj *const objv[]); static int ListboxYviewSubCmd(Tcl_Interp *interp, |
︙ | ︙ | |||
515 516 517 518 519 520 521 | listPtr = (Listbox *)ckalloc(sizeof(Listbox)); memset(listPtr, 0, sizeof(Listbox)); listPtr->tkwin = tkwin; listPtr->display = Tk_Display(tkwin); listPtr->interp = interp; | | | 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 | listPtr = (Listbox *)ckalloc(sizeof(Listbox)); memset(listPtr, 0, sizeof(Listbox)); listPtr->tkwin = tkwin; listPtr->display = Tk_Display(tkwin); listPtr->interp = interp; listPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(listPtr->tkwin), ListboxWidgetObjCmd, listPtr, ListboxCmdDeletedProc); listPtr->optionTable = optionTables->listboxOptionTable; listPtr->itemAttrOptionTable = optionTables->itemAttrOptionTable; listPtr->selection = (Tcl_HashTable *)ckalloc(sizeof(Tcl_HashTable)); Tcl_InitHashTable(listPtr->selection, TCL_ONE_WORD_KEYS); listPtr->itemAttrTable = (Tcl_HashTable *)ckalloc(sizeof(Tcl_HashTable)); |
︙ | ︙ | |||
587 588 589 590 591 592 593 | *---------------------------------------------------------------------- */ static int ListboxWidgetObjCmd( void *clientData, /* Information about listbox widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 | *---------------------------------------------------------------------- */ static int ListboxWidgetObjCmd( void *clientData, /* Information about listbox widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Arguments as Tcl_Obj's. */ { Listbox *listPtr = (Listbox *)clientData; int cmdIndex; Tcl_Size index; int result = TCL_OK; Tcl_Obj *objPtr; |
︙ | ︙ |
Changes to generic/tkMenu.c.
︙ | ︙ | |||
345 346 347 348 349 350 351 | TkMenu *menuPtr, Tcl_Obj *indexPtr, Tcl_Size objc, Tcl_Obj *const objv[]); static void MenuCmdDeletedProc(void *clientData); static TkMenuEntry * MenuNewEntry(TkMenu *menuPtr, Tcl_Size index, int type); static char * MenuVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); | | | 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 | TkMenu *menuPtr, Tcl_Obj *indexPtr, Tcl_Size objc, Tcl_Obj *const objv[]); static void MenuCmdDeletedProc(void *clientData); static TkMenuEntry * MenuNewEntry(TkMenu *menuPtr, Tcl_Size index, int type); static char * MenuVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); static Tcl_ObjCmdProc2 MenuWidgetObjCmd; static void MenuWorldChanged(void *instanceData); static int PostProcessEntry(TkMenuEntry *mePtr); static void RecursivelyDeleteMenu(TkMenu *menuPtr); static void UnhookCascadeEntry(TkMenuEntry *mePtr); static void MenuCleanup(void *unused); static int GetMenuIndex(Tcl_Interp *interp, TkMenu *menuPtr, Tcl_Obj *objPtr, int lastOK, Tcl_Size *indexPtr); |
︙ | ︙ | |||
439 440 441 442 443 444 445 | */ menuPtr = (TkMenu *)ckalloc(sizeof(TkMenu)); memset(menuPtr, 0, sizeof(TkMenu)); menuPtr->tkwin = newWin; menuPtr->display = Tk_Display(newWin); menuPtr->interp = interp; | | | 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 | */ menuPtr = (TkMenu *)ckalloc(sizeof(TkMenu)); memset(menuPtr, 0, sizeof(TkMenu)); menuPtr->tkwin = newWin; menuPtr->display = Tk_Display(newWin); menuPtr->interp = interp; menuPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(menuPtr->tkwin), MenuWidgetObjCmd, menuPtr, MenuCmdDeletedProc); menuPtr->active = TCL_INDEX_NONE; menuPtr->cursorPtr = NULL; menuPtr->mainMenuPtr = menuPtr; menuPtr->menuType = UNKNOWN_TYPE; Tcl_InitHashTable(&menuPtr->items, TCL_STRING_KEYS); |
︙ | ︙ | |||
604 605 606 607 608 609 610 | *-------------------------------------------------------------- */ static int MenuWidgetObjCmd( void *clientData, /* Information about menu widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 | *-------------------------------------------------------------- */ static int MenuWidgetObjCmd( void *clientData, /* Information about menu widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument strings. */ { TkMenu *menuPtr = (TkMenu *)clientData; TkMenuEntry *mePtr; int result = TCL_OK; int option; ThreadSpecificData *tsdPtr = (ThreadSpecificData *) |
︙ | ︙ |
Changes to generic/tkMenubutton.c.
︙ | ︙ | |||
160 161 162 163 164 165 166 | XEvent *eventPtr); static void MenuButtonImageProc(void *clientData, int x, int y, int width, int height, int imgWidth, int imgHeight); static char * MenuButtonTextVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); | | | 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | XEvent *eventPtr); static void MenuButtonImageProc(void *clientData, int x, int y, int width, int height, int imgWidth, int imgHeight); static char * MenuButtonTextVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); static Tcl_ObjCmdProc2 MenuButtonWidgetObjCmd; static int ConfigureMenuButton(Tcl_Interp *interp, TkMenuButton *mbPtr, int objc, Tcl_Obj *const objv[]); static void DestroyMenuButton(void *memPtr); /* *-------------------------------------------------------------- |
︙ | ︙ | |||
229 230 231 232 233 234 235 | /* * Initialize the data structure for the button. */ mbPtr->tkwin = tkwin; mbPtr->display = Tk_Display(tkwin); mbPtr->interp = interp; | | | 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 | /* * Initialize the data structure for the button. */ mbPtr->tkwin = tkwin; mbPtr->display = Tk_Display(tkwin); mbPtr->interp = interp; mbPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(mbPtr->tkwin), MenuButtonWidgetObjCmd, mbPtr, MenuButtonCmdDeletedProc); mbPtr->optionTable = optionTable; mbPtr->menuNameObj = NULL; mbPtr->textObj = NULL; mbPtr->underline = INT_MIN; mbPtr->textVarNameObj = NULL; |
︙ | ︙ | |||
318 319 320 321 322 323 324 | *-------------------------------------------------------------- */ static int MenuButtonWidgetObjCmd( void *clientData, /* Information about button widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 | *-------------------------------------------------------------- */ static int MenuButtonWidgetObjCmd( void *clientData, /* Information about button widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { TkMenuButton *mbPtr = (TkMenuButton *)clientData; int result, index; Tcl_Obj *objPtr; if (objc < 2) { |
︙ | ︙ |
Changes to generic/tkMessage.c.
︙ | ︙ | |||
166 167 168 169 170 171 172 | static void MessageCmdDeletedProc(void *clientData); static void MessageEventProc(void *clientData, XEvent *eventPtr); static char * MessageTextVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); | | | 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | static void MessageCmdDeletedProc(void *clientData); static void MessageEventProc(void *clientData, XEvent *eventPtr); static char * MessageTextVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); static Tcl_ObjCmdProc2 MessageWidgetObjCmd; static void MessageWorldChanged(void *instanceData); static void ComputeMessageGeometry(Message *msgPtr); static int ConfigureMessage(Tcl_Interp *interp, Message *msgPtr, int objc, Tcl_Obj *const objv[], int flags); static void DestroyMessage(void *memPtr); static void DisplayMessage(void *clientData); |
︙ | ︙ | |||
242 243 244 245 246 247 248 | /* * Set values for those fields that don't take a 0 or NULL value. */ msgPtr->tkwin = tkwin; msgPtr->display = Tk_Display(tkwin); msgPtr->interp = interp; | | | 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | /* * Set values for those fields that don't take a 0 or NULL value. */ msgPtr->tkwin = tkwin; msgPtr->display = Tk_Display(tkwin); msgPtr->interp = interp; msgPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(msgPtr->tkwin), MessageWidgetObjCmd, msgPtr, MessageCmdDeletedProc); msgPtr->optionTable = optionTable; msgPtr->relief = TK_RELIEF_FLAT; msgPtr->textGC = NULL; msgPtr->anchor = TK_ANCHOR_CENTER; msgPtr->aspect = 150; |
︙ | ︙ | |||
294 295 296 297 298 299 300 | *-------------------------------------------------------------- */ static int MessageWidgetObjCmd( void *clientData, /* Information about message widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 | *-------------------------------------------------------------- */ static int MessageWidgetObjCmd( void *clientData, /* Information about message widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument strings. */ { Message *msgPtr = (Message *)clientData; static const char *const optionStrings[] = { "cget", "configure", NULL }; enum options { MESSAGE_CGET, MESSAGE_CONFIGURE }; int index; int result = TCL_OK; |
︙ | ︙ |
Changes to generic/tkPanedWindow.c.
︙ | ︙ | |||
186 187 188 189 190 191 192 | static void DisplayPanedWindow(void *clientData); static void PanedWindowEventProc(void *clientData, XEvent *eventPtr); static void ProxyWindowEventProc(void *clientData, XEvent *eventPtr); static void DisplayProxyWindow(void *clientData); static void PanedWindowWorldChanged(void *instanceData); | | < | 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | static void DisplayPanedWindow(void *clientData); static void PanedWindowEventProc(void *clientData, XEvent *eventPtr); static void ProxyWindowEventProc(void *clientData, XEvent *eventPtr); static void DisplayProxyWindow(void *clientData); static void PanedWindowWorldChanged(void *instanceData); static Tcl_ObjCmdProc2 PanedWindowWidgetObjCmd; static void PanedWindowLostPaneProc(void *clientData, Tk_Window tkwin); static void PanedWindowReqProc(void *clientData, Tk_Window tkwin); static void ArrangePanes(void *clientData); static void Unlink(Pane *panePtr); static Pane * GetPane(PanedWindow *pwPtr, Tk_Window tkwin); |
︙ | ︙ | |||
429 430 431 432 433 434 435 | */ pwPtr = (PanedWindow *)ckalloc(sizeof(PanedWindow)); memset((void *)pwPtr, 0, (sizeof(PanedWindow))); pwPtr->tkwin = tkwin; pwPtr->display = Tk_Display(tkwin); pwPtr->interp = interp; | | | 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 | */ pwPtr = (PanedWindow *)ckalloc(sizeof(PanedWindow)); memset((void *)pwPtr, 0, (sizeof(PanedWindow))); pwPtr->tkwin = tkwin; pwPtr->display = Tk_Display(tkwin); pwPtr->interp = interp; pwPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(pwPtr->tkwin), PanedWindowWidgetObjCmd, pwPtr, PanedWindowCmdDeletedProc); pwPtr->optionTable = pwOpts->pwOptions; pwPtr->paneOpts = pwOpts->paneOpts; pwPtr->relief = TK_RELIEF_RAISED; pwPtr->gc = NULL; pwPtr->cursor = NULL; |
︙ | ︙ | |||
519 520 521 522 523 524 525 | *-------------------------------------------------------------- */ static int PanedWindowWidgetObjCmd( void *clientData, /* Information about square widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 | *-------------------------------------------------------------- */ static int PanedWindowWidgetObjCmd( void *clientData, /* Information about square widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj * const objv[]) /* Argument objects. */ { PanedWindow *pwPtr = (PanedWindow *)clientData; int result = TCL_OK; static const char *const optionStrings[] = { "add", "cget", "configure", "forget", "identify", "panecget", "paneconfigure", "panes", "proxy", "sash", NULL |
︙ | ︙ |
Changes to generic/tkScale.c.
︙ | ︙ | |||
157 158 159 160 161 162 163 | double tickResolution); static void ScaleCmdDeletedProc(void *clientData); static void ScaleEventProc(void *clientData, XEvent *eventPtr); static char * ScaleVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); | | | 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | double tickResolution); static void ScaleCmdDeletedProc(void *clientData); static void ScaleEventProc(void *clientData, XEvent *eventPtr); static char * ScaleVarProc(void *clientData, Tcl_Interp *interp, const char *name1, const char *name2, int flags); static Tcl_ObjCmdProc2 ScaleWidgetObjCmd; static void ScaleWorldChanged(void *instanceData); static void ScaleSetVariable(TkScale *scalePtr); /* * The structure below defines scale class behavior by means of procedures * that can be invoked from generic window code. */ |
︙ | ︙ | |||
272 273 274 275 276 277 278 | * ConfigureScale expects to have reasonable values (e.g. resource * pointers). */ scalePtr->tkwin = tkwin; scalePtr->display = Tk_Display(tkwin); scalePtr->interp = interp; | | | 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | * ConfigureScale expects to have reasonable values (e.g. resource * pointers). */ scalePtr->tkwin = tkwin; scalePtr->display = Tk_Display(tkwin); scalePtr->interp = interp; scalePtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(scalePtr->tkwin), ScaleWidgetObjCmd, scalePtr, ScaleCmdDeletedProc); scalePtr->optionTable = optionTable; scalePtr->orient = ORIENT_VERTICAL; scalePtr->widthObj = NULL; scalePtr->lengthObj = NULL; scalePtr->value = 0.0; |
︙ | ︙ | |||
368 369 370 371 372 373 374 | *-------------------------------------------------------------- */ static int ScaleWidgetObjCmd( void *clientData, /* Information about scale widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 | *-------------------------------------------------------------- */ static int ScaleWidgetObjCmd( void *clientData, /* Information about scale widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument strings. */ { TkScale *scalePtr = (TkScale *)clientData; Tcl_Obj *objPtr; int index, result; if (objc < 2) { |
︙ | ︙ |
Changes to generic/tkScrollbar.c.
︙ | ︙ | |||
96 97 98 99 100 101 102 | * Forward declarations for functions defined later in this file: */ static int ConfigureScrollbar(Tcl_Interp *interp, TkScrollbar *scrollPtr, Tcl_Size objc, Tcl_Obj *const objv[], int flags); static void ScrollbarCmdDeletedProc(void *clientData); | | | 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | * Forward declarations for functions defined later in this file: */ static int ConfigureScrollbar(Tcl_Interp *interp, TkScrollbar *scrollPtr, Tcl_Size objc, Tcl_Obj *const objv[], int flags); static void ScrollbarCmdDeletedProc(void *clientData); static Tcl_ObjCmdProc2 ScrollbarWidgetObjCmd; /* *-------------------------------------------------------------- * * Tk_ScrollbarObjCmd -- * * This function is invoked to process the "scrollbar" Tcl command. See |
︙ | ︙ | |||
150 151 152 153 154 155 156 | * which ConfigureScrollbar expects to have reasonable values (e.g. * resource pointers). */ scrollPtr->tkwin = newWin; scrollPtr->display = Tk_Display(newWin); scrollPtr->interp = interp; | | | 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | * which ConfigureScrollbar expects to have reasonable values (e.g. * resource pointers). */ scrollPtr->tkwin = newWin; scrollPtr->display = Tk_Display(newWin); scrollPtr->interp = interp; scrollPtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(scrollPtr->tkwin), ScrollbarWidgetObjCmd, scrollPtr, ScrollbarCmdDeletedProc); scrollPtr->vertical = 0; scrollPtr->widthObj = 0; scrollPtr->commandObj = NULL; scrollPtr->repeatDelay = 0; scrollPtr->repeatInterval = 0; |
︙ | ︙ | |||
210 211 212 213 214 215 216 | *-------------------------------------------------------------- */ static int ScrollbarWidgetObjCmd( void *clientData, /* Information about scrollbar widget. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 | *-------------------------------------------------------------- */ static int ScrollbarWidgetObjCmd( void *clientData, /* Information about scrollbar widget. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument strings. */ { TkScrollbar *scrollPtr = (TkScrollbar *)clientData; int result = TCL_OK, cmdIndex, length; Tcl_Size len; static const char *const commandNames[] = { "activate", "cget", "configure", "delta", "fraction", |
︙ | ︙ |
Changes to generic/tkTextDisp.c.
︙ | ︙ | |||
8952 8953 8954 8955 8956 8957 8958 | LOG("tk_textEmbWinDisplay", string); } #ifdef MAC_OSX_TK /* We need to redisplay the entire DLine so that the * background of the line will not contain artifacts left * by the scrolling. */ | | | | 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 | LOG("tk_textEmbWinDisplay", string); } #ifdef MAC_OSX_TK /* We need to redisplay the entire DLine so that the * background of the line will not contain artifacts left * by the scrolling. */ DisplayDLine(textPtr, dlPtr, NULL, pixmap); #else chunkPtr->layoutProcs->displayProc(textPtr, chunkPtr, x, dlPtr->spaceAbove, dlPtr->height - dlPtr->spaceAbove - dlPtr->spaceBelow, dlPtr->baseline - dlPtr->spaceAbove, NULL, (Drawable) None, dlPtr->y + dlPtr->spaceAbove); #endif } |
︙ | ︙ |
Changes to generic/ttk/ttkTheme.c.
︙ | ︙ | |||
1714 1715 1716 1717 1718 1719 1720 | { NULL, 0, 0 } }; static int StyleObjCmd( void *clientData, /* StylePackageData pointer */ Tcl_Interp *interp, /* Current interpreter */ | | | 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 | { NULL, 0, 0 } }; static int StyleObjCmd( void *clientData, /* StylePackageData pointer */ Tcl_Interp *interp, /* Current interpreter */ Tcl_Size objc, /* Number of arguments */ Tcl_Obj *const objv[]) /* Argument objects */ { return Ttk_InvokeEnsemble(StyleEnsemble, 1, clientData,interp,objc,objv); } MODULE_SCOPE int Ttk_InvokeEnsemble( /* Run an ensemble command */ |
︙ | ︙ | |||
1785 1786 1787 1788 1789 1790 1791 | * Register null element, used as a last-resort fallback: */ Ttk_RegisterElement(interp, pkgPtr->defaultTheme, "", &ttkNullElementSpec, 0); /* * Register commands: */ | | | 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 | * Register null element, used as a last-resort fallback: */ Ttk_RegisterElement(interp, pkgPtr->defaultTheme, "", &ttkNullElementSpec, 0); /* * Register commands: */ Tcl_CreateObjCommand2(interp, "::ttk::style", StyleObjCmd, pkgPtr, 0); nsPtr = Tcl_FindNamespace(interp, "::ttk", NULL, TCL_LEAVE_ERR_MSG); Tcl_Export(interp, nsPtr, "style", 0 /* dontResetList */); Ttk_RegisterElementFactory(interp, "from", Ttk_CloneElement, 0); } /*EOF*/ |
Changes to generic/ttk/ttkWidget.c.
︙ | ︙ | |||
159 160 161 162 163 164 165 | } /* WidgetInstanceObjCmd -- * Widget instance command implementation. */ static int WidgetInstanceObjCmd( | | | 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | } /* WidgetInstanceObjCmd -- * Widget instance command implementation. */ static int WidgetInstanceObjCmd( void *clientData, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { WidgetCore *corePtr = (WidgetCore *)clientData; const Ttk_Ensemble *commands = corePtr->widgetSpec->commands; int status; Tcl_Preserve(clientData); status = Ttk_InvokeEnsemble(commands,1, clientData,interp,objc,objv); |
︙ | ︙ | |||
376 377 378 379 380 381 382 | recordPtr = ckalloc(widgetSpec->recordSize); memset(recordPtr, 0, widgetSpec->recordSize); corePtr = (WidgetCore *)recordPtr; corePtr->tkwin = tkwin; corePtr->interp = interp; corePtr->widgetSpec = widgetSpec; | | | 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 | recordPtr = ckalloc(widgetSpec->recordSize); memset(recordPtr, 0, widgetSpec->recordSize); corePtr = (WidgetCore *)recordPtr; corePtr->tkwin = tkwin; corePtr->interp = interp; corePtr->widgetSpec = widgetSpec; corePtr->widgetCmd = Tcl_CreateObjCommand2(interp, Tk_PathName(tkwin), WidgetInstanceObjCmd, recordPtr, WidgetInstanceObjCmdDeleted); corePtr->optionTable = optionTable; corePtr->layout = NULL; corePtr->flags = 0; corePtr->state = 0; Tk_SetClass(tkwin, className); |
︙ | ︙ |
Changes to macosx/tkMacOSXBitmap.c.
︙ | ︙ | |||
339 340 341 342 343 344 345 | *---------------------------------------------------------------------- */ int TkMacOSXIconBitmapObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ | | | 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 | *---------------------------------------------------------------------- */ int TkMacOSXIconBitmapObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Tcl_HashEntry *hPtr; int isNew, result = TCL_ERROR; Tcl_Size i = 1, len; const char *name, *value; IconBitmap ib, *iconBitmap; |
︙ | ︙ |
Changes to macosx/tkMacOSXCursor.c.
︙ | ︙ | |||
363 364 365 366 367 368 369 | *---------------------------------------------------------------------- */ TkCursor * TkGetCursorByName( Tcl_Interp *interp, /* Interpreter to use for error reporting. */ TCL_UNUSED(Tk_Window), /* Window in which cursor will be used. */ | | | 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 | *---------------------------------------------------------------------- */ TkCursor * TkGetCursorByName( Tcl_Interp *interp, /* Interpreter to use for error reporting. */ TCL_UNUSED(Tk_Window), /* Window in which cursor will be used. */ const char *string) /* Description of cursor. See manual entry * for details on legal syntax. */ { TkMacOSXCursor *macCursorPtr = NULL; const char **argv = NULL; Tcl_Size argc; /* |
︙ | ︙ |
Changes to macosx/tkMacOSXDialog.c.
︙ | ︙ | |||
1400 1401 1402 1403 1404 1405 1406 | *---------------------------------------------------------------------- */ int TkMacOSXStandardAboutPanelObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ | | | 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 | *---------------------------------------------------------------------- */ int TkMacOSXStandardAboutPanelObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { if (objc > 1) { Tcl_WrongNumArgs(interp, 1, objv, NULL); return TCL_ERROR; } [NSApp orderFrontStandardAboutPanel:NSApp]; |
︙ | ︙ |
Changes to macosx/tkMacOSXFont.c.
︙ | ︙ | |||
438 439 440 441 442 443 444 | *---------------------------------------------------------------------- */ static int startOfClusterObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ | | | 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 | *---------------------------------------------------------------------- */ static int startOfClusterObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { TKNSString *S; const char *stringArg; Tcl_Size len, idx; if ((unsigned)(objc - 3) > 1) { Tcl_WrongNumArgs(interp, 1 , objv, "str start ?locale?"); |
︙ | ︙ | |||
496 497 498 499 500 501 502 | return TCL_OK; } static int endOfClusterObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ | | | 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 | return TCL_OK; } static int endOfClusterObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { TKNSString *S; char *stringArg; Tcl_Size idx, len; if ((unsigned)(objc - 3) > 1) { |
︙ | ︙ | |||
647 648 649 650 651 652 653 | whitespaceAndNewlineCharacterSet] retain]; cs = [whitespaceCharacterSet mutableCopy]; [cs removeCharactersInString:@" "]; lineendingCharacterSet = [cs copy]; [cs release]; } [pool drain]; | | | | 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 | whitespaceAndNewlineCharacterSet] retain]; cs = [whitespaceCharacterSet mutableCopy]; [cs removeCharactersInString:@" "]; lineendingCharacterSet = [cs copy]; [cs release]; } [pool drain]; Tcl_CreateObjCommand2(interp, "::tk::startOfCluster", startOfClusterObjCmd, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::endOfCluster", endOfClusterObjCmd, NULL, NULL); } /* *--------------------------------------------------------------------------- * * TkpGetNativeFont -- * |
︙ | ︙ |
Changes to macosx/tkMacOSXImage.c.
︙ | ︙ | |||
980 981 982 983 984 985 986 | { Drawable drawable = Tk_WindowId(tkwin); HIShapeRef srcRgn, dstRgn; HIMutableShapeRef dmgRgn = HIShapeCreateMutable(); NSRect srcRect, dstRect; int result = 0; NSView *view = TkMacOSXGetNSViewForDrawable(drawable); | | | | | 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 | { Drawable drawable = Tk_WindowId(tkwin); HIShapeRef srcRgn, dstRgn; HIMutableShapeRef dmgRgn = HIShapeCreateMutable(); NSRect srcRect, dstRect; int result = 0; NSView *view = TkMacOSXGetNSViewForDrawable(drawable); CGRect viewBounds = [view bounds]; /* * To compute the damage region correctly we need to clip the source and * destination rectangles to the NSView bounds in the same way that * XCopyArea does. */ CGRect bounds = ClipCopyRects(viewBounds, viewBounds, x, y, width, height); unsigned int w = bounds.size.width; unsigned int h = bounds.size.height; if (XCopyArea(Tk_Display(tkwin), drawable, drawable, gc, x, y, w, h, x + dx, y + dy) == Success) { /* * Compute the damage region, using Tk coordinates (origin at top left). */ |
︙ | ︙ | |||
1058 1059 1060 1061 1062 1063 1064 | CGImageRef img = NULL; CGRect dstRect; // XXXX Need to deal with pixmaps! NSView *srcView = TkMacOSXGetNSViewForDrawable(src); NSView *dstView = TkMacOSXGetNSViewForDrawable(dst); | | | 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 | CGImageRef img = NULL; CGRect dstRect; // XXXX Need to deal with pixmaps! NSView *srcView = TkMacOSXGetNSViewForDrawable(src); NSView *dstView = TkMacOSXGetNSViewForDrawable(dst); CGRect srcBounds = [srcView bounds]; CGRect dstBounds = [dstView bounds]; // To avoid distorting the image when it is drawn we must ensure that // the source and destination rectangles have the same size. This is // tricky because each of those rectangles will be clipped to the // bounds of its containing NSView. If the source gets clipped and // the destination does not, for example, then the shapes will differ. |
︙ | ︙ | |||
1615 1616 1617 1618 1619 1620 1621 | *---------------------------------------------------------------------- */ int TkMacOSXNSImageObjCmd( void *clientData, /* Information about the image model. */ Tcl_Interp *interp, /* Current interpreter. */ | | | 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 | *---------------------------------------------------------------------- */ int TkMacOSXNSImageObjCmd( void *clientData, /* Information about the image model. */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { TkMacOSXNSImageModel *modelPtr = (TkMacOSXNSImageModel *)clientData; Tk_OptionTable optionTable = Tk_CreateOptionTable(interp, systemImageOptions); static const char *const options[] = {"cget", "configure", NULL}; enum {CGET, CONFIGURE}; Tcl_Obj *objPtr; |
︙ | ︙ | |||
1732 1733 1734 1735 1736 1737 1738 | */ if (Tk_InitOptions(interp, (char *) modelPtr, optionTable, NULL) != TCL_OK || TkMacOSXNSImageConfigureModel(interp, modelPtr, objc, objv) != TCL_OK) { TkMacOSXNSImageDelete(modelPtr); return TCL_ERROR; } | | | 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 | */ if (Tk_InitOptions(interp, (char *) modelPtr, optionTable, NULL) != TCL_OK || TkMacOSXNSImageConfigureModel(interp, modelPtr, objc, objv) != TCL_OK) { TkMacOSXNSImageDelete(modelPtr); return TCL_ERROR; } Tcl_CreateObjCommand2(interp, name, TkMacOSXNSImageObjCmd, modelPtr, NULL); *clientDataPtr = modelPtr; return TCL_OK; } /* *---------------------------------------------------------------------- * |
︙ | ︙ |
Changes to macosx/tkMacOSXInit.c.
︙ | ︙ | |||
36 37 38 39 40 41 42 | static char scriptPath[PATH_MAX + 1] = ""; /* * Forward declarations... */ | | | | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | static char scriptPath[PATH_MAX + 1] = ""; /* * Forward declarations... */ static Tcl_ObjCmdProc2 TkMacOSXGetAppPathObjCmd; static Tcl_ObjCmdProc2 TkMacOSVersionObjCmd; #pragma mark TKApplication(TKInit) @implementation TKApplication @synthesize poolLock = _poolLock; @synthesize macOSVersion = _macOSVersion; @synthesize tkLiveResizeEnded = _tkLiveResizeEnded; |
︙ | ︙ | |||
689 690 691 692 693 694 695 | if (tkLibPath[0] != '\0') { Tcl_SetVar2(interp, "tk_library", NULL, tkLibPath, TCL_GLOBAL_ONLY); } if (scriptPath[0] != '\0') { Tcl_SetVar2(interp, "auto_path", NULL, scriptPath, TCL_GLOBAL_ONLY|TCL_LIST_ELEMENT|TCL_APPEND_VALUE); } | | | | | | | 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 | if (tkLibPath[0] != '\0') { Tcl_SetVar2(interp, "tk_library", NULL, tkLibPath, TCL_GLOBAL_ONLY); } if (scriptPath[0] != '\0') { Tcl_SetVar2(interp, "auto_path", NULL, scriptPath, TCL_GLOBAL_ONLY|TCL_LIST_ELEMENT|TCL_APPEND_VALUE); } Tcl_CreateObjCommand2(interp, "nsimage", TkMacOSXNSImageObjCmd, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::mac::standardAboutPanel", TkMacOSXStandardAboutPanelObjCmd, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::mac::iconBitmap", TkMacOSXIconBitmapObjCmd, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::mac::GetAppPath", TkMacOSXGetAppPathObjCmd, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::mac::macOSVersion", TkMacOSVersionObjCmd, NULL, NULL); MacSystrayInit(interp); MacPrint_Init(interp); return TCL_OK; } |
︙ | ︙ | |||
725 726 727 728 729 730 731 | *---------------------------------------------------------------------- */ static int TkMacOSXGetAppPathObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 | *---------------------------------------------------------------------- */ static int TkMacOSXGetAppPathObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { if (objc != 1) { Tcl_WrongNumArgs(interp, 1, objv, NULL); return TCL_ERROR; } |
︙ | ︙ | |||
813 814 815 816 817 818 819 | *---------------------------------------------------------------------- */ static int TkMacOSVersionObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 | *---------------------------------------------------------------------- */ static int TkMacOSVersionObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { static char version[16] = ""; if (objc > 1) { Tcl_WrongNumArgs(interp, 1, objv, NULL); return TCL_ERROR; } |
︙ | ︙ |
Changes to macosx/tkMacOSXPrint.c.
︙ | ︙ | |||
25 26 27 28 29 30 31 | #include "tkMacOSXImage.h" #include "tkMacOSXPrivate.h" NSString * fileName = nil; CFStringRef urlFile = NULL; /*Forward declaration of functions.*/ | | | | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include "tkMacOSXImage.h" #include "tkMacOSXPrivate.h" NSString * fileName = nil; CFStringRef urlFile = NULL; /*Forward declaration of functions.*/ static Tcl_ObjCmdProc2 StartPrint; static OSStatus FinishPrint(NSString *file, int buttonValue); static Tcl_ObjCmdProc2 MakePDF; int MacPrint_Init(Tcl_Interp * interp); /* Delegate class for print dialogs. */ @interface PrintDelegate: NSObject - (id) init; - (void) printPanelDidEnd: (NSPrintPanel *) printPanel returnCode: (int) returnCode |
︙ | ︙ | |||
76 77 78 79 80 81 82 | *---------------------------------------------------------------------- */ int StartPrint( TCL_UNUSED(void *), Tcl_Interp * interp, | | | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | *---------------------------------------------------------------------- */ int StartPrint( TCL_UNUSED(void *), Tcl_Interp * interp, Tcl_Size objc, Tcl_Obj *const objv[]) { NSPrintInfo * printInfo = [NSPrintInfo sharedPrintInfo]; NSPrintPanel * printPanel = [NSPrintPanel printPanel]; int accepted; PMPrintSession printSession; PMPrintSettings printSettings; |
︙ | ︙ | |||
339 340 341 342 343 344 345 | * Results: * Outputs PDF file. * *---------------------------------------------------------------------- */ int MakePDF( | | | | | | 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 | * Results: * Outputs PDF file. * *---------------------------------------------------------------------- */ int MakePDF( TCL_UNUSED(void *), Tcl_Interp *ip, Tcl_Size objc, Tcl_Obj *const objv[]) { Tk_Window path; Drawable d; unsigned int width, height; CFDataRef pdfData; if (objc != 2) { |
︙ | ︙ | |||
390 391 392 393 394 395 396 | * Printing module initialized. * *---------------------------------------------------------------------- */ int MacPrint_Init(Tcl_Interp * interp) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; | | | | 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 | * Printing module initialized. * *---------------------------------------------------------------------- */ int MacPrint_Init(Tcl_Interp * interp) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; Tcl_CreateObjCommand2(interp, "::tk::print::_print", StartPrint, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::print::_printcanvas", MakePDF, NULL, NULL); [pool release]; return TCL_OK; } /* * Local Variables: * mode: objc * c-basic-offset: 4 * fill-column: 79 * coding: utf-8 * End: */ |
Changes to macosx/tkMacOSXPrivate.h.
︙ | ︙ | |||
270 271 272 273 274 275 276 | MODULE_SCOPE NSColor* TkMacOSXGetNSColor(GC gc, unsigned long pixel); MODULE_SCOPE NSFont* TkMacOSXNSFontForFont(Tk_Font tkfont); MODULE_SCOPE NSDictionary* TkMacOSXNSFontAttributesForFont(Tk_Font tkfont); MODULE_SCOPE NSModalSession TkMacOSXGetModalSession(void); MODULE_SCOPE void TkMacOSXSelDeadWindow(TkWindow *winPtr); MODULE_SCOPE void TkMacOSXApplyWindowAttributes(TkWindow *winPtr, NSWindow *macWindow); | | | | | 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | MODULE_SCOPE NSColor* TkMacOSXGetNSColor(GC gc, unsigned long pixel); MODULE_SCOPE NSFont* TkMacOSXNSFontForFont(Tk_Font tkfont); MODULE_SCOPE NSDictionary* TkMacOSXNSFontAttributesForFont(Tk_Font tkfont); MODULE_SCOPE NSModalSession TkMacOSXGetModalSession(void); MODULE_SCOPE void TkMacOSXSelDeadWindow(TkWindow *winPtr); MODULE_SCOPE void TkMacOSXApplyWindowAttributes(TkWindow *winPtr, NSWindow *macWindow); MODULE_SCOPE Tcl_ObjCmdProc2 TkMacOSXStandardAboutPanelObjCmd; MODULE_SCOPE Tcl_ObjCmdProc2 TkMacOSXIconBitmapObjCmd; MODULE_SCOPE Tcl_ObjCmdProc2 TkMacOSXNSImageObjCmd; MODULE_SCOPE void TkMacOSXDrawSolidBorder(Tk_Window tkwin, GC gc, int inset, int thickness); MODULE_SCOPE int TkMacOSXServices_Init(Tcl_Interp *interp); MODULE_SCOPE Tcl_ObjCmdProc TkMacOSXRegisterServiceWidgetObjCmd; MODULE_SCOPE unsigned TkMacOSXAddVirtual(unsigned int keycode); MODULE_SCOPE int TkMacOSXNSImage_Init(Tcl_Interp *interp); MODULE_SCOPE void TkMacOSXWinNSBounds(TkWindow *winPtr, NSView *view, |
︙ | ︙ |
Changes to macosx/tkMacOSXSend.c.
︙ | ︙ | |||
289 290 291 292 293 294 295 | interpListPtr = riPtr; strcpy(riPtr->name, actualName); /* * TODO: DeleteProc */ | | | 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 | interpListPtr = riPtr; strcpy(riPtr->name, actualName); /* * TODO: DeleteProc */ Tcl_CreateObjCommand2(interp, "send", Tk_SendObjCmd, riPtr, NULL); if (Tcl_IsSafe(interp)) { Tcl_HideCommand(interp, "send", "send"); } Tcl_DStringFree(&dString); return riPtr->name; } |
︙ | ︙ | |||
319 320 321 322 323 324 325 | *-------------------------------------------------------------- */ int Tk_SendObjCmd( TCL_UNUSED(void *), /* Not used */ Tcl_Interp *interp, /* The interp we are sending from */ | | | 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 | *-------------------------------------------------------------- */ int Tk_SendObjCmd( TCL_UNUSED(void *), /* Not used */ Tcl_Interp *interp, /* The interp we are sending from */ Tcl_Size objc, /* Number of arguments */ Tcl_Obj *const objv[]) /* The arguments */ { enum { SEND_ASYNC, SEND_DISPLAYOF, SEND_LAST }; static const char *const sendOptions[] = { "-async", "-displayof", "--", NULL |
︙ | ︙ |
Changes to macosx/tkMacOSXSysTray.c.
︙ | ︙ | |||
190 191 192 193 194 195 196 | *---------------------------------------------------------------------- */ static int MacSystrayObjCmd( void *clientData, Tcl_Interp * interp, | | | 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | *---------------------------------------------------------------------- */ static int MacSystrayObjCmd( void *clientData, Tcl_Interp * interp, Tcl_Size objc, Tcl_Obj *const *objv) { Tk_Image tk_image; int result, idx; static const char *options[] = {"create", "modify", "destroy", NULL}; typedef enum {TRAY_CREATE, TRAY_MODIFY, TRAY_DESTROY} optionsEnum; |
︙ | ︙ | |||
396 397 398 399 400 401 402 | * *-------------------------------z--------------------------------------- */ static int SysNotifyObjCmd( TCL_UNUSED(void *), Tcl_Interp * interp, | | | 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 | * *-------------------------------z--------------------------------------- */ static int SysNotifyObjCmd( TCL_UNUSED(void *), Tcl_Interp * interp, Tcl_Size objc, Tcl_Obj *const *objv) { if (objc < 3) { Tcl_WrongNumArgs(interp, 1, objv, "title message"); return TCL_ERROR; } |
︙ | ︙ | |||
475 476 477 478 479 480 481 | /* * Initialize the TkStatusItem for this interpreter. */ StatusItemInfo info = (StatusItemInfo) ckalloc(sizeof(StatusItemInfo)); *info = 0; | | | | 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 | /* * Initialize the TkStatusItem for this interpreter. */ StatusItemInfo info = (StatusItemInfo) ckalloc(sizeof(StatusItemInfo)); *info = 0; Tcl_CreateObjCommand2(interp, "::tk::systray::_systray", MacSystrayObjCmd, info, MacSystrayDestroy); Tcl_CreateObjCommand2(interp, "::tk::sysnotify::_sysnotify", SysNotifyObjCmd, NULL, NULL); return TCL_OK; } /* * Local Variables: * mode: objc * c-basic-offset: 4 * fill-column: 79 * coding: utf-8 * End: */ |
Changes to macosx/tkMacOSXWindowEvent.c.
︙ | ︙ | |||
106 107 108 109 110 111 112 | NSPoint viewLocation = [view convertPoint:location fromView:nil]; if (NSPointInRect(viewLocation, NSInsetRect([view bounds], 2, 2))) { Tk_UpdatePointer((Tk_Window) winPtr, x, y, [NSApp tkButtonState]); } } else { | | | | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | NSPoint viewLocation = [view convertPoint:location fromView:nil]; if (NSPointInRect(viewLocation, NSInsetRect([view bounds], 2, 2))) { Tk_UpdatePointer((Tk_Window) winPtr, x, y, [NSApp tkButtonState]); } } else { systemDialog = win; } if (winPtr && Tk_IsMapped(winPtr)) { GenerateActivateEvents(winPtr, true); } } } - (void) windowBoundsChanged: (NSNotification *) notification |
︙ | ︙ |
Changes to tests/event.test.
︙ | ︙ | |||
1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 | bind all <Enter> {} destroy .one unset result } -result {|<Enter> NotifyNonlinear .one|} test event-9.19 {Successive destructions (pointer window + ancestors including its toplevel), destination is internal window, bypass root win} -setup { setup_win_mousepointer .one; # ensure the mouse pointer is where we want it to be (the .one toplevel is not itself used in this test) destroy .one toplevel .two pack propagate .two 0 wm geometry .two 300x300+100+100 create_and_pack_frames .two wm deiconify .two update idletasks; # make sure two is there | > > | 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 | bind all <Enter> {} destroy .one unset result } -result {|<Enter> NotifyNonlinear .one|} test event-9.19 {Successive destructions (pointer window + ancestors including its toplevel), destination is internal window, bypass root win} -setup { setup_win_mousepointer .one; # ensure the mouse pointer is where we want it to be (the .one toplevel is not itself used in this test) wm geometry . +500+500; # avoid an extraneous <Leave> event update idletasks destroy .one toplevel .two pack propagate .two 0 wm geometry .two 300x300+100+100 create_and_pack_frames .two wm deiconify .two update idletasks; # make sure two is there |
︙ | ︙ |
Changes to tests/filebox.test.
︙ | ︙ | |||
278 279 280 281 282 283 284 | destroy .t1 destroy .t2 } test fileDialog-2.7-$mode {"tk_getOpenFile: bad extension" -body { #ToPressButton $parent cancel set filename [tk_getOpenFile -filetypes { | | | | 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 | destroy .t1 destroy .t2 } test fileDialog-2.7-$mode {"tk_getOpenFile: bad extension" -body { #ToPressButton $parent cancel set filename [tk_getOpenFile -filetypes { {"Invalid extension" {x.y}} {"All files" {*}} }] } -result {} } foreach x [lsort -integer [array names filters]] { test filebox-3.$x-$mode "tk_getOpenFile command" nonUnixUserInteraction { ToPressButton $parent ok |
︙ | ︙ |
Changes to tests/focus.test.
︙ | ︙ | |||
44 45 46 47 48 49 50 | # in this application. It does it by arranging for another # application to grab the focus. The "after" and "update" stuff # is needed to wait long enough for pending actions to get through # the X server and possibly also the window manager. if {[tk windowingsystem] eq "aqua"} { proc focusClear {} { | | | | | | 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 | # in this application. It does it by arranging for another # application to grab the focus. The "after" and "update" stuff # is needed to wait long enough for pending actions to get through # the X server and possibly also the window manager. if {[tk windowingsystem] eq "aqua"} { proc focusClear {} { childInterp eval { focus -force . set i 0 while {[focus] != "."} { after 100 incr i if {$i > 10} { break } } } } } else { proc focusClear {} { dobg {after 200; focus -force .; update} after 400 update } } # Button used in some tests in the whole test file button .b -text .b -relief raised -bd 2 |
︙ | ︙ |
Changes to unix/Makefile.in.
︙ | ︙ | |||
650 651 652 653 654 655 656 | cat ${TK_ZIP_FILE} >> ${LIB_FILE}; \ else $(MACHER) append ${LIB_FILE} ${TK_ZIP_FILE} /tmp/macher_output; \ mv /tmp/macher_output ${LIB_FILE}; chmod u+x ${LIB_FILE}; \ fi; \ fi ${STUB_LIB_FILE}: ${STUB_LIB_OBJS} | | | 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 | cat ${TK_ZIP_FILE} >> ${LIB_FILE}; \ else $(MACHER) append ${LIB_FILE} ${TK_ZIP_FILE} /tmp/macher_output; \ mv /tmp/macher_output ${LIB_FILE}; chmod u+x ${LIB_FILE}; \ fi; \ fi ${STUB_LIB_FILE}: ${STUB_LIB_OBJS} @if test "x${LIB_FILE}" = "xcygtcl9tk${MAJOR_VERSION}.${MINOR_VERSION}.dll"; then \ (cd ${TOP_DIR}/win; ${MAKE} tcl9tk${MAJOR_VERSION}${MINOR_VERSION}.dll); \ cp "${TOP_DIR}/win/tcl9tk${MAJOR_VERSION}${MINOR_VERSION}.dll" .; \ fi rm -f $@ @MAKE_STUB_LIB@ # Build Aqua resource files |
︙ | ︙ | |||
1684 1685 1686 1687 1688 1689 1690 | ZIPNAME = tk${MAJOR_VERSION}${MINOR_VERSION}${PATCH_LEVEL}-src.zip DISTDIR = $(DISTROOT)/$(DISTNAME) DIST_INSTALL_DATA = $(INSTALL) -p -m 644 DIST_INSTALL_SCRIPT = $(INSTALL) -p -m 755 $(UNIX_DIR)/configure: $(UNIX_DIR)/configure.ac $(UNIX_DIR)/tcl.m4 \ $(UNIX_DIR)/aclocal.m4 | | | < | | | > | 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 | ZIPNAME = tk${MAJOR_VERSION}${MINOR_VERSION}${PATCH_LEVEL}-src.zip DISTDIR = $(DISTROOT)/$(DISTNAME) DIST_INSTALL_DATA = $(INSTALL) -p -m 644 DIST_INSTALL_SCRIPT = $(INSTALL) -p -m 755 $(UNIX_DIR)/configure: $(UNIX_DIR)/configure.ac $(UNIX_DIR)/tcl.m4 \ $(UNIX_DIR)/aclocal.m4 @cd $(UNIX_DIR); autoconf || \ echo "WARNING: Unable to rebuild $(UNIX_DIR)/configure. Please upgrade autoconf." $(UNIX_DIR)/tkConfig.h.in: $(MAC_OSX_DIR)/configure.ac @cd $(MAC_OSX_DIR); autoheader || touch $@ $(TOP_DIR)/manifest.uuid: printf "git-" >$(TOP_DIR)/manifest.uuid (cd $(TOP_DIR); git rev-parse HEAD >>$(TOP_DIR)/manifest.uuid || printf "unknown" >$(TOP_DIR)/manifest.uuid) dist: $(UNIX_DIR)/configure $(UNIX_DIR)/tkConfig.h.in $(UNIX_DIR)/tk.pc.in \ $(TOP_DIR)/doc/man.macros $(TOP_DIR)/manifest.uuid rm -rf $(DISTDIR) $(INSTALL_DATA_DIR) $(DISTDIR)/unix $(DIST_INSTALL_DATA) $(TOP_DIR)/manifest.uuid $(DISTDIR) $(DIST_INSTALL_DATA) $(UNIX_DIR)/*.c $(UNIX_DIR)/tkUnixDefault.h \ $(UNIX_DIR)/tkUnixInt.h $(UNIX_DIR)/tkUnixPort.h $(DISTDIR)/unix $(DIST_INSTALL_DATA) $(TOP_DIR)/license.terms $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix $(DIST_INSTALL_DATA) $(UNIX_DIR)/configure.ac $(UNIX_DIR)/tk.spec \ |
︙ | ︙ | |||
1744 1745 1746 1747 1748 1749 1750 | $(DIST_INSTALL_DATA) $(TOP_DIR)/win/rc/*.{rc,cur,ico} $(DISTDIR)/win/rc $(INSTALL_DATA_DIR) $(DISTDIR)/macosx $(DIST_INSTALL_DATA) $(MAC_OSX_DIR)/GNUmakefile $(MAC_OSX_DIR)/README \ $(MAC_OSX_DIR)/*.icns $(MAC_OSX_DIR)/*.tiff \ $(MAC_OSX_DIR)/*.[ch] $(MAC_OSX_DIR)/*.in \ $(MAC_OSX_DIR)/*.ac $(MAC_OSX_DIR)/*.sdef \ $(DISTDIR)/macosx | < | 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 | $(DIST_INSTALL_DATA) $(TOP_DIR)/win/rc/*.{rc,cur,ico} $(DISTDIR)/win/rc $(INSTALL_DATA_DIR) $(DISTDIR)/macosx $(DIST_INSTALL_DATA) $(MAC_OSX_DIR)/GNUmakefile $(MAC_OSX_DIR)/README \ $(MAC_OSX_DIR)/*.icns $(MAC_OSX_DIR)/*.tiff \ $(MAC_OSX_DIR)/*.[ch] $(MAC_OSX_DIR)/*.in \ $(MAC_OSX_DIR)/*.ac $(MAC_OSX_DIR)/*.sdef \ $(DISTDIR)/macosx $(DIST_INSTALL_DATA) $(TOP_DIR)/license.terms $(DISTDIR)/macosx $(INSTALL_DATA_DIR) $(DISTDIR)/compat $(DIST_INSTALL_DATA) $(TOP_DIR)/license.terms \ $(TOP_DIR)/compat/stdbool.h $(DISTDIR)/compat $(INSTALL_DATA_DIR) $(DISTDIR)/xlib $(DIST_INSTALL_DATA) $(XLIB_DIR)/*.[ch] $(DISTDIR)/xlib $(DIST_INSTALL_DATA) $(TOP_DIR)/license.terms $(DISTDIR)/xlib |
︙ | ︙ |
Changes to unix/configure.
︙ | ︙ | |||
4772 4773 4774 4775 4776 4777 4778 | DL_LIBS="-ldl" LDFLAGS="$LDFLAGS -export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; CYGWIN_*|MINGW32_*|MSYS_*) SHLIB_CFLAGS="-fno-common" | | | 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 | DL_LIBS="-ldl" LDFLAGS="$LDFLAGS -export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; CYGWIN_*|MINGW32_*|MSYS_*) SHLIB_CFLAGS="-fno-common" SHLIB_LD='${CC} -shared -Wl,--out-implib,$(patsubst cyg%.dll,lib%.dll.a,${LIB_FILE})' SHLIB_SUFFIX=".dll" DL_OBJS="tclLoadDl.o" PLAT_OBJS='${CYGWIN_OBJS}' PLAT_SRCS='${CYGWIN_SRCS}' DL_LIBS="-ldl" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" |
︙ | ︙ | |||
8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 | #-------------------------------------------------------------------- # The statements below define a collection of symbols related to # building libtk as a shared library instead of a static library. #-------------------------------------------------------------------- eval eval "TK_UNSHARED_LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}" eval eval "TK_SHARED_LIB_SUFFIX=${SHARED_LIB_SUFFIX}" eval "TK_LIB_FILE=libtcl9tk${LIB_SUFFIX}" # tkConfig.sh needs a version of the _LIB_SUFFIX that has been eval'ed # since on some platforms TK_LIB_FILE contains shell escapes. eval "TK_LIB_FILE=${TK_LIB_FILE}" if test "${SHARED_BUILD}" = "1" -a "${SHLIB_SUFFIX}" != ""; then | > > > > > | 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 | #-------------------------------------------------------------------- # The statements below define a collection of symbols related to # building libtk as a shared library instead of a static library. #-------------------------------------------------------------------- eval eval "TK_UNSHARED_LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}" eval eval "TK_SHARED_LIB_SUFFIX=${SHARED_LIB_SUFFIX}" if test "$ac_cv_cygwin" = "yes" -a "$SHARED_BUILD" != "0"; then eval "TK_LIB_FILE=cygtcl9tk${LIB_SUFFIX}" EXTRA_INSTALL_BINARIES='$(INSTALL_LIBRARY) $(patsubst cyg%.dll,lib%.dll.a,${LIB_FILE}) "$(LIB_INSTALL_DIR)"' else eval "TK_LIB_FILE=libtcl9tk${LIB_SUFFIX}" fi # tkConfig.sh needs a version of the _LIB_SUFFIX that has been eval'ed # since on some platforms TK_LIB_FILE contains shell escapes. eval "TK_LIB_FILE=${TK_LIB_FILE}" if test "${SHARED_BUILD}" = "1" -a "${SHLIB_SUFFIX}" != ""; then |
︙ | ︙ |
Changes to unix/configure.ac.
1 2 3 4 5 6 | ! /bin/bash -norc dnl This file is an input file used by the GNU "autoconf" program to dnl generate the file "configure", which is run during Tk installation dnl to configure the system for the local environment. AC_INIT([tk],[9.1]) | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ! /bin/bash -norc dnl This file is an input file used by the GNU "autoconf" program to dnl generate the file "configure", which is run during Tk installation dnl to configure the system for the local environment. AC_INIT([tk],[9.1]) AC_PREREQ([2.72]) dnl This is only used when included from macosx/configure.ac m4_ifdef([SC_USE_CONFIG_HEADERS], [ AC_CONFIG_HEADERS([tkConfig.h:../unix/tkConfig.h.in]) AC_CONFIG_COMMANDS_PRE([DEFS="-DHAVE_TK_CONFIG_H -imacros tkConfig.h"]) AH_TOP([ #ifndef _TKCONFIG |
︙ | ︙ | |||
535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 | #-------------------------------------------------------------------- # The statements below define a collection of symbols related to # building libtk as a shared library instead of a static library. #-------------------------------------------------------------------- eval eval "TK_UNSHARED_LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}" eval eval "TK_SHARED_LIB_SUFFIX=${SHARED_LIB_SUFFIX}" eval "TK_LIB_FILE=libtcl9tk${LIB_SUFFIX}" # tkConfig.sh needs a version of the _LIB_SUFFIX that has been eval'ed # since on some platforms TK_LIB_FILE contains shell escapes. eval "TK_LIB_FILE=${TK_LIB_FILE}" if test "${SHARED_BUILD}" = "1" -a "${SHLIB_SUFFIX}" != ""; then | > > > > > | 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 | #-------------------------------------------------------------------- # The statements below define a collection of symbols related to # building libtk as a shared library instead of a static library. #-------------------------------------------------------------------- eval eval "TK_UNSHARED_LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}" eval eval "TK_SHARED_LIB_SUFFIX=${SHARED_LIB_SUFFIX}" if test "$ac_cv_cygwin" = "yes" -a "$SHARED_BUILD" != "0"; then eval "TK_LIB_FILE=cygtcl9tk${LIB_SUFFIX}" EXTRA_INSTALL_BINARIES='$(INSTALL_LIBRARY) $(patsubst cyg%.dll,lib%.dll.a,${LIB_FILE}) "$(LIB_INSTALL_DIR)"' else eval "TK_LIB_FILE=libtcl9tk${LIB_SUFFIX}" fi # tkConfig.sh needs a version of the _LIB_SUFFIX that has been eval'ed # since on some platforms TK_LIB_FILE contains shell escapes. eval "TK_LIB_FILE=${TK_LIB_FILE}" if test "${SHARED_BUILD}" = "1" -a "${SHLIB_SUFFIX}" != ""; then |
︙ | ︙ |
Changes to unix/tcl.m4.
︙ | ︙ | |||
1075 1076 1077 1078 1079 1080 1081 | DL_LIBS="-ldl" LDFLAGS="$LDFLAGS -export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; CYGWIN_*|MINGW32_*|MSYS_*) SHLIB_CFLAGS="-fno-common" | | | 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 | DL_LIBS="-ldl" LDFLAGS="$LDFLAGS -export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; CYGWIN_*|MINGW32_*|MSYS_*) SHLIB_CFLAGS="-fno-common" SHLIB_LD='${CC} -shared -Wl,--out-implib,$(patsubst cyg%.dll,lib%.dll.a,${LIB_FILE})' SHLIB_SUFFIX=".dll" DL_OBJS="tclLoadDl.o" PLAT_OBJS='${CYGWIN_OBJS}' PLAT_SRCS='${CYGWIN_SRCS}' DL_LIBS="-ldl" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" |
︙ | ︙ |
Changes to unix/tkUnixCursor.c.
︙ | ︙ | |||
201 202 203 204 205 206 207 | *---------------------------------------------------------------------- */ TkCursor * TkGetCursorByName( Tcl_Interp *interp, /* Interpreter to use for error reporting. */ Tk_Window tkwin, /* Window in which cursor will be used. */ | | | 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | *---------------------------------------------------------------------- */ TkCursor * TkGetCursorByName( Tcl_Interp *interp, /* Interpreter to use for error reporting. */ Tk_Window tkwin, /* Window in which cursor will be used. */ const char *string) /* Description of cursor. See manual entry for * details on legal syntax. */ { TkUnixCursor *cursorPtr = NULL; Cursor cursor = None; Tcl_Size argc; const char **argv = NULL; Display *display = Tk_Display(tkwin); |
︙ | ︙ |
Changes to unix/tkUnixPrint.c.
︙ | ︙ | |||
13 14 15 16 17 18 19 | #include "tkUnixInt.h" #ifdef HAVE_CUPS #include <cups/cups.h> typedef int (CupsSubCmdOp)(Tcl_Interp *, int, Tcl_Obj *const []); | | | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include "tkUnixInt.h" #ifdef HAVE_CUPS #include <cups/cups.h> typedef int (CupsSubCmdOp)(Tcl_Interp *, int, Tcl_Obj *const []); static Tcl_ObjCmdProc2 Cups_Cmd; static CupsSubCmdOp DefaultPrinterOp; static CupsSubCmdOp GetPrintersOp; static CupsSubCmdOp PrintOp; static Tcl_ArgvGenFuncProc ParseEnumOptions; static Tcl_ArgvGenFuncProc ParseOptions; static Tcl_ArgvGenFuncProc ParseMargins; static Tcl_ArgvGenFuncProc ParseNup; |
︙ | ︙ | |||
51 52 53 54 55 56 57 | return printer; } static int Cups_Cmd( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | return printer; } static int Cups_Cmd( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { static const struct CupsCmds { const char *subcmd; CupsSubCmdOp *subCmd; } cupsCmds[] = { {"defaultprinter" , DefaultPrinterOp}, |
︙ | ︙ | |||
511 512 513 514 515 516 517 | #ifdef HAVE_CUPS Cups_Init(Tcl_Interp *interp) { Tcl_Namespace *ns; ns = Tcl_FindNamespace(interp, "::tk::print", NULL, TCL_GLOBAL_ONLY); if (!ns) ns = Tcl_CreateNamespace(interp, "::tk::print", NULL, NULL); | | | 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 | #ifdef HAVE_CUPS Cups_Init(Tcl_Interp *interp) { Tcl_Namespace *ns; ns = Tcl_FindNamespace(interp, "::tk::print", NULL, TCL_GLOBAL_ONLY); if (!ns) ns = Tcl_CreateNamespace(interp, "::tk::print", NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::print::cups", Cups_Cmd, NULL, NULL); Tcl_Export(interp, ns, "cups", 0); #else Cups_Init(TCL_UNUSED(Tcl_Interp *)) { /* Do nothing */ #endif return TCL_OK; } |
Changes to unix/tkUnixSend.c.
︙ | ︙ | |||
833 834 835 836 837 838 839 | riPtr = (RegisteredInterp *)ckalloc(sizeof(RegisteredInterp)); riPtr->interp = interp; riPtr->dispPtr = winPtr->dispPtr; riPtr->nextPtr = tsdPtr->interpListPtr; tsdPtr->interpListPtr = riPtr; riPtr->name = NULL; | | | 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 | riPtr = (RegisteredInterp *)ckalloc(sizeof(RegisteredInterp)); riPtr->interp = interp; riPtr->dispPtr = winPtr->dispPtr; riPtr->nextPtr = tsdPtr->interpListPtr; tsdPtr->interpListPtr = riPtr; riPtr->name = NULL; Tcl_CreateObjCommand2(interp, "send", Tk_SendObjCmd, riPtr, DeleteProc); if (Tcl_IsSafe(interp)) { Tcl_HideCommand(interp, "send", "send"); } break; } if (riPtr->interp == interp) { /* |
︙ | ︙ | |||
943 944 945 946 947 948 949 | */ int Tk_SendObjCmd( TCL_UNUSED(void *), /* Information about sender (only dispPtr * field is used). */ Tcl_Interp *interp, /* Current interpreter. */ | | | 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 | */ int Tk_SendObjCmd( TCL_UNUSED(void *), /* Information about sender (only dispPtr * field is used). */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument strings. */ { enum { SEND_ASYNC, SEND_DISPLAYOF, SEND_LAST }; static const char *const sendOptions[] = { "-async", "-displayof", "--", NULL |
︙ | ︙ |
Changes to unix/tkUnixSysNotify.c.
︙ | ︙ | |||
43 44 45 46 47 48 49 | TCL_DECLARE_MUTEX(ln_mutex); /* * Forward declarations for procedures defined in this file. */ static Tcl_CmdDeleteProc SysNotifyDeleteCmd; | | | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | TCL_DECLARE_MUTEX(ln_mutex); /* * Forward declarations for procedures defined in this file. */ static Tcl_CmdDeleteProc SysNotifyDeleteCmd; static Tcl_ObjCmdProc2 SysNotifyCmd; /* *---------------------------------------------------------------------- * * SysNotifyDeleteCmd -- * * Delete notification and clean up. |
︙ | ︙ | |||
98 99 100 101 102 103 104 | *---------------------------------------------------------------------- */ static int SysNotifyCmd( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | *---------------------------------------------------------------------- */ static int SysNotifyCmd( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { const char *title; const char *message; const char *icon; const char *appname = "Wish"; void *notif; |
︙ | ︙ | |||
214 215 216 217 218 219 220 | #undef LN_SYM } } ln_fns.nopen++; Tcl_MutexUnlock(&ln_mutex); if (!notify_init) return TCL_OK; | | | 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | #undef LN_SYM } } ln_fns.nopen++; Tcl_MutexUnlock(&ln_mutex); if (!notify_init) return TCL_OK; Tcl_CreateObjCommand2(interp, "::tk::sysnotify::_sysnotify", SysNotifyCmd, interp, SysNotifyDeleteCmd); return TCL_OK; } /* * Local Variables: * mode: c * c-basic-offset: 4 * fill-column: 78 * coding: utf-8 * End: */ |
Changes to unix/tkUnixSysTray.c.
︙ | ︙ | |||
194 195 196 197 198 199 200 | Tcl_Obj *classObj; /* option: -class */ } DockIcon; /* * Forward declarations for procedures defined in this file. */ | | | | 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | Tcl_Obj *classObj; /* option: -class */ } DockIcon; /* * Forward declarations for procedures defined in this file. */ static Tcl_ObjCmdProc2 TrayIconCreateCmd; static Tcl_ObjCmdProc2 TrayIconObjectCmd; static int TrayIconConfigureMethod(DockIcon *icon, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[], int addflags); static int PostBalloon(DockIcon* icon, const char *utf8msg, long timeout); static void CancelBalloon(DockIcon* icon, int msgid); static int QueryTrayOrientation(DockIcon* icon); |
︙ | ︙ | |||
244 245 246 247 248 249 250 | *---------------------------------------------------------------------- */ static int TrayIconObjectCmd( void *cd, Tcl_Interp *interp, | | | 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 | *---------------------------------------------------------------------- */ static int TrayIconObjectCmd( void *cd, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { DockIcon *icon = (DockIcon*)cd; int bbox[4] = {0,0,0,0}; Tcl_Obj * bboxObj; int wcmd; int i; |
︙ | ︙ | |||
910 911 912 913 914 915 916 | Tcl_GetString(icon->imageObj), IgnoreImageChange, NULL); Tcl_RestoreInterpState(icon->interp,saved); } if (icon->photo && !icon->offscreenImage) { icon->offscreenImage = XGetImage(Tk_Display(icon->drawingWin), icon->offscreenPixmap, 0, 0, w, h, AllPlanes, ZPixmap); } | | | 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 | Tcl_GetString(icon->imageObj), IgnoreImageChange, NULL); Tcl_RestoreInterpState(icon->interp,saved); } if (icon->photo && !icon->offscreenImage) { icon->offscreenImage = XGetImage(Tk_Display(icon->drawingWin), icon->offscreenPixmap, 0, 0, w, h, AllPlanes, ZPixmap); } if (icon->offscreenGC == NULL) { XGCValues gcv; gcv.function = GXcopy; gcv.plane_mask = AllPlanes; gcv.foreground = 0; gcv.background = 0; icon->offscreenGC = Tk_GetGC(icon->drawingWin, GCFunction|GCPlaneMask|GCForeground|GCBackground, &gcv); |
︙ | ︙ | |||
1582 1583 1584 1585 1586 1587 1588 | *---------------------------------------------------------------------- */ static int TrayIconCreateCmd( void *cd, Tcl_Interp *interp, | | | 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 | *---------------------------------------------------------------------- */ static int TrayIconCreateCmd( void *cd, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { Tk_Window mainWindow = (Tk_Window)cd; DockIcon *icon; icon = (DockIcon*)attemptckalloc(sizeof(DockIcon)); if (!icon) { |
︙ | ︙ | |||
1654 1655 1656 1657 1658 1659 1660 | if (objc>3) { if (TrayIconConfigureMethod(icon, interp, objc-2, objv+2, ICON_CONF_XEMBED|ICON_CONF_IMAGE|ICON_CONF_FIRST_TIME) != TCL_OK) { goto handleErrors; } } | | | 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 | if (objc>3) { if (TrayIconConfigureMethod(icon, interp, objc-2, objv+2, ICON_CONF_XEMBED|ICON_CONF_IMAGE|ICON_CONF_FIRST_TIME) != TCL_OK) { goto handleErrors; } } icon->widgetCmd = Tcl_CreateObjCommand2(interp, Tcl_GetString(objv[1]), TrayIconObjectCmd, icon, TrayIconDeleteProc); /* Sometimes a command just can't be created... */ if (!icon->widgetCmd) { goto handleErrors; } |
︙ | ︙ | |||
1701 1702 1703 1704 1705 1706 1707 | *---------------------------------------------------------------------- */ int Tktray_Init( Tcl_Interp *interp) { | | | 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 | *---------------------------------------------------------------------- */ int Tktray_Init( Tcl_Interp *interp) { Tcl_CreateObjCommand2(interp, "::tk::systray::_systray", TrayIconCreateCmd, Tk_MainWindow(interp), NULL); return TCL_OK; } /* * Local Variables: * mode: c * c-basic-offset: 4 * fill-column: 79 * coding: utf-8 * End: */ |
Changes to win/configure.ac.
1 2 3 4 5 6 7 | #! /bin/bash -norc # This file is an input file used by the GNU "autoconf" program to # generate the file "configure", which is run during Tk installation # to configure the system for the local environment. AC_INIT([tk],[9.1]) AC_CONFIG_SRCDIR([../generic/tk.h]) | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #! /bin/bash -norc # This file is an input file used by the GNU "autoconf" program to # generate the file "configure", which is run during Tk installation # to configure the system for the local environment. AC_INIT([tk],[9.1]) AC_CONFIG_SRCDIR([../generic/tk.h]) AC_PREREQ([2.72]) # The following define is needed when building with Cygwin since newer # versions of autoconf incorrectly set SHELL to /bin/bash instead of # /bin/sh. The bash shell seems to suffer from some strange failures. SHELL=/bin/sh TK_VERSION=9.1 |
︙ | ︙ |
Changes to win/tkWinCursor.c.
︙ | ︙ | |||
89 90 91 92 93 94 95 | *---------------------------------------------------------------------- */ TkCursor * TkGetCursorByName( Tcl_Interp *interp, /* Interpreter to use for error reporting. */ Tk_Window tkwin, /* Window in which cursor will be used. */ | | | 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | *---------------------------------------------------------------------- */ TkCursor * TkGetCursorByName( Tcl_Interp *interp, /* Interpreter to use for error reporting. */ Tk_Window tkwin, /* Window in which cursor will be used. */ const char *string) /* Description of cursor. See manual entry for * details on legal syntax. */ { const struct CursorName *namePtr; TkWinCursor *cursorPtr; Tcl_Size argc; const char **argv = NULL; (void)tkwin; |
︙ | ︙ |
Changes to win/tkWinGDI.c.
︙ | ︙ | |||
32 33 34 35 36 37 38 | HDC, int, int, int, int, int, int, int, int); /* Arc, Chord, Pie. */ #else typedef BOOL WINAPI (*DrawFunc) ( HDC, int, int, int, int, int, int, int, int); /* Arc, Chord, Pie. */ #endif /* Real functions. */ | | | | | | | | | | | | | | 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 | HDC, int, int, int, int, int, int, int, int); /* Arc, Chord, Pie. */ #else typedef BOOL WINAPI (*DrawFunc) ( HDC, int, int, int, int, int, int, int, int); /* Arc, Chord, Pie. */ #endif /* Real functions. */ static Tcl_ObjCmdProc2 GdiArc; static Tcl_ObjCmdProc2 GdiBitmap; static Tcl_ObjCmdProc2 GdiCharWidths; static Tcl_ObjCmdProc2 GdiImage; static Tcl_ObjCmdProc2 GdiPhoto; static Tcl_ObjCmdProc2 GdiLine; static Tcl_ObjCmdProc2 GdiOval; static Tcl_ObjCmdProc2 GdiPolygon; static Tcl_ObjCmdProc2 GdiRectangle; static Tcl_ObjCmdProc2 GdiText; static Tcl_ObjCmdProc2 GdiMap; static Tcl_ObjCmdProc2 GdiCopyBits; /* Local copies of similar routines elsewhere in Tcl/Tk. */ static int GdiGetColor(Tcl_Obj *nameObj, COLORREF *color); /* * Helper functions. */ |
︙ | ︙ | |||
81 82 83 84 85 86 87 | static int DIBNumColors(LPBITMAPINFOHEADER lpDIB); static int PalEntriesOnDevice(HDC hDC); static HPALETTE GetSystemPalette(void); static void GetDisplaySize(LONG *width, LONG *height); static int GdiWordToWeight(const char *str); static int GdiParseFontWords(Tcl_Interp *interp, LOGFONTW *lf, const char *str[], int numargs); | | | | | | | | | | 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 | static int DIBNumColors(LPBITMAPINFOHEADER lpDIB); static int PalEntriesOnDevice(HDC hDC); static HPALETTE GetSystemPalette(void); static void GetDisplaySize(LONG *width, LONG *height); static int GdiWordToWeight(const char *str); static int GdiParseFontWords(Tcl_Interp *interp, LOGFONTW *lf, const char *str[], int numargs); static Tcl_ObjCmdProc2 PrintSelectPrinter; static Tcl_ObjCmdProc2 PrintOpenPrinter; static Tcl_ObjCmdProc2 PrintClosePrinter; static Tcl_ObjCmdProc2 PrintOpenDoc; static Tcl_ObjCmdProc2 PrintCloseDoc; static Tcl_ObjCmdProc2 PrintOpenPage; static Tcl_ObjCmdProc2 PrintClosePage; /* * Global state. */ static PRINTDLGW pd; static DOCINFOW di; static WCHAR *localPrinterName = NULL; static int copies, paper_width, paper_height, dpi_x, dpi_y; static LPDEVNAMES devnames; static HDC printDC; /* * To make the "subcommands" follow a standard convention, add them to this * array. The first element is the subcommand name, and the second a standard * Tcl command handler. */ static const struct gdi_command { const char *command_string; Tcl_ObjCmdProc2 *command; } gdi_commands[] = { { "arc", GdiArc }, { "bitmap", GdiBitmap }, { "characters", GdiCharWidths }, { "image", GdiImage }, { "line", GdiLine }, { "map", GdiMap }, |
︙ | ︙ | |||
140 141 142 143 144 145 146 | * *---------------------------------------------------------------------- */ static int GdiArc( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | * *---------------------------------------------------------------------- */ static int GdiArc( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { static const char usage_message[] = "::tk::print::_gdi arc hdc x1 y1 x2 y2 " "-extent angle -start angle -style arcstyle " "-fill color -outline color " "-width dimension -dash dashrule " |
︙ | ︙ | |||
167 168 169 170 171 172 173 | HGDIOBJ oldobj = NULL; int dodash = 0; const char *dashdata = 0; drawfunc = Pie; /* Verrrrrry simple for now.... */ | | | | | 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 | HGDIOBJ oldobj = NULL; int dodash = 0; const char *dashdata = 0; drawfunc = Pie; /* Verrrrrry simple for now.... */ if (objc < 6) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } hDC = printDC; if ((Tcl_GetIntFromObj(interp, objv[2], &x1) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[3], &y1) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[4], &x2) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[5], &y2) != TCL_OK)) { return TCL_ERROR; } objc -= 6; objv += 6; while (objc >= 2) { if (strcmp(Tcl_GetString(objv[0]), "-extent") == 0) { extent = atof(Tcl_GetString(objv[1])); } else if (strcmp(Tcl_GetString(objv[0]), "-start") == 0) { start = atof(Tcl_GetString(objv[1])); } else if (strcmp(Tcl_GetString(objv[0]), "-style") == 0) { if (strcmp(Tcl_GetString(objv[1]), "pieslice") == 0) { drawfunc = Pie; |
︙ | ︙ | |||
223 224 225 226 227 228 229 | dashdata = Tcl_GetString(objv[1]); } } else { /* Don't know that option! */ Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } | | | 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 | dashdata = Tcl_GetString(objv[1]); } } else { /* Don't know that option! */ Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } objc -= 2; objv += 2; } xr0 = xr1 = (x1 + x2) / 2; yr0 = yr1 = (y1 + y2) / 2; /* * The angle used by the arc must be "warped" by the eccentricity of the |
︙ | ︙ | |||
298 299 300 301 302 303 304 | * *---------------------------------------------------------------------- */ static int GdiBitmap( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 | * *---------------------------------------------------------------------- */ static int GdiBitmap( TCL_UNUSED(void *), Tcl_Interp *interp, TCL_UNUSED(Tcl_Size), Tcl_Obj *const *objv) { /* * Skip this for now. Should be based on common code with the copybits * command. */ |
︙ | ︙ | |||
331 332 333 334 335 336 337 | * *---------------------------------------------------------------------- */ static int GdiImage( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 | * *---------------------------------------------------------------------- */ static int GdiImage( TCL_UNUSED(void *), Tcl_Interp *interp, TCL_UNUSED(Tcl_Size), Tcl_Obj *const *objv) { /* Skip this for now..... */ /* Should be based on common code with the copybits command. */ Tcl_WrongNumArgs(interp, 1, objv, "hdc x y -anchor [center|n|e|s|w] -image name\n" "Not implemented yet. Sorry!"); |
︙ | ︙ | |||
364 365 366 367 368 369 370 | * *---------------------------------------------------------------------- */ static int GdiPhoto( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 | * *---------------------------------------------------------------------- */ static int GdiPhoto( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { static const char usage_message[] = "::tk::print::_gdi photo hdc [-destination x y [w [h]]] -photo name\n"; HDC dst; int dst_x = 0, dst_y = 0, dst_w = 0, dst_h = 0; int nx, ny, sll; |
︙ | ︙ | |||
388 389 390 391 392 393 394 | int retval = TCL_OK; /* * Parse the arguments. */ /* HDC is required. */ | | | | | 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 | int retval = TCL_OK; /* * Parse the arguments. */ /* HDC is required. */ if (objc < 2) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } dst = printDC; /* * Next, check to see if 'dst' can support BitBlt. * If not, raise an error. */ if ((GetDeviceCaps(dst, RASTERCAPS) & RC_STRETCHDIB) == 0) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "::tk::print::_gdi photo not supported on device context (0x%s)", Tcl_GetString(objv[1]))); return TCL_ERROR; } /* Parse the command line arguments. */ for (j = 2; j < objc; j++) { if (strcmp(Tcl_GetString(objv[j]), "-destination") == 0) { double x, y, w, h; int count = 0; char dummy; if (j < objc) { count = sscanf(Tcl_GetString(objv[++j]), "%lf%lf%lf%lf%c", &x, &y, &w, &h, &dummy); } if (count < 2 || count > 4) { /* Destination must provide at least 2 arguments. */ Tcl_SetObjResult(interp, Tcl_ObjPrintf( |
︙ | ︙ | |||
622 623 624 625 626 627 628 | * *---------------------------------------------------------------------- */ static int GdiLine( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 | * *---------------------------------------------------------------------- */ static int GdiLine( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { static const char usage_message[] = "::tk::print::_gdi line hdc x1 y1 ... xn yn " "-arrow [first|last|both|none] -arrowshape {d1 d2 d3} " "-dash dashlist " "-capstyle [butt|projecting|round] -fill color " |
︙ | ︙ | |||
659 660 661 662 663 664 665 | const char *dashdata = 0; arrowshape[0] = 8; arrowshape[1] = 10; arrowshape[2] = 3; /* Verrrrrry simple for now.... */ | | | | | | | | | | | | | | | | | | | 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 | const char *dashdata = 0; arrowshape[0] = 8; arrowshape[1] = 10; arrowshape[2] = 3; /* Verrrrrry simple for now.... */ if (objc < 6) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } hDC = printDC; polypoints = (POINT *)attemptckalloc((objc - 1) * sizeof(POINT)); if (polypoints == 0) { Tcl_AppendResult(interp, "Out of memory in GdiLine", (char *)NULL); return TCL_ERROR; } if ((Tcl_GetIntFromObj(interp, objv[2], (int *)&polypoints[0].x) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[3], (int *)&polypoints[0].y) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[4], (int *)&polypoints[1].x) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[5], (int *)&polypoints[1].y) != TCL_OK) ) { return TCL_ERROR; } objc -= 6; objv += 6; npoly = 2; while (objc >= 2) { /* Check for a number. */ x = strtoul(Tcl_GetString(objv[0]), &strend, 0); if (strend > Tcl_GetString(objv[0])) { /* One number.... */ y = strtoul(Tcl_GetString(objv[1]), &strend, 0); if (strend > Tcl_GetString(objv[1])) { /* TWO numbers!. */ polypoints[npoly].x = x; polypoints[npoly].y = y; npoly++; objc -= 2; objv += 2; } else { /* Only one number... Assume a usage error. */ ckfree(polypoints); Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } } else { if (strcmp(Tcl_GetString(*objv), "-arrow") == 0) { if (strcmp(Tcl_GetString(objv[1]), "none") == 0) { doarrow = 0; } else if (strcmp(Tcl_GetString(objv[1]), "both") == 0) { doarrow = 3; } else if (strcmp(Tcl_GetString(objv[1]), "first") == 0) { doarrow = 2; } else if (strcmp(Tcl_GetString(objv[1]), "last") == 0) { doarrow = 1; } objv += 2; objc -= 2; } else if (strcmp(Tcl_GetString(*objv), "-arrowshape") == 0) { /* List of 3 numbers--set arrowshape array. */ int a1, a2, a3; char dummy; if (sscanf(Tcl_GetString(objv[1]), "%d%d%d%c", &a1, &a2, &a3, &dummy) == 3 && a1 > 0 && a2 > 0 && a3 > 0) { arrowshape[0] = a1; arrowshape[1] = a2; arrowshape[2] = a3; } /* Else the argument was bad. */ objv += 2; objc -= 2; } else if (strcmp(Tcl_GetString(*objv), "-capstyle") == 0) { objv += 2; objc -= 2; } else if (strcmp(Tcl_GetString(*objv), "-fill") == 0) { if (GdiGetColor(objv[1], &linecolor)) { dolinecolor = 1; } objv += 2; objc -= 2; } else if (strcmp(Tcl_GetString(*objv), "-joinstyle") == 0) { objv += 2; objc -= 2; } else if (strcmp(Tcl_GetString(*objv), "-smooth") == 0) { /* Argument is true/false or 1/0 or bezier. */ if (Tcl_GetString(objv[1])) { switch (Tcl_GetString(objv[1])[0]) { case 't': case 'T': case '1': case 'b': case 'B': /* bezier. */ dosmooth = 1; break; default: dosmooth = 0; break; } objv += 2; objc -= 2; } } else if (strcmp(Tcl_GetString(*objv), "-splinesteps") == 0) { if (Tcl_GetIntFromObj(interp, objv[1], &nStep) != TCL_OK) { return TCL_ERROR; } objv += 2; objc -= 2; } else if (strcmp(Tcl_GetString(*objv), "-dash") == 0) { if (Tcl_GetString(objv[1])) { dodash = 1; dashdata = Tcl_GetString(objv[1]); } objv += 2; objc -= 2; } else if (strcmp(Tcl_GetString(*objv), "-dashoffset") == 0) { objv += 2; objc -= 2; } else if (strcmp(Tcl_GetString(*objv), "-stipple") == 0) { objv += 2; objc -= 2; } else if (strcmp(Tcl_GetString(*objv), "-width") == 0) { if (Tcl_GetIntFromObj(interp, objv[1], &width) != TCL_OK) { return TCL_ERROR; } objv += 2; objc -= 2; } else { /* It's an unknown argument!. */ objc--; objv++; } /* Check for arguments * Most of the arguments affect the "Pen" */ } } |
︙ | ︙ | |||
923 924 925 926 927 928 929 | * *---------------------------------------------------------------------- */ static int GdiOval( TCL_UNUSED(void *), Tcl_Interp *interp, | | | | 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 | * *---------------------------------------------------------------------- */ static int GdiOval( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { static const char usage_message[] = "::tk::print::_gdi oval hdc x1 y1 x2 y2 -fill color -outline color " "-stipple bitmap -width linewid"; int x1, y1, x2, y2; HDC hDC; HPEN hPen; int width = 0; COLORREF linecolor = 0, fillcolor = 0; int dolinecolor = 0, dofillcolor = 0; HBRUSH hBrush = NULL; LOGBRUSH lbrush; HGDIOBJ oldobj = NULL; int dodash = 0; const char *dashdata = 0; /* Verrrrrry simple for now.... */ if (objc < 6) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } hDC = printDC; if ((Tcl_GetIntFromObj(interp, objv[2], &x1) != TCL_OK) |
︙ | ︙ | |||
966 967 968 969 970 971 972 | x2 = x3; } if (y1 > y2) { int y3 = y1; y1 = y2; y2 = y3; } | | | | 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 | x2 = x3; } if (y1 > y2) { int y3 = y1; y1 = y2; y2 = y3; } objc -= 6; objv += 6; while (objc > 0) { /* Now handle any other arguments that occur. */ if (strcmp(Tcl_GetString(objv[0]), "-fill") == 0) { if (Tcl_GetString(objv[1]) && GdiGetColor(objv[1], &fillcolor)) { dofillcolor = 1; } } else if (strcmp(Tcl_GetString(objv[0]), "-outline") == 0) { if (Tcl_GetString(objv[1]) && GdiGetColor(objv[1], &linecolor)) { |
︙ | ︙ | |||
994 995 996 997 998 999 1000 | } else if (strcmp(Tcl_GetString(objv[0]), "-dash") == 0) { if (Tcl_GetString(objv[1])) { dodash = 1; dashdata = Tcl_GetString(objv[1]); } } objv += 2; | | | 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 | } else if (strcmp(Tcl_GetString(objv[0]), "-dash") == 0) { if (Tcl_GetString(objv[1])) { dodash = 1; dashdata = Tcl_GetString(objv[1]); } } objv += 2; objc -= 2; } if (dofillcolor) { GdiMakeBrush(fillcolor, 0, &lbrush, hDC, &hBrush); } else { oldobj = SelectObject(hDC, GetStockObject(HOLLOW_BRUSH)); } |
︙ | ︙ | |||
1042 1043 1044 1045 1046 1047 1048 | * *---------------------------------------------------------------------- */ static int GdiPolygon( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 | * *---------------------------------------------------------------------- */ static int GdiPolygon( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { static const char usage_message[] = "::tk::print::_gdi polygon hdc x1 y1 ... xn yn " "-fill color -outline color -smooth [true|false|bezier] " "-splinesteps number -stipple bitmap -width linewid"; |
︙ | ︙ | |||
1069 1070 1071 1072 1073 1074 1075 | HBRUSH hBrush = NULL; HGDIOBJ oldobj = NULL; int dodash = 0; const char *dashdata = 0; /* Verrrrrry simple for now.... */ | | | | | | | 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 | HBRUSH hBrush = NULL; HGDIOBJ oldobj = NULL; int dodash = 0; const char *dashdata = 0; /* Verrrrrry simple for now.... */ if (objc < 6) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } hDC = printDC; polypoints = (POINT *)attemptckalloc((objc - 1) * sizeof(POINT)); if (polypoints == 0) { /* TODO: unreachable */ Tcl_AppendResult(interp, "Out of memory in GdiLine", (char *)NULL); return TCL_ERROR; } if ((Tcl_GetIntFromObj(interp, objv[2], (int *)&polypoints[0].x) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[3], (int *)&polypoints[0].y) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[4], (int *)&polypoints[1].x) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[5], (int *)&polypoints[1].y) != TCL_OK)) { return TCL_ERROR; } objc -= 6; objv += 6; npoly = 2; while (objc >= 2) { /* Check for a number */ x = strtoul(Tcl_GetString(objv[0]), &strend, 0); if (strend > Tcl_GetString(objv[0])) { /* One number.... */ y = strtoul(Tcl_GetString(objv[1]), &strend, 0); if (strend > Tcl_GetString(objv[1])) { /* TWO numbers!. */ polypoints[npoly].x = x; polypoints[npoly].y = y; npoly++; objc -= 2; objv += 2; } else { /* Only one number... Assume a usage error. */ ckfree(polypoints); Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } |
︙ | ︙ | |||
1157 1158 1159 1160 1161 1162 1163 | } } else if (strcmp(Tcl_GetString(objv[0]), "-dash") == 0) { if (Tcl_GetString(objv[1])) { dodash = 1; dashdata = Tcl_GetString(objv[1]); } } | | | 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 | } } else if (strcmp(Tcl_GetString(objv[0]), "-dash") == 0) { if (Tcl_GetString(objv[1])) { dodash = 1; dashdata = Tcl_GetString(objv[1]); } } objc -= 2; objv += 2; } } if (dofillcolor) { GdiMakeBrush(fillcolor, 0, &lbrush, hDC, &hBrush); } else { |
︙ | ︙ | |||
1218 1219 1220 1221 1222 1223 1224 | * *---------------------------------------------------------------------- */ static int GdiRectangle( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 | * *---------------------------------------------------------------------- */ static int GdiRectangle( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { static const char usage_message[] = "::tk::print::_gdi rectangle hdc x1 y1 x2 y2 " "-fill color -outline color " "-stipple bitmap -width linewid"; |
︙ | ︙ | |||
1240 1241 1242 1243 1244 1245 1246 | HBRUSH hBrush = NULL; HGDIOBJ oldobj = NULL; int dodash = 0; const char *dashdata = 0; /* Verrrrrry simple for now.... */ | | | 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 | HBRUSH hBrush = NULL; HGDIOBJ oldobj = NULL; int dodash = 0; const char *dashdata = 0; /* Verrrrrry simple for now.... */ if (objc < 6) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } hDC = printDC; if ((Tcl_GetIntFromObj(interp, objv[2], &x1) != TCL_OK) |
︙ | ︙ | |||
1263 1264 1265 1266 1267 1268 1269 | x2 = x3; } if (y1 > y2) { int y3 = y1; y1 = y2; y2 = y3; } | | | | 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 | x2 = x3; } if (y1 > y2) { int y3 = y1; y1 = y2; y2 = y3; } objc -= 6; objv += 6; /* Now handle any other arguments that occur. */ while (objc > 1) { if (strcmp(Tcl_GetString(objv[0]), "-fill") == 0) { if (Tcl_GetString(objv[1]) && GdiGetColor(objv[1], &fillcolor)) { dofillcolor = 1; } } else if (strcmp(Tcl_GetString(objv[0]), "-outline") == 0) { if (Tcl_GetString(objv[1]) && GdiGetColor(objv[1], &linecolor)) { dolinecolor = 1; |
︙ | ︙ | |||
1291 1292 1293 1294 1295 1296 1297 | } else if (strcmp(Tcl_GetString(objv[0]), "-dash") == 0) { if (Tcl_GetString(objv[1])) { dodash = 1; dashdata = Tcl_GetString(objv[1]); } } | | | 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 | } else if (strcmp(Tcl_GetString(objv[0]), "-dash") == 0) { if (Tcl_GetString(objv[1])) { dodash = 1; dashdata = Tcl_GetString(objv[1]); } } objc -= 2; objv += 2; } /* * Note: If any fill is specified, the function must create a brush and * put the coordinates in a RECTANGLE structure, and call FillRect. * FillRect requires a BRUSH / color. |
︙ | ︙ | |||
1348 1349 1350 1351 1352 1353 1354 | *---------------------------------------------------------------------- */ static int GdiCharWidths( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 | *---------------------------------------------------------------------- */ static int GdiCharWidths( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { static const char usage_message[] = "::tk::print::_gdi characters hdc [-font fontname] [-array ary]"; /* * Returns widths of characters from font in an associative array. * Font is currently selected font for HDC if not specified. |
︙ | ︙ | |||
1370 1371 1372 1373 1374 1375 1376 | HGDIOBJ oldfont; int made_font = 0; const char *aryvarname = "GdiCharWidths"; /* For now, assume 256 characters in the font.... */ int widths[256]; int retval; | | | | | | | | | 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 | HGDIOBJ oldfont; int made_font = 0; const char *aryvarname = "GdiCharWidths"; /* For now, assume 256 characters in the font.... */ int widths[256]; int retval; if (objc < 2) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } hDC = printDC; objc -= 2; objv += 2; while (objc > 0) { if (strcmp(Tcl_GetString(objv[0]), "-font") == 0) { objc--; objv++; if (GdiMakeLogFont(interp, Tcl_GetString(objv[0]), &lf, hDC)) { if ((hfont = CreateFontIndirectW(&lf)) != NULL) { made_font = 1; oldfont = SelectObject(hDC, hfont); } } /* Else leave the font alone!. */ } else if (strcmp(Tcl_GetString(objv[0]), "-array") == 0) { objv++; objc--; if (objc > 0) { aryvarname = Tcl_GetString(objv[0]); } } objv++; objc--; } /* Now, get the widths using the correct function for font type. */ if ((retval = GetCharWidth32W(hDC, 0, 255, widths)) == FALSE) { retval = GetCharWidthW(hDC, 0, 255, widths); } |
︙ | ︙ | |||
1463 1464 1465 1466 1467 1468 1469 | * *---------------------------------------------------------------------- */ int GdiText( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 | * *---------------------------------------------------------------------- */ int GdiText( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { static const char usage_message[] = "::tk::print::_gdi text hdc x y -anchor [center|n|e|s|w] " "-fill color -font fontname " "-justify [left|right|center] " "-stipple bitmap -text string -width linelen " |
︙ | ︙ | |||
1492 1493 1494 1495 1496 1497 1498 | int dobgmode = 0; int bgmode; COLORREF textcolor = 0; int usesingle = 0; WCHAR *wstring; Tcl_DString tds; | | | | | | | | | | | | | | | | | 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 | int dobgmode = 0; int bgmode; COLORREF textcolor = 0; int usesingle = 0; WCHAR *wstring; Tcl_DString tds; if (objc < 4) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } /* Parse the command. */ hDC = printDC; if ((Tcl_GetIntFromObj(interp, objv[2], &x) != TCL_OK) || (Tcl_GetIntFromObj(interp, objv[3], &y) != TCL_OK)) { return TCL_ERROR; } objc -= 4; objv += 4; sizerect.left = sizerect.right = x; sizerect.top = sizerect.bottom = y; while (objc > 0) { if (strcmp(Tcl_GetString(objv[0]), "-anchor") == 0) { objc--; objv++; if (objc > 0) { Tk_GetAnchor(interp, Tcl_GetString(objv[0]), &anchor); } } else if (strcmp(Tcl_GetString(objv[0]), "-justify") == 0) { objc--; objv++; if (objc > 0) { if (strcmp(Tcl_GetString(objv[0]), "left") == 0) { format_flags |= DT_LEFT; } else if (strcmp(Tcl_GetString(objv[0]), "center") == 0) { format_flags |= DT_CENTER; } else if (strcmp(Tcl_GetString(objv[0]), "right") == 0) { format_flags |= DT_RIGHT; } } } else if (strcmp(Tcl_GetString(objv[0]), "-text") == 0) { objc--; objv++; if (objc > 0) { string = Tcl_GetString(objv[0]); } } else if (strcmp(Tcl_GetString(objv[0]), "-font") == 0) { objc--; objv++; if (GdiMakeLogFont(interp, Tcl_GetString(objv[0]), &lf, hDC)) { if ((hfont = CreateFontIndirectW(&lf)) != NULL) { made_font = 1; oldfont = SelectObject(hDC, hfont); } } /* Else leave the font alone! */ } else if (strcmp(Tcl_GetString(objv[0]), "-stipple") == 0) { objc--; objv++; /* Not implemented yet. */ } else if (strcmp(Tcl_GetString(objv[0]), "-fill") == 0) { objc--; objv++; /* Get text color. */ if (GdiGetColor(objv[0], &textcolor)) { dotextcolor = 1; } } else if (strcmp(Tcl_GetString(objv[0]), "-width") == 0) { objc--; objv++; if (objc > 0) { int value; if (Tcl_GetIntFromObj(interp, objv[0], &value) != TCL_OK) { return TCL_ERROR; } sizerect.right += value; } /* If a width is specified, break at words. */ format_flags |= DT_WORDBREAK; } else if (strcmp(Tcl_GetString(objv[0]), "-single") == 0) { usesingle = 1; } else if (strcmp(Tcl_GetString(objv[0]), "-backfill") == 0) { dobgmode = 1; } objc--; objv++; } if (string == 0) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } |
︙ | ︙ | |||
1818 1819 1820 1821 1822 1823 1824 | * *---------------------------------------------------------------------- */ static int GdiMap( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 | * *---------------------------------------------------------------------- */ static int GdiMap( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { static const char usage_message[] = "::tk::print::_gdi map hdc " "[-logical x[y]] [-physical x[y]] " "[-offset {x y} ] [-default] [-mode mode]"; HDC hdc; |
︙ | ︙ | |||
1842 1843 1844 1845 1846 1847 1848 | int use_logical = 0; int use_physical = 0; int use_offset = 0; int use_default = 0; int use_mode = 0; /* Required parameter: HDC for printer. */ | | | | | | | 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 | int use_logical = 0; int use_physical = 0; int use_offset = 0; int use_default = 0; int use_mode = 0; /* Required parameter: HDC for printer. */ if (objc < 2) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } hdc = printDC; if ((mapmode = GdiGetHdcInfo(hdc, &worigin, &wextent, &vorigin, &vextent)) == 0) { /* Failed!. */ Tcl_AppendResult(interp, "Cannot get current HDC info", (char *)NULL); return TCL_ERROR; } /* Parse remaining arguments. */ for (argno = 2; argno < objc; argno++) { if (strcmp(Tcl_GetString(objv[argno]), "-default") == 0) { vextent.cx = vextent.cy = wextent.cx = wextent.cy = 1; vorigin.x = vorigin.y = worigin.x = worigin.y = 0; mapmode = MM_TEXT; use_default = 1; } else if (strcmp(Tcl_GetString(objv[argno]), "-mode") == 0) { if (argno + 1 >= objc) { need_usage = 1; } else { mapmode = GdiNameToMode(Tcl_GetString(objv[argno + 1])); use_mode = 1; argno++; } } else if (strcmp(Tcl_GetString(objv[argno]), "-offset") == 0) { if (argno + 1 >= objc) { need_usage = 1; } else { /* It would be nice if this parsed units as well.... */ if (sscanf(Tcl_GetString(objv[argno + 1]), "%ld%ld", &vorigin.x, &vorigin.y) == 2) { use_offset = 1; } else { need_usage = 1; } argno++; } } else if (strcmp(Tcl_GetString(objv[argno]), "-logical") == 0) { if (argno + 1 >= objc) { need_usage = 1; } else { int count; argno++; /* In "real-life", this should parse units as well.. */ if ((count = sscanf(Tcl_GetString(objv[argno]), "%ld%ld", |
︙ | ︙ | |||
1906 1907 1908 1909 1910 1911 1912 | } } else { mapmode = MM_ANISOTROPIC; use_logical = 2; } } } else if (strcmp(Tcl_GetString(objv[argno]), "-physical") == 0) { | | | 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 | } } else { mapmode = MM_ANISOTROPIC; use_logical = 2; } } } else if (strcmp(Tcl_GetString(objv[argno]), "-physical") == 0) { if (argno + 1 >= objc) { need_usage = 1; } else { int count; argno++; /* In "real-life", this should parse units as well.. */ if ((count = sscanf(Tcl_GetString(objv[argno]), "%ld%ld", |
︙ | ︙ | |||
2001 2002 2003 2004 2005 2006 2007 | * *---------------------------------------------------------------------- */ static int GdiCopyBits( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 | * *---------------------------------------------------------------------- */ static int GdiCopyBits( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const *objv) { /* Goal: get the Tk_Window from the top-level * convert it to an HWND * get the HDC * Do a bitblt to the given hdc * Use an optional parameter to point to an arbitrary window instead of |
︙ | ︙ | |||
2033 2034 2035 2036 2037 2038 2039 | LPBITMAPINFOHEADER lpDIBHdr; LPSTR lpBits; enum PrintType wintype = PTWindow; int hgt, wid; char *strend; long errcode; | | | 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 | LPBITMAPINFOHEADER lpDIBHdr; LPSTR lpBits; enum PrintType wintype = PTWindow; int hgt, wid; char *strend; long errcode; Tcl_Size k; /* Variables to remember what we saw in the arguments. */ int do_window = 0; int do_screen = 0; int do_scale = 0; int do_print = 1; |
︙ | ︙ | |||
2063 2064 2065 2066 2067 2068 2069 | return TCL_ERROR; } /* * Parse the arguments. */ /* HDC is required. */ | | | | 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 | return TCL_ERROR; } /* * Parse the arguments. */ /* HDC is required. */ if (objc < 2) { Tcl_AppendResult(interp, usage_message, (char *)NULL); return TCL_ERROR; } dst = printDC; /* * Next, check to see if 'dst' can support BitBlt. If not, raise an * error. */ if ((GetDeviceCaps(dst, RASTERCAPS) & RC_BITBLT) == 0) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "Can't do bitmap operations on device context\n")); return TCL_ERROR; } /* Loop through the remaining arguments. */ for (k=2; k<objc; k++) { if (strcmp(Tcl_GetString(objv[k]), "-window") == 0) { if (Tcl_GetString(objv[k+1]) && Tcl_GetString(objv[k+1])[0] == '.') { do_window = 1; workwin = Tk_NameToWindow(interp, window_spec = Tcl_GetString(objv[++k]), mainWin); if (workwin == NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( "Can't find window %s in this application", |
︙ | ︙ | |||
3534 3535 3536 3537 3538 3539 3540 | namespacePtr = Tcl_CreateNamespace(interp, gdiName, NULL, (Tcl_NamespaceDeleteProc *) NULL); for (i=0; i<numCommands; i++) { char buffer[100]; snprintf(buffer, sizeof(buffer), "%s::%s", gdiName, gdi_commands[i].command_string); | | | | | | | | | | 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 | namespacePtr = Tcl_CreateNamespace(interp, gdiName, NULL, (Tcl_NamespaceDeleteProc *) NULL); for (i=0; i<numCommands; i++) { char buffer[100]; snprintf(buffer, sizeof(buffer), "%s::%s", gdiName, gdi_commands[i].command_string); Tcl_CreateObjCommand2(interp, buffer, gdi_commands[i].command, NULL, (Tcl_CmdDeleteProc *) 0); Tcl_Export(interp, namespacePtr, gdi_commands[i].command_string, 0); } Tcl_CreateEnsemble(interp, gdiName, namespacePtr, 0); /* * The other printing-related commands. */ Tcl_CreateObjCommand2(interp, "::tk::print::_selectprinter", PrintSelectPrinter, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::print::_openprinter", PrintOpenPrinter, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::print::_closeprinter", PrintClosePrinter, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::print::_opendoc", PrintOpenDoc, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::print::_closedoc", PrintCloseDoc, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::print::_openpage", PrintOpenPage, NULL, NULL); Tcl_CreateObjCommand2(interp, "::tk::print::_closepage", PrintClosePage, NULL, NULL); return TCL_OK; } /* Print API functions. */ /*---------------------------------------------------------------------- |
︙ | ︙ | |||
3578 3579 3580 3581 3582 3583 3584 | * *---------------------------------------------------------------------- */ static int PrintSelectPrinter( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 | * *---------------------------------------------------------------------- */ static int PrintSelectPrinter( TCL_UNUSED(void *), Tcl_Interp *interp, TCL_UNUSED(Tcl_Size), TCL_UNUSED(Tcl_Obj* const*)) { LPCWSTR printerName = NULL; PDEVMODEW returnedDevmode = NULL; PDEVMODEW localDevmode = NULL; copies = 0; |
︙ | ︙ | |||
3679 3680 3681 3682 3683 3684 3685 | * * ------------------------------------------------------------------------- */ int PrintOpenPrinter( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 | * * ------------------------------------------------------------------------- */ int PrintOpenPrinter( TCL_UNUSED(void *), Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { Tcl_DString ds; if (objc < 2) { Tcl_WrongNumArgs(interp, 1, objv, "printer"); return TCL_ERROR; |
︙ | ︙ | |||
3729 3730 3731 3732 3733 3734 3735 | * * ------------------------------------------------------------------------- */ int PrintClosePrinter( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 | * * ------------------------------------------------------------------------- */ int PrintClosePrinter( TCL_UNUSED(void *), Tcl_Interp *interp, TCL_UNUSED(Tcl_Size), TCL_UNUSED(Tcl_Obj *const *)) { if (printDC == NULL) { Tcl_AppendResult(interp, "unable to establish device context", (char *)NULL); return TCL_ERROR; } |
︙ | ︙ | |||
3757 3758 3759 3760 3761 3762 3763 | * * ------------------------------------------------------------------------- */ int PrintOpenDoc( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 | * * ------------------------------------------------------------------------- */ int PrintOpenDoc( TCL_UNUSED(void *), Tcl_Interp *interp, TCL_UNUSED(Tcl_Size), TCL_UNUSED(Tcl_Obj *const *)) { int output = 0; if (printDC == NULL) { Tcl_AppendResult(interp, "unable to establish device context", (char *)NULL); return TCL_ERROR; |
︙ | ︙ | |||
3795 3796 3797 3798 3799 3800 3801 | * * ------------------------------------------------------------------------- */ int PrintCloseDoc( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 | * * ------------------------------------------------------------------------- */ int PrintCloseDoc( TCL_UNUSED(void *), Tcl_Interp *interp, TCL_UNUSED(Tcl_Size), TCL_UNUSED(Tcl_Obj *const *)) { if (printDC == NULL) { Tcl_AppendResult(interp, "unable to establish device context", (char *)NULL); return TCL_ERROR; } |
︙ | ︙ | |||
3827 3828 3829 3830 3831 3832 3833 | * * ------------------------------------------------------------------------- */ int PrintOpenPage( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 | * * ------------------------------------------------------------------------- */ int PrintOpenPage( TCL_UNUSED(void *), Tcl_Interp *interp, TCL_UNUSED(Tcl_Size), TCL_UNUSED(Tcl_Obj *const *)) { if (printDC == NULL) { Tcl_AppendResult(interp, "unable to establish device context", (char *)NULL); return TCL_ERROR; } |
︙ | ︙ | |||
3860 3861 3862 3863 3864 3865 3866 | * * ------------------------------------------------------------------------- */ int PrintClosePage( TCL_UNUSED(void *), Tcl_Interp *interp, | | | 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 | * * ------------------------------------------------------------------------- */ int PrintClosePage( TCL_UNUSED(void *), Tcl_Interp *interp, TCL_UNUSED(Tcl_Size), TCL_UNUSED(Tcl_Obj *const *)) { if (printDC == NULL) { Tcl_AppendResult(interp, "unable to establish device context", (char *)NULL); return TCL_ERROR; } |
︙ | ︙ |
Changes to win/tkWinMenu.c.
︙ | ︙ | |||
172 173 174 175 176 177 178 | const Tk_FontMetrics *fmPtr, int *widthPtr, int *heightPtr); static void GetTearoffEntryGeometry(TkMenu *menuPtr, TkMenuEntry *mePtr, Tk_Font tkfont, const Tk_FontMetrics *fmPtr, int *widthPtr, int *heightPtr); static int GetNewID(TkMenuEntry *mePtr, WORD *menuIDPtr); | | | 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 | const Tk_FontMetrics *fmPtr, int *widthPtr, int *heightPtr); static void GetTearoffEntryGeometry(TkMenu *menuPtr, TkMenuEntry *mePtr, Tk_Font tkfont, const Tk_FontMetrics *fmPtr, int *widthPtr, int *heightPtr); static int GetNewID(TkMenuEntry *mePtr, WORD *menuIDPtr); static Tcl_ObjCmdProc2 TkWinMenuKeyObjCmd; static void MenuSelectEvent(TkMenu *menuPtr); static void ReconfigureWindowsMenu(void *clientData); static void RecursivelyClearActiveMenu(TkMenu *menuPtr); static void SetDefaults(int firstTime); static LRESULT CALLBACK TkWinMenuProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); static LRESULT CALLBACK TkWinEmbeddedMenuProc(HWND hwnd, UINT message, |
︙ | ︙ | |||
2141 2142 2143 2144 2145 2146 2147 | *-------------------------------------------------------------- */ static int TkWinMenuKeyObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ | | | 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 | *-------------------------------------------------------------- */ static int TkWinMenuKeyObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { UINT scanCode; UINT virtualKey; XEvent *eventPtr; Tk_Window tkwin; TkWindow *winPtr; |
︙ | ︙ | |||
2281 2282 2283 2284 2285 2286 2287 | * We need to set up the bindings for menubars. These have to recreate * windows events, so we need to invoke C code to generate the * WM_SYSKEYDOWNS and WM_SYSKEYUPs appropriately. Trick is, we can't * create a C level binding directly since we may want to modify the * binding in Tcl code. */ | | | 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 | * We need to set up the bindings for menubars. These have to recreate * windows events, so we need to invoke C code to generate the * WM_SYSKEYDOWNS and WM_SYSKEYUPs appropriately. Trick is, we can't * create a C level binding directly since we may want to modify the * binding in Tcl code. */ (void) Tcl_CreateObjCommand2(interp, "tk::WinMenuKey", TkWinMenuKeyObjCmd, Tk_MainWindow(interp), NULL); (void) Tk_CreateBinding(interp, bindingTable, (void *)uid, "<Alt_L>", "tk::WinMenuKey %W %N", 0); (void) Tk_CreateBinding(interp, bindingTable, (void *)uid, "<KeyRelease-Alt_L>", "tk::WinMenuKey %W %N", 0); |
︙ | ︙ |
Changes to win/tkWinSend.c.
︙ | ︙ | |||
168 169 170 171 172 173 174 | memset(riPtr, 0, sizeof(RegisteredInterp)); riPtr->interp = interp; objPtr = &riPtr->obj; hr = TkWinSendCom_CreateInstance(interp, &IID_IUnknown, (void **) objPtr); | | | 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 | memset(riPtr, 0, sizeof(RegisteredInterp)); riPtr->interp = interp; objPtr = &riPtr->obj; hr = TkWinSendCom_CreateInstance(interp, &IID_IUnknown, (void **) objPtr); Tcl_CreateObjCommand2(interp, "send", Tk_SendObjCmd, riPtr, CmdDeleteProc); if (Tcl_IsSafe(interp)) { Tcl_HideCommand(interp, "send", "send"); } Tcl_SetAssocData(interp, "tkWinSend::ri", NULL, riPtr); } else { RevokeObjectRegistration(riPtr); |
︙ | ︙ | |||
319 320 321 322 323 324 325 | */ int Tk_SendObjCmd( void *clientData, /* Information about sender (only dispPtr * field is used). */ Tcl_Interp *interp, /* Current interpreter. */ | | | 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 | */ int Tk_SendObjCmd( void *clientData, /* Information about sender (only dispPtr * field is used). */ Tcl_Interp *interp, /* Current interpreter. */ Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument strings. */ { enum { SEND_ASYNC, SEND_DISPLAYOF, SEND_LAST }; static const char *const sendOptions[] = { "-async", "-displayof", "--", NULL |
︙ | ︙ |
Changes to win/tkWinSysTray.c.
︙ | ︙ | |||
897 898 899 900 901 902 903 | *---------------------------------------------------------------------- */ static int WinSystrayCmd( void *clientData, Tcl_Interp *interp, | | | 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 | *---------------------------------------------------------------------- */ static int WinSystrayCmd( void *clientData, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { static const char *const cmdStrings[] = { "add", "delete", "modify", NULL }; enum { CMD_ADD, CMD_DELETE, CMD_MODIFY }; static const char *const optStrings[] = { |
︙ | ︙ | |||
1058 1059 1060 1061 1062 1063 1064 | *---------------------------------------------------------------------- */ static int WinSysNotifyCmd( void *clientData, Tcl_Interp *interp, | | | 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 | *---------------------------------------------------------------------- */ static int WinSysNotifyCmd( void *clientData, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]) { IcoInterpInfo *icoInterpPtr = (IcoInterpInfo*) clientData; IcoInfo *icoPtr; Tcl_DString infodst; Tcl_DString titledst; NOTIFYICONDATAW ni; |
︙ | ︙ | |||
1154 1155 1156 1157 1158 1159 1160 | icoInterpPtr = (IcoInterpInfo*) ckalloc(sizeof(IcoInterpInfo)); icoInterpPtr->counter = 0; icoInterpPtr->firstIcoPtr = NULL; icoInterpPtr->hwnd = CreateTaskbarHandlerWindow(); icoInterpPtr->nextPtr = firstIcoInterpPtr; firstIcoInterpPtr = icoInterpPtr; | | | | 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 | icoInterpPtr = (IcoInterpInfo*) ckalloc(sizeof(IcoInterpInfo)); icoInterpPtr->counter = 0; icoInterpPtr->firstIcoPtr = NULL; icoInterpPtr->hwnd = CreateTaskbarHandlerWindow(); icoInterpPtr->nextPtr = firstIcoInterpPtr; firstIcoInterpPtr = icoInterpPtr; Tcl_CreateObjCommand2(interp, "::tk::systray::_systray", WinSystrayCmd, icoInterpPtr, NULL); Tcl_CreateObjCommand2(interp, "::tk::sysnotify::_sysnotify", WinSysNotifyCmd, icoInterpPtr, NULL); Tk_CreateEventHandler(mainWindow, StructureNotifyMask, WinIcoDestroy, icoInterpPtr); return TCL_OK; } |
︙ | ︙ |
Changes to win/tkWinWm.c.
︙ | ︙ | |||
299 300 301 302 303 304 305 | #define EX_FULLSCREEN_STYLE (WS_EX_APPWINDOW) #define WM_TOPLEVEL_STYLE (WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN|CS_DBLCLKS) #define EX_TOPLEVEL_STYLE (0) #define WM_TRANSIENT_STYLE \ (WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_CLIPSIBLINGS|CS_DBLCLKS) | > > > > > > | | 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 | #define EX_FULLSCREEN_STYLE (WS_EX_APPWINDOW) #define WM_TOPLEVEL_STYLE (WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN|CS_DBLCLKS) #define EX_TOPLEVEL_STYLE (0) #define WM_TRANSIENT_STYLE \ (WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_CLIPSIBLINGS|CS_DBLCLKS) /* * Bug 159aa5eb: Removed extended style WS_EX_DLGMODALFRAME. This style has * the undocumented side effect to enable the unwanted system menu items * "Resize", "Minimize" and "Maximize". "Resise" menu item may be correctly * enabled by "wm resizable". */ #define EX_TRANSIENT_STYLE (0) /* * The following structure is the official type record for geometry management * of top-level windows. */ static void TopLevelReqProc(void *dummy, Tk_Window tkwin); |
︙ | ︙ | |||
5343 5344 5345 5346 5347 5348 5349 | winPtr->pathName)); Tcl_SetErrorCode(interp, "TK", "WM", "STATE", "TRANSIENT", NULL); return TCL_ERROR; } TkpWmSetState(winPtr, IconicState); } else if (index == OPT_WITHDRAWN) { | < | | 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 | winPtr->pathName)); Tcl_SetErrorCode(interp, "TK", "WM", "STATE", "TRANSIENT", NULL); return TCL_ERROR; } TkpWmSetState(winPtr, IconicState); } else if (index == OPT_WITHDRAWN) { TkpWinToplevelWithDraw(winPtr); } else if (index == OPT_ZOOMED) { TkpWmSetState(winPtr, ZoomState); } else { Tcl_Panic("wm state not matched"); } } else { const char *stateStr = ""; |
︙ | ︙ | |||
5628 5629 5630 5631 5632 5633 5634 | Tcl_SetObjResult(interp, Tcl_ObjPrintf( "can't withdraw %s: the container does not support the request", Tcl_GetString(objv[2]))); Tcl_SetErrorCode(interp, "TK", "WM", "COMMUNICATION", NULL); return TCL_ERROR; } } else { | < | | 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 | Tcl_SetObjResult(interp, Tcl_ObjPrintf( "can't withdraw %s: the container does not support the request", Tcl_GetString(objv[2]))); Tcl_SetErrorCode(interp, "TK", "WM", "COMMUNICATION", NULL); return TCL_ERROR; } } else { TkpWinToplevelWithDraw(winPtr); } return TCL_OK; } /* * Invoked by those wm subcommands that affect geometry. Schedules a geometry * update. |
︙ | ︙ | |||
8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 | */ void TkpWinToplevelWithDraw( TkWindow *winPtr) { WmInfo *wmPtr = winPtr->wmInfoPtr; wmPtr->flags |= WM_WITHDRAWN; TkpWmSetState(winPtr, WithdrawnState); | > > > > > > > > > > > > > > > > > > > > > > > > | > > > | > > | 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 | */ void TkpWinToplevelWithDraw( TkWindow *winPtr) { WmInfo *wmPtr = winPtr->wmInfoPtr; int resetTempStyle = 0; LONG exStyle = 0; /* * Special handling of transient toplevels (wmPtr->containerPtr != NULL), * in order to work around a Windows 10 & 11 problem where withdrawn * transients still appear in the thumbnail preview of the parent window, * when hovering over it in the Windows taskbar. Temporarily setting this * window style to include WS_EX_TOOLWINDOW prevents it being captured in * the Windows thumbnail preview. * See ticket 91d0e9d8. */ if (!(wmPtr->flags & WM_WITHDRAWN) && !(wmPtr->flags & TK_EMBEDDED) && !(wmPtr->flags & WM_NEVER_MAPPED) && (wmPtr->containerPtr != NULL)) { exStyle = GetWindowLongPtrW(wmPtr->wrapper, GWL_EXSTYLE); if ( !(exStyle & WS_EX_TOOLWINDOW) ) { SetWindowLongPtrW(wmPtr->wrapper, GWL_EXSTYLE, exStyle | WS_EX_TOOLWINDOW); resetTempStyle=1; } } wmPtr->flags |= WM_WITHDRAWN; TkpWmSetState(winPtr, WithdrawnState); if (resetTempStyle) { SetWindowLongPtrW(wmPtr->wrapper, GWL_EXSTYLE, exStyle & ~WS_EX_TOOLWINDOW); } } /* *---------------------------------------------------------------------- * * TkpWinToplevelIconify -- * * This function is to be used by a window manager to iconify a toplevel * window. |
︙ | ︙ |