/* NIGHTFALL OpenGL Interface */ /* Copyright (C) 2001 Markus Kuster */ /* */ /* This program is free software; you can redistribute it */ /* and/or modify */ /* it under the terms of the GNU General Public License as */ /* published by */ /* the Free Software Foundation; either version 2 of the License, or */ /* (at your option) any later version. */ /* */ /* This program is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* */ /* You should have received a copy of the GNU General Public License */ /* along with this program; if not, write to the Free Software */ /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* ANSI C forbids an empty source file, so put this outside */ /* do nothing here if we don't have OpenGL */ #include #include #include #include #include "Light.h" #ifdef _WITH_OPENGL #include "LightGLPrefs.h" /**************************************************************************** @package nightfall @author Markus Kuster (kuster@astro.uni-tuebingen.de) @version 1.0 @short Callback function for GLCloseEvent @param (GtkWidget) *widget Discarded @param (gpointer) *data Widget to destroy @return (void) @heading Open GL Animation ****************************************************************************/ void GLCloseEvent (GtkWidget *widget, gpointer *data) { /* if (glArea != NULL) { gtk_widget_destroy (glArea); glArea = NULL; } if (glWindow != NULL) { gtk_widget_destroy (glWindow); glWindow = NULL; } */ gtk_widget_hide (glWindow); GLWindowHidden = ON; return; } /****************************************************************** @package nightfall @author Markus Kuster (kuster@astro.uni-tuebingen.de) @version 1.0 @short Callback function for 'animation on/off' @param (GtkWidget) *widget Discarded @param (gpointer) *data Discarded @return (void) @heading *******************************************************************/ void GLAnimationEvent (GtkWidget *widget, gpointer *data) { if (Flags.movie == OFF) { Flags.movie=ON; } else { Flags.movie=OFF; } return; } /****************************************************************** @package nightfall @author Markus Kuster (kuster@astro.uni-tuebingen.de) @version 1.1 @short Callback function for open preferences window @param (GtkWidget) *widget Discarded @param (gpointer) *data Discarded @return (void) @heading *******************************************************************/ void GLPrefsEvent (GtkWidget *widget, gpointer *data) { if (GLPrefWinOpened == FALSE) { GLPrefWinOpened = TRUE; GLPrefs(); } return; } /****************************************************************** @package nightfall @author Markus Kuster (kuster@astro.uni-tuebingen.de) @version 1.0 @short Menu Creation @param (GtkWidget) *menu_bar The menu bar @return (void) @heading OpenGL User Interface *******************************************************************/ void GLMakeMenu(GtkWidget *glmenu_bar) { GtkWidget *menu; GtkWidget *edit_menu; GtkWidget *file_menu; GtkWidget *menu_items; GtkWidget *menu_opts; /* -------------- first menu (Animation) --------------------------- */ menu = gtk_menu_new(); menu_items = gtk_menu_item_new_with_label(_("Save animation ...")); gtk_menu_append(GTK_MENU (menu), menu_items); gtk_signal_connect (GTK_OBJECT(menu_items), "activate", GTK_SIGNAL_FUNC (GLAnimationEvent), NULL); gtk_widget_show(menu_items); menu_items = gtk_menu_item_new_with_label(_("Close")); gtk_menu_append(GTK_MENU (menu), menu_items); gtk_signal_connect (GTK_OBJECT(menu_items), "activate", GTK_SIGNAL_FUNC (GLCloseEvent), NULL); gtk_widget_show(menu_items); file_menu = gtk_menu_item_new_with_label(_("File")); gtk_widget_show(file_menu); gtk_menu_item_set_submenu(GTK_MENU_ITEM (file_menu), menu); gtk_menu_bar_append(GTK_MENU_BAR (glmenu_bar), file_menu); /* -------------- second menu (Options) --------------------------- */ menu = gtk_menu_new(); menu_opts = gtk_menu_item_new_with_label(_("Preferences")); gtk_menu_append(GTK_MENU (menu), menu_opts); gtk_signal_connect (GTK_OBJECT(menu_opts), "activate", GTK_SIGNAL_FUNC (GLPrefsEvent), NULL); gtk_widget_show(menu_opts); edit_menu = gtk_menu_item_new_with_label(_("Edit")); gtk_widget_show(edit_menu); gtk_menu_item_set_submenu(GTK_MENU_ITEM (edit_menu), menu); gtk_menu_bar_append(GTK_MENU_BAR (glmenu_bar), edit_menu); gtk_widget_show(glmenu_bar); return; } #endif /* OpenGL end */