static void make_2nd_level_psf_menu(){ char tmp_menu[1024]; char psf_name[LENGTHBUF]; int num_psf = send_num_loaded_PSF(); int num_fld = send_nfield_current_psf(); int if_psf = send_draw_field_current_psf(); int ic_psf = send_draw_comp_id_current_psf(); int num_comp = send_ncomp_current_psf(if_psf); int id_coord = send_coordinate_id_current_psf(); int iflag_solid = send_kemoview_psf_draw_flags(PSFSOLID_TOGGLE); int iflag_grid = send_kemoview_psf_draw_flags(PSFGRID_TOGGLE); glut_menu_id->psf_root_menu = glutCreateMenu(psf_handler); if(num_psf > 1){ send_current_psf_file_header(psf_name); sprintf(tmp_menu, "Current: %s", psf_name); glutAddSubMenu(tmp_menu, glut_menu_id->ichoose_current_psf_menu); } else { }; send_current_psf_data_name(tmp_menu,if_psf); if (num_fld > 1) { glutAddSubMenu(tmp_menu, glut_menu_id->ichoose_field_menu); } else { glutAddMenuEntry(tmp_menu, PSF_NOTHING_TODO); }; if (num_comp > 1) { set_PSF_component_name(num_comp,ic_psf,id_coord,tmp_menu); glutAddSubMenu(tmp_menu, glut_menu_id->ichoose_comp_menu); }; glut_PSF_draw_menu(); if(iflag_solid > 0){glutAddSubMenu("Surface color", glut_menu_id->ichoose_psf_patchcolor_menu);}; if(iflag_grid > 0) {glutAddSubMenu("Line color", glut_menu_id->ichoose_psf_linecolor_menu);}; glut_PSF_range_menu(); glutAddMenuEntry("Close Current PSF data", PSF_OFF); return; };
static void make_3rd_level_psf_menu(){ int num_psf = send_num_loaded_PSF(); int num_fld = send_nfield_current_psf(); int if_psf = send_draw_field_current_psf(); int num_comp = send_ncomp_current_psf(if_psf); int iflag_solid = send_kemoview_psf_draw_flags(PSFSOLID_TOGGLE); int iflag_grid = send_kemoview_psf_draw_flags(PSFGRID_TOGGLE); if(num_psf > 1){ glut_menu_id->ichoose_current_psf_menu = glutCreateMenu(set_current_psf_handler); glut_current_PSF_select(); }; if (num_fld > 1) { glut_menu_id->ichoose_field_menu = glutCreateMenu(set_psf_field_handler); glut_PSF_field_select(); }; if (num_comp > 1) { glut_menu_id->ichoose_comp_menu = glutCreateMenu(set_psf_comp_handler); glut_PSF_comps_select(); }; if (iflag_solid > 0) { glut_menu_id->ichoose_psf_patchcolor_menu = glutCreateMenu(set_psf_patchcolor_handler); glut_PSF_patchcolor_select(); }; if (iflag_grid > 0) { glut_menu_id->ichoose_psf_linecolor_menu = glutCreateMenu(set_psf_linecolor_handler); glut_PSF_linecolor_select(); }; return; };
static void make_1st_level_menu(){ GLint menu_id; int iflag_draw_m = send_iflag_draw_mesh(); int iflag_draw_p = send_iflag_draw_current_psf(); int iflag_draw_f = send_iflag_draw_fline(); int iflag_any_objects_on = iflag_draw_p + iflag_draw_m + iflag_draw_f; int nload_psf = send_num_loaded_PSF(); glutSetWindow(menu_win); if (iflag_any_objects_on > 0) { make_2nd_level_view_menu(); }; if( iflag_draw_m > 0){ make_3rd_level_mesh_menu(); make_2nd_level_mesh_menu(); }; if( iflag_draw_p > 0){ make_3rd_level_psf_menu(); make_2nd_level_psf_menu(); }; if( iflag_draw_f > 0){ make_3rd_level_fline_menu(); make_2nd_level_fline_menu(); }; if (iflag_any_objects_on > 0) { make_2nd_level_image_menu(); }; glut_menu_id->submenu_id = menu_init(); menu_id = glutCreateMenu(main_menu_handler); glutAddMenuEntry("Open...",FILE_OPEN); if(iflag_any_objects_on > 0){ /*glutAddSubMenu("View Modifier",glut_menu_id->submenu_id);*/ glutAddSubMenu(viewtype_title,glut_menu_id->viewtype_id); } if( iflag_draw_m > 0){ glutAddSubMenu("Domain informations",glut_menu_id->domain_id); glutAddSubMenu("Node groups",glut_menu_id->nod_grp_menu); glutAddSubMenu("Element_groups",glut_menu_id->ele_grp_menu); glutAddSubMenu("Surface_groups",glut_menu_id->surf_grp_menu); }; if( nload_psf > 0) glutAddSubMenu("Surface rendering", glut_menu_id->psf_root_menu); if( iflag_draw_f > 0) glutAddSubMenu("Field Lines", glut_menu_id->fline_root_menu); if ( iflag_draw_m > 0) { glutAddSubMenu("Color mode", glut_menu_id->color_mode_menu); }; if (iflag_any_objects_on > 0) { /*printf("polygon_id_menu \n");*/ glutAddSubMenu("Object propaties", glut_menu_id->polygon_id_menu); glutAddMenuEntry("Save image", SAVE_SNAPSHOT); }; if( iflag_draw_p+iflag_draw_f > 0){ glutAddMenuEntry("Save evolution images", SAVE_EVOLUTION); }; if (iflag_any_objects_on > 0) { glutAddSubMenu("Save rotate images", glut_menu_id->save_rot_image_menu); glutAddSubMenu("Rotate on Window", glut_menu_id->draw_rot_image_menu); }; glutAddMenuEntry("Quit",QUIT_SELECTED); glutAttachMenu(GLUT_LEFT_BUTTON); return; };