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

31 lines
694 B
C++
Raw Normal View History

#ifndef FEIS_NOTIFICATIONSQUEUE_H
#define FEIS_NOTIFICATIONSQUEUE_H
#include <SFML/System.hpp>
2021-12-31 14:59:39 +01:00
#include <deque>
2021-12-31 00:57:06 +01:00
#include "notification.hpp"
/*
* Responsible for displaying the notifications with a fadeout effect
*/
class NotificationsQueue {
public:
2021-12-31 14:59:39 +01:00
explicit NotificationsQueue(int max_size = 10) : max_size(max_size) {};
2021-12-31 14:59:39 +01:00
void push(const std::shared_ptr<Notification>& notification);
void display();
private:
void update();
2021-12-31 14:59:39 +01:00
float time_to_alpha(float seconds) {
return std::max(0.0f, 2.0f * (0.5f - seconds));
}
sf::Clock last_push;
const int max_size;
std::deque<std::shared_ptr<Notification>> queue;
};
2021-12-31 14:59:39 +01:00
#endif // FEIS_NOTIFICATIONSQUEUE_H