home *** CD-ROM | disk | FTP | other *** search
- --- ../tk4.1/generic/tkButton.c Fri Mar 8 14:14:44 1996
- +++ tkButton.c Mon Jul 8 19:24:10 1996
- @@ -14,6 +14,11 @@
- *
- * SCCS: @(#) tkButton.c 1.128 96/03/01 17:34:49
- */
- +/*
- + * TkSTEP modifications Copyright by
- + * Alfredo K. Kojima
- + */
- +
-
- #include "default.h"
- #include "tkPort.h"
- @@ -215,6 +220,10 @@
- #define ALL_MASK (LABEL_MASK | BUTTON_MASK \
- | CHECK_BUTTON_MASK | RADIO_BUTTON_MASK)
-
- +
- +#define CHECK_WIDTH 10
- +#define CHECK_HEIGHT 10
- +
- static int configFlags[] = {LABEL_MASK, BUTTON_MASK,
- CHECK_BUTTON_MASK, RADIO_BUTTON_MASK};
-
- @@ -1105,6 +1114,7 @@
- return TCL_OK;
- }
-
- +
- /*
- *----------------------------------------------------------------------
- *
- @@ -1296,55 +1306,42 @@
- y -= dim/2;
- if (dim > 2*butPtr->borderWidth) {
- Tk_Draw3DRectangle(tkwin, pixmap, border, x, y, dim, dim,
- - butPtr->borderWidth,
- - (butPtr->flags & SELECTED) ? TK_RELIEF_SUNKEN :
- - TK_RELIEF_RAISED);
- + butPtr->borderWidth, TK_RELIEF_RAISED);
- x += butPtr->borderWidth;
- y += butPtr->borderWidth;
- dim -= 2*butPtr->borderWidth;
- if (butPtr->flags & SELECTED) {
- - GC gc;
- -
- - gc = Tk_3DBorderGC(tkwin,(butPtr->selectBorder != NULL)
- - ? butPtr->selectBorder : butPtr->normalBorder,
- - TK_3D_FLAT_GC);
- - XFillRectangle(butPtr->display, pixmap, gc, x, y,
- - (unsigned int) dim, (unsigned int) dim);
- + Tk_DrawCheckMark(butPtr->display, tkwin, pixmap,
- + x+1+(dim-CHECK_WIDTH)/2, y+(dim-CHECK_HEIGHT)/2,
- + butPtr->normalBorder);
- } else {
- Tk_Fill3DRectangle(tkwin, pixmap, butPtr->normalBorder, x, y,
- dim, dim, butPtr->borderWidth, TK_RELIEF_FLAT);
- }
- }
- } else if ((butPtr->type == TYPE_RADIO_BUTTON) && butPtr->indicatorOn) {
- - XPoint points[4];
- int radius;
- -
- + GC gc;
- +
- radius = butPtr->indicatorDiameter/2;
- - points[0].x = x - butPtr->indicatorSpace;
- - points[0].y = y;
- - points[1].x = points[0].x + radius;
- - points[1].y = points[0].y + radius;
- - points[2].x = points[1].x + radius;
- - points[2].y = points[0].y;
- - points[3].x = points[1].x;
- - points[3].y = points[0].y - radius;
- if (butPtr->flags & SELECTED) {
- - GC gc;
- -
- gc = Tk_3DBorderGC(tkwin, (butPtr->selectBorder != NULL)
- ? butPtr->selectBorder : butPtr->normalBorder,
- TK_3D_FLAT_GC);
- - XFillPolygon(butPtr->display, pixmap, gc, points, 4, Convex,
- - CoordModeOrigin);
- + XFillArc(butPtr->display, pixmap, gc, x-butPtr->indicatorSpace+
- + butPtr->borderWidth, butPtr->borderWidth + y-radius,
- + radius*2-butPtr->borderWidth-1,
- + radius*2-butPtr->borderWidth-1,0,360*64);
- } else {
- - Tk_Fill3DPolygon(tkwin, pixmap, butPtr->normalBorder, points,
- - 4, butPtr->borderWidth, TK_RELIEF_FLAT);
- - }
- - Tk_Draw3DPolygon(tkwin, pixmap, border, points, 4, butPtr->borderWidth,
- - (butPtr->flags & SELECTED) ? TK_RELIEF_SUNKEN :
- - TK_RELIEF_RAISED);
- + gc = Tk_3DBorderGC(tkwin, butPtr->normalBorder, TK_3D_FLAT_GC);
- + XFillArc(butPtr->display, pixmap, gc, x-butPtr->indicatorSpace,
- + y-radius, radius*2-butPtr->borderWidth-1,
- + radius*2-butPtr->borderWidth-1,0,360*64);
- + }
- + Tk_Draw3DCircle(butPtr->display, tkwin,pixmap,x-butPtr->indicatorSpace,
- + y-radius, butPtr->borderWidth, radius, TK_RELIEF_SUNKEN,
- + butPtr->normalBorder);
- }
- -
- /*
- * If the button is disabled with a stipple rather than a special
- * foreground color, generate the stippled effect. If the widget
- @@ -1576,7 +1573,7 @@
- butPtr->indicatorDiameter = butPtr->fontPtr->ascent
- + butPtr->fontPtr->descent;
- if (butPtr->type == TYPE_CHECK_BUTTON) {
- - butPtr->indicatorDiameter = (80*butPtr->indicatorDiameter)/100;
- + butPtr->indicatorDiameter++;
- }
- butPtr->indicatorSpace = butPtr->indicatorDiameter
- + XTextWidth(butPtr->fontPtr, "0", 1);
-