• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/tcl-105/tk84/tk/win/

Lines Matching defs:butPtr

216     WinButton *butPtr;
218 butPtr = (WinButton *)ckalloc(sizeof(WinButton));
219 butPtr->hwnd = NULL;
220 return (TkButton *) butPtr;
250 WinButton *butPtr = (WinButton *)instanceData;
253 if (butPtr->info.type == TYPE_LABEL) {
255 butPtr->style = SS_OWNERDRAW | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS;
258 butPtr->style = BS_OWNERDRAW | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS;
260 butPtr->hwnd = CreateWindow(class, NULL, butPtr->style,
263 SetWindowPos(butPtr->hwnd, HWND_TOP, 0, 0, 0, 0,
266 butPtr->oldProc = (WNDPROC)SetWindowLongPtr(butPtr->hwnd, GWLP_WNDPROC,
269 butPtr->oldProc = (WNDPROC)SetWindowLong(butPtr->hwnd, GWL_WNDPROC,
273 window = Tk_AttachHWND(tkwin, butPtr->hwnd);
295 TkpDestroyButton(butPtr)
296 TkButton *butPtr;
298 WinButton *winButPtr = (WinButton *)butPtr;
334 register TkButton *butPtr = (TkButton *) clientData;
341 register Tk_Window tkwin = butPtr->tkwin;
361 butPtr->flags &= ~REDRAW_PENDING;
362 if ((butPtr->tkwin == NULL) || !Tk_IsMapped(tkwin)) {
366 border = butPtr->normalBorder;
367 if ((butPtr->state == STATE_DISABLED) && (butPtr->disabledFg != NULL)) {
368 gc = butPtr->disabledGC;
369 } else if ((butPtr->state == STATE_ACTIVE)
370 && !Tk_StrictMotif(butPtr->tkwin)) {
371 gc = butPtr->activeTextGC;
372 border = butPtr->activeBorder;
374 gc = butPtr->normalTextGC;
376 if ((butPtr->flags & SELECTED) && (butPtr->state != STATE_ACTIVE)
377 && (butPtr->selectBorder != NULL) && !butPtr->indicatorOn) {
378 border = butPtr->selectBorder;
410 relief = butPtr->relief;
411 if ((butPtr->type >= TYPE_CHECK_BUTTON) && !butPtr->indicatorOn) {
412 if (butPtr->flags & SELECTED) {
414 } else if (butPtr->overRelief != relief) {
415 relief = butPtr->offRelief;
423 if (butPtr->type == TYPE_BUTTON) {
424 defaultWidth = ((butPtr->defaultState == DEFAULT_ACTIVE)
425 ? butPtr->highlightWidth : 0);
429 if ((butPtr->type >= TYPE_CHECK_BUTTON) && !butPtr->indicatorOn) {
443 pixmap = Tk_GetPixmap(butPtr->display, Tk_WindowId(tkwin),
452 if (butPtr->image != None) {
453 Tk_SizeOfImage(butPtr->image, &width, &height);
455 } else if (butPtr->bitmap != None) {
456 Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height);
462 haveText = (butPtr->textWidth != 0 && butPtr->textHeight != 0);
464 if (butPtr->compound != COMPOUND_NONE && haveImage && haveText) {
467 switch ((enum compound) butPtr->compound) {
471 if (butPtr->compound == COMPOUND_TOP) {
472 textYOffset = height + butPtr->padY;
474 imageYOffset = butPtr->textHeight + butPtr->padY;
476 fullHeight = height + butPtr->textHeight + butPtr->padY;
477 fullWidth = (width > butPtr->textWidth ? width :
478 butPtr->textWidth);
479 textXOffset = (fullWidth - butPtr->textWidth)/2;
486 if (butPtr->compound == COMPOUND_LEFT) {
487 textXOffset = width + butPtr->padX;
489 imageXOffset = butPtr->textWidth + butPtr->padX;
491 fullWidth = butPtr->textWidth + butPtr->padX + width;
492 fullHeight = (height > butPtr->textHeight ? height :
493 butPtr->textHeight);
494 textYOffset = (fullHeight - butPtr->textHeight)/2;
500 fullWidth = (width > butPtr->textWidth ? width :
501 butPtr->textWidth);
502 fullHeight = (height > butPtr->textHeight ? height :
503 butPtr->textHeight);
504 textXOffset = (fullWidth - butPtr->textWidth)/2;
506 textYOffset = (fullHeight - butPtr->textHeight)/2;
512 TkComputeAnchor(butPtr->anchor, tkwin, butPtr->padX, butPtr->padY,
513 butPtr->indicatorSpace + fullWidth, fullHeight, &x, &y);
514 x += butPtr->indicatorSpace;
522 if (butPtr->image != NULL) {
523 if ((butPtr->selectImage != NULL) && (butPtr->flags & SELECTED)) {
524 Tk_RedrawImage(butPtr->selectImage, 0, 0,
527 Tk_RedrawImage(butPtr->image, 0, 0,
531 XSetClipOrigin(butPtr->display, gc, imageXOffset, imageYOffset);
532 XCopyPlane(butPtr->display, butPtr->bitmap, pixmap, gc,
535 XSetClipOrigin(butPtr->display, gc, 0, 0);
538 Tk_DrawTextLayout(butPtr->display, pixmap, gc,
539 butPtr->textLayout, x + textXOffset, y + textYOffset, 0, -1);
540 Tk_UnderlineTextLayout(butPtr->display, pixmap, gc,
541 butPtr->textLayout, x + textXOffset, y + textYOffset,
542 butPtr->underline);
547 TkComputeAnchor(butPtr->anchor, tkwin, 0, 0,
548 butPtr->indicatorSpace + width, height, &x, &y);
549 x += butPtr->indicatorSpace;
557 if (butPtr->image != NULL) {
558 if ((butPtr->selectImage != NULL) &&
559 (butPtr->flags & SELECTED)) {
560 Tk_RedrawImage(butPtr->selectImage, 0, 0, width, height,
563 Tk_RedrawImage(butPtr->image, 0, 0, width, height, pixmap,
567 XSetClipOrigin(butPtr->display, gc, x, y);
568 XCopyPlane(butPtr->display, butPtr->bitmap, pixmap, gc, 0, 0,
570 XSetClipOrigin(butPtr->display, gc, 0, 0);
573 TkComputeAnchor(butPtr->anchor, tkwin, butPtr->padX, butPtr->padY,
574 butPtr->indicatorSpace + butPtr->textWidth,
575 butPtr->textHeight, &x, &y);
577 x += butPtr->indicatorSpace;
583 Tk_DrawTextLayout(butPtr->display, pixmap, gc, butPtr->textLayout,
585 Tk_UnderlineTextLayout(butPtr->display, pixmap, gc,
586 butPtr->textLayout, x, y, butPtr->underline);
588 height = butPtr->textHeight;
600 if (drawRing && butPtr->flags & GOT_FOCUS && butPtr->type != TYPE_LABEL) {
601 dc = TkWinGetDrawableDC(butPtr->display, pixmap, &state);
602 if (butPtr->type == TYPE_BUTTON || !butPtr->indicatorOn) {
603 rect.top = butPtr->borderWidth + 1 + defaultWidth;
610 rect.right = x+butPtr->textWidth + 1 + textXOffset;
611 rect.bottom = y+butPtr->textHeight + 2 + textYOffset;
627 if ((butPtr->type >= TYPE_CHECK_BUTTON) && butPtr->indicatorOn
631 x -= butPtr->indicatorSpace;
632 y -= butPtr->indicatorDiameter / 2;
634 xSrc = (butPtr->flags & SELECTED) ? tsdPtr->boxWidth : 0;
635 if (butPtr->state == STATE_ACTIVE) {
638 ySrc = (butPtr->type == TYPE_RADIO_BUTTON) ? 0 : tsdPtr->boxHeight;
649 if ((butPtr->state == STATE_DISABLED)
650 && (butPtr->disabledFg == NULL)) {
664 if (butPtr->state == STATE_DISABLED) {
667 } else if (butPtr->selectBorder != NULL) {
669 butPtr->selectBorder, TK_3D_FLAT_GC));
676 dc = TkWinGetDrawableDC(butPtr->display, pixmap, &state);
691 if ((butPtr->state == STATE_DISABLED)
692 && ((butPtr->disabledFg == NULL) || (butPtr->image != NULL))) {
693 if ((butPtr->flags & SELECTED) && !butPtr->indicatorOn
694 && (butPtr->selectBorder != NULL)) {
695 XSetForeground(butPtr->display, butPtr->stippleGC,
696 Tk_3DBorderColor(butPtr->selectBorder)->pixel);
702 if (butPtr->disabledFg == NULL) {
703 XFillRectangle(butPtr->display, pixmap, butPtr->stippleGC, 0, 0,
706 XFillRectangle(butPtr->display, pixmap, butPtr->stippleGC,
710 if ((butPtr->flags & SELECTED) && !butPtr->indicatorOn
711 && (butPtr->selectBorder != NULL)) {
712 XSetForeground(butPtr->display, butPtr->stippleGC,
713 Tk_3DBorderColor(butPtr->normalBorder)->pixel);
727 butPtr->borderWidth, relief);
730 dc = TkWinGetDrawableDC(butPtr->display, pixmap, &state);
732 butPtr->highlightColorPtr->pixel);
734 butPtr->highlightColorPtr->pixel);
737 butPtr->highlightColorPtr->pixel);
740 butPtr->highlightColorPtr->pixel);
744 if (butPtr->flags & GOT_FOCUS) {
753 XCopyArea(butPtr->display, pixmap, Tk_WindowId(tkwin),
754 butPtr->copyGC, 0, 0, (unsigned) Tk_Width(tkwin),
756 Tk_FreePixmap(butPtr->display, pixmap);
779 TkpComputeButtonGeometry(butPtr)
780 register TkButton *butPtr; /* Button whose geometry may have changed. */
795 if (butPtr->highlightWidth < 0) {
796 butPtr->highlightWidth = 0;
798 butPtr->inset = butPtr->highlightWidth + butPtr->borderWidth;
799 butPtr->indicatorSpace = 0;
806 if (butPtr->image != NULL) {
807 Tk_SizeOfImage(butPtr->image, &imgWidth, &imgHeight);
809 } else if (butPtr->bitmap != None) {
810 Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap,
823 Tk_FreeTextLayout(butPtr->textLayout);
824 butPtr->textLayout = Tk_ComputeTextLayout(butPtr->tkfont,
825 Tcl_GetString(butPtr->textPtr), -1, butPtr->wrapLength,
826 butPtr->justify, 0, &butPtr->textWidth, &butPtr->textHeight);
828 txtWidth = butPtr->textWidth;
829 txtHeight = butPtr->textHeight;
830 haveText = (*(Tcl_GetString(butPtr->textPtr)) != '\0');
831 avgWidth = (Tk_TextWidth(butPtr->tkfont,
834 Tk_GetFontMetrics(butPtr->tkfont, &fm);
856 switch (butPtr->type) {
871 if (butPtr->width < 0) {
873 minWidth = -(butPtr->width);
885 if (butPtr->width == 0
911 butPtr->inset += 1;
961 butPtr->inset += 1;
979 if (butPtr->compound != COMPOUND_NONE && haveImage && haveText) {
980 switch ((enum compound) butPtr->compound) {
987 height += imgHeight + butPtr->padY;
997 if ((imgWidth + txtWidth + butPtr->padX) > width) {
998 width = imgWidth + txtWidth + butPtr->padX;
1019 if (butPtr->width < 0) {
1021 minWidth = -(butPtr->width);
1025 } else if (butPtr->width > 0) {
1026 width = butPtr->width;
1029 if (butPtr->height > 0) {
1030 height = butPtr->height;
1033 width += 2*butPtr->padX;
1034 height += 2*butPtr->padY;
1036 if (butPtr->width > 0) {
1037 width = butPtr->width;
1041 if (butPtr->height > 0) {
1042 height = butPtr->height;
1050 * butPtr->width is in characters. We need to allow for that
1053 if (butPtr->width > 0) {
1054 width = butPtr->width * avgWidth;
1058 * butPtr->height is in lines of text. We need to allow for
1062 if (butPtr->height > 0) {
1063 height = butPtr->height * fm.linespace;
1070 switch (butPtr->type) {
1083 width += 2 * butPtr->padX;
1084 height += 2 * butPtr->padY;
1088 if (butPtr->type == TYPE_RADIO_BUTTON
1089 || butPtr->type == TYPE_CHECK_BUTTON) {
1090 if (butPtr->indicatorOn) {
1091 butPtr->indicatorDiameter = tsdPtr->boxHeight;
1097 if (height < butPtr->indicatorDiameter) {
1098 height = butPtr->indicatorDiameter;
1107 butPtr->indicatorSpace = butPtr->indicatorDiameter +
1109 width += butPtr->indicatorSpace;
1116 width += 2 * butPtr->inset;
1117 height += 2 * butPtr->inset;
1119 Tk_GeometryRequest(butPtr->tkwin, width, height);
1120 Tk_SetInternalBorder(butPtr->tkwin, butPtr->inset);
1149 WinButton *butPtr;
1155 butPtr = (WinButton *)((TkWindow*)tkwin)->instanceData;
1162 if (((butPtr->info.type == TYPE_CHECK_BUTTON)
1163 || (butPtr->info.type == TYPE_RADIO_BUTTON))
1164 && butPtr->info.indicatorOn) {
1165 return (butPtr->info.flags & SELECTED)
1172 if (((butPtr->info.type == TYPE_CHECK_BUTTON)
1173 || (butPtr->info.type == TYPE_RADIO_BUTTON))
1174 && butPtr->info.indicatorOn) {
1175 state = (butPtr->info.flags & SELECTED)
1178 if (butPtr->info.flags & GOT_FOCUS) {
1190 TkpDisplayButton((ClientData)butPtr);
1198 Tcl_CancelIdleCall(TkpDisplayButton, (ClientData)butPtr);
1203 Tcl_Interp *interp = butPtr->info.interp;
1204 if (butPtr->info.state != STATE_DISABLED) {
1206 code = TkInvokeButton((TkButton*)butPtr);