Skip to content
Snippets Groups Projects
Commit 4ad7319f authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

*** empty log message ***

parent 7b7abd99
No related branches found
No related tags found
No related merge requests found
File moved
File moved
// $Id: Callbacks.cpp,v 1.2 2001-01-09 08:58:37 geuzaine Exp $
#include "Gmsh.h" #include "Gmsh.h"
#include "GmshUI.h" #include "GmshUI.h"
...@@ -5,19 +6,130 @@ ...@@ -5,19 +6,130 @@
#include "Mesh.h" #include "Mesh.h"
#include "Draw.h" #include "Draw.h"
#include "Views.h" #include "Views.h"
#include "Timer.h"
#include "OpenFile.h" #include "OpenFile.h"
#include "Context.h" #include "Context.h"
#include "GUI.h" #include "GUI.h"
#include "Callbacks.h"
#include <FL/fl_file_chooser.H> #include <FL/fl_file_chooser.H>
extern GUI *WID; extern GUI *WID;
extern Mesh M; extern Mesh M;
extern Context_T CTX; extern Context_T CTX;
extern List_T *Post_ViewList;
// Compatibility routines
int AddViewInUI(int i, char *Name, int Num){
if(i > NB_BUTT_MAX -1) return 1;
if(WID->get_context() == 2)
WID->set_context(menu_post,0);
return 0;
}
void MarkAllViewsChanged(int action){
int i;
Post_View *v;
for(i = 0 ; i< List_Nbr(Post_ViewList) ; i++){
v = (Post_View*)List_Pointer(Post_ViewList, i);
switch(action){
case 1: // toggle drawing mode
if(v->IntervalsType == DRAW_POST_ISO)
v->IntervalsType = DRAW_POST_DISCRETE ;
else if(v->IntervalsType == DRAW_POST_DISCRETE)
v->IntervalsType = DRAW_POST_CONTINUOUS ;
else
v->IntervalsType = DRAW_POST_ISO ;
break;
case 2: // time step++
if(v->TimeStep < v->NbTimeStep-1)
v->TimeStep++ ;
else
v->TimeStep = 0 ;
break;
case 3: // time step--
if(v->TimeStep > 0)
v->TimeStep-- ;
else
v->TimeStep = v->NbTimeStep-1 ;
}
v->Changed = 1 ;
}
}
void CancelMeshThread(void){
}
// Graphical window
void status_xyz1p_cb(CALLBACK_ARGS){
extern void set_r(int i, double val);
extern void set_t(int i, double val);
extern void set_s(int i, double val);
switch((int)data){
case 0 :
if(CTX.useTrackball)
CTX.setQuaternion(0.,-1./sqrt(2.),0.,1./sqrt(2.));
set_r(0,0.); set_r(1,90.);set_r(2,0.);
Init(); Draw();
break;
case 1 :
if(CTX.useTrackball)
CTX.setQuaternion(1./sqrt(2.),0.,0.,1./sqrt(2.));
set_r(0,-90.);set_r(1,0.); set_r(2,0.);
Init(); Draw();
break;
case 2 :
if(CTX.useTrackball)
CTX.setQuaternion(0.,0.,0.,1.);
set_r(0,0.); set_r(1,0.); set_r(2,0.);
Init(); Draw();
break;
case 3 :
set_t(0,0.); set_t(1,0.); set_t(2,0.);
set_s(0,1.); set_s(1,1.); set_s(2,1.);
Init(); Draw();
break;
case 4 :
Print_Context(NULL);
break ;
}
}
static int stop_anim ;
void status_play_cb(CALLBACK_ARGS){
static long anim_time ;
WID->set_anim(0);
stop_anim = 0 ;
anim_time = GetTime();
while(1){
if(stop_anim) break ;
WID->check();
if(GetTime() - anim_time > CTX.post.anim_delay){
anim_time = GetTime();
MarkAllViewsChanged(2);
Init(); Draw();
}
}
}
void status_pause_cb(CALLBACK_ARGS){
stop_anim = 1;
WID->set_anim(1);
}
void status_cancel_cb(CALLBACK_ARGS){
CancelMeshThread();
}
// File Menu // File Menu
void file_open_cb(void) { void file_open_cb(CALLBACK_ARGS) {
char *newfile; char *newfile;
newfile = fl_file_chooser("Open File", "*.geo", NULL); newfile = fl_file_chooser("Open File", "*.geo", NULL);
if (newfile != NULL) { if (newfile != NULL) {
...@@ -27,7 +139,7 @@ void file_open_cb(void) { ...@@ -27,7 +139,7 @@ void file_open_cb(void) {
} }
} }
void file_merge_cb(void) { void file_merge_cb(CALLBACK_ARGS) {
char *newfile; char *newfile;
newfile = fl_file_chooser("Merge File", "*.{geo,pos,msh}", NULL); newfile = fl_file_chooser("Merge File", "*.{geo,pos,msh}", NULL);
if (newfile != NULL) { if (newfile != NULL) {
...@@ -37,76 +149,442 @@ void file_merge_cb(void) { ...@@ -37,76 +149,442 @@ void file_merge_cb(void) {
} }
} }
void file_save_cb(void) { void file_save_cb(CALLBACK_ARGS) {
Print_Mesh(&M, NULL, CTX.mesh.format);
} }
void file_save_as_cb(void) { void file_save_as_cb(CALLBACK_ARGS) {
char *newfile;
newfile = fl_file_chooser("Save File", "*.{geo,pos,msh}", NULL);
void CreateFile (char *name, int format) ;
if (newfile != NULL)
CreateFile(newfile, FORMAT_AUTO);
} }
void file_reload_all_views_cb(void) { static int RELOAD_ALL_VIEWS = 0 ;
void file_reload_all_views_cb(CALLBACK_ARGS) {
if(!Post_ViewList) return;
RELOAD_ALL_VIEWS = 1;
for(int i = 1 ; i<=List_Nbr(Post_ViewList) ; i++)
view_reload_cb(NULL, (void *)i);
RELOAD_ALL_VIEWS = 0;
Init();
Draw();
} }
void file_remove_all_views_cb(void) { static int REMOVE_ALL_VIEWS = 0 ;
void file_remove_all_views_cb(CALLBACK_ARGS) {
if(!Post_ViewList) return;
REMOVE_ALL_VIEWS = 1;
while(List_Nbr(Post_ViewList))
view_remove_cb(NULL, (void*)1);
REMOVE_ALL_VIEWS = 0;
Init();
Draw();
} }
void file_quit_cb(void) { void file_quit_cb(CALLBACK_ARGS) {
exit(0); exit(0);
} }
// Option Menu // Option Menu
void opt_general_cb(void) { void opt_general_cb(CALLBACK_ARGS) {
WID->opt_general(); WID->opt_general();
} }
void opt_geometry_cb(CALLBACK_ARGS) {
void opt_geometry_cb(void) { WID->opt_geometry();
} }
void opt_mesh_cb(void) { void opt_mesh_cb(CALLBACK_ARGS) {
WID->opt_mesh();
} }
void opt_post_cb(void) { void opt_post_cb(CALLBACK_ARGS) {
WID->opt_post();
} }
void opt_stat_cb(void) { void opt_stat_cb(CALLBACK_ARGS) {
WID->opt_stat();
} }
// Help Menu // Help Menu
void help_short_cb(void){ void help_short_cb(CALLBACK_ARGS){
WID->help_short();
} }
void help_about_cb(void){ void help_about_cb(CALLBACK_ARGS){
WID->help_about();
} }
// Module Menu // Module Menu
void mod_geometry_cb(void){ void mod_geometry_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry, 0);
}
void mod_mesh_cb(CALLBACK_ARGS){
WID->set_context(menu_mesh, 0);
}
void mod_post_cb(CALLBACK_ARGS){
WID->set_context(menu_post, 0);
}
void mod_back_cb(CALLBACK_ARGS){
WID->set_context(NULL, -1);
}
void mod_forward_cb(CALLBACK_ARGS){
WID->set_context(NULL, 1);
}
// Dynamic Menus
void geometry_elementary_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary, 0);
}
void geometry_physical_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_physical, 0);
}
void geometry_reload_cb(CALLBACK_ARGS){
printf("reload geometry\n");
}
void geometry_elementary_add_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add, 0);
}
void geometry_elementary_translate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_translate, 0);
}
void geometry_elementary_rotate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_rotate, 0);
}
void geometry_elementary_dilate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_dilate, 0);
}
void geometry_elementary_symmetry_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_symmetry, 0);
}
void geometry_elementary_extrude_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_extrude, 0);
}
void geometry_elementary_delete_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_delete, 0);
}
void geometry_elementary_add_new_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_new, 0);
}
void geometry_elementary_add_translate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_translate, 0);
}
void geometry_elementary_add_rotate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_rotate, 0);
}
void geometry_elementary_add_dilate_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_dilate, 0);
}
void geometry_elementary_add_symmetry_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_elementary_add_symmetry, 0);
}
void geometry_elementary_add_new_parameter_cb(CALLBACK_ARGS){
printf("new param\n");
}
void geometry_elementary_add_new_point_cb(CALLBACK_ARGS){
printf("new point\n");
}
void geometry_elementary_add_new_line_cb(CALLBACK_ARGS){
printf("new line\n");
}
void geometry_elementary_add_new_spline_cb(CALLBACK_ARGS){
printf("new spline\n");
}
void geometry_elementary_add_new_circle_cb(CALLBACK_ARGS){
printf("new circle\n");
}
void geometry_elementary_add_new_ellipsis_cb(CALLBACK_ARGS){
printf("new ellipsis\n");
}
void geometry_elementary_add_new_planesurface_cb(CALLBACK_ARGS){
printf("new plane surf\n");
}
void geometry_elementary_add_new_ruledsurface_cb(CALLBACK_ARGS){
printf("new rules surf\n");
}
void geometry_elementary_add_new_volume_cb(CALLBACK_ARGS){
printf("new vol\n");
}
void geometry_elementary_add_translate_point_cb(CALLBACK_ARGS){
printf("translate point\n");
}
void geometry_elementary_add_translate_curve_cb(CALLBACK_ARGS){
printf("translate curve\n");
}
void geometry_elementary_add_translate_surface_cb(CALLBACK_ARGS){
printf("translate surface\n");
}
void geometry_elementary_add_rotate_point_cb(CALLBACK_ARGS){
printf("rotate point\n");
}
void geometry_elementary_add_rotate_curve_cb(CALLBACK_ARGS){
printf("rotate curve\n");
}
void geometry_elementary_add_rotate_surface_cb(CALLBACK_ARGS){
printf("rotate surf\n");
}
void geometry_elementary_add_dilate_point_cb(CALLBACK_ARGS){
printf("dilate point\n");
}
void geometry_elementary_add_dilate_curve_cb(CALLBACK_ARGS){
printf("dilate curve\n");
}
void geometry_elementary_add_dilate_surface_cb(CALLBACK_ARGS){
printf("dilate surface\n");
}
void geometry_elementary_add_symmetry_point_cb(CALLBACK_ARGS){
printf("symm point\n");
}
void geometry_elementary_add_symmetry_curve_cb(CALLBACK_ARGS){
printf("symm curve\n");
}
void geometry_elementary_add_symmetry_surface_cb(CALLBACK_ARGS){
printf("symm surf\n");
}
void geometry_elementary_translate_point_cb(CALLBACK_ARGS){
printf("translate point\n");
}
void geometry_elementary_translate_curve_cb(CALLBACK_ARGS){
printf("translate curve\n");
}
void geometry_elementary_translate_surface_cb(CALLBACK_ARGS){
printf("translate surf\n");
}
void geometry_elementary_rotate_point_cb(CALLBACK_ARGS){
printf("rot point\n");
}
void geometry_elementary_rotate_curve_cb(CALLBACK_ARGS){
printf("rot curve\n");
}
void geometry_elementary_rotate_surface_cb(CALLBACK_ARGS){
printf("rot surf\n");
}
void geometry_elementary_dilate_point_cb(CALLBACK_ARGS){
printf("dilate point\n");
}
void geometry_elementary_dilate_curve_cb(CALLBACK_ARGS){
printf("dilate curve\n");
}
void geometry_elementary_dilate_surface_cb(CALLBACK_ARGS){
printf("dilate surf\n");
}
void geometry_elementary_symmetry_point_cb(CALLBACK_ARGS){
printf("symm point\n");
}
void geometry_elementary_symmetry_curve_cb(CALLBACK_ARGS){
printf("symm curve\n");
}
void geometry_elementary_symmetry_surface_cb(CALLBACK_ARGS){
printf("symm surf\n");
}
void geometry_elementary_extrude_point_cb(CALLBACK_ARGS){
printf("extr point\n");
}
void geometry_elementary_extrude_curve_cb(CALLBACK_ARGS){
printf("extr curve\n");
}
void geometry_elementary_extrude_surface_cb(CALLBACK_ARGS){
printf("extr surf\n");
}
void geometry_elementary_delete_point_cb(CALLBACK_ARGS){
printf("del point\n");
}
void geometry_elementary_delete_curve_cb(CALLBACK_ARGS){
printf("del curve\n");
}
void geometry_elementary_delete_surface_cb(CALLBACK_ARGS){
printf("del surf\n");
}
void geometry_physical_add_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_physical_add, 0);
}
void geometry_physical_delete_cb(CALLBACK_ARGS){
WID->set_context(menu_geometry_physical_delete, 0);
}
void geometry_physical_add_point_cb (CALLBACK_ARGS){
printf("phys add point\n");
}
void geometry_physical_add_curve_cb (CALLBACK_ARGS){
printf("phys add curve\n");
}
void geometry_physical_add_surface_cb (CALLBACK_ARGS){
printf("phys add surf\n");
}
void geometry_physical_add_volume_cb (CALLBACK_ARGS){
printf("phys add vol\n");
}
void geometry_physical_delete_point_cb(CALLBACK_ARGS){
printf("phys delpoint\n");
}
void geometry_physical_delete_curve_cb(CALLBACK_ARGS){
printf("phys del curve\n");
}
void geometry_physical_delete_surface_cb(CALLBACK_ARGS){
printf("phys adel surf\n");
}
void geometry_physical_delete_volume_cb(CALLBACK_ARGS){
printf("phys del vol\n");
}
void mesh_define_cb(CALLBACK_ARGS){
WID->set_context(menu_mesh_define, 0);
}
void mesh_1d_cb(CALLBACK_ARGS){
printf("mesh 1d\n");
}
void mesh_2d_cb(CALLBACK_ARGS){
printf("mesh 2d\n");
}
void mesh_3d_cb(CALLBACK_ARGS){
printf("mesh 3d\n");
}
void mesh_define_length_cb (CALLBACK_ARGS){
printf("mesh define length\n");
}
void mesh_define_recombine_cb (CALLBACK_ARGS){
printf("mesh define reco\n");
}
void mesh_define_transfinite_cb (CALLBACK_ARGS){
WID->set_context(menu_mesh_define_transfinite, 0);
}
void mesh_define_transfinite_line_cb(CALLBACK_ARGS){
printf("mesh define tr line\n");
}
void mesh_define_transfinite_surface_cb(CALLBACK_ARGS){
printf("mesh define tr su\n");
}
void mesh_define_transfinite_volume_cb(CALLBACK_ARGS){
printf("mesh define tr vol\n");
}
void view_toggle_cb(CALLBACK_ARGS){
if(!Post_ViewList) return;
Post_View *v = (Post_View*)List_Pointer(Post_ViewList,(int)data);
Msg(DEBUG, "View %d\n"
DEBUG_NIL " -> Name '%s'\n"
DEBUG_NIL " -> FileName '%s'\n"
DEBUG_NIL " -> DuplicateOf %d\n"
DEBUG_NIL " -> Links %d",
v->Num, v->Name, v->FileName, v->DuplicateOf, v->Links);
v->Visible = !v->Visible;
Init();
Draw();
} }
void mod_mesh_cb(void){
void view_reload_cb(CALLBACK_ARGS){
Post_View tmp ;
char filename[NAME_STR_L];
extern int Force_ViewNumber;
if(!Post_ViewList) return;
Post_View *v = (Post_View*)List_Pointer(Post_ViewList,(int)data);
strcpy(filename, v->FileName);
CopyViewOptions(v, &tmp);
Force_ViewNumber = v->Num ;
FreeView(v);
MergeProblem(filename);
Force_ViewNumber = 0 ;
v = (Post_View*)List_Pointer(Post_ViewList,(int)data);
CopyViewOptions(&tmp, v);
if(!RELOAD_ALL_VIEWS){
Init();
Draw();
} }
void mod_post_cb(void){
} }
// View Menus void view_remove_cb(CALLBACK_ARGS){
Post_View *v = (Post_View*)List_Pointer(Post_ViewList,(int)data);
FreeView(v);
if(!List_Suppress(Post_ViewList, v, fcmpPostViewNum))
Msg(ERROR, "Could Not Suppress View from List");
CTX.post.nb_views = List_Nbr(Post_ViewList);
if(WID->get_context() == 2)
WID->set_context(menu_post, 0);
void view_reload_cb(Fl_Widget* w, void* data){ if(!REMOVE_ALL_VIEWS){
printf("Reload view %d \n", (int)data); Init();
Draw();
}
}
void view_duplicate_cb(CALLBACK_ARGS){
Post_View v, *v1, *v2, *v3 ;
if(!Post_ViewList) return;
v1 = (Post_View*)List_Pointer(Post_ViewList,(int)data);
BeginView(0);
EndView(0, 0, v1->FileName, v1->Name, 0., 0., 0.);
v2 = (Post_View*)List_Pointer(Post_ViewList,List_Nbr(Post_ViewList)-1);
if(!v1->DuplicateOf){
v2->DuplicateOf = v1->Num ;
v1->Links++ ;
}
else{
v.Num = v1->DuplicateOf ;
if(!(v3 = (Post_View*)List_PQuery(Post_ViewList, &v, fcmpPostViewNum))){
v2->DuplicateOf = v1->Num ;
v1->Links++ ;
} }
void view_remove_cb(Fl_Widget* w, void* data){ else{
printf("Remove view %d \n", (int)data); v2->DuplicateOf = v3->Num;
v3->Links++ ;
} }
void view_duplicate_cb(Fl_Widget* w, void* data){
printf("Duplicate view %d \n", (int)data);
} }
void view_lighting_cb(Fl_Widget* w, void* data){
v2->Time = v1->Time;
v2->NbSP = v1->NbSP; v2->SP = v1->SP;
v2->NbVP = v1->NbVP; v2->VP = v1->VP;
v2->NbTP = v1->NbTP; v2->TP = v1->TP;
v2->NbSL = v1->NbSL; v2->SL = v1->SL;
v2->NbVL = v1->NbVL; v2->VL = v1->VL;
v2->NbTL = v1->NbTL; v2->TL = v1->TL;
v2->NbST = v1->NbST; v2->ST = v1->ST;
v2->NbVT = v1->NbVT; v2->VT = v1->VT;
v2->NbTT = v1->NbTT; v2->TT = v1->TT;
v2->NbSS = v1->NbSS; v2->SS = v1->SS;
v2->NbVS = v1->NbVS; v2->VS = v1->VS;
v2->NbTS = v1->NbTS; v2->TS = v1->TS;
v2->ScalarOnly = v1->ScalarOnly;
v2->Min = v1->Min;
v2->Max = v1->Max;
v2->NbTimeStep = v1->NbTimeStep;
CopyViewOptions(v1, v2);
AddViewInUI(List_Nbr(Post_ViewList), v2->Name, v2->Num);
Init();
Draw();
}
void view_lighting_cb(CALLBACK_ARGS){
printf("Light view %d \n", (int)data); printf("Light view %d \n", (int)data);
} }
void view_elements_cb(Fl_Widget* w, void* data){ void view_elements_cb(CALLBACK_ARGS){
printf("Show Elements view %d \n", (int)data); printf("Show Elements view %d \n", (int)data);
} }
void view_applybgmesh_cb(Fl_Widget* w, void* data){ void view_applybgmesh_cb(CALLBACK_ARGS){
printf("Apply bgmesh view %d \n", (int)data); printf("Apply bgmesh view %d \n", (int)data);
} }
void view_timestep_cb(Fl_Widget* w, void* data){ void view_timestep_cb(CALLBACK_ARGS){
printf("Timestep view %d \n", (int)data); printf("Timestep view %d \n", (int)data);
} }
void view_options_cb(Fl_Widget* w, void* data){ void view_options_cb(CALLBACK_ARGS){
printf("Options view %d \n", (int)data); printf("Options view %d \n", (int)data);
} }
#ifndef _CALLBACKS_H_ #ifndef _CALLBACKS_H_
#define _CALLBACKS_H_ #define _CALLBACKS_H_
void file_open_cb(void) ; #define CALLBACK_ARGS Fl_Widget* w, void* data
void file_merge_cb(void) ;
void file_save_cb(void) ; // Graphical window
void file_save_as_cb(void) ;
void file_reload_all_views_cb(void) ; void status_xyz1p_cb(CALLBACK_ARGS) ;
void file_remove_all_views_cb(void) ; void status_play_cb(CALLBACK_ARGS) ;
void file_quit_cb(void) ; void status_pause_cb(CALLBACK_ARGS) ;
void status_cancel_cb(CALLBACK_ARGS) ;
void opt_general_cb(void) ;
void opt_geometry_cb(void) ; // File Menu
void opt_mesh_cb(void) ;
void opt_post_cb(void) ; void file_open_cb(CALLBACK_ARGS) ;
void opt_stat_cb(void) ; void file_merge_cb(CALLBACK_ARGS) ;
void file_save_cb(CALLBACK_ARGS) ;
void help_short_cb(void) ; void file_save_as_cb(CALLBACK_ARGS) ;
void help_about_cb(void) ; void file_reload_all_views_cb(CALLBACK_ARGS) ;
void file_remove_all_views_cb(CALLBACK_ARGS) ;
void mod_geometry_cb(void) ; void file_quit_cb(CALLBACK_ARGS) ;
void mod_mesh_cb(void) ;
void mod_post_cb(void) ; // Option Menu
void view_reload_cb(Fl_Widget* w, void*) ; void opt_general_cb(CALLBACK_ARGS) ;
void view_remove_cb(Fl_Widget* w, void*) ; void opt_geometry_cb(CALLBACK_ARGS) ;
void view_duplicate_cb(Fl_Widget* w, void*) ; void opt_mesh_cb(CALLBACK_ARGS) ;
void view_lighting_cb(Fl_Widget* w, void*) ; void opt_post_cb(CALLBACK_ARGS) ;
void view_elements_cb(Fl_Widget* w, void*) ; void opt_stat_cb(CALLBACK_ARGS) ;
void view_timestep_cb(Fl_Widget* w, void*) ;
void view_options_cb(Fl_Widget* w, void*) ; // Help Menu
void view_applybgmesh_cb(Fl_Widget* w, void*) ;
void help_short_cb(CALLBACK_ARGS) ;
void help_about_cb(CALLBACK_ARGS) ;
// Module Menu
void mod_geometry_cb(CALLBACK_ARGS) ;
void mod_mesh_cb(CALLBACK_ARGS) ;
void mod_post_cb(CALLBACK_ARGS) ;
void mod_back_cb(CALLBACK_ARGS) ;
void mod_forward_cb(CALLBACK_ARGS) ;
// Dynamic Menus
void geometry_elementary_cb(CALLBACK_ARGS) ;
void geometry_physical_cb(CALLBACK_ARGS) ;
void geometry_reload_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_cb(CALLBACK_ARGS) ;
void geometry_elementary_translate_cb(CALLBACK_ARGS) ;
void geometry_elementary_rotate_cb(CALLBACK_ARGS) ;
void geometry_elementary_dilate_cb(CALLBACK_ARGS) ;
void geometry_elementary_symmetry_cb(CALLBACK_ARGS) ;
void geometry_elementary_extrude_cb(CALLBACK_ARGS) ;
void geometry_elementary_delete_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_translate_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_rotate_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_dilate_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_symmetry_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_parameter_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_line_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_spline_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_circle_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_ellipsis_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_planesurface_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_ruledsurface_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_new_volume_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_translate_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_translate_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_translate_surface_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_rotate_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_rotate_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_rotate_surface_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_dilate_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_dilate_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_dilate_surface_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_symmetry_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_symmetry_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_add_symmetry_surface_cb(CALLBACK_ARGS) ;
void geometry_elementary_translate_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_translate_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_translate_surface_cb(CALLBACK_ARGS) ;
void geometry_elementary_rotate_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_rotate_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_rotate_surface_cb(CALLBACK_ARGS) ;
void geometry_elementary_dilate_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_dilate_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_dilate_surface_cb(CALLBACK_ARGS) ;
void geometry_elementary_symmetry_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_symmetry_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_symmetry_surface_cb(CALLBACK_ARGS) ;
void geometry_elementary_extrude_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_extrude_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_extrude_surface_cb(CALLBACK_ARGS) ;
void geometry_elementary_delete_point_cb(CALLBACK_ARGS) ;
void geometry_elementary_delete_curve_cb(CALLBACK_ARGS) ;
void geometry_elementary_delete_surface_cb(CALLBACK_ARGS) ;
void geometry_physical_add_cb(CALLBACK_ARGS) ;
void geometry_physical_delete_cb(CALLBACK_ARGS) ;
void geometry_physical_add_point_cb (CALLBACK_ARGS) ;
void geometry_physical_add_curve_cb (CALLBACK_ARGS) ;
void geometry_physical_add_surface_cb (CALLBACK_ARGS) ;
void geometry_physical_add_volume_cb (CALLBACK_ARGS) ;
void geometry_physical_delete_point_cb(CALLBACK_ARGS) ;
void geometry_physical_delete_curve_cb(CALLBACK_ARGS) ;
void geometry_physical_delete_surface_cb(CALLBACK_ARGS) ;
void geometry_physical_delete_volume_cb(CALLBACK_ARGS) ;
void mesh_define_cb(CALLBACK_ARGS) ;
void mesh_1d_cb(CALLBACK_ARGS) ;
void mesh_2d_cb(CALLBACK_ARGS) ;
void mesh_3d_cb(CALLBACK_ARGS) ;
void mesh_define_length_cb (CALLBACK_ARGS) ;
void mesh_define_recombine_cb (CALLBACK_ARGS) ;
void mesh_define_transfinite_cb (CALLBACK_ARGS) ;
void mesh_define_transfinite_line_cb(CALLBACK_ARGS) ;
void mesh_define_transfinite_surface_cb(CALLBACK_ARGS) ;
void mesh_define_transfinite_volume_cb(CALLBACK_ARGS) ;
void view_reload_cb(CALLBACK_ARGS) ;
void view_toggle_cb(CALLBACK_ARGS) ;
void view_remove_cb(CALLBACK_ARGS) ;
void view_duplicate_cb(CALLBACK_ARGS) ;
void view_lighting_cb(CALLBACK_ARGS) ;
void view_elements_cb(CALLBACK_ARGS) ;
void view_applybgmesh_cb(CALLBACK_ARGS) ;
void view_timestep_cb(CALLBACK_ARGS) ;
void view_options_cb(CALLBACK_ARGS) ;
#endif #endif
This diff is collapsed.
...@@ -18,34 +18,38 @@ ...@@ -18,34 +18,38 @@
#include <FL/Fl_Menu_Button.H> #include <FL/Fl_Menu_Button.H>
#include <FL/Fl_Check_Button.H> #include <FL/Fl_Check_Button.H>
#include <FL/Fl_Value_Input.H> #include <FL/Fl_Value_Input.H>
#include <FL/Fl_Value_Output.H>
#include <FL/Fl_Multiline_Output.H>
#include <FL/Fl_Browser.H>
#include <FL/Fl_Bitmap.H>
#define NB_BUTT_MAX 100 #define NB_BUTT_MAX 100
#define NB_HISTORY_MAX 1000 #define NB_HISTORY_MAX 1000
// The dynamic menus // The dynamic contexts
typedef struct{ typedef struct{
char *label; char *label;
void (*callback)(Fl_Widget* w, void* data); Fl_Callback* callback;
} Context_Item; } Context_Item;
extern Context_Item menu_geom[]; extern Context_Item menu_geometry[];
extern Context_Item menu_geom_elementary[]; extern Context_Item menu_geometry_elementary[];
extern Context_Item menu_geom_elementary_add[]; extern Context_Item menu_geometry_elementary_add[];
extern Context_Item menu_geom_elementary_add_new[]; extern Context_Item menu_geometry_elementary_add_new[];
extern Context_Item menu_geom_elementary_add_translate[]; extern Context_Item menu_geometry_elementary_add_translate[];
extern Context_Item menu_geom_elementary_add_rotate[]; extern Context_Item menu_geometry_elementary_add_rotate[];
extern Context_Item menu_geom_elementary_add_dilate[]; extern Context_Item menu_geometry_elementary_add_dilate[];
extern Context_Item menu_geom_elementary_add_symmetry[]; extern Context_Item menu_geometry_elementary_add_symmetry[];
extern Context_Item menu_geom_elementary_translate[]; extern Context_Item menu_geometry_elementary_translate[];
extern Context_Item menu_geom_elementary_rotate[]; extern Context_Item menu_geometry_elementary_rotate[];
extern Context_Item menu_geom_elementary_dilate[]; extern Context_Item menu_geometry_elementary_dilate[];
extern Context_Item menu_geom_elementary_symmetry[]; extern Context_Item menu_geometry_elementary_symmetry[];
extern Context_Item menu_geom_elementary_extrude[]; extern Context_Item menu_geometry_elementary_extrude[];
extern Context_Item menu_geom_elementary_delete[]; extern Context_Item menu_geometry_elementary_delete[];
extern Context_Item menu_geom_physical[]; extern Context_Item menu_geometry_physical[];
extern Context_Item menu_geom_physical_add[]; extern Context_Item menu_geometry_physical_add[];
extern Context_Item menu_geom_physical_delete[]; extern Context_Item menu_geometry_physical_delete[];
extern Context_Item menu_mesh[]; extern Context_Item menu_mesh[];
extern Context_Item menu_mesh_define[]; extern Context_Item menu_mesh_define[];
extern Context_Item menu_mesh_define_transfinite[]; extern Context_Item menu_mesh_define_transfinite[];
...@@ -81,9 +85,13 @@ class GUI{ ...@@ -81,9 +85,13 @@ class GUI{
// Windows // Windows
Fl_Window *m_window, *g_window, *gen_window, *geo_window ; Fl_Window *m_window, *g_window, *gen_window, *geo_window ;
Fl_Window *mesh_window, *post_window, *stat_window ; Fl_Window *mesh_window, *post_window, *stat_window ;
Fl_Window *view_window ; Fl_Window *help_window, *about_window, *view_window ;
Opengl_Window *g_opengl_window ; Opengl_Window *g_opengl_window ;
// Bitmaps
Fl_Bitmap *icon1_bmp, *icon2_bmp, *icon3_bmp;
Fl_Bitmap *abort_bmp, *start_bmp, *stop_bmp, *about_bmp ;
// We keep the following widgets for easy further reference // We keep the following widgets for easy further reference
// menu window // menu window
...@@ -95,19 +103,26 @@ class GUI{ ...@@ -95,19 +103,26 @@ class GUI{
// graphic window // graphic window
Fl_Button *g_status_butt[7] ; Fl_Button *g_status_butt[7] ;
Fl_Box *g_status_box[3] ; Fl_Box *g_status_label[3] ;
// general options window // general options window
Fl_Check_Button *gen_butt[10] ; Fl_Check_Button *gen_butt[10] ;
Fl_Value_Input *gen_value[10] ; Fl_Value_Input *gen_value[10] ;
// geometry options window // geometry options window
Fl_Check_Button *geo_butt[10] ;
Fl_Value_Input *geo_value[10] ;
// mesh options window // mesh options window
Fl_Check_Button *mesh_butt[20] ;
Fl_Value_Input *mesh_value[20] ;
// post-processing options window // post-processing options window
Fl_Check_Button *post_butt[20] ;
Fl_Value_Input *post_value[20] ;
// statistics window // statistics window
Fl_Value_Output *stat_value[40] ;
// view options window // view options window
...@@ -118,16 +133,24 @@ public: ...@@ -118,16 +133,24 @@ public:
void check(); void check();
void draw_gl(); void draw_gl();
void draw_gl_overlay(); void draw_gl_overlay();
void set_size(int w, int h); void set_gl_size(int w, int h);
void set_menu_size(int nb_butt); void set_menu_size(int nb_butt);
void set_context(Context_Item menu[], int flag); void set_context(Context_Item menu[], int flag);
int get_context();
void set_anim(int mode);
void set_status(char *msg, int num);
// create option windows
void opt_general(); void opt_general();
void opt_geometry(); void opt_geometry();
void opt_mesh(); void opt_mesh();
void opt_post(); void opt_post();
void opt_stat(); void opt_stat();
// create help windows
void help_short();
void help_about();
}; };
......
// $Id: Main.cpp,v 1.2 2001-01-08 14:51:30 geuzaine Exp $ // $Id: Main.cpp,v 1.3 2001-01-09 08:58:38 geuzaine Exp $
#include <signal.h> #include <signal.h>
...@@ -21,8 +21,6 @@ ...@@ -21,8 +21,6 @@
extern List_T *Post_ViewList; extern List_T *Post_ViewList;
int SHOW_ALL_ENTITIES ; int SHOW_ALL_ENTITIES ;
void AddViewInUI(int, char *, int){}
GUI *WID ; GUI *WID ;
int main(int argc, char *argv[]){ int main(int argc, char *argv[]){
...@@ -94,8 +92,8 @@ int main(int argc, char *argv[]){ ...@@ -94,8 +92,8 @@ int main(int argc, char *argv[]){
// Text for about window // Text for about window
sprintf(TextAbout, "%s\n \n%s%.2f\n%s\n%s\n%s\n%s\n%s\n%s\n \n%s\n \n" sprintf(TextAbout, " %s\n \n %s%.2f\n %s\n %s\n %s\n %s\n %s\n %s\n \n %s"
"Type 'gmsh -help' for command line options", "\n \n Type 'gmsh -help' for command line options",
gmsh_progname, gmsh_version, GMSH_VERSION, gmsh_progname, gmsh_version, GMSH_VERSION,
gmsh_os, gmsh_date, gmsh_host, gmsh_packager, gmsh_os, gmsh_date, gmsh_host, gmsh_packager,
gmsh_url, gmsh_email, gmsh_copyright); gmsh_url, gmsh_email, gmsh_copyright);
...@@ -128,7 +126,7 @@ int main(int argc, char *argv[]){ ...@@ -128,7 +126,7 @@ int main(int argc, char *argv[]){
WID->set_context(menu_post, 0); WID->set_context(menu_post, 0);
} }
else { else {
WID->set_context(menu_geom,0); WID->set_context(menu_geometry, 0);
} }
// Read background mesh on disk // Read background mesh on disk
......
// $Id: Opengl.cpp,v 1.1 2001-01-08 08:16:27 geuzaine Exp $ // $Id: Opengl.cpp,v 1.2 2001-01-09 08:58:38 geuzaine Exp $
#include "Gmsh.h" #include "Gmsh.h"
#include "GmshUI.h" #include "GmshUI.h"
...@@ -30,8 +30,6 @@ void InitOverlay(void){ ...@@ -30,8 +30,6 @@ void InitOverlay(void){
} }
void Draw(void){ void Draw(void){
WID->set_size(CTX.viewport[2]-CTX.viewport[0],
CTX.viewport[3]-CTX.viewport[1]);
WID->draw_gl(); WID->draw_gl();
} }
...@@ -125,6 +123,16 @@ void Opengl_Window::draw() { ...@@ -125,6 +123,16 @@ void Opengl_Window::draw() {
CTX.viewport[2], CTX.viewport[2],
CTX.viewport[3]); CTX.viewport[3]);
} }
if((w() != CTX.viewport[2]-CTX.viewport[0]) ||
(h() != CTX.viewport[3]-CTX.viewport[1])){
WID->set_gl_size(CTX.viewport[2]-CTX.viewport[0],
CTX.viewport[3]-CTX.viewport[1]);
glViewport(CTX.viewport[0],
CTX.viewport[1],
CTX.viewport[2],
CTX.viewport[3]);
}
Orthogonalize(0,0); Orthogonalize(0,0);
glClearColor(UNPACK_RED(CTX.color.bg)/255., glClearColor(UNPACK_RED(CTX.color.bg)/255.,
UNPACK_GREEN(CTX.color.bg)/255., UNPACK_GREEN(CTX.color.bg)/255.,
......
File deleted
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment