#include #include #include #include #include "WinRadioButton.h" WinRadioButton::WinRadioButton(WinBase *Parent, int new_w,int new_h, int new_x, int new_y, char *new_label): WinButton(Parent,new_w, new_h, new_x,new_y, new_label) { int xoff; button_size = 10; if(button_size > w) button_size = w; if(button_size > h) button_size = h; xoff = button_size+4; XMoveResizeWindow(dpy,twin,xoff,0,w-xoff,h); } void WinRadioButton::DrawCallback(XEvent *event) { int xoff,yoff,i; GC gc1; GC gc2; int y1,y2; if((!event)||(event->xexpose.count == 0)) { y1 = (h-button_size)/2-1; y2 = button_size + (h-button_size)/2-1; if(popped_out) { gc1 = ShadowGC; gc2 = ReliefGC; } else { gc2 = ShadowGC; gc1 = ReliefGC; } for(i=0;iascent - Font->descent)/2 -Font->descent; XDrawString(dpy,twin,ForeGC, 0,yoff,label,strlen(label)); } } } void WinRadioButton::ResizeCallback(int new_w, int new_h, XEvent *event) { int xoff; w = new_w; h = new_h; button_size = 10; if(button_size > w) button_size = w; if(button_size > h) button_size = h; xoff = button_size+4; XMoveResizeWindow(dpy,twin,xoff,0,w-xoff,h); RedrawWindow(1); } void WinRadioButton::SetBevelWidth(int new_bw) { bw = new_bw; RedrawWindow(1); }