/* * Copyright 2014 (c) Anna Schumaker. */ #include #include #include static const gchar *SETTINGS_WIDTH = "gui.window.width"; static const gchar *SETTINGS_HEIGHT = "gui.window.height"; static int saved_width = 0; static int saved_height = 0; gboolean __window_configure(GtkWindow *window, GdkEventConfigure *event, gpointer data) { int width = gui_settings_get(SETTINGS_WIDTH); int height = gui_settings_get(SETTINGS_HEIGHT); if (event->width != width) { saved_width = width; gui_settings_set(SETTINGS_WIDTH, event->width); } if (event->height != height) { saved_height = height; gui_settings_set(SETTINGS_HEIGHT, event->height); } return FALSE; } gboolean __window_state(GtkWindow *window, GdkEventWindowState *event, gpointer data) { if (event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED && event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) { gui_settings_set(SETTINGS_WIDTH, saved_width); gui_settings_set(SETTINGS_HEIGHT, saved_height); } return FALSE; } void gui_window_init(const gchar *icon) { GtkWindow *window = GTK_WINDOW(gui_builder_widget("o_window")); gchar *title = g_strdup_printf("Ocarina %s", get_version()); gtk_window_set_title(window, title); gtk_window_set_icon_from_file(window, icon, NULL); saved_width = gui_settings_get(SETTINGS_WIDTH); saved_height = gui_settings_get(SETTINGS_HEIGHT); if (saved_width > 0 && saved_height > 0) gtk_window_resize(window, saved_width, saved_height); g_free(title); } void gui_window_deinit() { gtk_widget_destroy(gui_builder_widget("o_window")); }