home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / tcl / tkstep0.3b3 / tkstep0 / tkstep / tkButton.c.diff < prev    next >
Encoding:
Text File  |  1996-07-08  |  3.7 KB  |  117 lines

  1. --- ../tk4.1/generic/tkButton.c    Fri Mar  8 14:14:44 1996
  2. +++ tkButton.c    Mon Jul  8 19:24:10 1996
  3. @@ -14,6 +14,11 @@
  4.   *
  5.   * SCCS: @(#) tkButton.c 1.128 96/03/01 17:34:49
  6.   */
  7. +/*
  8. + * TkSTEP modifications Copyright by
  9. + * Alfredo K. Kojima
  10. + */
  11. +
  12.  
  13.  #include "default.h"
  14.  #include "tkPort.h"
  15. @@ -215,6 +220,10 @@
  16.  #define ALL_MASK        (LABEL_MASK | BUTTON_MASK \
  17.      | CHECK_BUTTON_MASK | RADIO_BUTTON_MASK)
  18.  
  19. +
  20. +#define CHECK_WIDTH    10
  21. +#define CHECK_HEIGHT    10
  22. +
  23.  static int configFlags[] = {LABEL_MASK, BUTTON_MASK,
  24.      CHECK_BUTTON_MASK, RADIO_BUTTON_MASK};
  25.  
  26. @@ -1105,6 +1114,7 @@
  27.      return TCL_OK;
  28.  }
  29.  
  30. +
  31.  /*
  32.   *----------------------------------------------------------------------
  33.   *
  34. @@ -1296,55 +1306,42 @@
  35.      y -= dim/2;
  36.      if (dim > 2*butPtr->borderWidth) {
  37.          Tk_Draw3DRectangle(tkwin, pixmap, border, x, y, dim, dim,
  38. -            butPtr->borderWidth, 
  39. -            (butPtr->flags & SELECTED) ? TK_RELIEF_SUNKEN :
  40. -            TK_RELIEF_RAISED);
  41. +            butPtr->borderWidth, TK_RELIEF_RAISED);
  42.          x += butPtr->borderWidth;
  43.          y += butPtr->borderWidth;
  44.          dim -= 2*butPtr->borderWidth;
  45.          if (butPtr->flags & SELECTED) {
  46. -        GC gc;
  47. -
  48. -        gc = Tk_3DBorderGC(tkwin,(butPtr->selectBorder != NULL)
  49. -            ? butPtr->selectBorder : butPtr->normalBorder,
  50. -            TK_3D_FLAT_GC);
  51. -        XFillRectangle(butPtr->display, pixmap, gc, x, y,
  52. -            (unsigned int) dim, (unsigned int) dim);
  53. +        Tk_DrawCheckMark(butPtr->display, tkwin, pixmap, 
  54. +            x+1+(dim-CHECK_WIDTH)/2, y+(dim-CHECK_HEIGHT)/2,
  55. +            butPtr->normalBorder);
  56.          } else {
  57.          Tk_Fill3DRectangle(tkwin, pixmap, butPtr->normalBorder, x, y,
  58.              dim, dim, butPtr->borderWidth, TK_RELIEF_FLAT);
  59.          }
  60.      }
  61.      } else if ((butPtr->type == TYPE_RADIO_BUTTON) && butPtr->indicatorOn) {
  62. -    XPoint points[4];
  63.      int radius;
  64. -
  65. +    GC gc;
  66. +    
  67.      radius = butPtr->indicatorDiameter/2;
  68. -    points[0].x = x - butPtr->indicatorSpace;
  69. -    points[0].y = y;
  70. -    points[1].x = points[0].x + radius;
  71. -    points[1].y = points[0].y + radius;
  72. -    points[2].x = points[1].x + radius;
  73. -    points[2].y = points[0].y;
  74. -    points[3].x = points[1].x;
  75. -    points[3].y = points[0].y - radius;
  76.      if (butPtr->flags & SELECTED) {
  77. -        GC gc;
  78. -
  79.          gc = Tk_3DBorderGC(tkwin, (butPtr->selectBorder != NULL)
  80.              ? butPtr->selectBorder : butPtr->normalBorder,
  81.              TK_3D_FLAT_GC);
  82. -        XFillPolygon(butPtr->display, pixmap, gc, points, 4, Convex,
  83. -            CoordModeOrigin);
  84. +        XFillArc(butPtr->display, pixmap, gc, x-butPtr->indicatorSpace+
  85. +             butPtr->borderWidth, butPtr->borderWidth + y-radius,
  86. +             radius*2-butPtr->borderWidth-1,
  87. +             radius*2-butPtr->borderWidth-1,0,360*64);
  88.      } else {
  89. -        Tk_Fill3DPolygon(tkwin, pixmap, butPtr->normalBorder, points,
  90. -            4, butPtr->borderWidth, TK_RELIEF_FLAT);
  91. -    }
  92. -    Tk_Draw3DPolygon(tkwin, pixmap, border, points, 4, butPtr->borderWidth,
  93. -        (butPtr->flags & SELECTED) ? TK_RELIEF_SUNKEN :
  94. -        TK_RELIEF_RAISED);
  95. +        gc = Tk_3DBorderGC(tkwin, butPtr->normalBorder, TK_3D_FLAT_GC);
  96. +        XFillArc(butPtr->display, pixmap, gc, x-butPtr->indicatorSpace,
  97. +             y-radius,  radius*2-butPtr->borderWidth-1,
  98. +             radius*2-butPtr->borderWidth-1,0,360*64);
  99. +    }
  100. +    Tk_Draw3DCircle(butPtr->display, tkwin,pixmap,x-butPtr->indicatorSpace,
  101. +         y-radius, butPtr->borderWidth, radius, TK_RELIEF_SUNKEN, 
  102. +         butPtr->normalBorder);
  103.      }
  104. -
  105.      /*
  106.       * If the button is disabled with a stipple rather than a special
  107.       * foreground color, generate the stippled effect.  If the widget
  108. @@ -1576,7 +1573,7 @@
  109.          butPtr->indicatorDiameter = butPtr->fontPtr->ascent
  110.              + butPtr->fontPtr->descent;
  111.          if (butPtr->type == TYPE_CHECK_BUTTON) {
  112. -        butPtr->indicatorDiameter = (80*butPtr->indicatorDiameter)/100;
  113. +        butPtr->indicatorDiameter++;
  114.          }
  115.          butPtr->indicatorSpace = butPtr->indicatorDiameter
  116.          + XTextWidth(butPtr->fontPtr, "0", 1);
  117.