Something went wrong. Try again.
art software for the rest of us
drawing paint image sdl art
Something went wrong. Try again.
1.4 kB · 71 lines
C++
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#include "PanelManagementContext.h"
#include "../Panels/BrushesPanel.h"#include "../Panels/ColorsPanel.h"#include "../Panels/LayersPanel.h"#include "../Panels/SettingsPanel.h"
std::stack<PanelManagementMode> PanelManagementContext::modes;std::map<Panels, Panel*> PanelManagementContext::panels = { { BRUSHES, new BrushesPanel() }, { COLORS, new ColorsPanel() }, { LAYERS, new LayersPanel() }, { SETTINGS, new SettingsPanel() }};
void PanelManagementContext::Open(Panels panel){ panels.at(panel)->OnActivate(); modes.push(CONFIGURE);}
void PanelManagementContext::Close(Panel* panel){ panel->OnDeactivate(); if (modes.size() > 0 && modes.top() != DEFAULT) { modes.pop(); }}
void PanelManagementContext::CloseAll(){ for (auto panel : panels) { panel.second->OnDeactivate(); } while (!modes.empty()) { modes.pop(); }}
bool PanelManagementContext::IsOpen(Panels panel){ return panels.at(panel)->GetState() == OPEN;}
void PanelManagementContext::PopMode(){ modes.pop();}
void PanelManagementContext::PushMode(PanelManagementMode mode){ modes.push(mode);}
PanelManagementMode PanelManagementContext::GetMode(){ if (modes.empty()) { return DEFAULT; } return modes.top();}
void PanelManagementContext::OnRender(){ for (auto panel : panels) { panel.second->OnRender(); }}