Skip to content

Commit

Permalink
BarraProgreso became more general
Browse files Browse the repository at this point in the history
  • Loading branch information
autosquash committed Jan 2, 2024
1 parent eca14c9 commit 3585277
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 39 deletions.
16 changes: 14 additions & 2 deletions src/vista/barras_progreso.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "barras_progreso.h"
#include "../modelo/modelo.h"
#include "basicos_vista.h"
#include "vista_data.h"

namespace medidas {
constexpr int DIFERENCIA_VERTICAL_ENTRE_BARRAS_PROGRESO = 60;
Expand All @@ -23,8 +24,19 @@ std::vector<BarraProgresoConNombre> crear_barras_progreso(
i * medidas::DIFERENCIA_VERTICAL_ENTRE_BARRAS_PROGRESO;
const int pos_y = pos_y_inicial + offset_y;
const auto posicion = sf::Vector2f(pos_x, pos_y);
const auto str = tipo_pizza_to_string[preparacion_pizza.tipo];
BarraProgresoConNombre bpn(dimensiones, str, posicion, font);
const auto texto = tipo_pizza_to_string[preparacion_pizza.tipo];
const BPNColors bpn_colors = {
colores::barra_progreso::FONDO,
colores::barra_progreso::RELLENO,
colores::barra_progreso::TEXTO,
};
BarraProgresoConNombre bpn(
dimensiones, //
texto, //
posicion, //
bpn_colors, //
font //
);
bpn.actualizar_porcentaje(preparacion_pizza.porcentaje);
vect.push_back(bpn);
i++;
Expand Down
52 changes: 21 additions & 31 deletions src/vista/componentes/barra_progreso.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,31 @@
#include "varios.h"
#include <cassert>

namespace colores {
namespace barra_progreso {
using sf::Color;
const Color FONDO = {230, 230, 230};
const Color RELLENO = {255, 140, 0}; // 30, 144, 255
const Color TEXTO = {0, 0, 0};
} // namespace barra_progreso
} // namespace colores

///////////////////////////////////////////
// BarraProgreso
///////////////////////////////////////////

// Metodos estaticos para crear los miembros de BarraProgreso
sf::RectangleShape BarraProgreso::crear_fondo(
const sf::Vector2f &dimensiones, const sf::Vector2f &posicion
) {
sf::RectangleShape fondo;
fondo.setSize(dimensiones);
fondo.setFillColor(colores::barra_progreso::FONDO);
fondo.setPosition(posicion);
return fondo;
}
sf::RectangleShape BarraProgreso::crear_relleno(
const sf::Vector2f &dimensiones, const sf::Vector2f &posicion
sf::RectangleShape BarraProgreso::_create_filled_rect(
const sf::Vector2f &dimensiones, //
const sf::Vector2f &posicion, //
const sf::Color color //
) {
sf::RectangleShape relleno;
relleno.setFillColor(colores::barra_progreso::RELLENO);
relleno.setPosition(posicion);
return relleno;
sf::RectangleShape shape;
shape.setSize(dimensiones);
shape.setFillColor(color);
shape.setPosition(posicion);
return shape;
}

BarraProgreso::BarraProgreso(
const sf::Vector2f &dimensiones, const sf::Vector2f &posicion
const sf::Vector2f &dimensiones, //
const sf::Vector2f &posicion, //
const ColorPair &color_pair //
)
: dimensiones(dimensiones), //
fondo(crear_fondo(dimensiones, posicion)), //
relleno(crear_relleno(dimensiones, posicion) //
: dimensiones(dimensiones), //
fondo(_create_filled_rect(dimensiones, posicion, color_pair.bg)), //
relleno(_create_filled_rect(dimensiones, posicion, color_pair.fg) //
) {}

/* Actualiza el porcentaje de la barra de progreso */
Expand All @@ -60,12 +47,13 @@ void BarraProgreso::dibujar(sf::RenderWindow &ventana) const {
sf::Text BarraProgresoConNombre::_crear_etiqueta(
const std::string &texto, //
const sf::Vector2f &posicion_barra, //
const sf::Color &color_texto, //
const sf::Font &font //
) {
return crearEtiqueta(
texto, //
24, //
colores::barra_progreso::TEXTO, //
color_texto, //
font, //
{posicion_barra.x + 20, posicion_barra.y + 5} //

Expand All @@ -76,10 +64,12 @@ BarraProgresoConNombre::BarraProgresoConNombre(
const sf::Vector2f &dimensiones, //
const std::string &texto, //
const sf::Vector2f &posicion, //
const BPNColors &bpn_colors, //
const sf::Font &font //
)
: bp(dimensiones, posicion),
etiqueta(_crear_etiqueta(texto, posicion, font)) {}
: bp(dimensiones, posicion, bpn_colors.color_pair),
etiqueta(_crear_etiqueta(texto, posicion, bpn_colors.color_texto, font)) {
}

void BarraProgresoConNombre::actualizar_porcentaje(int porcentaje) { //
bp.actualizar_porcentaje(porcentaje);
Expand Down
26 changes: 20 additions & 6 deletions src/vista/componentes/barra_progreso.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,27 @@
// BarraProgreso
//////////////////////////////////////////

struct ColorPair {
sf::Color bg;
sf::Color fg;
};

struct BarraProgreso {
private:
sf::Vector2f dimensiones;
sf::RectangleShape fondo;
sf::RectangleShape relleno;
static sf::RectangleShape crear_fondo( //
const sf::Vector2f &dimensiones, const sf::Vector2f &posicion
);
static sf::RectangleShape crear_relleno(
const sf::Vector2f &dimensiones, const sf::Vector2f &posicion
static sf::RectangleShape _create_filled_rect( //
const sf::Vector2f &dimensiones, //
const sf::Vector2f &posicion, //
const sf::Color color //
);

public:
BarraProgreso(
const sf::Vector2f &dimensiones, const sf::Vector2f &posicion
const sf::Vector2f &dimensiones, //
const sf::Vector2f &posicion, //
const ColorPair &color_pair //
);
void actualizar_porcentaje(int porcentaje);
void dibujar(sf::RenderWindow &ventana) const;
Expand All @@ -30,13 +36,20 @@ struct BarraProgreso {
// BarraProgresoConNombre
///////////////////////////////////////////

// Colores de una BarraProgresoConNombre
struct BPNColors {
ColorPair color_pair;
sf::Color color_texto;
};

struct BarraProgresoConNombre {
private:
sf::Text etiqueta;
BarraProgreso bp;
static sf::Text _crear_etiqueta(
const std::string &texto, //
const sf::Vector2f &posicion_barra, //
const sf::Color &color_texto, //
const sf::Font & //
);

Expand All @@ -45,6 +58,7 @@ struct BarraProgresoConNombre {
const sf::Vector2f &dimensiones, //
const std::string &texto, //
const sf::Vector2f &posicion, //
const BPNColors &bpn_colors, //
const sf::Font & //
);
void actualizar_porcentaje(int porcentaje);
Expand Down
11 changes: 11 additions & 0 deletions src/vista/vista_data.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
#pragma once

#include <SFML/Graphics.hpp>

#define TAMANO_INICIAL_VENTANA 1800, 920
#define FPS 60

namespace colores {
namespace barra_progreso {
using sf::Color;
const Color FONDO = {230, 230, 230};
const Color RELLENO = {255, 140, 0}; // 30, 144, 255
const Color TEXTO = {0, 0, 0};
} // namespace barra_progreso
} // namespace colores

0 comments on commit 3585277

Please sign in to comment.