diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp index d415f8d965bb74467b6309a6e9f6d87762e127bf..b664fcc2244edfea2c9abb31cce3415c4a70945e 100644 --- a/Fltk/graphicWindow.cpp +++ b/Fltk/graphicWindow.cpp @@ -2219,6 +2219,10 @@ void quick_access_cb(Fl_Widget *w, void *data) mesh_options_cb(0, 0); else if(what == "view") view_options_cb(0, (void *)-1); + else if(what == "reset_viewport"){ + status_xyz1p_cb(0, (void *)"1:1"); + status_xyz1p_cb(0, (void *)"z"); + } else if(what == "axes"){ opt_general_axes(0, GMSH_SET|GMSH_GUI, !opt_general_axes(0, GMSH_GET, 0)); for(unsigned int i = 0; i < PView::list.size(); i++) @@ -2469,6 +2473,8 @@ void status_options_cb(Fl_Widget *w, void *data) } else if(what == "quick_access"){ // quick access menu static Fl_Menu_Item menu[] = { + { "Reset viewport", 0, quick_access_cb, (void*)"reset_viewport", + FL_MENU_DIVIDER }, { "Axes", FL_ALT + 'a', quick_access_cb, (void*)"axes", FL_MENU_TOGGLE }, { "Projection mode", 0, 0, 0, FL_SUBMENU }, @@ -2529,39 +2535,40 @@ void status_options_cb(Fl_Widget *w, void *data) 0, 0, FL_ITALIC }, { 0 } }; - if(opt_general_axes(0, GMSH_GET, 0)) menu[0].set(); else menu[0].clear(); + int a = 1; + if(opt_general_axes(0, GMSH_GET, 0)) menu[a + 0].set(); else menu[a + 0].clear(); for(unsigned int i = 0; i < PView::list.size(); i++) if(opt_view_visible(i, GMSH_GET, 0) && opt_view_axes(i, GMSH_GET, 0)) - menu[0].set(); - if(opt_geometry_points(0, GMSH_GET, 0)) menu[7].set(); else menu[7].clear(); - if(opt_geometry_lines(0, GMSH_GET, 0)) menu[8].set(); else menu[8].clear(); - if(opt_geometry_surfaces(0, GMSH_GET, 0)) menu[9].set(); else menu[9].clear(); - if(opt_geometry_volumes(0, GMSH_GET, 0)) menu[10].set(); else menu[10].clear(); - if(opt_mesh_points(0, GMSH_GET, 0)) menu[14].set(); else menu[14].clear(); - if(opt_mesh_lines(0, GMSH_GET, 0)) menu[15].set(); else menu[15].clear(); - if(opt_mesh_surfaces_edges(0, GMSH_GET, 0)) menu[16].set(); else menu[16].clear(); - if(opt_mesh_surfaces_faces(0, GMSH_GET, 0)) menu[17].set(); else menu[17].clear(); - if(opt_mesh_volumes_edges(0, GMSH_GET, 0)) menu[18].set(); else menu[18].clear(); - if(opt_mesh_volumes_faces(0, GMSH_GET, 0)) menu[19].set(); else menu[19].clear(); + menu[a + 0].set(); + if(opt_geometry_points(0, GMSH_GET, 0)) menu[a + 7].set(); else menu[a + 7].clear(); + if(opt_geometry_lines(0, GMSH_GET, 0)) menu[a + 8].set(); else menu[a + 8].clear(); + if(opt_geometry_surfaces(0, GMSH_GET, 0)) menu[a + 9].set(); else menu[a + 9].clear(); + if(opt_geometry_volumes(0, GMSH_GET, 0)) menu[a + 10].set(); else menu[a + 10].clear(); + if(opt_mesh_points(0, GMSH_GET, 0)) menu[a + 14].set(); else menu[a + 14].clear(); + if(opt_mesh_lines(0, GMSH_GET, 0)) menu[a + 15].set(); else menu[a + 15].clear(); + if(opt_mesh_surfaces_edges(0, GMSH_GET, 0)) menu[a + 16].set(); else menu[a + 16].clear(); + if(opt_mesh_surfaces_faces(0, GMSH_GET, 0)) menu[a + 17].set(); else menu[a + 17].clear(); + if(opt_mesh_volumes_edges(0, GMSH_GET, 0)) menu[a + 18].set(); else menu[a + 18].clear(); + if(opt_mesh_volumes_faces(0, GMSH_GET, 0)) menu[a + 19].set(); else menu[a + 19].clear(); if(PView::list.empty()){ - menu[23].flags = 0; - for(int i = 24; i < 42; i++) menu[i].hide(); + menu[a + 23].flags = 0; + for(int i = 24; i < 42; i++) menu[a + i].hide(); } else{ - menu[23].flags = FL_MENU_DIVIDER; - for(int i = 24; i < 42; i++) menu[i].show(); - menu[24].clear(); + menu[a + 23].flags = FL_MENU_DIVIDER; + for(int i = 24; i < 42; i++) menu[a + i].show(); + menu[a + 24].clear(); for(unsigned int i = 0; i < PView::list.size(); i++){ if(opt_view_visible(i, GMSH_GET, 0) && opt_view_show_element(i, GMSH_GET, 0)){ - menu[24].set(); + menu[a + 24].set(); break; } } } - static Fl_Menu_Item *picked = &menu[21]; + static Fl_Menu_Item *picked = &menu[a + 21]; picked = (Fl_Menu_Item*)menu->popup(Fl::event_x(), Fl::event_y(), 0, (picked && picked->visible()) ? picked : - &menu[21], 0); + &menu[a + 21], 0); if(picked && picked->callback()) picked->do_callback(0, picked->user_data()); drawContext::global()->draw(); }