#ifndef WINDOW_H_
#define WINDOW_H_
#include <gtk/gtk.h>
#include <gtk/gtkgl.h>
#include "UIManager.h"
#include "Drawer.h"
#include "SidebarManager.h"
#include "FileManager.h"
#include "EditManager.h"
#include "Level.h"
class WindowManager;
class Window {
private:
GtkWidget *window;
UIManager uiManager;
EditManager editor;
Drawer drawer;
SidebarManager sidebar;
FileManager fileManager;
WindowManager *manager;
Level level;
// prevent shallow copy
Window(const Window &w);
const Window& operator=(const Window &w);
static gboolean deleteEvent(GtkWidget *widget, GdkEvent *event, Window *window);
public:
Window(GdkGLConfig *glconfig, WindowManager *manager);
virtual ~Window();
void show();
void update();
void handleAction(UIManager::Action action);
void redraw() {
drawer.update();
}
EditManager& getEditManager() {
return editor;
Level& getLevel() {
return level;
};
#endif /*WINDOW_H_*/