pssp/src/PSX_Button.cpp

35 lines
832 B
C++

#include"PSX_Button.h"
PSX_Button::PSX_Button(SDL_Renderer* render, SDL_Rect* rect, std::string text){
renderer = render;
rButton = rect;
tText.setRenderer(renderer);
tText.loadText(text, SDL_Color{0xFF,0xFF,0xFF,127}, "assets/font.otf", 20);
// Position the text in the middle of the button background Rect
rText = {
rButton->x + (rButton->w/2 - tText.getW()/2),
rButton->y + (rButton->h/2 - tText.getH()/2),
tText.getW(),
tText.getH()
};
}
void PSX_Button::render(int state){
if(state == 1){
SDL_SetRenderDrawColor(renderer,120,120,120 ,0xFF);
tText.render(&rText);
}
else if(!state){
SDL_SetRenderDrawColor(renderer,80,80,80,0xFF);
tText.render(&rText);
}
else if(state == 3){
SDL_SetRenderDrawColor(renderer,40,40,40,0xFF);
}
SDL_RenderFillRect(renderer,rButton);
tText.render(&rText);
}