diff --git a/Fltk/menuWindow.cpp b/Fltk/menuWindow.cpp index 9b638e2e4f19780bae2a206d2cb66c54fdc45eeb..2fc0566ad5d59c102843853a12b121840dd13686 100644 --- a/Fltk/menuWindow.cpp +++ b/Fltk/menuWindow.cpp @@ -1710,13 +1710,22 @@ static void mesh_inspect_cb(Fl_Widget *w, void *data) Msg::StatusBar(3, false, ""); } +static void mesh_change_order_cb(Fl_Widget *w, void *data) +{ + FlGui::instance()->menu->setContext(menu_mesh_degree, 0); +} + + static void mesh_degree_cb(Fl_Widget *w, void *data) { if((long)data == 2) SetOrderN(GModel::current(), 2, CTX::instance()->mesh.secondOrderLinear, CTX::instance()->mesh.secondOrderIncomplete); - else + else if ((long)data == 1) SetOrder1(GModel::current()); + else // For now, use the same options as for second order meshes + SetOrderN(GModel::current(), (long)data, CTX::instance()->mesh.secondOrderLinear, + CTX::instance()->mesh.secondOrderIncomplete); CTX::instance()->mesh.changed |= (ENT_LINE | ENT_SURFACE | ENT_VOLUME); drawContext::global()->draw(); Msg::StatusBar(2, false, " "); @@ -2461,8 +2470,7 @@ contextItem menu_mesh[] = { {"1D", (Fl_Callback *)mesh_1d_cb} , {"2D", (Fl_Callback *)mesh_2d_cb} , {"3D", (Fl_Callback *)mesh_3d_cb} , - {"First order", (Fl_Callback *)mesh_degree_cb, (void*)1 } , - {"Second order", (Fl_Callback *)mesh_degree_cb, (void*)2 } , + {"Set order", (Fl_Callback *)mesh_change_order_cb} , {"Refine by splitting", (Fl_Callback *)mesh_refine_cb} , {"Optimize", (Fl_Callback *)mesh_optimize_cb} , #if defined(HAVE_NETGEN) @@ -2502,6 +2510,15 @@ contextItem menu_mesh[] = { {"Volumes", (Fl_Callback *)mesh_delete_parts_cb, (void*)"volumes"} , {""} }; + contextItem menu_mesh_degree[] = { + {"1Mesh> Set order"} , + {"1", (Fl_Callback *)mesh_degree_cb, (void*)1}, + {"2", (Fl_Callback *)mesh_degree_cb, (void*)2}, + {"3", (Fl_Callback *)mesh_degree_cb, (void*)3}, + {"4", (Fl_Callback *)mesh_degree_cb, (void*)4}, + {"5", (Fl_Callback *)mesh_degree_cb, (void*)5}, + {""} + }; contextItem menu_solver[] = { {"2Solver"} , diff --git a/Fltk/menuWindow.h b/Fltk/menuWindow.h index ec528ebd7d35576474930a156d7db82b1825639d..c7a7bf056f9fb6eaddd266abb14d4aa8a7e71f54 100644 --- a/Fltk/menuWindow.h +++ b/Fltk/menuWindow.h @@ -49,7 +49,8 @@ extern contextItem menu_mesh[]; extern contextItem menu_mesh_edit[]; extern contextItem menu_mesh_delete[]; extern contextItem menu_mesh_define[]; -extern contextItem menu_mesh_define_transfinite[]; +extern contextItem menu_mesh_define_transfinite[]; +extern contextItem menu_mesh_degree[]; extern contextItem menu_solver[]; extern contextItem menu_post[];