2007-10-04 23:38:05 +00:00
|
|
|
#include "Window.h"
|
|
|
|
#include "WindowManager.h"
|
|
|
|
|
|
|
|
|
|
|
|
gboolean Window::deleteEvent(GtkWidget *widget, GdkEvent *event, Window *window) {
|
|
|
|
gtk_widget_hide(widget);
|
|
|
|
|
|
|
|
window->manager->windowClosed(window);
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
Window::Window(GdkGLConfig *glconfig, WindowManager *manager)
|
2007-10-31 23:03:04 +00:00
|
|
|
: uiManager(this), editor(this), drawer(this, glconfig), sidebar(&editor),
|
|
|
|
fileManager(this)
|
2007-10-04 23:38:05 +00:00
|
|
|
{
|
|
|
|
this->manager = manager;
|
|
|
|
|
|
|
|
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
|
|
|
gtk_window_set_default_size(GTK_WINDOW(window), 640, 480);
|
|
|
|
g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(deleteEvent), this);
|
|
|
|
|
|
|
|
GtkWidget *vbox = gtk_vbox_new(FALSE, 0);
|
|
|
|
gtk_container_add(GTK_CONTAINER(window), vbox);
|
|
|
|
|
2007-10-18 22:07:02 +00:00
|
|
|
gtk_box_pack_start(GTK_BOX(vbox), uiManager.getMenu(), FALSE, FALSE, 0);
|
|
|
|
gtk_box_pack_start(GTK_BOX(vbox), uiManager.getToolbar(), FALSE, FALSE, 0);
|
2007-10-04 23:38:05 +00:00
|
|
|
|
2007-10-18 22:07:02 +00:00
|
|
|
gtk_window_add_accel_group(GTK_WINDOW(window), uiManager.getAccels());
|
2007-10-04 23:38:05 +00:00
|
|
|
|
|
|
|
GtkWidget *hPaned = gtk_hpaned_new();
|
|
|
|
gtk_box_pack_end(GTK_BOX(vbox), hPaned, TRUE, TRUE, 0);
|
|
|
|
|
|
|
|
gtk_paned_pack1(GTK_PANED(hPaned), drawer.getWidget(), TRUE, TRUE);
|
|
|
|
|
|
|
|
gtk_paned_pack2(GTK_PANED(hPaned), sidebar.getWidget(), FALSE, TRUE);
|
|
|
|
sidebar.update();
|
|
|
|
|
|
|
|
gtk_widget_show_all(vbox);
|
|
|
|
}
|
|
|
|
|
|
|
|
Window::~Window() {
|
|
|
|
gtk_widget_destroy(window);
|
|
|
|
}
|
|
|
|
|
|
|
|
void Window::show() {
|
|
|
|
gtk_widget_show(window);
|
|
|
|
}
|
|
|
|
|
|
|
|
void Window::update() {
|
|
|
|
drawer.update();
|
|
|
|
sidebar.update();
|
|
|
|
}
|
2007-10-30 21:54:00 +00:00
|
|
|
|
|
|
|
void Window::handleAction(UIManager::Action action) {
|
|
|
|
switch(action) {
|
2007-10-31 23:03:04 +00:00
|
|
|
case UIManager::SAVE:
|
|
|
|
fileManager.save(GTK_WINDOW(window));
|
|
|
|
break;
|
|
|
|
|
|
|
|
case UIManager::SAVE_AS:
|
|
|
|
fileManager.saveAs(GTK_WINDOW(window));
|
|
|
|
break;
|
|
|
|
|
2007-10-30 21:54:00 +00:00
|
|
|
case UIManager::ZOOM_IN:
|
|
|
|
drawer.zoom(2);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case UIManager::ZOOM_OUT:
|
|
|
|
drawer.zoom(-2);
|
|
|
|
}
|
|
|
|
}
|