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

Lines Matching refs:butPtr

55     UnixButton *butPtr = (UnixButton *)ckalloc(sizeof(UnixButton));
56 return (TkButton *) butPtr;
82 register TkButton *butPtr = (TkButton *) clientData;
89 Tk_Window tkwin = butPtr->tkwin;
102 butPtr->flags &= ~REDRAW_PENDING;
103 if ((butPtr->tkwin == NULL) || !Tk_IsMapped(tkwin)) {
107 border = butPtr->normalBorder;
108 if ((butPtr->state == STATE_DISABLED) && (butPtr->disabledFg != NULL)) {
109 gc = butPtr->disabledGC;
110 } else if ((butPtr->state == STATE_ACTIVE)
111 && !Tk_StrictMotif(butPtr->tkwin)) {
112 gc = butPtr->activeTextGC;
113 border = butPtr->activeBorder;
115 gc = butPtr->normalTextGC;
117 if ((butPtr->flags & SELECTED) && (butPtr->state != STATE_ACTIVE)
118 && (butPtr->selectBorder != NULL) && !butPtr->indicatorOn) {
119 border = butPtr->selectBorder;
151 relief = butPtr->relief;
152 if ((butPtr->type >= TYPE_CHECK_BUTTON) && !butPtr->indicatorOn) {
153 if (butPtr->flags & SELECTED) {
155 } else if (butPtr->overRelief != relief) {
156 relief = butPtr->offRelief;
160 offset = (butPtr->type == TYPE_BUTTON) && !Tk_StrictMotif(butPtr->tkwin);
169 pixmap = Tk_GetPixmap(butPtr->display, Tk_WindowId(tkwin),
178 if (butPtr->image != NULL) {
179 Tk_SizeOfImage(butPtr->image, &width, &height);
181 } else if (butPtr->bitmap != None) {
182 Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height);
188 haveText = (butPtr->textWidth != 0 && butPtr->textHeight != 0);
190 if (butPtr->compound != COMPOUND_NONE && haveImage && haveText) {
196 switch ((enum compound) butPtr->compound) {
200 if (butPtr->compound == COMPOUND_TOP) {
201 textYOffset = height + butPtr->padY;
203 imageYOffset = butPtr->textHeight + butPtr->padY;
205 fullHeight = height + butPtr->textHeight + butPtr->padY;
206 fullWidth = (width > butPtr->textWidth ? width :
207 butPtr->textWidth);
208 textXOffset = (fullWidth - butPtr->textWidth)/2;
215 if (butPtr->compound == COMPOUND_LEFT) {
216 textXOffset = width + butPtr->padX;
218 imageXOffset = butPtr->textWidth + butPtr->padX;
220 fullWidth = butPtr->textWidth + butPtr->padX + width;
221 fullHeight = (height > butPtr->textHeight ? height :
222 butPtr->textHeight);
223 textYOffset = (fullHeight - butPtr->textHeight)/2;
229 fullWidth = (width > butPtr->textWidth ? width :
230 butPtr->textWidth);
231 fullHeight = (height > butPtr->textHeight ? height :
232 butPtr->textHeight);
233 textXOffset = (fullWidth - butPtr->textWidth)/2;
235 textYOffset = (fullHeight - butPtr->textHeight)/2;
242 TkComputeAnchor(butPtr->anchor, tkwin, butPtr->padX, butPtr->padY,
243 butPtr->indicatorSpace + fullWidth, fullHeight, &x, &y);
245 x += butPtr->indicatorSpace;
260 if (butPtr->image != NULL) {
285 if ((butPtr->selectImage != NULL) && (butPtr->flags & SELECTED)) {
286 Tk_RedrawImage(butPtr->selectImage, 0, 0,
289 Tk_RedrawImage(butPtr->image, 0, 0, width,
293 XSetClipOrigin(butPtr->display, gc, imageXOffset, imageYOffset);
294 XCopyPlane(butPtr->display, butPtr->bitmap, pixmap, gc,
297 XSetClipOrigin(butPtr->display, gc, 0, 0);
300 Tk_DrawTextLayout(butPtr->display, pixmap, gc,
301 butPtr->textLayout, x + textXOffset, y + textYOffset, 0, -1);
302 Tk_UnderlineTextLayout(butPtr->display, pixmap, gc,
303 butPtr->textLayout, x + textXOffset, y + textYOffset,
304 butPtr->underline);
308 TkComputeAnchor(butPtr->anchor, tkwin, 0, 0,
309 butPtr->indicatorSpace + width, height, &x, &y);
310 x += butPtr->indicatorSpace;
323 if (butPtr->image != NULL) {
348 if ((butPtr->selectImage != NULL) &&
349 (butPtr->flags & SELECTED)) {
350 Tk_RedrawImage(butPtr->selectImage, 0, 0, width,
353 Tk_RedrawImage(butPtr->image, 0, 0, width, height, pixmap,
357 XSetClipOrigin(butPtr->display, gc, x, y);
358 XCopyPlane(butPtr->display, butPtr->bitmap, pixmap, gc, 0, 0,
360 XSetClipOrigin(butPtr->display, gc, 0, 0);
364 TkComputeAnchor(butPtr->anchor, tkwin, butPtr->padX, butPtr->padY,
365 butPtr->indicatorSpace + butPtr->textWidth,
366 butPtr->textHeight, &x, &y);
368 x += butPtr->indicatorSpace;
379 Tk_DrawTextLayout(butPtr->display, pixmap, gc, butPtr->textLayout,
381 Tk_UnderlineTextLayout(butPtr->display, pixmap, gc,
382 butPtr->textLayout, x, y, butPtr->underline);
383 y += butPtr->textHeight/2;
393 if ((butPtr->type == TYPE_CHECK_BUTTON) && butPtr->indicatorOn) {
396 dim = butPtr->indicatorDiameter;
397 x -= butPtr->indicatorSpace;
399 if (dim > 2*butPtr->borderWidth) {
401 butPtr->borderWidth,
402 (butPtr->flags & SELECTED) ? TK_RELIEF_SUNKEN :
404 x += butPtr->borderWidth;
405 y += butPtr->borderWidth;
406 dim -= 2*butPtr->borderWidth;
407 if (butPtr->flags & SELECTED) {
409 if (butPtr->state != STATE_DISABLED) {
410 if (butPtr->selectBorder != NULL) {
411 gc = Tk_3DBorderGC(tkwin, butPtr->selectBorder,
414 gc = Tk_3DBorderGC(tkwin, butPtr->normalBorder,
418 if (butPtr->disabledFg != NULL) {
419 gc = butPtr->disabledGC;
421 gc = butPtr->normalTextGC;
422 XSetForeground(butPtr->display, butPtr->disabledGC,
423 Tk_3DBorderColor(butPtr->normalBorder)->pixel);
427 XFillRectangle(butPtr->display, pixmap, gc, x, y,
430 Tk_Fill3DRectangle(tkwin, pixmap, butPtr->normalBorder, x, y,
431 dim, dim, butPtr->borderWidth, TK_RELIEF_FLAT);
434 } else if ((butPtr->type == TYPE_RADIO_BUTTON) && butPtr->indicatorOn) {
438 radius = butPtr->indicatorDiameter/2;
439 points[0].x = x - butPtr->indicatorSpace;
447 if (butPtr->flags & SELECTED) {
450 if (butPtr->state != STATE_DISABLED) {
451 if (butPtr->selectBorder != NULL) {
452 gc = Tk_3DBorderGC(tkwin, butPtr->selectBorder,
455 gc = Tk_3DBorderGC(tkwin, butPtr->normalBorder,
459 if (butPtr->disabledFg != NULL) {
460 gc = butPtr->disabledGC;
462 gc = butPtr->normalTextGC;
463 XSetForeground(butPtr->display, butPtr->disabledGC,
464 Tk_3DBorderColor(butPtr->normalBorder)->pixel);
468 XFillPolygon(butPtr->display, pixmap, gc, points, 4, Convex,
471 Tk_Fill3DPolygon(tkwin, pixmap, butPtr->normalBorder, points,
472 4, butPtr->borderWidth, TK_RELIEF_FLAT);
474 Tk_Draw3DPolygon(tkwin, pixmap, border, points, 4, butPtr->borderWidth,
475 (butPtr->flags & SELECTED) ? TK_RELIEF_SUNKEN :
486 if ((butPtr->state == STATE_DISABLED)
487 && ((butPtr->disabledFg == NULL) || (butPtr->image != NULL))) {
488 if ((butPtr->flags & SELECTED) && !butPtr->indicatorOn
489 && (butPtr->selectBorder != NULL)) {
490 XSetForeground(butPtr->display, butPtr->stippleGC,
491 Tk_3DBorderColor(butPtr->selectBorder)->pixel);
497 if (butPtr->disabledFg == NULL) {
498 XFillRectangle(butPtr->display, pixmap, butPtr->stippleGC, 0, 0,
501 XFillRectangle(butPtr->display, pixmap, butPtr->stippleGC,
505 if ((butPtr->flags & SELECTED) && !butPtr->indicatorOn
506 && (butPtr->selectBorder != NULL)) {
507 XSetForeground(butPtr->display, butPtr->stippleGC,
508 Tk_3DBorderColor(butPtr->normalBorder)->pixel);
521 int inset = butPtr->highlightWidth;
523 if (butPtr->defaultState == DEFAULT_ACTIVE) {
532 Tk_Draw3DRectangle(tkwin, pixmap, butPtr->highlightBorder, inset,
536 Tk_Draw3DRectangle(tkwin, pixmap, butPtr->highlightBorder, inset,
540 Tk_Draw3DRectangle(tkwin, pixmap, butPtr->highlightBorder, inset,
545 } else if (butPtr->defaultState == DEFAULT_NORMAL) {
551 Tk_Draw3DRectangle(tkwin, pixmap, butPtr->highlightBorder, 0,
562 butPtr->borderWidth, relief);
564 if (butPtr->highlightWidth > 0) {
567 if (butPtr->flags & GOT_FOCUS) {
568 gc = Tk_GCForColor(butPtr->highlightColorPtr, pixmap);
570 gc = Tk_GCForColor(Tk_3DBorderColor(butPtr->highlightBorder),
579 if (butPtr->defaultState == DEFAULT_NORMAL) {
580 TkDrawInsetFocusHighlight(tkwin, gc, butPtr->highlightWidth,
583 Tk_DrawFocusHighlight(tkwin, gc, butPtr->highlightWidth, pixmap);
592 XCopyArea(butPtr->display, pixmap, Tk_WindowId(tkwin),
593 butPtr->copyGC, 0, 0, (unsigned) Tk_Width(tkwin),
595 Tk_FreePixmap(butPtr->display, pixmap);
618 TkpComputeButtonGeometry(butPtr)
619 register TkButton *butPtr; /* Button whose geometry may have changed. */
625 butPtr->inset = butPtr->highlightWidth + butPtr->borderWidth;
631 if (butPtr->defaultState != DEFAULT_DISABLED) {
632 butPtr->inset += 5;
634 butPtr->indicatorSpace = 0;
642 if (butPtr->image != NULL) {
643 Tk_SizeOfImage(butPtr->image, &width, &height);
645 } else if (butPtr->bitmap != None) {
646 Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height);
650 if (haveImage == 0 || butPtr->compound != COMPOUND_NONE) {
651 Tk_FreeTextLayout(butPtr->textLayout);
653 butPtr->textLayout = Tk_ComputeTextLayout(butPtr->tkfont,
654 Tcl_GetString(butPtr->textPtr), -1, butPtr->wrapLength,
655 butPtr->justify, 0, &butPtr->textWidth, &butPtr->textHeight);
657 txtWidth = butPtr->textWidth;
658 txtHeight = butPtr->textHeight;
659 avgWidth = Tk_TextWidth(butPtr->tkfont, "0", 1);
660 Tk_GetFontMetrics(butPtr->tkfont, &fm);
671 if (butPtr->compound != COMPOUND_NONE && haveImage && haveText) {
672 switch ((enum compound) butPtr->compound) {
676 height += txtHeight + butPtr->padY;
683 width += txtWidth + butPtr->padX;
695 if (butPtr->width > 0) {
696 width = butPtr->width;
698 if (butPtr->height > 0) {
699 height = butPtr->height;
702 if ((butPtr->type >= TYPE_CHECK_BUTTON) && butPtr->indicatorOn) {
703 butPtr->indicatorSpace = height;
704 if (butPtr->type == TYPE_CHECK_BUTTON) {
705 butPtr->indicatorDiameter = (65*height)/100;
707 butPtr->indicatorDiameter = (75*height)/100;
711 width += 2*butPtr->padX;
712 height += 2*butPtr->padY;
716 if (butPtr->width > 0) {
717 width = butPtr->width;
719 if (butPtr->height > 0) {
720 height = butPtr->height;
723 if ((butPtr->type >= TYPE_CHECK_BUTTON) && butPtr->indicatorOn) {
724 butPtr->indicatorSpace = height;
725 if (butPtr->type == TYPE_CHECK_BUTTON) {
726 butPtr->indicatorDiameter = (65*height)/100;
728 butPtr->indicatorDiameter = (75*height)/100;
735 if (butPtr->width > 0) {
736 width = butPtr->width * avgWidth;
738 if (butPtr->height > 0) {
739 height = butPtr->height * fm.linespace;
741 if ((butPtr->type >= TYPE_CHECK_BUTTON) && butPtr->indicatorOn) {
742 butPtr->indicatorDiameter = fm.linespace;
743 if (butPtr->type == TYPE_CHECK_BUTTON) {
744 butPtr->indicatorDiameter =
745 (80*butPtr->indicatorDiameter)/100;
747 butPtr->indicatorSpace = butPtr->indicatorDiameter + avgWidth;
759 if ((butPtr->image == NULL) && (butPtr->bitmap == None)) {
760 width += 2*butPtr->padX;
761 height += 2*butPtr->padY;
763 if ((butPtr->type == TYPE_BUTTON) && !Tk_StrictMotif(butPtr->tkwin)) {
767 Tk_GeometryRequest(butPtr->tkwin, (int) (width + butPtr->indicatorSpace
768 + 2*butPtr->inset), (int) (height + 2*butPtr->inset));
769 Tk_SetInternalBorder(butPtr->tkwin, butPtr->inset);