Don't load font in TextWidget
This commit is contained in:
		@ -1,10 +1,12 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "View.h"
 | 
			
		||||
#include "widgets.h"
 | 
			
		||||
 | 
			
		||||
#include <SDL2/SDL.h>
 | 
			
		||||
 | 
			
		||||
constexpr const char* FT_LOGO_PATH = "resources/Fasttube_Logo-white.bmp";
 | 
			
		||||
constexpr const char* AVENIR_FONT_PATH = "resources/Avenir-Book.ttf";
 | 
			
		||||
 | 
			
		||||
class AMI {
 | 
			
		||||
public:
 | 
			
		||||
@ -15,6 +17,8 @@ public:
 | 
			
		||||
private:
 | 
			
		||||
  SDL_Renderer* renderer;
 | 
			
		||||
 | 
			
		||||
  TTF_Font* avenir;
 | 
			
		||||
 | 
			
		||||
  ImageWidget ft_logo;
 | 
			
		||||
  TextWidget choose;
 | 
			
		||||
};
 | 
			
		||||
@ -41,8 +41,7 @@ public:
 | 
			
		||||
 | 
			
		||||
class TextWidget : public TextureWidget {
 | 
			
		||||
public:
 | 
			
		||||
  TextWidget(SDL_Renderer* renderer, SDL_Rect dest_rect,
 | 
			
		||||
             const std::string& font_path,
 | 
			
		||||
  TextWidget(SDL_Renderer* renderer, SDL_Rect dest_rect, TTF_Font* font,
 | 
			
		||||
             const std::string& initial_text = "");
 | 
			
		||||
  ~TextWidget();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,13 @@
 | 
			
		||||
#include "AMI.h"
 | 
			
		||||
 | 
			
		||||
#include "util.h"
 | 
			
		||||
 | 
			
		||||
AMI::AMI(SDL_Renderer* renderer)
 | 
			
		||||
    : renderer{renderer}, ft_logo{renderer,
 | 
			
		||||
                                  {.x = 182, .y = 0, .w = 116, .h = 40},
 | 
			
		||||
                                  FT_LOGO_PATH},
 | 
			
		||||
    : renderer{renderer}, avenir{util::load_font(AVENIR_FONT_PATH, 28)},
 | 
			
		||||
      ft_logo{renderer, {.x = 182, .y = 0, .w = 116, .h = 40}, FT_LOGO_PATH},
 | 
			
		||||
      choose{renderer,
 | 
			
		||||
             {.x = 0, .y = 45, .w = 480, .h = 40},
 | 
			
		||||
             "resources/Avenir-Book.ttf",
 | 
			
		||||
             avenir,
 | 
			
		||||
             "Choose a Mission:"} {}
 | 
			
		||||
 | 
			
		||||
void AMI::draw() {
 | 
			
		||||
 | 
			
		||||
@ -41,16 +41,15 @@ ImageWidget::ImageWidget(SDL_Renderer* renderer, SDL_Rect dest_rect,
 | 
			
		||||
    : TextureWidget{renderer, dest_rect, util::load_img(renderer, path)} {}
 | 
			
		||||
 | 
			
		||||
TextWidget::TextWidget(SDL_Renderer* renderer, SDL_Rect dest_rect,
 | 
			
		||||
                       const std::string& font_path,
 | 
			
		||||
                       const std::string& initial_text)
 | 
			
		||||
    : TextureWidget{renderer, dest_rect, std::nullopt},
 | 
			
		||||
      font{util::load_font(font_path, 28)}, text{initial_text} {
 | 
			
		||||
                       TTF_Font* font, const std::string& initial_text)
 | 
			
		||||
    : TextureWidget{renderer, dest_rect, std::nullopt}, font{font},
 | 
			
		||||
      text{initial_text} {
 | 
			
		||||
  if (text != "") {
 | 
			
		||||
    update_texture(generate_text(text));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TextWidget::~TextWidget() { TTF_CloseFont(font); }
 | 
			
		||||
TextWidget::~TextWidget() {}
 | 
			
		||||
 | 
			
		||||
void TextWidget::update_text(const std::string& new_text) {
 | 
			
		||||
  if (text != new_text) {
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user