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

55 lines
1.2 KiB
C++
Raw Normal View History

#ifndef FEIS_NOTIFICATION_H
#define FEIS_NOTIFICATION_H
#include <string>
2021-12-31 00:57:06 +01:00
#include "history_actions.hpp"
/*
* 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:
explicit TextNotification(const std::string &message);
void display() const override;
const std::string message;
};
/*
* Displays "Undo" in orange followed by the message associated with the action passed to the constructor
*/
class UndoNotification : public Notification {
public:
explicit UndoNotification(const ActionWithMessage& awm) : message(awm.getMessage()) {};
void display() const override;
const std::string message;
};
/*
* Displays "Redo" in blue followed by the message associated with the action passed to the constructor
*/
class RedoNotification : public Notification {
public:
explicit RedoNotification(const ActionWithMessage& awm) : message(awm.getMessage()) {};
void display() const override;
const std::string message;
};
#endif //FEIS_NOTIFICATION_H