static void draw_radio(control c, rect r) { int w; rect box, textrect; char *name; int style = (AlignLeft | AlignTop); font f; rgb old = currentcolour(); /* Calculate rectangles. */ f = gettextfont(c); setfont(f); w = strwidth(f,"W"); if (w > r.width) w = r.width; if (w > r.height) w = r.height; box = rect(r.x,r.y+1,w,w); if (w < getheight(f) - getdescent(f)) box.y += getheight(f) - getdescent(f) - w; textrect = rect(r.x+w+w/2,r.y,r.width-(w+w/2),r.height); /* Clear the check area. */ setlinewidth(1); setcolour(White); fillellipse(insetr(box,1)); /* Draw the check area */ if (isenabled(c)) setcolour(Black); else setcolour(Grey); drawellipse(box); /* Provide 'pressed button' effect by black border. */ if (ishighlighted(c)) { setlinewidth(2); drawellipse(box); setlinewidth(1); } /* Put o in circle if checked. */ if (ischecked(c)) fillellipse(insetr(box,3)); name = getname(c); if (isenabled(c)) { /* if (hasfocus(c)) { style |= Underline; setlinewidth(2); } */ setcolour(getforeground(c)); } drawtext(textrect, style, name); setcolour(old); }
void _3DTree2::rule1(int i) { if (i == 0) drawellipse(5,0,5,2); else { glScaled(.6, .6, .6); rule2(i - 1); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); } }
void _3DTree4::rule1(int i) { if (i == 0) drawellipse(2, 0, 2, 1); else { glScaled(.9, .9, .9); rule2(i - 1); rule2(i - 1); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rule2(i - 1); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); rollleft(); rollleft(); glPushMatrix(); turnleft(); rule1(i - 1); glPopMatrix(); } }