+
+// Hier Neu :-) This is my newly added code
+// Added by David Findlay <nedz@bigpond.com>
+// on Sunday 3rd of December
+
+// Start new Save Dialog Box
+static puDialogBox *SaveDialog = 0;
+static puFrame *SaveDialogFrame = 0;
+static puText *SaveDialogMessage = 0;
+static puInput *SaveDialogInput = 0;
+
+static puOneShot *SaveDialogOkButton = 0;
+static puOneShot *SaveDialogCancelButton = 0;
+// static puOneShot *SaveDialogResetButton = 0;
+
+// Default save filename
+static char saveFile[256] = "fgfs.sav";
+
+// Cancel Button
+void SaveDialogCancel(puObject *) {
+ FG_POP_PUI_DIALOG( SaveDialog );
+}
+
+// If press OK do this
+void SaveDialogOk(puObject*) {
+
+ FG_POP_PUI_DIALOG( SaveDialog );
+
+ char *s;
+ SaveDialogInput->getValue(&s);
+
+ ofstream output(s);
+ cout << saveFile << endl;
+ if (output.good() && fgSaveFlight(output)) {
+ output.close();
+ mkDialog("Saved flight");
+ SG_LOG(SG_INPUT, SG_INFO, "Saved flight");
+ } else {
+ mkDialog("Cannot save flight");
+ SG_LOG(SG_INPUT, SG_ALERT, "Cannot save flight");
+ }
+}
+
+// Create Dialog
+static void saveFlight(puObject *cv) {
+ SaveDialog = new puDialogBox (150, 50);
+ {
+ SaveDialogFrame = new puFrame (0,0,350, 150);
+ SaveDialogMessage = new puText (
+ (150 - puGetStringWidth( puGetDefaultLabelFont(), "File Name:" ) / 2), 110);
+ SaveDialogMessage -> setLabel ("File Name:");
+
+ SaveDialogInput = new puInput (50, 70, 300, 100);
+ SaveDialogInput -> setValue (saveFile);
+ SaveDialogInput -> acceptInput();
+
+ SaveDialogOkButton = new puOneShot (50, 10, 110, 50);
+ SaveDialogOkButton -> setLegend (gui_msg_OK);
+ SaveDialogOkButton -> setCallback ( SaveDialogOk );
+ SaveDialogOkButton -> makeReturnDefault(TRUE);
+
+ SaveDialogCancelButton = new puOneShot (140, 10, 210, 50);
+ SaveDialogCancelButton -> setLegend (gui_msg_CANCEL);
+ SaveDialogCancelButton -> setCallback ( SaveDialogCancel );
+ }
+ FG_FINALIZE_PUI_DIALOG( SaveDialog );
+
+ SaveDialog -> reveal();
+}
+
+// Load Dialog Start
+static puDialogBox *LoadDialog = 0;
+static puFrame *LoadDialogFrame = 0;
+static puText *LoadDialogMessage = 0;
+static puInput *LoadDialogInput = 0;
+
+static puOneShot *LoadDialogOkButton = 0;
+static puOneShot *LoadDialogCancelButton = 0;
+// static puOneShot *LoadDialogResetButton = 0;
+
+// Default load filename
+static char loadFile[256] = "fgfs.sav";
+
+// Do this if the person click okay
+void LoadDialogOk(puObject *) {
+
+ FG_POP_PUI_DIALOG( LoadDialog );
+
+ char *l;
+ LoadDialogInput->getValue(&l);
+
+ ifstream input(l);
+ if (input.good() && fgLoadFlight(input)) {
+ input.close();
+ mkDialog("Loaded flight");
+ SG_LOG(SG_INPUT, SG_INFO, "Restored flight");
+ } else {
+ mkDialog("Failed to load flight");
+ SG_LOG(SG_INPUT, SG_ALERT, "Cannot load flight");
+ }
+}
+
+// Do this is the person presses cancel
+void LoadDialogCancel(puObject *) {
+ FG_POP_PUI_DIALOG( LoadDialog );
+}
+
+// Create Load Dialog
+static void loadFlight(puObject *cb)