Show available missions

This commit is contained in:
2022-05-20 02:47:06 +02:00
parent 6d8ada3f18
commit a904f0cdaf
5 changed files with 130 additions and 8 deletions

View File

@ -8,9 +8,6 @@
#include <memory>
#include <vector>
constexpr const char* FT_LOGO_PATH = "resources/Fasttube_Logo-white.bmp";
constexpr const char* AVENIR_FONT_PATH = "resources/Avenir-Book.ttf";
class AMI final : public View {
public:
AMI(SDL_Renderer* renderer);
@ -24,4 +21,6 @@ private:
ImageWidget ft_logo;
TextWidget choose;
ListWidget missions_widget;
std::vector<std::unique_ptr<Widget>> missions;
};

View File

@ -5,6 +5,7 @@
#include <optional>
#include <string>
#include <vector>
enum class Alignment { LEFT, RIGHT, CENTER };
struct PositionInfo {
@ -25,6 +26,10 @@ public:
virtual void set_position(int x, int y);
virtual void set_alignment(Alignment align);
int get_width();
int get_height();
const PositionInfo& get_position();
virtual void draw() = 0;
protected:
@ -68,4 +73,23 @@ protected:
std::string text;
SDL_Texture* generate_text(const std::string& text);
};
class ListWidget : public Widget {
public:
ListWidget(SDL_Renderer* renderer, int element_height,
Alignment element_alignment);
virtual ~ListWidget();
void add_element(Widget* element);
virtual void draw() override;
protected:
int element_height;
Alignment element_alignment;
std::vector<Widget*> elements;
void place_element(Widget* element, int index);
};