/* 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 <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#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 */
syntax highlighted by Code2HTML, v. 0.9.1