FG_USING_STD(string);
-// Pui hides low level access to the mouse and menu display states
-// so for now we track these in case we want to know about them
-puFont guiFnt = 0; // Our High Level Gui Font
-fntTexFont *guiFntHandle = 0; // lower level access to guiFnt's Font
-static int _mX = 0; // current mouse x
-static int _mY = 0; // y
-static int last_buttons = 0 ; // mouse button state
-static int mouse_active = 0; // is mouse displayed
-static int menu_on = 0; // menu displayed
-
-
-// PUI objects
+puFont guiFnt = 0;
+fntTexFont *guiFntHandle = 0;
+
static puMenuBar *mainMenuBar = 0;
//static puButton *hideMenuButton = 0;
static puOneShot *YNdialogBoxOkButton = 0;
static puOneShot *YNdialogBoxNoButton = 0;
-// Accessor CallBacks for external PUI Objects
// extern void NewAltitude( puObject *cb );
// extern void NewHeading( puObject *cb );
extern void fgAPAdjust( puObject * );
/* --------------------------------------------------------------------
Mouse stuff
---------------------------------------------------------------------*/
+
+static int _mX = 0;
+static int _mY = 0;
+static int last_buttons = 0 ;
+static int mouse_active = 0;
+static int menu_on = 0;
+
void guiMotionFunc ( int x, int y )
{
_mX = x;
#endif
}
-// If the gui isn't active try to hide the mouse
-// an if the qui requested show the mouse
-// this can get confused if it rerequesting the gui object
-// should resync things.
-// see PUI macros in gui.hxx for normal use
void maybeToggleMouse( void )
{
static int first_time = ~0;
void ConfirmExitDialog(void)
{
string Msg("Really Quit");
- YNdialogBoxMessage -> setLabel(Msg.c_str());
+ YNdialogBoxMessage -> setLabel(Msg.c_str());
YNdialogBoxNoButton-> makeReturnDefault (TRUE );
FG_PUSH_PUI_DIALOG( YNdialogBox );
}
}
// Repair any damage done to the Panel by other Gui Items
-// see PUI macros in gui.hxx for use
void guiFixPanel( void )
{
int toggle_pause;
if ( current_options.get_panel_status() ) {
-
- FGView *v = ¤t_view;
- FGTime *t = FGTime::cur_time_params;
+
+ FGView *v = ¤t_view;
+ FGTime *t = FGTime::cur_time_params;
- if( (toggle_pause = !t->getPause()) )
- t->togglePauseMode();
-
- // this seems to be the only way to do this :-(
- // problem is the viewport has been mucked with
- xglViewport(0, 0 , (GLint)(v->winWidth), (GLint)(v->winHeight) );
- FGPanel::OurPanel->ReInit(0, 0, 1024, 768);
-
- if(toggle_pause)
- t->togglePauseMode();
+ if( (toggle_pause = !t->getPause()) )
+ t->togglePauseMode();
+
+ // this seems to be the only way to do this :-(
+ // problem is the viewport has been mucked with
+ xglViewport(0, 0 , (GLint)(v->winWidth), (GLint)(v->winHeight) );
+ FGPanel::OurPanel->ReInit(0, 0, 1024, 768);
+
+ if(toggle_pause)
+ t->togglePauseMode();
}
}
void guiToggleMenu(void)
{
if( menu_on ) {
- // printf("Hiding Menu\n");
- mainMenuBar->hide ();
- TurnCursorOff();
+ // printf("Hiding Menu\n");
+ mainMenuBar->hide ();
+ TurnCursorOff();
} else {
- // printf("Showing Menu\n");
- mainMenuBar->reveal();
- TurnCursorOn();
+ // printf("Showing Menu\n");
+ mainMenuBar->reveal();
+ TurnCursorOn();
}
menu_on = ~menu_on;
}
guiToggleMenu();
}
-// This is the accessor function
void goodBye(puObject *)
{
- // FG_LOG( FG_INPUT, FG_ALERT,
- // "Program exiting normally at user request." );
+ // FG_LOG( FG_INPUT, FG_ALERT,
+ // "Program exiting normally at user request." );
cout << "Program exiting normally at user request." << endl;
// if(gps_bug)
void mkDialogInit (void)
{
-// printf("mkDialogInit\n");
- dialogBox = new puDialogBox (150, 50);
+ // printf("mkDialogInit\n");
+ int x = (current_options.get_xsize()/2 - 400/2);
+ int y = (current_options.get_ysize()/2 - 100/2);
+ dialogBox = new puDialogBox (x, y); // 150, 50
{
- dialogFrame = new puFrame (0,0,400, 100);
- dialogBoxMessage = new puText (10, 70);
- dialogBoxMessage -> setLabel ("");
- dialogBoxOkButton = new puOneShot (180, 10, 240, 50);
+ dialogFrame = new puFrame (0,0,400,100);
+ dialogBoxMessage = new puText (10, 70);
+ dialogBoxMessage -> setLabel ("");
+ dialogBoxOkButton = new puOneShot (180, 10, 240, 50);
}
FG_FINALIZE_PUI_DIALOG( dialogBox );
}
void ConfirmExitDialogInit(void)
{
-// printf("ConfirmExitDialogInit\n");
+ // printf("ConfirmExitDialogInit\n");
string Msg("Really Quit");
-// int len = 350/2 - puGetStringWidth( puGetDefaultLabelFont(), AptLabel )/2;
+ // int len = 350/2 - puGetStringWidth( puGetDefaultLabelFont(), AptLabel )/2;
int len = 200 - puGetStringWidth( puGetDefaultLabelFont(), Msg.c_str() )/2;
-
- YNdialogBox = new puDialogBox (150, 50);
+
+ int x = (current_options.get_xsize()/2 - 400/2);
+ int y = (current_options.get_ysize()/2 - 100/2);
+
+ YNdialogBox = new puDialogBox (x, y); // 150, 50
+ // YNdialogBox = new puDialogBox (150, 50);
{
- YNdialogFrame = new puFrame (0,0,400, 100);
-
- YNdialogBoxMessage = new puText (len, 70);
- YNdialogBoxMessage -> setLabel (Msg.c_str());
-
- YNdialogBoxOkButton = new puOneShot (100, 10, 160, 50);
- YNdialogBoxOkButton -> setLegend ("OK");
- YNdialogBoxOkButton -> setCallback (goodBye);
-
- YNdialogBoxNoButton = new puOneShot (240, 10, 300, 50);
- YNdialogBoxNoButton -> setLegend ("NO");
-// YNdialogBoxNoButton -> makeReturnDefault (TRUE );
- YNdialogBoxNoButton -> setCallback (goAwayYesNoCb);
+ YNdialogFrame = new puFrame (0,0,400, 100);
+
+ YNdialogBoxMessage = new puText (len, 70);
+ YNdialogBoxMessage -> setLabel (Msg.c_str());
+
+ YNdialogBoxOkButton = new puOneShot (100, 10, 160, 50);
+ YNdialogBoxOkButton -> setLegend ("OK");
+ YNdialogBoxOkButton -> setCallback (goodBye);
+
+ YNdialogBoxNoButton = new puOneShot (240, 10, 300, 50);
+ YNdialogBoxNoButton -> setLegend ("NO");
+ // YNdialogBoxNoButton -> makeReturnDefault (TRUE );
+ YNdialogBoxNoButton -> setCallback (goAwayYesNoCb);
}
FG_FINALIZE_PUI_DIALOG( YNdialogBox );
}
#if defined(FX) && !defined(WIN32)
# if defined(XMESA_FX_FULLSCREEN) && defined(XMESA_FX_WINDOW)
if ( global_fullscreen ) {
- global_fullscreen = false;
- XMesaSetFXmode( XMESA_FX_WINDOW );
+ global_fullscreen = false;
+ XMesaSetFXmode( XMESA_FX_WINDOW );
}
# endif
#endif
FGTime *t = FGTime::cur_time_params;
int PauseMode = t->getPause();
if(!PauseMode)
- t->togglePauseMode();
+ t->togglePauseMode();
char *s;
AptDialogInput->getValue(&s);
AptDialog_Cancel( NULL );
if ( AptId.length() ) {
- // set initial position from airport id
-
- fgAIRPORTS airports;
- fgAIRPORT a;
-
- FG_LOG( FG_GENERAL, FG_INFO,
- "Attempting to set starting position from airport code "
- << s );
-
- airports.load("apt_simple");
- if ( airports.search( AptId, &a ) )
- {
- current_options.set_airport_id( AptId.c_str() );
- BusyCursor(0);
- fgReInitSubsystems();
- BusyCursor(1);
- } else {
- AptId += " not in database.";
- mkDialog(AptId.c_str());
- }
+ // set initial position from airport id
+
+ fgAIRPORTS airports;
+ fgAIRPORT a;
+
+ FG_LOG( FG_GENERAL, FG_INFO,
+ "Attempting to set starting position from airport code "
+ << s );
+
+ airports.load("apt_simple");
+ if ( airports.search( AptId, &a ) )
+ {
+ current_options.set_airport_id( AptId.c_str() );
+ BusyCursor(0);
+ fgReInitSubsystems();
+ BusyCursor(1);
+ } else {
+ AptId += " not in database.";
+ mkDialog(AptId.c_str());
+ }
}
if( PauseMode != t->getPause() )
- t->togglePauseMode();
+ t->togglePauseMode();
}
void AptDialog_Reset(puObject *)
AptDialogInput->setCursor( 0 ) ;
}
-
-// This is the accessor function
void NewAirport(puObject *cb)
{
string AptLabel("Enter New Airport ID");
cout << "NewAirportInit" << endl;
string AptLabel("Enter New Airport ID");
-// int len = 350/2 - puGetStringWidth( puGetDefaultLabelFont(), AptLabel )/2;
+ // int len = 350/2 - puGetStringWidth( puGetDefaultLabelFont(), AptLabel )/2;
int len = 150 - puGetStringWidth( puGetDefaultLabelFont(), AptLabel.c_str() )/2;
AptDialog = new puDialogBox (150, 50);
{
- AptDialogFrame = new puFrame (0,0,350, 150);
- AptDialogMessage = new puText (len, 110);
-
- AptDialogInput = new puInput ( 50, 70, 300, 100 );
-
- AptDialogOkButton = new puOneShot (50, 10, 110, 50);
- AptDialogOkButton -> setLegend ("OK");
- AptDialogOkButton -> setCallback (AptDialog_OK);
-
- AptDialogCancelButton = new puOneShot (140, 10, 210, 50);
- AptDialogCancelButton -> setLegend ("Cancel");
- AptDialogCancelButton -> setCallback (AptDialog_Cancel);
-
- AptDialogResetButton = new puOneShot (240, 10, 300, 50);
- AptDialogResetButton -> setLegend ("Reset");
- AptDialogResetButton -> setCallback (AptDialog_Reset);
+ AptDialogFrame = new puFrame (0,0,350, 150);
+ AptDialogMessage = new puText (len, 110);
+
+ AptDialogInput = new puInput ( 50, 70, 300, 100 );
+
+ AptDialogOkButton = new puOneShot (50, 10, 110, 50);
+ AptDialogOkButton -> setLegend ("OK");
+ AptDialogOkButton -> setCallback (AptDialog_OK);
+
+ AptDialogCancelButton = new puOneShot (140, 10, 210, 50);
+ AptDialogCancelButton -> setLegend ("Cancel");
+ AptDialogCancelButton -> setCallback (AptDialog_Cancel);
+
+ AptDialogResetButton = new puOneShot (240, 10, 300, 50);
+ AptDialogResetButton -> setLegend ("Reset");
+ AptDialogResetButton -> setCallback (AptDialog_Reset);
}
FG_FINALIZE_PUI_DIALOG( AptDialog );
}
/* -----------------------------------------------------------------------
- The menu stuff
- ---------------------------------------------------------------------*/
+The menu stuff
+---------------------------------------------------------------------*/
char *fileSubmenu [] = {
"Exit", "Close", "---------", "Print", "---------", "Save", "Reset", NULL };
puCallback fileSubmenuCb [] = {
- MayBeGoodBye, hideMenuCb, NULL, notCb, NULL, notCb, reInit, NULL};
-
+ MayBeGoodBye, hideMenuCb, NULL, notCb, NULL, notCb, reInit, NULL};
+
char *editSubmenu [] = {
"Edit text", NULL };
puCallback editSubmenuCb [] = {
// Install our fast fonts
string fntpath = current_options.get_fg_root() + "/Fonts/" +
- "typewriter" + ".txf";
+ "typewriter" + ".txf";
guiFntHandle = new fntTexFont ;
guiFntHandle -> load ( fntpath.c_str() ) ;
puFont GuiFont ( guiFntHandle, 15 ) ;
guiFnt = puGetDefaultLabelFont();
if ( current_options.get_mouse_pointer() == 0 ) {
- // no preference specified for mouse pointer, attempt to autodetect...
- // Determine if we need to render the cursor, or if the windowing
- // system will do it. First test if we are rendering with glide.
- if ( strstr ( general.get_glRenderer(), "Glide" ) ) {
- // Test for the MESA_GLX_FX env variable
- if ( (mesa_win_state = getenv( "MESA_GLX_FX" )) != NULL) {
- // test if we are fullscreen mesa/glide
- if ( (mesa_win_state[0] == 'f') ||
- (mesa_win_state[0] == 'F') ) {
- puShowCursor ();
- }
- }
- }
- mouse_active = ~mouse_active;
+ // no preference specified for mouse pointer, attempt to autodetect...
+ // Determine if we need to render the cursor, or if the windowing
+ // system will do it. First test if we are rendering with glide.
+ if ( strstr ( general.get_glRenderer(), "Glide" ) ) {
+ // Test for the MESA_GLX_FX env variable
+ if ( (mesa_win_state = getenv( "MESA_GLX_FX" )) != NULL) {
+ // test if we are fullscreen mesa/glide
+ if ( (mesa_win_state[0] == 'f') ||
+ (mesa_win_state[0] == 'F') ) {
+ puShowCursor ();
+ }
+ }
+ }
+ mouse_active = ~mouse_active;
} else if ( current_options.get_mouse_pointer() == 1 ) {
- // don't show pointer
+ // don't show pointer
} else if ( current_options.get_mouse_pointer() == 2 ) {
- // force showing pointer
- puShowCursor();
- mouse_active = ~mouse_active;
+ // force showing pointer
+ puShowCursor();
+ mouse_active = ~mouse_active;
}
// Set up our Dialog Boxes