button.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:17k
源码类别:

GIS编程

开发平台:

Visual C++

  1. /*
  2.  * Copyright (c) 1993-1997, Silicon Graphics, Inc.
  3.  * ALL RIGHTS RESERVED 
  4.  * Permission to use, copy, modify, and distribute this software for 
  5.  * any purpose and without fee is hereby granted, provided that the above
  6.  * copyright notice appear in all copies and that both the copyright notice
  7.  * and this permission notice appear in supporting documentation, and that 
  8.  * the name of Silicon Graphics, Inc. not be used in advertising
  9.  * or publicity pertaining to distribution of the software without specific,
  10.  * written prior permission. 
  11.  *
  12.  * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
  13.  * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
  14.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
  15.  * FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
  16.  * GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
  17.  * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
  18.  * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
  19.  * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
  20.  * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
  21.  * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
  22.  * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
  23.  * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
  24.  * 
  25.  * US Government Users Restricted Rights 
  26.  * Use, duplication, or disclosure by the Government is subject to
  27.  * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
  28.  * (c)(1)(ii) of the Rights in Technical Data and Computer Software
  29.  * clause at DFARS 252.227-7013 and/or in similar or successor
  30.  * clauses in the FAR or the DOD or NASA FAR Supplement.
  31.  * Unpublished-- rights reserved under the copyright laws of the
  32.  * United States.  Contractor/manufacturer is Silicon Graphics,
  33.  * Inc., 2011 N.  Shoreline Blvd., Mountain View, CA 94039-7311.
  34.  *
  35.  * OpenGL(R) is a registered trademark of Silicon Graphics, Inc.
  36.  */
  37. #include <GL/glut.h>
  38. #include <mui/gizmo.h>
  39. #include <mui/displaylist.h>
  40. #include <mui/uicolor.h>
  41. void muiLinkButtons(muiObject *obj1, muiObject *obj2)
  42. {
  43.     Button *b1, *b2, *tmp;
  44.     
  45.     if ((obj1->type != MUI_RADIOBUTTON || obj2->type != MUI_RADIOBUTTON) &&
  46.         (obj1->type != MUI_TINYRADIOBUTTON || obj2->type != MUI_TINYRADIOBUTTON)) {
  47. muiError("muiLinkButtons: attempt to link non radio buttons");
  48.     }
  49.     b1 = (Button *)obj1->object;
  50.     b2 = (Button *)obj2->object;
  51.     if (b1->link == 0 && b2->link == 0) {
  52. b1->link = b2;
  53. b2->link = b1;
  54. return;
  55.     }
  56.     if (b1->link == 0) {
  57. b1->link = b2->link;
  58. b2->link = b1;
  59. return;
  60.     }
  61.     if (b2->link == 0) {
  62. b2->link = b1->link;
  63. b1->link = b2;
  64. return;
  65.     }
  66.     tmp = b1->link;
  67.     b1->link = b2->link;
  68.     b2->link = tmp;
  69.     return;
  70. }
  71. void     muiClearRadio(muiObject *rad)
  72. {
  73.     Button *b1, *b2;
  74.     b2 = b1 = (Button *)rad->object;
  75.     muiSetActive(b1->object, 0);
  76.     if (b1->link == 0) return;
  77.     b1 = b1->link;
  78.     while (b1 != b2) {
  79. muiSetActive(b1->object, 0);
  80. b1 = b1->link;
  81.     }
  82. }
  83. static void drawbuttonlabel(muiObject *obj)
  84. {
  85.     int xmin, ymin;
  86.     Button *b = (Button *)obj->object;
  87.     if (!b->str)
  88. return;
  89.     switch (obj->type) {
  90. /*
  91. case TINYTOGGLE:
  92.     xmin = obj->xmin+16;
  93.     ymin = obj->ymin+4;
  94.     break;
  95. case GENERICBUTTON:
  96.     xmin = obj->xmin+ (obj->xmax - obj->xmin - strwidth(obj->str))/2 + 1;
  97.     ymin = obj->ymin+9;
  98.     break;
  99. case PUSHBUTTON:
  100.     if (getdefaultbut(b)) {
  101.      xmin = obj->xmin+ (obj->xmax - 15 - obj->xmin - strwidth(obj->str))/2 + 1;
  102.      ymin = obj->ymin+9;
  103.     } else {
  104.      xmin = obj->xmin+ (obj->xmax - obj->xmin - strwidth(obj->str))/2 + 1;
  105.      ymin = obj->ymin+9;
  106.     }
  107.     break;
  108.      case BED:
  109.     xmin = obj->xmin+ (obj->xmax - obj->xmin - strwidth(obj->str))/2 + 1;
  110.     ymin = obj->ymin+8;
  111.     break;
  112. case CHECKBUTTON:
  113.     xmin = obj->xmin+27;
  114.     ymin = obj->ymin+6;
  115.     break;
  116. */
  117. case MUI_TINYRADIOBUTTON:
  118.     xmin = obj->xmin+19;
  119.     ymin = obj->ymin+4;
  120.     break;
  121. case MUI_RADIOBUTTON:
  122.     xmin = obj->xmin+30;
  123.     ymin = obj->ymin+8;
  124.     break;
  125. /*
  126. case INDICATOR:
  127.     xmin = obj->xmin+20;
  128.     ymin = obj->ymin+8;
  129.     break;
  130. */
  131.      default:
  132.     xmin = obj->xmin+20;
  133.     ymin = obj->ymin+9;
  134.     break;
  135.     }
  136.     {
  137.      if (muiGetEnable(obj))
  138.             uiBlack();
  139.      else
  140.     uiDkGray();
  141. uicmov2i(xmin, ymin);
  142. uicharstr(b->str, UI_FONT_NORMAL);
  143.     }
  144. }
  145. void drawradiobutton(muiObject *obj)
  146. {
  147.     int xmin = obj->xmin, xmax = obj->xmax, ymin = obj->ymin, ymax = obj->ymax;
  148.     if (!muiGetVisible(obj)) {
  149. /*
  150.      int sl = 0;
  151.      font(BUTTONFONT1);
  152. if (b->str) sl = strwidth(b->str);
  153. backgrounddraw(b->xmin,b->ymin,b->xmin+30+sl,b->ymax);
  154. */
  155. return;
  156.     }
  157.     if (muiGetEnable(obj)) {
  158.      if (obj->locate) {
  159.             if (obj->select) {
  160. if (obj->active) {
  161.     uiDkGray();
  162.                   uipmv2i(xmin,ymin+10); uipdr2i(xmin,ymin+13); 
  163. uipdr2i(xmin+10,ymax); 
  164.                   uipdr2i(xmin+13,ymax); uipdr2i(xmax,ymin+13);  uipdr2i(xmax,ymin+10); 
  165.                   uipdr2i(xmin+13,ymin); uipdr2i(xmin+10,ymin); uipclos();
  166.     uiVyLtGray();
  167.                   uipmv2i(xmin+1,ymin+11); uipdr2i(xmin+1,ymin+13); 
  168.              uipdr2i(xmin+10,ymax-1); uipdr2i(xmin+13,ymax-1); 
  169.              uipdr2i(xmax-1,ymin+13); uipdr2i(xmax-1,ymin+11); 
  170.                   uipdr2i(xmin+13,ymin+2); uipdr2i(xmin+10,ymin+2); 
  171. uipclos();
  172.     
  173.     uiWhite();
  174.                   uimove2i(xmin+1,ymin+12);  uidraw2i(xmin+11,ymax-1);  
  175.                   uidraw2i(xmin+12,ymax-1);  uidraw2i(xmax-1,ymin+12);
  176. uiendline();
  177.                   uimove2i(xmin+1,ymin+13);  uidraw2i(xmin+10,ymax-1);  
  178.                   uidraw2i(xmin+13,ymax-1);  uidraw2i(xmax-1,ymin+13);
  179. uiendline();
  180. } else {
  181.     uiDkGray();
  182.                   uimove2i(xmin,ymin+13);   uidraw2i(xmin+10,ymax);  
  183.                   uidraw2i(xmin+13,ymax);   uidraw2i(xmax,ymin+13);
  184. uiendline();
  185.                   uimove2i(xmin,ymin+12);   uidraw2i(xmin+10,ymax-1);  
  186.                   uidraw2i(xmin+13,ymax-1); uidraw2i(xmax,ymin+12);
  187. uiendline();
  188.             uiLtGray();
  189.                   uimove2i(xmin+1,ymin+12); uidraw2i(xmin+11,ymax-1);  
  190.                   uidraw2i(xmin+12,ymax-1); uidraw2i(xmax-1,ymin+12);
  191. uiendline();
  192.     uiWhite();
  193.                   uimove2i(xmin+2,ymin+12); uidraw2i(xmin+11,ymax-2);  
  194.                   uidraw2i(xmin+12,ymax-2); uidraw2i(xmax-2,ymin+12);
  195. uiendline();
  196.                   uimove2i(xmin+3,ymin+12); uidraw2i(xmin+11,ymax-3);  
  197.                   uidraw2i(xmin+12,ymax-3); uidraw2i(xmax-3,ymin+12);
  198. uiendline();
  199.     uiVyLtGray();
  200.                   uipmv2i(xmin+4,ymin+12); uipdr2i(xmin+11,ymax-4); 
  201.              uipdr2i(xmin+12,ymax-4); uipdr2i(xmax-4,ymin+12); 
  202.              uipdr2i(xmin+12,ymin+5); uipdr2i(xmin+11,ymin+5);
  203.         uipclos();
  204.     uiLtGray();
  205.                   uimove2i(xmin+3,ymin+11);  uidraw2i(xmin+11,ymin+3);  
  206.                   uidraw2i(xmin+12,ymin+3);  uidraw2i(xmax-3,ymin+11);
  207. uiendline();
  208.                   uimove2i(xmin+4,ymin+11);  uidraw2i(xmin+11,ymin+4);  
  209.                   uidraw2i(xmin+12,ymin+4);  uidraw2i(xmax-4,ymin+11);
  210. uiendline();
  211.     uiBlack();
  212.                   uimove2i(xmin+2,ymin+11);  uidraw2i(xmin+11,ymin+2);  
  213.                   uidraw2i(xmin+12,ymin+2);  uidraw2i(xmax-2,ymin+11);
  214. uiendline();
  215.     uiWhite();
  216.                   uimove2i(xmin,ymin+10);  uidraw2i(xmin+10,ymin);  
  217.                   uidraw2i(xmin+13,ymin);  uidraw2i(xmax,ymin+10);
  218. uiendline();
  219.                   uimove2i(xmin,ymin+11);  uidraw2i(xmin+10,ymin+1);  
  220.                   uidraw2i(xmin+13,ymin+1);uidraw2i(xmax,ymin+11);
  221. uiendline();
  222.                   uimove2i(xmin+1,ymin+11);uidraw2i(xmin+10,ymin+2);  
  223.                   uimove2i(xmin+13,ymin+2);uidraw2i(xmax-1,ymin+11);
  224. uiendline();  
  225. }
  226.     } else { /* not selected */
  227. if (obj->active) {
  228.     uiDkGray();
  229.                   uimove2i(xmin,ymin+13);   uidraw2i(xmin+10,ymax);  
  230.                   uidraw2i(xmin+13,ymax);   uidraw2i(xmax,ymin+13);
  231. uiendline();
  232.                   uimove2i(xmin,ymin+12);   uidraw2i(xmin+10,ymax-1);  
  233.                   uidraw2i(xmin+13,ymax-1); uidraw2i(xmax,ymin+12);
  234. uiendline();
  235.             uiLtGray();
  236.                   uimove2i(xmin+1,ymin+12); uidraw2i(xmin+11,ymax-1);  
  237.                   uidraw2i(xmin+12,ymax-1); uidraw2i(xmax-1,ymin+12);
  238. uiendline();
  239.     uiWhite();
  240.                   uimove2i(xmin+2,ymin+12); uidraw2i(xmin+11,ymax-2);  
  241.                   uidraw2i(xmin+12,ymax-2); uidraw2i(xmax-2,ymin+12);
  242. uiendline();
  243.                   uimove2i(xmin+3,ymin+12); uidraw2i(xmin+11,ymax-3);  
  244.                   uidraw2i(xmin+12,ymax-3); uidraw2i(xmax-3,ymin+12);
  245. uiendline();
  246.     uiVyLtGray();
  247.                   uipmv2i(xmin+4,ymin+12); uipdr2i(xmin+11,ymax-4); 
  248.              uipdr2i(xmin+12,ymax-4); uipdr2i(xmax-4,ymin+12); 
  249.              uipdr2i(xmin+12,ymin+5); uipdr2i(xmin+11,ymin+5);
  250.         uipclos();
  251.     uiLtGray();
  252.                   uimove2i(xmin+3,ymin+11);  uidraw2i(xmin+11,ymin+3);  
  253.                   uidraw2i(xmin+12,ymin+3);  uidraw2i(xmax-3,ymin+11);
  254. uiendline();
  255.                   uimove2i(xmin+4,ymin+11);  uidraw2i(xmin+11,ymin+4);  
  256.                   uidraw2i(xmin+12,ymin+4);  uidraw2i(xmax-4,ymin+11);
  257. uiendline();
  258.     uiBlack();
  259.                   uimove2i(xmin+2,ymin+11);  uidraw2i(xmin+11,ymin+2);  
  260.                   uidraw2i(xmin+12,ymin+2);  uidraw2i(xmax-2,ymin+11);
  261. uiendline();
  262.     uiWhite();
  263.                   uimove2i(xmin,ymin+10);  uidraw2i(xmin+10,ymin);  
  264.                   uidraw2i(xmin+13,ymin);  uidraw2i(xmax,ymin+10);
  265. uiendline();
  266.                   uimove2i(xmin,ymin+11);  uidraw2i(xmin+10,ymin+1);  
  267.                   uidraw2i(xmin+13,ymin+1);uidraw2i(xmax,ymin+11);
  268. uiendline();
  269.                   uimove2i(xmin+1,ymin+11);uidraw2i(xmin+10,ymin+2);  
  270.                   uimove2i(xmin+13,ymin+2);uidraw2i(xmax-1,ymin+11); 
  271. uiendline(); 
  272. } else { /* not active */
  273.     uiDkGray();
  274.                   uipmv2i(xmin,ymin+10); uipdr2i(xmin,ymin+13); 
  275. uipdr2i(xmin+10,ymax); 
  276.                   uipdr2i(xmin+13,ymax); uipdr2i(xmax,ymin+13);  uipdr2i(xmax,ymin+10); 
  277.                   uipdr2i(xmin+13,ymin); uipdr2i(xmin+10,ymin); uipclos();
  278.     uiVyLtGray();
  279.                   uipmv2i(xmin+1,ymin+11); uipdr2i(xmin+1,ymin+13); 
  280.              uipdr2i(xmin+10,ymax-1); uipdr2i(xmin+13,ymax-1); 
  281.              uipdr2i(xmax-1,ymin+13); uipdr2i(xmax-1,ymin+11); 
  282.                   uipdr2i(xmin+13,ymin+2); uipdr2i(xmin+10,ymin+2); 
  283. uipclos();
  284.     
  285.     uiWhite();
  286.                   uimove2i(xmin+1,ymin+12);  uidraw2i(xmin+11,ymax-1);  
  287.                   uidraw2i(xmin+12,ymax-1);  uidraw2i(xmax-1,ymin+12);
  288. uiendline();
  289.                   uimove2i(xmin+1,ymin+13);  uidraw2i(xmin+10,ymax-1);  
  290.                   uidraw2i(xmin+13,ymax-1);  uidraw2i(xmax-1,ymin+13);
  291. uiendline();
  292. }
  293.     }
  294. } else { /* not located */
  295.     if (obj->active) {
  296. uiDkGray();
  297.               uimove2i(xmin,ymin+13);   uidraw2i(xmin+10,ymax);  
  298.               uidraw2i(xmin+13,ymax);   uidraw2i(xmax,ymin+13);
  299.     uiendline();
  300.               uimove2i(xmin,ymin+12);   uidraw2i(xmin+10,ymax-1);  
  301.               uidraw2i(xmin+13,ymax-1); uidraw2i(xmax,ymin+12);
  302.     uiendline();
  303.         uiLtGray();
  304.               uimove2i(xmin+1,ymin+12); uidraw2i(xmin+11,ymax-1);  
  305.               uidraw2i(xmin+12,ymax-1); uidraw2i(xmax-1,ymin+12);
  306.     uiendline();
  307. uiWhite();
  308.               uimove2i(xmin+2,ymin+12); uidraw2i(xmin+11,ymax-2);  
  309.               uidraw2i(xmin+12,ymax-2); uidraw2i(xmax-2,ymin+12);
  310.     uiendline();
  311.               uimove2i(xmin+3,ymin+12); uidraw2i(xmin+11,ymax-3);  
  312.               uidraw2i(xmin+12,ymax-3); uidraw2i(xmax-3,ymin+12);
  313.     uiendline();
  314. uiLtGray();
  315.               uipmv2i(xmin+4,ymin+12); uipdr2i(xmin+11,ymax-4); 
  316.          uipdr2i(xmin+12,ymax-4); uipdr2i(xmax-4,ymin+12); 
  317.          uipdr2i(xmin+12,ymin+5); uipdr2i(xmin+11,ymin+5); uipclos();
  318. uiLtGray();
  319.               uimove2i(xmin+3,ymin+11);  uidraw2i(xmin+11,ymin+3);  
  320.               uidraw2i(xmin+12,ymin+3);  uidraw2i(xmax-3,ymin+11);
  321.     uiendline();
  322.               uimove2i(xmin+4,ymin+11);  uidraw2i(xmin+11,ymin+4);  
  323.               uidraw2i(xmin+12,ymin+4);  uidraw2i(xmax-4,ymin+11);
  324.     uiendline();
  325. uiBlack();
  326.               uimove2i(xmin+2,ymin+11);  uidraw2i(xmin+11,ymin+2);  
  327.               uidraw2i(xmin+12,ymin+2);  uidraw2i(xmax-2,ymin+11);
  328.     uiendline();
  329. uiWhite();
  330.               uimove2i(xmin,ymin+10);  uidraw2i(xmin+10,ymin);  
  331.               uidraw2i(xmin+13,ymin);  uidraw2i(xmax,ymin+10);
  332.     uiendline();
  333.               uimove2i(xmin,ymin+11);  uidraw2i(xmin+10,ymin+1);  
  334.               uidraw2i(xmin+13,ymin+1);uidraw2i(xmax,ymin+11);
  335.     uiendline();
  336.               uimove2i(xmin+1,ymin+11);uidraw2i(xmin+10,ymin+2);  
  337.               uimove2i(xmin+13,ymin+2);uidraw2i(xmax-1,ymin+11); 
  338.     uiendline(); 
  339.     } else {
  340.      uiDkGray();
  341.                  uipmv2i(xmin,ymin+10); uipdr2i(xmin,ymin+13); 
  342.     uipdr2i(xmin+10,ymax);
  343.                  uipdr2i(xmin+13,ymax); uipdr2i(xmax,ymin+13); 
  344.     uipdr2i(xmax,ymin+10);
  345.                  uipdr2i(xmin+13,ymin); uipdr2i(xmin+10,ymin); uipclos();
  346.      uiLtGray();
  347.                uipmv2i(xmin+1,ymin+11); uipdr2i(xmin+1,ymin+13); 
  348.           uipdr2i(xmin+10,ymax-1); uipdr2i(xmin+13,ymax-1); 
  349.           uipdr2i(xmax-1,ymin+13); uipdr2i(xmax-1,ymin+11); 
  350.                uipdr2i(xmin+13,ymin+2); uipdr2i(xmin+10,ymin+2); uipclos();
  351.      uiWhite();
  352.                uimove2i(xmin+1,ymin+12);  uidraw2i(xmin+11,ymax-1);  
  353.                uidraw2i(xmin+12,ymax-1);  uidraw2i(xmax-1,ymin+12);
  354.   uiendline();
  355.     }
  356. }
  357.     } else { /* not enabled */
  358. uiDkGray();
  359.          uipmv2i(xmin,ymin+10); uipdr2i(xmin,ymin+13); uipdr2i(xmin+10,ymax); 
  360.          uipdr2i(xmin+13,ymax); uipdr2i(xmax,ymin+13); uipdr2i(xmax,ymin+10); 
  361.          uipdr2i(xmin+13,ymin); uipdr2i(xmin+10,ymin); uipclos();
  362. uiLtGray();
  363.             uipmv2i(xmin+1,ymin+10); uipdr2i(xmin+1,ymin+13); 
  364.     uipdr2i(xmin+10,ymax-1); uipdr2i(xmin+13,ymax-1); 
  365.     uipdr2i(xmax-1,ymin+13); uipdr2i(xmax-1,ymin+10); 
  366.          uipdr2i(xmin+13,ymin+1); uipdr2i(xmin+10,ymin+1); uipclos();
  367.     }
  368.     if (obj->active) {
  369. if (muiGetEnable(obj)) {
  370.     uiSlateBlue();
  371.                 uipmv2i(xmin+12,ymax-5); uipdr2i(xmax-6,ymin+13); 
  372.         uipdr2i(xmax-8,ymin+13); uipdr2i(xmin+12,ymax-7); uipclos();
  373.     uiBlue();
  374.                 uipmv2i(xmin+12,ymax-8); uipdr2i(xmax-9,ymin+13); 
  375.         uipdr2i(xmax-9,ymin+12); uipdr2i(xmin+12,ymin+10); uipclos();
  376.     uiBlack();
  377.                 uipmv2i(xmin+12,ymin+9); uipdr2i(xmin+15,ymin+12); 
  378.         uipdr2i(xmax-6,ymin+12); uipdr2i(xmin+13,ymin+8); 
  379.         uipdr2i(xmin+12,ymin+8); uipclos();
  380.     uiDkGray();
  381.              uimove2i(xmin+13,ymin+7);  uidraw2i(xmax-5,ymin+12);  
  382. uiendline();
  383. } else {
  384.     uiSlateBlue();
  385.                 uipmv2i(xmin+12,ymax-5); uipdr2i(xmax-6,ymin+13); 
  386.         uipdr2i(xmax-6,ymin+12); uipdr2i(xmin+13,ymin+8); 
  387.         uipdr2i(xmin+12,ymin+8); uipclos();
  388.     uiBlack();
  389.              uimove2i(xmin+13,ymin+7);  uidraw2i(xmax-5,ymin+12);  
  390. uiendline();
  391. }
  392.     }
  393.     drawbuttonlabel(obj);
  394. }
  395. void drawtinyradio(muiObject *obj)
  396. {
  397.     int xmin = obj->xmin, xmax = obj->xmax,
  398.  ymin = obj->ymin, ymax = obj->ymax;
  399.     int sxmin = obj->xmin+4, sxmax = obj->xmin+13, sxmid = obj->xmin+8,
  400.  symin = obj->ymin+3, symax = obj->ymin+12, symid = obj->ymin+7;
  401.     if (!muiGetVisible(obj)) {
  402. backgrounddraw(obj->xmin,obj->ymin,obj->xmax,obj->ymax);
  403. return;
  404.     }
  405.     if (muiGetEnable(obj) && obj->locate) {
  406. if (obj->select) {
  407.          drawedges(xmin++,xmax--,ymin++,ymax--,uiBlack,uiWhite);
  408.          drawedges(xmin++,xmax--,ymin++,ymax--,uiDkGray,uiBlack);
  409.          drawedges(xmin++,xmax--,ymin++,ymax--,uiWhite,uiMmGray);
  410.          uiVyLtGray();
  411.              uirectfi(xmin,ymin,xmax,ymax);
  412. } else {
  413.          uiWhite();
  414.              uirectfi(xmin,ymin,xmax,ymax);
  415. }
  416.     } else {
  417.      uiBackground();
  418.          uirectfi(xmin,ymin,xmax,ymax);
  419.     }
  420.     uiBlack(); 
  421.         uipmv2i(sxmin, symid); uipdr2i(sxmin++, symid+1); 
  422. uipdr2i(sxmid, symax); uipdr2i(sxmid+1, symax--); uipdr2i(sxmax, symid+1);
  423.      uipclos();
  424.     uiLtGray(); 
  425.         uipmv2i(sxmax--, symid); uipdr2i(sxmid+1, symin); 
  426. uipdr2i(sxmid, symin++); uipdr2i(sxmin, symid-1);
  427.      uipclos();
  428.     if (obj->active) {
  429. if (!muiGetEnable(obj))
  430.     uiLtYellow();
  431.         else 
  432.     uiYellow();
  433.     } else {
  434. if (!muiGetEnable(obj))
  435.     uiMmGray();
  436. else if (obj->locate)
  437.     uiMmYellow();
  438. else 
  439.     uiDkYellow();
  440.     }
  441.     uipmv2i(sxmin, symid); uipdr2i(sxmin, symid+1);
  442.     uipdr2i(sxmid, symax); uipdr2i(sxmid+1, symax); uipdr2i(sxmax, symid+1);
  443.     uipdr2i(sxmax, symid); uipdr2i(sxmid+1, symin); uipdr2i(sxmid, symin);
  444.     uipclos();
  445.     drawbuttonlabel(obj);
  446. }