diff --git a/Common/Options.cpp b/Common/Options.cpp index a487afb6f11481b13bbd4329e199e82a36c1cc9b..d755fa0faa171200622c240ad9241b8d9aff21be 100644 --- a/Common/Options.cpp +++ b/Common/Options.cpp @@ -1,4 +1,4 @@ -// $Id: Options.cpp,v 1.165 2004-06-08 02:10:32 geuzaine Exp $ +// $Id: Options.cpp,v 1.166 2004-06-12 18:34:31 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -76,20 +76,33 @@ void Init_Options_Safe(int num) void Init_Options(int num) { char *tmp; + int ok = 1; // Home directory if((tmp = getenv("GMSH_HOME"))) strcpy(CTX.home_dir, tmp); - else if((tmp = getenv("HOME"))) + else if((tmp = getenv("HOME"))){ strcpy(CTX.home_dir, tmp); - else if((tmp = getenv("TMP"))) - strcpy(CTX.home_dir, tmp); - else if((tmp = getenv("TEMP"))) - strcpy(CTX.home_dir, tmp); - else - strcpy(CTX.home_dir, ""); +#if defined(WIN32) + // old windows systems (e.g. win98) define incorrect HOME variables + if(!strcmp(CTX.home_dir, "/")) + ok = 0; +#endif + } + else{ + ok = 0; + } + if(!ok){ + if((tmp = getenv("TMP"))) + strcpy(CTX.home_dir, tmp); + else if((tmp = getenv("TEMP"))) + strcpy(CTX.home_dir, tmp); + else + strcpy(CTX.home_dir, ""); + } - if(strlen(CTX.home_dir)) + int len = strlen(CTX.home_dir); + if(len && CTX.home_dir[len-1] != '/') strcat(CTX.home_dir, "/"); // Reference view storing default options @@ -796,10 +809,6 @@ char *opt_general_tmp_filename(OPT_ARGS_STR) strcpy(CTX.tmprc_filename, CTX.home_dir); strcat(CTX.tmprc_filename, CTX.tmp_filename); } -#if defined(HAVE_FLTK) - if(WID && (action & GMSH_GUI)) - WID->gen_input[1]->value(CTX.tmp_filename); -#endif return CTX.tmp_filename; } @@ -810,10 +819,6 @@ char *opt_general_error_filename(OPT_ARGS_STR) strcpy(CTX.errorrc_filename, CTX.home_dir); strcat(CTX.errorrc_filename, CTX.error_filename); } -#if defined(HAVE_FLTK) - if(WID && (action & GMSH_GUI)) - WID->gen_input[2]->value(CTX.error_filename); -#endif return CTX.error_filename; } @@ -834,10 +839,6 @@ char *opt_general_options_filename(OPT_ARGS_STR) strcpy(CTX.optionsrc_filename, CTX.home_dir); strcat(CTX.optionsrc_filename, CTX.options_filename); } -#if defined(HAVE_FLTK) - if(WID && (action & GMSH_GUI)) - WID->gen_input[3]->value(CTX.options_filename); -#endif return CTX.options_filename; } @@ -847,7 +848,7 @@ char *opt_general_editor(OPT_ARGS_STR) CTX.editor = val; #if defined(HAVE_FLTK) if(WID && (action & GMSH_GUI)) - WID->gen_input[4]->value(CTX.editor); + WID->gen_input[1]->value(CTX.editor); #endif return CTX.editor; } @@ -858,7 +859,7 @@ char *opt_general_web_browser(OPT_ARGS_STR) CTX.web_browser = val; #if defined(HAVE_FLTK) if(WID && (action & GMSH_GUI)) - WID->gen_input[5]->value(CTX.web_browser); + WID->gen_input[2]->value(CTX.web_browser); #endif return CTX.web_browser; } diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp index 10f0d7e29febfb4a32748ea7cc17191fe67b894b..2520552ccb2ba840d848708d3b805ccbbaff3ab2 100644 --- a/Fltk/Callbacks.cpp +++ b/Fltk/Callbacks.cpp @@ -1,4 +1,4 @@ -// $Id: Callbacks.cpp,v 1.246 2004-06-04 02:07:06 geuzaine Exp $ +// $Id: Callbacks.cpp,v 1.247 2004-06-12 18:34:31 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -885,11 +885,8 @@ void general_options_ok_cb(CALLBACK_ARGS) opt_general_graphics_fontsize(0, GMSH_SET, WID->gen_value[12]->value()); opt_general_default_filename(0, GMSH_SET, (char *)WID->gen_input[0]->value()); - opt_general_tmp_filename(0, GMSH_SET, (char *)WID->gen_input[1]->value()); - opt_general_error_filename(0, GMSH_SET, (char *)WID->gen_input[2]->value()); - opt_general_options_filename(0, GMSH_SET, (char *)WID->gen_input[3]->value()); - opt_general_editor(0, GMSH_SET, (char *)WID->gen_input[4]->value()); - opt_general_web_browser(0, GMSH_SET, (char *)WID->gen_input[5]->value()); + opt_general_editor(0, GMSH_SET, (char *)WID->gen_input[1]->value()); + opt_general_web_browser(0, GMSH_SET, (char *)WID->gen_input[2]->value()); int val; switch (WID->gen_choice[0]->value()) { @@ -1348,26 +1345,6 @@ void help_short_cb(CALLBACK_ARGS) { // *INDENT-OFF* Msg(DIRECT, " "); - Msg(DIRECT, "Mouse:"); - Msg(DIRECT, " "); - Msg(DIRECT, " move - highlight the elementary geometrical entity"); - Msg(DIRECT, " currently under the mouse pointer and display"); - Msg(DIRECT, " its properties in the status bar"); - Msg(DIRECT, " - size a rubber zoom started with "XX"+Left button"); - Msg(DIRECT, " Left button - rotate"); - Msg(DIRECT, " - accept a rubber zoom started with "XX"+Left button"); - Msg(DIRECT, " "XX"+Left button start (anisotropic) rubber zoom"); - Msg(DIRECT, " Middle button - zoom (isotropic)"); - Msg(DIRECT, " - cancel a rubber zoom"); - Msg(DIRECT, " "XX"+Middle button orthogonalize display"); - Msg(DIRECT, " Right button - pan"); - Msg(DIRECT, " - cancel a rubber zoom"); - Msg(DIRECT, " - pop up menu on post-processing view button"); - Msg(DIRECT, " "XX"+Right button reset to default viewpoint"); - Msg(DIRECT, " "); - Msg(DIRECT, " For a 2 button mouse, Middle button = Shift+Left button"); - Msg(DIRECT, " For a 1 button mouse, Middle button = Shift+Left button, Right button = Alt+Left button"); - Msg(DIRECT, " "); Msg(DIRECT, "Menu bar shortcuts:"); Msg(DIRECT, " "); Msg(DIRECT, " < go back to previous context"); @@ -1429,6 +1406,34 @@ void help_short_cb(CALLBACK_ARGS) WID->create_message_window(); } +void help_mouse_cb(CALLBACK_ARGS) +{ + // *INDENT-OFF* + Msg(DIRECT, " "); + Msg(DIRECT, "Mouse:"); + Msg(DIRECT, " "); + Msg(DIRECT, " move - highlight the elementary geometrical entity"); + Msg(DIRECT, " currently under the mouse pointer and display"); + Msg(DIRECT, " its properties in the status bar"); + Msg(DIRECT, " - size a rubber zoom started with "XX"+Left button"); + Msg(DIRECT, " Left button - rotate"); + Msg(DIRECT, " - accept a rubber zoom started with "XX"+Left button"); + Msg(DIRECT, " "XX"+Left button start (anisotropic) rubber zoom"); + Msg(DIRECT, " Middle button - zoom (isotropic)"); + Msg(DIRECT, " - cancel a rubber zoom"); + Msg(DIRECT, " "XX"+Middle button orthogonalize display"); + Msg(DIRECT, " Right button - pan"); + Msg(DIRECT, " - cancel a rubber zoom"); + Msg(DIRECT, " - pop up menu on post-processing view button"); + Msg(DIRECT, " "XX"+Right button reset to default viewpoint"); + Msg(DIRECT, " "); + Msg(DIRECT, " For a 2 button mouse, Middle button = Shift+Left button"); + Msg(DIRECT, " For a 1 button mouse, Middle button = Shift+Left button, Right button = Alt+Left button"); + Msg(DIRECT, " "); + // *INDENT-ON* + WID->create_message_window(); +} + #undef XX void help_command_line_cb(CALLBACK_ARGS) diff --git a/Fltk/Callbacks.h b/Fltk/Callbacks.h index b1a63dae8200b2f9ec9e629bdfb654051b9eb744..a635d0eecd364840d279a78bbfe4dd461e1c2782 100644 --- a/Fltk/Callbacks.h +++ b/Fltk/Callbacks.h @@ -154,6 +154,7 @@ void visibility_ok_cb(CALLBACK_ARGS) ; // Help Menu void help_short_cb(CALLBACK_ARGS) ; +void help_mouse_cb(CALLBACK_ARGS) ; void help_command_line_cb(CALLBACK_ARGS) ; void help_online_cb(CALLBACK_ARGS) ; void help_license_cb(CALLBACK_ARGS) ; diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp index f628834eea7a76190389ad617d06ec1692ecd4da..4238f1e42389c19bfff8fb1ec3b0b136dc1c174b 100644 --- a/Fltk/GUI.cpp +++ b/Fltk/GUI.cpp @@ -1,4 +1,4 @@ -// $Id: GUI.cpp,v 1.315 2004-06-08 00:30:21 geuzaine Exp $ +// $Id: GUI.cpp,v 1.316 2004-06-12 18:34:31 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -89,6 +89,7 @@ Fl_Menu_Item m_menubar_table[] = { {0}, {"&Help", 0, 0, 0, FL_SUBMENU}, {"&Current options...", 0, (Fl_Callback *)status_xyz1p_cb, (void*)5}, + {"M&ouse...", 0, (Fl_Callback *)help_mouse_cb, 0}, {"S&hortcuts...", 0, (Fl_Callback *)help_short_cb, 0}, {"C&ommand line options...", 0, (Fl_Callback *)help_command_line_cb, 0, FL_MENU_DIVIDER}, {"On&line documentation", 0, (Fl_Callback *)help_online_cb, 0, FL_MENU_DIVIDER}, @@ -119,6 +120,7 @@ Fl_Menu_Item m_sys_menubar_table[] = { {0}, {"Help",0,0,0,FL_SUBMENU}, {"Current Options...", 0, (Fl_Callback *)status_xyz1p_cb, (void*)5}, + {"Mouse...", 0, (Fl_Callback *)help_mouse_cb, 0}, {"Shortcuts...", 0, (Fl_Callback *)help_short_cb, 0}, {"Command Line Options...", 0, (Fl_Callback *)help_command_line_cb, 0, FL_MENU_DIVIDER}, {"Online Documentation", 0, (Fl_Callback *)help_online_cb, 0, FL_MENU_DIVIDER}, @@ -1456,10 +1458,10 @@ void GUI::create_option_window() gen_butt[0] = new Fl_Check_Button(2 * WB, 2 * WB + 2 * BH, BW, BH, "Show moving axes"); gen_butt[1] = new Fl_Check_Button(2 * WB, 2 * WB + 3 * BH, BW, BH, "Show small axes"); - gen_butt[2] = new Fl_Check_Button(2 * WB, 2 * WB + 4 * BH, BW, BH, "Enable fast redraw"); + gen_butt[2] = new Fl_Check_Button(2 * WB, 2 * WB + 4 * BH, BW, BH, "Draw simplified model while rotating, panning and zooming"); gen_butt[3] = new Fl_Check_Button(2 * WB, 2 * WB + 5 * BH, BW, BH, "Enable double buffering"); - gen_butt[4] = new Fl_Check_Button(2 * WB, 2 * WB + 6 * BH, BW, BH, "Use fake transparency"); - gen_butt[5] = new Fl_Check_Button(2 * WB, 2 * WB + 7 * BH, BW, BH, "Use trackball rotation mode"); + gen_butt[4] = new Fl_Check_Button(2 * WB, 2 * WB + 6 * BH, BW, BH, "Use fake transparency mode"); + gen_butt[5] = new Fl_Check_Button(2 * WB, 2 * WB + 7 * BH, BW, BH, "Use trackball rotation mode instead of Euler angles"); for(i = 0; i < 6; i++) { gen_butt[i]->type(FL_TOGGLE_BUTTON); gen_butt[i]->down_box(TOGGLE_BOX); @@ -1486,13 +1488,16 @@ void GUI::create_option_window() Fl_Group *o = new Fl_Group(WB, WB + BH, width - 2 * WB, height - 2 * WB - BH, "Output"); gen_butt[7] = new Fl_Check_Button(2 * WB, 2 * WB + 1 * BH, BW, BH, "Print messages on terminal"); gen_butt[8] = new Fl_Check_Button(2 * WB, 2 * WB + 2 * BH, BW, BH, "Save session information on exit"); - gen_butt[9] = new Fl_Check_Button(2 * WB, 2 * WB + 3 * BH, BW, BH, "Save options on exit"); + gen_butt[9] = new Fl_Check_Button(2 * WB, 2 * WB + 3 * BH, BW/2-WB, BH, "Save options on exit"); for(i = 7; i < 10; i++) { gen_butt[i]->type(FL_TOGGLE_BUTTON); gen_butt[i]->down_box(TOGGLE_BOX); gen_butt[i]->selection_color(TOGGLE_COLOR); } + Fl_Button *b0 = new Fl_Button(width / 2, 2 * WB + 3 * BH, 2 * BB, BH, "Restore default options"); + b0->callback(options_restore_defaults_cb); + gen_butt[14] = new Fl_Check_Button(2 * WB, 2 * WB + 4 * BH, BW, BH, "Ask confirmation before overwriting files"); gen_butt[14]->type(FL_TOGGLE_BUTTON); gen_butt[14]->down_box(TOGGLE_BOX); @@ -1504,23 +1509,15 @@ void GUI::create_option_window() gen_value[5]->step(1); gen_value[5]->align(FL_ALIGN_RIGHT); gen_input[0] = new Fl_Input(2 * WB, 2 * WB + 6 * BH, IW, BH, "Default file name"); - gen_input[1] = new Fl_Input(2 * WB, 2 * WB + 7 * BH, IW, BH, "Temporary file"); - gen_input[2] = new Fl_Input(2 * WB, 2 * WB + 8 * BH, IW, BH, "Error file"); - gen_input[3] = new Fl_Input(2 * WB, 2 * WB + 9 * BH, IW, BH, "Option file"); - for(i = 0; i < 4; i++) { - gen_input[i]->align(FL_ALIGN_RIGHT); - } - - Fl_Button *b0 = new Fl_Button(width - 2 * BB - 2 * WB, 2 * WB + 9 * BH, 2 * BB, BH, "Restore default options"); - b0->callback(options_restore_defaults_cb); + gen_input[0]->align(FL_ALIGN_RIGHT); o->end(); } { Fl_Group *o = new Fl_Group(WB, WB + BH, width - 2 * WB, height - 2 * WB - BH, "Helpers"); - gen_input[4] = new Fl_Input(2 * WB, 2 * WB + 1 * BH, IW, BH, "Text editor command"); - gen_input[5] = new Fl_Input(2 * WB, 2 * WB + 2 * BH, IW, BH, "Web browser command"); - for(i = 4; i < 6; i++) { + gen_input[1] = new Fl_Input(2 * WB, 2 * WB + 1 * BH, IW, BH, "Text editor command"); + gen_input[2] = new Fl_Input(2 * WB, 2 * WB + 2 * BH, IW, BH, "Web browser command"); + for(i = 1; i <= 2; i++) { gen_input[i]->align(FL_ALIGN_RIGHT); } o->end(); @@ -1635,7 +1632,7 @@ void GUI::create_option_window() { Fl_Group *o = new Fl_Group(WB, WB + BH, width - 2 * WB, height - 2 * WB - BH, "General"); o->hide(); - geo_butt[8] = new Fl_Check_Button(2 * WB, 2 * WB + 1 * BH, BW, BH, "Auto coherence (suppress duplicates)"); + geo_butt[8] = new Fl_Check_Button(2 * WB, 2 * WB + 1 * BH, BW, BH, "Auto coherence (suppress duplicate entities)"); geo_butt[8]->type(FL_TOGGLE_BUTTON); geo_butt[8]->down_box(TOGGLE_BOX); geo_butt[8]->selection_color(TOGGLE_COLOR); diff --git a/configure b/configure index f454c1cae198a0383df078ab7b10474a5135fe67..f91e58457b38d384fb85579571bfba3ee1cc7354 100755 --- a/configure +++ b/configure @@ -3170,7 +3170,9 @@ GMSH_DIRS="Common DataStr Geo Mesh Numeric Parallel Parser Plugin" if test "x$enable_gui" != "xno"; then GMSH_DIRS="${GMSH_DIRS} Graphics Fltk" - GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshCommon -lGmshDataStr -lGmshPlugin -lGmshParallel" + GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo" + GMSH_LIBS="${GMSH_LIBS} -lGmshNumeric -lGmshCommon -lGmshDataStr -lGmshPlugin" + GMSH_LIBS="${GMSH_LIBS} -lGmshParallel" FLAGS="-DHAVE_FLTK ${FLAGS}" if test "x${FLTK_PREFIX}" != "x" ; then @@ -3478,7 +3480,8 @@ fi else GMSH_DIRS="${GMSH_DIRS} Box" - GMSH_LIBS="-Llib -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshPlugin -lGmshCommon -lGmshDataStr -lGmshParallel" + GMSH_LIBS="-Llib -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshNumeric" + GMSH_LIBS="${GMSH_LIBS} -lGmshPlugin -lGmshCommon -lGmshDataStr -lGmshParallel" fi @@ -5300,4 +5303,3 @@ echo "- OS : $UNAME" echo "- OPTIM : $OPTIM" echo "- FLAGS : $FLAGS" echo "********************************************************************" - diff --git a/configure.in b/configure.in index c2008c066cc4eca2461477ba06fbd2b70d9c83cb..ed200de6cdb0801dacb7b374bfcff12a497393d9 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -dnl $Id: configure.in,v 1.52 2004-05-12 06:05:52 geuzaine Exp $ +dnl $Id: configure.in,v 1.53 2004-06-12 18:34:31 geuzaine Exp $ dnl dnl Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle dnl @@ -129,7 +129,9 @@ dnl Choose blackbox or GUI version if test "x$enable_gui" != "xno"; then GMSH_DIRS="${GMSH_DIRS} Graphics Fltk" - GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshCommon -lGmshDataStr -lGmshPlugin -lGmshParallel" + GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo" + GMSH_LIBS="${GMSH_LIBS} -lGmshNumeric -lGmshCommon -lGmshDataStr -lGmshPlugin" + GMSH_LIBS="${GMSH_LIBS} -lGmshParallel" FLAGS="-DHAVE_FLTK ${FLAGS}" if test "x${FLTK_PREFIX}" != "x" ; then @@ -206,7 +208,8 @@ if test "x$enable_gui" != "xno"; then else GMSH_DIRS="${GMSH_DIRS} Box" - GMSH_LIBS="-Llib -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshPlugin -lGmshCommon -lGmshDataStr -lGmshParallel" + GMSH_LIBS="-Llib -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshNumeric" + GMSH_LIBS="${GMSH_LIBS} -lGmshPlugin -lGmshCommon -lGmshDataStr -lGmshParallel" fi @@ -395,4 +398,3 @@ echo "- OS : $UNAME" echo "- OPTIM : $OPTIM" echo "- FLAGS : $FLAGS" echo "********************************************************************" -