diff options
-rw-r--r-- | src/local.mk | 4 | ||||
-rw-r--r-- | src/widget.c | 121 | ||||
-rw-r--r-- | src/widget.h | 34 |
3 files changed, 1 insertions, 158 deletions
diff --git a/src/local.mk b/src/local.mk index 7d12189..8a8f951 100644 --- a/src/local.mk +++ b/src/local.mk @@ -9,8 +9,6 @@ mazefight_SOURCES += \ %reldir%/splash.h \ %reldir%/tk.h \ %reldir%/util.c \ - %reldir%/util.h \ - %reldir%/widget.c \ - %reldir%/widget.h + %reldir%/util.h include %reldir%/tk/local.mk diff --git a/src/widget.c b/src/widget.c deleted file mode 100644 index 25c5517..0000000 --- a/src/widget.c +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2021 P. J. McDermott - * - * This file is part of Maze Fight - * - * Maze Fight is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Maze Fight is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Maze Fight. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <SDL.h> -#include <SDL_ttf.h> -#include <stdlib.h> -#include "widget.h" - -SDL_Texture * -mf_widget_text(TTF_Font *font, const char *text, SDL_Color *color, - SDL_Renderer *renderer, SDL_Rect *rect) -{ - SDL_Surface *surface; - SDL_Texture *texture; - int line_skip; - int ascent; - int max_y; - const char *c; - int glyph_max_y; - - surface = TTF_RenderUTF8_Blended(font, text, *color); - if (surface == NULL) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Couldn't create surface: %s", - TTF_GetError()); - return NULL; - } - - texture = SDL_CreateTextureFromSurface(renderer, surface); - if (texture == NULL) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Couldn't create texture: %s", - SDL_GetError()); - SDL_FreeSurface(surface); - return NULL; - } - - line_skip = TTF_FontLineSkip(font); - ascent = TTF_FontAscent (font); - max_y = 0; - for (c = text; *c != '\0'; ++c) { - if (TTF_GlyphMetrics(font, *c, NULL, NULL, NULL, &glyph_max_y, - NULL) < 0) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Couldn't get glyph metrics: %s", - SDL_GetError()); - continue; - } - if (glyph_max_y > max_y) { - max_y = glyph_max_y; - } - } - rect->x = 0; - rect->y = (line_skip - ascent) / 2 + (ascent - max_y); - rect->w = surface->w; - rect->h = surface->h; - - SDL_FreeSurface(surface); - - return texture; -} - -SDL_Texture * -mf_widget_button(TTF_Font *font, const char *text, SDL_Color *text_color, - SDL_Color *fill_color, int padding, SDL_Renderer *renderer, - SDL_Rect *rect) -{ - SDL_Texture *text_texture; - SDL_Rect text_rect; - SDL_Texture *texture; - SDL_Texture *target; - - text_texture = mf_widget_text(font, text, text_color, renderer, - &text_rect); - if (text_texture == NULL) { - return NULL; - } - text_rect.x += padding; - text_rect.y += padding; - rect->x = 0; - rect->y = 0; - rect->w = text_rect.w + padding * 2; - rect->h = TTF_FontLineSkip(font) + padding * 2; - - texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888, - SDL_TEXTUREACCESS_TARGET, rect->w, rect->h); - if (texture == NULL) { - SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, - "Couldn't create texture: %s", - SDL_GetError()); - SDL_DestroyTexture(text_texture); - return NULL; - } - target = SDL_GetRenderTarget(renderer); - SDL_SetRenderTarget(renderer, texture); - - SDL_SetRenderDrawColor(renderer, - fill_color->r, fill_color->g, - fill_color->b, fill_color->a); - SDL_RenderClear(renderer); - SDL_RenderCopy(renderer, text_texture, NULL, &text_rect); - - SDL_SetRenderTarget(renderer, target); - return texture; -} diff --git a/src/widget.h b/src/widget.h deleted file mode 100644 index be7f79f..0000000 --- a/src/widget.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2021 P. J. McDermott - * - * This file is part of Maze Fight - * - * Maze Fight is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Maze Fight is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Maze Fight. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef MF_WIDGET_H_ -#define MF_WIDGET_H_ - -#include <SDL.h> - -SDL_Texture * -mf_widget_text(TTF_Font *font, const char *text, SDL_Color *color, - SDL_Renderer *renderer, SDL_Rect *rect); - -SDL_Texture * -mf_widget_button(TTF_Font *font, const char *text, SDL_Color *text_color, - SDL_Color *fill_color, int padding, SDL_Renderer *renderer, - SDL_Rect *rect); - -#endif /* MF_WIDGET_H_ */ |