diff options
author | Nebuleon <nebuleon@alakazam> | 2013-10-25 21:31:08 +0000 |
---|---|---|
committer | Nebuleon <nebuleon@alakazam> | 2013-10-25 21:31:08 +0000 |
commit | ab2149ada76f92a84dfcc3e4d3254b092baa7b49 (patch) | |
tree | b3d4009d33fcad482d4253fd66e98520db11a50c | |
parent | 6f00939826b54edcd3bc4f0c3726d257640739b6 (diff) | |
download | ReGBA-ab2149ada76f92a84dfcc3e4d3254b092baa7b49.zip ReGBA-ab2149ada76f92a84dfcc3e4d3254b092baa7b49.tar.gz ReGBA-ab2149ada76f92a84dfcc3e4d3254b092baa7b49.tar.bz2 |
OpenDingux: Center the progress text onto the progress bar itself in the middle of the screen. Also use TRS-80 blue for the background of the progress bar.
-rw-r--r-- | source/opendingux/draw.c | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/source/opendingux/draw.c b/source/opendingux/draw.c index 47ede8f..81d518e 100644 --- a/source/opendingux/draw.c +++ b/source/opendingux/draw.c @@ -45,14 +45,14 @@ SDL_Rect ScreenRectangle = { video_scale_type ScaleMode = scaled_aspect; -#define COLOR_PROGRESS_BACKGROUND RGB888_TO_RGB565( 0, 0, 0) -#define COLOR_PROGRESS_TEXT RGB888_TO_RGB565(255, 255, 255) -#define COLOR_PROGRESS_BORDER RGB888_TO_RGB565( 0, 0, 0) -#define COLOR_PROGRESS_CONTENT RGB888_TO_RGB565(255, 255, 255) +#define COLOR_PROGRESS_BACKGROUND RGB888_TO_RGB565( 0, 0, 0) +#define COLOR_PROGRESS_TEXT_CONTENT RGB888_TO_RGB565(255, 255, 255) +#define COLOR_PROGRESS_TEXT_OUTLINE RGB888_TO_RGB565( 0, 0, 0) +#define COLOR_PROGRESS_CONTENT RGB888_TO_RGB565( 0, 128, 255) +#define COLOR_PROGRESS_OUTLINE RGB888_TO_RGB565(255, 255, 255) #define PROGRESS_WIDTH 240 -#define PROGRESS_HEIGHT 13 -#define PROGRESS_SPACING 4 +#define PROGRESS_HEIGHT 18 static bool InFileAction = false; static enum ReGBA_FileAction CurrentFileAction; @@ -934,27 +934,24 @@ static void ProgressUpdateInternal(uint32_t Current, uint32_t Total) break; } SDL_FillRect(OutputSurface, &ScreenRectangle, COLOR_PROGRESS_BACKGROUND); - uint32_t Width = GetRenderedWidth(Line); - uint32_t Height = GetRenderedHeight(Line); - uint32_t Y = (GCW0_SCREEN_HEIGHT - (Height + PROGRESS_SPACING + PROGRESS_HEIGHT)) / 2; - PrintStringOutline(Line, COLOR_PROGRESS_TEXT, COLOR_PROGRESS_BORDER, OutputSurface->pixels, OutputSurface->pitch, 0, Y, GCW0_SCREEN_WIDTH, GetRenderedHeight(" ") + 2, CENTER, TOP); - Y += Height + PROGRESS_SPACING; + SDL_Rect TopLine = { (GCW0_SCREEN_WIDTH - PROGRESS_WIDTH) / 2, (GCW0_SCREEN_HEIGHT - PROGRESS_HEIGHT) / 2, PROGRESS_WIDTH, 1 }; + SDL_FillRect(OutputSurface, &TopLine, COLOR_PROGRESS_OUTLINE); - SDL_Rect TopLine = { (GCW0_SCREEN_WIDTH - PROGRESS_WIDTH) / 2, Y, PROGRESS_WIDTH, 1 }; - SDL_FillRect(OutputSurface, &TopLine, COLOR_PROGRESS_CONTENT); + SDL_Rect BottomLine = { (GCW0_SCREEN_WIDTH - PROGRESS_WIDTH) / 2, (GCW0_SCREEN_HEIGHT - PROGRESS_HEIGHT) / 2 + PROGRESS_HEIGHT - 1, PROGRESS_WIDTH, 1 }; + SDL_FillRect(OutputSurface, &BottomLine, COLOR_PROGRESS_OUTLINE); - SDL_Rect BottomLine = { (GCW0_SCREEN_WIDTH - PROGRESS_WIDTH) / 2, Y + PROGRESS_HEIGHT - 1, PROGRESS_WIDTH, 1 }; - SDL_FillRect(OutputSurface, &BottomLine, COLOR_PROGRESS_CONTENT); + SDL_Rect LeftLine = { (GCW0_SCREEN_WIDTH - PROGRESS_WIDTH) / 2, (GCW0_SCREEN_HEIGHT - PROGRESS_HEIGHT) / 2, 1, PROGRESS_HEIGHT }; + SDL_FillRect(OutputSurface, &LeftLine, COLOR_PROGRESS_OUTLINE); - SDL_Rect LeftLine = { (GCW0_SCREEN_WIDTH - PROGRESS_WIDTH) / 2, Y, 1, PROGRESS_HEIGHT }; - SDL_FillRect(OutputSurface, &LeftLine, COLOR_PROGRESS_CONTENT); + SDL_Rect RightLine = { (GCW0_SCREEN_WIDTH + PROGRESS_WIDTH) / 2 - 1, (GCW0_SCREEN_HEIGHT - PROGRESS_HEIGHT) / 2, 1, PROGRESS_HEIGHT }; + SDL_FillRect(OutputSurface, &RightLine, COLOR_PROGRESS_OUTLINE); - SDL_Rect RightLine = { (GCW0_SCREEN_WIDTH + PROGRESS_WIDTH) / 2 - 1, Y, 1, PROGRESS_HEIGHT }; - SDL_FillRect(OutputSurface, &RightLine, COLOR_PROGRESS_CONTENT); - - SDL_Rect Content = { (GCW0_SCREEN_WIDTH - PROGRESS_WIDTH) / 2 + 1, Y + 1, (uint32_t) ((uint64_t) Current * (PROGRESS_WIDTH - 2) / Total), PROGRESS_HEIGHT - 2 }; + SDL_Rect Content = { (GCW0_SCREEN_WIDTH - PROGRESS_WIDTH) / 2 + 1, (GCW0_SCREEN_HEIGHT - PROGRESS_HEIGHT) / 2 + 1, (uint32_t) ((uint64_t) Current * (PROGRESS_WIDTH - 2) / Total), PROGRESS_HEIGHT - 2 }; SDL_FillRect(OutputSurface, &Content, COLOR_PROGRESS_CONTENT); + + PrintStringOutline(Line, COLOR_PROGRESS_TEXT_CONTENT, COLOR_PROGRESS_TEXT_OUTLINE, OutputSurface->pixels, OutputSurface->pitch, 0, 0, GCW0_SCREEN_WIDTH, GCW0_SCREEN_HEIGHT, CENTER, MIDDLE); + SDL_Flip(OutputSurface); } |