Initial revision.
This commit is contained in:
parent
1642829438
commit
0afa16ce3a
3 changed files with 215 additions and 0 deletions
5
GUI/Makefile.am
Normal file
5
GUI/Makefile.am
Normal file
|
@ -0,0 +1,5 @@
|
|||
noinst_LIBRARIES = libGui.a
|
||||
|
||||
libGui_a_SOURCES = gui.cxx gui.h
|
||||
|
||||
INCLUDES += -I$(top_builddir) -I$(top_builddir)/Lib -I$(top_builddir)/Simulator
|
166
GUI/gui.cxx
Normal file
166
GUI/gui.cxx
Normal file
|
@ -0,0 +1,166 @@
|
|||
/**************************************************************************
|
||||
* gui.cxx
|
||||
*
|
||||
* Written 1998 by Durk Talsma, started Juni, 1998. For the flight gear
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* $Id$
|
||||
* (Log is kept at end of this file)
|
||||
**************************************************************************/
|
||||
|
||||
#include "gui.h"
|
||||
#define USING_3DFX
|
||||
|
||||
puMenuBar *mainMenuBar;
|
||||
puButton *hideMenuButton;
|
||||
puDialogBox *dialogBox;
|
||||
puText *dialogBoxMessage;
|
||||
puOneShot *dialogBoxOkButton;
|
||||
puText *timerText;
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
Mouse stuff
|
||||
---------------------------------------------------------------------*/
|
||||
|
||||
void guiMotionFunc ( int x, int y )
|
||||
{
|
||||
puMouse ( x, y ) ;
|
||||
glutPostRedisplay () ;
|
||||
}
|
||||
|
||||
|
||||
void guiMouseFunc(int button, int updown, int x, int y)
|
||||
{
|
||||
puMouse (button, updown, x,y);
|
||||
glutPostRedisplay ();
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------
|
||||
the Gui callback functions
|
||||
____________________________________________________________________*/
|
||||
|
||||
void hideMenuCb (puObject *cb)
|
||||
{
|
||||
if (cb -> getValue () )
|
||||
{
|
||||
mainMenuBar -> reveal();
|
||||
printf("Showing Menu");
|
||||
hideMenuButton -> setLegend ("Hide Menu");
|
||||
}
|
||||
else
|
||||
{
|
||||
mainMenuBar -> hide ();
|
||||
printf("Hiding Menu");
|
||||
hideMenuButton -> setLegend ("Show Menu");
|
||||
}
|
||||
}
|
||||
|
||||
void goAwayCb (puObject *)
|
||||
{
|
||||
delete dialogBox;
|
||||
dialogBox = NULL;
|
||||
}
|
||||
|
||||
void mkDialog (char *txt)
|
||||
{
|
||||
dialogBox = new puDialogBox (150, 50);
|
||||
{
|
||||
new puFrame (0,0,400, 100);
|
||||
dialogBoxMessage = new puText (10, 70);
|
||||
dialogBoxMessage -> setLabel (txt);
|
||||
dialogBoxOkButton = new puOneShot (180, 10, 240, 50);
|
||||
dialogBoxOkButton -> setLegend ("OK");
|
||||
dialogBoxOkButton -> makeReturnDefault (TRUE );
|
||||
dialogBoxOkButton -> setCallback (goAwayCb);
|
||||
}
|
||||
dialogBox -> close();
|
||||
dialogBox -> reveal();
|
||||
}
|
||||
|
||||
void notCb (puObject *)
|
||||
{
|
||||
mkDialog ("This function isn't implemented yet");
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------
|
||||
The menu stuff
|
||||
---------------------------------------------------------------------*/
|
||||
char *fileSubmenu [] = { "Exit", "Close", "---------", "Print", "---------", "Save", "New", NULL };
|
||||
char *editSubmenu [] = { "Edit text", NULL };
|
||||
char *viewSubmenu [] = { "Cockpit View > ", "View >","------------", "View options...", NULL };
|
||||
char *aircraftSubmenu [] = { "Autopilot ...", "Engine ...", "Navigation", "Communication", NULL};
|
||||
char *environmentSubmenu [] = { "Time & Date...", "Terrain ...", "Weather", NULL};
|
||||
char *optionsSubmenu [] = { "Preferences", "Realism & Reliablity...", NULL};
|
||||
char *helpSubmenu [] = { "About...", "Help", NULL };
|
||||
|
||||
puCallback fileSubmenuCb [] = { notCb, notCb, NULL, notCb, NULL, notCb, notCb, NULL};
|
||||
puCallback editSubmenuCb [] = { notCb, NULL };
|
||||
puCallback viewSubmenuCb [] = { notCb, notCb, NULL, notCb, NULL };
|
||||
puCallback aircraftSubmenuCb [] = { notCb, notCb, notCb,notCb, NULL };
|
||||
puCallback environmentSubmenuCb [] = { notCb, notCb, notCb, NULL };
|
||||
puCallback optionsSubmenuCb [] = { notCb, notCb, NULL};
|
||||
puCallback helpSubmenuCb [] = { notCb, notCb, NULL };
|
||||
|
||||
|
||||
|
||||
/* -------------------------------------------------------------------------
|
||||
init the gui
|
||||
_____________________________________________________________________*/
|
||||
|
||||
|
||||
|
||||
void guiInit()
|
||||
{
|
||||
puInit();
|
||||
#ifdef USING_3DFX
|
||||
puShowCursor ();
|
||||
#endif
|
||||
puSetDefaultStyle (PUSTYLE_SMALL_BEVELLED );
|
||||
puSetDefaultColourScheme (0.2, 0.4, 0.8);
|
||||
|
||||
/* OK the rest is largerly put in here to mimick Steve Baker's "complex" example
|
||||
It should change in future versions */
|
||||
|
||||
timerText = new puText (300, 10);
|
||||
timerText -> setColour (PUCOL_LABEL, 1.0, 1.0, 1.0);
|
||||
|
||||
/* Make a button to hide the menu bar */
|
||||
hideMenuButton = new puButton (10,10, 150, 50);
|
||||
hideMenuButton -> setValue (TRUE);
|
||||
hideMenuButton -> setLegend ("Hide Menu");
|
||||
hideMenuButton -> setCallback (hideMenuCb);
|
||||
hideMenuButton -> makeReturnDefault (TRUE);
|
||||
hideMenuButton -> hide();
|
||||
|
||||
// Make the menu bar
|
||||
mainMenuBar = new puMenuBar ();
|
||||
mainMenuBar -> add_submenu ("File", fileSubmenu, fileSubmenuCb);
|
||||
mainMenuBar -> add_submenu ("Edit", editSubmenu, editSubmenuCb);
|
||||
mainMenuBar -> add_submenu ("View", viewSubmenu, viewSubmenuCb);
|
||||
mainMenuBar -> add_submenu ("Aircraft", aircraftSubmenu, aircraftSubmenuCb);
|
||||
mainMenuBar -> add_submenu ("Environment", environmentSubmenu, environmentSubmenuCb);
|
||||
mainMenuBar -> add_submenu ("Options", optionsSubmenu, optionsSubmenuCb);
|
||||
mainMenuBar -> add_submenu ("Help", helpSubmenu, helpSubmenuCb);
|
||||
mainMenuBar-> close ();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
44
GUI/gui.h
Normal file
44
GUI/gui.h
Normal file
|
@ -0,0 +1,44 @@
|
|||
/**************************************************************************
|
||||
* gui.h
|
||||
*
|
||||
* Written 1998 by Durk Talsma, started Juni, 1998. For the flight gear
|
||||
* project.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* $Id$
|
||||
* (Log is kept at end of this file)
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
#ifndef _GUI_H_
|
||||
#define _GUI_H_
|
||||
|
||||
#include "Pui/pu.h"
|
||||
|
||||
extern puMenuBar *mainMenuBar;
|
||||
extern puButton *hideMenuButton;
|
||||
extern puDialogBox *dialogBox;
|
||||
extern puText *dialogBoxMessage;
|
||||
extern puOneShot *dialogBoxOkButton;
|
||||
extern puText *timerText;
|
||||
|
||||
extern void guiMotionFunc ( int x, int y );
|
||||
extern void guiMouseFunc(int button, int updown, int x, int y);
|
||||
extern void guiInit();
|
||||
|
||||
extern void mkDialog (char *txt);
|
||||
|
||||
#endif // _GUI_H_
|
Loading…
Add table
Reference in a new issue