#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "gaugeclass.h" #include "tinymeter.h" extern struct Library *RetinaBase; /* the only two globals */ extern ULONG maximum, idle; drawBackground(struct tm_sys_set *set,struct tm_data *data) { struct RastPort *rp=data->win->RPort; UWORD x,y; x=data->win->Width-1; y=data->win->Height-1; if(data->bg_bm) { BltBitMapRastPort(data->bg_bm,0,0,rp,0,0,x+1,y+1,0xc0); } else { SetAPen(rp,data->bg_color); RectFill(rp,0,0,x,y); } SetAPen(rp,data->bright_color); switch (set->bd_type) { case bd_simple: RectFill(rp,0,0,x,0); RectFill(rp,0,0,0,y); RectFill(rp,x,0,x,y); RectFill(rp,0,y,x,y); break; case bd_standard: RectFill(rp,0,0,x,0); RectFill(rp,0,0,0,y); SetAPen(rp,data->dark_color); RectFill(rp,x,1,x,y); RectFill(rp,1,y,x,y); break; case bd_double: SetAPen(rp,data->dark_color); RectFill(rp,0,0,x,0); RectFill(rp,0,0,0,y); RectFill(rp,1,y-1,x-1,y-1); RectFill(rp,x-1,2,x-1,y-1); SetAPen(rp,data->bright_color); RectFill(rp,x,1,x,y); RectFill(rp,1,y,x,y); RectFill(rp,1,1,x-1,1); RectFill(rp,1,1,1,y-1); break; } } allocGadgets(struct tm_sys_set *set, struct tm_data *data, Class *gclass) { struct tm_gau_set *many; ULONG i,max,cur,y_pos,j,tmp,voltype; for(i=0,many=data->list;inum_of_gaug;i++) { voltype=0; switch (many->type) { case typ_all: max=AvailMem(MEMF_TOTAL); cur=AvailMem(0L); break; case typ_chip: max=AvailMem(MEMF_CHIP|MEMF_TOTAL); cur=AvailMem(MEMF_CHIP); break; case typ_fast: max=AvailMem(MEMF_FAST|MEMF_TOTAL); cur=AvailMem(MEMF_FAST); break; case typ_largest_total: max=AvailMem(MEMF_TOTAL); cur=AvailMem(MEMF_LARGEST); break; case typ_largest_chip: max=AvailMem(MEMF_TOTAL|MEMF_CHIP); cur=AvailMem(MEMF_LARGEST|MEMF_CHIP); break; case typ_largest_fast: max=AvailMem(MEMF_TOTAL|MEMF_FAST); cur=AvailMem(MEMF_LARGEST|MEMF_FAST); break; case typ_largest_retina: if(RetinaBase) { max=Retina_AvailMem(MEMF_TOTAL); cur=Retina_AvailMem(MEMF_LARGEST); } else { max=0L; cur=GAU_err_notavail; } break; case typ_volume: getVolsize(data,&many->expansion[0]); max=data->volmax; cur=data->volcur; voltype=data->voltype; break; case typ_idle: switch (data->executive) { case idle_none: max=0L; cur=GAU_err_notavail; break; case idle_executive: GetCpuUsage(data->si,&data->cpu); max=(data->cpu.used_cputime_lastsec_hz)<<8; cur=(data->cpu.used_cputime_lastsec_hz-data->cpu.used_cputime_lastsec)<<8; break; case idle_own: max=maximum; cur=idle; break; } break; case typ_retina: if(RetinaBase) { max=Retina_AvailMem(MEMF_TOTAL); cur=Retina_AvailMem(0L); } else { max=0L; cur=GAU_err_notavail; } break; case typ_clock_: many->gauge_type=typ_clock; break; case typ_image: break; case typ_none: data->gdg[i]=0L; goto typ_none_1; break; } tmp=i/set->colums; if(set->lay_falling) { y_pos=set->win_border_y+(tmp*set->win_space_y); for(j=(i-(tmp*set->colums));jcolums) y_pos+=data->gauge_y_size_falling[j]; } else { y_pos= set->win_border_y+(tmp*set->win_space_y)+((data->gauge_y_size[tmp]-data->gauge_y_size_falling[i])>>1); for(j=0;jgauge_y_size[j]; } data->gdg[i]=(struct Gadget *)NewObject(gclass, NULL, GA_ID, i, GA_Top, y_pos, GA_Left, set->win_border_x+((i)%set->colums)*data->gauge_x_size+((i)%set->colums)*set->win_space_x, GA_Width, data->gauge_x_size, GA_Height, data->gauge_y_size_falling[i], GAU_Type, many->gauge_type, GAU_Current, cur, GAU_Max, max, GAU_Base, cur, GAU_VolType, voltype, GAU_Label, many->label, GAU_TextFormat, many->format, GAU_TextFont, data->Font[i], GAU_LabelPos, data->labelpos, GAU_FmtIndent, many->indent, GAU_3D, many->sty_3d, GAU_Border, many->sty_border, GAU_Background, many->sty_bg, GAU_ShadowLabel,many->sty_shadow, GAU_NoGauge, many->sty_nogauge, GAU_NoFormat, many->sty_noformat, GAU_NoBase, many->sty_nobase, GAU_ColLabel, &many->Colors[col_label], GAU_ColFormat, &many->Colors[col_format], GAU_ColBase, &many->Colors[col_base], GAU_ColCurrent, &many->Colors[col_current], GAU_ColNegative,&many->Colors[col_negative], GAU_ColBrightEdg,&many->Colors[col_bright], GAU_ColDarkEdg, &many->Colors[col_dark], GAU_ColBackground,&many->Colors[col_bg], TAG_DONE); if(!data->gdg[i]) show("Gadget creation failed!"); else { SetGadgetAttrs(data->gdg[i],data->win,NULL,TAG_DONE); RefreshGList (data->gdg[i],data->win,NULL,1); } typ_none_1: many=many->next; } } removeGadgets(struct tm_sys_set *set, struct tm_data *data) { int i; for(i=0;inum_of_gaug;i++) if(data->gdg[i]) { DisposeObject(data->gdg[i]); data->gdg[i]=0L; } }