diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp index 192cc582a8ad0895dbb61eecbf48e1070ace90a6..41be69dcac90cfbae3499814acbf60a9a705e3c3 100644 --- a/Fltk/graphicWindow.cpp +++ b/Fltk/graphicWindow.cpp @@ -479,12 +479,6 @@ static void file_rename_cb(Fl_Widget *w, void *data) void file_quit_cb(Fl_Widget *w, void *data) { - if(data){ - std::string opt((const char*)data); - if(opt == "ask") - if(!fl_choice("Do you really want to quit?", "Cancel", "Quit", 0)) - return; - } Msg::Exit(0); } @@ -2718,7 +2712,7 @@ graphicWindow::graphicWindow(bool main, int numTiles, bool detachedMenu) // non-modal) if(main){ win = new mainWindow(width, height, false); - win->callback(file_quit_cb, (void*)"ask"); + win->callback(file_quit_cb); } else{ win = new paletteWindow(width, height, false); @@ -2916,10 +2910,10 @@ graphicWindow::graphicWindow(bool main, int numTiles, bool detachedMenu) win->end(); if(main && detachedMenu){ - menuwin = new paletteWindow + menuwin = new mainWindow (CTX::instance()->menuSize[0], CTX::instance()->menuSize[1], CTX::instance()->nonModalWindows ? true : false, "Gmsh"); - menuwin->callback(file_quit_cb, (void*)"ask"); + menuwin->callback(file_quit_cb); menuwin->box(GMSH_WINDOW_BOX); onelab = new onelabGroup(0, 0, menuwin->w(), menuwin->h()); menuwin->position(CTX::instance()->menuPosition[0], @@ -2961,10 +2955,10 @@ void graphicWindow::detachMenu() } tile->redraw(); - menuwin = new paletteWindow + menuwin = new mainWindow (CTX::instance()->menuSize[0], CTX::instance()->menuSize[1], CTX::instance()->nonModalWindows ? true : false, "Gmsh"); - menuwin->callback(file_quit_cb, (void*)"ask"); + menuwin->callback(file_quit_cb); menuwin->box(GMSH_WINDOW_BOX); menuwin->add(onelab); onelab->resize(0, 0, menuwin->w(), menuwin->h()); diff --git a/Fltk/mainWindow.h b/Fltk/mainWindow.h index b6cd6474c5221c32dc087dab98b4b2efcc15f549..d92dcf255609be4359970eb7d4ad4178d8f4599c 100644 --- a/Fltk/mainWindow.h +++ b/Fltk/mainWindow.h @@ -8,10 +8,10 @@ #include <FL/Fl.H> #include <FL/Fl_Double_Window.H> +#include <FL/fl_ask.H> // Derive the main window from Fl_Window (it shows up faster that way) class mainWindow : public Fl_Window { - void (*myhandle)(int event); private: int handle(int event) { @@ -25,7 +25,8 @@ class mainWindow : public Fl_Window { #else if(Fl::test_shortcut(FL_CTRL+'w')){ #endif - do_callback(); + if(fl_choice("Do you really want to quit?", "Cancel", "Quit", 0)) + do_callback(); return 1; } break; @@ -33,8 +34,8 @@ class mainWindow : public Fl_Window { return Fl_Window::handle(event); } public: - mainWindow(int w, int h, bool nonModal, const char *l=0) - : Fl_Window(w, h, l) + mainWindow(int w, int h, bool nonModal, const char *l=0) + : Fl_Window(w, h, l) { if(nonModal) set_non_modal(); }