#pragma once // template for modes template <class TState, class TEvents> class AppTemplateMode { public: const char* name; virtual void event(TEvents* event, TState* state) = 0; virtual void render(Canvas* canvas, TState* state) = 0; virtual void acquire() = 0; virtual void release() = 0; };