Select a mission
This commit is contained in:
@ -1,11 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "View.h"
|
||||
#include "events.h"
|
||||
#include "widgets.h"
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
|
||||
#include <memory>
|
||||
#include <queue>
|
||||
#include <vector>
|
||||
|
||||
class AMI final : public View {
|
||||
@ -14,6 +16,7 @@ public:
|
||||
~AMI();
|
||||
|
||||
void draw() override;
|
||||
void handle_events(std::queue<Event>& events) override;
|
||||
|
||||
private:
|
||||
TTF_Font* avenir;
|
||||
|
||||
@ -1,13 +1,18 @@
|
||||
#pragma once
|
||||
|
||||
#include "events.h"
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
|
||||
#include <queue>
|
||||
|
||||
class View {
|
||||
public:
|
||||
View(SDL_Renderer* renderer);
|
||||
virtual ~View();
|
||||
|
||||
virtual void draw() = 0;
|
||||
virtual void handle_events(std::queue<Event>& events) = 0;
|
||||
|
||||
protected:
|
||||
SDL_Renderer* renderer;
|
||||
|
||||
3
include/events.h
Normal file
3
include/events.h
Normal file
@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
enum class Event { Next, Prev, Confirm };
|
||||
@ -85,10 +85,16 @@ public:
|
||||
|
||||
virtual void draw() override;
|
||||
|
||||
void select_next();
|
||||
void select_prev();
|
||||
size_t get_selection();
|
||||
|
||||
protected:
|
||||
int element_height;
|
||||
Alignment element_alignment;
|
||||
|
||||
size_t selection;
|
||||
|
||||
std::vector<Widget*> elements;
|
||||
|
||||
void place_element(Widget* element, int index);
|
||||
|
||||
Reference in New Issue
Block a user