#include "Tools.h" /***********************************************/ /* Fonction pour VDipstick */ /* Création d'une jauge verticale */ /* plusieurs options */ /***********************************************/ void InitVDipstick(struct XObj *xobj) { unsigned long mask; XSetWindowAttributes Attr; /* Enregistrement des couleurs et de la police */ MyAllocNamedColor(xobj->display,*xobj->colormap,xobj->forecolor,&xobj->TabColor[fore]); MyAllocNamedColor(xobj->display,*xobj->colormap,xobj->backcolor,&xobj->TabColor[back]); MyAllocNamedColor(xobj->display,*xobj->colormap,xobj->licolor,&xobj->TabColor[li]); MyAllocNamedColor(xobj->display,*xobj->colormap,xobj->shadcolor,&xobj->TabColor[shad]); MyAllocNamedColor(xobj->display,*xobj->colormap,"#000000",&xobj->TabColor[black]); MyAllocNamedColor(xobj->display,*xobj->colormap,"#FFFFFF",&xobj->TabColor[white]); /* Minimum size */ if (xobj->width<11) xobj->width=11; if (xobj->height<30) xobj->height=30; mask=0; Attr.background_pixel=x11base->TabColor[back].pixel; mask|=CWBackPixel; xobj->win=XCreateWindow(xobj->display,*xobj->ParentWin, xobj->x,xobj->y,xobj->width,xobj->height,0, CopyFromParent,InputOutput,CopyFromParent, mask,&Attr); xobj->gc=XCreateGC(xobj->display,xobj->win,0,NULL); XSetForeground(xobj->display,xobj->gc,xobj->TabColor[fore].pixel); XSetBackground(xobj->display,xobj->gc,x11base->TabColor[back].pixel); XSetLineAttributes(xobj->display,xobj->gc,1,LineSolid,CapRound,JoinMiter); if (xobj->value2>xobj->value3) xobj->value3=xobj->value2+50; if (xobj->valuevalue2) xobj->value=xobj->value2; if (xobj->value>xobj->value3) xobj->value=xobj->value3; } void DestroyVDipstick(struct XObj *xobj) { XFreeGC(xobj->display,xobj->gc); XDestroyWindow(xobj->display,xobj->win); } void DrawVDipstick(struct XObj *xobj) { int i,j; i=(xobj->height-4)*(xobj->value-xobj->value2)/(xobj->value3-xobj->value2); j=xobj->height-i; DrawReliefRect(0,0,xobj->width,xobj->height,xobj, x11base->TabColor[shad].pixel,x11base->TabColor[li].pixel, x11base->TabColor[black].pixel,-1); if (i!=0) { DrawReliefRect(2,j-2,xobj->width-4,i,xobj, xobj->TabColor[li].pixel,xobj->TabColor[shad].pixel, xobj->TabColor[black].pixel,-1); XSetForeground(xobj->display,xobj->gc,xobj->TabColor[back].pixel); XFillRectangle(xobj->display,xobj->win,xobj->gc,5,j+1,xobj->width-10,i-6); } } void EvtMouseVDipstick(struct XObj *xobj,XButtonEvent *EvtButton) { } void EvtKeyVDipstick(struct XObj *xobj,XKeyEvent *EvtKey) { } void ProcessMsgVDipstick(struct XObj *xobj,unsigned long type,unsigned long *body) { }