#include "ui_window.h"
#include <vector>

namespace ui
{
    namespace window
    {
        struct window_t
        {
            Uint32 window;
            bool (*callback)(SDL_Event*);
        };
        std::vector<window_t> windows;

        void registerWindow(Uint32 window, bool(*callback)(SDL_Event*))
        {
            for (auto win : windows) if (win.window == window) return;
            windows.push_back((window_t){window, callback});
        }

        void unregisterWindow(Uint32 window)
        {
            for (auto win = windows.begin(); win != windows.end(); win++) if ((*win).window == window) { windows.erase(win); return; }
        }

        bool sendEvent(Uint32 window, SDL_Event *e)
        {
            for (auto win : windows) if (win.window == window) return win.callback(e);
            return true;
        }

    }
}
