/* 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