00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <stdio.h>
00018 #include "gfxcore.h"
00019 #include "gfxutil.h"
00020
00021
00038 void GFX_RoundRect(Graphics *gfx, int x, int y, int w, int h,
00039 int r, bool shadow)
00040 {
00041
00042 GFX_HLine(gfx, x+r, y, w-r*2);
00043 GFX_HLine(gfx, x+r, y+h-1, w-r*2);
00044 GFX_VLine(gfx, x, y+r, h-r*2);
00045 GFX_VLine(gfx, x+w-1, y+r, h-r*2);
00046
00047
00048 GFX_Line(gfx, x+1, y+r-1, x+r-1, y+1 );
00049 GFX_Line(gfx, x+w-r, y+1, x+w-2, y+r-1);
00050 GFX_Line(gfx, x+1, y+h-r, x+r-1, y+h-2);
00051 GFX_Line(gfx, x+w-r, y+h-2, x+w-2, y+h-r);
00052
00053
00054 if (shadow) {
00055 GFX_HLine(gfx, x+r+1, y+h, w-r*2-1);
00056 GFX_VLine(gfx, x+w , y+r+1, h-r*2-1);
00057 GFX_Line (gfx, x+w-r-1, y+h, x+w-1, y+h-r);
00058 }
00059 }
00060
00061
00070 void GFX_ProgressBar( Graphics *gfx, int x, int y, int w, int h,
00071 float value, float min, float max )
00072 {
00073 Graphics g;
00074 GFX_Init(&g, gfx);
00075
00076 if (value>max) value = max;
00077 if (value<min) value = min;
00078 int width = ((value-min)/(max-min))*(w-4);
00079
00080 GFX_Rectangle(&g, x, y, w, h);
00081
00082 GFX_SetBlitMode(&g, BLT_COPY);
00083 GFX_SetFillStyle(&g, emptyFill);
00084 GFX_FillRect(&g, x+width+2, y+1, w-width-4, h-2);
00085
00086 GFX_SetBlitMode(&g, BLT_XOR);
00087 GFX_SetFillStyle(&g, xLeaveFill);
00088 GFX_FillRect(&g, x+2, y+2, width, h-4);
00089 }