Files
Archimedes/layers/layerstack.h
2024-08-10 21:20:28 -05:00

32 lines
702 B
C++

#pragma once
#include "terminal.h"
#include "layer.h"
class LayerStack {
public:
LayerStack();
~LayerStack();
void pushLayer(Layer*);
void pushOverlay(Layer*);
void popLayer(Layer*);
void popOverlay(Layer*);
void propagateEvent(const Event*);
void updateLayers();
void shutdown();
inline Layer* getLayer(unsigned long i) { return layers.at(i); }
std::vector<Layer*>::iterator begin() {return layers.begin();}
std::vector<Layer*>::iterator end() {return layers.end();}
private:
std::vector<Layer*> layers;
std::vector<Layer*>::iterator insert;
bool eventHandled;
};