Skip to content

Commit

Permalink
Barras progreso ya no necesita conocer al modelo
Browse files Browse the repository at this point in the history
  • Loading branch information
autosquash committed Jan 12, 2024
1 parent 0995c3f commit 084e7e1
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 47 deletions.
5 changes: 3 additions & 2 deletions dev/estructura.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,13 +199,12 @@

- vista/barras_progreso.cpp:
- vista/barras_progreso.h
- modelo/modelo.h
- vista/basicos_vista.h
- vista/vista_data.h

- vista/barras_progreso.h:
- vista/componentes/barra_progreso.h
- vista/presentador.h
- vista/presentaciones.h

- vista/basicos_vista.cpp:
- vista/basicos_vista.h
Expand Down Expand Up @@ -254,6 +253,7 @@
- fase_nivel.h
- log_init.h
- templates/helpers.h
- vista/presentador.h
- vista/vista.h

- vista/enlace_vista.h:
Expand Down Expand Up @@ -344,6 +344,7 @@
- vista/presentador.h:
- modelo/modelo.h
- modelo/modelo_shared.h
- vista/presentaciones.h
- vista/vista_shared.h

- vista/vista.cpp:
Expand Down
10 changes: 3 additions & 7 deletions src/vista/barras_progreso.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#include "barras_progreso.h"
#include "../modelo/modelo.h"
#include "basicos_vista.h"
#include "vista_data.h"

Expand All @@ -9,20 +8,17 @@ namespace medidas {

/* Crea y actualiza las barras de progreso */
std::vector<BarraProgresoConNombre> crear_barras_progreso(
const EstadoPreparacionPizzas &preparacion, const sf::Vector2f &pos_panel,
const sf::Font &font
const VistaPreparacionPizzas &vista_preparacion_pizzas,
const sf::Vector2f &pos_panel, const sf::Font &font
) {
const auto vista_preparaciones_pizzas =
presentador::estado_preparacion_pizzas_to_vista(preparacion);

std::vector<BarraProgresoConNombre> vect{};
const int pos_x = pos_panel.x + medidas::MARGEN_IZQ_ETIQUETAS;
const int pos_y_inicial = pos_panel.y + medidas::FILA_CONTENIDO_PANEL;
const int ancho = 300;
const int largo = 40;
const auto dimensiones = sf::Vector2f(ancho, largo);
int i = 0;
for (auto &vista_preparacion_pizza : vista_preparaciones_pizzas) {
for (auto &vista_preparacion_pizza : vista_preparacion_pizzas) {
const int offset_y =
i * medidas::DIFERENCIA_VERTICAL_ENTRE_BARRAS_PROGRESO;
const int pos_y = pos_y_inicial + offset_y;
Expand Down
4 changes: 2 additions & 2 deletions src/vista/barras_progreso.h
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#pragma once

#include "componentes/barra_progreso.h"
#include "presentador.h"
#include "presentaciones.h"
#include <vector>

struct EstadoPreparacionPizzas;

std::vector<BarraProgresoConNombre> crear_barras_progreso( //
const EstadoPreparacionPizzas &, //
const VistaPreparacionPizzas &, //
const sf::Vector2f &pos_panel, //
const sf::Font & //
);
13 changes: 9 additions & 4 deletions src/vista/enlace_vista.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include "../fase_nivel.h"
#include "../log_init.h"
#include "../templates/helpers.h"
#include "presentador.h"
#include "vista.h"
#include <SFML/Graphics/RenderTarget.hpp>
#include <SFML/System/Time.hpp>
Expand Down Expand Up @@ -105,17 +106,21 @@ void EnlaceVista::actualizar_interfaz_grafico(
modelo_amplio.modelo_interno
);
vista->activar_botones_condicionalmente(activacion_botones);
std::optional<EstadoPreparacionPizzas> preparacion;
std::optional<VistaPreparacionPizzas> vista_preparacion;
const auto fase_actual = modelo_amplio.get_fase_actual();
if ( //
fase_actual == FaseNivel::Activa ||
fase_actual == FaseNivel::EsperaAntesDeResultado
) {
preparacion.emplace(
modelo_amplio.modelo_interno.obtener_estado_preparacion_pizzas()
const auto preparacion =
modelo_amplio.modelo_interno.obtener_estado_preparacion_pizzas();
vista_preparacion.emplace(
presentador::estado_preparacion_pizzas_to_vista(preparacion)
);
}
vista->actualizarIU(target, modelo_amplio, preparacion, tiempo_real_actual);
vista->actualizarIU(
target, modelo_amplio, vista_preparacion, tiempo_real_actual
);
}

PresentacionVista EnlaceVista::get_presentacion_vista() const { //
Expand Down
5 changes: 3 additions & 2 deletions src/vista/paneles.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,16 @@ void TitulosPaneles::draw(
PanelesCompletos::PanelesCompletos(const sf::Font &font)
: ObjetoConFont(font), titulos_paneles(font) {}

void PanelesCompletos::actualizar(const EstadoPreparacionPizzas &preparacion //
void PanelesCompletos::actualizar(
const VistaPreparacionPizzas &vista_preparacion //
) {
if (!visible)
return;
auto pos_panel = basicos_vista::obtener_posicion_panel( //
IndicePanel::PANEL_EN_PREPARACION
);
barras_progreso_con_nombres = crear_barras_progreso( //
preparacion, pos_panel, font
vista_preparacion, pos_panel, font
);
}

Expand Down
2 changes: 1 addition & 1 deletion src/vista/paneles.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ struct PanelesCompletos : public ObjetoConFont, public sf::Drawable {

PanelesCompletos(const sf::Font &);

void actualizar(const EstadoPreparacionPizzas & //
void actualizar(const VistaPreparacionPizzas & //
);
virtual void draw(
sf::RenderTarget &target, //
Expand Down
11 changes: 11 additions & 0 deletions src/vista/presentaciones.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#pragma once

#include <string>
#include <vector>

struct VistaPreparacionPizza {
std::string nombre_pizza;
int porcentaje;
};

using VistaPreparacionPizzas = std::vector<VistaPreparacionPizza>;
6 changes: 1 addition & 5 deletions src/vista/presentador.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,11 @@

#include "../modelo/modelo.h"
#include "../modelo/modelo_shared.h"
#include "presentaciones.h"
#include "vista_shared.h"
#include <string>
#include <vector>

struct VistaPreparacionPizza {
std::string nombre_pizza;
int porcentaje;
};

namespace presentador {

std::string crea_linea_completitud_pizza(
Expand Down
27 changes: 10 additions & 17 deletions src/vista/vista.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,25 +69,18 @@ namespace {

///// Vista (private) /////

// TODO: diferenciar entre actualizacion de datos y dibujado
void Vista::_actualizar_paneles(const EstadoPreparacionPizzas &preparacion //
) {
// TODO: usar el sistema nativo de dibujo de SFML.
paneles_completos.actualizar(preparacion);
}

void Vista::_dibujar_paneles(sf::RenderTarget &target) const {
// TODO: usar el sistema nativo de dibujo de SFML.
target.draw(paneles_completos);
}

void Vista::_actualizar_vista_paneles(
const std::optional<EstadoPreparacionPizzas> &preparacion
const std::optional<VistaPreparacionPizzas> &vista_preparacion

) {
paneles_completos.visible = preparacion.has_value();
if (preparacion) {
_actualizar_paneles(preparacion.value());
paneles_completos.visible = vista_preparacion.has_value();
if (vista_preparacion) {
paneles_completos.actualizar(vista_preparacion.value());
}
}

Expand Down Expand Up @@ -133,11 +126,11 @@ void Vista::set_presentacion_vista(
/*
* Actualiza el interfaz grafico
*/
void Vista::actualizarIU( //
sf::RenderTarget &target, //
const ModeloAmplio &modelo_amplio, //
const std::optional<EstadoPreparacionPizzas> preparacion, //
const sf::Time &tiempo_real_actual //
void Vista::actualizarIU( //
sf::RenderTarget &target, //
const ModeloAmplio &modelo_amplio, //
const std::optional<VistaPreparacionPizzas> &vista_preparacion, //
const sf::Time &tiempo_real_actual //
) {

// Limpia la target y empieza a pintar los componentes visuales
Expand All @@ -146,7 +139,7 @@ void Vista::actualizarIU( //
grid.draw(target, GRID_SIZE, GRID_TONE);
const auto fase_actual = modelo_amplio.get_fase_actual();

_actualizar_vista_paneles(preparacion);
_actualizar_vista_paneles(vista_preparacion);

actualizar_etiquetas(target, etiquetas, modelo_amplio, tiempo_real_actual);
target.draw(botones);
Expand Down
14 changes: 7 additions & 7 deletions src/vista/vista.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ class Vista : public ObjetoConFont, public sf::Drawable {
private:
const dominio::TiposDePizza &tp_disponibles;

void _actualizar_paneles(const EstadoPreparacionPizzas &);
void _actualizar_paneles(const VistaPreparacionPizzas &);
void _dibujar_paneles(sf::RenderTarget &target) const;
void
_actualizar_vista_paneles(const std::optional<EstadoPreparacionPizzas> &);
_actualizar_vista_paneles(const std::optional<VistaPreparacionPizzas> &);

public:
std::shared_ptr<PresentacionVista> presentacion_vista;
Expand All @@ -51,11 +51,11 @@ class Vista : public ObjetoConFont, public sf::Drawable {
std::shared_ptr<PresentacionVista> //
);

void actualizarIU( //
sf::RenderTarget &, //
const ModeloAmplio &, //
const std::optional<EstadoPreparacionPizzas>, //
const sf::Time &tiempo_real_actual //
void actualizarIU( //
sf::RenderTarget &, //
const ModeloAmplio &, //
const std::optional<VistaPreparacionPizzas> &, //
const sf::Time &tiempo_real_actual //
);

void mostrar_elementos_fase_activa();
Expand Down

0 comments on commit 084e7e1

Please sign in to comment.