F.E.I.S/src/notification.hpp

57 lines
1.2 KiB
C++
Raw Normal View History

#pragma once
#include <string>
2021-12-31 14:59:39 +01:00
2021-12-31 00:57:06 +01:00
#include "history_actions.hpp"
/*
2021-12-31 14:59:39 +01:00
* The display function should call ImGui primitives to display arbitrary stuff
* in the notifications queue
*/
class Notification {
public:
virtual void display() const = 0;
virtual ~Notification() = default;
};
/*
* Displays the string given to the constructor
*/
class TextNotification : public Notification {
public:
2021-12-31 14:59:39 +01:00
explicit TextNotification(const std::string& message);
void display() const override;
const std::string message;
};
/*
2021-12-31 14:59:39 +01:00
* Displays "Undo" in orange followed by the message associated with the action
* passed to the constructor
*/
class UndoNotification : public Notification {
public:
2021-12-31 14:59:39 +01:00
explicit UndoNotification(const ActionWithMessage& awm) :
message(awm.getMessage()) {};
void display() const override;
const std::string message;
};
/*
2021-12-31 14:59:39 +01:00
* Displays "Redo" in blue followed by the message associated with the action
* passed to the constructor
*/
2021-12-31 14:59:39 +01:00
class RedoNotification : public Notification {
public:
2021-12-31 14:59:39 +01:00
explicit RedoNotification(const ActionWithMessage& awm) :
message(awm.getMessage()) {};
void display() const override;
const std::string message;
};